From 22a8f26bf90cab652a73d00c7cbdd714488b3388 Mon Sep 17 00:00:00 2001 From: Segue Date: Sun, 20 Oct 2024 20:43:36 +0800 Subject: [PATCH 001/106] fix cliam all --- contracts/contracts/l2/staking/Distribute.sol | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/contracts/contracts/l2/staking/Distribute.sol b/contracts/contracts/l2/staking/Distribute.sol index 71f6b4acd..c7b132cad 100644 --- a/contracts/contracts/l2/staking/Distribute.sol +++ b/contracts/contracts/l2/staking/Distribute.sol @@ -199,7 +199,7 @@ contract Distribute is IDistribute, OwnableUpgradeable { uint256 endEpochIndex = (targetEpochIndex == 0 || targetEpochIndex > mintedEpochCount - 1) ? mintedEpochCount - 1 : targetEpochIndex; - uint256 reward = _claim(delegatee, delegator, endEpochIndex); + (uint256 reward, ) = _claim(delegatee, delegator, endEpochIndex); if (reward > 0) { _transfer(delegator, reward); } @@ -217,13 +217,19 @@ contract Distribute is IDistribute, OwnableUpgradeable { ? mintedEpochCount - 1 : targetEpochIndex; uint256 reward; - for (uint256 i = 0; i < unclaimed[delegator].delegatees.length(); i++) { + for (uint256 i = 0; i < unclaimed[delegator].delegatees.length(); ) { + bool removed = false; address delegatee = unclaimed[delegator].delegatees.at(i); if ( unclaimed[delegator].delegatees.contains(delegatee) && unclaimed[delegator].unclaimedStart[delegatee] <= endEpochIndex ) { - reward += _claim(delegatee, delegator, endEpochIndex); + (uint256 rewardTmp, bool removedTmp) = _claim(delegatee, delegator, endEpochIndex); + reward += rewardTmp; + removed = removedTmp; + } + if (!removed) { + i++; } } if (reward > 0) { @@ -354,7 +360,11 @@ contract Distribute is IDistribute, OwnableUpgradeable { } /// @notice claim delegator morph reward - function _claim(address delegatee, address delegator, uint256 endEpochIndex) internal returns (uint256 reward) { + function _claim( + address delegatee, + address delegator, + uint256 endEpochIndex + ) internal returns (uint256 reward, bool removed) { require(unclaimed[delegator].delegatees.contains(delegatee), "no remaining reward"); require(unclaimed[delegator].unclaimedStart[delegatee] <= endEpochIndex, "all reward claimed"); @@ -371,6 +381,7 @@ contract Distribute is IDistribute, OwnableUpgradeable { // if undelegated, remove delegator unclaimed info after claimed all if (unclaimed[delegator].undelegated[delegatee] && unclaimed[delegator].unclaimedEnd[delegatee] == i) { + removed = true; unclaimed[delegator].delegatees.remove(delegatee); delete unclaimed[delegator].undelegated[delegatee]; delete unclaimed[delegator].unclaimedStart[delegatee]; From 4e5aeefe40f2f24c7464a08356c8356eb75559ad Mon Sep 17 00:00:00 2001 From: Segue Date: Sun, 20 Oct 2024 20:43:45 +0800 Subject: [PATCH 002/106] update test --- contracts/contracts/test/L2Staking.t.sol | 113 +++++++++++++++++++++++ 1 file changed, 113 insertions(+) diff --git a/contracts/contracts/test/L2Staking.t.sol b/contracts/contracts/test/L2Staking.t.sol index d2a854cc3..a57196ff6 100644 --- a/contracts/contracts/test/L2Staking.t.sol +++ b/contracts/contracts/test/L2Staking.t.sol @@ -1668,6 +1668,119 @@ contract L2StakingTest is L2StakingBaseTest { hevm.stopPrank(); } + /** + * @notice staking -> distribute -> claim -> undelegate -> distribute -> claim + */ + function test_delegatorClaimAllAfterUndelegateLater1Epoch_succeeds() public { + hevm.startPrank(alice); + morphToken.approve(address(l2Staking), type(uint256).max); + l2Staking.delegateStake(firstStaker, 5 ether); + l2Staking.delegateStake(secondStaker, 5 ether); + l2Staking.delegateStake(thirdStaker, 5 ether); + hevm.stopPrank(); + + uint256 time = REWARD_EPOCH; + hevm.warp(time); + + // reward starting + // rewardStartTime = 86400 + // block.timeStamp >= rewardStartTime + // candidateNumber > 0 + hevm.prank(multisig); + l2Staking.startReward(); + + // staker set commission + hevm.prank(firstStaker); + l2Staking.setCommissionRate(1); + hevm.prank(secondStaker); + l2Staking.setCommissionRate(1); + hevm.prank(thirdStaker); + l2Staking.setCommissionRate(1); + + // *************** epoch = 1 ******************** // + time = REWARD_EPOCH * 2; + hevm.warp(time); + + uint256 blocksCountOfEpoch = REWARD_EPOCH / 3; + hevm.roll(blocksCountOfEpoch * 2); + hevm.prank(oracleAddress); + record.setLatestRewardEpochBlock(blocksCountOfEpoch); + _updateDistribute(0); + + // effectiveEpoch = 2 + hevm.startPrank(bob); + morphToken.approve(address(l2Staking), type(uint256).max); + l2Staking.delegateStake(secondStaker, morphBalance - 5 ether); + hevm.stopPrank(); + + // ranking changed by delegate amount + uint256 secondRanking = l2Staking.stakerRankings(secondStaker); + assertEq(secondRanking, 0 + 1); + + // *********************************** // + time = REWARD_EPOCH * (3); + hevm.roll(blocksCountOfEpoch * (3)); + hevm.warp(time); + _updateDistribute(1); + // console.logUint(morphToken.inflationMintedEpochs()); + // *********************************** // + + // *********************************** // + time = REWARD_EPOCH * (4); + hevm.roll(blocksCountOfEpoch * (4)); + hevm.warp(time); + _updateDistribute(2); + // console.logUint(morphToken.inflationMintedEpochs()); + // *********************************** // + + hevm.startPrank(alice); + l2Staking.undelegateStake(firstStaker); + l2Staking.undelegateStake(secondStaker); + l2Staking.undelegateStake(thirdStaker); + hevm.stopPrank(); + + // *********************************** // + time = REWARD_EPOCH * (5); + hevm.roll(blocksCountOfEpoch * (5)); + hevm.warp(time); + _updateDistribute(3); + // console.logUint(morphToken.inflationMintedEpochs()); + // *********************************** // + + uint256 aliceReward1 = distribute.queryUnclaimed(firstStaker, alice); + uint256 aliceReward2 = distribute.queryUnclaimed(secondStaker, alice); + uint256 aliceReward3 = distribute.queryUnclaimed(thirdStaker, alice); + uint256 balanceBefore = morphToken.balanceOf(alice); + console.logString("......................"); + console.logUint(balanceBefore); + console.logUint(aliceReward1); + console.logUint(aliceReward2); + console.logUint(aliceReward3); + + hevm.startPrank(alice); + l2Staking.claimReward(address(0), 0); + + hevm.expectRevert("invalid delegator or no remaining reward"); + distribute.queryUnclaimed(firstStaker, alice); + hevm.expectRevert("invalid delegator or no remaining reward"); + distribute.queryUnclaimed(secondStaker, alice); + hevm.expectRevert("invalid delegator or no remaining reward"); + distribute.queryUnclaimed(thirdStaker, alice); + + hevm.expectRevert("no remaining reward"); + l2Staking.claimReward(firstStaker, 0); + hevm.expectRevert("no remaining reward"); + l2Staking.claimReward(secondStaker, 0); + hevm.expectRevert("no remaining reward"); + l2Staking.claimReward(thirdStaker, 0); + uint256 balanceAfter = morphToken.balanceOf(alice); + + console.logUint(balanceAfter); + console.logString("......................"); + assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); + hevm.stopPrank(); + } + /** * @notice staking -> distribute -> claim */ From ba430eb35ba805a81092ce1d09134a5e74f0a912 Mon Sep 17 00:00:00 2001 From: Segue Date: Sun, 20 Oct 2024 20:54:30 +0800 Subject: [PATCH 003/106] update bindings --- bindings/bin/distribute_deployed.hex | 2 +- bindings/bindings/distribute.go | 2 +- bindings/bindings/distribute_more.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bindings/bin/distribute_deployed.hex b/bindings/bin/distribute_deployed.hex index de3304d96..f8c4dfac1 100644 --- a/bindings/bin/distribute_deployed.hex +++ b/bindings/bin/distribute_deployed.hex @@ -1 +1 @@ -0x608060405234801561000f575f80fd5b5060043610610163575f3560e01c8063a766c529116100c7578063cd4281d01161007d578063d557714111610063578063d55771411461033e578063de6ac93314610365578063f2fde38b14610388575f80fd5b8063cd4281d014610304578063cdd0c50e1461032b575f80fd5b8063b809af0f116100ad578063b809af0f146102b6578063bf2dca0a146102c9578063c4d66de8146102f1575f80fd5b8063a766c5291461027b578063ac2ac640146102a3575f80fd5b8063807de4431161011c578063921ae9b811610102578063921ae9b8146102245780639889be5114610247578063996cba6814610268575f80fd5b8063807de443146101d45780638da5cb5b14610213575f80fd5b80635cf20c7b1161014c5780635cf20c7b146101a6578063715018a6146101b95780637f683ee3146101c1575f80fd5b8063273d8e82146101675780634eedab3214610191575b5f80fd5b61017a610175366004612512565b61039b565b60405161018892919061259d565b60405180910390f35b6101a461019f3660046125ca565b610729565b005b6101a46101b43660046125ca565b6107c7565b6101a46109a6565b6101a46101cf3660046125f2565b6109b9565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610188565b6033546001600160a01b03166101fb565b610237610232366004612512565b610bff565b6040516101889493929190612631565b61025a6102553660046126b0565b610f3c565b604051908152602001610188565b6101a46102763660046126e1565b611213565b61025a610289366004612512565b6001600160a01b03165f9081526067602052604090205490565b6101a46102b1366004612512565b611337565b6101a46102c4366004612727565b611480565b61025a6102d7366004612512565b6001600160a01b03165f9081526068602052604090205490565b6101a46102ff366004612512565b6115be565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6101a46103393660046127ce565b611788565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6103786103733660046126b0565b611ae8565b6040519015158152602001610188565b6101a4610396366004612512565b611b13565b6001600160a01b0381165f90815260696020526040812060609182916103c090611ba3565b9050805f0361043c5760405162461bcd60e51b815260206004820152602860248201527f696e76616c69642064656c656761746f72206f72206e6f2072656d61696e696e60448201527f672072657761726400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b8067ffffffffffffffff8111156104555761045561286a565b60405190808252806020026020018201604052801561047e578160200160208202803683370190505b5092508067ffffffffffffffff81111561049a5761049a61286a565b6040519080825280602002602001820160405280156104c3578160200160208202803683370190505b5091505f5b6001600160a01b0385165f9081526069602052604090206104e890611ba3565b811015610722576001600160a01b0385165f9081526069602052604081206105109083611bac565b6001600160a01b038088165f908152606960209081526040808320938516835260039093019052908120549192509081908190805b6065548110156106bf576001600160a01b038087165f9081526066602090815260408083208584528252808320938f168352600490930190522054156105b9576001600160a01b038087165f9081526066602090815260408083208584528252808320938f16835260049093019052205492505b6001600160a01b0386165f9081526066602090815260408083208484529091529020600101541561060d576001600160a01b0386165f90815260666020908152604080832084845290915290206001015493505b6001600160a01b0386165f908152606660209081526040808320848452909152902054849061063d9085906128c4565b61064791906128db565b6106519086612913565b6001600160a01b03808d165f908152606960209081526040808320938b16835260029093019052205490955060ff1680156106b357506001600160a01b03808c165f908152606960209081526040808320938a16835260049093019052205481145b6106bf57600101610545565b50848987815181106106d3576106d3612926565b60200260200101906001600160a01b031690816001600160a01b0316815250508388878151811061070657610706612926565b60209081029190910101525050600190930192506104c8915050565b5050915091565b610731611bbe565b6001600160a01b0382165f908152606760205260409020545b8181116107a8576001600160a01b0383165f908152606660209081526040808320848452909152812081815560018101829055906002820181818161078f82826124c9565b50505050505080806107a090612953565b91505061074a565b6001600160a01b039092165f9081526067602052604090209190915550565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461083f5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6065545f036108905760405162461bcd60e51b815260206004820152600e60248201527f6e6f74206d696e746564207965740000000000000000000000000000000000006044820152606401610433565b5f8115806108ab575060016065546108a8919061298a565b82115b6108b557816108c4565b60016065546108c4919061298a565b90505f805b6001600160a01b0385165f9081526069602052604090206108e990611ba3565b81101561098f576001600160a01b0385165f9081526069602052604081206109119083611bac565b6001600160a01b0387165f9081526069602052604090209091506109359082611c18565b801561096957506001600160a01b038087165f90815260696020908152604080832093851683526003909301905220548410155b1561098657610979818786611c39565b6109839084612913565b92505b506001016108c9565b5080156109a0576109a0848261208d565b50505050565b6109ae611bbe565b6109b75f6122e3565b565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610a315760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6001600160a01b0384165f9081526066602090815260408083208584529091529020600101819055811580610a8d57506001600160a01b038084165f908152606960209081526040808320938816835260039093019052205482145b15610b72576001600160a01b0384165f9081526066602090815260408083208584529091529020610ac1906002018461234c565b506001600160a01b038085165f90815260666020908152604080832086845282528083209387168352600490930181528282208290556069905220610b06908561234c565b506001600160a01b038381165f908152606960209081526040808320938816835260028401825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560038401825280832083905560049093019052908120556109a0565b6001600160a01b038084165f9081526069602090815260408083209388168352600290930190522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610bd0908361298a565b6001600160a01b038085165f908152606960209081526040808320938916835260049093019052205550505050565b6001600160a01b0381165f908152606960205260408120606091829182918291610c2890611ba3565b90505f8167ffffffffffffffff811115610c4457610c4461286a565b604051908082528060200260200182016040528015610c6d578160200160208202803683370190505b5090505f8267ffffffffffffffff811115610c8a57610c8a61286a565b604051908082528060200260200182016040528015610cb3578160200160208202803683370190505b5090505f8367ffffffffffffffff811115610cd057610cd061286a565b604051908082528060200260200182016040528015610cf9578160200160208202803683370190505b5090505f8467ffffffffffffffff811115610d1657610d1661286a565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b5090505f5b85811015610f2b576001600160a01b038b165f908152606960205260409020610d6d9082611bac565b858281518110610d7f57610d7f612926565b60200260200101906001600160a01b031690816001600160a01b03168152505060695f8c6001600160a01b03166001600160a01b031681526020019081526020015f206002015f868381518110610dd857610dd8612926565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f9054906101000a900460ff16848281518110610e1e57610e1e612926565b9115156020928302919091018201526001600160a01b038c165f908152606990915260408120865160039091019190879084908110610e5f57610e5f612926565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054838281518110610e9957610e99612926565b60200260200101818152505060695f8c6001600160a01b03166001600160a01b031681526020019081526020015f206004015f868381518110610ede57610ede612926565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054828281518110610f1857610f18612926565b6020908102919091010152600101610d44565b509299919850965090945092505050565b6001600160a01b0381165f908152606960205260408120610f5c90611ba3565b5f03610fd05760405162461bcd60e51b815260206004820152602860248201527f696e76616c69642064656c656761746f72206f72206e6f2072656d61696e696e60448201527f67207265776172640000000000000000000000000000000000000000000000006064820152608401610433565b6001600160a01b0382165f908152606960205260409020610ff19084611c18565b6110625760405162461bcd60e51b8152602060048201526024808201527f6e6f2072656d61696e696e6720726577617264206f66207468652064656c656760448201527f61746565000000000000000000000000000000000000000000000000000000006064820152608401610433565b6001600160a01b038083165f9081526069602090815260408083209387168352600390930190529081205481905b60655481101561120a576001600160a01b038087165f9081526066602090815260408083208584528252808320938916835260049093019052205415611104576001600160a01b038087165f9081526066602090815260408083208584528252808320938916835260049093019052205491505b6001600160a01b0386165f90815260666020908152604080832084845290915290206001015415611158576001600160a01b0386165f90815260666020908152604080832084845290915290206001015492505b6001600160a01b0386165f90815260666020908152604080832084845290915290205483906111889084906128c4565b61119291906128db565b61119c9085612913565b6001600160a01b038087165f908152606960209081526040808320938b16835260029093019052205490945060ff1680156111fe57506001600160a01b038086165f908152606960209081526040808320938a16835260049093019052205481145b61120a57600101611090565b50505092915050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461128b5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6065545f036112dc5760405162461bcd60e51b815260206004820152600e60248201527f6e6f74206d696e746564207965740000000000000000000000000000000000006044820152606401610433565b5f8115806112f7575060016065546112f4919061298a565b82115b6113015781611310565b6001606554611310919061298a565b90505f61131e858584611c39565b9050801561133057611330848261208d565b5050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146113af5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6001600160a01b0381165f908152606860205260409020546114135760405162461bcd60e51b815260206004820152601660248201527f6e6f20636f6d6d697373696f6e20746f20636c61696d000000000000000000006044820152606401610433565b6001600160a01b0381165f9081526068602052604081208054919055611439828261208d565b816001600160a01b03167f8e14daa5332205b1634040e1054e93d1f5396ec8bf0115d133b7fbaf4a52e4118260405161147491815260200190565b60405180910390a25050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146114f85760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6001600160a01b0386165f90815260666020908152604080832087845290915290206001810183905561152e9060020186612360565b506001600160a01b038087165f90815260666020908152604080832088845282528083209389168352600490930190522083905580156115b6576001600160a01b0385165f9081526069602052604090206115899087612360565b506001600160a01b038086165f908152606960209081526040808320938a16835260039093019052208490555b505050505050565b5f54610100900460ff16158080156115dc57505f54600160ff909116105b806115f55750303b1580156115f557505f5460ff166001145b6116675760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610433565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156116c3575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0382166117195760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610433565b611722826122e3565b8015611784575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146118005760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79207265636f726420636f6e747261637420616c6c6f776564000000006044820152606401610433565b60658054905f61180f83612953565b9190505550866001606554611824919061298a565b146118715760405162461bcd60e51b815260206004820152601360248201527f696e76616c69642065706f636820696e646578000000000000000000000000006044820152606401610433565b828514801561187f57508085145b6118cb5760405162461bcd60e51b815260206004820152601360248201527f696e76616c69642064617461206c656e677468000000000000000000000000006044820152606401610433565b5f5b85811015611ade578484828181106118e7576118e7612926565b9050602002013560665f89898581811061190357611903612926565b90506020020160208101906119189190612512565b6001600160a01b0316815260208082019290925260409081015f9081208c825290925281209190915560669088888481811061195657611956612926565b905060200201602081019061196b9190612512565b6001600160a01b0316815260208082019290925260409081015f9081208b82529092529020600101541580156119a057505f88115b15611a615760665f8888848181106119ba576119ba612926565b90506020020160208101906119cf9190612512565b6001600160a01b03166001600160a01b031681526020019081526020015f205f60018a6119fc919061298a565b81526020019081526020015f206001015460665f898985818110611a2257611a22612926565b9050602002016020810190611a379190612512565b6001600160a01b0316815260208082019290925260409081015f9081208c82529092529020600101555b828282818110611a7357611a73612926565b9050602002013560685f898985818110611a8f57611a8f612926565b9050602002016020810190611aa49190612512565b6001600160a01b03166001600160a01b031681526020019081526020015f205f828254611ad19190612913565b90915550506001016118cd565b5050505050505050565b6001600160a01b0382165f908152606960205260408120611b099083611c18565b1590505b92915050565b611b1b611bbe565b6001600160a01b038116611b975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610433565b611ba0816122e3565b50565b5f611b0d825490565b5f611bb78383612374565b9392505050565b6033546001600160a01b031633146109b75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610433565b6001600160a01b0381165f9081526001830160205260408120541515611bb7565b6001600160a01b0382165f908152606960205260408120611c5a9085611c18565b611ca65760405162461bcd60e51b815260206004820152601360248201527f6e6f2072656d61696e696e6720726577617264000000000000000000000000006044820152606401610433565b6001600160a01b038084165f9081526069602090815260408083209388168352600390930190522054821015611d1e5760405162461bcd60e51b815260206004820152601260248201527f616c6c2072657761726420636c61696d656400000000000000000000000000006044820152606401610433565b6001600160a01b038084165f9081526069602090815260408083209388168352600390930190529081205481905b848111611f5b576001600160a01b038088165f9081526066602090815260408083208584528252808320938a16835260049093019052205415611dbd576001600160a01b038088165f9081526066602090815260408083208584528252808320938a16835260049093019052205491505b6001600160a01b0387165f90815260666020908152604080832084845290915290206001015415611e11576001600160a01b0387165f90815260666020908152604080832084845290915290206001015492505b6001600160a01b0387165f9081526066602090815260408083208484529091529020548390611e419084906128c4565b611e4b91906128db565b611e559085612913565b6001600160a01b038088165f908152606960209081526040808320938c16835260029093019052205490945060ff168015611eb757506001600160a01b038087165f908152606960209081526040808320938b16835260049093019052205481145b15611f49576001600160a01b0386165f908152606960205260409020611edd908861234c565b506001600160a01b038681165f908152606960209081526040808320938b16835260028401825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556003840182528083208390556004909301905290812055611f5b565b80611f5381612953565b915050611d4c565b50611f67846001612913565b6001600160a01b038087165f908152606960209081526040808320938b16835260039093018152828220939093556066909252812090611fa8866001612913565b81526020019081526020015f206004015f866001600160a01b03166001600160a01b031681526020019081526020015f20545f0361202e576001600160a01b0386165f9081526066602052604081208291612004876001612913565b815260208082019290925260409081015f9081206001600160a01b038a1682526004019092529020555b856001600160a01b0316856001600160a01b03167f7a84a08b02c91f3c62d572853f966fc799bbd121e8ad7833a4494ab8dcfcb404868660405161207c929190918252602082015260400190565b60405180910390a350509392505050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561210a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061212e919061299d565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af11580156121b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121dc91906129b4565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561225a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061227e919061299d565b90505f83118015612297575082612295828461298a565b145b6109a05760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610433565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f611bb7836001600160a01b03841661239a565b5f611bb7836001600160a01b03841661247d565b5f825f01828154811061238957612389612926565b905f5260205f200154905092915050565b5f8181526001830160205260408120548015612474575f6123bc60018361298a565b85549091505f906123cf9060019061298a565b905081811461242e575f865f0182815481106123ed576123ed612926565b905f5260205f200154905080875f01848154811061240d5761240d612926565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061243f5761243f6129cf565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050611b0d565b5f915050611b0d565b5f8181526001830160205260408120546124c257508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155611b0d565b505f611b0d565b5080545f8255905f5260205f2090810190611ba091905b808211156124f3575f81556001016124e0565b5090565b80356001600160a01b038116811461250d575f80fd5b919050565b5f60208284031215612522575f80fd5b611bb7826124f7565b5f815180845260208085019450602084015f5b838110156125635781516001600160a01b03168752958201959082019060010161253e565b509495945050505050565b5f815180845260208085019450602084015f5b8381101561256357815187529582019590820190600101612581565b604081525f6125af604083018561252b565b82810360208401526125c1818561256e565b95945050505050565b5f80604083850312156125db575f80fd5b6125e4836124f7565b946020939093013593505050565b5f805f8060808587031215612605575f80fd5b61260e856124f7565b935061261c602086016124f7565b93969395505050506040820135916060013590565b608081525f612643608083018761252b565b8281036020848101919091528651808352878201928201905f5b8181101561267b57845115158352938301939183019160010161265d565b5050848103604086015261268f818861256e565b9250505082810360608401526126a5818561256e565b979650505050505050565b5f80604083850312156126c1575f80fd5b6126ca836124f7565b91506126d8602084016124f7565b90509250929050565b5f805f606084860312156126f3575f80fd5b6126fc846124f7565b925061270a602085016124f7565b9150604084013590509250925092565b8015158114611ba0575f80fd5b5f805f805f8060c0878903121561273c575f80fd5b612745876124f7565b9550612753602088016124f7565b945060408701359350606087013592506080870135915060a08701356127788161271a565b809150509295509295509295565b5f8083601f840112612796575f80fd5b50813567ffffffffffffffff8111156127ad575f80fd5b6020830191508360208260051b85010111156127c7575f80fd5b9250929050565b5f805f805f805f6080888a0312156127e4575f80fd5b87359650602088013567ffffffffffffffff80821115612802575f80fd5b61280e8b838c01612786565b909850965060408a0135915080821115612826575f80fd5b6128328b838c01612786565b909650945060608a013591508082111561284a575f80fd5b506128578a828b01612786565b989b979a50959850939692959293505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417611b0d57611b0d612897565b5f8261290e577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b80820180821115611b0d57611b0d612897565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361298357612983612897565b5060010190565b81810381811115611b0d57611b0d612897565b5f602082840312156129ad575f80fd5b5051919050565b5f602082840312156129c4575f80fd5b8151611bb78161271a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a +0x608060405234801561000f575f80fd5b5060043610610163575f3560e01c8063a766c529116100c7578063cd4281d01161007d578063d557714111610063578063d55771411461033e578063de6ac93314610365578063f2fde38b14610388575f80fd5b8063cd4281d014610304578063cdd0c50e1461032b575f80fd5b8063b809af0f116100ad578063b809af0f146102b6578063bf2dca0a146102c9578063c4d66de8146102f1575f80fd5b8063a766c5291461027b578063ac2ac640146102a3575f80fd5b8063807de4431161011c578063921ae9b811610102578063921ae9b8146102245780639889be5114610247578063996cba6814610268575f80fd5b8063807de443146101d45780638da5cb5b14610213575f80fd5b80635cf20c7b1161014c5780635cf20c7b146101a6578063715018a6146101b95780637f683ee3146101c1575f80fd5b8063273d8e82146101675780634eedab3214610191575b5f80fd5b61017a610175366004612537565b61039b565b6040516101889291906125c2565b60405180910390f35b6101a461019f3660046125ef565b610729565b005b6101a46101b43660046125ef565b6107c7565b6101a46109c3565b6101a46101cf366004612617565b6109d6565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610188565b6033546001600160a01b03166101fb565b610237610232366004612537565b610c1c565b6040516101889493929190612656565b61025a6102553660046126d5565b610f59565b604051908152602001610188565b6101a4610276366004612706565b611230565b61025a610289366004612537565b6001600160a01b03165f9081526067602052604090205490565b6101a46102b1366004612537565b611355565b6101a46102c436600461274c565b61149e565b61025a6102d7366004612537565b6001600160a01b03165f9081526068602052604090205490565b6101a46102ff366004612537565b6115dc565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6101a46103393660046127f3565b6117a6565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6103786103733660046126d5565b611b06565b6040519015158152602001610188565b6101a4610396366004612537565b611b31565b6001600160a01b0381165f90815260696020526040812060609182916103c090611bc1565b9050805f0361043c5760405162461bcd60e51b815260206004820152602860248201527f696e76616c69642064656c656761746f72206f72206e6f2072656d61696e696e60448201527f672072657761726400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b8067ffffffffffffffff8111156104555761045561288f565b60405190808252806020026020018201604052801561047e578160200160208202803683370190505b5092508067ffffffffffffffff81111561049a5761049a61288f565b6040519080825280602002602001820160405280156104c3578160200160208202803683370190505b5091505f5b6001600160a01b0385165f9081526069602052604090206104e890611bc1565b811015610722576001600160a01b0385165f9081526069602052604081206105109083611bca565b6001600160a01b038088165f908152606960209081526040808320938516835260039093019052908120549192509081908190805b6065548110156106bf576001600160a01b038087165f9081526066602090815260408083208584528252808320938f168352600490930190522054156105b9576001600160a01b038087165f9081526066602090815260408083208584528252808320938f16835260049093019052205492505b6001600160a01b0386165f9081526066602090815260408083208484529091529020600101541561060d576001600160a01b0386165f90815260666020908152604080832084845290915290206001015493505b6001600160a01b0386165f908152606660209081526040808320848452909152902054849061063d9085906128e9565b6106479190612900565b6106519086612938565b6001600160a01b03808d165f908152606960209081526040808320938b16835260029093019052205490955060ff1680156106b357506001600160a01b03808c165f908152606960209081526040808320938a16835260049093019052205481145b6106bf57600101610545565b50848987815181106106d3576106d361294b565b60200260200101906001600160a01b031690816001600160a01b031681525050838887815181106107065761070661294b565b60209081029190910101525050600190930192506104c8915050565b5050915091565b610731611bdc565b6001600160a01b0382165f908152606760205260409020545b8181116107a8576001600160a01b0383165f908152606660209081526040808320848452909152812081815560018101829055906002820181818161078f82826124ee565b50505050505080806107a090612978565b91505061074a565b6001600160a01b039092165f9081526067602052604090209190915550565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461083f5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6065545f036108905760405162461bcd60e51b815260206004820152600e60248201527f6e6f74206d696e746564207965740000000000000000000000000000000000006044820152606401610433565b5f8115806108ab575060016065546108a891906129af565b82115b6108b557816108c4565b60016065546108c491906129af565b90505f805b6001600160a01b0385165f9081526069602052604090206108e990611bc1565b8110156109ac576001600160a01b0385165f90815260696020526040812081906109139084611bca565b6001600160a01b0388165f9081526069602052604090209091506109379082611c36565b801561096b57506001600160a01b038088165f90815260696020908152604080832093851683526003909301905220548510155b15610992575f8061097d838a89611c57565b909250905061098c8287612938565b95509250505b816109a557826109a181612978565b9350505b50506108c9565b5080156109bd576109bd84826120b2565b50505050565b6109cb611bdc565b6109d45f612308565b565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610a4e5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6001600160a01b0384165f9081526066602090815260408083208584529091529020600101819055811580610aaa57506001600160a01b038084165f908152606960209081526040808320938816835260039093019052205482145b15610b8f576001600160a01b0384165f9081526066602090815260408083208584529091529020610ade9060020184612371565b506001600160a01b038085165f90815260666020908152604080832086845282528083209387168352600490930181528282208290556069905220610b239085612371565b506001600160a01b038381165f908152606960209081526040808320938816835260028401825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560038401825280832083905560049093019052908120556109bd565b6001600160a01b038084165f9081526069602090815260408083209388168352600290930190522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610bed90836129af565b6001600160a01b038085165f908152606960209081526040808320938916835260049093019052205550505050565b6001600160a01b0381165f908152606960205260408120606091829182918291610c4590611bc1565b90505f8167ffffffffffffffff811115610c6157610c6161288f565b604051908082528060200260200182016040528015610c8a578160200160208202803683370190505b5090505f8267ffffffffffffffff811115610ca757610ca761288f565b604051908082528060200260200182016040528015610cd0578160200160208202803683370190505b5090505f8367ffffffffffffffff811115610ced57610ced61288f565b604051908082528060200260200182016040528015610d16578160200160208202803683370190505b5090505f8467ffffffffffffffff811115610d3357610d3361288f565b604051908082528060200260200182016040528015610d5c578160200160208202803683370190505b5090505f5b85811015610f48576001600160a01b038b165f908152606960205260409020610d8a9082611bca565b858281518110610d9c57610d9c61294b565b60200260200101906001600160a01b031690816001600160a01b03168152505060695f8c6001600160a01b03166001600160a01b031681526020019081526020015f206002015f868381518110610df557610df561294b565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f9054906101000a900460ff16848281518110610e3b57610e3b61294b565b9115156020928302919091018201526001600160a01b038c165f908152606990915260408120865160039091019190879084908110610e7c57610e7c61294b565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054838281518110610eb657610eb661294b565b60200260200101818152505060695f8c6001600160a01b03166001600160a01b031681526020019081526020015f206004015f868381518110610efb57610efb61294b565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054828281518110610f3557610f3561294b565b6020908102919091010152600101610d61565b509299919850965090945092505050565b6001600160a01b0381165f908152606960205260408120610f7990611bc1565b5f03610fed5760405162461bcd60e51b815260206004820152602860248201527f696e76616c69642064656c656761746f72206f72206e6f2072656d61696e696e60448201527f67207265776172640000000000000000000000000000000000000000000000006064820152608401610433565b6001600160a01b0382165f90815260696020526040902061100e9084611c36565b61107f5760405162461bcd60e51b8152602060048201526024808201527f6e6f2072656d61696e696e6720726577617264206f66207468652064656c656760448201527f61746565000000000000000000000000000000000000000000000000000000006064820152608401610433565b6001600160a01b038083165f9081526069602090815260408083209387168352600390930190529081205481905b606554811015611227576001600160a01b038087165f9081526066602090815260408083208584528252808320938916835260049093019052205415611121576001600160a01b038087165f9081526066602090815260408083208584528252808320938916835260049093019052205491505b6001600160a01b0386165f90815260666020908152604080832084845290915290206001015415611175576001600160a01b0386165f90815260666020908152604080832084845290915290206001015492505b6001600160a01b0386165f90815260666020908152604080832084845290915290205483906111a59084906128e9565b6111af9190612900565b6111b99085612938565b6001600160a01b038087165f908152606960209081526040808320938b16835260029093019052205490945060ff16801561121b57506001600160a01b038086165f908152606960209081526040808320938a16835260049093019052205481145b611227576001016110ad565b50505092915050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146112a85760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6065545f036112f95760405162461bcd60e51b815260206004820152600e60248201527f6e6f74206d696e746564207965740000000000000000000000000000000000006044820152606401610433565b5f8115806113145750600160655461131191906129af565b82115b61131e578161132d565b600160655461132d91906129af565b90505f61133b858584611c57565b509050801561134e5761134e84826120b2565b5050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146113cd5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6001600160a01b0381165f908152606860205260409020546114315760405162461bcd60e51b815260206004820152601660248201527f6e6f20636f6d6d697373696f6e20746f20636c61696d000000000000000000006044820152606401610433565b6001600160a01b0381165f908152606860205260408120805491905561145782826120b2565b816001600160a01b03167f8e14daa5332205b1634040e1054e93d1f5396ec8bf0115d133b7fbaf4a52e4118260405161149291815260200190565b60405180910390a25050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146115165760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6001600160a01b0386165f90815260666020908152604080832087845290915290206001810183905561154c9060020186612385565b506001600160a01b038087165f90815260666020908152604080832088845282528083209389168352600490930190522083905580156115d4576001600160a01b0385165f9081526069602052604090206115a79087612385565b506001600160a01b038086165f908152606960209081526040808320938a16835260039093019052208490555b505050505050565b5f54610100900460ff16158080156115fa57505f54600160ff909116105b806116135750303b15801561161357505f5460ff166001145b6116855760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610433565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156116e1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0382166117375760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610433565b61174082612308565b80156117a2575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461181e5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79207265636f726420636f6e747261637420616c6c6f776564000000006044820152606401610433565b60658054905f61182d83612978565b919050555086600160655461184291906129af565b1461188f5760405162461bcd60e51b815260206004820152601360248201527f696e76616c69642065706f636820696e646578000000000000000000000000006044820152606401610433565b828514801561189d57508085145b6118e95760405162461bcd60e51b815260206004820152601360248201527f696e76616c69642064617461206c656e677468000000000000000000000000006044820152606401610433565b5f5b85811015611afc578484828181106119055761190561294b565b9050602002013560665f8989858181106119215761192161294b565b90506020020160208101906119369190612537565b6001600160a01b0316815260208082019290925260409081015f9081208c82529092528120919091556066908888848181106119745761197461294b565b90506020020160208101906119899190612537565b6001600160a01b0316815260208082019290925260409081015f9081208b82529092529020600101541580156119be57505f88115b15611a7f5760665f8888848181106119d8576119d861294b565b90506020020160208101906119ed9190612537565b6001600160a01b03166001600160a01b031681526020019081526020015f205f60018a611a1a91906129af565b81526020019081526020015f206001015460665f898985818110611a4057611a4061294b565b9050602002016020810190611a559190612537565b6001600160a01b0316815260208082019290925260409081015f9081208c82529092529020600101555b828282818110611a9157611a9161294b565b9050602002013560685f898985818110611aad57611aad61294b565b9050602002016020810190611ac29190612537565b6001600160a01b03166001600160a01b031681526020019081526020015f205f828254611aef9190612938565b90915550506001016118eb565b5050505050505050565b6001600160a01b0382165f908152606960205260408120611b279083611c36565b1590505b92915050565b611b39611bdc565b6001600160a01b038116611bb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610433565b611bbe81612308565b50565b5f611b2b825490565b5f611bd58383612399565b9392505050565b6033546001600160a01b031633146109d45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610433565b6001600160a01b0381165f9081526001830160205260408120541515611bd5565b6001600160a01b0382165f9081526069602052604081208190611c7a9086611c36565b611cc65760405162461bcd60e51b815260206004820152601360248201527f6e6f2072656d61696e696e6720726577617264000000000000000000000000006044820152606401610433565b6001600160a01b038085165f9081526069602090815260408083209389168352600390930190522054831015611d3e5760405162461bcd60e51b815260206004820152601260248201527f616c6c2072657761726420636c61696d656400000000000000000000000000006044820152606401610433565b6001600160a01b038085165f9081526069602090815260408083209389168352600390930190529081205481905b858111611f7f576001600160a01b038089165f9081526066602090815260408083208584528252808320938b16835260049093019052205415611ddd576001600160a01b038089165f9081526066602090815260408083208584528252808320938b16835260049093019052205491505b6001600160a01b0388165f90815260666020908152604080832084845290915290206001015415611e31576001600160a01b0388165f90815260666020908152604080832084845290915290206001015492505b6001600160a01b0388165f9081526066602090815260408083208484529091529020548390611e619084906128e9565b611e6b9190612900565b611e759086612938565b6001600160a01b038089165f908152606960209081526040808320938d16835260029093019052205490955060ff168015611ed757506001600160a01b038088165f908152606960209081526040808320938c16835260049093019052205481145b15611f6d576001600160a01b0387165f90815260696020526040902060019450611f019089612371565b506001600160a01b038781165f908152606960209081526040808320938c16835260028401825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556003840182528083208390556004909301905290812055611f7f565b80611f7781612978565b915050611d6c565b50611f8b856001612938565b6001600160a01b038088165f908152606960209081526040808320938c16835260039093018152828220939093556066909252812090611fcc876001612938565b81526020019081526020015f206004015f876001600160a01b03166001600160a01b031681526020019081526020015f20545f03612052576001600160a01b0387165f9081526066602052604081208291612028886001612938565b815260208082019290925260409081015f9081206001600160a01b038b1682526004019092529020555b866001600160a01b0316866001600160a01b03167f7a84a08b02c91f3c62d572853f966fc799bbd121e8ad7833a4494ab8dcfcb40487876040516120a0929190918252602082015260400190565b60405180910390a35050935093915050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561212f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061215391906129c2565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af11580156121dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061220191906129d9565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561227f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122a391906129c2565b90505f831180156122bc5750826122ba82846129af565b145b6109bd5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610433565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f611bd5836001600160a01b0384166123bf565b5f611bd5836001600160a01b0384166124a2565b5f825f0182815481106123ae576123ae61294b565b905f5260205f200154905092915050565b5f8181526001830160205260408120548015612499575f6123e16001836129af565b85549091505f906123f4906001906129af565b9050818114612453575f865f0182815481106124125761241261294b565b905f5260205f200154905080875f0184815481106124325761243261294b565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612464576124646129f4565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050611b2b565b5f915050611b2b565b5f8181526001830160205260408120546124e757508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155611b2b565b505f611b2b565b5080545f8255905f5260205f2090810190611bbe91905b80821115612518575f8155600101612505565b5090565b80356001600160a01b0381168114612532575f80fd5b919050565b5f60208284031215612547575f80fd5b611bd58261251c565b5f815180845260208085019450602084015f5b838110156125885781516001600160a01b031687529582019590820190600101612563565b509495945050505050565b5f815180845260208085019450602084015f5b83811015612588578151875295820195908201906001016125a6565b604081525f6125d46040830185612550565b82810360208401526125e68185612593565b95945050505050565b5f8060408385031215612600575f80fd5b6126098361251c565b946020939093013593505050565b5f805f806080858703121561262a575f80fd5b6126338561251c565b93506126416020860161251c565b93969395505050506040820135916060013590565b608081525f6126686080830187612550565b8281036020848101919091528651808352878201928201905f5b818110156126a0578451151583529383019391830191600101612682565b505084810360408601526126b48188612593565b9250505082810360608401526126ca8185612593565b979650505050505050565b5f80604083850312156126e6575f80fd5b6126ef8361251c565b91506126fd6020840161251c565b90509250929050565b5f805f60608486031215612718575f80fd5b6127218461251c565b925061272f6020850161251c565b9150604084013590509250925092565b8015158114611bbe575f80fd5b5f805f805f8060c08789031215612761575f80fd5b61276a8761251c565b95506127786020880161251c565b945060408701359350606087013592506080870135915060a087013561279d8161273f565b809150509295509295509295565b5f8083601f8401126127bb575f80fd5b50813567ffffffffffffffff8111156127d2575f80fd5b6020830191508360208260051b85010111156127ec575f80fd5b9250929050565b5f805f805f805f6080888a031215612809575f80fd5b87359650602088013567ffffffffffffffff80821115612827575f80fd5b6128338b838c016127ab565b909850965060408a013591508082111561284b575f80fd5b6128578b838c016127ab565b909650945060608a013591508082111561286f575f80fd5b5061287c8a828b016127ab565b989b979a50959850939692959293505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417611b2b57611b2b6128bc565b5f82612933577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b80820180821115611b2b57611b2b6128bc565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129a8576129a86128bc565b5060010190565b81810381811115611b2b57611b2b6128bc565b5f602082840312156129d2575f80fd5b5051919050565b5f602082840312156129e9575f80fd5b8151611bd58161273f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a diff --git a/bindings/bindings/distribute.go b/bindings/bindings/distribute.go index d251237d9..3632a94b0 100644 --- a/bindings/bindings/distribute.go +++ b/bindings/bindings/distribute.go @@ -32,7 +32,7 @@ var ( // DistributeMetaData contains all meta data concerning the Distribute contract. var DistributeMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CommissionClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"upToEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RewardClaimed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"L2_STAKING_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MORPH_TOKEN_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECORD_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"targetEpochIndex\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"targetEpochIndex\",\"type\":\"uint256\"}],\"name\":\"claimAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"claimCommission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"targetEpochIndex\",\"type\":\"uint256\"}],\"name\":\"cleanDistributions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"isRewardClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"claimed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"effectiveEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"newDelegation\",\"type\":\"bool\"}],\"name\":\"notifyDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"effectiveEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"}],\"name\":\"notifyUndelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"queryAllUnclaimed\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"delegatees\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"rewards\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"queryAllUnclaimedEpochs\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"queryOldestDistribution\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"epochIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"queryUnclaimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"queryUnclaimedCommission\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epochIndex\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"sequencers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"delegatorRewards\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"commissionsAmount\",\"type\":\"uint256[]\"}],\"name\":\"updateEpochReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60e060405234801562000010575f80fd5b5073530000000000000000000000000000000000001360805273530000000000000000000000000000000000001560a05273530000000000000000000000000000000000001260c0526200006362000069565b62000127565b5f54610100900460ff1615620000d55760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161462000125575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805160a05160c051612a09620001915f395f8181610309015261178b01525f81816101d9015281816107ca015281816109bc015281816112160152818161133a015261148301525f8181610343015281816120bd01528181612170015261220d0152612a095ff3fe608060405234801561000f575f80fd5b5060043610610163575f3560e01c8063a766c529116100c7578063cd4281d01161007d578063d557714111610063578063d55771411461033e578063de6ac93314610365578063f2fde38b14610388575f80fd5b8063cd4281d014610304578063cdd0c50e1461032b575f80fd5b8063b809af0f116100ad578063b809af0f146102b6578063bf2dca0a146102c9578063c4d66de8146102f1575f80fd5b8063a766c5291461027b578063ac2ac640146102a3575f80fd5b8063807de4431161011c578063921ae9b811610102578063921ae9b8146102245780639889be5114610247578063996cba6814610268575f80fd5b8063807de443146101d45780638da5cb5b14610213575f80fd5b80635cf20c7b1161014c5780635cf20c7b146101a6578063715018a6146101b95780637f683ee3146101c1575f80fd5b8063273d8e82146101675780634eedab3214610191575b5f80fd5b61017a610175366004612512565b61039b565b60405161018892919061259d565b60405180910390f35b6101a461019f3660046125ca565b610729565b005b6101a46101b43660046125ca565b6107c7565b6101a46109a6565b6101a46101cf3660046125f2565b6109b9565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610188565b6033546001600160a01b03166101fb565b610237610232366004612512565b610bff565b6040516101889493929190612631565b61025a6102553660046126b0565b610f3c565b604051908152602001610188565b6101a46102763660046126e1565b611213565b61025a610289366004612512565b6001600160a01b03165f9081526067602052604090205490565b6101a46102b1366004612512565b611337565b6101a46102c4366004612727565b611480565b61025a6102d7366004612512565b6001600160a01b03165f9081526068602052604090205490565b6101a46102ff366004612512565b6115be565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6101a46103393660046127ce565b611788565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6103786103733660046126b0565b611ae8565b6040519015158152602001610188565b6101a4610396366004612512565b611b13565b6001600160a01b0381165f90815260696020526040812060609182916103c090611ba3565b9050805f0361043c5760405162461bcd60e51b815260206004820152602860248201527f696e76616c69642064656c656761746f72206f72206e6f2072656d61696e696e60448201527f672072657761726400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b8067ffffffffffffffff8111156104555761045561286a565b60405190808252806020026020018201604052801561047e578160200160208202803683370190505b5092508067ffffffffffffffff81111561049a5761049a61286a565b6040519080825280602002602001820160405280156104c3578160200160208202803683370190505b5091505f5b6001600160a01b0385165f9081526069602052604090206104e890611ba3565b811015610722576001600160a01b0385165f9081526069602052604081206105109083611bac565b6001600160a01b038088165f908152606960209081526040808320938516835260039093019052908120549192509081908190805b6065548110156106bf576001600160a01b038087165f9081526066602090815260408083208584528252808320938f168352600490930190522054156105b9576001600160a01b038087165f9081526066602090815260408083208584528252808320938f16835260049093019052205492505b6001600160a01b0386165f9081526066602090815260408083208484529091529020600101541561060d576001600160a01b0386165f90815260666020908152604080832084845290915290206001015493505b6001600160a01b0386165f908152606660209081526040808320848452909152902054849061063d9085906128c4565b61064791906128db565b6106519086612913565b6001600160a01b03808d165f908152606960209081526040808320938b16835260029093019052205490955060ff1680156106b357506001600160a01b03808c165f908152606960209081526040808320938a16835260049093019052205481145b6106bf57600101610545565b50848987815181106106d3576106d3612926565b60200260200101906001600160a01b031690816001600160a01b0316815250508388878151811061070657610706612926565b60209081029190910101525050600190930192506104c8915050565b5050915091565b610731611bbe565b6001600160a01b0382165f908152606760205260409020545b8181116107a8576001600160a01b0383165f908152606660209081526040808320848452909152812081815560018101829055906002820181818161078f82826124c9565b50505050505080806107a090612953565b91505061074a565b6001600160a01b039092165f9081526067602052604090209190915550565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461083f5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6065545f036108905760405162461bcd60e51b815260206004820152600e60248201527f6e6f74206d696e746564207965740000000000000000000000000000000000006044820152606401610433565b5f8115806108ab575060016065546108a8919061298a565b82115b6108b557816108c4565b60016065546108c4919061298a565b90505f805b6001600160a01b0385165f9081526069602052604090206108e990611ba3565b81101561098f576001600160a01b0385165f9081526069602052604081206109119083611bac565b6001600160a01b0387165f9081526069602052604090209091506109359082611c18565b801561096957506001600160a01b038087165f90815260696020908152604080832093851683526003909301905220548410155b1561098657610979818786611c39565b6109839084612913565b92505b506001016108c9565b5080156109a0576109a0848261208d565b50505050565b6109ae611bbe565b6109b75f6122e3565b565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610a315760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6001600160a01b0384165f9081526066602090815260408083208584529091529020600101819055811580610a8d57506001600160a01b038084165f908152606960209081526040808320938816835260039093019052205482145b15610b72576001600160a01b0384165f9081526066602090815260408083208584529091529020610ac1906002018461234c565b506001600160a01b038085165f90815260666020908152604080832086845282528083209387168352600490930181528282208290556069905220610b06908561234c565b506001600160a01b038381165f908152606960209081526040808320938816835260028401825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560038401825280832083905560049093019052908120556109a0565b6001600160a01b038084165f9081526069602090815260408083209388168352600290930190522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610bd0908361298a565b6001600160a01b038085165f908152606960209081526040808320938916835260049093019052205550505050565b6001600160a01b0381165f908152606960205260408120606091829182918291610c2890611ba3565b90505f8167ffffffffffffffff811115610c4457610c4461286a565b604051908082528060200260200182016040528015610c6d578160200160208202803683370190505b5090505f8267ffffffffffffffff811115610c8a57610c8a61286a565b604051908082528060200260200182016040528015610cb3578160200160208202803683370190505b5090505f8367ffffffffffffffff811115610cd057610cd061286a565b604051908082528060200260200182016040528015610cf9578160200160208202803683370190505b5090505f8467ffffffffffffffff811115610d1657610d1661286a565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b5090505f5b85811015610f2b576001600160a01b038b165f908152606960205260409020610d6d9082611bac565b858281518110610d7f57610d7f612926565b60200260200101906001600160a01b031690816001600160a01b03168152505060695f8c6001600160a01b03166001600160a01b031681526020019081526020015f206002015f868381518110610dd857610dd8612926565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f9054906101000a900460ff16848281518110610e1e57610e1e612926565b9115156020928302919091018201526001600160a01b038c165f908152606990915260408120865160039091019190879084908110610e5f57610e5f612926565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054838281518110610e9957610e99612926565b60200260200101818152505060695f8c6001600160a01b03166001600160a01b031681526020019081526020015f206004015f868381518110610ede57610ede612926565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054828281518110610f1857610f18612926565b6020908102919091010152600101610d44565b509299919850965090945092505050565b6001600160a01b0381165f908152606960205260408120610f5c90611ba3565b5f03610fd05760405162461bcd60e51b815260206004820152602860248201527f696e76616c69642064656c656761746f72206f72206e6f2072656d61696e696e60448201527f67207265776172640000000000000000000000000000000000000000000000006064820152608401610433565b6001600160a01b0382165f908152606960205260409020610ff19084611c18565b6110625760405162461bcd60e51b8152602060048201526024808201527f6e6f2072656d61696e696e6720726577617264206f66207468652064656c656760448201527f61746565000000000000000000000000000000000000000000000000000000006064820152608401610433565b6001600160a01b038083165f9081526069602090815260408083209387168352600390930190529081205481905b60655481101561120a576001600160a01b038087165f9081526066602090815260408083208584528252808320938916835260049093019052205415611104576001600160a01b038087165f9081526066602090815260408083208584528252808320938916835260049093019052205491505b6001600160a01b0386165f90815260666020908152604080832084845290915290206001015415611158576001600160a01b0386165f90815260666020908152604080832084845290915290206001015492505b6001600160a01b0386165f90815260666020908152604080832084845290915290205483906111889084906128c4565b61119291906128db565b61119c9085612913565b6001600160a01b038087165f908152606960209081526040808320938b16835260029093019052205490945060ff1680156111fe57506001600160a01b038086165f908152606960209081526040808320938a16835260049093019052205481145b61120a57600101611090565b50505092915050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461128b5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6065545f036112dc5760405162461bcd60e51b815260206004820152600e60248201527f6e6f74206d696e746564207965740000000000000000000000000000000000006044820152606401610433565b5f8115806112f7575060016065546112f4919061298a565b82115b6113015781611310565b6001606554611310919061298a565b90505f61131e858584611c39565b9050801561133057611330848261208d565b5050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146113af5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6001600160a01b0381165f908152606860205260409020546114135760405162461bcd60e51b815260206004820152601660248201527f6e6f20636f6d6d697373696f6e20746f20636c61696d000000000000000000006044820152606401610433565b6001600160a01b0381165f9081526068602052604081208054919055611439828261208d565b816001600160a01b03167f8e14daa5332205b1634040e1054e93d1f5396ec8bf0115d133b7fbaf4a52e4118260405161147491815260200190565b60405180910390a25050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146114f85760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6001600160a01b0386165f90815260666020908152604080832087845290915290206001810183905561152e9060020186612360565b506001600160a01b038087165f90815260666020908152604080832088845282528083209389168352600490930190522083905580156115b6576001600160a01b0385165f9081526069602052604090206115899087612360565b506001600160a01b038086165f908152606960209081526040808320938a16835260039093019052208490555b505050505050565b5f54610100900460ff16158080156115dc57505f54600160ff909116105b806115f55750303b1580156115f557505f5460ff166001145b6116675760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610433565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156116c3575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0382166117195760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610433565b611722826122e3565b8015611784575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146118005760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79207265636f726420636f6e747261637420616c6c6f776564000000006044820152606401610433565b60658054905f61180f83612953565b9190505550866001606554611824919061298a565b146118715760405162461bcd60e51b815260206004820152601360248201527f696e76616c69642065706f636820696e646578000000000000000000000000006044820152606401610433565b828514801561187f57508085145b6118cb5760405162461bcd60e51b815260206004820152601360248201527f696e76616c69642064617461206c656e677468000000000000000000000000006044820152606401610433565b5f5b85811015611ade578484828181106118e7576118e7612926565b9050602002013560665f89898581811061190357611903612926565b90506020020160208101906119189190612512565b6001600160a01b0316815260208082019290925260409081015f9081208c825290925281209190915560669088888481811061195657611956612926565b905060200201602081019061196b9190612512565b6001600160a01b0316815260208082019290925260409081015f9081208b82529092529020600101541580156119a057505f88115b15611a615760665f8888848181106119ba576119ba612926565b90506020020160208101906119cf9190612512565b6001600160a01b03166001600160a01b031681526020019081526020015f205f60018a6119fc919061298a565b81526020019081526020015f206001015460665f898985818110611a2257611a22612926565b9050602002016020810190611a379190612512565b6001600160a01b0316815260208082019290925260409081015f9081208c82529092529020600101555b828282818110611a7357611a73612926565b9050602002013560685f898985818110611a8f57611a8f612926565b9050602002016020810190611aa49190612512565b6001600160a01b03166001600160a01b031681526020019081526020015f205f828254611ad19190612913565b90915550506001016118cd565b5050505050505050565b6001600160a01b0382165f908152606960205260408120611b099083611c18565b1590505b92915050565b611b1b611bbe565b6001600160a01b038116611b975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610433565b611ba0816122e3565b50565b5f611b0d825490565b5f611bb78383612374565b9392505050565b6033546001600160a01b031633146109b75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610433565b6001600160a01b0381165f9081526001830160205260408120541515611bb7565b6001600160a01b0382165f908152606960205260408120611c5a9085611c18565b611ca65760405162461bcd60e51b815260206004820152601360248201527f6e6f2072656d61696e696e6720726577617264000000000000000000000000006044820152606401610433565b6001600160a01b038084165f9081526069602090815260408083209388168352600390930190522054821015611d1e5760405162461bcd60e51b815260206004820152601260248201527f616c6c2072657761726420636c61696d656400000000000000000000000000006044820152606401610433565b6001600160a01b038084165f9081526069602090815260408083209388168352600390930190529081205481905b848111611f5b576001600160a01b038088165f9081526066602090815260408083208584528252808320938a16835260049093019052205415611dbd576001600160a01b038088165f9081526066602090815260408083208584528252808320938a16835260049093019052205491505b6001600160a01b0387165f90815260666020908152604080832084845290915290206001015415611e11576001600160a01b0387165f90815260666020908152604080832084845290915290206001015492505b6001600160a01b0387165f9081526066602090815260408083208484529091529020548390611e419084906128c4565b611e4b91906128db565b611e559085612913565b6001600160a01b038088165f908152606960209081526040808320938c16835260029093019052205490945060ff168015611eb757506001600160a01b038087165f908152606960209081526040808320938b16835260049093019052205481145b15611f49576001600160a01b0386165f908152606960205260409020611edd908861234c565b506001600160a01b038681165f908152606960209081526040808320938b16835260028401825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556003840182528083208390556004909301905290812055611f5b565b80611f5381612953565b915050611d4c565b50611f67846001612913565b6001600160a01b038087165f908152606960209081526040808320938b16835260039093018152828220939093556066909252812090611fa8866001612913565b81526020019081526020015f206004015f866001600160a01b03166001600160a01b031681526020019081526020015f20545f0361202e576001600160a01b0386165f9081526066602052604081208291612004876001612913565b815260208082019290925260409081015f9081206001600160a01b038a1682526004019092529020555b856001600160a01b0316856001600160a01b03167f7a84a08b02c91f3c62d572853f966fc799bbd121e8ad7833a4494ab8dcfcb404868660405161207c929190918252602082015260400190565b60405180910390a350509392505050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561210a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061212e919061299d565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af11580156121b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121dc91906129b4565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561225a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061227e919061299d565b90505f83118015612297575082612295828461298a565b145b6109a05760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610433565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f611bb7836001600160a01b03841661239a565b5f611bb7836001600160a01b03841661247d565b5f825f01828154811061238957612389612926565b905f5260205f200154905092915050565b5f8181526001830160205260408120548015612474575f6123bc60018361298a565b85549091505f906123cf9060019061298a565b905081811461242e575f865f0182815481106123ed576123ed612926565b905f5260205f200154905080875f01848154811061240d5761240d612926565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061243f5761243f6129cf565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050611b0d565b5f915050611b0d565b5f8181526001830160205260408120546124c257508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155611b0d565b505f611b0d565b5080545f8255905f5260205f2090810190611ba091905b808211156124f3575f81556001016124e0565b5090565b80356001600160a01b038116811461250d575f80fd5b919050565b5f60208284031215612522575f80fd5b611bb7826124f7565b5f815180845260208085019450602084015f5b838110156125635781516001600160a01b03168752958201959082019060010161253e565b509495945050505050565b5f815180845260208085019450602084015f5b8381101561256357815187529582019590820190600101612581565b604081525f6125af604083018561252b565b82810360208401526125c1818561256e565b95945050505050565b5f80604083850312156125db575f80fd5b6125e4836124f7565b946020939093013593505050565b5f805f8060808587031215612605575f80fd5b61260e856124f7565b935061261c602086016124f7565b93969395505050506040820135916060013590565b608081525f612643608083018761252b565b8281036020848101919091528651808352878201928201905f5b8181101561267b57845115158352938301939183019160010161265d565b5050848103604086015261268f818861256e565b9250505082810360608401526126a5818561256e565b979650505050505050565b5f80604083850312156126c1575f80fd5b6126ca836124f7565b91506126d8602084016124f7565b90509250929050565b5f805f606084860312156126f3575f80fd5b6126fc846124f7565b925061270a602085016124f7565b9150604084013590509250925092565b8015158114611ba0575f80fd5b5f805f805f8060c0878903121561273c575f80fd5b612745876124f7565b9550612753602088016124f7565b945060408701359350606087013592506080870135915060a08701356127788161271a565b809150509295509295509295565b5f8083601f840112612796575f80fd5b50813567ffffffffffffffff8111156127ad575f80fd5b6020830191508360208260051b85010111156127c7575f80fd5b9250929050565b5f805f805f805f6080888a0312156127e4575f80fd5b87359650602088013567ffffffffffffffff80821115612802575f80fd5b61280e8b838c01612786565b909850965060408a0135915080821115612826575f80fd5b6128328b838c01612786565b909650945060608a013591508082111561284a575f80fd5b506128578a828b01612786565b989b979a50959850939692959293505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417611b0d57611b0d612897565b5f8261290e577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b80820180821115611b0d57611b0d612897565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361298357612983612897565b5060010190565b81810381811115611b0d57611b0d612897565b5f602082840312156129ad575f80fd5b5051919050565b5f602082840312156129c4575f80fd5b8151611bb78161271a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a", + Bin: "0x60e060405234801562000010575f80fd5b5073530000000000000000000000000000000000001360805273530000000000000000000000000000000000001560a05273530000000000000000000000000000000000001260c0526200006362000069565b62000127565b5f54610100900460ff1615620000d55760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161462000125575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805160a05160c051612a2e620001915f395f818161030901526117a901525f81816101d9015281816107ca015281816109d9015281816112330152818161135801526114a101525f8181610343015281816120e20152818161219501526122320152612a2e5ff3fe608060405234801561000f575f80fd5b5060043610610163575f3560e01c8063a766c529116100c7578063cd4281d01161007d578063d557714111610063578063d55771411461033e578063de6ac93314610365578063f2fde38b14610388575f80fd5b8063cd4281d014610304578063cdd0c50e1461032b575f80fd5b8063b809af0f116100ad578063b809af0f146102b6578063bf2dca0a146102c9578063c4d66de8146102f1575f80fd5b8063a766c5291461027b578063ac2ac640146102a3575f80fd5b8063807de4431161011c578063921ae9b811610102578063921ae9b8146102245780639889be5114610247578063996cba6814610268575f80fd5b8063807de443146101d45780638da5cb5b14610213575f80fd5b80635cf20c7b1161014c5780635cf20c7b146101a6578063715018a6146101b95780637f683ee3146101c1575f80fd5b8063273d8e82146101675780634eedab3214610191575b5f80fd5b61017a610175366004612537565b61039b565b6040516101889291906125c2565b60405180910390f35b6101a461019f3660046125ef565b610729565b005b6101a46101b43660046125ef565b6107c7565b6101a46109c3565b6101a46101cf366004612617565b6109d6565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610188565b6033546001600160a01b03166101fb565b610237610232366004612537565b610c1c565b6040516101889493929190612656565b61025a6102553660046126d5565b610f59565b604051908152602001610188565b6101a4610276366004612706565b611230565b61025a610289366004612537565b6001600160a01b03165f9081526067602052604090205490565b6101a46102b1366004612537565b611355565b6101a46102c436600461274c565b61149e565b61025a6102d7366004612537565b6001600160a01b03165f9081526068602052604090205490565b6101a46102ff366004612537565b6115dc565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6101a46103393660046127f3565b6117a6565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6103786103733660046126d5565b611b06565b6040519015158152602001610188565b6101a4610396366004612537565b611b31565b6001600160a01b0381165f90815260696020526040812060609182916103c090611bc1565b9050805f0361043c5760405162461bcd60e51b815260206004820152602860248201527f696e76616c69642064656c656761746f72206f72206e6f2072656d61696e696e60448201527f672072657761726400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b8067ffffffffffffffff8111156104555761045561288f565b60405190808252806020026020018201604052801561047e578160200160208202803683370190505b5092508067ffffffffffffffff81111561049a5761049a61288f565b6040519080825280602002602001820160405280156104c3578160200160208202803683370190505b5091505f5b6001600160a01b0385165f9081526069602052604090206104e890611bc1565b811015610722576001600160a01b0385165f9081526069602052604081206105109083611bca565b6001600160a01b038088165f908152606960209081526040808320938516835260039093019052908120549192509081908190805b6065548110156106bf576001600160a01b038087165f9081526066602090815260408083208584528252808320938f168352600490930190522054156105b9576001600160a01b038087165f9081526066602090815260408083208584528252808320938f16835260049093019052205492505b6001600160a01b0386165f9081526066602090815260408083208484529091529020600101541561060d576001600160a01b0386165f90815260666020908152604080832084845290915290206001015493505b6001600160a01b0386165f908152606660209081526040808320848452909152902054849061063d9085906128e9565b6106479190612900565b6106519086612938565b6001600160a01b03808d165f908152606960209081526040808320938b16835260029093019052205490955060ff1680156106b357506001600160a01b03808c165f908152606960209081526040808320938a16835260049093019052205481145b6106bf57600101610545565b50848987815181106106d3576106d361294b565b60200260200101906001600160a01b031690816001600160a01b031681525050838887815181106107065761070661294b565b60209081029190910101525050600190930192506104c8915050565b5050915091565b610731611bdc565b6001600160a01b0382165f908152606760205260409020545b8181116107a8576001600160a01b0383165f908152606660209081526040808320848452909152812081815560018101829055906002820181818161078f82826124ee565b50505050505080806107a090612978565b91505061074a565b6001600160a01b039092165f9081526067602052604090209190915550565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461083f5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6065545f036108905760405162461bcd60e51b815260206004820152600e60248201527f6e6f74206d696e746564207965740000000000000000000000000000000000006044820152606401610433565b5f8115806108ab575060016065546108a891906129af565b82115b6108b557816108c4565b60016065546108c491906129af565b90505f805b6001600160a01b0385165f9081526069602052604090206108e990611bc1565b8110156109ac576001600160a01b0385165f90815260696020526040812081906109139084611bca565b6001600160a01b0388165f9081526069602052604090209091506109379082611c36565b801561096b57506001600160a01b038088165f90815260696020908152604080832093851683526003909301905220548510155b15610992575f8061097d838a89611c57565b909250905061098c8287612938565b95509250505b816109a557826109a181612978565b9350505b50506108c9565b5080156109bd576109bd84826120b2565b50505050565b6109cb611bdc565b6109d45f612308565b565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610a4e5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6001600160a01b0384165f9081526066602090815260408083208584529091529020600101819055811580610aaa57506001600160a01b038084165f908152606960209081526040808320938816835260039093019052205482145b15610b8f576001600160a01b0384165f9081526066602090815260408083208584529091529020610ade9060020184612371565b506001600160a01b038085165f90815260666020908152604080832086845282528083209387168352600490930181528282208290556069905220610b239085612371565b506001600160a01b038381165f908152606960209081526040808320938816835260028401825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560038401825280832083905560049093019052908120556109bd565b6001600160a01b038084165f9081526069602090815260408083209388168352600290930190522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610bed90836129af565b6001600160a01b038085165f908152606960209081526040808320938916835260049093019052205550505050565b6001600160a01b0381165f908152606960205260408120606091829182918291610c4590611bc1565b90505f8167ffffffffffffffff811115610c6157610c6161288f565b604051908082528060200260200182016040528015610c8a578160200160208202803683370190505b5090505f8267ffffffffffffffff811115610ca757610ca761288f565b604051908082528060200260200182016040528015610cd0578160200160208202803683370190505b5090505f8367ffffffffffffffff811115610ced57610ced61288f565b604051908082528060200260200182016040528015610d16578160200160208202803683370190505b5090505f8467ffffffffffffffff811115610d3357610d3361288f565b604051908082528060200260200182016040528015610d5c578160200160208202803683370190505b5090505f5b85811015610f48576001600160a01b038b165f908152606960205260409020610d8a9082611bca565b858281518110610d9c57610d9c61294b565b60200260200101906001600160a01b031690816001600160a01b03168152505060695f8c6001600160a01b03166001600160a01b031681526020019081526020015f206002015f868381518110610df557610df561294b565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f9054906101000a900460ff16848281518110610e3b57610e3b61294b565b9115156020928302919091018201526001600160a01b038c165f908152606990915260408120865160039091019190879084908110610e7c57610e7c61294b565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054838281518110610eb657610eb661294b565b60200260200101818152505060695f8c6001600160a01b03166001600160a01b031681526020019081526020015f206004015f868381518110610efb57610efb61294b565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054828281518110610f3557610f3561294b565b6020908102919091010152600101610d61565b509299919850965090945092505050565b6001600160a01b0381165f908152606960205260408120610f7990611bc1565b5f03610fed5760405162461bcd60e51b815260206004820152602860248201527f696e76616c69642064656c656761746f72206f72206e6f2072656d61696e696e60448201527f67207265776172640000000000000000000000000000000000000000000000006064820152608401610433565b6001600160a01b0382165f90815260696020526040902061100e9084611c36565b61107f5760405162461bcd60e51b8152602060048201526024808201527f6e6f2072656d61696e696e6720726577617264206f66207468652064656c656760448201527f61746565000000000000000000000000000000000000000000000000000000006064820152608401610433565b6001600160a01b038083165f9081526069602090815260408083209387168352600390930190529081205481905b606554811015611227576001600160a01b038087165f9081526066602090815260408083208584528252808320938916835260049093019052205415611121576001600160a01b038087165f9081526066602090815260408083208584528252808320938916835260049093019052205491505b6001600160a01b0386165f90815260666020908152604080832084845290915290206001015415611175576001600160a01b0386165f90815260666020908152604080832084845290915290206001015492505b6001600160a01b0386165f90815260666020908152604080832084845290915290205483906111a59084906128e9565b6111af9190612900565b6111b99085612938565b6001600160a01b038087165f908152606960209081526040808320938b16835260029093019052205490945060ff16801561121b57506001600160a01b038086165f908152606960209081526040808320938a16835260049093019052205481145b611227576001016110ad565b50505092915050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146112a85760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6065545f036112f95760405162461bcd60e51b815260206004820152600e60248201527f6e6f74206d696e746564207965740000000000000000000000000000000000006044820152606401610433565b5f8115806113145750600160655461131191906129af565b82115b61131e578161132d565b600160655461132d91906129af565b90505f61133b858584611c57565b509050801561134e5761134e84826120b2565b5050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146113cd5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6001600160a01b0381165f908152606860205260409020546114315760405162461bcd60e51b815260206004820152601660248201527f6e6f20636f6d6d697373696f6e20746f20636c61696d000000000000000000006044820152606401610433565b6001600160a01b0381165f908152606860205260408120805491905561145782826120b2565b816001600160a01b03167f8e14daa5332205b1634040e1054e93d1f5396ec8bf0115d133b7fbaf4a52e4118260405161149291815260200190565b60405180910390a25050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146115165760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f7765646044820152606401610433565b6001600160a01b0386165f90815260666020908152604080832087845290915290206001810183905561154c9060020186612385565b506001600160a01b038087165f90815260666020908152604080832088845282528083209389168352600490930190522083905580156115d4576001600160a01b0385165f9081526069602052604090206115a79087612385565b506001600160a01b038086165f908152606960209081526040808320938a16835260039093019052208490555b505050505050565b5f54610100900460ff16158080156115fa57505f54600160ff909116105b806116135750303b15801561161357505f5460ff166001145b6116855760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610433565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156116e1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0382166117375760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610433565b61174082612308565b80156117a2575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461181e5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79207265636f726420636f6e747261637420616c6c6f776564000000006044820152606401610433565b60658054905f61182d83612978565b919050555086600160655461184291906129af565b1461188f5760405162461bcd60e51b815260206004820152601360248201527f696e76616c69642065706f636820696e646578000000000000000000000000006044820152606401610433565b828514801561189d57508085145b6118e95760405162461bcd60e51b815260206004820152601360248201527f696e76616c69642064617461206c656e677468000000000000000000000000006044820152606401610433565b5f5b85811015611afc578484828181106119055761190561294b565b9050602002013560665f8989858181106119215761192161294b565b90506020020160208101906119369190612537565b6001600160a01b0316815260208082019290925260409081015f9081208c82529092528120919091556066908888848181106119745761197461294b565b90506020020160208101906119899190612537565b6001600160a01b0316815260208082019290925260409081015f9081208b82529092529020600101541580156119be57505f88115b15611a7f5760665f8888848181106119d8576119d861294b565b90506020020160208101906119ed9190612537565b6001600160a01b03166001600160a01b031681526020019081526020015f205f60018a611a1a91906129af565b81526020019081526020015f206001015460665f898985818110611a4057611a4061294b565b9050602002016020810190611a559190612537565b6001600160a01b0316815260208082019290925260409081015f9081208c82529092529020600101555b828282818110611a9157611a9161294b565b9050602002013560685f898985818110611aad57611aad61294b565b9050602002016020810190611ac29190612537565b6001600160a01b03166001600160a01b031681526020019081526020015f205f828254611aef9190612938565b90915550506001016118eb565b5050505050505050565b6001600160a01b0382165f908152606960205260408120611b279083611c36565b1590505b92915050565b611b39611bdc565b6001600160a01b038116611bb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610433565b611bbe81612308565b50565b5f611b2b825490565b5f611bd58383612399565b9392505050565b6033546001600160a01b031633146109d45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610433565b6001600160a01b0381165f9081526001830160205260408120541515611bd5565b6001600160a01b0382165f9081526069602052604081208190611c7a9086611c36565b611cc65760405162461bcd60e51b815260206004820152601360248201527f6e6f2072656d61696e696e6720726577617264000000000000000000000000006044820152606401610433565b6001600160a01b038085165f9081526069602090815260408083209389168352600390930190522054831015611d3e5760405162461bcd60e51b815260206004820152601260248201527f616c6c2072657761726420636c61696d656400000000000000000000000000006044820152606401610433565b6001600160a01b038085165f9081526069602090815260408083209389168352600390930190529081205481905b858111611f7f576001600160a01b038089165f9081526066602090815260408083208584528252808320938b16835260049093019052205415611ddd576001600160a01b038089165f9081526066602090815260408083208584528252808320938b16835260049093019052205491505b6001600160a01b0388165f90815260666020908152604080832084845290915290206001015415611e31576001600160a01b0388165f90815260666020908152604080832084845290915290206001015492505b6001600160a01b0388165f9081526066602090815260408083208484529091529020548390611e619084906128e9565b611e6b9190612900565b611e759086612938565b6001600160a01b038089165f908152606960209081526040808320938d16835260029093019052205490955060ff168015611ed757506001600160a01b038088165f908152606960209081526040808320938c16835260049093019052205481145b15611f6d576001600160a01b0387165f90815260696020526040902060019450611f019089612371565b506001600160a01b038781165f908152606960209081526040808320938c16835260028401825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556003840182528083208390556004909301905290812055611f7f565b80611f7781612978565b915050611d6c565b50611f8b856001612938565b6001600160a01b038088165f908152606960209081526040808320938c16835260039093018152828220939093556066909252812090611fcc876001612938565b81526020019081526020015f206004015f876001600160a01b03166001600160a01b031681526020019081526020015f20545f03612052576001600160a01b0387165f9081526066602052604081208291612028886001612938565b815260208082019290925260409081015f9081206001600160a01b038b1682526004019092529020555b866001600160a01b0316866001600160a01b03167f7a84a08b02c91f3c62d572853f966fc799bbd121e8ad7833a4494ab8dcfcb40487876040516120a0929190918252602082015260400190565b60405180910390a35050935093915050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561212f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061215391906129c2565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af11580156121dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061220191906129d9565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561227f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122a391906129c2565b90505f831180156122bc5750826122ba82846129af565b145b6109bd5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610433565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f611bd5836001600160a01b0384166123bf565b5f611bd5836001600160a01b0384166124a2565b5f825f0182815481106123ae576123ae61294b565b905f5260205f200154905092915050565b5f8181526001830160205260408120548015612499575f6123e16001836129af565b85549091505f906123f4906001906129af565b9050818114612453575f865f0182815481106124125761241261294b565b905f5260205f200154905080875f0184815481106124325761243261294b565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612464576124646129f4565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050611b2b565b5f915050611b2b565b5f8181526001830160205260408120546124e757508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155611b2b565b505f611b2b565b5080545f8255905f5260205f2090810190611bbe91905b80821115612518575f8155600101612505565b5090565b80356001600160a01b0381168114612532575f80fd5b919050565b5f60208284031215612547575f80fd5b611bd58261251c565b5f815180845260208085019450602084015f5b838110156125885781516001600160a01b031687529582019590820190600101612563565b509495945050505050565b5f815180845260208085019450602084015f5b83811015612588578151875295820195908201906001016125a6565b604081525f6125d46040830185612550565b82810360208401526125e68185612593565b95945050505050565b5f8060408385031215612600575f80fd5b6126098361251c565b946020939093013593505050565b5f805f806080858703121561262a575f80fd5b6126338561251c565b93506126416020860161251c565b93969395505050506040820135916060013590565b608081525f6126686080830187612550565b8281036020848101919091528651808352878201928201905f5b818110156126a0578451151583529383019391830191600101612682565b505084810360408601526126b48188612593565b9250505082810360608401526126ca8185612593565b979650505050505050565b5f80604083850312156126e6575f80fd5b6126ef8361251c565b91506126fd6020840161251c565b90509250929050565b5f805f60608486031215612718575f80fd5b6127218461251c565b925061272f6020850161251c565b9150604084013590509250925092565b8015158114611bbe575f80fd5b5f805f805f8060c08789031215612761575f80fd5b61276a8761251c565b95506127786020880161251c565b945060408701359350606087013592506080870135915060a087013561279d8161273f565b809150509295509295509295565b5f8083601f8401126127bb575f80fd5b50813567ffffffffffffffff8111156127d2575f80fd5b6020830191508360208260051b85010111156127ec575f80fd5b9250929050565b5f805f805f805f6080888a031215612809575f80fd5b87359650602088013567ffffffffffffffff80821115612827575f80fd5b6128338b838c016127ab565b909850965060408a013591508082111561284b575f80fd5b6128578b838c016127ab565b909650945060608a013591508082111561286f575f80fd5b5061287c8a828b016127ab565b989b979a50959850939692959293505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417611b2b57611b2b6128bc565b5f82612933577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b80820180821115611b2b57611b2b6128bc565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129a8576129a86128bc565b5060010190565b81810381811115611b2b57611b2b6128bc565b5f602082840312156129d2575f80fd5b5051919050565b5f602082840312156129e9575f80fd5b8151611bd58161273f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a", } // DistributeABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/distribute_more.go b/bindings/bindings/distribute_more.go index c64d807ec..decb59f62 100644 --- a/bindings/bindings/distribute_more.go +++ b/bindings/bindings/distribute_more.go @@ -13,7 +13,7 @@ const DistributeStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\": var DistributeStorageLayout = new(solc.StorageLayout) -var DistributeDeployedBin = "0x608060405234801561000f575f80fd5b5060043610610163575f3560e01c8063a766c529116100c7578063cd4281d01161007d578063d557714111610063578063d557714114610372578063de6ac93314610399578063f2fde38b146103bc575f80fd5b8063cd4281d014610338578063cdd0c50e1461035f575f80fd5b8063b809af0f116100ad578063b809af0f146102dd578063bf2dca0a146102f0578063c4d66de814610325575f80fd5b8063a766c52914610295578063ac2ac640146102ca575f80fd5b8063807de4431161011c578063921ae9b811610102578063921ae9b81461023e5780639889be5114610261578063996cba6814610282575f80fd5b8063807de443146101d45780638da5cb5b14610220575f80fd5b80635cf20c7b1161014c5780635cf20c7b146101a6578063715018a6146101b95780637f683ee3146101c1575f80fd5b8063273d8e82146101675780634eedab3214610191575b5f80fd5b61017a610175366004612ca3565b6103cf565b604051610188929190612d3b565b60405180910390f35b6101a461019f366004612d68565b610820565b005b6101a46101b4366004612d68565b6108e5565b6101a4610b39565b6101a46101cf366004612d90565b610b4c565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610188565b60335473ffffffffffffffffffffffffffffffffffffffff166101fb565b61025161024c366004612ca3565b610e14565b6040516101889493929190612dcf565b61027461026f366004612e4e565b611214565b604051908152602001610188565b6101a4610290366004612e7f565b6115a1565b6102746102a3366004612ca3565b73ffffffffffffffffffffffffffffffffffffffff165f9081526067602052604090205490565b6101a46102d8366004612ca3565b611706565b6101a46102eb366004612ec5565b6118b7565b6102746102fe366004612ca3565b73ffffffffffffffffffffffffffffffffffffffff165f9081526068602052604090205490565b6101a4610333366004612ca3565b611a50565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6101a461036d366004612f6c565b611c5b565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6103ac6103a7366004612e4e565b612071565b6040519015158152602001610188565b6101a46103ca366004612ca3565b6120a9565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606960205260408120606091829161040190612160565b9050805f03610497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f696e76616c69642064656c656761746f72206f72206e6f2072656d61696e696e60448201527f672072657761726400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b8067ffffffffffffffff8111156104b0576104b0613008565b6040519080825280602002602001820160405280156104d9578160200160208202803683370190505b5092508067ffffffffffffffff8111156104f5576104f5613008565b60405190808252806020026020018201604052801561051e578160200160208202803683370190505b5091505f5b73ffffffffffffffffffffffffffffffffffffffff85165f90815260696020526040902061055090612160565b8110156108195773ffffffffffffffffffffffffffffffffffffffff85165f9081526069602052604081206105859083612169565b73ffffffffffffffffffffffffffffffffffffffff8088165f908152606960209081526040808320938516835260039093019052908120549192509081908190805b60655481101561079c5773ffffffffffffffffffffffffffffffffffffffff8087165f9081526066602090815260408083208584528252808320938f168352600490930190522054156106555773ffffffffffffffffffffffffffffffffffffffff8087165f9081526066602090815260408083208584528252808320938f16835260049093019052205492505b73ffffffffffffffffffffffffffffffffffffffff86165f908152606660209081526040808320848452909152902060010154156106c35773ffffffffffffffffffffffffffffffffffffffff86165f90815260666020908152604080832084845290915290206001015493505b73ffffffffffffffffffffffffffffffffffffffff86165f9081526066602090815260408083208484529091529020548490610700908590613062565b61070a9190613079565b61071490866130b1565b73ffffffffffffffffffffffffffffffffffffffff808d165f908152606960209081526040808320938b16835260029093019052205490955060ff168015610790575073ffffffffffffffffffffffffffffffffffffffff808c165f908152606960209081526040808320938a16835260049093019052205481145b61079c576001016105c7565b50848987815181106107b0576107b06130c4565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838887815181106107fd576107fd6130c4565b6020908102919091010152505060019093019250610523915050565b5050915091565b61082861217b565b73ffffffffffffffffffffffffffffffffffffffff82165f908152606760205260409020545b8181116108b95773ffffffffffffffffffffffffffffffffffffffff83165f90815260666020908152604080832084845290915281208181556001810182905590600282018181816108a08282612c4d565b50505050505080806108b1906130f1565b91505061084e565b73ffffffffffffffffffffffffffffffffffffffff9092165f9081526067602052604090209190915550565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f776564604482015260640161048e565b6065545f036109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f74206d696e74656420796574000000000000000000000000000000000000604482015260640161048e565b5f811580610a0a57506001606554610a079190613128565b82115b610a145781610a23565b6001606554610a239190613128565b90505f805b73ffffffffffffffffffffffffffffffffffffffff85165f908152606960205260409020610a5590612160565b811015610b225773ffffffffffffffffffffffffffffffffffffffff85165f908152606960205260408120610a8a9083612169565b73ffffffffffffffffffffffffffffffffffffffff87165f908152606960205260409020909150610abb90826121fc565b8015610afc575073ffffffffffffffffffffffffffffffffffffffff8087165f90815260696020908152604080832093851683526003909301905220548410155b15610b1957610b0c81878661222a565b610b1690846130b1565b92505b50600101610a28565b508015610b3357610b3384826127a9565b50505050565b610b4161217b565b610b4a5f612a40565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610beb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f776564604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526066602090815260408083208584529091529020600101819055811580610c61575073ffffffffffffffffffffffffffffffffffffffff8084165f908152606960209081526040808320938816835260039093019052205482145b15610d6d5773ffffffffffffffffffffffffffffffffffffffff84165f9081526066602090815260408083208584529091529020610ca29060020184612ab6565b5073ffffffffffffffffffffffffffffffffffffffff8085165f90815260666020908152604080832086845282528083209387168352600490930181528282208290556069905220610cf49085612ab6565b5073ffffffffffffffffffffffffffffffffffffffff8381165f908152606960209081526040808320938816835260028401825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556003840182528083208390556004909301905290812055610b33565b73ffffffffffffffffffffffffffffffffffffffff8084165f9081526069602090815260408083209388168352600290930190522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610dd89083613128565b73ffffffffffffffffffffffffffffffffffffffff8085165f908152606960209081526040808320938916835260049093019052205550505050565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606960205260408120606091829182918291610e4a90612160565b90505f8167ffffffffffffffff811115610e6657610e66613008565b604051908082528060200260200182016040528015610e8f578160200160208202803683370190505b5090505f8267ffffffffffffffff811115610eac57610eac613008565b604051908082528060200260200182016040528015610ed5578160200160208202803683370190505b5090505f8367ffffffffffffffff811115610ef257610ef2613008565b604051908082528060200260200182016040528015610f1b578160200160208202803683370190505b5090505f8467ffffffffffffffff811115610f3857610f38613008565b604051908082528060200260200182016040528015610f61578160200160208202803683370190505b5090505f5b858110156112035773ffffffffffffffffffffffffffffffffffffffff8b165f908152606960205260409020610f9c9082612169565b858281518110610fae57610fae6130c4565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060695f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f86838151811061103b5761103b6130c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1684828151811061109b5761109b6130c4565b91151560209283029190910182015273ffffffffffffffffffffffffffffffffffffffff8c165f9081526069909152604081208651600390910191908790849081106110e9576110e96130c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483828151811061113d5761113d6130c4565b60200260200101818152505060695f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f86838151811061119c5761119c6130c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548282815181106111f0576111f06130c4565b6020908102919091010152600101610f66565b509299919850965090945092505050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260696020526040812061124190612160565b5f036112cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f696e76616c69642064656c656761746f72206f72206e6f2072656d61696e696e60448201527f6720726577617264000000000000000000000000000000000000000000000000606482015260840161048e565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526069602052604090206112fd90846121fc565b611388576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f6e6f2072656d61696e696e6720726577617264206f66207468652064656c656760448201527f6174656500000000000000000000000000000000000000000000000000000000606482015260840161048e565b73ffffffffffffffffffffffffffffffffffffffff8083165f9081526069602090815260408083209387168352600390930190529081205481905b6065548110156115985773ffffffffffffffffffffffffffffffffffffffff8087165f90815260666020908152604080832085845282528083209389168352600490930190522054156114515773ffffffffffffffffffffffffffffffffffffffff8087165f9081526066602090815260408083208584528252808320938916835260049093019052205491505b73ffffffffffffffffffffffffffffffffffffffff86165f908152606660209081526040808320848452909152902060010154156114bf5773ffffffffffffffffffffffffffffffffffffffff86165f90815260666020908152604080832084845290915290206001015492505b73ffffffffffffffffffffffffffffffffffffffff86165f90815260666020908152604080832084845290915290205483906114fc908490613062565b6115069190613079565b61151090856130b1565b73ffffffffffffffffffffffffffffffffffffffff8087165f908152606960209081526040808320938b16835260029093019052205490945060ff16801561158c575073ffffffffffffffffffffffffffffffffffffffff8086165f908152606960209081526040808320938a16835260049093019052205481145b611598576001016113c3565b50505092915050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614611640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f776564604482015260640161048e565b6065545f036116ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f74206d696e74656420796574000000000000000000000000000000000000604482015260640161048e565b5f8115806116c6575060016065546116c39190613128565b82115b6116d057816116df565b60016065546116df9190613128565b90505f6116ed85858461222a565b905080156116ff576116ff84826127a9565b5050505050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146117a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f776564604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260686020526040902054611830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e6f20636f6d6d697373696f6e20746f20636c61696d00000000000000000000604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606860205260408120805491905561186382826127a9565b8173ffffffffffffffffffffffffffffffffffffffff167f8e14daa5332205b1634040e1054e93d1f5396ec8bf0115d133b7fbaf4a52e411826040516118ab91815260200190565b60405180910390a25050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f776564604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff86165f9081526066602090815260408083208784529091529020600181018390556119999060020186612ad7565b5073ffffffffffffffffffffffffffffffffffffffff8087165f9081526066602090815260408083208884528252808320938916835260049093019052208390558015611a485773ffffffffffffffffffffffffffffffffffffffff85165f908152606960205260409020611a0e9087612ad7565b5073ffffffffffffffffffffffffffffffffffffffff8086165f908152606960209081526040808320938a16835260039093019052208490555b505050505050565b5f54610100900460ff1615808015611a6e57505f54600160ff909116105b80611a875750303b158015611a8757505f5460ff166001145b611b13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161048e565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611b6f575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8216611bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206f776e657220616464726573730000000000000000000000604482015260640161048e565b611bf582612a40565b8015611c57575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614611cfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6f6e6c79207265636f726420636f6e747261637420616c6c6f77656400000000604482015260640161048e565b60658054905f611d09836130f1565b9190505550866001606554611d1e9190613128565b14611d85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c69642065706f636820696e64657800000000000000000000000000604482015260640161048e565b8285148015611d9357508085145b611df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c69642064617461206c656e67746800000000000000000000000000604482015260640161048e565b5f5b8581101561206757848482818110611e1557611e156130c4565b9050602002013560665f898985818110611e3157611e316130c4565b9050602002016020810190611e469190612ca3565b73ffffffffffffffffffffffffffffffffffffffff16815260208082019290925260409081015f9081208c8252909252812091909155606690888884818110611e9157611e916130c4565b9050602002016020810190611ea69190612ca3565b73ffffffffffffffffffffffffffffffffffffffff16815260208082019290925260409081015f9081208b8252909252902060010154158015611ee857505f88115b15611fd05760665f888884818110611f0257611f026130c4565b9050602002016020810190611f179190612ca3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60018a611f5e9190613128565b81526020019081526020015f206001015460665f898985818110611f8457611f846130c4565b9050602002016020810190611f999190612ca3565b73ffffffffffffffffffffffffffffffffffffffff16815260208082019290925260409081015f9081208c82529092529020600101555b828282818110611fe257611fe26130c4565b9050602002013560685f898985818110611ffe57611ffe6130c4565b90506020020160208101906120139190612ca3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461205a91906130b1565b9091555050600101611dfb565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260696020526040812061209f90836121fc565b1590505b92915050565b6120b161217b565b73ffffffffffffffffffffffffffffffffffffffff8116612154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161048e565b61215d81612a40565b50565b5f6120a3825490565b5f6121748383612af8565b9392505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515612174565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260696020526040812061225890856121fc565b6122be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f2072656d61696e696e672072657761726400000000000000000000000000604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff8084165f908152606960209081526040808320938816835260039093019052205482101561235d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f616c6c2072657761726420636c61696d65640000000000000000000000000000604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff8084165f9081526069602090815260408083209388168352600390930190529081205481905b84811161261c5773ffffffffffffffffffffffffffffffffffffffff8088165f9081526066602090815260408083208584528252808320938a168352600490930190522054156124235773ffffffffffffffffffffffffffffffffffffffff8088165f9081526066602090815260408083208584528252808320938a16835260049093019052205491505b73ffffffffffffffffffffffffffffffffffffffff87165f908152606660209081526040808320848452909152902060010154156124915773ffffffffffffffffffffffffffffffffffffffff87165f90815260666020908152604080832084845290915290206001015492505b73ffffffffffffffffffffffffffffffffffffffff87165f90815260666020908152604080832084845290915290205483906124ce908490613062565b6124d89190613079565b6124e290856130b1565b73ffffffffffffffffffffffffffffffffffffffff8088165f908152606960209081526040808320938c16835260029093019052205490945060ff16801561255e575073ffffffffffffffffffffffffffffffffffffffff8087165f908152606960209081526040808320938b16835260049093019052205481145b1561260a5773ffffffffffffffffffffffffffffffffffffffff86165f9081526069602052604090206125919088612ab6565b5073ffffffffffffffffffffffffffffffffffffffff8681165f908152606960209081526040808320938b16835260028401825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600384018252808320839055600490930190529081205561261c565b80612614816130f1565b915050612398565b506126288460016130b1565b73ffffffffffffffffffffffffffffffffffffffff8087165f908152606960209081526040808320938b168352600390930181528282209390935560669092528120906126768660016130b1565b81526020019081526020015f206004015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f036127305773ffffffffffffffffffffffffffffffffffffffff86165f90815260666020526040812082916126f98760016130b1565b815260208082019290925260409081015f90812073ffffffffffffffffffffffffffffffffffffffff8a1682526004019092529020555b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f7a84a08b02c91f3c62d572853f966fc799bbd121e8ad7833a4494ab8dcfcb4048686604051612798929190918252602082015260400190565b60405180910390a350509392505050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612833573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612857919061313b565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af11580156128ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129129190613152565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561299d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129c1919061313b565b90505f831180156129da5750826129d88284613128565b145b610b33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161048e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6121748373ffffffffffffffffffffffffffffffffffffffff8416612b1e565b5f6121748373ffffffffffffffffffffffffffffffffffffffff8416612c01565b5f825f018281548110612b0d57612b0d6130c4565b905f5260205f200154905092915050565b5f8181526001830160205260408120548015612bf8575f612b40600183613128565b85549091505f90612b5390600190613128565b9050818114612bb2575f865f018281548110612b7157612b716130c4565b905f5260205f200154905080875f018481548110612b9157612b916130c4565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612bc357612bc361316d565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506120a3565b5f9150506120a3565b5f818152600183016020526040812054612c4657508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556120a3565b505f6120a3565b5080545f8255905f5260205f209081019061215d91905b80821115612c77575f8155600101612c64565b5090565b803573ffffffffffffffffffffffffffffffffffffffff81168114612c9e575f80fd5b919050565b5f60208284031215612cb3575f80fd5b61217482612c7b565b5f815180845260208085019450602084015f5b83811015612d0157815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612ccf565b509495945050505050565b5f815180845260208085019450602084015f5b83811015612d0157815187529582019590820190600101612d1f565b604081525f612d4d6040830185612cbc565b8281036020840152612d5f8185612d0c565b95945050505050565b5f8060408385031215612d79575f80fd5b612d8283612c7b565b946020939093013593505050565b5f805f8060808587031215612da3575f80fd5b612dac85612c7b565b9350612dba60208601612c7b565b93969395505050506040820135916060013590565b608081525f612de16080830187612cbc565b8281036020848101919091528651808352878201928201905f5b81811015612e19578451151583529383019391830191600101612dfb565b50508481036040860152612e2d8188612d0c565b925050508281036060840152612e438185612d0c565b979650505050505050565b5f8060408385031215612e5f575f80fd5b612e6883612c7b565b9150612e7660208401612c7b565b90509250929050565b5f805f60608486031215612e91575f80fd5b612e9a84612c7b565b9250612ea860208501612c7b565b9150604084013590509250925092565b801515811461215d575f80fd5b5f805f805f8060c08789031215612eda575f80fd5b612ee387612c7b565b9550612ef160208801612c7b565b945060408701359350606087013592506080870135915060a0870135612f1681612eb8565b809150509295509295509295565b5f8083601f840112612f34575f80fd5b50813567ffffffffffffffff811115612f4b575f80fd5b6020830191508360208260051b8501011115612f65575f80fd5b9250929050565b5f805f805f805f6080888a031215612f82575f80fd5b87359650602088013567ffffffffffffffff80821115612fa0575f80fd5b612fac8b838c01612f24565b909850965060408a0135915080821115612fc4575f80fd5b612fd08b838c01612f24565b909650945060608a0135915080821115612fe8575f80fd5b50612ff58a828b01612f24565b989b979a50959850939692959293505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820281158282048414176120a3576120a3613035565b5f826130ac577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808201808211156120a3576120a3613035565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361312157613121613035565b5060010190565b818103818111156120a3576120a3613035565b5f6020828403121561314b575f80fd5b5051919050565b5f60208284031215613162575f80fd5b815161217481612eb8565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a" +var DistributeDeployedBin = "0x608060405234801561000f575f80fd5b5060043610610163575f3560e01c8063a766c529116100c7578063cd4281d01161007d578063d557714111610063578063d557714114610372578063de6ac93314610399578063f2fde38b146103bc575f80fd5b8063cd4281d014610338578063cdd0c50e1461035f575f80fd5b8063b809af0f116100ad578063b809af0f146102dd578063bf2dca0a146102f0578063c4d66de814610325575f80fd5b8063a766c52914610295578063ac2ac640146102ca575f80fd5b8063807de4431161011c578063921ae9b811610102578063921ae9b81461023e5780639889be5114610261578063996cba6814610282575f80fd5b8063807de443146101d45780638da5cb5b14610220575f80fd5b80635cf20c7b1161014c5780635cf20c7b146101a6578063715018a6146101b95780637f683ee3146101c1575f80fd5b8063273d8e82146101675780634eedab3214610191575b5f80fd5b61017a610175366004612cc8565b6103cf565b604051610188929190612d60565b60405180910390f35b6101a461019f366004612d8d565b610820565b005b6101a46101b4366004612d8d565b6108e5565b6101a4610b56565b6101a46101cf366004612db5565b610b69565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610188565b60335473ffffffffffffffffffffffffffffffffffffffff166101fb565b61025161024c366004612cc8565b610e31565b6040516101889493929190612df4565b61027461026f366004612e73565b611231565b604051908152602001610188565b6101a4610290366004612ea4565b6115be565b6102746102a3366004612cc8565b73ffffffffffffffffffffffffffffffffffffffff165f9081526067602052604090205490565b6101a46102d8366004612cc8565b611724565b6101a46102eb366004612eea565b6118d5565b6102746102fe366004612cc8565b73ffffffffffffffffffffffffffffffffffffffff165f9081526068602052604090205490565b6101a4610333366004612cc8565b611a6e565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6101a461036d366004612f91565b611c79565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6103ac6103a7366004612e73565b61208f565b6040519015158152602001610188565b6101a46103ca366004612cc8565b6120c7565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260696020526040812060609182916104019061217e565b9050805f03610497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f696e76616c69642064656c656761746f72206f72206e6f2072656d61696e696e60448201527f672072657761726400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b8067ffffffffffffffff8111156104b0576104b061302d565b6040519080825280602002602001820160405280156104d9578160200160208202803683370190505b5092508067ffffffffffffffff8111156104f5576104f561302d565b60405190808252806020026020018201604052801561051e578160200160208202803683370190505b5091505f5b73ffffffffffffffffffffffffffffffffffffffff85165f9081526069602052604090206105509061217e565b8110156108195773ffffffffffffffffffffffffffffffffffffffff85165f9081526069602052604081206105859083612187565b73ffffffffffffffffffffffffffffffffffffffff8088165f908152606960209081526040808320938516835260039093019052908120549192509081908190805b60655481101561079c5773ffffffffffffffffffffffffffffffffffffffff8087165f9081526066602090815260408083208584528252808320938f168352600490930190522054156106555773ffffffffffffffffffffffffffffffffffffffff8087165f9081526066602090815260408083208584528252808320938f16835260049093019052205492505b73ffffffffffffffffffffffffffffffffffffffff86165f908152606660209081526040808320848452909152902060010154156106c35773ffffffffffffffffffffffffffffffffffffffff86165f90815260666020908152604080832084845290915290206001015493505b73ffffffffffffffffffffffffffffffffffffffff86165f9081526066602090815260408083208484529091529020548490610700908590613087565b61070a919061309e565b61071490866130d6565b73ffffffffffffffffffffffffffffffffffffffff808d165f908152606960209081526040808320938b16835260029093019052205490955060ff168015610790575073ffffffffffffffffffffffffffffffffffffffff808c165f908152606960209081526040808320938a16835260049093019052205481145b61079c576001016105c7565b50848987815181106107b0576107b06130e9565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838887815181106107fd576107fd6130e9565b6020908102919091010152505060019093019250610523915050565b5050915091565b610828612199565b73ffffffffffffffffffffffffffffffffffffffff82165f908152606760205260409020545b8181116108b95773ffffffffffffffffffffffffffffffffffffffff83165f90815260666020908152604080832084845290915281208181556001810182905590600282018181816108a08282612c72565b50505050505080806108b190613116565b91505061084e565b73ffffffffffffffffffffffffffffffffffffffff9092165f9081526067602052604090209190915550565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f776564604482015260640161048e565b6065545f036109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f74206d696e74656420796574000000000000000000000000000000000000604482015260640161048e565b5f811580610a0a57506001606554610a07919061314d565b82115b610a145781610a23565b6001606554610a23919061314d565b90505f805b73ffffffffffffffffffffffffffffffffffffffff85165f908152606960205260409020610a559061217e565b811015610b3f5773ffffffffffffffffffffffffffffffffffffffff85165f9081526069602052604081208190610a8c9084612187565b73ffffffffffffffffffffffffffffffffffffffff88165f908152606960205260409020909150610abd908261221a565b8015610afe575073ffffffffffffffffffffffffffffffffffffffff8088165f90815260696020908152604080832093851683526003909301905220548510155b15610b25575f80610b10838a89612248565b9092509050610b1f82876130d6565b95509250505b81610b385782610b3481613116565b9350505b5050610a28565b508015610b5057610b5084826127ce565b50505050565b610b5e612199565b610b675f612a65565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610c08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f776564604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526066602090815260408083208584529091529020600101819055811580610c7e575073ffffffffffffffffffffffffffffffffffffffff8084165f908152606960209081526040808320938816835260039093019052205482145b15610d8a5773ffffffffffffffffffffffffffffffffffffffff84165f9081526066602090815260408083208584529091529020610cbf9060020184612adb565b5073ffffffffffffffffffffffffffffffffffffffff8085165f90815260666020908152604080832086845282528083209387168352600490930181528282208290556069905220610d119085612adb565b5073ffffffffffffffffffffffffffffffffffffffff8381165f908152606960209081526040808320938816835260028401825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556003840182528083208390556004909301905290812055610b50565b73ffffffffffffffffffffffffffffffffffffffff8084165f9081526069602090815260408083209388168352600290930190522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610df5908361314d565b73ffffffffffffffffffffffffffffffffffffffff8085165f908152606960209081526040808320938916835260049093019052205550505050565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606960205260408120606091829182918291610e679061217e565b90505f8167ffffffffffffffff811115610e8357610e8361302d565b604051908082528060200260200182016040528015610eac578160200160208202803683370190505b5090505f8267ffffffffffffffff811115610ec957610ec961302d565b604051908082528060200260200182016040528015610ef2578160200160208202803683370190505b5090505f8367ffffffffffffffff811115610f0f57610f0f61302d565b604051908082528060200260200182016040528015610f38578160200160208202803683370190505b5090505f8467ffffffffffffffff811115610f5557610f5561302d565b604051908082528060200260200182016040528015610f7e578160200160208202803683370190505b5090505f5b858110156112205773ffffffffffffffffffffffffffffffffffffffff8b165f908152606960205260409020610fb99082612187565b858281518110610fcb57610fcb6130e9565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060695f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f868381518110611058576110586130e9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168482815181106110b8576110b86130e9565b91151560209283029190910182015273ffffffffffffffffffffffffffffffffffffffff8c165f908152606990915260408120865160039091019190879084908110611106576111066130e9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483828151811061115a5761115a6130e9565b60200260200101818152505060695f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f8683815181106111b9576111b96130e9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205482828151811061120d5761120d6130e9565b6020908102919091010152600101610f83565b509299919850965090945092505050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260696020526040812061125e9061217e565b5f036112ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f696e76616c69642064656c656761746f72206f72206e6f2072656d61696e696e60448201527f6720726577617264000000000000000000000000000000000000000000000000606482015260840161048e565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260696020526040902061131a908461221a565b6113a5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f6e6f2072656d61696e696e6720726577617264206f66207468652064656c656760448201527f6174656500000000000000000000000000000000000000000000000000000000606482015260840161048e565b73ffffffffffffffffffffffffffffffffffffffff8083165f9081526069602090815260408083209387168352600390930190529081205481905b6065548110156115b55773ffffffffffffffffffffffffffffffffffffffff8087165f908152606660209081526040808320858452825280832093891683526004909301905220541561146e5773ffffffffffffffffffffffffffffffffffffffff8087165f9081526066602090815260408083208584528252808320938916835260049093019052205491505b73ffffffffffffffffffffffffffffffffffffffff86165f908152606660209081526040808320848452909152902060010154156114dc5773ffffffffffffffffffffffffffffffffffffffff86165f90815260666020908152604080832084845290915290206001015492505b73ffffffffffffffffffffffffffffffffffffffff86165f9081526066602090815260408083208484529091529020548390611519908490613087565b611523919061309e565b61152d90856130d6565b73ffffffffffffffffffffffffffffffffffffffff8087165f908152606960209081526040808320938b16835260029093019052205490945060ff1680156115a9575073ffffffffffffffffffffffffffffffffffffffff8086165f908152606960209081526040808320938a16835260049093019052205481145b6115b5576001016113e0565b50505092915050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161461165d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f776564604482015260640161048e565b6065545f036116c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f74206d696e74656420796574000000000000000000000000000000000000604482015260640161048e565b5f8115806116e3575060016065546116e0919061314d565b82115b6116ed57816116fc565b60016065546116fc919061314d565b90505f61170a858584612248565b509050801561171d5761171d84826127ce565b5050505050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146117c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f776564604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526068602052604090205461184e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e6f20636f6d6d697373696f6e20746f20636c61696d00000000000000000000604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606860205260408120805491905561188182826127ce565b8173ffffffffffffffffffffffffffffffffffffffff167f8e14daa5332205b1634040e1054e93d1f5396ec8bf0115d133b7fbaf4a52e411826040516118c991815260200190565b60405180910390a25050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6f6e6c79206c32207374616b696e6720636f6e747261637420616c6c6f776564604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff86165f9081526066602090815260408083208784529091529020600181018390556119b79060020186612afc565b5073ffffffffffffffffffffffffffffffffffffffff8087165f9081526066602090815260408083208884528252808320938916835260049093019052208390558015611a665773ffffffffffffffffffffffffffffffffffffffff85165f908152606960205260409020611a2c9087612afc565b5073ffffffffffffffffffffffffffffffffffffffff8086165f908152606960209081526040808320938a16835260039093019052208490555b505050505050565b5f54610100900460ff1615808015611a8c57505f54600160ff909116105b80611aa55750303b158015611aa557505f5460ff166001145b611b31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161048e565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611b8d575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8216611c0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206f776e657220616464726573730000000000000000000000604482015260640161048e565b611c1382612a65565b8015611c75575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614611d18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6f6e6c79207265636f726420636f6e747261637420616c6c6f77656400000000604482015260640161048e565b60658054905f611d2783613116565b9190505550866001606554611d3c919061314d565b14611da3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c69642065706f636820696e64657800000000000000000000000000604482015260640161048e565b8285148015611db157508085145b611e17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c69642064617461206c656e67746800000000000000000000000000604482015260640161048e565b5f5b8581101561208557848482818110611e3357611e336130e9565b9050602002013560665f898985818110611e4f57611e4f6130e9565b9050602002016020810190611e649190612cc8565b73ffffffffffffffffffffffffffffffffffffffff16815260208082019290925260409081015f9081208c8252909252812091909155606690888884818110611eaf57611eaf6130e9565b9050602002016020810190611ec49190612cc8565b73ffffffffffffffffffffffffffffffffffffffff16815260208082019290925260409081015f9081208b8252909252902060010154158015611f0657505f88115b15611fee5760665f888884818110611f2057611f206130e9565b9050602002016020810190611f359190612cc8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60018a611f7c919061314d565b81526020019081526020015f206001015460665f898985818110611fa257611fa26130e9565b9050602002016020810190611fb79190612cc8565b73ffffffffffffffffffffffffffffffffffffffff16815260208082019290925260409081015f9081208c82529092529020600101555b828282818110612000576120006130e9565b9050602002013560685f89898581811061201c5761201c6130e9565b90506020020160208101906120319190612cc8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461207891906130d6565b9091555050600101611e19565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526069602052604081206120bd908361221a565b1590505b92915050565b6120cf612199565b73ffffffffffffffffffffffffffffffffffffffff8116612172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161048e565b61217b81612a65565b50565b5f6120c1825490565b5f6121928383612b1d565b9392505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515612192565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526069602052604081208190612278908661221a565b6122de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f2072656d61696e696e672072657761726400000000000000000000000000604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff8085165f908152606960209081526040808320938916835260039093019052205483101561237d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f616c6c2072657761726420636c61696d65640000000000000000000000000000604482015260640161048e565b73ffffffffffffffffffffffffffffffffffffffff8085165f9081526069602090815260408083209389168352600390930190529081205481905b8581116126405773ffffffffffffffffffffffffffffffffffffffff8089165f9081526066602090815260408083208584528252808320938b168352600490930190522054156124435773ffffffffffffffffffffffffffffffffffffffff8089165f9081526066602090815260408083208584528252808320938b16835260049093019052205491505b73ffffffffffffffffffffffffffffffffffffffff88165f908152606660209081526040808320848452909152902060010154156124b15773ffffffffffffffffffffffffffffffffffffffff88165f90815260666020908152604080832084845290915290206001015492505b73ffffffffffffffffffffffffffffffffffffffff88165f90815260666020908152604080832084845290915290205483906124ee908490613087565b6124f8919061309e565b61250290866130d6565b73ffffffffffffffffffffffffffffffffffffffff8089165f908152606960209081526040808320938d16835260029093019052205490955060ff16801561257e575073ffffffffffffffffffffffffffffffffffffffff8088165f908152606960209081526040808320938c16835260049093019052205481145b1561262e5773ffffffffffffffffffffffffffffffffffffffff87165f908152606960205260409020600194506125b59089612adb565b5073ffffffffffffffffffffffffffffffffffffffff8781165f908152606960209081526040808320938c16835260028401825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556003840182528083208390556004909301905290812055612640565b8061263881613116565b9150506123b8565b5061264c8560016130d6565b73ffffffffffffffffffffffffffffffffffffffff8088165f908152606960209081526040808320938c1683526003909301815282822093909355606690925281209061269a8760016130d6565b81526020019081526020015f206004015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f036127545773ffffffffffffffffffffffffffffffffffffffff87165f908152606660205260408120829161271d8860016130d6565b815260208082019290925260409081015f90812073ffffffffffffffffffffffffffffffffffffffff8b1682526004019092529020555b8673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f7a84a08b02c91f3c62d572853f966fc799bbd121e8ad7833a4494ab8dcfcb40487876040516127bc929190918252602082015260400190565b60405180910390a35050935093915050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612858573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061287c9190613160565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015612913573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129379190613177565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156129c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129e69190613160565b90505f831180156129ff5750826129fd828461314d565b145b610b50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161048e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6121928373ffffffffffffffffffffffffffffffffffffffff8416612b43565b5f6121928373ffffffffffffffffffffffffffffffffffffffff8416612c26565b5f825f018281548110612b3257612b326130e9565b905f5260205f200154905092915050565b5f8181526001830160205260408120548015612c1d575f612b6560018361314d565b85549091505f90612b789060019061314d565b9050818114612bd7575f865f018281548110612b9657612b966130e9565b905f5260205f200154905080875f018481548110612bb657612bb66130e9565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612be857612be8613192565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506120c1565b5f9150506120c1565b5f818152600183016020526040812054612c6b57508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556120c1565b505f6120c1565b5080545f8255905f5260205f209081019061217b91905b80821115612c9c575f8155600101612c89565b5090565b803573ffffffffffffffffffffffffffffffffffffffff81168114612cc3575f80fd5b919050565b5f60208284031215612cd8575f80fd5b61219282612ca0565b5f815180845260208085019450602084015f5b83811015612d2657815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612cf4565b509495945050505050565b5f815180845260208085019450602084015f5b83811015612d2657815187529582019590820190600101612d44565b604081525f612d726040830185612ce1565b8281036020840152612d848185612d31565b95945050505050565b5f8060408385031215612d9e575f80fd5b612da783612ca0565b946020939093013593505050565b5f805f8060808587031215612dc8575f80fd5b612dd185612ca0565b9350612ddf60208601612ca0565b93969395505050506040820135916060013590565b608081525f612e066080830187612ce1565b8281036020848101919091528651808352878201928201905f5b81811015612e3e578451151583529383019391830191600101612e20565b50508481036040860152612e528188612d31565b925050508281036060840152612e688185612d31565b979650505050505050565b5f8060408385031215612e84575f80fd5b612e8d83612ca0565b9150612e9b60208401612ca0565b90509250929050565b5f805f60608486031215612eb6575f80fd5b612ebf84612ca0565b9250612ecd60208501612ca0565b9150604084013590509250925092565b801515811461217b575f80fd5b5f805f805f8060c08789031215612eff575f80fd5b612f0887612ca0565b9550612f1660208801612ca0565b945060408701359350606087013592506080870135915060a0870135612f3b81612edd565b809150509295509295509295565b5f8083601f840112612f59575f80fd5b50813567ffffffffffffffff811115612f70575f80fd5b6020830191508360208260051b8501011115612f8a575f80fd5b9250929050565b5f805f805f805f6080888a031215612fa7575f80fd5b87359650602088013567ffffffffffffffff80821115612fc5575f80fd5b612fd18b838c01612f49565b909850965060408a0135915080821115612fe9575f80fd5b612ff58b838c01612f49565b909650945060608a013591508082111561300d575f80fd5b5061301a8a828b01612f49565b989b979a50959850939692959293505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820281158282048414176120c1576120c161305a565b5f826130d1577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808201808211156120c1576120c161305a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131465761314661305a565b5060010190565b818103818111156120c1576120c161305a565b5f60208284031215613170575f80fd5b5051919050565b5f60208284031215613187575f80fd5b815161219281612edd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(DistributeStorageLayoutJSON), DistributeStorageLayout); err != nil { From b567e5546e801500a23c2d3c06a00f08358c280a Mon Sep 17 00:00:00 2001 From: Segue Date: Mon, 21 Oct 2024 15:01:22 +0800 Subject: [PATCH 004/106] fix get all delegators in pagination --- contracts/contracts/l2/staking/L2Staking.sol | 6 +- contracts/contracts/test/L2Staking.t.sol | 165 ++++++++++++++++++- 2 files changed, 160 insertions(+), 11 deletions(-) diff --git a/contracts/contracts/l2/staking/L2Staking.sol b/contracts/contracts/l2/staking/L2Staking.sol index e63367adc..0941ed67d 100644 --- a/contracts/contracts/l2/staking/L2Staking.sol +++ b/contracts/contracts/l2/staking/L2Staking.sol @@ -487,8 +487,10 @@ contract L2Staking is IL2Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp if (end > (delegatorsTotalNumber - 1)) { end = delegatorsTotalNumber - 1; } - for (uint256 i = start; i <= end; i++) { - delegatorsInPage[i] = delegators[staker].at(i); + uint256 i = start; + uint256 j = 0; + while (i <= end) { + delegatorsInPage[j++] = delegators[staker].at(i++); } return (delegatorsTotalNumber, delegatorsInPage); } diff --git a/contracts/contracts/test/L2Staking.t.sol b/contracts/contracts/test/L2Staking.t.sol index d2a854cc3..2cc9acd6d 100644 --- a/contracts/contracts/test/L2Staking.t.sol +++ b/contracts/contracts/test/L2Staking.t.sol @@ -2092,17 +2092,164 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.delegateStake(thirdStaker, 5 ether); hevm.stopPrank(); - (, address[] memory delegator0) = l2Staking.getAllDelegatorsInPagination(firstStaker, 10, 0); - (, address[] memory delegator1) = l2Staking.getAllDelegatorsInPagination(secondStaker, 10, 0); - (, address[] memory delegator2) = l2Staking.getAllDelegatorsInPagination(thirdStaker, 10, 0); + hevm.startPrank(alice1); + morphToken.approve(address(l2Staking), type(uint256).max); + l2Staking.delegateStake(firstStaker, 5 ether); + l2Staking.delegateStake(secondStaker, 5 ether); + hevm.stopPrank(); + + hevm.startPrank(alice2); + morphToken.approve(address(l2Staking), type(uint256).max); + l2Staking.delegateStake(firstStaker, 5 ether); + l2Staking.delegateStake(secondStaker, 5 ether); + hevm.stopPrank(); + + hevm.startPrank(alice3); + morphToken.approve(address(l2Staking), type(uint256).max); + l2Staking.delegateStake(firstStaker, 5 ether); + hevm.stopPrank(); - assertEq(delegator0.length, 10); - assertEq(delegator1.length, 10); - assertEq(delegator2.length, 10); + hevm.startPrank(alice4); + morphToken.approve(address(l2Staking), type(uint256).max); + l2Staking.delegateStake(firstStaker, 5 ether); + hevm.stopPrank(); + + // check firstStaker + { + (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(firstStaker, 10, 0); + // console.logString("......................"); + // console.logUint(total); + // console.logUint(delegators.length); + // console.logString("......................"); + assertEq(total, 5); + assertEq(delegators.length, 10); + assertEq(delegators[0], alice); + assertEq(delegators[1], alice1); + assertEq(delegators[2], alice2); + assertEq(delegators[3], alice3); + assertEq(delegators[4], alice4); + assertEq(delegators[5], address(0)); + } - assertEq(delegator0[0], alice); - assertEq(delegator1[0], alice); - assertEq(delegator2[0], alice); + { + (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(firstStaker, 1, 0); + // console.logString("......................"); + // console.logUint(total); + // console.logUint(delegators.length); + // console.logString("......................"); + assertEq(total, 5); + assertEq(delegators.length, 1); + assertEq(delegators[0], alice); + } + + { + (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(firstStaker, 1, 1); + // console.logString("......................"); + // console.logUint(total); + // console.logUint(delegators.length); + // console.logString("......................"); + assertEq(total, 5); + assertEq(delegators.length, 1); + assertEq(delegators[0], alice1); + } + + { + (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(firstStaker, 2, 2); + // console.logString("......................"); + // console.logUint(total); + // console.logUint(delegators.length); + // console.logString("......................"); + assertEq(total, 5); + assertEq(delegators.length, 2); + assertEq(delegators[0], alice4); + assertEq(delegators[1], address(0)); + } + + { + (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(firstStaker, 10, 3); + // console.logString("......................"); + // console.logUint(total); + // console.logUint(delegators.length); + // console.logString("......................"); + assertEq(total, 5); + assertEq(delegators.length, 10); + assertEq(delegators[0], address(0)); + assertEq(delegators[1], address(0)); + } + + // check secondStaker + { + (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(secondStaker, 10, 0); + // console.logString("......................"); + // console.logUint(total); + // console.logUint(delegators.length); + // console.logString("......................"); + assertEq(total, 3); + assertEq(delegators.length, 10); + assertEq(delegators[0], alice); + assertEq(delegators[1], alice1); + assertEq(delegators[2], alice2); + assertEq(delegators[3], address(0)); + } + + { + (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(secondStaker, 2, 1); + // console.logString("......................"); + // console.logUint(total); + // console.logUint(delegators.length); + // console.logString("......................"); + assertEq(total, 3); + assertEq(delegators.length, 2); + assertEq(delegators[0], alice2); + assertEq(delegators[1], address(0)); + } + + { + (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(secondStaker, 2, 2); + // console.logString("......................"); + // console.logUint(total); + // console.logUint(delegators.length); + // console.logString("......................"); + assertEq(total, 3); + assertEq(delegators.length, 2); + assertEq(delegators[0], address(0)); + assertEq(delegators[1], address(0)); + } + + // check thirdStaker + { + (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(thirdStaker, 10, 0); + // console.logString("......................"); + // console.logUint(total); + // console.logUint(delegators.length); + // console.logString("......................"); + assertEq(total, 1); + assertEq(delegators.length, 10); + assertEq(delegators[0], alice); + assertEq(delegators[1], address(0)); + } + + { + (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(thirdStaker, 1, 0); + // console.logString("......................"); + // console.logUint(total); + // console.logUint(delegators.length); + // console.logString("......................"); + assertEq(total, 1); + assertEq(delegators.length, 1); + assertEq(delegators[0], alice); + } + + { + (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(thirdStaker, 1, 1); + // console.logString("......................"); + // console.logUint(total); + // console.logUint(delegators.length); + // console.logString("......................"); + assertEq(total, 1); + assertEq(delegators.length, 1); + assertEq(delegators[0], address(0)); + } } /** From cc05d5d43f83c7a05258783f674f1e49e8129c9f Mon Sep 17 00:00:00 2001 From: Segue Date: Mon, 21 Oct 2024 15:05:09 +0800 Subject: [PATCH 005/106] update bindings --- bindings/bin/l2staking_deployed.hex | 2 +- bindings/bindings/l2staking.go | 2 +- bindings/bindings/l2staking_more.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bindings/bin/l2staking_deployed.hex b/bindings/bin/l2staking_deployed.hex index 7eec59704..375af2810 100644 --- a/bindings/bin/l2staking_deployed.hex +++ b/bindings/bin/l2staking_deployed.hex @@ -1 +1 @@ -0x608060405234801561000f575f80fd5b50600436106102cc575f3560e01c8063715018a61161017c578063927ede2d116100dd578063d557714111610093578063f0261bc21161006e578063f0261bc21461068a578063f2fde38b14610693578063fad99f98146106a6575f80fd5b8063d55771411461063b578063e10911b114610662578063ed70b3431461066a575f80fd5b8063b5d2e0dc116100c3578063b5d2e0dc146105d1578063c64814dd146105f0578063d31d83d91461061a575f80fd5b8063927ede2d1461059d57806396ab994d146105c4575f80fd5b806384d7d1d4116101325780638e21d5fb116101185780638e21d5fb146105355780639168ae721461055c57806391bd43a41461057e575f80fd5b806384d7d1d4146105015780638da5cb5b14610524575f80fd5b8063766718081161016257806376671808146104b35780637b05afb5146104bb578063831cfb58146104da575f80fd5b8063715018a6146104a3578063746c8ae1146104ab575f80fd5b80633385ccc21161023157806340b5c837116101e7578063459598a2116101c2578063459598a21461047557806346cdc18a146104885780636d454d5114610490575f80fd5b806340b5c8371461044757806343352d611461045a578063439162b514610462575f80fd5b80633c323a1b116102175780633c323a1b146103d35780633cb747bf146103e65780633d9353fe14610420575f80fd5b80633385ccc2146103b75780633b802421146103ca575f80fd5b8063174e31c4116102865780632cc138be1161026c5780632cc138be146103855780632e787be31461038e57806330158eea14610397575f80fd5b8063174e31c41461035f57806319fac8fd14610372575f80fd5b80630eb573af116102b65780630eb573af1461030b5780630f3b70591461031e57806312a3e94714610356575f80fd5b806243b758146102d05780630be67fcc146102f6575b5f80fd5b6102e36102de366004614148565b6106ae565b6040519081526020015b60405180910390f35b6103096103043660046141ab565b6106d4565b005b6103096103193660046141ea565b610bf9565b61033161032c366004614201565b610d0c565b604080516001600160a01b0390941684526020840192909252908201526060016102ed565b6102e3609a5481565b61030961036d366004614201565b610d54565b6103096103803660046141ea565b610ecc565b6102e360985481565b6102e360995481565b6103aa6103a53660046141ab565b610fee565b6040516102ed919061428c565b6103096103c5366004614148565b611215565b6102e3609c5481565b6103096103e1366004614201565b611870565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102ed565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b6103096104553660046141ea565b611f0a565b6103aa61201d565b610309610470366004614332565b612239565b6104086104833660046141ea565b612775565b609d546102e3565b61030961049e3660046143a0565b61279d565b610309612a6e565b610309612a81565b6102e3612d71565b6102e36104c9366004614148565b60a06020525f908152604090205481565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61051461050f366004614148565b612de5565b60405190151581526020016102ed565b6033546001600160a01b0316610408565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61056f61056a366004614148565b612e0f565b6040516102ed939291906143d7565b6102e361058c366004614148565b60a16020525f908152604090205481565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b6097546105149060ff1681565b6102e36105df366004614148565b609e6020525f908152604090205481565b6102e36105fe366004614407565b60a360209081525f928352604080842090915290825290205481565b61062d61062836600461443e565b612ec1565b6040516102ed9291906144b3565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61030961303b565b61067d610678366004614148565b6133d5565b6040516102ed91906144d3565b6102e3609b5481565b6103096106a1366004614148565b61346b565b6103096134f8565b6001600160a01b0381165f90815260a2602052604081206106ce906135a6565b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156107bc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b19190614534565b6001600160a01b0316145b6108335760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f805b82811015610bac57609b54609e5f8686858181106108565761085661454f565b905060200201602081019061086b9190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161089557600191505b5f609e5f8686858181106108ab576108ab61454f565b90506020020160208101906108c09190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115610b23575f6001609e5f8787868181106108fe576108fe61454f565b90506020020160208101906109139190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f205461093d91906145a9565b90505b609d5461094f906001906145a9565b811015610a2157609d6109638260016145bc565b815481106109735761097361454f565b5f91825260209091200154609d80546001600160a01b03909216918390811061099e5761099e61454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d84815481106109e1576109e161454f565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190610a149084906145a9565b9091555050600101610940565b50609d805480610a3357610a336145cf565b5f8281526020812082015f1990810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90858584818110610a8357610a8361454f565b9050602002016020810190610a989190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f868685818110610ad057610ad061454f565b9050602002016020810190610ae59190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115610b23576001609c5f828254610b1d91906145a9565b90915550505b609f5f858584818110610b3857610b3861454f565b9050602002016020810190610b4d9190614148565b6001600160a01b0316815260208101919091526040015f90812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590610ba260028301826140ea565b5050600101610836565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618383604051610bde9291906145fc565b60405180910390a18015610bf457610bf46135af565b505050565b610c0161372f565b5f81118015610c1257506099548114155b610c845760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a65000000000000000000000000000000000000000000000000000000000000606482015260840161082a565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610cd957609d54610cdd565b609c545b90505f6099548210610cf157609954610cf3565b815b9050609b548114610d0657610d066135af565b50505050565b60a4602052815f5260405f208181548110610d25575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610d5c613789565b6001600160a01b038216610e12576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610df7575f80fd5b505af1158015610e09573d5f803e3d5ffd5b50505050610ebe565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610ea7575f80fd5b505af1158015610eb9573d5f803e3d5ffd5b505050505b610ec86001606555565b5050565b335f908152609e6020526040902054610f275760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f77656400000000000000000000000000604482015260640161082a565b6014811115610f785760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e0000000000000000000000000000604482015260640161082a565b335f90815260a06020526040812082905560975460ff16610f99575f610fac565b610fa1612d71565b610fac9060016145bc565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff81111561100a5761100a614649565b60405190808252806020026020018201604052801561105657816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816110285790505b5090505f5b8381101561120d576040518060600160405280609f5f8888868181106110835761108361454f565b90506020020160208101906110989190614148565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f908888868181106110d5576110d561454f565b90506020020160208101906110ea9190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f8888868181106111275761112761454f565b905060200201602081019061113c9190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20600201805461116990614676565b80601f016020809104026020016040519081016040528092919081815260200182805461119590614676565b80156111e05780601f106111b7576101008083540402835291602001916111e0565b820191905f5260205f20905b8154815290600101906020018083116111c357829003601f168201915b50505050508152508282815181106111fa576111fa61454f565b602090810291909101015260010161105b565b509392505050565b61121d613789565b6001600160a01b0381165f90815260a36020908152604080832033845290915290205461128c5760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f00000000000000000000604482015260640161082a565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff166112b8575f6112cb565b6112c0612d71565b6112cb9060016145bc565b6097549091505f9060ff1680156112e0575082155b6112ea57816112f7565b609a546112f790836145bc565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936113b99084906145a9565b90915550506001600160a01b0385165f90815260a2602052604090206113df90336137e9565b506001600160a01b0385165f908152609e602052604090205484158015611408575060975460ff165b80156114155750609c5481105b1561168c576001600160a01b0386165f908152609e602052604081205461143e906001906145a9565b90505b6001609c5461145091906145a9565b81101561168a5760a15f609d838154811061146d5761146d61454f565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d6114a28560016145bc565b815481106114b2576114b261454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611682575f609d82815481106114f0576114f061454f565b5f918252602090912001546001600160a01b03169050609d6115138360016145bc565b815481106115235761152361454f565b5f91825260209091200154609d80546001600160a01b03909216918490811061154e5761154e61454f565b5f91825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905580609d61159c8460016145bc565b815481106115ac576115ac61454f565b5f91825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556115f78260016145bc565b609e5f609d858154811061160d5761160d61454f565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205561163c8260026145bc565b609e5f609d61164c8660016145bc565b8154811061165c5761165c61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b600101611441565b505b841580156116af57506001600160a01b0386165f90815260a16020526040902054155b156116cc576001609c5f8282546116c691906145a9565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b15801561176d575f80fd5b505af115801561177f573d5f803e3d5ffd5b5050505061178a3390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516117e5939291909283526020830191909152604082015260600190565b60405180910390a3841580156117fd575060975460ff165b801561180b5750609b548111155b80156118515750609b546001600160a01b0387165f908152609e602052604090205411806118515750609c546001600160a01b0387165f908152609e6020526040902054115b1561185e5761185e6135af565b505050505061186d6001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906118d65760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b657200000000000000000000000000000000000000000000604482015260640161082a565b6118de613789565b5f821161192d5760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e74000000000000000000000000604482015260640161082a565b6119373384613804565b156119845760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d656400000000000000000000604482015260640161082a565b6001600160a01b0383165f90815260a360209081526040808320338452909152902054611a02576119b5338461388d565b15611a025760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d656400000000000000000000000000000000604482015260640161082a565b6001600160a01b0383165f90815260a1602052604081208054849290611a299084906145bc565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611a609084906145bc565b90915550506001600160a01b0383165f90815260a260205260409020611a869033613942565b506001600160a01b0383165f90815260a16020526040902054829003611abe576001609c5f828254611ab891906145bc565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff168015611ae85750600181115b15611d39575f611af96001836145a9565b90505b8015611d375760a15f609d611b126001856145a9565b81548110611b2257611b2261454f565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d8481548110611b7357611b7361454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611d25575f609d611bab6001846145a9565b81548110611bbb57611bbb61454f565b5f91825260209091200154609d80546001600160a01b0390921692509083908110611be857611be861454f565b5f918252602090912001546001600160a01b0316609d611c096001856145a9565b81548110611c1957611c1961454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d8381548110611c5857611c5861454f565b5f918252602082200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0393909316929092179091558290609e90609d611caa6001856145a9565b81548110611cba57611cba61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611ce98260016145bc565b609e5f609d8581548110611cff57611cff61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611d2f816146c1565b915050611afc565b505b6097545f9060ff16611d4b575f611d5e565b611d53612d71565b611d5e9060016145bc565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611e92575f80fd5b505af1158015611ea4573d5f803e3d5ffd5b50505050611eb9611eb23390565b3086613956565b60975460ff168015611ecc5750609b5482115b8015611ef157506099546001600160a01b0386165f908152609e602052604090205411155b15611efe57611efe6135af565b5050610bf46001606555565b611f1261372f565b60975460ff1615611f655760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c7265616479207374617274656400000000000000000000604482015260640161082a565b4281118015611f7e5750611f7c6201518082614703565b155b8015611f8c57506098548114155b611fd85760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d6500000000000000604482015260640161082a565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff81111561203d5761203d614649565b60405190808252806020026020018201604052801561208957816020015b60408051606080820183525f80835260208301529181019190915281526020019060019003908161205b5790505b5090505f5b609d54811015612233576040518060600160405280609f5f609d85815481106120b9576120b961454f565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f929190869081106121055761210561454f565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d858154811061215e5761215e61454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020600201805461218f90614676565b80601f01602080910402602001604051908101604052809291908181526020018280546121bb90614676565b80156122065780601f106121dd57610100808354040283529160200191612206565b820191905f5260205f20905b8154815290600101906020018083116121e957829003601f168201915b50505050508152508282815181106122205761222061454f565b602090810291909101015260010161208e565b50919050565b5f54610100900460ff161580801561225757505f54600160ff909116105b806122705750303b15801561227057505f5460ff166001145b6122e25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161082a565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561233e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166123945760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e657220616464726573730000000000000000000000604482015260640161082a565b5f86116124095760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f2030000000000000000000000000000000000000000000000000000000000000606482015260840161082a565b5f85116124585760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f63687300000000604482015260640161082a565b4284118015612471575061246f6201518085614703565b155b6124bd5760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d6500000000000000604482015260640161082a565b8161250a5760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b657273000000000000000000604482015260640161082a565b61251387613bc3565b61251b613c2c565b6099869055609a8590556098849055609b8290555f5b609b548110156126975783838281811061254d5761254d61454f565b905060200281019061255f9190614716565b609f5f8686858181106125745761257461454f565b90506020028101906125869190614716565b612594906020810190614148565b6001600160a01b0316815260208101919091526040015f206125b682826147f7565b905050609d8484838181106125cd576125cd61454f565b90506020028101906125df9190614716565b6125ed906020810190614148565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556126419082906145bc565b609e5f8686858181106126565761265661454f565b90506020028101906126689190614716565b612676906020810190614148565b6001600160a01b0316815260208101919091526040015f2055600101612531565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561276c575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612784575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561288557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612856573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061287a9190614534565b6001600160a01b0316145b6128f75760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f7765640000000000000000000000000000000000000000606482015260840161082a565b609e5f6129076020840184614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f036129b457609d61293c6020830183614148565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039390931692909217909155609d5491609e9161299a90850185614148565b6001600160a01b0316815260208101919091526040015f20555b80609f5f6129c56020840184614148565b6001600160a01b0316815260208101919091526040015f206129e782826147f7565b506129f790506020820182614148565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d6020830135612a336040850185614752565b604051612a4293929190614969565b60405180910390a260975460ff16158015612a615750609954609d5411155b1561186d5761186d6135af565b612a7661372f565b612a7f5f613bc3565b565b612a8961372f565b609854421015612b005760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d6500000000000000000000000000000000000000000000000000000000606482015260840161082a565b5f609c5411612b515760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e646964617465000000000000000000000000000000000000604482015260640161082a565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612d0e575f5b81811015612d055760a15f609d8381548110612baa57612baa61454f565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d8581548110612bfb57612bfb61454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612cfd575f609d8281548110612c3957612c3961454f565b5f91825260209091200154609d80546001600160a01b0390921692509084908110612c6657612c6661454f565b5f91825260209091200154609d80546001600160a01b039092169184908110612c9157612c9161454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d8481548110612cd057612cd061454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b600101612b8c565b50600101612b80565b505f5b609d54811015612d6857612d268160016145bc565b609e5f609d8481548110612d3c57612d3c61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055600101612d11565b50612a7f6135af565b5f609854421015612dc45760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f7420737461727465642079657400000000000000604482015260640161082a565b6201518060985442612dd691906145a9565b612de091906149bc565b905090565b6001600160a01b0381165f90815260a36020908152604080832033845290915281205415156106ce565b609f6020525f90815260409020805460018201546002830180546001600160a01b03909316939192612e4090614676565b80601f0160208091040260200160405190810160405280929190818152602001828054612e6c90614676565b8015612eb75780601f10612e8e57610100808354040283529160200191612eb7565b820191905f5260205f20905b815481529060010190602001808311612e9a57829003601f168201915b5050505050905083565b5f60605f8411612f135760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a65000000000000000000000000000000604482015260640161082a565b6001600160a01b0385165f90815260a260205260409020612f33906135a6565b91508367ffffffffffffffff811115612f4e57612f4e614649565b604051908082528060200260200182016040528015612f77578160200160208202803683370190505b5090505f612f8584866149cf565b90505f6001612f9486826145bc565b612f9e90886149cf565b612fa891906145a9565b9050612fb56001856145a9565b811115612fca57612fc76001856145a9565b90505b815b818111613030576001600160a01b0388165f90815260a260205260409020612ff49082613cb0565b8482815181106130065761300661454f565b6001600160a01b039092166020928302919091019091015280613028816149e6565b915050612fcc565b505050935093915050565b613043613789565b335f90815260a46020526040812054815b8181101561336f5760975460ff1615806130a45750613071612d71565b335f90815260a4602052604090208054839081106130915761309161454f565b905f5260205f2090600302016002015411155b1561335d57335f90815260a4602052604090208054829081106130c9576130c961454f565b905f5260205f20906003020160010154836130e491906145bc565b335f90815260a46020526040812080549295509091839081106131095761310961454f565b5f91825260208220600390910201546001600160a01b0316915060a48161312d3390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061315d5761315d61454f565b905f5260205f2090600302016002015490505f60a45f61317a3390565b6001600160a01b03166001600160a01b031681526020019081526020015f2084815481106131aa576131aa61454f565b905f5260205f2090600302016001015490506001856131c991906145a9565b84101561329957335f90815260a4602052604090206131e96001876145a9565b815481106131f9576131f961454f565b905f5260205f20906003020160a45f61320f3390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061323f5761323f61454f565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a4602052604090208054806132b6576132b66145cf565b5f8281526020812060035f199093019283020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001818101839055600290910191909155915561330c90866145a9565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a3505050613054565b6133688160016145bc565b9050613054565b505f82116133bf5760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d000000000000000000604482015260640161082a565b6133c93383613cbb565b5050612a7f6001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613460575f848152602090819020604080516060810182526003860290920180546001600160a01b031683526001808201548486015260029091015491830191909152908352909201910161340c565b505050509050919050565b61347361372f565b6001600160a01b0381166134ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161082a565b61186d81613bc3565b613500613789565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015613586575f80fd5b505af1158015613598573d5f803e3d5ffd5b50505050612a7f6001606555565b5f6106ce825490565b60995460975460ff16156135d357609954609c5410156135ce5750609c545b6135e4565b609954609d5410156135e45750609d545b5f8167ffffffffffffffff8111156135fe576135fe614649565b604051908082528060200260200182016040528015613627578160200160208202803683370190505b5090505f5b8281101561369457609d81815481106136475761364761454f565b905f5260205f20015f9054906101000a90046001600160a01b03168282815181106136745761367461454f565b6001600160a01b039092166020928302919091019091015260010161362c565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a4906136fa9084906004016149fe565b5f604051808303815f87803b158015613711575f80fd5b505af1158015613723573d5f803e3d5ffd5b50509151609b55505050565b6033546001600160a01b03163314612a7f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161082a565b6002606554036137db5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161082a565b6002606555565b6001606555565b5f6137fd836001600160a01b038416613f19565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613884576001600160a01b038481165f90815260a460205260409020805491851691839081106138545761385461454f565b5f9182526020909120600390910201546001600160a01b03160361387c5760019150506106ce565b600101613807565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613916573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061393a9190614a10565b159392505050565b5f6137fd836001600160a01b038416613ffc565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156139d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139fb9190614a2f565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613a8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ab19190614a10565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613b33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b579190614a2f565b90505f83118015613b70575082613b6e83836145a9565b145b613bbc5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161082a565b5050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613ca85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161082a565b612a7f614048565b5f6137fd83836140c4565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613d3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d609190614a2f565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015613dea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e0e9190614a10565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613eb49190614a2f565b90505f83118015613ecd575082613ecb83836145a9565b145b610d065760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161082a565b5f8181526001830160205260408120548015613ff3575f613f3b6001836145a9565b85549091505f90613f4e906001906145a9565b9050818114613fad575f865f018281548110613f6c57613f6c61454f565b905f5260205f200154905080875f018481548110613f8c57613f8c61454f565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080613fbe57613fbe6145cf565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506106ce565b5f9150506106ce565b5f81815260018301602052604081205461404157508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556106ce565b505f6106ce565b5f54610100900460ff166137e25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161082a565b5f825f0182815481106140d9576140d961454f565b905f5260205f200154905092915050565b5080546140f690614676565b5f825580601f10614105575050565b601f0160209004905f5260205f209081019061186d91905b80821115614130575f815560010161411d565b5090565b6001600160a01b038116811461186d575f80fd5b5f60208284031215614158575f80fd5b81356137fd81614134565b5f8083601f840112614173575f80fd5b50813567ffffffffffffffff81111561418a575f80fd5b6020830191508360208260051b85010111156141a4575f80fd5b9250929050565b5f80602083850312156141bc575f80fd5b823567ffffffffffffffff8111156141d2575f80fd5b6141de85828601614163565b90969095509350505050565b5f602082840312156141fa575f80fd5b5035919050565b5f8060408385031215614212575f80fd5b823561421d81614134565b946020939093013593505050565b5f81518084525f5b8181101561424f57602081850181015186830182015201614233565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015614324578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526143108186018361422b565b9689019694505050908601906001016142b3565b509098975050505050505050565b5f805f805f8060a08789031215614347575f80fd5b863561435281614134565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614382575f80fd5b61438e89828a01614163565b979a9699509497509295939492505050565b5f602082840312156143b0575f80fd5b813567ffffffffffffffff8111156143c6575f80fd5b8201606081850312156137fd575f80fd5b6001600160a01b0384168152826020820152606060408201525f6143fe606083018461422b565b95945050505050565b5f8060408385031215614418575f80fd5b823561442381614134565b9150602083013561443381614134565b809150509250929050565b5f805f60608486031215614450575f80fd5b833561445b81614134565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156144a85781516001600160a01b031687529582019590820190600101614483565b509495945050505050565b828152604060208201525f6144cb6040830184614470565b949350505050565b602080825282518282018190525f919060409081850190868401855b8281101561452757815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016144ef565b5091979650505050505050565b5f60208284031215614544575f80fd5b81516137fd81614134565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156106ce576106ce61457c565b808201808211156106ce576106ce61457c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b8681101561463e57823561462381614134565b6001600160a01b031682529183019190830190600101614610565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061468a57607f821691505b602082108103612233577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f816146cf576146cf61457c565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614711576147116146d6565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614748575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614785575f80fd5b83018035915067ffffffffffffffff82111561479f575f80fd5b6020019150368190038213156141a4575f80fd5b601f821115610bf457805f5260205f20601f840160051c810160208510156147d85750805b601f840160051c820191505b81811015613bbc575f81556001016147e4565b813561480281614134565b6001600160a01b0381167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614879575f80fd5b8501803567ffffffffffffffff811115614891575f80fd5b80360384830113156148a1575f80fd5b6148b5816148af8554614676565b856147b3565b5f601f8211600181146148e8575f83156148d157508382018601355b5f19600385901b1c1916600184901b17855561495e565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561493457868501890135825593880193908901908801614915565b5084821015614952575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b5f826149ca576149ca6146d6565b500490565b80820281158282048414176106ce576106ce61457c565b5f5f1982036149f7576149f761457c565b5060010190565b602081525f6137fd6020830184614470565b5f60208284031215614a20575f80fd5b815180151581146137fd575f80fd5b5f60208284031215614a3f575f80fd5b505191905056fea164736f6c6343000818000a +0x608060405234801561000f575f80fd5b50600436106102cc575f3560e01c8063715018a61161017c578063927ede2d116100dd578063d557714111610093578063f0261bc21161006e578063f0261bc21461068a578063f2fde38b14610693578063fad99f98146106a6575f80fd5b8063d55771411461063b578063e10911b114610662578063ed70b3431461066a575f80fd5b8063b5d2e0dc116100c3578063b5d2e0dc146105d1578063c64814dd146105f0578063d31d83d91461061a575f80fd5b8063927ede2d1461059d57806396ab994d146105c4575f80fd5b806384d7d1d4116101325780638e21d5fb116101185780638e21d5fb146105355780639168ae721461055c57806391bd43a41461057e575f80fd5b806384d7d1d4146105015780638da5cb5b14610524575f80fd5b8063766718081161016257806376671808146104b35780637b05afb5146104bb578063831cfb58146104da575f80fd5b8063715018a6146104a3578063746c8ae1146104ab575f80fd5b80633385ccc21161023157806340b5c837116101e7578063459598a2116101c2578063459598a21461047557806346cdc18a146104885780636d454d5114610490575f80fd5b806340b5c8371461044757806343352d611461045a578063439162b514610462575f80fd5b80633c323a1b116102175780633c323a1b146103d35780633cb747bf146103e65780633d9353fe14610420575f80fd5b80633385ccc2146103b75780633b802421146103ca575f80fd5b8063174e31c4116102865780632cc138be1161026c5780632cc138be146103855780632e787be31461038e57806330158eea14610397575f80fd5b8063174e31c41461035f57806319fac8fd14610372575f80fd5b80630eb573af116102b65780630eb573af1461030b5780630f3b70591461031e57806312a3e94714610356575f80fd5b806243b758146102d05780630be67fcc146102f6575b5f80fd5b6102e36102de36600461415c565b6106ae565b6040519081526020015b60405180910390f35b6103096103043660046141bf565b6106d4565b005b6103096103193660046141fe565b610bf9565b61033161032c366004614215565b610d0c565b604080516001600160a01b0390941684526020840192909252908201526060016102ed565b6102e3609a5481565b61030961036d366004614215565b610d54565b6103096103803660046141fe565b610ecc565b6102e360985481565b6102e360995481565b6103aa6103a53660046141bf565b610fee565b6040516102ed91906142a0565b6103096103c536600461415c565b611215565b6102e3609c5481565b6103096103e1366004614215565b611870565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102ed565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b6103096104553660046141fe565b611f0a565b6103aa61201d565b610309610470366004614346565b612239565b6104086104833660046141fe565b612775565b609d546102e3565b61030961049e3660046143b4565b61279d565b610309612a6e565b610309612a81565b6102e3612d71565b6102e36104c936600461415c565b60a06020525f908152604090205481565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61051461050f36600461415c565b612de5565b60405190151581526020016102ed565b6033546001600160a01b0316610408565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61056f61056a36600461415c565b612e0f565b6040516102ed939291906143eb565b6102e361058c36600461415c565b60a16020525f908152604090205481565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b6097546105149060ff1681565b6102e36105df36600461415c565b609e6020525f908152604090205481565b6102e36105fe36600461441b565b60a360209081525f928352604080842090915290825290205481565b61062d610628366004614452565b612ec1565b6040516102ed9291906144c7565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61030961304f565b61067d61067836600461415c565b6133e9565b6040516102ed91906144e7565b6102e3609b5481565b6103096106a136600461415c565b61347f565b61030961350c565b6001600160a01b0381165f90815260a2602052604081206106ce906135ba565b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156107bc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b19190614548565b6001600160a01b0316145b6108335760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f805b82811015610bac57609b54609e5f86868581811061085657610856614563565b905060200201602081019061086b919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161089557600191505b5f609e5f8686858181106108ab576108ab614563565b90506020020160208101906108c0919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115610b23575f6001609e5f8787868181106108fe576108fe614563565b9050602002016020810190610913919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f205461093d91906145bd565b90505b609d5461094f906001906145bd565b811015610a2157609d6109638260016145d0565b8154811061097357610973614563565b5f91825260209091200154609d80546001600160a01b03909216918390811061099e5761099e614563565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d84815481106109e1576109e1614563565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190610a149084906145bd565b9091555050600101610940565b50609d805480610a3357610a336145e3565b5f8281526020812082015f1990810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90858584818110610a8357610a83614563565b9050602002016020810190610a98919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f868685818110610ad057610ad0614563565b9050602002016020810190610ae5919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115610b23576001609c5f828254610b1d91906145bd565b90915550505b609f5f858584818110610b3857610b38614563565b9050602002016020810190610b4d919061415c565b6001600160a01b0316815260208101919091526040015f90812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590610ba260028301826140fe565b5050600101610836565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618383604051610bde929190614610565b60405180910390a18015610bf457610bf46135c3565b505050565b610c01613743565b5f81118015610c1257506099548114155b610c845760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a65000000000000000000000000000000000000000000000000000000000000606482015260840161082a565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610cd957609d54610cdd565b609c545b90505f6099548210610cf157609954610cf3565b815b9050609b548114610d0657610d066135c3565b50505050565b60a4602052815f5260405f208181548110610d25575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610d5c61379d565b6001600160a01b038216610e12576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610df7575f80fd5b505af1158015610e09573d5f803e3d5ffd5b50505050610ebe565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610ea7575f80fd5b505af1158015610eb9573d5f803e3d5ffd5b505050505b610ec86001606555565b5050565b335f908152609e6020526040902054610f275760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f77656400000000000000000000000000604482015260640161082a565b6014811115610f785760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e0000000000000000000000000000604482015260640161082a565b335f90815260a06020526040812082905560975460ff16610f99575f610fac565b610fa1612d71565b610fac9060016145d0565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff81111561100a5761100a61465d565b60405190808252806020026020018201604052801561105657816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816110285790505b5090505f5b8381101561120d576040518060600160405280609f5f88888681811061108357611083614563565b9050602002016020810190611098919061415c565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f908888868181106110d5576110d5614563565b90506020020160208101906110ea919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f88888681811061112757611127614563565b905060200201602081019061113c919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f2060020180546111699061468a565b80601f01602080910402602001604051908101604052809291908181526020018280546111959061468a565b80156111e05780601f106111b7576101008083540402835291602001916111e0565b820191905f5260205f20905b8154815290600101906020018083116111c357829003601f168201915b50505050508152508282815181106111fa576111fa614563565b602090810291909101015260010161105b565b509392505050565b61121d61379d565b6001600160a01b0381165f90815260a36020908152604080832033845290915290205461128c5760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f00000000000000000000604482015260640161082a565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff166112b8575f6112cb565b6112c0612d71565b6112cb9060016145d0565b6097549091505f9060ff1680156112e0575082155b6112ea57816112f7565b609a546112f790836145d0565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936113b99084906145bd565b90915550506001600160a01b0385165f90815260a2602052604090206113df90336137fd565b506001600160a01b0385165f908152609e602052604090205484158015611408575060975460ff165b80156114155750609c5481105b1561168c576001600160a01b0386165f908152609e602052604081205461143e906001906145bd565b90505b6001609c5461145091906145bd565b81101561168a5760a15f609d838154811061146d5761146d614563565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d6114a28560016145d0565b815481106114b2576114b2614563565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611682575f609d82815481106114f0576114f0614563565b5f918252602090912001546001600160a01b03169050609d6115138360016145d0565b8154811061152357611523614563565b5f91825260209091200154609d80546001600160a01b03909216918490811061154e5761154e614563565b5f91825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905580609d61159c8460016145d0565b815481106115ac576115ac614563565b5f91825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556115f78260016145d0565b609e5f609d858154811061160d5761160d614563565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205561163c8260026145d0565b609e5f609d61164c8660016145d0565b8154811061165c5761165c614563565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b600101611441565b505b841580156116af57506001600160a01b0386165f90815260a16020526040902054155b156116cc576001609c5f8282546116c691906145bd565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b15801561176d575f80fd5b505af115801561177f573d5f803e3d5ffd5b5050505061178a3390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516117e5939291909283526020830191909152604082015260600190565b60405180910390a3841580156117fd575060975460ff165b801561180b5750609b548111155b80156118515750609b546001600160a01b0387165f908152609e602052604090205411806118515750609c546001600160a01b0387165f908152609e6020526040902054115b1561185e5761185e6135c3565b505050505061186d6001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906118d65760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b657200000000000000000000000000000000000000000000604482015260640161082a565b6118de61379d565b5f821161192d5760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e74000000000000000000000000604482015260640161082a565b6119373384613818565b156119845760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d656400000000000000000000604482015260640161082a565b6001600160a01b0383165f90815260a360209081526040808320338452909152902054611a02576119b533846138a1565b15611a025760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d656400000000000000000000000000000000604482015260640161082a565b6001600160a01b0383165f90815260a1602052604081208054849290611a299084906145d0565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611a609084906145d0565b90915550506001600160a01b0383165f90815260a260205260409020611a869033613956565b506001600160a01b0383165f90815260a16020526040902054829003611abe576001609c5f828254611ab891906145d0565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff168015611ae85750600181115b15611d39575f611af96001836145bd565b90505b8015611d375760a15f609d611b126001856145bd565b81548110611b2257611b22614563565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d8481548110611b7357611b73614563565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611d25575f609d611bab6001846145bd565b81548110611bbb57611bbb614563565b5f91825260209091200154609d80546001600160a01b0390921692509083908110611be857611be8614563565b5f918252602090912001546001600160a01b0316609d611c096001856145bd565b81548110611c1957611c19614563565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d8381548110611c5857611c58614563565b5f918252602082200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0393909316929092179091558290609e90609d611caa6001856145bd565b81548110611cba57611cba614563565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611ce98260016145d0565b609e5f609d8581548110611cff57611cff614563565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611d2f816146d5565b915050611afc565b505b6097545f9060ff16611d4b575f611d5e565b611d53612d71565b611d5e9060016145d0565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611e92575f80fd5b505af1158015611ea4573d5f803e3d5ffd5b50505050611eb9611eb23390565b308661396a565b60975460ff168015611ecc5750609b5482115b8015611ef157506099546001600160a01b0386165f908152609e602052604090205411155b15611efe57611efe6135c3565b5050610bf46001606555565b611f12613743565b60975460ff1615611f655760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c7265616479207374617274656400000000000000000000604482015260640161082a565b4281118015611f7e5750611f7c6201518082614717565b155b8015611f8c57506098548114155b611fd85760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d6500000000000000604482015260640161082a565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff81111561203d5761203d61465d565b60405190808252806020026020018201604052801561208957816020015b60408051606080820183525f80835260208301529181019190915281526020019060019003908161205b5790505b5090505f5b609d54811015612233576040518060600160405280609f5f609d85815481106120b9576120b9614563565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f9291908690811061210557612105614563565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d858154811061215e5761215e614563565b5f9182526020808320909101546001600160a01b031683528201929092526040019020600201805461218f9061468a565b80601f01602080910402602001604051908101604052809291908181526020018280546121bb9061468a565b80156122065780601f106121dd57610100808354040283529160200191612206565b820191905f5260205f20905b8154815290600101906020018083116121e957829003601f168201915b505050505081525082828151811061222057612220614563565b602090810291909101015260010161208e565b50919050565b5f54610100900460ff161580801561225757505f54600160ff909116105b806122705750303b15801561227057505f5460ff166001145b6122e25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161082a565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561233e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166123945760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e657220616464726573730000000000000000000000604482015260640161082a565b5f86116124095760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f2030000000000000000000000000000000000000000000000000000000000000606482015260840161082a565b5f85116124585760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f63687300000000604482015260640161082a565b4284118015612471575061246f6201518085614717565b155b6124bd5760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d6500000000000000604482015260640161082a565b8161250a5760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b657273000000000000000000604482015260640161082a565b61251387613bd7565b61251b613c40565b6099869055609a8590556098849055609b8290555f5b609b548110156126975783838281811061254d5761254d614563565b905060200281019061255f919061472a565b609f5f86868581811061257457612574614563565b9050602002810190612586919061472a565b61259490602081019061415c565b6001600160a01b0316815260208101919091526040015f206125b6828261480b565b905050609d8484838181106125cd576125cd614563565b90506020028101906125df919061472a565b6125ed90602081019061415c565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556126419082906145d0565b609e5f86868581811061265657612656614563565b9050602002810190612668919061472a565b61267690602081019061415c565b6001600160a01b0316815260208101919091526040015f2055600101612531565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561276c575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612784575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561288557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612856573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061287a9190614548565b6001600160a01b0316145b6128f75760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f7765640000000000000000000000000000000000000000606482015260840161082a565b609e5f612907602084018461415c565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f036129b457609d61293c602083018361415c565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039390931692909217909155609d5491609e9161299a9085018561415c565b6001600160a01b0316815260208101919091526040015f20555b80609f5f6129c5602084018461415c565b6001600160a01b0316815260208101919091526040015f206129e7828261480b565b506129f79050602082018261415c565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d6020830135612a336040850185614766565b604051612a429392919061497d565b60405180910390a260975460ff16158015612a615750609954609d5411155b1561186d5761186d6135c3565b612a76613743565b612a7f5f613bd7565b565b612a89613743565b609854421015612b005760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d6500000000000000000000000000000000000000000000000000000000606482015260840161082a565b5f609c5411612b515760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e646964617465000000000000000000000000000000000000604482015260640161082a565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612d0e575f5b81811015612d055760a15f609d8381548110612baa57612baa614563565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d8581548110612bfb57612bfb614563565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612cfd575f609d8281548110612c3957612c39614563565b5f91825260209091200154609d80546001600160a01b0390921692509084908110612c6657612c66614563565b5f91825260209091200154609d80546001600160a01b039092169184908110612c9157612c91614563565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d8481548110612cd057612cd0614563565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b600101612b8c565b50600101612b80565b505f5b609d54811015612d6857612d268160016145d0565b609e5f609d8481548110612d3c57612d3c614563565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055600101612d11565b50612a7f6135c3565b5f609854421015612dc45760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f7420737461727465642079657400000000000000604482015260640161082a565b6201518060985442612dd691906145bd565b612de091906149d0565b905090565b6001600160a01b0381165f90815260a36020908152604080832033845290915281205415156106ce565b609f6020525f90815260409020805460018201546002830180546001600160a01b03909316939192612e409061468a565b80601f0160208091040260200160405190810160405280929190818152602001828054612e6c9061468a565b8015612eb75780601f10612e8e57610100808354040283529160200191612eb7565b820191905f5260205f20905b815481529060010190602001808311612e9a57829003601f168201915b5050505050905083565b5f60605f8411612f135760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a65000000000000000000000000000000604482015260640161082a565b6001600160a01b0385165f90815260a260205260409020612f33906135ba565b91508367ffffffffffffffff811115612f4e57612f4e61465d565b604051908082528060200260200182016040528015612f77578160200160208202803683370190505b5090505f612f8584866149e3565b90505f6001612f9486826145d0565b612f9e90886149e3565b612fa891906145bd565b9050612fb56001856145bd565b811115612fca57612fc76001856145bd565b90505b815f5b8282116130435761300182612fe1816149fa565b6001600160a01b038c165f90815260a26020526040902090945090613cc4565b858261300c816149fa565b93508151811061301e5761301e614563565b60200260200101906001600160a01b031690816001600160a01b031681525050612fcd565b50505050935093915050565b61305761379d565b335f90815260a46020526040812054815b818110156133835760975460ff1615806130b85750613085612d71565b335f90815260a4602052604090208054839081106130a5576130a5614563565b905f5260205f2090600302016002015411155b1561337157335f90815260a4602052604090208054829081106130dd576130dd614563565b905f5260205f20906003020160010154836130f891906145d0565b335f90815260a460205260408120805492955090918390811061311d5761311d614563565b5f91825260208220600390910201546001600160a01b0316915060a4816131413390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061317157613171614563565b905f5260205f2090600302016002015490505f60a45f61318e3390565b6001600160a01b03166001600160a01b031681526020019081526020015f2084815481106131be576131be614563565b905f5260205f2090600302016001015490506001856131dd91906145bd565b8410156132ad57335f90815260a4602052604090206131fd6001876145bd565b8154811061320d5761320d614563565b905f5260205f20906003020160a45f6132233390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061325357613253614563565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a4602052604090208054806132ca576132ca6145e3565b5f8281526020812060035f199093019283020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001818101839055600290910191909155915561332090866145bd565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a3505050613068565b61337c8160016145d0565b9050613068565b505f82116133d35760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d000000000000000000604482015260640161082a565b6133dd3383613ccf565b5050612a7f6001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613474575f848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018082015484860152600290910154918301919091529083529092019101613420565b505050509050919050565b613487613743565b6001600160a01b0381166135035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161082a565b61186d81613bd7565b61351461379d565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b15801561359a575f80fd5b505af11580156135ac573d5f803e3d5ffd5b50505050612a7f6001606555565b5f6106ce825490565b60995460975460ff16156135e757609954609c5410156135e25750609c545b6135f8565b609954609d5410156135f85750609d545b5f8167ffffffffffffffff8111156136125761361261465d565b60405190808252806020026020018201604052801561363b578160200160208202803683370190505b5090505f5b828110156136a857609d818154811061365b5761365b614563565b905f5260205f20015f9054906101000a90046001600160a01b031682828151811061368857613688614563565b6001600160a01b0390921660209283029190910190910152600101613640565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a49061370e908490600401614a12565b5f604051808303815f87803b158015613725575f80fd5b505af1158015613737573d5f803e3d5ffd5b50509151609b55505050565b6033546001600160a01b03163314612a7f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161082a565b6002606554036137ef5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161082a565b6002606555565b6001606555565b5f613811836001600160a01b038416613f2d565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613898576001600160a01b038481165f90815260a4602052604090208054918516918390811061386857613868614563565b5f9182526020909120600390910201546001600160a01b0316036138905760019150506106ce565b60010161381b565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa15801561392a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061394e9190614a24565b159392505050565b5f613811836001600160a01b038416614010565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156139eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a0f9190614a43565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613aa1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ac59190614a24565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613b47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b6b9190614a43565b90505f83118015613b84575082613b8283836145bd565b145b613bd05760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161082a565b5050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613cbc5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161082a565b612a7f61405c565b5f61381183836140d8565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613d50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d749190614a43565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015613dfe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e229190614a24565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613ea4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ec89190614a43565b90505f83118015613ee1575082613edf83836145bd565b145b610d065760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161082a565b5f8181526001830160205260408120548015614007575f613f4f6001836145bd565b85549091505f90613f62906001906145bd565b9050818114613fc1575f865f018281548110613f8057613f80614563565b905f5260205f200154905080875f018481548110613fa057613fa0614563565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080613fd257613fd26145e3565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506106ce565b5f9150506106ce565b5f81815260018301602052604081205461405557508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556106ce565b505f6106ce565b5f54610100900460ff166137f65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161082a565b5f825f0182815481106140ed576140ed614563565b905f5260205f200154905092915050565b50805461410a9061468a565b5f825580601f10614119575050565b601f0160209004905f5260205f209081019061186d91905b80821115614144575f8155600101614131565b5090565b6001600160a01b038116811461186d575f80fd5b5f6020828403121561416c575f80fd5b813561381181614148565b5f8083601f840112614187575f80fd5b50813567ffffffffffffffff81111561419e575f80fd5b6020830191508360208260051b85010111156141b8575f80fd5b9250929050565b5f80602083850312156141d0575f80fd5b823567ffffffffffffffff8111156141e6575f80fd5b6141f285828601614177565b90969095509350505050565b5f6020828403121561420e575f80fd5b5035919050565b5f8060408385031215614226575f80fd5b823561423181614148565b946020939093013593505050565b5f81518084525f5b8181101561426357602081850181015186830182015201614247565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015614338578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526143248186018361423f565b9689019694505050908601906001016142c7565b509098975050505050505050565b5f805f805f8060a0878903121561435b575f80fd5b863561436681614148565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614396575f80fd5b6143a289828a01614177565b979a9699509497509295939492505050565b5f602082840312156143c4575f80fd5b813567ffffffffffffffff8111156143da575f80fd5b820160608185031215613811575f80fd5b6001600160a01b0384168152826020820152606060408201525f614412606083018461423f565b95945050505050565b5f806040838503121561442c575f80fd5b823561443781614148565b9150602083013561444781614148565b809150509250929050565b5f805f60608486031215614464575f80fd5b833561446f81614148565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156144bc5781516001600160a01b031687529582019590820190600101614497565b509495945050505050565b828152604060208201525f6144df6040830184614484565b949350505050565b602080825282518282018190525f919060409081850190868401855b8281101561453b57815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101614503565b5091979650505050505050565b5f60208284031215614558575f80fd5b815161381181614148565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156106ce576106ce614590565b808201808211156106ce576106ce614590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b8681101561465257823561463781614148565b6001600160a01b031682529183019190830190600101614624565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061469e57607f821691505b602082108103612233577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f816146e3576146e3614590565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614725576147256146ea565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261475c575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614799575f80fd5b83018035915067ffffffffffffffff8211156147b3575f80fd5b6020019150368190038213156141b8575f80fd5b601f821115610bf457805f5260205f20601f840160051c810160208510156147ec5750805b601f840160051c820191505b81811015613bd0575f81556001016147f8565b813561481681614148565b6001600160a01b0381167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe186360301811261488d575f80fd5b8501803567ffffffffffffffff8111156148a5575f80fd5b80360384830113156148b5575f80fd5b6148c9816148c3855461468a565b856147c7565b5f601f8211600181146148fc575f83156148e557508382018601355b5f19600385901b1c1916600184901b178555614972565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561494857868501890135825593880193908901908801614929565b5084821015614966575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b5f826149de576149de6146ea565b500490565b80820281158282048414176106ce576106ce614590565b5f5f198203614a0b57614a0b614590565b5060010190565b602081525f6138116020830184614484565b5f60208284031215614a34575f80fd5b81518015158114613811575f80fd5b5f60208284031215614a53575f80fd5b505191905056fea164736f6c6343000818000a diff --git a/bindings/bindings/l2staking.go b/bindings/bindings/l2staking.go index 6889a94ad..748f9a6f7 100644 --- a/bindings/bindings/l2staking.go +++ b/bindings/bindings/l2staking.go @@ -46,7 +46,7 @@ type TypesStakerInfo struct { // L2StakingMetaData contains all meta data concerning the L2Staking contract. var L2StakingMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_otherStaking\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochEffective\",\"type\":\"uint256\"}],\"name\":\"CommissionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"effectiveEpoch\",\"type\":\"uint256\"}],\"name\":\"Delegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"uint256\",\"name\":\"oldTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTime\",\"type\":\"uint256\"}],\"name\":\"RewardStartTimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldSize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSize\",\"type\":\"uint256\"}],\"name\":\"SequencerSetMaxSizeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"name\":\"StakerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"stakerAddresses\",\"type\":\"address[]\"}],\"name\":\"StakerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"effectiveEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"name\":\"Undelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UndelegationClaimed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DISTRIBUTE_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contractICrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MORPH_TOKEN_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_STAKING\",\"outputs\":[{\"internalType\":\"contractStaking\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEQUENCER_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo\",\"name\":\"add\",\"type\":\"tuple\"}],\"name\":\"addStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"candidateNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimCommission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"targetEpochIndex\",\"type\":\"uint256\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimUndelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"commissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"delegateStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"delegations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pageSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pageIndex\",\"type\":\"uint256\"}],\"name\":\"getAllDelegatorsInPagination\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"delegatorsTotalNumber\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"delegatorsInPage\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getDelegatorsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakerAddressesLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakers\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_stakerAddresses\",\"type\":\"address[]\"}],\"name\":\"getStakesInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getUndelegations\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"internalType\":\"structIL2Staking.Undelegation[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_sequencersMaxSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_undelegateLockEpochs\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rewardStartTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"_stakers\",\"type\":\"tuple[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isStakingTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestSequencerSetSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"removeStakers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardStarted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerSetMaxSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"setCommissionRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakerAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakerDelegations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalDelegationAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakerRankings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"undelegateLockEpochs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"undelegateStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"undelegations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardStartTime\",\"type\":\"uint256\"}],\"name\":\"updateRewardStartTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_sequencerSetMaxSize\",\"type\":\"uint256\"}],\"name\":\"updateSequencerSetMaxSize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x61012060405234801562000011575f80fd5b5060405162004bf338038062004bf38339810160408190526200003491620000a7565b7353000000000000000000000000000000000000076080526001600160a01b031660a05273530000000000000000000000000000000000001360c05273530000000000000000000000000000000000001760e05273530000000000000000000000000000000000001461010052620000d6565b5f60208284031215620000b8575f80fd5b81516001600160a01b0381168114620000cf575f80fd5b9392505050565b60805160a05160c05160e05161010051614a53620001a05f395f818161042501528181610d7401528181610e1c0152818161172801528181611e4d0152818161350a01526138cf01525f818161053a01526136c501525f81816106400152818161399001528181613a4501528181613aec01528181613cf501528181613da20152613e4901525f81816104df0152818161070901526127d201525f81816103e8015281816105a2015281816106df01528181610733015281816127a801526127fc0152614a535ff3fe608060405234801561000f575f80fd5b50600436106102cc575f3560e01c8063715018a61161017c578063927ede2d116100dd578063d557714111610093578063f0261bc21161006e578063f0261bc21461068a578063f2fde38b14610693578063fad99f98146106a6575f80fd5b8063d55771411461063b578063e10911b114610662578063ed70b3431461066a575f80fd5b8063b5d2e0dc116100c3578063b5d2e0dc146105d1578063c64814dd146105f0578063d31d83d91461061a575f80fd5b8063927ede2d1461059d57806396ab994d146105c4575f80fd5b806384d7d1d4116101325780638e21d5fb116101185780638e21d5fb146105355780639168ae721461055c57806391bd43a41461057e575f80fd5b806384d7d1d4146105015780638da5cb5b14610524575f80fd5b8063766718081161016257806376671808146104b35780637b05afb5146104bb578063831cfb58146104da575f80fd5b8063715018a6146104a3578063746c8ae1146104ab575f80fd5b80633385ccc21161023157806340b5c837116101e7578063459598a2116101c2578063459598a21461047557806346cdc18a146104885780636d454d5114610490575f80fd5b806340b5c8371461044757806343352d611461045a578063439162b514610462575f80fd5b80633c323a1b116102175780633c323a1b146103d35780633cb747bf146103e65780633d9353fe14610420575f80fd5b80633385ccc2146103b75780633b802421146103ca575f80fd5b8063174e31c4116102865780632cc138be1161026c5780632cc138be146103855780632e787be31461038e57806330158eea14610397575f80fd5b8063174e31c41461035f57806319fac8fd14610372575f80fd5b80630eb573af116102b65780630eb573af1461030b5780630f3b70591461031e57806312a3e94714610356575f80fd5b806243b758146102d05780630be67fcc146102f6575b5f80fd5b6102e36102de366004614148565b6106ae565b6040519081526020015b60405180910390f35b6103096103043660046141ab565b6106d4565b005b6103096103193660046141ea565b610bf9565b61033161032c366004614201565b610d0c565b604080516001600160a01b0390941684526020840192909252908201526060016102ed565b6102e3609a5481565b61030961036d366004614201565b610d54565b6103096103803660046141ea565b610ecc565b6102e360985481565b6102e360995481565b6103aa6103a53660046141ab565b610fee565b6040516102ed919061428c565b6103096103c5366004614148565b611215565b6102e3609c5481565b6103096103e1366004614201565b611870565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102ed565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b6103096104553660046141ea565b611f0a565b6103aa61201d565b610309610470366004614332565b612239565b6104086104833660046141ea565b612775565b609d546102e3565b61030961049e3660046143a0565b61279d565b610309612a6e565b610309612a81565b6102e3612d71565b6102e36104c9366004614148565b60a06020525f908152604090205481565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61051461050f366004614148565b612de5565b60405190151581526020016102ed565b6033546001600160a01b0316610408565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61056f61056a366004614148565b612e0f565b6040516102ed939291906143d7565b6102e361058c366004614148565b60a16020525f908152604090205481565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b6097546105149060ff1681565b6102e36105df366004614148565b609e6020525f908152604090205481565b6102e36105fe366004614407565b60a360209081525f928352604080842090915290825290205481565b61062d61062836600461443e565b612ec1565b6040516102ed9291906144b3565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61030961303b565b61067d610678366004614148565b6133d5565b6040516102ed91906144d3565b6102e3609b5481565b6103096106a1366004614148565b61346b565b6103096134f8565b6001600160a01b0381165f90815260a2602052604081206106ce906135a6565b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156107bc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b19190614534565b6001600160a01b0316145b6108335760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f805b82811015610bac57609b54609e5f8686858181106108565761085661454f565b905060200201602081019061086b9190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161089557600191505b5f609e5f8686858181106108ab576108ab61454f565b90506020020160208101906108c09190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115610b23575f6001609e5f8787868181106108fe576108fe61454f565b90506020020160208101906109139190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f205461093d91906145a9565b90505b609d5461094f906001906145a9565b811015610a2157609d6109638260016145bc565b815481106109735761097361454f565b5f91825260209091200154609d80546001600160a01b03909216918390811061099e5761099e61454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d84815481106109e1576109e161454f565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190610a149084906145a9565b9091555050600101610940565b50609d805480610a3357610a336145cf565b5f8281526020812082015f1990810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90858584818110610a8357610a8361454f565b9050602002016020810190610a989190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f868685818110610ad057610ad061454f565b9050602002016020810190610ae59190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115610b23576001609c5f828254610b1d91906145a9565b90915550505b609f5f858584818110610b3857610b3861454f565b9050602002016020810190610b4d9190614148565b6001600160a01b0316815260208101919091526040015f90812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590610ba260028301826140ea565b5050600101610836565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618383604051610bde9291906145fc565b60405180910390a18015610bf457610bf46135af565b505050565b610c0161372f565b5f81118015610c1257506099548114155b610c845760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a65000000000000000000000000000000000000000000000000000000000000606482015260840161082a565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610cd957609d54610cdd565b609c545b90505f6099548210610cf157609954610cf3565b815b9050609b548114610d0657610d066135af565b50505050565b60a4602052815f5260405f208181548110610d25575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610d5c613789565b6001600160a01b038216610e12576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610df7575f80fd5b505af1158015610e09573d5f803e3d5ffd5b50505050610ebe565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610ea7575f80fd5b505af1158015610eb9573d5f803e3d5ffd5b505050505b610ec86001606555565b5050565b335f908152609e6020526040902054610f275760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f77656400000000000000000000000000604482015260640161082a565b6014811115610f785760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e0000000000000000000000000000604482015260640161082a565b335f90815260a06020526040812082905560975460ff16610f99575f610fac565b610fa1612d71565b610fac9060016145bc565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff81111561100a5761100a614649565b60405190808252806020026020018201604052801561105657816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816110285790505b5090505f5b8381101561120d576040518060600160405280609f5f8888868181106110835761108361454f565b90506020020160208101906110989190614148565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f908888868181106110d5576110d561454f565b90506020020160208101906110ea9190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f8888868181106111275761112761454f565b905060200201602081019061113c9190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20600201805461116990614676565b80601f016020809104026020016040519081016040528092919081815260200182805461119590614676565b80156111e05780601f106111b7576101008083540402835291602001916111e0565b820191905f5260205f20905b8154815290600101906020018083116111c357829003601f168201915b50505050508152508282815181106111fa576111fa61454f565b602090810291909101015260010161105b565b509392505050565b61121d613789565b6001600160a01b0381165f90815260a36020908152604080832033845290915290205461128c5760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f00000000000000000000604482015260640161082a565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff166112b8575f6112cb565b6112c0612d71565b6112cb9060016145bc565b6097549091505f9060ff1680156112e0575082155b6112ea57816112f7565b609a546112f790836145bc565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936113b99084906145a9565b90915550506001600160a01b0385165f90815260a2602052604090206113df90336137e9565b506001600160a01b0385165f908152609e602052604090205484158015611408575060975460ff165b80156114155750609c5481105b1561168c576001600160a01b0386165f908152609e602052604081205461143e906001906145a9565b90505b6001609c5461145091906145a9565b81101561168a5760a15f609d838154811061146d5761146d61454f565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d6114a28560016145bc565b815481106114b2576114b261454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611682575f609d82815481106114f0576114f061454f565b5f918252602090912001546001600160a01b03169050609d6115138360016145bc565b815481106115235761152361454f565b5f91825260209091200154609d80546001600160a01b03909216918490811061154e5761154e61454f565b5f91825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905580609d61159c8460016145bc565b815481106115ac576115ac61454f565b5f91825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556115f78260016145bc565b609e5f609d858154811061160d5761160d61454f565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205561163c8260026145bc565b609e5f609d61164c8660016145bc565b8154811061165c5761165c61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b600101611441565b505b841580156116af57506001600160a01b0386165f90815260a16020526040902054155b156116cc576001609c5f8282546116c691906145a9565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b15801561176d575f80fd5b505af115801561177f573d5f803e3d5ffd5b5050505061178a3390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516117e5939291909283526020830191909152604082015260600190565b60405180910390a3841580156117fd575060975460ff165b801561180b5750609b548111155b80156118515750609b546001600160a01b0387165f908152609e602052604090205411806118515750609c546001600160a01b0387165f908152609e6020526040902054115b1561185e5761185e6135af565b505050505061186d6001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906118d65760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b657200000000000000000000000000000000000000000000604482015260640161082a565b6118de613789565b5f821161192d5760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e74000000000000000000000000604482015260640161082a565b6119373384613804565b156119845760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d656400000000000000000000604482015260640161082a565b6001600160a01b0383165f90815260a360209081526040808320338452909152902054611a02576119b5338461388d565b15611a025760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d656400000000000000000000000000000000604482015260640161082a565b6001600160a01b0383165f90815260a1602052604081208054849290611a299084906145bc565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611a609084906145bc565b90915550506001600160a01b0383165f90815260a260205260409020611a869033613942565b506001600160a01b0383165f90815260a16020526040902054829003611abe576001609c5f828254611ab891906145bc565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff168015611ae85750600181115b15611d39575f611af96001836145a9565b90505b8015611d375760a15f609d611b126001856145a9565b81548110611b2257611b2261454f565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d8481548110611b7357611b7361454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611d25575f609d611bab6001846145a9565b81548110611bbb57611bbb61454f565b5f91825260209091200154609d80546001600160a01b0390921692509083908110611be857611be861454f565b5f918252602090912001546001600160a01b0316609d611c096001856145a9565b81548110611c1957611c1961454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d8381548110611c5857611c5861454f565b5f918252602082200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0393909316929092179091558290609e90609d611caa6001856145a9565b81548110611cba57611cba61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611ce98260016145bc565b609e5f609d8581548110611cff57611cff61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611d2f816146c1565b915050611afc565b505b6097545f9060ff16611d4b575f611d5e565b611d53612d71565b611d5e9060016145bc565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611e92575f80fd5b505af1158015611ea4573d5f803e3d5ffd5b50505050611eb9611eb23390565b3086613956565b60975460ff168015611ecc5750609b5482115b8015611ef157506099546001600160a01b0386165f908152609e602052604090205411155b15611efe57611efe6135af565b5050610bf46001606555565b611f1261372f565b60975460ff1615611f655760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c7265616479207374617274656400000000000000000000604482015260640161082a565b4281118015611f7e5750611f7c6201518082614703565b155b8015611f8c57506098548114155b611fd85760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d6500000000000000604482015260640161082a565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff81111561203d5761203d614649565b60405190808252806020026020018201604052801561208957816020015b60408051606080820183525f80835260208301529181019190915281526020019060019003908161205b5790505b5090505f5b609d54811015612233576040518060600160405280609f5f609d85815481106120b9576120b961454f565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f929190869081106121055761210561454f565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d858154811061215e5761215e61454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020600201805461218f90614676565b80601f01602080910402602001604051908101604052809291908181526020018280546121bb90614676565b80156122065780601f106121dd57610100808354040283529160200191612206565b820191905f5260205f20905b8154815290600101906020018083116121e957829003601f168201915b50505050508152508282815181106122205761222061454f565b602090810291909101015260010161208e565b50919050565b5f54610100900460ff161580801561225757505f54600160ff909116105b806122705750303b15801561227057505f5460ff166001145b6122e25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161082a565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561233e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166123945760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e657220616464726573730000000000000000000000604482015260640161082a565b5f86116124095760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f2030000000000000000000000000000000000000000000000000000000000000606482015260840161082a565b5f85116124585760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f63687300000000604482015260640161082a565b4284118015612471575061246f6201518085614703565b155b6124bd5760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d6500000000000000604482015260640161082a565b8161250a5760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b657273000000000000000000604482015260640161082a565b61251387613bc3565b61251b613c2c565b6099869055609a8590556098849055609b8290555f5b609b548110156126975783838281811061254d5761254d61454f565b905060200281019061255f9190614716565b609f5f8686858181106125745761257461454f565b90506020028101906125869190614716565b612594906020810190614148565b6001600160a01b0316815260208101919091526040015f206125b682826147f7565b905050609d8484838181106125cd576125cd61454f565b90506020028101906125df9190614716565b6125ed906020810190614148565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556126419082906145bc565b609e5f8686858181106126565761265661454f565b90506020028101906126689190614716565b612676906020810190614148565b6001600160a01b0316815260208101919091526040015f2055600101612531565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561276c575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612784575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561288557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612856573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061287a9190614534565b6001600160a01b0316145b6128f75760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f7765640000000000000000000000000000000000000000606482015260840161082a565b609e5f6129076020840184614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f036129b457609d61293c6020830183614148565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039390931692909217909155609d5491609e9161299a90850185614148565b6001600160a01b0316815260208101919091526040015f20555b80609f5f6129c56020840184614148565b6001600160a01b0316815260208101919091526040015f206129e782826147f7565b506129f790506020820182614148565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d6020830135612a336040850185614752565b604051612a4293929190614969565b60405180910390a260975460ff16158015612a615750609954609d5411155b1561186d5761186d6135af565b612a7661372f565b612a7f5f613bc3565b565b612a8961372f565b609854421015612b005760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d6500000000000000000000000000000000000000000000000000000000606482015260840161082a565b5f609c5411612b515760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e646964617465000000000000000000000000000000000000604482015260640161082a565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612d0e575f5b81811015612d055760a15f609d8381548110612baa57612baa61454f565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d8581548110612bfb57612bfb61454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612cfd575f609d8281548110612c3957612c3961454f565b5f91825260209091200154609d80546001600160a01b0390921692509084908110612c6657612c6661454f565b5f91825260209091200154609d80546001600160a01b039092169184908110612c9157612c9161454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d8481548110612cd057612cd061454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b600101612b8c565b50600101612b80565b505f5b609d54811015612d6857612d268160016145bc565b609e5f609d8481548110612d3c57612d3c61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055600101612d11565b50612a7f6135af565b5f609854421015612dc45760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f7420737461727465642079657400000000000000604482015260640161082a565b6201518060985442612dd691906145a9565b612de091906149bc565b905090565b6001600160a01b0381165f90815260a36020908152604080832033845290915281205415156106ce565b609f6020525f90815260409020805460018201546002830180546001600160a01b03909316939192612e4090614676565b80601f0160208091040260200160405190810160405280929190818152602001828054612e6c90614676565b8015612eb75780601f10612e8e57610100808354040283529160200191612eb7565b820191905f5260205f20905b815481529060010190602001808311612e9a57829003601f168201915b5050505050905083565b5f60605f8411612f135760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a65000000000000000000000000000000604482015260640161082a565b6001600160a01b0385165f90815260a260205260409020612f33906135a6565b91508367ffffffffffffffff811115612f4e57612f4e614649565b604051908082528060200260200182016040528015612f77578160200160208202803683370190505b5090505f612f8584866149cf565b90505f6001612f9486826145bc565b612f9e90886149cf565b612fa891906145a9565b9050612fb56001856145a9565b811115612fca57612fc76001856145a9565b90505b815b818111613030576001600160a01b0388165f90815260a260205260409020612ff49082613cb0565b8482815181106130065761300661454f565b6001600160a01b039092166020928302919091019091015280613028816149e6565b915050612fcc565b505050935093915050565b613043613789565b335f90815260a46020526040812054815b8181101561336f5760975460ff1615806130a45750613071612d71565b335f90815260a4602052604090208054839081106130915761309161454f565b905f5260205f2090600302016002015411155b1561335d57335f90815260a4602052604090208054829081106130c9576130c961454f565b905f5260205f20906003020160010154836130e491906145bc565b335f90815260a46020526040812080549295509091839081106131095761310961454f565b5f91825260208220600390910201546001600160a01b0316915060a48161312d3390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061315d5761315d61454f565b905f5260205f2090600302016002015490505f60a45f61317a3390565b6001600160a01b03166001600160a01b031681526020019081526020015f2084815481106131aa576131aa61454f565b905f5260205f2090600302016001015490506001856131c991906145a9565b84101561329957335f90815260a4602052604090206131e96001876145a9565b815481106131f9576131f961454f565b905f5260205f20906003020160a45f61320f3390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061323f5761323f61454f565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a4602052604090208054806132b6576132b66145cf565b5f8281526020812060035f199093019283020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001818101839055600290910191909155915561330c90866145a9565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a3505050613054565b6133688160016145bc565b9050613054565b505f82116133bf5760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d000000000000000000604482015260640161082a565b6133c93383613cbb565b5050612a7f6001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613460575f848152602090819020604080516060810182526003860290920180546001600160a01b031683526001808201548486015260029091015491830191909152908352909201910161340c565b505050509050919050565b61347361372f565b6001600160a01b0381166134ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161082a565b61186d81613bc3565b613500613789565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015613586575f80fd5b505af1158015613598573d5f803e3d5ffd5b50505050612a7f6001606555565b5f6106ce825490565b60995460975460ff16156135d357609954609c5410156135ce5750609c545b6135e4565b609954609d5410156135e45750609d545b5f8167ffffffffffffffff8111156135fe576135fe614649565b604051908082528060200260200182016040528015613627578160200160208202803683370190505b5090505f5b8281101561369457609d81815481106136475761364761454f565b905f5260205f20015f9054906101000a90046001600160a01b03168282815181106136745761367461454f565b6001600160a01b039092166020928302919091019091015260010161362c565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a4906136fa9084906004016149fe565b5f604051808303815f87803b158015613711575f80fd5b505af1158015613723573d5f803e3d5ffd5b50509151609b55505050565b6033546001600160a01b03163314612a7f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161082a565b6002606554036137db5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161082a565b6002606555565b6001606555565b5f6137fd836001600160a01b038416613f19565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613884576001600160a01b038481165f90815260a460205260409020805491851691839081106138545761385461454f565b5f9182526020909120600390910201546001600160a01b03160361387c5760019150506106ce565b600101613807565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613916573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061393a9190614a10565b159392505050565b5f6137fd836001600160a01b038416613ffc565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156139d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139fb9190614a2f565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613a8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ab19190614a10565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613b33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b579190614a2f565b90505f83118015613b70575082613b6e83836145a9565b145b613bbc5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161082a565b5050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613ca85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161082a565b612a7f614048565b5f6137fd83836140c4565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613d3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d609190614a2f565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015613dea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e0e9190614a10565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613eb49190614a2f565b90505f83118015613ecd575082613ecb83836145a9565b145b610d065760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161082a565b5f8181526001830160205260408120548015613ff3575f613f3b6001836145a9565b85549091505f90613f4e906001906145a9565b9050818114613fad575f865f018281548110613f6c57613f6c61454f565b905f5260205f200154905080875f018481548110613f8c57613f8c61454f565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080613fbe57613fbe6145cf565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506106ce565b5f9150506106ce565b5f81815260018301602052604081205461404157508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556106ce565b505f6106ce565b5f54610100900460ff166137e25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161082a565b5f825f0182815481106140d9576140d961454f565b905f5260205f200154905092915050565b5080546140f690614676565b5f825580601f10614105575050565b601f0160209004905f5260205f209081019061186d91905b80821115614130575f815560010161411d565b5090565b6001600160a01b038116811461186d575f80fd5b5f60208284031215614158575f80fd5b81356137fd81614134565b5f8083601f840112614173575f80fd5b50813567ffffffffffffffff81111561418a575f80fd5b6020830191508360208260051b85010111156141a4575f80fd5b9250929050565b5f80602083850312156141bc575f80fd5b823567ffffffffffffffff8111156141d2575f80fd5b6141de85828601614163565b90969095509350505050565b5f602082840312156141fa575f80fd5b5035919050565b5f8060408385031215614212575f80fd5b823561421d81614134565b946020939093013593505050565b5f81518084525f5b8181101561424f57602081850181015186830182015201614233565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015614324578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526143108186018361422b565b9689019694505050908601906001016142b3565b509098975050505050505050565b5f805f805f8060a08789031215614347575f80fd5b863561435281614134565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614382575f80fd5b61438e89828a01614163565b979a9699509497509295939492505050565b5f602082840312156143b0575f80fd5b813567ffffffffffffffff8111156143c6575f80fd5b8201606081850312156137fd575f80fd5b6001600160a01b0384168152826020820152606060408201525f6143fe606083018461422b565b95945050505050565b5f8060408385031215614418575f80fd5b823561442381614134565b9150602083013561443381614134565b809150509250929050565b5f805f60608486031215614450575f80fd5b833561445b81614134565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156144a85781516001600160a01b031687529582019590820190600101614483565b509495945050505050565b828152604060208201525f6144cb6040830184614470565b949350505050565b602080825282518282018190525f919060409081850190868401855b8281101561452757815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016144ef565b5091979650505050505050565b5f60208284031215614544575f80fd5b81516137fd81614134565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156106ce576106ce61457c565b808201808211156106ce576106ce61457c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b8681101561463e57823561462381614134565b6001600160a01b031682529183019190830190600101614610565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061468a57607f821691505b602082108103612233577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f816146cf576146cf61457c565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614711576147116146d6565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614748575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614785575f80fd5b83018035915067ffffffffffffffff82111561479f575f80fd5b6020019150368190038213156141a4575f80fd5b601f821115610bf457805f5260205f20601f840160051c810160208510156147d85750805b601f840160051c820191505b81811015613bbc575f81556001016147e4565b813561480281614134565b6001600160a01b0381167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614879575f80fd5b8501803567ffffffffffffffff811115614891575f80fd5b80360384830113156148a1575f80fd5b6148b5816148af8554614676565b856147b3565b5f601f8211600181146148e8575f83156148d157508382018601355b5f19600385901b1c1916600184901b17855561495e565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561493457868501890135825593880193908901908801614915565b5084821015614952575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b5f826149ca576149ca6146d6565b500490565b80820281158282048414176106ce576106ce61457c565b5f5f1982036149f7576149f761457c565b5060010190565b602081525f6137fd6020830184614470565b5f60208284031215614a20575f80fd5b815180151581146137fd575f80fd5b5f60208284031215614a3f575f80fd5b505191905056fea164736f6c6343000818000a", + Bin: "0x61012060405234801562000011575f80fd5b5060405162004c0738038062004c078339810160408190526200003491620000a7565b7353000000000000000000000000000000000000076080526001600160a01b031660a05273530000000000000000000000000000000000001360c05273530000000000000000000000000000000000001760e05273530000000000000000000000000000000000001461010052620000d6565b5f60208284031215620000b8575f80fd5b81516001600160a01b0381168114620000cf575f80fd5b9392505050565b60805160a05160c05160e05161010051614a67620001a05f395f818161042501528181610d7401528181610e1c0152818161172801528181611e4d0152818161351e01526138e301525f818161053a01526136d901525f8181610640015281816139a401528181613a5901528181613b0001528181613d0901528181613db60152613e5d01525f81816104df0152818161070901526127d201525f81816103e8015281816105a2015281816106df01528181610733015281816127a801526127fc0152614a675ff3fe608060405234801561000f575f80fd5b50600436106102cc575f3560e01c8063715018a61161017c578063927ede2d116100dd578063d557714111610093578063f0261bc21161006e578063f0261bc21461068a578063f2fde38b14610693578063fad99f98146106a6575f80fd5b8063d55771411461063b578063e10911b114610662578063ed70b3431461066a575f80fd5b8063b5d2e0dc116100c3578063b5d2e0dc146105d1578063c64814dd146105f0578063d31d83d91461061a575f80fd5b8063927ede2d1461059d57806396ab994d146105c4575f80fd5b806384d7d1d4116101325780638e21d5fb116101185780638e21d5fb146105355780639168ae721461055c57806391bd43a41461057e575f80fd5b806384d7d1d4146105015780638da5cb5b14610524575f80fd5b8063766718081161016257806376671808146104b35780637b05afb5146104bb578063831cfb58146104da575f80fd5b8063715018a6146104a3578063746c8ae1146104ab575f80fd5b80633385ccc21161023157806340b5c837116101e7578063459598a2116101c2578063459598a21461047557806346cdc18a146104885780636d454d5114610490575f80fd5b806340b5c8371461044757806343352d611461045a578063439162b514610462575f80fd5b80633c323a1b116102175780633c323a1b146103d35780633cb747bf146103e65780633d9353fe14610420575f80fd5b80633385ccc2146103b75780633b802421146103ca575f80fd5b8063174e31c4116102865780632cc138be1161026c5780632cc138be146103855780632e787be31461038e57806330158eea14610397575f80fd5b8063174e31c41461035f57806319fac8fd14610372575f80fd5b80630eb573af116102b65780630eb573af1461030b5780630f3b70591461031e57806312a3e94714610356575f80fd5b806243b758146102d05780630be67fcc146102f6575b5f80fd5b6102e36102de36600461415c565b6106ae565b6040519081526020015b60405180910390f35b6103096103043660046141bf565b6106d4565b005b6103096103193660046141fe565b610bf9565b61033161032c366004614215565b610d0c565b604080516001600160a01b0390941684526020840192909252908201526060016102ed565b6102e3609a5481565b61030961036d366004614215565b610d54565b6103096103803660046141fe565b610ecc565b6102e360985481565b6102e360995481565b6103aa6103a53660046141bf565b610fee565b6040516102ed91906142a0565b6103096103c536600461415c565b611215565b6102e3609c5481565b6103096103e1366004614215565b611870565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102ed565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b6103096104553660046141fe565b611f0a565b6103aa61201d565b610309610470366004614346565b612239565b6104086104833660046141fe565b612775565b609d546102e3565b61030961049e3660046143b4565b61279d565b610309612a6e565b610309612a81565b6102e3612d71565b6102e36104c936600461415c565b60a06020525f908152604090205481565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61051461050f36600461415c565b612de5565b60405190151581526020016102ed565b6033546001600160a01b0316610408565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61056f61056a36600461415c565b612e0f565b6040516102ed939291906143eb565b6102e361058c36600461415c565b60a16020525f908152604090205481565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b6097546105149060ff1681565b6102e36105df36600461415c565b609e6020525f908152604090205481565b6102e36105fe36600461441b565b60a360209081525f928352604080842090915290825290205481565b61062d610628366004614452565b612ec1565b6040516102ed9291906144c7565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61030961304f565b61067d61067836600461415c565b6133e9565b6040516102ed91906144e7565b6102e3609b5481565b6103096106a136600461415c565b61347f565b61030961350c565b6001600160a01b0381165f90815260a2602052604081206106ce906135ba565b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156107bc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b19190614548565b6001600160a01b0316145b6108335760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f805b82811015610bac57609b54609e5f86868581811061085657610856614563565b905060200201602081019061086b919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161089557600191505b5f609e5f8686858181106108ab576108ab614563565b90506020020160208101906108c0919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115610b23575f6001609e5f8787868181106108fe576108fe614563565b9050602002016020810190610913919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f205461093d91906145bd565b90505b609d5461094f906001906145bd565b811015610a2157609d6109638260016145d0565b8154811061097357610973614563565b5f91825260209091200154609d80546001600160a01b03909216918390811061099e5761099e614563565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d84815481106109e1576109e1614563565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190610a149084906145bd565b9091555050600101610940565b50609d805480610a3357610a336145e3565b5f8281526020812082015f1990810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90858584818110610a8357610a83614563565b9050602002016020810190610a98919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f868685818110610ad057610ad0614563565b9050602002016020810190610ae5919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115610b23576001609c5f828254610b1d91906145bd565b90915550505b609f5f858584818110610b3857610b38614563565b9050602002016020810190610b4d919061415c565b6001600160a01b0316815260208101919091526040015f90812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590610ba260028301826140fe565b5050600101610836565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618383604051610bde929190614610565b60405180910390a18015610bf457610bf46135c3565b505050565b610c01613743565b5f81118015610c1257506099548114155b610c845760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a65000000000000000000000000000000000000000000000000000000000000606482015260840161082a565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610cd957609d54610cdd565b609c545b90505f6099548210610cf157609954610cf3565b815b9050609b548114610d0657610d066135c3565b50505050565b60a4602052815f5260405f208181548110610d25575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610d5c61379d565b6001600160a01b038216610e12576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610df7575f80fd5b505af1158015610e09573d5f803e3d5ffd5b50505050610ebe565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610ea7575f80fd5b505af1158015610eb9573d5f803e3d5ffd5b505050505b610ec86001606555565b5050565b335f908152609e6020526040902054610f275760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f77656400000000000000000000000000604482015260640161082a565b6014811115610f785760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e0000000000000000000000000000604482015260640161082a565b335f90815260a06020526040812082905560975460ff16610f99575f610fac565b610fa1612d71565b610fac9060016145d0565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff81111561100a5761100a61465d565b60405190808252806020026020018201604052801561105657816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816110285790505b5090505f5b8381101561120d576040518060600160405280609f5f88888681811061108357611083614563565b9050602002016020810190611098919061415c565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f908888868181106110d5576110d5614563565b90506020020160208101906110ea919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f88888681811061112757611127614563565b905060200201602081019061113c919061415c565b6001600160a01b03166001600160a01b031681526020019081526020015f2060020180546111699061468a565b80601f01602080910402602001604051908101604052809291908181526020018280546111959061468a565b80156111e05780601f106111b7576101008083540402835291602001916111e0565b820191905f5260205f20905b8154815290600101906020018083116111c357829003601f168201915b50505050508152508282815181106111fa576111fa614563565b602090810291909101015260010161105b565b509392505050565b61121d61379d565b6001600160a01b0381165f90815260a36020908152604080832033845290915290205461128c5760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f00000000000000000000604482015260640161082a565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff166112b8575f6112cb565b6112c0612d71565b6112cb9060016145d0565b6097549091505f9060ff1680156112e0575082155b6112ea57816112f7565b609a546112f790836145d0565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936113b99084906145bd565b90915550506001600160a01b0385165f90815260a2602052604090206113df90336137fd565b506001600160a01b0385165f908152609e602052604090205484158015611408575060975460ff165b80156114155750609c5481105b1561168c576001600160a01b0386165f908152609e602052604081205461143e906001906145bd565b90505b6001609c5461145091906145bd565b81101561168a5760a15f609d838154811061146d5761146d614563565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d6114a28560016145d0565b815481106114b2576114b2614563565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611682575f609d82815481106114f0576114f0614563565b5f918252602090912001546001600160a01b03169050609d6115138360016145d0565b8154811061152357611523614563565b5f91825260209091200154609d80546001600160a01b03909216918490811061154e5761154e614563565b5f91825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905580609d61159c8460016145d0565b815481106115ac576115ac614563565b5f91825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556115f78260016145d0565b609e5f609d858154811061160d5761160d614563565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205561163c8260026145d0565b609e5f609d61164c8660016145d0565b8154811061165c5761165c614563565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b600101611441565b505b841580156116af57506001600160a01b0386165f90815260a16020526040902054155b156116cc576001609c5f8282546116c691906145bd565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b15801561176d575f80fd5b505af115801561177f573d5f803e3d5ffd5b5050505061178a3390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516117e5939291909283526020830191909152604082015260600190565b60405180910390a3841580156117fd575060975460ff165b801561180b5750609b548111155b80156118515750609b546001600160a01b0387165f908152609e602052604090205411806118515750609c546001600160a01b0387165f908152609e6020526040902054115b1561185e5761185e6135c3565b505050505061186d6001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906118d65760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b657200000000000000000000000000000000000000000000604482015260640161082a565b6118de61379d565b5f821161192d5760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e74000000000000000000000000604482015260640161082a565b6119373384613818565b156119845760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d656400000000000000000000604482015260640161082a565b6001600160a01b0383165f90815260a360209081526040808320338452909152902054611a02576119b533846138a1565b15611a025760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d656400000000000000000000000000000000604482015260640161082a565b6001600160a01b0383165f90815260a1602052604081208054849290611a299084906145d0565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611a609084906145d0565b90915550506001600160a01b0383165f90815260a260205260409020611a869033613956565b506001600160a01b0383165f90815260a16020526040902054829003611abe576001609c5f828254611ab891906145d0565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff168015611ae85750600181115b15611d39575f611af96001836145bd565b90505b8015611d375760a15f609d611b126001856145bd565b81548110611b2257611b22614563565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d8481548110611b7357611b73614563565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611d25575f609d611bab6001846145bd565b81548110611bbb57611bbb614563565b5f91825260209091200154609d80546001600160a01b0390921692509083908110611be857611be8614563565b5f918252602090912001546001600160a01b0316609d611c096001856145bd565b81548110611c1957611c19614563565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d8381548110611c5857611c58614563565b5f918252602082200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0393909316929092179091558290609e90609d611caa6001856145bd565b81548110611cba57611cba614563565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611ce98260016145d0565b609e5f609d8581548110611cff57611cff614563565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611d2f816146d5565b915050611afc565b505b6097545f9060ff16611d4b575f611d5e565b611d53612d71565b611d5e9060016145d0565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611e92575f80fd5b505af1158015611ea4573d5f803e3d5ffd5b50505050611eb9611eb23390565b308661396a565b60975460ff168015611ecc5750609b5482115b8015611ef157506099546001600160a01b0386165f908152609e602052604090205411155b15611efe57611efe6135c3565b5050610bf46001606555565b611f12613743565b60975460ff1615611f655760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c7265616479207374617274656400000000000000000000604482015260640161082a565b4281118015611f7e5750611f7c6201518082614717565b155b8015611f8c57506098548114155b611fd85760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d6500000000000000604482015260640161082a565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff81111561203d5761203d61465d565b60405190808252806020026020018201604052801561208957816020015b60408051606080820183525f80835260208301529181019190915281526020019060019003908161205b5790505b5090505f5b609d54811015612233576040518060600160405280609f5f609d85815481106120b9576120b9614563565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f9291908690811061210557612105614563565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d858154811061215e5761215e614563565b5f9182526020808320909101546001600160a01b031683528201929092526040019020600201805461218f9061468a565b80601f01602080910402602001604051908101604052809291908181526020018280546121bb9061468a565b80156122065780601f106121dd57610100808354040283529160200191612206565b820191905f5260205f20905b8154815290600101906020018083116121e957829003601f168201915b505050505081525082828151811061222057612220614563565b602090810291909101015260010161208e565b50919050565b5f54610100900460ff161580801561225757505f54600160ff909116105b806122705750303b15801561227057505f5460ff166001145b6122e25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161082a565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561233e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166123945760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e657220616464726573730000000000000000000000604482015260640161082a565b5f86116124095760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f2030000000000000000000000000000000000000000000000000000000000000606482015260840161082a565b5f85116124585760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f63687300000000604482015260640161082a565b4284118015612471575061246f6201518085614717565b155b6124bd5760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d6500000000000000604482015260640161082a565b8161250a5760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b657273000000000000000000604482015260640161082a565b61251387613bd7565b61251b613c40565b6099869055609a8590556098849055609b8290555f5b609b548110156126975783838281811061254d5761254d614563565b905060200281019061255f919061472a565b609f5f86868581811061257457612574614563565b9050602002810190612586919061472a565b61259490602081019061415c565b6001600160a01b0316815260208101919091526040015f206125b6828261480b565b905050609d8484838181106125cd576125cd614563565b90506020028101906125df919061472a565b6125ed90602081019061415c565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556126419082906145d0565b609e5f86868581811061265657612656614563565b9050602002810190612668919061472a565b61267690602081019061415c565b6001600160a01b0316815260208101919091526040015f2055600101612531565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561276c575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612784575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561288557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612856573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061287a9190614548565b6001600160a01b0316145b6128f75760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f7765640000000000000000000000000000000000000000606482015260840161082a565b609e5f612907602084018461415c565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f036129b457609d61293c602083018361415c565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039390931692909217909155609d5491609e9161299a9085018561415c565b6001600160a01b0316815260208101919091526040015f20555b80609f5f6129c5602084018461415c565b6001600160a01b0316815260208101919091526040015f206129e7828261480b565b506129f79050602082018261415c565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d6020830135612a336040850185614766565b604051612a429392919061497d565b60405180910390a260975460ff16158015612a615750609954609d5411155b1561186d5761186d6135c3565b612a76613743565b612a7f5f613bd7565b565b612a89613743565b609854421015612b005760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d6500000000000000000000000000000000000000000000000000000000606482015260840161082a565b5f609c5411612b515760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e646964617465000000000000000000000000000000000000604482015260640161082a565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612d0e575f5b81811015612d055760a15f609d8381548110612baa57612baa614563565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d8581548110612bfb57612bfb614563565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612cfd575f609d8281548110612c3957612c39614563565b5f91825260209091200154609d80546001600160a01b0390921692509084908110612c6657612c66614563565b5f91825260209091200154609d80546001600160a01b039092169184908110612c9157612c91614563565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d8481548110612cd057612cd0614563565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b600101612b8c565b50600101612b80565b505f5b609d54811015612d6857612d268160016145d0565b609e5f609d8481548110612d3c57612d3c614563565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055600101612d11565b50612a7f6135c3565b5f609854421015612dc45760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f7420737461727465642079657400000000000000604482015260640161082a565b6201518060985442612dd691906145bd565b612de091906149d0565b905090565b6001600160a01b0381165f90815260a36020908152604080832033845290915281205415156106ce565b609f6020525f90815260409020805460018201546002830180546001600160a01b03909316939192612e409061468a565b80601f0160208091040260200160405190810160405280929190818152602001828054612e6c9061468a565b8015612eb75780601f10612e8e57610100808354040283529160200191612eb7565b820191905f5260205f20905b815481529060010190602001808311612e9a57829003601f168201915b5050505050905083565b5f60605f8411612f135760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a65000000000000000000000000000000604482015260640161082a565b6001600160a01b0385165f90815260a260205260409020612f33906135ba565b91508367ffffffffffffffff811115612f4e57612f4e61465d565b604051908082528060200260200182016040528015612f77578160200160208202803683370190505b5090505f612f8584866149e3565b90505f6001612f9486826145d0565b612f9e90886149e3565b612fa891906145bd565b9050612fb56001856145bd565b811115612fca57612fc76001856145bd565b90505b815f5b8282116130435761300182612fe1816149fa565b6001600160a01b038c165f90815260a26020526040902090945090613cc4565b858261300c816149fa565b93508151811061301e5761301e614563565b60200260200101906001600160a01b031690816001600160a01b031681525050612fcd565b50505050935093915050565b61305761379d565b335f90815260a46020526040812054815b818110156133835760975460ff1615806130b85750613085612d71565b335f90815260a4602052604090208054839081106130a5576130a5614563565b905f5260205f2090600302016002015411155b1561337157335f90815260a4602052604090208054829081106130dd576130dd614563565b905f5260205f20906003020160010154836130f891906145d0565b335f90815260a460205260408120805492955090918390811061311d5761311d614563565b5f91825260208220600390910201546001600160a01b0316915060a4816131413390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061317157613171614563565b905f5260205f2090600302016002015490505f60a45f61318e3390565b6001600160a01b03166001600160a01b031681526020019081526020015f2084815481106131be576131be614563565b905f5260205f2090600302016001015490506001856131dd91906145bd565b8410156132ad57335f90815260a4602052604090206131fd6001876145bd565b8154811061320d5761320d614563565b905f5260205f20906003020160a45f6132233390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061325357613253614563565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a4602052604090208054806132ca576132ca6145e3565b5f8281526020812060035f199093019283020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001818101839055600290910191909155915561332090866145bd565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a3505050613068565b61337c8160016145d0565b9050613068565b505f82116133d35760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d000000000000000000604482015260640161082a565b6133dd3383613ccf565b5050612a7f6001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613474575f848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018082015484860152600290910154918301919091529083529092019101613420565b505050509050919050565b613487613743565b6001600160a01b0381166135035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161082a565b61186d81613bd7565b61351461379d565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b15801561359a575f80fd5b505af11580156135ac573d5f803e3d5ffd5b50505050612a7f6001606555565b5f6106ce825490565b60995460975460ff16156135e757609954609c5410156135e25750609c545b6135f8565b609954609d5410156135f85750609d545b5f8167ffffffffffffffff8111156136125761361261465d565b60405190808252806020026020018201604052801561363b578160200160208202803683370190505b5090505f5b828110156136a857609d818154811061365b5761365b614563565b905f5260205f20015f9054906101000a90046001600160a01b031682828151811061368857613688614563565b6001600160a01b0390921660209283029190910190910152600101613640565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a49061370e908490600401614a12565b5f604051808303815f87803b158015613725575f80fd5b505af1158015613737573d5f803e3d5ffd5b50509151609b55505050565b6033546001600160a01b03163314612a7f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161082a565b6002606554036137ef5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161082a565b6002606555565b6001606555565b5f613811836001600160a01b038416613f2d565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613898576001600160a01b038481165f90815260a4602052604090208054918516918390811061386857613868614563565b5f9182526020909120600390910201546001600160a01b0316036138905760019150506106ce565b60010161381b565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa15801561392a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061394e9190614a24565b159392505050565b5f613811836001600160a01b038416614010565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156139eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a0f9190614a43565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613aa1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ac59190614a24565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613b47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b6b9190614a43565b90505f83118015613b84575082613b8283836145bd565b145b613bd05760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161082a565b5050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613cbc5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161082a565b612a7f61405c565b5f61381183836140d8565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613d50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d749190614a43565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015613dfe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e229190614a24565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613ea4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ec89190614a43565b90505f83118015613ee1575082613edf83836145bd565b145b610d065760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161082a565b5f8181526001830160205260408120548015614007575f613f4f6001836145bd565b85549091505f90613f62906001906145bd565b9050818114613fc1575f865f018281548110613f8057613f80614563565b905f5260205f200154905080875f018481548110613fa057613fa0614563565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080613fd257613fd26145e3565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506106ce565b5f9150506106ce565b5f81815260018301602052604081205461405557508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556106ce565b505f6106ce565b5f54610100900460ff166137f65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161082a565b5f825f0182815481106140ed576140ed614563565b905f5260205f200154905092915050565b50805461410a9061468a565b5f825580601f10614119575050565b601f0160209004905f5260205f209081019061186d91905b80821115614144575f8155600101614131565b5090565b6001600160a01b038116811461186d575f80fd5b5f6020828403121561416c575f80fd5b813561381181614148565b5f8083601f840112614187575f80fd5b50813567ffffffffffffffff81111561419e575f80fd5b6020830191508360208260051b85010111156141b8575f80fd5b9250929050565b5f80602083850312156141d0575f80fd5b823567ffffffffffffffff8111156141e6575f80fd5b6141f285828601614177565b90969095509350505050565b5f6020828403121561420e575f80fd5b5035919050565b5f8060408385031215614226575f80fd5b823561423181614148565b946020939093013593505050565b5f81518084525f5b8181101561426357602081850181015186830182015201614247565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015614338578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526143248186018361423f565b9689019694505050908601906001016142c7565b509098975050505050505050565b5f805f805f8060a0878903121561435b575f80fd5b863561436681614148565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614396575f80fd5b6143a289828a01614177565b979a9699509497509295939492505050565b5f602082840312156143c4575f80fd5b813567ffffffffffffffff8111156143da575f80fd5b820160608185031215613811575f80fd5b6001600160a01b0384168152826020820152606060408201525f614412606083018461423f565b95945050505050565b5f806040838503121561442c575f80fd5b823561443781614148565b9150602083013561444781614148565b809150509250929050565b5f805f60608486031215614464575f80fd5b833561446f81614148565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156144bc5781516001600160a01b031687529582019590820190600101614497565b509495945050505050565b828152604060208201525f6144df6040830184614484565b949350505050565b602080825282518282018190525f919060409081850190868401855b8281101561453b57815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101614503565b5091979650505050505050565b5f60208284031215614558575f80fd5b815161381181614148565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156106ce576106ce614590565b808201808211156106ce576106ce614590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b8681101561465257823561463781614148565b6001600160a01b031682529183019190830190600101614624565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061469e57607f821691505b602082108103612233577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f816146e3576146e3614590565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614725576147256146ea565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261475c575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614799575f80fd5b83018035915067ffffffffffffffff8211156147b3575f80fd5b6020019150368190038213156141b8575f80fd5b601f821115610bf457805f5260205f20601f840160051c810160208510156147ec5750805b601f840160051c820191505b81811015613bd0575f81556001016147f8565b813561481681614148565b6001600160a01b0381167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe186360301811261488d575f80fd5b8501803567ffffffffffffffff8111156148a5575f80fd5b80360384830113156148b5575f80fd5b6148c9816148c3855461468a565b856147c7565b5f601f8211600181146148fc575f83156148e557508382018601355b5f19600385901b1c1916600184901b178555614972565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561494857868501890135825593880193908901908801614929565b5084821015614966575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b5f826149de576149de6146ea565b500490565b80820281158282048414176106ce576106ce614590565b5f5f198203614a0b57614a0b614590565b5060010190565b602081525f6138116020830184614484565b5f60208284031215614a34575f80fd5b81518015158114613811575f80fd5b5f60208284031215614a53575f80fd5b505191905056fea164736f6c6343000818000a", } // L2StakingABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/l2staking_more.go b/bindings/bindings/l2staking_more.go index 9488720ab..ecadad24e 100644 --- a/bindings/bindings/l2staking_more.go +++ b/bindings/bindings/l2staking_more.go @@ -13,7 +13,7 @@ const L2StakingStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\ var L2StakingStorageLayout = new(solc.StorageLayout) -var L2StakingDeployedBin = "0x608060405234801561000f575f80fd5b50600436106102cc575f3560e01c8063715018a61161017c578063927ede2d116100dd578063d557714111610093578063f0261bc21161006e578063f0261bc2146106b1578063f2fde38b146106ba578063fad99f98146106cd575f80fd5b8063d557714114610662578063e10911b114610689578063ed70b34314610691575f80fd5b8063b5d2e0dc116100c3578063b5d2e0dc146105f8578063c64814dd14610617578063d31d83d914610641575f80fd5b8063927ede2d146105c457806396ab994d146105eb575f80fd5b806384d7d1d4116101325780638e21d5fb116101185780638e21d5fb1461055c5780639168ae721461058357806391bd43a4146105a5575f80fd5b806384d7d1d41461051b5780638da5cb5b1461053e575f80fd5b8063766718081161016257806376671808146104cd5780637b05afb5146104d5578063831cfb58146104f4575f80fd5b8063715018a6146104bd578063746c8ae1146104c5575f80fd5b80633385ccc21161023157806340b5c837116101e7578063459598a2116101c2578063459598a21461048f57806346cdc18a146104a25780636d454d51146104aa575f80fd5b806340b5c8371461046157806343352d6114610474578063439162b51461047c575f80fd5b80633c323a1b116102175780633c323a1b146103e05780633cb747bf146103f35780633d9353fe1461043a575f80fd5b80633385ccc2146103c45780633b802421146103d7575f80fd5b8063174e31c4116102865780632cc138be1161026c5780632cc138be146103925780632e787be31461039b57806330158eea146103a4575f80fd5b8063174e31c41461036c57806319fac8fd1461037f575f80fd5b80630eb573af116102b65780630eb573af1461030b5780630f3b70591461031e57806312a3e94714610363575f80fd5b806243b758146102d05780630be67fcc146102f6575b5f80fd5b6102e36102de366004614bd5565b6106d5565b6040519081526020015b60405180910390f35b610309610304366004614c38565b610708565b005b610309610319366004614c77565b610d5d565b61033161032c366004614c8e565b610e8a565b6040805173ffffffffffffffffffffffffffffffffffffffff90941684526020840192909252908201526060016102ed565b6102e3609a5481565b61030961037a366004614c8e565b610edf565b61030961038d366004614c77565b611098565b6102e360985481565b6102e360995481565b6103b76103b2366004614c38565b6111ee565b6040516102ed9190614d19565b6103096103d2366004614bd5565b611456565b6102e3609c5481565b6103096103ee366004614c8e565b611bcf565b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102ed565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b61030961046f366004614c77565b6123e2565b6103b7612529565b61030961048a366004614dcc565b612786565b61041561049d366004614c77565b612d92565b609d546102e3565b6103096104b8366004614e3a565b612dc7565b610309613134565b610309613147565b6102e36134fa565b6102e36104e3366004614bd5565b60a06020525f908152604090205481565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b61052e610529366004614bd5565b613588565b60405190151581526020016102ed565b60335473ffffffffffffffffffffffffffffffffffffffff16610415565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b610596610591366004614bd5565b6135bf565b6040516102ed93929190614e71565b6102e36105b3366004614bd5565b60a16020525f908152604090205481565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b60975461052e9060ff1681565b6102e3610606366004614bd5565b609e6020525f908152604090205481565b6102e3610625366004614eae565b60a360209081525f928352604080842090915290825290205481565b61065461064f366004614ee5565b61367e565b6040516102ed929190614f67565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b610309613839565b6106a461069f366004614bd5565b613c81565b6040516102ed9190614f87565b6102e3609b5481565b6103096106c8366004614bd5565b613d31565b610309613de5565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a26020526040812061070290613ead565b92915050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561082457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c9190614ff5565b73ffffffffffffffffffffffffffffffffffffffff16145b6108b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f805b82811015610d1057609b54609e5f8686858181106108d8576108d8615010565b90506020020160208101906108ed9190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541161093157600191505b5f609e5f86868581811061094757610947615010565b905060200201602081019061095c9190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115610c7a575f6001609e5f8787868181106109b4576109b4615010565b90506020020160208101906109c99190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a0d919061506a565b90505b609d54610a1f9060019061506a565b811015610b2557609d610a3382600161507d565b81548110610a4357610a43615010565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610a7b57610a7b615010565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d8481548110610ad857610ad8615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400181208054909190610b1890849061506a565b9091555050600101610a10565b50609d805480610b3757610b37615090565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90858584818110610ba657610ba6615010565b9050602002016020810190610bbb9190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f868685818110610c0d57610c0d615010565b9050602002016020810190610c229190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115610c7a576001609c5f828254610c74919061506a565b90915550505b609f5f858584818110610c8f57610c8f615010565b9050602002016020810190610ca49190614bd5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590610d066002830182614b6a565b50506001016108b8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618383604051610d429291906150bd565b60405180910390a18015610d5857610d58613eb6565b505050565b610d6561405d565b5f81118015610d7657506099548114155b610e02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a6500000000000000000000000000000000000000000000000000000000000060648201526084016108ac565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610e5757609d54610e5b565b609c545b90505f6099548210610e6f57609954610e71565b815b9050609b548114610e8457610e84613eb6565b50505050565b60a4602052815f5260405f208181548110610ea3575f80fd5b5f91825260209091206003909102018054600182015460029092015473ffffffffffffffffffffffffffffffffffffffff909116935090915083565b610ee76140de565b73ffffffffffffffffffffffffffffffffffffffff8216610fc45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490526044015f604051808303815f87803b158015610fa9575f80fd5b505af1158015610fbb573d5f803e3d5ffd5b5050505061108a565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604481018490526064015f604051808303815f87803b158015611073575f80fd5b505af1158015611085573d5f803e3d5ffd5b505050505b6110946001606555565b5050565b335f908152609e602052604090205461110d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f7765640000000000000000000000000060448201526064016108ac565b6014811115611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e000000000000000000000000000060448201526064016108ac565b335f90815260a06020526040812082905560975460ff16611199575f6111ac565b6111a16134fa565b6111ac90600161507d565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff81111561120a5761120a615117565b60405190808252806020026020018201604052801561125657816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816112285790505b5090505f5b8381101561144e576040518060600160405280609f5f88888681811061128357611283615010565b90506020020160208101906112989190614bd5565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409091015f908120549091168352910190609f908888868181106112e2576112e2615010565b90506020020160208101906112f79190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f88888681811061134e5761134e615010565b90506020020160208101906113639190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020180546113aa90615144565b80601f01602080910402602001604051908101604052809291908181526020018280546113d690615144565b80156114215780601f106113f857610100808354040283529160200191611421565b820191905f5260205f20905b81548152906001019060200180831161140457829003601f168201915b505050505081525082828151811061143b5761143b615010565b602090810291909101015260010161125b565b509392505050565b61145e6140de565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a3602090815260408083203384529091529020546114f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f0000000000000000000060448201526064016108ac565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609e60205260408120546097549015919060ff1661152d575f611540565b6115356134fa565b61154090600161507d565b6097549091505f9060ff168015611555575082155b61155f578161156c565b609a5461156c908361507d565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff8781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a19092529281208054949550919361163b90849061506a565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260a26020526040902061166e9033614158565b5073ffffffffffffffffffffffffffffffffffffffff85165f908152609e6020526040902054841580156116a4575060975460ff165b80156116b15750609c5481105b1561199d5773ffffffffffffffffffffffffffffffffffffffff86165f908152609e60205260408120546116e79060019061506a565b90505b6001609c546116f9919061506a565b81101561199b5760a15f609d838154811061171657611716615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120549060a190609d61175885600161507d565b8154811061176857611768615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115611993575f609d82815481106117b3576117b3615010565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff169050609d6117e383600161507d565b815481106117f3576117f3615010565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff909216918490811061182b5761182b615010565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905580609d61188684600161507d565b8154811061189657611896615010565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556118ee82600161507d565b609e5f609d858154811061190457611904615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205561194082600261507d565b609e5f609d61195086600161507d565b8154811061196057611960615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b6001016116ea565b505b841580156119cd575073ffffffffffffffffffffffffffffffffffffffff86165f90815260a16020526040902054155b156119ea576001609c5f8282546119e4919061506a565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611a98575f80fd5b505af1158015611aaa573d5f803e3d5ffd5b50505050611ab53390565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c84602001518787604051611b2a939291909283526020830191909152604082015260600190565b60405180910390a384158015611b42575060975460ff165b8015611b505750609b548111155b8015611bb05750609b5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e60205260409020541180611bb05750609c5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e6020526040902054115b15611bbd57611bbd613eb6565b5050505050611bcc6001606555565b50565b73ffffffffffffffffffffffffffffffffffffffff82165f908152609e60205260409020548290611c5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b65720000000000000000000000000000000000000000000060448201526064016108ac565b611c646140de565b5f8211611ccd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e7400000000000000000000000060448201526064016108ac565b611cd73384614180565b15611d3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d65640000000000000000000060448201526064016108ac565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a360209081526040808320338452909152902054611de357611d7c3384614230565b15611de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f72657761726420756e636c61696d65640000000000000000000000000000000060448201526064016108ac565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a1602052604081208054849290611e1790849061507d565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a36020908152604080832033845290915281208054849290611e5b90849061507d565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a260205260409020611e8e90336142f2565b5073ffffffffffffffffffffffffffffffffffffffff83165f90815260a16020526040902054829003611ed3576001609c5f828254611ecd919061507d565b90915550505b73ffffffffffffffffffffffffffffffffffffffff83165f908152609e602052604090205460975460ff168015611f0a5750600181115b156121ea575f611f1b60018361506a565b90505b80156121e85760a15f609d611f3460018561506a565b81548110611f4457611f44615010565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8481548110611fbc57611fbc615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205411156121d6575f609d61200160018461506a565b8154811061201157612011615010565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169250908390811061204b5761204b615010565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16609d61207960018561506a565b8154811061208957612089615010565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d83815481106120e2576120e2615010565b5f918252602082200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93909316929092179091558290609e90609d61214160018561506a565b8154811061215157612151615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205561218d82600161507d565b609e5f609d85815481106121a3576121a3615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b806121e08161518f565b915050611f1e565b505b6097545f9060ff166121fc575f61220f565b6122046134fa565b61220f90600161507d565b73ffffffffffffffffffffffffffffffffffffffff86165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a373ffffffffffffffffffffffffffffffffffffffff8581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b15801561235d575f80fd5b505af115801561236f573d5f803e3d5ffd5b5050505061238461237d3390565b3086614313565b60975460ff1680156123975750609b5482115b80156123c9575060995473ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604090205411155b156123d6576123d6613eb6565b5050610d586001606555565b6123ea61405d565b60975460ff1615612457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f72657761726420616c726561647920737461727465640000000000000000000060448201526064016108ac565b4281118015612470575061246e62015180826151f0565b155b801561247e57506098548114155b6124e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016108ac565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff81111561254957612549615117565b60405190808252806020026020018201604052801561259557816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816125675790505b5090505f5b609d54811015612780576040518060600160405280609f5f609d85815481106125c5576125c5615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff90811684528382019490945260409092018120549092168352609d80549390910192609f9291908690811061261e5761261e615010565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f609d858154811061269e5761269e615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902060020180546126dc90615144565b80601f016020809104026020016040519081016040528092919081815260200182805461270890615144565b80156127535780601f1061272a57610100808354040283529160200191612753565b820191905f5260205f20905b81548152906001019060200180831161273657829003601f168201915b505050505081525082828151811061276d5761276d615010565b602090810291909101015260010161259a565b50919050565b5f54610100900460ff16158080156127a457505f54600160ff909116105b806127bd5750303b1580156127bd57505f5460ff166001145b612849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108ac565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156128a5575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8716612922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016108ac565b5f86116129b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016108ac565b5f8511612a1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f6368730000000060448201526064016108ac565b4284118015612a335750612a3162015180856151f0565b155b612a99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016108ac565b81612b00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420696e697469616c207374616b65727300000000000000000060448201526064016108ac565b612b09876145c1565b612b11614637565b6099869055609a8590556098849055609b8290555f5b609b54811015612cb457838382818110612b4357612b43615010565b9050602002810190612b559190615203565b609f5f868685818110612b6a57612b6a615010565b9050602002810190612b7c9190615203565b612b8a906020810190614bd5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f20612bb982826152e4565b905050609d848483818110612bd057612bd0615010565b9050602002810190612be29190615203565b612bf0906020810190614bd5565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055612c5190829061507d565b609e5f868685818110612c6657612c66615010565b9050602002810190612c789190615203565b612c86906020810190614bd5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2055600101612b27565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a18015612d89575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612da1575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015612ee357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ecb9190614ff5565b73ffffffffffffffffffffffffffffffffffffffff16145b612f6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016108ac565b609e5f612f7f6020840184614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f0361306057609d612fce6020830183614bd5565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155609d5491609e9161303990850185614bd5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f20555b80609f5f6130716020840184614bd5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f206130a082826152e4565b506130b090506020820182614bd5565b73ffffffffffffffffffffffffffffffffffffffff167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208301356130f9604085018561523f565b604051613108939291906154a1565b60405180910390a260975460ff161580156131275750609954609d5411155b15611bcc57611bcc613eb6565b61313c61405d565b6131455f6145c1565b565b61314f61405d565b6098544210156131e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d650000000000000000000000000000000000000000000000000000000060648201526084016108ac565b5f609c541161324b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f6e652063616e64696461746500000000000000000000000000000000000060448201526064016108ac565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d5481101561348a575f5b818110156134815760a15f609d83815481106132a4576132a4615010565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d858154811061331c5761331c615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115613479575f609d828154811061336757613367615010565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff909216925090849081106133a1576133a1615010565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921691849081106133d9576133d9615010565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d848154811061343257613432615010565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b600101613286565b5060010161327a565b505f5b609d548110156134f1576134a281600161507d565b609e5f609d84815481106134b8576134b8615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205560010161348d565b50613145613eb6565b5f609854421015613567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f726577617264206973206e6f742073746172746564207965740000000000000060448201526064016108ac565b6201518060985442613579919061506a565b61358391906154f4565b905090565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a3602090815260408083203384529091528120541515610702565b609f6020525f908152604090208054600182015460028301805473ffffffffffffffffffffffffffffffffffffffff9093169391926135fd90615144565b80601f016020809104026020016040519081016040528092919081815260200182805461362990615144565b80156136745780601f1061364b57610100808354040283529160200191613674565b820191905f5260205f20905b81548152906001019060200180831161365757829003601f168201915b5050505050905083565b5f60605f84116136ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f696e76616c696420706167652073697a6500000000000000000000000000000060448201526064016108ac565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260a26020526040902061371790613ead565b91508367ffffffffffffffff81111561373257613732615117565b60405190808252806020026020018201604052801561375b578160200160208202803683370190505b5090505f6137698486615507565b90505f6001613778868261507d565b6137829088615507565b61378c919061506a565b905061379960018561506a565b8111156137ae576137ab60018561506a565b90505b815b81811161382e5773ffffffffffffffffffffffffffffffffffffffff88165f90815260a2602052604090206137e590826146d5565b8482815181106137f7576137f7615010565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152806138268161551e565b9150506137b0565b505050935093915050565b6138416140de565b335f90815260a46020526040812054815b81811015613c015760975460ff1615806138a2575061386f6134fa565b335f90815260a46020526040902080548390811061388f5761388f615010565b905f5260205f2090600302016002015411155b15613bef57335f90815260a4602052604090208054829081106138c7576138c7615010565b905f5260205f20906003020160010154836138e2919061507d565b335f90815260a460205260408120805492955090918390811061390757613907615010565b5f918252602082206003909102015473ffffffffffffffffffffffffffffffffffffffff16915060a4816139383390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20838154811061398257613982615010565b905f5260205f2090600302016002015490505f60a45f61399f3390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2084815481106139e9576139e9615010565b905f5260205f209060030201600101549050600185613a08919061506a565b841015613aff57335f90815260a460205260409020613a2860018761506a565b81548110613a3857613a38615010565b905f5260205f20906003020160a45f613a4e3390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208581548110613a9857613a98615010565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091178155600180830154908201556002918201549101555b335f90815260a460205260409020805480613b1c57613b1c615090565b5f8281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018181018390556002909101919091559155613b91908661506a565b6040805184815260208101849052919650339173ffffffffffffffffffffffffffffffffffffffff8616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a3505050613852565b613bfa81600161507d565b9050613852565b505f8211613c6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d00000000000000000060448201526064016108ac565b613c7533836146e0565b50506131456001606555565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613d26575f8481526020908190206040805160608101825260038602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018082015484860152600290910154918301919091529083529092019101613cc5565b505050509050919050565b613d3961405d565b73ffffffffffffffffffffffffffffffffffffffff8116613ddc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108ac565b611bcc816145c1565b613ded6140de565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015f604051808303815f87803b158015613e8d575f80fd5b505af1158015613e9f573d5f803e3d5ffd5b505050506131456001606555565b5f610702825490565b60995460975460ff1615613eda57609954609c541015613ed55750609c545b613eeb565b609954609d541015613eeb5750609d545b5f8167ffffffffffffffff811115613f0557613f05615117565b604051908082528060200260200182016040528015613f2e578160200160208202803683370190505b5090505f5b82811015613fb557609d8181548110613f4e57613f4e615010565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110613f8857613f88615010565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101613f33565b506040517f9b8201a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490614028908490600401615555565b5f604051808303815f87803b15801561403f575f80fd5b505af1158015614051573d5f803e3d5ffd5b50509151609b55505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314613145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108ac565b60026065540361414a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108ac565b6002606555565b6001606555565b5f6141798373ffffffffffffffffffffffffffffffffffffffff841661497f565b9392505050565b5f805b73ffffffffffffffffffffffffffffffffffffffff84165f90815260a460205260409020548110156142275773ffffffffffffffffffffffffffffffffffffffff8481165f90815260a460205260409020805491851691839081106141ea576141ea615010565b5f91825260209091206003909102015473ffffffffffffffffffffffffffffffffffffffff160361421f576001915050610702565b600101614183565b505f9392505050565b6040517fde6ac93300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa1580156142c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142ea9190615567565b159392505050565b5f6141798373ffffffffffffffffffffffffffffffffffffffff8416614a62565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156143a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143c59190615586565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015614464573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144889190615567565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614517573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061453b9190615586565b90505f83118015614554575082614552838361506a565b145b6145ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016108ac565b5050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166146cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108ac565b613145614aae565b5f6141798383614b44565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa15801561476e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906147929190615586565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614829573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061484d9190615567565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156148dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149009190615586565b90505f83118015614919575082614917838361506a565b145b610e84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016108ac565b5f8181526001830160205260408120548015614a59575f6149a160018361506a565b85549091505f906149b49060019061506a565b9050818114614a13575f865f0182815481106149d2576149d2615010565b905f5260205f200154905080875f0184815481106149f2576149f2615010565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080614a2457614a24615090565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610702565b5f915050610702565b5f818152600183016020526040812054614aa757508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610702565b505f610702565b5f54610100900460ff16614151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108ac565b5f825f018281548110614b5957614b59615010565b905f5260205f200154905092915050565b508054614b7690615144565b5f825580601f10614b85575050565b601f0160209004905f5260205f2090810190611bcc91905b80821115614bb0575f8155600101614b9d565b5090565b73ffffffffffffffffffffffffffffffffffffffff81168114611bcc575f80fd5b5f60208284031215614be5575f80fd5b813561417981614bb4565b5f8083601f840112614c00575f80fd5b50813567ffffffffffffffff811115614c17575f80fd5b6020830191508360208260051b8501011115614c31575f80fd5b9250929050565b5f8060208385031215614c49575f80fd5b823567ffffffffffffffff811115614c5f575f80fd5b614c6b85828601614bf0565b90969095509350505050565b5f60208284031215614c87575f80fd5b5035919050565b5f8060408385031215614c9f575f80fd5b8235614caa81614bb4565b946020939093013593505050565b5f81518084525f5b81811015614cdc57602081850181015186830182015201614cc0565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015614dbe578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff16845287810151888501528601516060878501819052614daa81860183614cb8565b968901969450505090860190600101614d40565b509098975050505050505050565b5f805f805f8060a08789031215614de1575f80fd5b8635614dec81614bb4565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614e1c575f80fd5b614e2889828a01614bf0565b979a9699509497509295939492505050565b5f60208284031215614e4a575f80fd5b813567ffffffffffffffff811115614e60575f80fd5b820160608185031215614179575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f614ea56060830184614cb8565b95945050505050565b5f8060408385031215614ebf575f80fd5b8235614eca81614bb4565b91506020830135614eda81614bb4565b809150509250929050565b5f805f60608486031215614ef7575f80fd5b8335614f0281614bb4565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b83811015614f5c57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614f2a565b509495945050505050565b828152604060208201525f614f7f6040830184614f17565b949350505050565b602080825282518282018190525f919060409081850190868401855b82811015614fe8578151805173ffffffffffffffffffffffffffffffffffffffff16855286810151878601528501518585015260609093019290850190600101614fa3565b5091979650505050505050565b5f60208284031215615005575f80fd5b815161417981614bb4565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156107025761070261503d565b808201808211156107025761070261503d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b8681101561510c5782356150e481614bb4565b73ffffffffffffffffffffffffffffffffffffffff16825291830191908301906001016150d1565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061515857607f821691505b602082108103612780577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f8161519d5761519d61503d565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f826151fe576151fe6151c3565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112615235575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615272575f80fd5b83018035915067ffffffffffffffff82111561528c575f80fd5b602001915036819003821315614c31575f80fd5b601f821115610d5857805f5260205f20601f840160051c810160208510156152c55750805b601f840160051c820191505b818110156145ba575f81556001016152d1565b81356152ef81614bb4565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112615373575f80fd5b8501803567ffffffffffffffff81111561538b575f80fd5b803603848301131561539b575f80fd5b6153af816153a98554615144565b856152a0565b5f601f821160018114615401575f83156153cb57508382018601355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178555615496565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561544d5786850189013582559388019390890190880161542e565b508482101561548a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b5f82615502576155026151c3565b500490565b80820281158282048414176107025761070261503d565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361554e5761554e61503d565b5060010190565b602081525f6141796020830184614f17565b5f60208284031215615577575f80fd5b81518015158114614179575f80fd5b5f60208284031215615596575f80fd5b505191905056fea164736f6c6343000818000a" +var L2StakingDeployedBin = "0x608060405234801561000f575f80fd5b50600436106102cc575f3560e01c8063715018a61161017c578063927ede2d116100dd578063d557714111610093578063f0261bc21161006e578063f0261bc2146106b1578063f2fde38b146106ba578063fad99f98146106cd575f80fd5b8063d557714114610662578063e10911b114610689578063ed70b34314610691575f80fd5b8063b5d2e0dc116100c3578063b5d2e0dc146105f8578063c64814dd14610617578063d31d83d914610641575f80fd5b8063927ede2d146105c457806396ab994d146105eb575f80fd5b806384d7d1d4116101325780638e21d5fb116101185780638e21d5fb1461055c5780639168ae721461058357806391bd43a4146105a5575f80fd5b806384d7d1d41461051b5780638da5cb5b1461053e575f80fd5b8063766718081161016257806376671808146104cd5780637b05afb5146104d5578063831cfb58146104f4575f80fd5b8063715018a6146104bd578063746c8ae1146104c5575f80fd5b80633385ccc21161023157806340b5c837116101e7578063459598a2116101c2578063459598a21461048f57806346cdc18a146104a25780636d454d51146104aa575f80fd5b806340b5c8371461046157806343352d6114610474578063439162b51461047c575f80fd5b80633c323a1b116102175780633c323a1b146103e05780633cb747bf146103f35780633d9353fe1461043a575f80fd5b80633385ccc2146103c45780633b802421146103d7575f80fd5b8063174e31c4116102865780632cc138be1161026c5780632cc138be146103925780632e787be31461039b57806330158eea146103a4575f80fd5b8063174e31c41461036c57806319fac8fd1461037f575f80fd5b80630eb573af116102b65780630eb573af1461030b5780630f3b70591461031e57806312a3e94714610363575f80fd5b806243b758146102d05780630be67fcc146102f6575b5f80fd5b6102e36102de366004614bf6565b6106d5565b6040519081526020015b60405180910390f35b610309610304366004614c59565b610708565b005b610309610319366004614c98565b610d5d565b61033161032c366004614caf565b610e8a565b6040805173ffffffffffffffffffffffffffffffffffffffff90941684526020840192909252908201526060016102ed565b6102e3609a5481565b61030961037a366004614caf565b610edf565b61030961038d366004614c98565b611098565b6102e360985481565b6102e360995481565b6103b76103b2366004614c59565b6111ee565b6040516102ed9190614d3a565b6103096103d2366004614bf6565b611456565b6102e3609c5481565b6103096103ee366004614caf565b611bcf565b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102ed565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b61030961046f366004614c98565b6123e2565b6103b7612529565b61030961048a366004614ded565b612786565b61041561049d366004614c98565b612d92565b609d546102e3565b6103096104b8366004614e5b565b612dc7565b610309613134565b610309613147565b6102e36134fa565b6102e36104e3366004614bf6565b60a06020525f908152604090205481565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b61052e610529366004614bf6565b613588565b60405190151581526020016102ed565b60335473ffffffffffffffffffffffffffffffffffffffff16610415565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b610596610591366004614bf6565b6135bf565b6040516102ed93929190614e92565b6102e36105b3366004614bf6565b60a16020525f908152604090205481565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b60975461052e9060ff1681565b6102e3610606366004614bf6565b609e6020525f908152604090205481565b6102e3610625366004614ecf565b60a360209081525f928352604080842090915290825290205481565b61065461064f366004614f06565b61367e565b6040516102ed929190614f88565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b61030961385a565b6106a461069f366004614bf6565b613ca2565b6040516102ed9190614fa8565b6102e3609b5481565b6103096106c8366004614bf6565b613d52565b610309613e06565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a26020526040812061070290613ece565b92915050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561082457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c9190615016565b73ffffffffffffffffffffffffffffffffffffffff16145b6108b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f805b82811015610d1057609b54609e5f8686858181106108d8576108d8615031565b90506020020160208101906108ed9190614bf6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541161093157600191505b5f609e5f86868581811061094757610947615031565b905060200201602081019061095c9190614bf6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115610c7a575f6001609e5f8787868181106109b4576109b4615031565b90506020020160208101906109c99190614bf6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a0d919061508b565b90505b609d54610a1f9060019061508b565b811015610b2557609d610a3382600161509e565b81548110610a4357610a43615031565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610a7b57610a7b615031565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d8481548110610ad857610ad8615031565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400181208054909190610b1890849061508b565b9091555050600101610a10565b50609d805480610b3757610b376150b1565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90858584818110610ba657610ba6615031565b9050602002016020810190610bbb9190614bf6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f868685818110610c0d57610c0d615031565b9050602002016020810190610c229190614bf6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115610c7a576001609c5f828254610c74919061508b565b90915550505b609f5f858584818110610c8f57610c8f615031565b9050602002016020810190610ca49190614bf6565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590610d066002830182614b8b565b50506001016108b8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618383604051610d429291906150de565b60405180910390a18015610d5857610d58613ed7565b505050565b610d6561407e565b5f81118015610d7657506099548114155b610e02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a6500000000000000000000000000000000000000000000000000000000000060648201526084016108ac565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610e5757609d54610e5b565b609c545b90505f6099548210610e6f57609954610e71565b815b9050609b548114610e8457610e84613ed7565b50505050565b60a4602052815f5260405f208181548110610ea3575f80fd5b5f91825260209091206003909102018054600182015460029092015473ffffffffffffffffffffffffffffffffffffffff909116935090915083565b610ee76140ff565b73ffffffffffffffffffffffffffffffffffffffff8216610fc45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490526044015f604051808303815f87803b158015610fa9575f80fd5b505af1158015610fbb573d5f803e3d5ffd5b5050505061108a565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604481018490526064015f604051808303815f87803b158015611073575f80fd5b505af1158015611085573d5f803e3d5ffd5b505050505b6110946001606555565b5050565b335f908152609e602052604090205461110d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f7765640000000000000000000000000060448201526064016108ac565b6014811115611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e000000000000000000000000000060448201526064016108ac565b335f90815260a06020526040812082905560975460ff16611199575f6111ac565b6111a16134fa565b6111ac90600161509e565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff81111561120a5761120a615138565b60405190808252806020026020018201604052801561125657816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816112285790505b5090505f5b8381101561144e576040518060600160405280609f5f88888681811061128357611283615031565b90506020020160208101906112989190614bf6565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409091015f908120549091168352910190609f908888868181106112e2576112e2615031565b90506020020160208101906112f79190614bf6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f88888681811061134e5761134e615031565b90506020020160208101906113639190614bf6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020180546113aa90615165565b80601f01602080910402602001604051908101604052809291908181526020018280546113d690615165565b80156114215780601f106113f857610100808354040283529160200191611421565b820191905f5260205f20905b81548152906001019060200180831161140457829003601f168201915b505050505081525082828151811061143b5761143b615031565b602090810291909101015260010161125b565b509392505050565b61145e6140ff565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a3602090815260408083203384529091529020546114f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f0000000000000000000060448201526064016108ac565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609e60205260408120546097549015919060ff1661152d575f611540565b6115356134fa565b61154090600161509e565b6097549091505f9060ff168015611555575082155b61155f578161156c565b609a5461156c908361509e565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff8781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a19092529281208054949550919361163b90849061508b565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260a26020526040902061166e9033614179565b5073ffffffffffffffffffffffffffffffffffffffff85165f908152609e6020526040902054841580156116a4575060975460ff165b80156116b15750609c5481105b1561199d5773ffffffffffffffffffffffffffffffffffffffff86165f908152609e60205260408120546116e79060019061508b565b90505b6001609c546116f9919061508b565b81101561199b5760a15f609d838154811061171657611716615031565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120549060a190609d61175885600161509e565b8154811061176857611768615031565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115611993575f609d82815481106117b3576117b3615031565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff169050609d6117e383600161509e565b815481106117f3576117f3615031565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff909216918490811061182b5761182b615031565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905580609d61188684600161509e565b8154811061189657611896615031565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556118ee82600161509e565b609e5f609d858154811061190457611904615031565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205561194082600261509e565b609e5f609d61195086600161509e565b8154811061196057611960615031565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b6001016116ea565b505b841580156119cd575073ffffffffffffffffffffffffffffffffffffffff86165f90815260a16020526040902054155b156119ea576001609c5f8282546119e4919061508b565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611a98575f80fd5b505af1158015611aaa573d5f803e3d5ffd5b50505050611ab53390565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c84602001518787604051611b2a939291909283526020830191909152604082015260600190565b60405180910390a384158015611b42575060975460ff165b8015611b505750609b548111155b8015611bb05750609b5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e60205260409020541180611bb05750609c5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e6020526040902054115b15611bbd57611bbd613ed7565b5050505050611bcc6001606555565b50565b73ffffffffffffffffffffffffffffffffffffffff82165f908152609e60205260409020548290611c5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b65720000000000000000000000000000000000000000000060448201526064016108ac565b611c646140ff565b5f8211611ccd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e7400000000000000000000000060448201526064016108ac565b611cd733846141a1565b15611d3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d65640000000000000000000060448201526064016108ac565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a360209081526040808320338452909152902054611de357611d7c3384614251565b15611de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f72657761726420756e636c61696d65640000000000000000000000000000000060448201526064016108ac565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a1602052604081208054849290611e1790849061509e565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a36020908152604080832033845290915281208054849290611e5b90849061509e565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a260205260409020611e8e9033614313565b5073ffffffffffffffffffffffffffffffffffffffff83165f90815260a16020526040902054829003611ed3576001609c5f828254611ecd919061509e565b90915550505b73ffffffffffffffffffffffffffffffffffffffff83165f908152609e602052604090205460975460ff168015611f0a5750600181115b156121ea575f611f1b60018361508b565b90505b80156121e85760a15f609d611f3460018561508b565b81548110611f4457611f44615031565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8481548110611fbc57611fbc615031565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205411156121d6575f609d61200160018461508b565b8154811061201157612011615031565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169250908390811061204b5761204b615031565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16609d61207960018561508b565b8154811061208957612089615031565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d83815481106120e2576120e2615031565b5f918252602082200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93909316929092179091558290609e90609d61214160018561508b565b8154811061215157612151615031565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205561218d82600161509e565b609e5f609d85815481106121a3576121a3615031565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b806121e0816151b0565b915050611f1e565b505b6097545f9060ff166121fc575f61220f565b6122046134fa565b61220f90600161509e565b73ffffffffffffffffffffffffffffffffffffffff86165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a373ffffffffffffffffffffffffffffffffffffffff8581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b15801561235d575f80fd5b505af115801561236f573d5f803e3d5ffd5b5050505061238461237d3390565b3086614334565b60975460ff1680156123975750609b5482115b80156123c9575060995473ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604090205411155b156123d6576123d6613ed7565b5050610d586001606555565b6123ea61407e565b60975460ff1615612457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f72657761726420616c726561647920737461727465640000000000000000000060448201526064016108ac565b4281118015612470575061246e6201518082615211565b155b801561247e57506098548114155b6124e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016108ac565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff81111561254957612549615138565b60405190808252806020026020018201604052801561259557816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816125675790505b5090505f5b609d54811015612780576040518060600160405280609f5f609d85815481106125c5576125c5615031565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff90811684528382019490945260409092018120549092168352609d80549390910192609f9291908690811061261e5761261e615031565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f609d858154811061269e5761269e615031565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902060020180546126dc90615165565b80601f016020809104026020016040519081016040528092919081815260200182805461270890615165565b80156127535780601f1061272a57610100808354040283529160200191612753565b820191905f5260205f20905b81548152906001019060200180831161273657829003601f168201915b505050505081525082828151811061276d5761276d615031565b602090810291909101015260010161259a565b50919050565b5f54610100900460ff16158080156127a457505f54600160ff909116105b806127bd5750303b1580156127bd57505f5460ff166001145b612849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108ac565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156128a5575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8716612922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016108ac565b5f86116129b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016108ac565b5f8511612a1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f6368730000000060448201526064016108ac565b4284118015612a335750612a316201518085615211565b155b612a99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016108ac565b81612b00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420696e697469616c207374616b65727300000000000000000060448201526064016108ac565b612b09876145e2565b612b11614658565b6099869055609a8590556098849055609b8290555f5b609b54811015612cb457838382818110612b4357612b43615031565b9050602002810190612b559190615224565b609f5f868685818110612b6a57612b6a615031565b9050602002810190612b7c9190615224565b612b8a906020810190614bf6565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f20612bb98282615305565b905050609d848483818110612bd057612bd0615031565b9050602002810190612be29190615224565b612bf0906020810190614bf6565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055612c5190829061509e565b609e5f868685818110612c6657612c66615031565b9050602002810190612c789190615224565b612c86906020810190614bf6565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2055600101612b27565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a18015612d89575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612da1575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015612ee357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ecb9190615016565b73ffffffffffffffffffffffffffffffffffffffff16145b612f6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016108ac565b609e5f612f7f6020840184614bf6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f0361306057609d612fce6020830183614bf6565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155609d5491609e9161303990850185614bf6565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f20555b80609f5f6130716020840184614bf6565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f206130a08282615305565b506130b090506020820182614bf6565b73ffffffffffffffffffffffffffffffffffffffff167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208301356130f96040850185615260565b604051613108939291906154c2565b60405180910390a260975460ff161580156131275750609954609d5411155b15611bcc57611bcc613ed7565b61313c61407e565b6131455f6145e2565b565b61314f61407e565b6098544210156131e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d650000000000000000000000000000000000000000000000000000000060648201526084016108ac565b5f609c541161324b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f6e652063616e64696461746500000000000000000000000000000000000060448201526064016108ac565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d5481101561348a575f5b818110156134815760a15f609d83815481106132a4576132a4615031565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d858154811061331c5761331c615031565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115613479575f609d828154811061336757613367615031565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff909216925090849081106133a1576133a1615031565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921691849081106133d9576133d9615031565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d848154811061343257613432615031565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b600101613286565b5060010161327a565b505f5b609d548110156134f1576134a281600161509e565b609e5f609d84815481106134b8576134b8615031565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205560010161348d565b50613145613ed7565b5f609854421015613567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f726577617264206973206e6f742073746172746564207965740000000000000060448201526064016108ac565b6201518060985442613579919061508b565b6135839190615515565b905090565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a3602090815260408083203384529091528120541515610702565b609f6020525f908152604090208054600182015460028301805473ffffffffffffffffffffffffffffffffffffffff9093169391926135fd90615165565b80601f016020809104026020016040519081016040528092919081815260200182805461362990615165565b80156136745780601f1061364b57610100808354040283529160200191613674565b820191905f5260205f20905b81548152906001019060200180831161365757829003601f168201915b5050505050905083565b5f60605f84116136ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f696e76616c696420706167652073697a6500000000000000000000000000000060448201526064016108ac565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260a26020526040902061371790613ece565b91508367ffffffffffffffff81111561373257613732615138565b60405190808252806020026020018201604052801561375b578160200160208202803683370190505b5090505f6137698486615528565b90505f6001613778868261509e565b6137829088615528565b61378c919061508b565b905061379960018561508b565b8111156137ae576137ab60018561508b565b90505b815f5b82821161384e576137f2826137c58161553f565b73ffffffffffffffffffffffffffffffffffffffff8c165f90815260a260205260409020909450906146f6565b85826137fd8161553f565b93508151811061380f5761380f615031565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506137b1565b50505050935093915050565b6138626140ff565b335f90815260a46020526040812054815b81811015613c225760975460ff1615806138c357506138906134fa565b335f90815260a4602052604090208054839081106138b0576138b0615031565b905f5260205f2090600302016002015411155b15613c1057335f90815260a4602052604090208054829081106138e8576138e8615031565b905f5260205f2090600302016001015483613903919061509e565b335f90815260a460205260408120805492955090918390811061392857613928615031565b5f918252602082206003909102015473ffffffffffffffffffffffffffffffffffffffff16915060a4816139593390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2083815481106139a3576139a3615031565b905f5260205f2090600302016002015490505f60a45f6139c03390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208481548110613a0a57613a0a615031565b905f5260205f209060030201600101549050600185613a29919061508b565b841015613b2057335f90815260a460205260409020613a4960018761508b565b81548110613a5957613a59615031565b905f5260205f20906003020160a45f613a6f3390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208581548110613ab957613ab9615031565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091178155600180830154908201556002918201549101555b335f90815260a460205260409020805480613b3d57613b3d6150b1565b5f8281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018181018390556002909101919091559155613bb2908661508b565b6040805184815260208101849052919650339173ffffffffffffffffffffffffffffffffffffffff8616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a3505050613873565b613c1b81600161509e565b9050613873565b505f8211613c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d00000000000000000060448201526064016108ac565b613c963383614701565b50506131456001606555565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613d47575f8481526020908190206040805160608101825260038602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018082015484860152600290910154918301919091529083529092019101613ce6565b505050509050919050565b613d5a61407e565b73ffffffffffffffffffffffffffffffffffffffff8116613dfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108ac565b611bcc816145e2565b613e0e6140ff565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015f604051808303815f87803b158015613eae575f80fd5b505af1158015613ec0573d5f803e3d5ffd5b505050506131456001606555565b5f610702825490565b60995460975460ff1615613efb57609954609c541015613ef65750609c545b613f0c565b609954609d541015613f0c5750609d545b5f8167ffffffffffffffff811115613f2657613f26615138565b604051908082528060200260200182016040528015613f4f578160200160208202803683370190505b5090505f5b82811015613fd657609d8181548110613f6f57613f6f615031565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110613fa957613fa9615031565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101613f54565b506040517f9b8201a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490614049908490600401615576565b5f604051808303815f87803b158015614060575f80fd5b505af1158015614072573d5f803e3d5ffd5b50509151609b55505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314613145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108ac565b60026065540361416b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108ac565b6002606555565b6001606555565b5f61419a8373ffffffffffffffffffffffffffffffffffffffff84166149a0565b9392505050565b5f805b73ffffffffffffffffffffffffffffffffffffffff84165f90815260a460205260409020548110156142485773ffffffffffffffffffffffffffffffffffffffff8481165f90815260a4602052604090208054918516918390811061420b5761420b615031565b5f91825260209091206003909102015473ffffffffffffffffffffffffffffffffffffffff1603614240576001915050610702565b6001016141a4565b505f9392505050565b6040517fde6ac93300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa1580156142e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061430b9190615588565b159392505050565b5f61419a8373ffffffffffffffffffffffffffffffffffffffff8416614a83565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156143c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143e691906155a7565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015614485573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144a99190615588565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614538573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061455c91906155a7565b90505f83118015614575575082614573838361508b565b145b6145db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016108ac565b5050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166146ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108ac565b613145614acf565b5f61419a8383614b65565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa15801561478f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906147b391906155a7565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af115801561484a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061486e9190615588565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156148fd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061492191906155a7565b90505f8311801561493a575082614938838361508b565b145b610e84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016108ac565b5f8181526001830160205260408120548015614a7a575f6149c260018361508b565b85549091505f906149d59060019061508b565b9050818114614a34575f865f0182815481106149f3576149f3615031565b905f5260205f200154905080875f018481548110614a1357614a13615031565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080614a4557614a456150b1565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610702565b5f915050610702565b5f818152600183016020526040812054614ac857508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610702565b505f610702565b5f54610100900460ff16614172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108ac565b5f825f018281548110614b7a57614b7a615031565b905f5260205f200154905092915050565b508054614b9790615165565b5f825580601f10614ba6575050565b601f0160209004905f5260205f2090810190611bcc91905b80821115614bd1575f8155600101614bbe565b5090565b73ffffffffffffffffffffffffffffffffffffffff81168114611bcc575f80fd5b5f60208284031215614c06575f80fd5b813561419a81614bd5565b5f8083601f840112614c21575f80fd5b50813567ffffffffffffffff811115614c38575f80fd5b6020830191508360208260051b8501011115614c52575f80fd5b9250929050565b5f8060208385031215614c6a575f80fd5b823567ffffffffffffffff811115614c80575f80fd5b614c8c85828601614c11565b90969095509350505050565b5f60208284031215614ca8575f80fd5b5035919050565b5f8060408385031215614cc0575f80fd5b8235614ccb81614bd5565b946020939093013593505050565b5f81518084525f5b81811015614cfd57602081850181015186830182015201614ce1565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015614ddf578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff16845287810151888501528601516060878501819052614dcb81860183614cd9565b968901969450505090860190600101614d61565b509098975050505050505050565b5f805f805f8060a08789031215614e02575f80fd5b8635614e0d81614bd5565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614e3d575f80fd5b614e4989828a01614c11565b979a9699509497509295939492505050565b5f60208284031215614e6b575f80fd5b813567ffffffffffffffff811115614e81575f80fd5b82016060818503121561419a575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f614ec66060830184614cd9565b95945050505050565b5f8060408385031215614ee0575f80fd5b8235614eeb81614bd5565b91506020830135614efb81614bd5565b809150509250929050565b5f805f60608486031215614f18575f80fd5b8335614f2381614bd5565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b83811015614f7d57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614f4b565b509495945050505050565b828152604060208201525f614fa06040830184614f38565b949350505050565b602080825282518282018190525f919060409081850190868401855b82811015615009578151805173ffffffffffffffffffffffffffffffffffffffff16855286810151878601528501518585015260609093019290850190600101614fc4565b5091979650505050505050565b5f60208284031215615026575f80fd5b815161419a81614bd5565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156107025761070261505e565b808201808211156107025761070261505e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b8681101561512d57823561510581614bd5565b73ffffffffffffffffffffffffffffffffffffffff16825291830191908301906001016150f2565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061517957607f821691505b602082108103612780577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f816151be576151be61505e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f8261521f5761521f6151e4565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112615256575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615293575f80fd5b83018035915067ffffffffffffffff8211156152ad575f80fd5b602001915036819003821315614c52575f80fd5b601f821115610d5857805f5260205f20601f840160051c810160208510156152e65750805b601f840160051c820191505b818110156145db575f81556001016152f2565b813561531081614bd5565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112615394575f80fd5b8501803567ffffffffffffffff8111156153ac575f80fd5b80360384830113156153bc575f80fd5b6153d0816153ca8554615165565b856152c1565b5f601f821160018114615422575f83156153ec57508382018601355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1785556154b7565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561546e5786850189013582559388019390890190880161544f565b50848210156154ab577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b5f82615523576155236151e4565b500490565b80820281158282048414176107025761070261505e565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361556f5761556f61505e565b5060010190565b602081525f61419a6020830184614f38565b5f60208284031215615598575f80fd5b8151801515811461419a575f80fd5b5f602082840312156155b7575f80fd5b505191905056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L2StakingStorageLayoutJSON), L2StakingStorageLayout); err != nil { From 6cc2a43e14c6250c9af3b1249069be44d83fb43d Mon Sep 17 00:00:00 2001 From: Segue Date: Wed, 23 Oct 2024 18:21:10 +0800 Subject: [PATCH 006/106] fix dos attack vulnerability --- contracts/contracts/l2/staking/Gov.sol | 29 +++++++++++++++++++------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/contracts/contracts/l2/staking/Gov.sol b/contracts/contracts/l2/staking/Gov.sol index af0170971..4ea8805c4 100644 --- a/contracts/contracts/l2/staking/Gov.sol +++ b/contracts/contracts/l2/staking/Gov.sol @@ -61,6 +61,9 @@ contract Gov is IGov, OwnableUpgradeable { /// @notice proposal voter info mapping(uint256 proposalID => EnumerableSetUpgradeable.AddressSet) internal votes; + /// @notice latest passed proposal ID + uint256 public latestPassedProposalID; + /********************** * Function Modifiers * **********************/ @@ -146,6 +149,7 @@ contract Gov is IGov, OwnableUpgradeable { /// @notice vote a proposal function vote(uint256 proposalID) external onlySequencer { require(proposalID <= currentProposalID, "invalid proposalID"); + require(proposalID > latestPassedProposalID, "expired proposal"); require(proposalID >= undeletedProposalStart, "proposal pruned"); uint256 expirationTime = proposalInfos[proposalID].expirationTime; require( @@ -160,6 +164,7 @@ contract Gov is IGov, OwnableUpgradeable { } } + /// @notice set voting duration function setVotingDuration(uint256 _votingDuration) external onlyOwner { require(_votingDuration > 0 && _votingDuration != votingDuration, "invalid new proposal voting duration"); uint256 _oldVotingDuration = votingDuration; @@ -180,6 +185,19 @@ contract Gov is IGov, OwnableUpgradeable { _executeProposal(proposalID); } + /// @notice execute a passed proposal + /// @param deleteTo last proposal ID to delete + function cleanUpExpiredProposals(uint256 deleteTo) external { + require(deleteTo < latestPassedProposalID, "only allow to delete the proposal befor latest passed proposal"); + // when a proposal is passed, the previous proposals will be invalidated and deleted + for (uint256 i = undeletedProposalStart; i <= deleteTo; i++) { + delete proposalData[i]; + delete proposalInfos[i]; + delete votes[i]; + } + undeletedProposalStart = deleteTo + 1; + } + /************************* * Public View Functions * *************************/ @@ -187,6 +205,7 @@ contract Gov is IGov, OwnableUpgradeable { /// @notice return proposal status. {finished, passed, executed} function proposalStatus(uint256 proposalID) public view returns (bool, bool, bool) { require(proposalID <= currentProposalID, "invalid proposalID"); + require(proposalID > latestPassedProposalID, "expired proposal"); require(proposalID >= undeletedProposalStart, "proposal pruned"); bool executed = proposalInfos[proposalID].executed; uint256 expirationTime = proposalInfos[proposalID].expirationTime; @@ -210,6 +229,8 @@ contract Gov is IGov, OwnableUpgradeable { /// @notice execute a passed proposal function _executeProposal(uint256 proposalID) internal { + latestPassedProposalID = proposalID; + if (batchBlockInterval != proposalData[proposalID].batchBlockInterval) { uint256 _oldValue = batchBlockInterval; batchBlockInterval = proposalData[proposalID].batchBlockInterval; @@ -228,14 +249,6 @@ contract Gov is IGov, OwnableUpgradeable { } proposalInfos[proposalID].executed = true; - // when a proposal is passed, the previous proposals will be invalidated and deleted - for (uint256 i = undeletedProposalStart; i < proposalID; i++) { - delete proposalData[i]; - delete proposalInfos[i]; - delete votes[i]; - } - undeletedProposalStart = proposalID; - emit ProposalExecuted(proposalID, batchBlockInterval, batchTimeout, rollupEpoch); } From 33e8d34000bd3425b068fb8c72c0aeb7440c7cbc Mon Sep 17 00:00:00 2001 From: Segue Date: Wed, 23 Oct 2024 18:39:14 +0800 Subject: [PATCH 007/106] add nonce for L1 -> L2 staker msg --- contracts/contracts/l1/staking/L1Staking.sol | 14 +++- contracts/contracts/l2/staking/IL2Staking.sol | 10 ++- contracts/contracts/l2/staking/L2Staking.sol | 73 ++++++++++++++++++- 3 files changed, 86 insertions(+), 11 deletions(-) diff --git a/contracts/contracts/l1/staking/L1Staking.sol b/contracts/contracts/l1/staking/L1Staking.sol index 165fec18d..a3f3e0221 100644 --- a/contracts/contracts/l1/staking/L1Staking.sol +++ b/contracts/contracts/l1/staking/L1Staking.sol @@ -69,6 +69,9 @@ contract L1Staking is IL1Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp /// @notice challenge deposit value uint256 public challengeDeposit; + /// @notice nonce of staking L1 => L2 msg + uint256 public nonce; + /********************** * Function Modifiers * **********************/ @@ -475,7 +478,7 @@ contract L1Staking is IL1Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp MESSENGER.sendMessage( address(OTHER_STAKING), 0, - abi.encodeCall(IL2Staking.addStaker, (add)), + abi.encodeCall(IL2Staking.addStaker, (nonce, add)), gasLimitAddStaker ); } @@ -486,7 +489,7 @@ contract L1Staking is IL1Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp MESSENGER.sendMessage( address(OTHER_STAKING), 0, - abi.encodeCall(IL2Staking.removeStakers, (remove)), + abi.encodeCall(IL2Staking.removeStakers, (nonce, remove)), gasLimitRemoveStakers ); } @@ -495,7 +498,12 @@ contract L1Staking is IL1Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp function _cleanStakerStore() internal { uint256 i = 0; while (i < deleteList.length) { - if (deleteableHeight[deleteList[i]] <= block.number) { + if (deleteList[i] == address(0)) { + // clean deleteList + delete deleteableHeight[deleteList[i]]; + deleteList[i] = deleteList[deleteList.length - 1]; + deleteList.pop(); + } else if (deleteableHeight[deleteList[i]] <= block.number) { // clean stakerSet delete stakerSet[stakerIndexes[deleteList[i]] - 1]; delete stakerIndexes[deleteList[i]]; diff --git a/contracts/contracts/l2/staking/IL2Staking.sol b/contracts/contracts/l2/staking/IL2Staking.sol index 8e9ef0475..793da06bc 100644 --- a/contracts/contracts/l2/staking/IL2Staking.sol +++ b/contracts/contracts/l2/staking/IL2Staking.sol @@ -140,12 +140,14 @@ interface IL2Staking { *****************************/ /// @notice add staker, sync from L1 - /// @param add staker to add. {addr, tmKey, blsKey} - function addStaker(Types.StakerInfo calldata add) external; + /// @param nonce msg nonce + /// @param add staker to add. {addr, tmKey, blsKey} + function addStaker(uint256 nonce, Types.StakerInfo calldata add) external; /// @notice remove stakers, sync from L1 - /// @param remove staker to remove - function removeStakers(address[] calldata remove) external; + /// @param nonce msg nonce + /// @param remove staker to remove + function removeStakers(uint256 nonce, address[] calldata remove) external; /// @notice setCommissionRate set delegate commission percentage /// @param commission commission percentage, denominator is 100 diff --git a/contracts/contracts/l2/staking/L2Staking.sol b/contracts/contracts/l2/staking/L2Staking.sol index e63367adc..8fd5e5ecc 100644 --- a/contracts/contracts/l2/staking/L2Staking.sol +++ b/contracts/contracts/l2/staking/L2Staking.sol @@ -78,6 +78,9 @@ contract L2Staking is IL2Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp /// @notice delegator's undelegations mapping(address delegator => Undelegation[]) public undelegations; + /// @notice nonce of staking L1 => L2 msg + uint256 public nonce; + /********************** * Function Modifiers * **********************/ @@ -94,6 +97,12 @@ contract L2Staking is IL2Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp _; } + /// @notice check nonce + modifier checkNonce(uint256 _nonce) { + require(_nonce == nonce, "invalid nonce"); + _; + } + /*************** * Constructor * ***************/ @@ -154,8 +163,10 @@ contract L2Staking is IL2Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp ************************/ /// @notice add staker, sync from L1 - /// @param add staker to add. {addr, tmKey, blsKey} - function addStaker(Types.StakerInfo calldata add) external onlyOtherStaking { + /// @param _nonce msg nonce + /// @param add staker to add. {addr, tmKey, blsKey} + function addStaker(uint256 _nonce, Types.StakerInfo calldata add) external onlyOtherStaking checkNonce { + nonce++; if (stakerRankings[add.addr] == 0) { stakerAddresses.push(add.addr); stakerRankings[add.addr] = stakerAddresses.length; @@ -169,8 +180,62 @@ contract L2Staking is IL2Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp } /// @notice remove stakers, sync from L1. If new sequencer set is nil, layer2 will stop producing blocks - /// @param remove staker to remove - function removeStakers(address[] calldata remove) external onlyOtherStaking { + /// @param _nonce msg nonce + /// @param remove staker to remove + function removeStakers(uint256 _nonce, address[] calldata remove) external onlyOtherStaking checkNonce { + nonce++; + bool updateSequencerSet = false; + for (uint256 i = 0; i < remove.length; i++) { + if (stakerRankings[remove[i]] <= latestSequencerSetSize) { + updateSequencerSet = true; + } + + if (stakerRankings[remove[i]] > 0) { + // update stakerRankings + for (uint256 j = stakerRankings[remove[i]] - 1; j < stakerAddresses.length - 1; j++) { + stakerAddresses[j] = stakerAddresses[j + 1]; + stakerRankings[stakerAddresses[j]] -= 1; + } + stakerAddresses.pop(); + delete stakerRankings[remove[i]]; + + // update candidateNumber + if (stakerDelegations[remove[i]] > 0) { + candidateNumber -= 1; + } + } + + delete stakers[remove[i]]; + } + emit StakerRemoved(remove); + + if (updateSequencerSet) { + _updateSequencerSet(); + } + } + + /// @notice add staker. Only can be called when a serious bug causes L1 and L2 data to be out of sync + /// @param _nonce msg nonce + /// @param add staker to add. {addr, tmKey, blsKey} + function emergencyAddStaker(uint256 _nonce, Types.StakerInfo calldata add) external onlyOwner checkNonce { + nonce++; + if (stakerRankings[add.addr] == 0) { + stakerAddresses.push(add.addr); + stakerRankings[add.addr] = stakerAddresses.length; + } + stakers[add.addr] = add; + emit StakerAdded(add.addr, add.tmKey, add.blsKey); + + if (!rewardStarted && stakerAddresses.length <= sequencerSetMaxSize) { + _updateSequencerSet(); + } + } + + /// @notice remove stakers. Only can be called when a serious bug causes L1 and L2 data to be out of sync + /// @param _nonce msg nonce + /// @param remove staker to remove + function emergencyRemoveStakers(uint256 _nonce, address[] calldata remove) external onlyOwner checkNonce { + nonce++; bool updateSequencerSet = false; for (uint256 i = 0; i < remove.length; i++) { if (stakerRankings[remove[i]] <= latestSequencerSetSize) { From ebed1162297c86d235eb3ed7034254635ee880e6 Mon Sep 17 00:00:00 2001 From: FletcherMan Date: Fri, 1 Nov 2024 10:29:33 +0800 Subject: [PATCH 008/106] Fix l1geth deployment (#622) --- ops/docker/Dockerfile.l1 | 2 +- ops/docker/Dockerfile.l1-beacon | 4 ++-- ops/docker/docker-compose-4nodes.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ops/docker/Dockerfile.l1 b/ops/docker/Dockerfile.l1 index ff74e4ba8..16ac1be45 100644 --- a/ops/docker/Dockerfile.l1 +++ b/ops/docker/Dockerfile.l1 @@ -1,4 +1,4 @@ -FROM ethereum/client-go:v1.12.2 +FROM ethereum/client-go:v1.14.11 RUN apk add --no-cache jq diff --git a/ops/docker/Dockerfile.l1-beacon b/ops/docker/Dockerfile.l1-beacon index da0035632..a48869810 100644 --- a/ops/docker/Dockerfile.l1-beacon +++ b/ops/docker/Dockerfile.l1-beacon @@ -6,9 +6,9 @@ COPY ops/docker/consensus /consensus COPY ops/docker/execution /execution RUN ./prysmctl testnet generate-genesis --fork=deneb --num-validators=64 --genesis-time-delay=0 --output-ssz=/consensus/genesis.ssz --chain-config-file=/consensus/config.yml --geth-genesis-json-in=/execution/genesis.json --geth-genesis-json-out=/execution/genesis.json -FROM ethereum/client-go:latest as geth-genesis +FROM ethereum/client-go:v1.14.11 as geth-genesis COPY --from=chain-genesis /execution /execution -RUN geth --datadir=/execution init /execution/genesis.json +RUN geth --datadir=/execution --state.scheme=hash init /execution/genesis.json FROM gcr.io/prysmaticlabs/prysm/beacon-chain:v4.2.1 as beacon-chain diff --git a/ops/docker/docker-compose-4nodes.yml b/ops/docker/docker-compose-4nodes.yml index cddec285c..03cfe1579 100644 --- a/ops/docker/docker-compose-4nodes.yml +++ b/ops/docker/docker-compose-4nodes.yml @@ -84,7 +84,7 @@ services: # APIs to allow for proof-of-stake consensus via Prysm. l1: container_name: l1-geth - image: ethereum/client-go:v1.13.12 + image: ethereum/client-go:v1.14.11 command: - --http - --http.api=web3,debug,eth,txpool,net,engine From fad88abe2c64fc50b1cd056d6525425e1bc62789 Mon Sep 17 00:00:00 2001 From: kukoo Date: Fri, 1 Nov 2024 12:17:43 +0800 Subject: [PATCH 009/106] Add usdc flatten contract file (#621) --- .../contracts/libraries/token/FiatTokenV1.sol | 959 -------- .../libraries/usdc/FiatTokenProxy.sol.flatten | 600 +++++ .../libraries/usdc/FiatTokenV2_1.sol.flatten | 2184 +++++++++++++++++ 3 files changed, 2784 insertions(+), 959 deletions(-) delete mode 100644 contracts/contracts/libraries/token/FiatTokenV1.sol create mode 100644 contracts/contracts/libraries/usdc/FiatTokenProxy.sol.flatten create mode 100644 contracts/contracts/libraries/usdc/FiatTokenV2_1.sol.flatten diff --git a/contracts/contracts/libraries/token/FiatTokenV1.sol b/contracts/contracts/libraries/token/FiatTokenV1.sol deleted file mode 100644 index ed3d19d81..000000000 --- a/contracts/contracts/libraries/token/FiatTokenV1.sol +++ /dev/null @@ -1,959 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity =0.8.24; - -// contracts/v1/Ownable.sol -/** - - * - * Copyright (c) 2018 zOS Global Limited. - * Copyright (c) 2018-2020 CENTRE SECZ - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/** - * @notice The Ownable contract has an owner address, and provides basic - * authorization control functions - * @dev Forked from https://github.com/OpenZeppelin/openzeppelin-labs/blob/3887ab77b8adafba4a26ace002f3a684c1a3388b/upgradeability_ownership/contracts/ownership/Ownable.sol - * Modifications: - * 1. Consolidate OwnableStorage into this contract (7/13/18) - * 2. Reformat, conform to Solidity 0.6 syntax, and add error messages (5/13/20) - * 3. Make public functions external (5/27/20) - */ -contract Ownable { - // Owner of the contract - address private _owner; - - /** - * @dev Event to show ownership has been transferred - * @param previousOwner representing the address of the previous owner - * @param newOwner representing the address of the new owner - */ - event OwnershipTransferred(address previousOwner, address newOwner); - - /** - * @dev The constructor sets the original owner of the contract to the sender account. - */ - constructor() { - setOwner(msg.sender); - } - - /** - * @dev Tells the address of the owner - * @return the address of the owner - */ - function owner() external view returns (address) { - return _owner; - } - - /** - * @dev Sets a new owner address - */ - function setOwner(address newOwner) internal { - _owner = newOwner; - } - - /** - * @dev Throws if called by any account other than the owner. - */ - modifier onlyOwner() { - require(msg.sender == _owner, "Ownable: caller is not the owner"); - _; - } - - /** - * @dev Allows the current owner to transfer control of the contract to a newOwner. - * @param newOwner The address to transfer ownership to. - */ - function transferOwnership(address newOwner) external onlyOwner { - require(newOwner != address(0), "Ownable: new owner is the zero address"); - emit OwnershipTransferred(_owner, newOwner); - setOwner(newOwner); - } -} - -// node_modules/@openzeppelin/contracts/math/SafeMath.sol - -/** - * @dev Wrappers over Solidity's arithmetic operations with added overflow - * checks. - * - * Arithmetic operations in Solidity wrap on overflow. This can easily result - * in bugs, because programmers usually assume that an overflow raises an - * error, which is the standard behavior in high level programming languages. - * `SafeMath` restores this intuition by reverting the transaction when an - * operation overflows. - * - * Using this library instead of the unchecked operations eliminates an entire - * class of bugs, so it's recommended to use it always. - */ -library SafeMath { - /** - * @dev Returns the addition of two unsigned integers, with an overflow flag. - * - * _Available since v3.4._ - */ - function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { - uint256 c = a + b; - if (c < a) return (false, 0); - return (true, c); - } - - /** - * @dev Returns the subtraction of two unsigned integers, with an overflow flag. - * - * _Available since v3.4._ - */ - function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { - if (b > a) return (false, 0); - return (true, a - b); - } - - /** - * @dev Returns the multiplication of two unsigned integers, with an overflow flag. - * - * _Available since v3.4._ - */ - function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { - // 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 (true, 0); - uint256 c = a * b; - if (c / a != b) return (false, 0); - return (true, c); - } - - /** - * @dev Returns the division of two unsigned integers, with a division by zero flag. - * - * _Available since v3.4._ - */ - function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { - if (b == 0) return (false, 0); - return (true, a / b); - } - - /** - * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. - * - * _Available since v3.4._ - */ - function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { - if (b == 0) return (false, 0); - return (true, a % b); - } - - /** - * @dev Returns the addition of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `+` operator. - * - * Requirements: - * - * - Addition cannot overflow. - */ - function add(uint256 a, uint256 b) internal pure returns (uint256) { - uint256 c = a + b; - require(c >= a, "SafeMath: addition overflow"); - return c; - } - - /** - * @dev Returns the subtraction of two unsigned integers, reverting on - * overflow (when the result is negative). - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint256 a, uint256 b) internal pure returns (uint256) { - require(b <= a, "SafeMath: subtraction overflow"); - return a - b; - } - - /** - * @dev Returns the multiplication of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `*` operator. - * - * Requirements: - * - * - Multiplication cannot overflow. - */ - function mul(uint256 a, uint256 b) internal pure returns (uint256) { - if (a == 0) return 0; - uint256 c = a * b; - require(c / a == b, "SafeMath: multiplication overflow"); - return c; - } - - /** - * @dev Returns the integer division of two unsigned integers, reverting 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(uint256 a, uint256 b) internal pure returns (uint256) { - require(b > 0, "SafeMath: division by zero"); - return a / b; - } - - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * reverting when dividing by zero. - * - * Counterpart to Solidity's `%` operator. 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 mod(uint256 a, uint256 b) internal pure returns (uint256) { - require(b > 0, "SafeMath: modulo by zero"); - return a % b; - } - - /** - * @dev Returns the subtraction of two unsigned integers, reverting with custom message on - * overflow (when the result is negative). - * - * CAUTION: This function is deprecated because it requires allocating memory for the error - * message unnecessarily. For custom revert reasons use {trySub}. - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { - require(b <= a, errorMessage); - return a - b; - } - - /** - * @dev Returns the integer division of two unsigned integers, reverting with custom message on - * division by zero. The result is rounded towards zero. - * - * CAUTION: This function is deprecated because it requires allocating memory for the error - * message unnecessarily. For custom revert reasons use {tryDiv}. - * - * 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(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { - require(b > 0, errorMessage); - return a / b; - } - - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * reverting with custom message when dividing by zero. - * - * CAUTION: This function is deprecated because it requires allocating memory for the error - * message unnecessarily. For custom revert reasons use {tryMod}. - * - * Counterpart to Solidity's `%` operator. 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 mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { - require(b > 0, errorMessage); - return a % b; - } -} - -// node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol - -/** - * @dev Interface of the ERC20 standard as defined in the EIP. - */ -interface IERC20 { - /** - * @dev Returns the amount of tokens in existence. - */ - function totalSupply() external view returns (uint256); - - /** - * @dev Returns the amount of tokens owned by `account`. - */ - function balanceOf(address account) external view returns (uint256); - - /** - * @dev Moves `amount` tokens from the caller's account to `recipient`. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transfer(address recipient, uint256 amount) external returns (bool); - - /** - * @dev Returns the remaining number of tokens that `spender` will be - * allowed to spend on behalf of `owner` through {transferFrom}. This is - * zero by default. - * - * This value changes when {approve} or {transferFrom} are called. - */ - function allowance(address owner, address spender) external view returns (uint256); - - /** - * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * IMPORTANT: Beware that changing an allowance with this method brings the risk - * that someone may use both the old and the new allowance by unfortunate - * transaction ordering. One possible solution to mitigate this race - * condition is to first reduce the spender's allowance to 0 and set the - * desired value afterwards: - * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 - * - * Emits an {Approval} event. - */ - function approve(address spender, uint256 amount) external returns (bool); - - /** - * @dev Moves `amount` tokens from `sender` to `recipient` using the - * allowance mechanism. `amount` is then deducted from the caller's - * allowance. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); - - /** - * @dev Emitted when `value` tokens are moved from one account (`from`) to - * another (`to`). - * - * Note that `value` may be zero. - */ - event Transfer(address indexed from, address indexed to, uint256 value); - - /** - * @dev Emitted when the allowance of a `spender` for an `owner` is set by - * a call to {approve}. `value` is the new allowance. - */ - event Approval(address indexed owner, address indexed spender, uint256 value); -} - -// contracts/v1/AbstractFiatTokenV1.sol -/** - * Copyright 2023 Circle Internet Financial, LTD. All rights reserved. - * - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -abstract contract AbstractFiatTokenV1 is IERC20 { - function _approve(address owner, address spender, uint256 value) internal virtual; - - function _transfer(address from, address to, uint256 value) internal virtual; -} - -// contracts/v1/Blacklistable.sol -/** - * Copyright 2023 Circle Internet Financial, LTD. All rights reserved. - * - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @title Blacklistable Token - * @dev Allows accounts to be blacklisted by a "blacklister" role - */ -abstract contract Blacklistable is Ownable { - address public blacklister; - mapping(address => bool) internal _deprecatedBlacklisted; - - event Blacklisted(address indexed _account); - event UnBlacklisted(address indexed _account); - event BlacklisterChanged(address indexed newBlacklister); - - /** - * @dev Throws if called by any account other than the blacklister. - */ - modifier onlyBlacklister() { - require(msg.sender == blacklister, "Blacklistable: caller is not the blacklister"); - _; - } - - /** - * @dev Throws if argument account is blacklisted. - * @param _account The address to check. - */ - modifier notBlacklisted(address _account) { - require(!_isBlacklisted(_account), "Blacklistable: account is blacklisted"); - _; - } - - /** - * @notice Checks if account is blacklisted. - * @param _account The address to check. - * @return True if the account is blacklisted, false if the account is not blacklisted. - */ - function isBlacklisted(address _account) external view returns (bool) { - return _isBlacklisted(_account); - } - - /** - * @notice Adds account to blacklist. - * @param _account The address to blacklist. - */ - function blacklist(address _account) external onlyBlacklister { - _blacklist(_account); - emit Blacklisted(_account); - } - - /** - * @notice Removes account from blacklist. - * @param _account The address to remove from the blacklist. - */ - function unBlacklist(address _account) external onlyBlacklister { - _unBlacklist(_account); - emit UnBlacklisted(_account); - } - - /** - * @notice Updates the blacklister address. - * @param _newBlacklister The address of the new blacklister. - */ - function updateBlacklister(address _newBlacklister) external onlyOwner { - require(_newBlacklister != address(0), "Blacklistable: new blacklister is the zero address"); - blacklister = _newBlacklister; - emit BlacklisterChanged(blacklister); - } - - /** - * @dev Checks if account is blacklisted. - * @param _account The address to check. - * @return true if the account is blacklisted, false otherwise. - */ - function _isBlacklisted(address _account) internal view virtual returns (bool); - - /** - * @dev Helper method that blacklists an account. - * @param _account The address to blacklist. - */ - function _blacklist(address _account) internal virtual; - - /** - * @dev Helper method that unblacklists an account. - * @param _account The address to unblacklist. - */ - function _unBlacklist(address _account) internal virtual; -} - -// contracts/v1/Pausable.sol -/** - - * - * Copyright (c) 2016 Smart Contract Solutions, Inc. - * Copyright (c) 2018-2020 CENTRE SECZ - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/** - * @notice Base contract which allows children to implement an emergency stop - * mechanism - * @dev Forked from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/feb665136c0dae9912e08397c1a21c4af3651ef3/contracts/lifecycle/Pausable.sol - * Modifications: - * 1. Added pauser role, switched pause/unpause to be onlyPauser (6/14/2018) - * 2. Removed whenNotPause/whenPaused from pause/unpause (6/14/2018) - * 3. Removed whenPaused (6/14/2018) - * 4. Switches ownable library to use ZeppelinOS (7/12/18) - * 5. Remove constructor (7/13/18) - * 6. Reformat, conform to Solidity 0.6 syntax and add error messages (5/13/20) - * 7. Make public functions external (5/27/20) - */ -contract Pausable is Ownable { - event Pause(); - event Unpause(); - event PauserChanged(address indexed newAddress); - - address public pauser; - bool public paused = false; - - /** - * @dev Modifier to make a function callable only when the contract is not paused. - */ - modifier whenNotPaused() { - require(!paused, "Pausable: paused"); - _; - } - - /** - * @dev throws if called by any account other than the pauser - */ - modifier onlyPauser() { - require(msg.sender == pauser, "Pausable: caller is not the pauser"); - _; - } - - /** - * @dev called by the owner to pause, triggers stopped state - */ - function pause() external onlyPauser { - paused = true; - emit Pause(); - } - - /** - * @dev called by the owner to unpause, returns to normal state - */ - function unpause() external onlyPauser { - paused = false; - emit Unpause(); - } - - /** - * @notice Updates the pauser address. - * @param _newPauser The address of the new pauser. - */ - function updatePauser(address _newPauser) external onlyOwner { - require(_newPauser != address(0), "Pausable: new pauser is the zero address"); - pauser = _newPauser; - emit PauserChanged(pauser); - } -} - -// contracts/v1/FiatTokenV1.sol -/** - * Copyright 2023 Circle Internet Financial, LTD. All rights reserved. - * - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @title FiatToken - * @dev ERC20 Token backed by fiat reserves - */ -contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { - using SafeMath for uint256; - - string public name; - string public symbol; - uint8 public decimals; - string public currency; - address public masterMinter; - bool internal initialized; - - /// @dev A mapping that stores the balance and blacklist states for a given address. - /// The first bit defines whether the address is blacklisted (1 if blacklisted, 0 otherwise). - /// The last 255 bits define the balance for the address. - mapping(address => uint256) internal balanceAndBlacklistStates; - mapping(address => mapping(address => uint256)) internal allowed; - uint256 internal totalSupply_ = 0; - mapping(address => bool) internal minters; - mapping(address => uint256) internal minterAllowed; - - event Mint(address indexed minter, address indexed to, uint256 amount); - event Burn(address indexed burner, uint256 amount); - event MinterConfigured(address indexed minter, uint256 minterAllowedAmount); - event MinterRemoved(address indexed oldMinter); - event MasterMinterChanged(address indexed newMasterMinter); - - /** - * @notice Initializes the fiat token contract. - * @param tokenName The name of the fiat token. - * @param tokenSymbol The symbol of the fiat token. - * @param tokenCurrency The fiat currency that the token represents. - * @param tokenDecimals The number of decimals that the token uses. - * @param newMasterMinter The masterMinter address for the fiat token. - * @param newPauser The pauser address for the fiat token. - * @param newBlacklister The blacklister address for the fiat token. - * @param newOwner The owner of the fiat token. - */ - function initialize( - string memory tokenName, - string memory tokenSymbol, - string memory tokenCurrency, - uint8 tokenDecimals, - address newMasterMinter, - address newPauser, - address newBlacklister, - address newOwner - ) public { - require(!initialized, "FiatToken: contract is already initialized"); - require(newMasterMinter != address(0), "FiatToken: new masterMinter is the zero address"); - require(newPauser != address(0), "FiatToken: new pauser is the zero address"); - require(newBlacklister != address(0), "FiatToken: new blacklister is the zero address"); - require(newOwner != address(0), "FiatToken: new owner is the zero address"); - - name = tokenName; - symbol = tokenSymbol; - currency = tokenCurrency; - decimals = tokenDecimals; - masterMinter = newMasterMinter; - pauser = newPauser; - blacklister = newBlacklister; - setOwner(newOwner); - initialized = true; - } - - /** - * @dev Throws if called by any account other than a minter. - */ - modifier onlyMinters() { - require(minters[msg.sender], "FiatToken: caller is not a minter"); - _; - } - - /** - * @notice Mints fiat tokens to an address. - * @param _to The address that will receive the minted tokens. - * @param _amount The amount of tokens to mint. Must be less than or equal - * to the minterAllowance of the caller. - * @return True if the operation was successful. - */ - function mint( - address _to, - uint256 _amount - ) external whenNotPaused onlyMinters notBlacklisted(msg.sender) notBlacklisted(_to) returns (bool) { - require(_to != address(0), "FiatToken: mint to the zero address"); - require(_amount > 0, "FiatToken: mint amount not greater than 0"); - - uint256 mintingAllowedAmount = minterAllowed[msg.sender]; - require(_amount <= mintingAllowedAmount, "FiatToken: mint amount exceeds minterAllowance"); - - totalSupply_ = totalSupply_.add(_amount); - _setBalance(_to, _balanceOf(_to).add(_amount)); - minterAllowed[msg.sender] = mintingAllowedAmount.sub(_amount); - emit Mint(msg.sender, _to, _amount); - emit Transfer(address(0), _to, _amount); - return true; - } - - /** - * @dev Throws if called by any account other than the masterMinter - */ - modifier onlyMasterMinter() { - require(msg.sender == masterMinter, "FiatToken: caller is not the masterMinter"); - _; - } - - /** - * @notice Gets the minter allowance for an account. - * @param minter The address to check. - * @return The remaining minter allowance for the account. - */ - function minterAllowance(address minter) external view returns (uint256) { - return minterAllowed[minter]; - } - - /** - * @notice Checks if an account is a minter. - * @param account The address to check. - * @return True if the account is a minter, false if the account is not a minter. - */ - function isMinter(address account) external view returns (bool) { - return minters[account]; - } - - /** - * @notice Gets the remaining amount of fiat tokens a spender is allowed to transfer on - * behalf of the token owner. - * @param owner The token owner's address. - * @param spender The spender's address. - * @return The remaining allowance. - */ - function allowance(address owner, address spender) external view override returns (uint256) { - return allowed[owner][spender]; - } - - /** - * @notice Gets the totalSupply of the fiat token. - * @return The totalSupply of the fiat token. - */ - function totalSupply() external view override returns (uint256) { - return totalSupply_; - } - - /** - * @notice Gets the fiat token balance of an account. - * @param account The address to check. - * @return balance The fiat token balance of the account. - */ - function balanceOf(address account) external view override returns (uint256) { - return _balanceOf(account); - } - - /** - * @notice Sets a fiat token allowance for a spender to spend on behalf of the caller. - * @param spender The spender's address. - * @param value The allowance amount. - * @return True if the operation was successful. - */ - function approve( - address spender, - uint256 value - ) external virtual override whenNotPaused notBlacklisted(msg.sender) notBlacklisted(spender) returns (bool) { - _approve(msg.sender, spender, value); - return true; - } - - /** - * @dev Internal function to set allowance. - * @param owner Token owner's address. - * @param spender Spender's address. - * @param value Allowance amount. - */ - function _approve(address owner, address spender, uint256 value) internal override { - require(owner != address(0), "ERC20: approve from the zero address"); - require(spender != address(0), "ERC20: approve to the zero address"); - allowed[owner][spender] = value; - emit Approval(owner, spender, value); - } - - /** - * @notice Transfers tokens from an address to another by spending the caller's allowance. - * @dev The caller must have some fiat token allowance on the payer's tokens. - * @param from Payer's address. - * @param to Payee's address. - * @param value Transfer amount. - * @return True if the operation was successful. - */ - function transferFrom( - address from, - address to, - uint256 value - ) - external - override - whenNotPaused - notBlacklisted(msg.sender) - notBlacklisted(from) - notBlacklisted(to) - returns (bool) - { - require(value <= allowed[from][msg.sender], "ERC20: transfer amount exceeds allowance"); - _transfer(from, to, value); - allowed[from][msg.sender] = allowed[from][msg.sender].sub(value); - return true; - } - - /** - * @notice Transfers tokens from the caller. - * @param to Payee's address. - * @param value Transfer amount. - * @return True if the operation was successful. - */ - function transfer( - address to, - uint256 value - ) external override whenNotPaused notBlacklisted(msg.sender) notBlacklisted(to) returns (bool) { - _transfer(msg.sender, to, value); - return true; - } - - /** - * @dev Internal function to process transfers. - * @param from Payer's address. - * @param to Payee's address. - * @param value Transfer amount. - */ - function _transfer(address from, address to, uint256 value) internal override { - require(from != address(0), "ERC20: transfer from the zero address"); - require(to != address(0), "ERC20: transfer to the zero address"); - require(value <= _balanceOf(from), "ERC20: transfer amount exceeds balance"); - - _setBalance(from, _balanceOf(from).sub(value)); - _setBalance(to, _balanceOf(to).add(value)); - emit Transfer(from, to, value); - } - - /** - * @notice Adds or updates a new minter with a mint allowance. - * @param minter The address of the minter. - * @param minterAllowedAmount The minting amount allowed for the minter. - * @return True if the operation was successful. - */ - function configureMinter( - address minter, - uint256 minterAllowedAmount - ) external whenNotPaused onlyMasterMinter returns (bool) { - minters[minter] = true; - minterAllowed[minter] = minterAllowedAmount; - emit MinterConfigured(minter, minterAllowedAmount); - return true; - } - - /** - * @notice Removes a minter. - * @param minter The address of the minter to remove. - * @return True if the operation was successful. - */ - function removeMinter(address minter) external onlyMasterMinter returns (bool) { - minters[minter] = false; - minterAllowed[minter] = 0; - emit MinterRemoved(minter); - return true; - } - - /** - * @notice Allows a minter to burn some of its own tokens. - * @dev The caller must be a minter, must not be blacklisted, and the amount to burn - * should be less than or equal to the account's balance. - * @param _amount the amount of tokens to be burned. - */ - function burn(uint256 _amount) external whenNotPaused onlyMinters notBlacklisted(msg.sender) { - uint256 balance = _balanceOf(msg.sender); - require(_amount > 0, "FiatToken: burn amount not greater than 0"); - require(balance >= _amount, "FiatToken: burn amount exceeds balance"); - - totalSupply_ = totalSupply_.sub(_amount); - _setBalance(msg.sender, balance.sub(_amount)); - emit Burn(msg.sender, _amount); - emit Transfer(msg.sender, address(0), _amount); - } - - /** - * @notice Updates the master minter address. - * @param _newMasterMinter The address of the new master minter. - */ - function updateMasterMinter(address _newMasterMinter) external onlyOwner { - require(_newMasterMinter != address(0), "FiatToken: new masterMinter is the zero address"); - masterMinter = _newMasterMinter; - emit MasterMinterChanged(masterMinter); - } - - /** - * - */ - function _blacklist(address _account) internal override { - _setBlacklistState(_account, true); - } - - /** - * - */ - function _unBlacklist(address _account) internal override { - _setBlacklistState(_account, false); - } - - /** - * @dev Helper method that sets the blacklist state of an account. - * @param _account The address of the account. - * @param _shouldBlacklist True if the account should be blacklisted, false if the account should be unblacklisted. - */ - function _setBlacklistState(address _account, bool _shouldBlacklist) internal virtual { - _deprecatedBlacklisted[_account] = _shouldBlacklist; - } - - /** - * @dev Helper method that sets the balance of an account. - * @param _account The address of the account. - * @param _balance The new fiat token balance of the account. - */ - function _setBalance(address _account, uint256 _balance) internal virtual { - balanceAndBlacklistStates[_account] = _balance; - } - - /** - * - */ - function _isBlacklisted(address _account) internal view virtual override returns (bool) { - return _deprecatedBlacklisted[_account]; - } - - /** - * @dev Helper method to obtain the balance of an account. - * @param _account The address of the account. - * @return The fiat token balance of the account. - */ - function _balanceOf(address _account) internal view virtual returns (uint256) { - return balanceAndBlacklistStates[_account]; - } -} diff --git a/contracts/contracts/libraries/usdc/FiatTokenProxy.sol.flatten b/contracts/contracts/libraries/usdc/FiatTokenProxy.sol.flatten new file mode 100644 index 000000000..f21d33070 --- /dev/null +++ b/contracts/contracts/libraries/usdc/FiatTokenProxy.sol.flatten @@ -0,0 +1,600 @@ +// SPDX-License-Identifier: MIT +pragma solidity <0.8.0 =0.6.12 >=0.6.2; + +// contracts/upgradeability/Proxy.sol +/** + + * + * Copyright (c) 2018 zOS Global Limited. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @notice Implements delegation of calls to other contracts, with proper + * forwarding of return values and bubbling of failures. + * It defines a fallback function that delegates all calls to the address + * returned by the abstract _implementation() internal function. + * @dev Forked from https://github.com/zeppelinos/zos-lib/blob/8a16ef3ad17ec7430e3a9d2b5e3f39b8204f8c8d/contracts/upgradeability/Proxy.sol + * Modifications: + * 1. Reformat and conform to Solidity 0.6 syntax (5/13/20) + */ +abstract contract Proxy { + /** + * @dev Fallback function. + * Implemented entirely in `_fallback`. + */ + fallback() external payable { + _fallback(); + } + + /** + * @return The Address of the implementation. + */ + function _implementation() internal virtual view returns (address); + + /** + * @dev Delegates execution to an implementation contract. + * This is a low level function that doesn't return to its internal call site. + * It will return to the external caller whatever the implementation returns. + * @param implementation Address to delegate. + */ + function _delegate(address implementation) internal { + assembly { + // Copy msg.data. We take full control of memory in this inline assembly + // block because it will not return to Solidity code. We overwrite the + // Solidity scratch pad at memory position 0. + calldatacopy(0, 0, calldatasize()) + + // Call the implementation. + // out and outsize are 0 because we don't know the size yet. + let result := delegatecall( + gas(), + implementation, + 0, + calldatasize(), + 0, + 0 + ) + + // Copy the returned data. + returndatacopy(0, 0, returndatasize()) + + switch result + // delegatecall returns 0 on error. + case 0 { + revert(0, returndatasize()) + } + default { + return(0, returndatasize()) + } + } + } + + /** + * @dev Function that is run as the first thing in the fallback function. + * Can be redefined in derived contracts to add functionality. + * Redefinitions must call super._willFallback(). + */ + function _willFallback() internal virtual {} + + /** + * @dev fallback implementation. + * Extracted to enable manual triggering. + */ + function _fallback() internal { + _willFallback(); + _delegate(_implementation()); + } +} + +// node_modules/@openzeppelin/contracts/utils/Address.sol + +/** + * @dev Collection of functions related to the address type + */ +library Address { + /** + * @dev Returns true if `account` is a contract. + * + * [IMPORTANT] + * ==== + * It is unsafe to assume that an address for which this function returns + * false is an externally-owned account (EOA) and not a contract. + * + * Among others, `isContract` will return false for the following + * types of addresses: + * + * - an externally-owned account + * - a contract in construction + * - an address where a contract will be created + * - an address where a contract lived, but was destroyed + * ==== + */ + function isContract(address account) internal view returns (bool) { + // This method relies on extcodesize, which returns 0 for contracts in + // construction, since the code is only stored at the end of the + // constructor execution. + + uint256 size; + // solhint-disable-next-line no-inline-assembly + assembly { size := extcodesize(account) } + return size > 0; + } + + /** + * @dev Replacement for Solidity's `transfer`: sends `amount` wei to + * `recipient`, forwarding all available gas and reverting on errors. + * + * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost + * of certain opcodes, possibly making contracts go over the 2300 gas limit + * imposed by `transfer`, making them unable to receive funds via + * `transfer`. {sendValue} removes this limitation. + * + * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. + * + * IMPORTANT: because control is transferred to `recipient`, care must be + * taken to not create reentrancy vulnerabilities. Consider using + * {ReentrancyGuard} or the + * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. + */ + function sendValue(address payable recipient, uint256 amount) internal { + require(address(this).balance >= amount, "Address: insufficient balance"); + + // solhint-disable-next-line avoid-low-level-calls, avoid-call-value + (bool success, ) = recipient.call{ value: amount }(""); + require(success, "Address: unable to send value, recipient may have reverted"); + } + + /** + * @dev Performs a Solidity function call using a low level `call`. A + * plain`call` is an unsafe replacement for a function call: use this + * function instead. + * + * If `target` reverts with a revert reason, it is bubbled up by this + * function (like regular Solidity function calls). + * + * Returns the raw returned data. To convert to the expected return value, + * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. + * + * Requirements: + * + * - `target` must be a contract. + * - calling `target` with `data` must not revert. + * + * _Available since v3.1._ + */ + function functionCall(address target, bytes memory data) internal returns (bytes memory) { + return functionCall(target, data, "Address: low-level call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with + * `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { + return functionCallWithValue(target, data, 0, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but also transferring `value` wei to `target`. + * + * Requirements: + * + * - the calling contract must have an ETH balance of at least `value`. + * - the called Solidity function must be `payable`. + * + * _Available since v3.1._ + */ + function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { + return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); + } + + /** + * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but + * with `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { + require(address(this).balance >= value, "Address: insufficient balance for call"); + require(isContract(target), "Address: call to non-contract"); + + // solhint-disable-next-line avoid-low-level-calls + (bool success, bytes memory returndata) = target.call{ value: value }(data); + return _verifyCallResult(success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { + return functionStaticCall(target, data, "Address: low-level static call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { + require(isContract(target), "Address: static call to non-contract"); + + // solhint-disable-next-line avoid-low-level-calls + (bool success, bytes memory returndata) = target.staticcall(data); + return _verifyCallResult(success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { + return functionDelegateCall(target, data, "Address: low-level delegate call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { + require(isContract(target), "Address: delegate call to non-contract"); + + // solhint-disable-next-line avoid-low-level-calls + (bool success, bytes memory returndata) = target.delegatecall(data); + return _verifyCallResult(success, returndata, errorMessage); + } + + function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { + if (success) { + return returndata; + } else { + // Look for revert reason and bubble it up if present + if (returndata.length > 0) { + // The easiest way to bubble the revert reason is using memory via assembly + + // solhint-disable-next-line no-inline-assembly + assembly { + let returndata_size := mload(returndata) + revert(add(32, returndata), returndata_size) + } + } else { + revert(errorMessage); + } + } + } +} + +// contracts/upgradeability/UpgradeabilityProxy.sol +/** + + * + * Copyright (c) 2018 zOS Global Limited. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @notice This contract implements a proxy that allows to change the + * implementation address to which it will delegate. + * Such a change is called an implementation upgrade. + * @dev Forked from https://github.com/zeppelinos/zos-lib/blob/8a16ef3ad17ec7430e3a9d2b5e3f39b8204f8c8d/contracts/upgradeability/UpgradeabilityProxy.sol + * Modifications: + * 1. Reformat, conform to Solidity 0.6 syntax, and add error messages (5/13/20) + * 2. Use Address utility library from the latest OpenZeppelin (5/13/20) + */ +contract UpgradeabilityProxy is Proxy { + /** + * @dev Emitted when the implementation is upgraded. + * @param implementation Address of the new implementation. + */ + event Upgraded(address implementation); + + /** + * @dev Storage slot with the address of the current implementation. + * This is the keccak-256 hash of "org.zeppelinos.proxy.implementation", and is + * validated in the constructor. + */ + bytes32 + private constant IMPLEMENTATION_SLOT = 0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3; + + /** + * @dev Contract constructor. + * @param implementationContract Address of the initial implementation. + */ + constructor(address implementationContract) public { + assert( + IMPLEMENTATION_SLOT == + keccak256("org.zeppelinos.proxy.implementation") + ); + + _setImplementation(implementationContract); + } + + /** + * @dev Returns the current implementation. + * @return impl Address of the current implementation + */ + function _implementation() internal override view returns (address impl) { + bytes32 slot = IMPLEMENTATION_SLOT; + assembly { + impl := sload(slot) + } + } + + /** + * @dev Upgrades the proxy to a new implementation. + * @param newImplementation Address of the new implementation. + */ + function _upgradeTo(address newImplementation) internal { + _setImplementation(newImplementation); + emit Upgraded(newImplementation); + } + + /** + * @dev Sets the implementation address of the proxy. + * @param newImplementation Address of the new implementation. + */ + function _setImplementation(address newImplementation) private { + require( + Address.isContract(newImplementation), + "Cannot set a proxy implementation to a non-contract address" + ); + + bytes32 slot = IMPLEMENTATION_SLOT; + + assembly { + sstore(slot, newImplementation) + } + } +} + +// contracts/upgradeability/AdminUpgradeabilityProxy.sol +/** + + * + * Copyright (c) 2018 zOS Global Limited. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @notice This contract combines an upgradeability proxy with an authorization + * mechanism for administrative tasks. + * @dev Forked from https://github.com/zeppelinos/zos-lib/blob/8a16ef3ad17ec7430e3a9d2b5e3f39b8204f8c8d/contracts/upgradeability/AdminUpgradeabilityProxy.sol + * Modifications: + * 1. Reformat, conform to Solidity 0.6 syntax, and add error messages (5/13/20) + * 2. Remove ifAdmin modifier from admin() and implementation() (5/13/20) + */ +contract AdminUpgradeabilityProxy is UpgradeabilityProxy { + /** + * @dev Emitted when the administration has been transferred. + * @param previousAdmin Address of the previous admin. + * @param newAdmin Address of the new admin. + */ + event AdminChanged(address previousAdmin, address newAdmin); + + /** + * @dev Storage slot with the admin of the contract. + * This is the keccak-256 hash of "org.zeppelinos.proxy.admin", and is + * validated in the constructor. + */ + bytes32 + private constant ADMIN_SLOT = 0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b; + + /** + * @dev Modifier to check whether the `msg.sender` is the admin. + * If it is, it will run the function. Otherwise, it will delegate the call + * to the implementation. + */ + modifier ifAdmin() { + if (msg.sender == _admin()) { + _; + } else { + _fallback(); + } + } + + /** + * @dev Contract constructor. + * It sets the `msg.sender` as the proxy administrator. + * @param implementationContract address of the initial implementation. + */ + constructor(address implementationContract) + public + UpgradeabilityProxy(implementationContract) + { + assert(ADMIN_SLOT == keccak256("org.zeppelinos.proxy.admin")); + + _setAdmin(msg.sender); + } + + /** + * @return The address of the proxy admin. + */ + function admin() external view returns (address) { + return _admin(); + } + + /** + * @return The address of the implementation. + */ + function implementation() external view returns (address) { + return _implementation(); + } + + /** + * @dev Changes the admin of the proxy. + * Only the current admin can call this function. + * @param newAdmin Address to transfer proxy administration to. + */ + function changeAdmin(address newAdmin) external ifAdmin { + require( + newAdmin != address(0), + "Cannot change the admin of a proxy to the zero address" + ); + emit AdminChanged(_admin(), newAdmin); + _setAdmin(newAdmin); + } + + /** + * @dev Upgrade the backing implementation of the proxy. + * Only the admin can call this function. + * @param newImplementation Address of the new implementation. + */ + function upgradeTo(address newImplementation) external ifAdmin { + _upgradeTo(newImplementation); + } + + /** + * @dev Upgrade the backing implementation of the proxy and call a function + * on the new implementation. + * This is useful to initialize the proxied contract. + * @param newImplementation Address of the new implementation. + * @param data Data to send as msg.data in the low level call. + * It should include the signature and the parameters of the function to be + * called, as described in + * https://solidity.readthedocs.io/en/develop/abi-spec.html#function-selector-and-argument-encoding. + */ + function upgradeToAndCall(address newImplementation, bytes calldata data) + external + payable + ifAdmin + { + _upgradeTo(newImplementation); + // prettier-ignore + // solhint-disable-next-line avoid-low-level-calls + (bool success,) = address(this).call{value: msg.value}(data); + // solhint-disable-next-line reason-string + require(success); + } + + /** + * @return adm The admin slot. + */ + function _admin() internal view returns (address adm) { + bytes32 slot = ADMIN_SLOT; + + assembly { + adm := sload(slot) + } + } + + /** + * @dev Sets the address of the proxy admin. + * @param newAdmin Address of the new proxy admin. + */ + function _setAdmin(address newAdmin) internal { + bytes32 slot = ADMIN_SLOT; + + assembly { + sstore(slot, newAdmin) + } + } + + /** + * @dev Only fall back when the sender is not the admin. + */ + function _willFallback() internal override { + require( + msg.sender != _admin(), + "Cannot call fallback function from the proxy admin" + ); + super._willFallback(); + } +} + +// contracts/v1/FiatTokenProxy.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @title FiatTokenProxy + * @dev This contract proxies FiatToken calls and enables FiatToken upgrades + */ +contract FiatTokenProxy is AdminUpgradeabilityProxy { + constructor(address implementationContract) + public + AdminUpgradeabilityProxy(implementationContract) + {} +} diff --git a/contracts/contracts/libraries/usdc/FiatTokenV2_1.sol.flatten b/contracts/contracts/libraries/usdc/FiatTokenV2_1.sol.flatten new file mode 100644 index 000000000..c1e9df3e9 --- /dev/null +++ b/contracts/contracts/libraries/usdc/FiatTokenV2_1.sol.flatten @@ -0,0 +1,2184 @@ +// SPDX-License-Identifier: MIT +pragma solidity <0.8.0 =0.6.12 >=0.6.0 >=0.6.2; + +// contracts/util/ECRecover.sol +/** + + * + * Copyright (c) 2016-2019 zOS Global Limited + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @title ECRecover + * @notice A library that provides a safe ECDSA recovery function + */ +library ECRecover { + /** + * @notice Recover signer's address from a signed message + * @dev Adapted from: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/65e4ffde586ec89af3b7e9140bdc9235d1254853/contracts/cryptography/ECDSA.sol + * Modifications: Accept v, r, and s as separate arguments + * @param digest Keccak-256 hash digest of the signed message + * @param v v of the signature + * @param r r of the signature + * @param s s of the signature + * @return Signer address + */ + function recover( + bytes32 digest, + uint8 v, + bytes32 r, + bytes32 s + ) internal pure returns (address) { + // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature + // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines + // the valid range for s in (281): 0 < s < secp256k1n ÷ 2 + 1, and for v in (282): v ∈ {27, 28}. Most + // signatures from current libraries generate a unique signature with an s-value in the lower half order. + // + // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value + // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or + // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept + // these malleable signatures as well. + if ( + uint256(s) > + 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 + ) { + revert("ECRecover: invalid signature 's' value"); + } + + if (v != 27 && v != 28) { + revert("ECRecover: invalid signature 'v' value"); + } + + // If the signature is valid (and not malleable), return the signer address + address signer = ecrecover(digest, v, r, s); + require(signer != address(0), "ECRecover: invalid signature"); + + return signer; + } +} + +// contracts/v1/Ownable.sol +/** + + * + * Copyright (c) 2018 zOS Global Limited. + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @notice The Ownable contract has an owner address, and provides basic + * authorization control functions + * @dev Forked from https://github.com/OpenZeppelin/openzeppelin-labs/blob/3887ab77b8adafba4a26ace002f3a684c1a3388b/upgradeability_ownership/contracts/ownership/Ownable.sol + * Modifications: + * 1. Consolidate OwnableStorage into this contract (7/13/18) + * 2. Reformat, conform to Solidity 0.6 syntax, and add error messages (5/13/20) + * 3. Make public functions external (5/27/20) + */ +contract Ownable { + // Owner of the contract + address private _owner; + + /** + * @dev Event to show ownership has been transferred + * @param previousOwner representing the address of the previous owner + * @param newOwner representing the address of the new owner + */ + event OwnershipTransferred(address previousOwner, address newOwner); + + /** + * @dev The constructor sets the original owner of the contract to the sender account. + */ + constructor() public { + setOwner(msg.sender); + } + + /** + * @dev Tells the address of the owner + * @return the address of the owner + */ + function owner() external view returns (address) { + return _owner; + } + + /** + * @dev Sets a new owner address + */ + function setOwner(address newOwner) internal { + _owner = newOwner; + } + + /** + * @dev Throws if called by any account other than the owner. + */ + modifier onlyOwner() { + require(msg.sender == _owner, "Ownable: caller is not the owner"); + _; + } + + /** + * @dev Allows the current owner to transfer control of the contract to a newOwner. + * @param newOwner The address to transfer ownership to. + */ + function transferOwnership(address newOwner) external onlyOwner { + require( + newOwner != address(0), + "Ownable: new owner is the zero address" + ); + emit OwnershipTransferred(_owner, newOwner); + setOwner(newOwner); + } +} + +// contracts/v2/EIP712Domain.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @title EIP712 Domain + */ +contract EIP712Domain { + /** + * @dev EIP712 Domain Separator + */ + bytes32 public DOMAIN_SEPARATOR; +} + +// node_modules/@openzeppelin/contracts/math/SafeMath.sol + +/** + * @dev Wrappers over Solidity's arithmetic operations with added overflow + * checks. + * + * Arithmetic operations in Solidity wrap on overflow. This can easily result + * in bugs, because programmers usually assume that an overflow raises an + * error, which is the standard behavior in high level programming languages. + * `SafeMath` restores this intuition by reverting the transaction when an + * operation overflows. + * + * Using this library instead of the unchecked operations eliminates an entire + * class of bugs, so it's recommended to use it always. + */ +library SafeMath { + /** + * @dev Returns the addition of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { + uint256 c = a + b; + if (c < a) return (false, 0); + return (true, c); + } + + /** + * @dev Returns the substraction of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { + if (b > a) return (false, 0); + return (true, a - b); + } + + /** + * @dev Returns the multiplication of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { + // 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 (true, 0); + uint256 c = a * b; + if (c / a != b) return (false, 0); + return (true, c); + } + + /** + * @dev Returns the division of two unsigned integers, with a division by zero flag. + * + * _Available since v3.4._ + */ + function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { + if (b == 0) return (false, 0); + return (true, a / b); + } + + /** + * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. + * + * _Available since v3.4._ + */ + function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { + if (b == 0) return (false, 0); + return (true, a % b); + } + + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + return c; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + require(b <= a, "SafeMath: subtraction overflow"); + return a - b; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + if (a == 0) return 0; + uint256 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + return c; + } + + /** + * @dev Returns the integer division of two unsigned integers, reverting 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(uint256 a, uint256 b) internal pure returns (uint256) { + require(b > 0, "SafeMath: division by zero"); + return a / b; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * reverting when dividing by zero. + * + * Counterpart to Solidity's `%` operator. 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 mod(uint256 a, uint256 b) internal pure returns (uint256) { + require(b > 0, "SafeMath: modulo by zero"); + return a % b; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {trySub}. + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b <= a, errorMessage); + return a - b; + } + + /** + * @dev Returns the integer division of two unsigned integers, reverting with custom message on + * division by zero. The result is rounded towards zero. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryDiv}. + * + * 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(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b > 0, errorMessage); + return a / b; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * reverting with custom message when dividing by zero. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryMod}. + * + * Counterpart to Solidity's `%` operator. 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 mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b > 0, errorMessage); + return a % b; + } +} + +// node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol + +/** + * @dev Interface of the ERC20 standard as defined in the EIP. + */ +interface IERC20 { + /** + * @dev Returns the amount of tokens in existence. + */ + function totalSupply() external view returns (uint256); + + /** + * @dev Returns the amount of tokens owned by `account`. + */ + function balanceOf(address account) external view returns (uint256); + + /** + * @dev Moves `amount` tokens from the caller's account to `recipient`. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transfer(address recipient, uint256 amount) external returns (bool); + + /** + * @dev Returns the remaining number of tokens that `spender` will be + * allowed to spend on behalf of `owner` through {transferFrom}. This is + * zero by default. + * + * This value changes when {approve} or {transferFrom} are called. + */ + function allowance(address owner, address spender) external view returns (uint256); + + /** + * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * IMPORTANT: Beware that changing an allowance with this method brings the risk + * that someone may use both the old and the new allowance by unfortunate + * transaction ordering. One possible solution to mitigate this race + * condition is to first reduce the spender's allowance to 0 and set the + * desired value afterwards: + * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 + * + * Emits an {Approval} event. + */ + function approve(address spender, uint256 amount) external returns (bool); + + /** + * @dev Moves `amount` tokens from `sender` to `recipient` using the + * allowance mechanism. `amount` is then deducted from the caller's + * allowance. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); + + /** + * @dev Emitted when `value` tokens are moved from one account (`from`) to + * another (`to`). + * + * Note that `value` may be zero. + */ + event Transfer(address indexed from, address indexed to, uint256 value); + + /** + * @dev Emitted when the allowance of a `spender` for an `owner` is set by + * a call to {approve}. `value` is the new allowance. + */ + event Approval(address indexed owner, address indexed spender, uint256 value); +} + +// node_modules/@openzeppelin/contracts/utils/Address.sol + +/** + * @dev Collection of functions related to the address type + */ +library Address { + /** + * @dev Returns true if `account` is a contract. + * + * [IMPORTANT] + * ==== + * It is unsafe to assume that an address for which this function returns + * false is an externally-owned account (EOA) and not a contract. + * + * Among others, `isContract` will return false for the following + * types of addresses: + * + * - an externally-owned account + * - a contract in construction + * - an address where a contract will be created + * - an address where a contract lived, but was destroyed + * ==== + */ + function isContract(address account) internal view returns (bool) { + // This method relies on extcodesize, which returns 0 for contracts in + // construction, since the code is only stored at the end of the + // constructor execution. + + uint256 size; + // solhint-disable-next-line no-inline-assembly + assembly { size := extcodesize(account) } + return size > 0; + } + + /** + * @dev Replacement for Solidity's `transfer`: sends `amount` wei to + * `recipient`, forwarding all available gas and reverting on errors. + * + * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost + * of certain opcodes, possibly making contracts go over the 2300 gas limit + * imposed by `transfer`, making them unable to receive funds via + * `transfer`. {sendValue} removes this limitation. + * + * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. + * + * IMPORTANT: because control is transferred to `recipient`, care must be + * taken to not create reentrancy vulnerabilities. Consider using + * {ReentrancyGuard} or the + * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. + */ + function sendValue(address payable recipient, uint256 amount) internal { + require(address(this).balance >= amount, "Address: insufficient balance"); + + // solhint-disable-next-line avoid-low-level-calls, avoid-call-value + (bool success, ) = recipient.call{ value: amount }(""); + require(success, "Address: unable to send value, recipient may have reverted"); + } + + /** + * @dev Performs a Solidity function call using a low level `call`. A + * plain`call` is an unsafe replacement for a function call: use this + * function instead. + * + * If `target` reverts with a revert reason, it is bubbled up by this + * function (like regular Solidity function calls). + * + * Returns the raw returned data. To convert to the expected return value, + * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. + * + * Requirements: + * + * - `target` must be a contract. + * - calling `target` with `data` must not revert. + * + * _Available since v3.1._ + */ + function functionCall(address target, bytes memory data) internal returns (bytes memory) { + return functionCall(target, data, "Address: low-level call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with + * `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { + return functionCallWithValue(target, data, 0, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but also transferring `value` wei to `target`. + * + * Requirements: + * + * - the calling contract must have an ETH balance of at least `value`. + * - the called Solidity function must be `payable`. + * + * _Available since v3.1._ + */ + function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { + return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); + } + + /** + * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but + * with `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { + require(address(this).balance >= value, "Address: insufficient balance for call"); + require(isContract(target), "Address: call to non-contract"); + + // solhint-disable-next-line avoid-low-level-calls + (bool success, bytes memory returndata) = target.call{ value: value }(data); + return _verifyCallResult(success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { + return functionStaticCall(target, data, "Address: low-level static call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { + require(isContract(target), "Address: static call to non-contract"); + + // solhint-disable-next-line avoid-low-level-calls + (bool success, bytes memory returndata) = target.staticcall(data); + return _verifyCallResult(success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { + return functionDelegateCall(target, data, "Address: low-level delegate call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { + require(isContract(target), "Address: delegate call to non-contract"); + + // solhint-disable-next-line avoid-low-level-calls + (bool success, bytes memory returndata) = target.delegatecall(data); + return _verifyCallResult(success, returndata, errorMessage); + } + + function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { + if (success) { + return returndata; + } else { + // Look for revert reason and bubble it up if present + if (returndata.length > 0) { + // The easiest way to bubble the revert reason is using memory via assembly + + // solhint-disable-next-line no-inline-assembly + assembly { + let returndata_size := mload(returndata) + revert(add(32, returndata), returndata_size) + } + } else { + revert(errorMessage); + } + } + } +} + +// contracts/util/EIP712.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @title EIP712 + * @notice A library that provides EIP712 helper functions + */ +library EIP712 { + /** + * @notice Make EIP712 domain separator + * @param name Contract name + * @param version Contract version + * @return Domain separator + */ + function makeDomainSeparator(string memory name, string memory version) + internal + view + returns (bytes32) + { + uint256 chainId; + assembly { + chainId := chainid() + } + return + keccak256( + abi.encode( + // keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)") + 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f, + keccak256(bytes(name)), + keccak256(bytes(version)), + chainId, + address(this) + ) + ); + } + + /** + * @notice Recover signer's address from a EIP712 signature + * @param domainSeparator Domain separator + * @param v v of the signature + * @param r r of the signature + * @param s s of the signature + * @param typeHashAndData Type hash concatenated with data + * @return Signer's address + */ + function recover( + bytes32 domainSeparator, + uint8 v, + bytes32 r, + bytes32 s, + bytes memory typeHashAndData + ) internal pure returns (address) { + bytes32 digest = keccak256( + abi.encodePacked( + "\x19\x01", + domainSeparator, + keccak256(typeHashAndData) + ) + ); + return ECRecover.recover(digest, v, r, s); + } +} + +// contracts/v1/AbstractFiatTokenV1.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +abstract contract AbstractFiatTokenV1 is IERC20 { + function _approve( + address owner, + address spender, + uint256 value + ) internal virtual; + + function _transfer( + address from, + address to, + uint256 value + ) internal virtual; +} + +// contracts/v1/Blacklistable.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @title Blacklistable Token + * @dev Allows accounts to be blacklisted by a "blacklister" role + */ +contract Blacklistable is Ownable { + address public blacklister; + mapping(address => bool) internal blacklisted; + + event Blacklisted(address indexed _account); + event UnBlacklisted(address indexed _account); + event BlacklisterChanged(address indexed newBlacklister); + + /** + * @dev Throws if called by any account other than the blacklister + */ + modifier onlyBlacklister() { + require( + msg.sender == blacklister, + "Blacklistable: caller is not the blacklister" + ); + _; + } + + /** + * @dev Throws if argument account is blacklisted + * @param _account The address to check + */ + modifier notBlacklisted(address _account) { + require( + !blacklisted[_account], + "Blacklistable: account is blacklisted" + ); + _; + } + + /** + * @dev Checks if account is blacklisted + * @param _account The address to check + */ + function isBlacklisted(address _account) external view returns (bool) { + return blacklisted[_account]; + } + + /** + * @dev Adds account to blacklist + * @param _account The address to blacklist + */ + function blacklist(address _account) external onlyBlacklister { + blacklisted[_account] = true; + emit Blacklisted(_account); + } + + /** + * @dev Removes account from blacklist + * @param _account The address to remove from the blacklist + */ + function unBlacklist(address _account) external onlyBlacklister { + blacklisted[_account] = false; + emit UnBlacklisted(_account); + } + + function updateBlacklister(address _newBlacklister) external onlyOwner { + require( + _newBlacklister != address(0), + "Blacklistable: new blacklister is the zero address" + ); + blacklister = _newBlacklister; + emit BlacklisterChanged(blacklister); + } +} + +// contracts/v1/Pausable.sol +/** + + * + * Copyright (c) 2016 Smart Contract Solutions, Inc. + * Copyright (c) 2018-2020 CENTRE SECZ0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @notice Base contract which allows children to implement an emergency stop + * mechanism + * @dev Forked from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/feb665136c0dae9912e08397c1a21c4af3651ef3/contracts/lifecycle/Pausable.sol + * Modifications: + * 1. Added pauser role, switched pause/unpause to be onlyPauser (6/14/2018) + * 2. Removed whenNotPause/whenPaused from pause/unpause (6/14/2018) + * 3. Removed whenPaused (6/14/2018) + * 4. Switches ownable library to use ZeppelinOS (7/12/18) + * 5. Remove constructor (7/13/18) + * 6. Reformat, conform to Solidity 0.6 syntax and add error messages (5/13/20) + * 7. Make public functions external (5/27/20) + */ +contract Pausable is Ownable { + event Pause(); + event Unpause(); + event PauserChanged(address indexed newAddress); + + address public pauser; + bool public paused = false; + + /** + * @dev Modifier to make a function callable only when the contract is not paused. + */ + modifier whenNotPaused() { + require(!paused, "Pausable: paused"); + _; + } + + /** + * @dev throws if called by any account other than the pauser + */ + modifier onlyPauser() { + require(msg.sender == pauser, "Pausable: caller is not the pauser"); + _; + } + + /** + * @dev called by the owner to pause, triggers stopped state + */ + function pause() external onlyPauser { + paused = true; + emit Pause(); + } + + /** + * @dev called by the owner to unpause, returns to normal state + */ + function unpause() external onlyPauser { + paused = false; + emit Unpause(); + } + + /** + * @dev update the pauser role + */ + function updatePauser(address _newPauser) external onlyOwner { + require( + _newPauser != address(0), + "Pausable: new pauser is the zero address" + ); + pauser = _newPauser; + emit PauserChanged(pauser); + } +} + +// contracts/v2/AbstractFiatTokenV2.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +abstract contract AbstractFiatTokenV2 is AbstractFiatTokenV1 { + function _increaseAllowance( + address owner, + address spender, + uint256 increment + ) internal virtual; + + function _decreaseAllowance( + address owner, + address spender, + uint256 decrement + ) internal virtual; +} + +// node_modules/@openzeppelin/contracts/token/ERC20/SafeERC20.sol + +/** + * @title SafeERC20 + * @dev Wrappers around ERC20 operations that throw on failure (when the token + * contract returns false). Tokens that return no value (and instead revert or + * throw on failure) are also supported, non-reverting calls are assumed to be + * successful. + * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, + * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. + */ +library SafeERC20 { + using SafeMath for uint256; + using Address for address; + + function safeTransfer(IERC20 token, address to, uint256 value) internal { + _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); + } + + function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { + _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); + } + + /** + * @dev Deprecated. This function has issues similar to the ones found in + * {IERC20-approve}, and its usage is discouraged. + * + * Whenever possible, use {safeIncreaseAllowance} and + * {safeDecreaseAllowance} instead. + */ + function safeApprove(IERC20 token, address spender, uint256 value) internal { + // safeApprove should only be called when setting an initial allowance, + // or when resetting it to zero. To increase and decrease it, use + // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' + // solhint-disable-next-line max-line-length + require((value == 0) || (token.allowance(address(this), spender) == 0), + "SafeERC20: approve from non-zero to non-zero allowance" + ); + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); + } + + function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { + uint256 newAllowance = token.allowance(address(this), spender).add(value); + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); + } + + function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { + uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); + } + + /** + * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement + * on the return value: the return value is optional (but if data is returned, it must not be false). + * @param token The token targeted by the call. + * @param data The call data (encoded using abi.encode or one of its variants). + */ + function _callOptionalReturn(IERC20 token, bytes memory data) private { + // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since + // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that + // the target address contains contract code and also asserts for success in the low-level call. + + bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); + if (returndata.length > 0) { // Return data is optional + // solhint-disable-next-line max-line-length + require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); + } + } +} + +// contracts/v1.1/Rescuable.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +contract Rescuable is Ownable { + using SafeERC20 for IERC20; + + address private _rescuer; + + event RescuerChanged(address indexed newRescuer); + + /** + * @notice Returns current rescuer + * @return Rescuer's address + */ + function rescuer() external view returns (address) { + return _rescuer; + } + + /** + * @notice Revert if called by any account other than the rescuer. + */ + modifier onlyRescuer() { + require(msg.sender == _rescuer, "Rescuable: caller is not the rescuer"); + _; + } + + /** + * @notice Rescue ERC20 tokens locked up in this contract. + * @param tokenContract ERC20 token contract address + * @param to Recipient address + * @param amount Amount to withdraw + */ + function rescueERC20( + IERC20 tokenContract, + address to, + uint256 amount + ) external onlyRescuer { + tokenContract.safeTransfer(to, amount); + } + + /** + * @notice Assign the rescuer role to a given address. + * @param newRescuer New rescuer's address + */ + function updateRescuer(address newRescuer) external onlyOwner { + require( + newRescuer != address(0), + "Rescuable: new rescuer is the zero address" + ); + _rescuer = newRescuer; + emit RescuerChanged(newRescuer); + } +} + +// contracts/v1/FiatTokenV1.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @title FiatToken + * @dev ERC20 Token backed by fiat reserves + */ +contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { + using SafeMath for uint256; + + string public name; + string public symbol; + uint8 public decimals; + string public currency; + address public masterMinter; + bool internal initialized; + + mapping(address => uint256) internal balances; + mapping(address => mapping(address => uint256)) internal allowed; + uint256 internal totalSupply_ = 0; + mapping(address => bool) internal minters; + mapping(address => uint256) internal minterAllowed; + + event Mint(address indexed minter, address indexed to, uint256 amount); + event Burn(address indexed burner, uint256 amount); + event MinterConfigured(address indexed minter, uint256 minterAllowedAmount); + event MinterRemoved(address indexed oldMinter); + event MasterMinterChanged(address indexed newMasterMinter); + + function initialize( + string memory tokenName, + string memory tokenSymbol, + string memory tokenCurrency, + uint8 tokenDecimals, + address newMasterMinter, + address newPauser, + address newBlacklister, + address newOwner + ) public { + require(!initialized, "FiatToken: contract is already initialized"); + require( + newMasterMinter != address(0), + "FiatToken: new masterMinter is the zero address" + ); + require( + newPauser != address(0), + "FiatToken: new pauser is the zero address" + ); + require( + newBlacklister != address(0), + "FiatToken: new blacklister is the zero address" + ); + require( + newOwner != address(0), + "FiatToken: new owner is the zero address" + ); + + name = tokenName; + symbol = tokenSymbol; + currency = tokenCurrency; + decimals = tokenDecimals; + masterMinter = newMasterMinter; + pauser = newPauser; + blacklister = newBlacklister; + setOwner(newOwner); + initialized = true; + } + + /** + * @dev Throws if called by any account other than a minter + */ + modifier onlyMinters() { + require(minters[msg.sender], "FiatToken: caller is not a minter"); + _; + } + + /** + * @dev Function to mint tokens + * @param _to The address that will receive the minted tokens. + * @param _amount The amount of tokens to mint. Must be less than or equal + * to the minterAllowance of the caller. + * @return A boolean that indicates if the operation was successful. + */ + function mint(address _to, uint256 _amount) + external + whenNotPaused + onlyMinters + notBlacklisted(msg.sender) + notBlacklisted(_to) + returns (bool) + { + require(_to != address(0), "FiatToken: mint to the zero address"); + require(_amount > 0, "FiatToken: mint amount not greater than 0"); + + uint256 mintingAllowedAmount = minterAllowed[msg.sender]; + require( + _amount <= mintingAllowedAmount, + "FiatToken: mint amount exceeds minterAllowance" + ); + + totalSupply_ = totalSupply_.add(_amount); + balances[_to] = balances[_to].add(_amount); + minterAllowed[msg.sender] = mintingAllowedAmount.sub(_amount); + emit Mint(msg.sender, _to, _amount); + emit Transfer(address(0), _to, _amount); + return true; + } + + /** + * @dev Throws if called by any account other than the masterMinter + */ + modifier onlyMasterMinter() { + require( + msg.sender == masterMinter, + "FiatToken: caller is not the masterMinter" + ); + _; + } + + /** + * @dev Get minter allowance for an account + * @param minter The address of the minter + */ + function minterAllowance(address minter) external view returns (uint256) { + return minterAllowed[minter]; + } + + /** + * @dev Checks if account is a minter + * @param account The address to check + */ + function isMinter(address account) external view returns (bool) { + return minters[account]; + } + + /** + * @notice Amount of remaining tokens spender is allowed to transfer on + * behalf of the token owner + * @param owner Token owner's address + * @param spender Spender's address + * @return Allowance amount + */ + function allowance(address owner, address spender) + external + override + view + returns (uint256) + { + return allowed[owner][spender]; + } + + /** + * @dev Get totalSupply of token + */ + function totalSupply() external override view returns (uint256) { + return totalSupply_; + } + + /** + * @dev Get token balance of an account + * @param account address The account + */ + function balanceOf(address account) + external + override + view + returns (uint256) + { + return balances[account]; + } + + /** + * @notice Set spender's allowance over the caller's tokens to be a given + * value. + * @param spender Spender's address + * @param value Allowance amount + * @return True if successful + */ + function approve(address spender, uint256 value) + external + override + whenNotPaused + notBlacklisted(msg.sender) + notBlacklisted(spender) + returns (bool) + { + _approve(msg.sender, spender, value); + return true; + } + + /** + * @dev Internal function to set allowance + * @param owner Token owner's address + * @param spender Spender's address + * @param value Allowance amount + */ + function _approve( + address owner, + address spender, + uint256 value + ) internal override { + require(owner != address(0), "ERC20: approve from the zero address"); + require(spender != address(0), "ERC20: approve to the zero address"); + allowed[owner][spender] = value; + emit Approval(owner, spender, value); + } + + /** + * @notice Transfer tokens by spending allowance + * @param from Payer's address + * @param to Payee's address + * @param value Transfer amount + * @return True if successful + */ + function transferFrom( + address from, + address to, + uint256 value + ) + external + override + whenNotPaused + notBlacklisted(msg.sender) + notBlacklisted(from) + notBlacklisted(to) + returns (bool) + { + require( + value <= allowed[from][msg.sender], + "ERC20: transfer amount exceeds allowance" + ); + _transfer(from, to, value); + allowed[from][msg.sender] = allowed[from][msg.sender].sub(value); + return true; + } + + /** + * @notice Transfer tokens from the caller + * @param to Payee's address + * @param value Transfer amount + * @return True if successful + */ + function transfer(address to, uint256 value) + external + override + whenNotPaused + notBlacklisted(msg.sender) + notBlacklisted(to) + returns (bool) + { + _transfer(msg.sender, to, value); + return true; + } + + /** + * @notice Internal function to process transfers + * @param from Payer's address + * @param to Payee's address + * @param value Transfer amount + */ + function _transfer( + address from, + address to, + uint256 value + ) internal override { + require(from != address(0), "ERC20: transfer from the zero address"); + require(to != address(0), "ERC20: transfer to the zero address"); + require( + value <= balances[from], + "ERC20: transfer amount exceeds balance" + ); + + balances[from] = balances[from].sub(value); + balances[to] = balances[to].add(value); + emit Transfer(from, to, value); + } + + /** + * @dev Function to add/update a new minter + * @param minter The address of the minter + * @param minterAllowedAmount The minting amount allowed for the minter + * @return True if the operation was successful. + */ + function configureMinter(address minter, uint256 minterAllowedAmount) + external + whenNotPaused + onlyMasterMinter + returns (bool) + { + minters[minter] = true; + minterAllowed[minter] = minterAllowedAmount; + emit MinterConfigured(minter, minterAllowedAmount); + return true; + } + + /** + * @dev Function to remove a minter + * @param minter The address of the minter to remove + * @return True if the operation was successful. + */ + function removeMinter(address minter) + external + onlyMasterMinter + returns (bool) + { + minters[minter] = false; + minterAllowed[minter] = 0; + emit MinterRemoved(minter); + return true; + } + + /** + * @dev allows a minter to burn some of its own tokens + * Validates that caller is a minter and that sender is not blacklisted + * amount is less than or equal to the minter's account balance + * @param _amount uint256 the amount of tokens to be burned + */ + function burn(uint256 _amount) + external + whenNotPaused + onlyMinters + notBlacklisted(msg.sender) + { + uint256 balance = balances[msg.sender]; + require(_amount > 0, "FiatToken: burn amount not greater than 0"); + require(balance >= _amount, "FiatToken: burn amount exceeds balance"); + + totalSupply_ = totalSupply_.sub(_amount); + balances[msg.sender] = balance.sub(_amount); + emit Burn(msg.sender, _amount); + emit Transfer(msg.sender, address(0), _amount); + } + + function updateMasterMinter(address _newMasterMinter) external onlyOwner { + require( + _newMasterMinter != address(0), + "FiatToken: new masterMinter is the zero address" + ); + masterMinter = _newMasterMinter; + emit MasterMinterChanged(masterMinter); + } +} + +// contracts/v2/EIP2612.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @title EIP-2612 + * @notice Provide internal implementation for gas-abstracted approvals + */ +abstract contract EIP2612 is AbstractFiatTokenV2, EIP712Domain { + // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)") + bytes32 + public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; + + mapping(address => uint256) private _permitNonces; + + /** + * @notice Nonces for permit + * @param owner Token owner's address (Authorizer) + * @return Next nonce + */ + function nonces(address owner) external view returns (uint256) { + return _permitNonces[owner]; + } + + /** + * @notice Verify a signed approval permit and execute if valid + * @param owner Token owner's address (Authorizer) + * @param spender Spender's address + * @param value Amount of allowance + * @param deadline The time at which this expires (unix time) + * @param v v of the signature + * @param r r of the signature + * @param s s of the signature + */ + function _permit( + address owner, + address spender, + uint256 value, + uint256 deadline, + uint8 v, + bytes32 r, + bytes32 s + ) internal { + require(deadline >= now, "FiatTokenV2: permit is expired"); + + bytes memory data = abi.encode( + PERMIT_TYPEHASH, + owner, + spender, + value, + _permitNonces[owner]++, + deadline + ); + require( + EIP712.recover(DOMAIN_SEPARATOR, v, r, s, data) == owner, + "EIP2612: invalid signature" + ); + + _approve(owner, spender, value); + } +} + +// contracts/v2/EIP3009.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @title EIP-3009 + * @notice Provide internal implementation for gas-abstracted transfers + * @dev Contracts that inherit from this must wrap these with publicly + * accessible functions, optionally adding modifiers where necessary + */ +abstract contract EIP3009 is AbstractFiatTokenV2, EIP712Domain { + // keccak256("TransferWithAuthorization(address from,address to,uint256 value,uint256 validAfter,uint256 validBefore,bytes32 nonce)") + bytes32 + public constant TRANSFER_WITH_AUTHORIZATION_TYPEHASH = 0x7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267; + + // keccak256("ReceiveWithAuthorization(address from,address to,uint256 value,uint256 validAfter,uint256 validBefore,bytes32 nonce)") + bytes32 + public constant RECEIVE_WITH_AUTHORIZATION_TYPEHASH = 0xd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de8; + + // keccak256("CancelAuthorization(address authorizer,bytes32 nonce)") + bytes32 + public constant CANCEL_AUTHORIZATION_TYPEHASH = 0x158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a1597429; + + /** + * @dev authorizer address => nonce => bool (true if nonce is used) + */ + mapping(address => mapping(bytes32 => bool)) private _authorizationStates; + + event AuthorizationUsed(address indexed authorizer, bytes32 indexed nonce); + event AuthorizationCanceled( + address indexed authorizer, + bytes32 indexed nonce + ); + + /** + * @notice Returns the state of an authorization + * @dev Nonces are randomly generated 32-byte data unique to the + * authorizer's address + * @param authorizer Authorizer's address + * @param nonce Nonce of the authorization + * @return True if the nonce is used + */ + function authorizationState(address authorizer, bytes32 nonce) + external + view + returns (bool) + { + return _authorizationStates[authorizer][nonce]; + } + + /** + * @notice Execute a transfer with a signed authorization + * @param from Payer's address (Authorizer) + * @param to Payee's address + * @param value Amount to be transferred + * @param validAfter The time after which this is valid (unix time) + * @param validBefore The time before which this is valid (unix time) + * @param nonce Unique nonce + * @param v v of the signature + * @param r r of the signature + * @param s s of the signature + */ + function _transferWithAuthorization( + address from, + address to, + uint256 value, + uint256 validAfter, + uint256 validBefore, + bytes32 nonce, + uint8 v, + bytes32 r, + bytes32 s + ) internal { + _requireValidAuthorization(from, nonce, validAfter, validBefore); + + bytes memory data = abi.encode( + TRANSFER_WITH_AUTHORIZATION_TYPEHASH, + from, + to, + value, + validAfter, + validBefore, + nonce + ); + require( + EIP712.recover(DOMAIN_SEPARATOR, v, r, s, data) == from, + "FiatTokenV2: invalid signature" + ); + + _markAuthorizationAsUsed(from, nonce); + _transfer(from, to, value); + } + + /** + * @notice Receive a transfer with a signed authorization from the payer + * @dev This has an additional check to ensure that the payee's address + * matches the caller of this function to prevent front-running attacks. + * @param from Payer's address (Authorizer) + * @param to Payee's address + * @param value Amount to be transferred + * @param validAfter The time after which this is valid (unix time) + * @param validBefore The time before which this is valid (unix time) + * @param nonce Unique nonce + * @param v v of the signature + * @param r r of the signature + * @param s s of the signature + */ + function _receiveWithAuthorization( + address from, + address to, + uint256 value, + uint256 validAfter, + uint256 validBefore, + bytes32 nonce, + uint8 v, + bytes32 r, + bytes32 s + ) internal { + require(to == msg.sender, "FiatTokenV2: caller must be the payee"); + _requireValidAuthorization(from, nonce, validAfter, validBefore); + + bytes memory data = abi.encode( + RECEIVE_WITH_AUTHORIZATION_TYPEHASH, + from, + to, + value, + validAfter, + validBefore, + nonce + ); + require( + EIP712.recover(DOMAIN_SEPARATOR, v, r, s, data) == from, + "FiatTokenV2: invalid signature" + ); + + _markAuthorizationAsUsed(from, nonce); + _transfer(from, to, value); + } + + /** + * @notice Attempt to cancel an authorization + * @param authorizer Authorizer's address + * @param nonce Nonce of the authorization + * @param v v of the signature + * @param r r of the signature + * @param s s of the signature + */ + function _cancelAuthorization( + address authorizer, + bytes32 nonce, + uint8 v, + bytes32 r, + bytes32 s + ) internal { + _requireUnusedAuthorization(authorizer, nonce); + + bytes memory data = abi.encode( + CANCEL_AUTHORIZATION_TYPEHASH, + authorizer, + nonce + ); + require( + EIP712.recover(DOMAIN_SEPARATOR, v, r, s, data) == authorizer, + "FiatTokenV2: invalid signature" + ); + + _authorizationStates[authorizer][nonce] = true; + emit AuthorizationCanceled(authorizer, nonce); + } + + /** + * @notice Check that an authorization is unused + * @param authorizer Authorizer's address + * @param nonce Nonce of the authorization + */ + function _requireUnusedAuthorization(address authorizer, bytes32 nonce) + private + view + { + require( + !_authorizationStates[authorizer][nonce], + "FiatTokenV2: authorization is used or canceled" + ); + } + + /** + * @notice Check that authorization is valid + * @param authorizer Authorizer's address + * @param nonce Nonce of the authorization + * @param validAfter The time after which this is valid (unix time) + * @param validBefore The time before which this is valid (unix time) + */ + function _requireValidAuthorization( + address authorizer, + bytes32 nonce, + uint256 validAfter, + uint256 validBefore + ) private view { + require( + now > validAfter, + "FiatTokenV2: authorization is not yet valid" + ); + require(now < validBefore, "FiatTokenV2: authorization is expired"); + _requireUnusedAuthorization(authorizer, nonce); + } + + /** + * @notice Mark an authorization as used + * @param authorizer Authorizer's address + * @param nonce Nonce of the authorization + */ + function _markAuthorizationAsUsed(address authorizer, bytes32 nonce) + private + { + _authorizationStates[authorizer][nonce] = true; + emit AuthorizationUsed(authorizer, nonce); + } +} + +// contracts/v1.1/FiatTokenV1_1.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @title FiatTokenV1_1 + * @dev ERC20 Token backed by fiat reserves + */ +contract FiatTokenV1_1 is FiatTokenV1, Rescuable { + +} + +// contracts/v2/FiatTokenV2.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @title FiatToken V2 + * @notice ERC20 Token backed by fiat reserves, version 2 + */ +contract FiatTokenV2 is FiatTokenV1_1, EIP3009, EIP2612 { + uint8 internal _initializedVersion; + + /** + * @notice Initialize v2 + * @param newName New token name + */ + function initializeV2(string calldata newName) external { + // solhint-disable-next-line reason-string + require(initialized && _initializedVersion == 0); + name = newName; + DOMAIN_SEPARATOR = EIP712.makeDomainSeparator(newName, "2"); + _initializedVersion = 1; + } + + /** + * @notice Increase the allowance by a given increment + * @param spender Spender's address + * @param increment Amount of increase in allowance + * @return True if successful + */ + function increaseAllowance(address spender, uint256 increment) + external + whenNotPaused + notBlacklisted(msg.sender) + notBlacklisted(spender) + returns (bool) + { + _increaseAllowance(msg.sender, spender, increment); + return true; + } + + /** + * @notice Decrease the allowance by a given decrement + * @param spender Spender's address + * @param decrement Amount of decrease in allowance + * @return True if successful + */ + function decreaseAllowance(address spender, uint256 decrement) + external + whenNotPaused + notBlacklisted(msg.sender) + notBlacklisted(spender) + returns (bool) + { + _decreaseAllowance(msg.sender, spender, decrement); + return true; + } + + /** + * @notice Execute a transfer with a signed authorization + * @param from Payer's address (Authorizer) + * @param to Payee's address + * @param value Amount to be transferred + * @param validAfter The time after which this is valid (unix time) + * @param validBefore The time before which this is valid (unix time) + * @param nonce Unique nonce + * @param v v of the signature + * @param r r of the signature + * @param s s of the signature + */ + function transferWithAuthorization( + address from, + address to, + uint256 value, + uint256 validAfter, + uint256 validBefore, + bytes32 nonce, + uint8 v, + bytes32 r, + bytes32 s + ) external whenNotPaused notBlacklisted(from) notBlacklisted(to) { + _transferWithAuthorization( + from, + to, + value, + validAfter, + validBefore, + nonce, + v, + r, + s + ); + } + + /** + * @notice Receive a transfer with a signed authorization from the payer + * @dev This has an additional check to ensure that the payee's address + * matches the caller of this function to prevent front-running attacks. + * @param from Payer's address (Authorizer) + * @param to Payee's address + * @param value Amount to be transferred + * @param validAfter The time after which this is valid (unix time) + * @param validBefore The time before which this is valid (unix time) + * @param nonce Unique nonce + * @param v v of the signature + * @param r r of the signature + * @param s s of the signature + */ + function receiveWithAuthorization( + address from, + address to, + uint256 value, + uint256 validAfter, + uint256 validBefore, + bytes32 nonce, + uint8 v, + bytes32 r, + bytes32 s + ) external whenNotPaused notBlacklisted(from) notBlacklisted(to) { + _receiveWithAuthorization( + from, + to, + value, + validAfter, + validBefore, + nonce, + v, + r, + s + ); + } + + /** + * @notice Attempt to cancel an authorization + * @dev Works only if the authorization is not yet used. + * @param authorizer Authorizer's address + * @param nonce Nonce of the authorization + * @param v v of the signature + * @param r r of the signature + * @param s s of the signature + */ + function cancelAuthorization( + address authorizer, + bytes32 nonce, + uint8 v, + bytes32 r, + bytes32 s + ) external whenNotPaused { + _cancelAuthorization(authorizer, nonce, v, r, s); + } + + /** + * @notice Update allowance with a signed permit + * @param owner Token owner's address (Authorizer) + * @param spender Spender's address + * @param value Amount of allowance + * @param deadline Expiration time, seconds since the epoch + * @param v v of the signature + * @param r r of the signature + * @param s s of the signature + */ + function permit( + address owner, + address spender, + uint256 value, + uint256 deadline, + uint8 v, + bytes32 r, + bytes32 s + ) external whenNotPaused notBlacklisted(owner) notBlacklisted(spender) { + _permit(owner, spender, value, deadline, v, r, s); + } + + /** + * @notice Internal function to increase the allowance by a given increment + * @param owner Token owner's address + * @param spender Spender's address + * @param increment Amount of increase + */ + function _increaseAllowance( + address owner, + address spender, + uint256 increment + ) internal override { + _approve(owner, spender, allowed[owner][spender].add(increment)); + } + + /** + * @notice Internal function to decrease the allowance by a given decrement + * @param owner Token owner's address + * @param spender Spender's address + * @param decrement Amount of decrease + */ + function _decreaseAllowance( + address owner, + address spender, + uint256 decrement + ) internal override { + _approve( + owner, + spender, + allowed[owner][spender].sub( + decrement, + "ERC20: decreased allowance below zero" + ) + ); + } +} + +// contracts/v2/FiatTokenV2_1.sol +/** + + * + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// solhint-disable func-name-mixedcase + +/** + * @title FiatToken V2.1 + * @notice ERC20 Token backed by fiat reserves, version 2.1 + */ +contract FiatTokenV2_1 is FiatTokenV2 { + /** + * @notice Initialize v2.1 + * @param lostAndFound The address to which the locked funds are sent + */ + function initializeV2_1(address lostAndFound) external { + // solhint-disable-next-line reason-string + require(_initializedVersion == 1); + + uint256 lockedAmount = balances[address(this)]; + if (lockedAmount > 0) { + _transfer(address(this), lostAndFound, lockedAmount); + } + blacklisted[address(this)] = true; + + _initializedVersion = 2; + } + + /** + * @notice Version string for the EIP712 domain separator + * @return Version string + */ + function version() external view returns (string memory) { + return "2"; + } +} From 4ebd6a3226c0bc45ecbe7bb0060ed065afe8fec9 Mon Sep 17 00:00:00 2001 From: kukoo Date: Fri, 1 Nov 2024 12:57:44 +0800 Subject: [PATCH 010/106] Bump contract version to 0.1.0 (#615) --- contracts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/package.json b/contracts/package.json index 51e761e7c..e85fd3f36 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -1,6 +1,6 @@ { "name": "@morph-l2/contracts", - "version": "0.0.9", + "version": "0.1.0", "main": "dist/index", "types": "dist/index", "license": "MIT", From bace8d10850985dcf15df7480a465e393a786523 Mon Sep 17 00:00:00 2001 From: vincent Date: Fri, 1 Nov 2024 12:57:55 +0800 Subject: [PATCH 011/106] Update bindings (#623) --- ...multipleversionrollupverifier_deployed.hex | 2 +- bindings/bin/rollup_deployed.hex | 2 +- .../bindings/multipleversionrollupverifier.go | 4 +-- .../multipleversionrollupverifier_more.go | 2 +- bindings/bindings/rollup.go | 35 +++++++++++++++++-- bindings/bindings/rollup_more.go | 4 +-- 6 files changed, 40 insertions(+), 9 deletions(-) diff --git a/bindings/bin/multipleversionrollupverifier_deployed.hex b/bindings/bin/multipleversionrollupverifier_deployed.hex index e0f157cb2..d88143540 100644 --- a/bindings/bin/multipleversionrollupverifier_deployed.hex +++ b/bindings/bin/multipleversionrollupverifier_deployed.hex @@ -1 +1 @@ -0x608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063955123061161007d578063c7065b6a11610058578063c7065b6a146101da578063cb23bcb514610227578063f2fde38b14610247575f80fd5b8063955123061461016c578063bd98b2b01461017f578063c4d66de8146101c7575f80fd5b80635027ad2e116100ad5780635027ad2e1461011a578063715018a6146101475780638da5cb5b1461014f575f80fd5b806328aee03f146100c85780632c09a84814610105575b5f80fd5b6100db6100d6366004610a50565b61025a565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610118610113366004610a70565b610397565b005b610139610128366004610af0565b5f9081526002602052604090205490565b6040519081526020016100fc565b61011861042f565b5f5473ffffffffffffffffffffffffffffffffffffffff166100db565b61011861017a366004610b2f565b610442565b61019261018d366004610a50565b610779565b6040805167ffffffffffffffff909316835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016100fc565b6101186101d5366004610b76565b6107d1565b6101926101e8366004610af0565b60036020525f908152604090205467ffffffffffffffff81169068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1682565b6001546100db9073ffffffffffffffffffffffffffffffffffffffff1681565b610118610255366004610b76565b6108a5565b5f82815260036020908152604080832081518083019092525467ffffffffffffffff81168083526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff16928201929092529083101561038c575f84815260026020526040902054805b8015610389575f86815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830190811061030a5761030a610b96565b5f9182526020918290206040805180820190915291015467ffffffffffffffff81168083526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff16928201929092529350851015610389577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016102c3565b50505b602001519392505050565b5f6103a2868661025a565b6040517fc8bd017600000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff82169063c8bd0176906103fb90879087908790600401610bc3565b5f6040518083038186803b158015610411575f80fd5b505afa158015610423573d5f803e3d5ffd5b50505050505050505050565b61043761095c565b6104405f6109dc565b565b61044a61095c565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663059def616040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d89190610c18565b8267ffffffffffffffff161161051a576040517f9a4ff10400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8381526003602090815260409182902082518084019093525467ffffffffffffffff8082168085526801000000000000000090920473ffffffffffffffffffffffffffffffffffffffff169284019290925290841610156105a8576040517fb0d8c70400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166105f5576040517fa7f9319d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805167ffffffffffffffff808516911610156106ba57602081015173ffffffffffffffffffffffffffffffffffffffff16156106ac575f84815260026020908152604082208054600181018255908352918190208351920180549184015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921667ffffffffffffffff909316929092171790555b67ffffffffffffffff831681525b73ffffffffffffffffffffffffffffffffffffffff82811660208381018281525f8881526003835260409081902086518154935190961668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931667ffffffffffffffff96871617929092179091558051888152938716918401919091528201527f7a98750a395b9ee50a2644ffda039e31f1d5d06de45510275f972bb20b229b309060600160405180910390a150505050565b6002602052815f5260405f208181548110610792575f80fd5b5f9182526020909120015467ffffffffffffffff8116925068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16905082565b6107d961095c565b60015473ffffffffffffffffffffffffffffffffffffffff161561085e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f696e697469616c697a656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108ad61095c565b73ffffffffffffffffffffffffffffffffffffffff8116610950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610855565b610959816109dc565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610855565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8060408385031215610a61575f80fd5b50508035926020909101359150565b5f805f805f60808688031215610a84575f80fd5b8535945060208601359350604086013567ffffffffffffffff80821115610aa9575f80fd5b818801915088601f830112610abc575f80fd5b813581811115610aca575f80fd5b896020828501011115610adb575f80fd5b96999598505060200195606001359392505050565b5f60208284031215610b00575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b2a575f80fd5b919050565b5f805f60608486031215610b41575f80fd5b83359250602084013567ffffffffffffffff81168114610b5f575f80fd5b9150610b6d60408501610b07565b90509250925092565b5f60208284031215610b86575f80fd5b610b8f82610b07565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60408152826040820152828460608301375f606084830101525f60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601168301019050826020830152949350505050565b5f60208284031215610c28575f80fd5b505191905056fea164736f6c6343000818000a +0x608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063955123061161007d578063c7065b6a11610058578063c7065b6a146101da578063cb23bcb514610227578063f2fde38b14610247575f80fd5b8063955123061461016c578063bd98b2b01461017f578063c4d66de8146101c7575f80fd5b80635027ad2e116100ad5780635027ad2e1461011a578063715018a6146101475780638da5cb5b1461014f575f80fd5b806328aee03f146100c85780632c09a84814610105575b5f80fd5b6100db6100d6366004610a90565b61025a565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610118610113366004610ab0565b6103d7565b005b610139610128366004610b30565b5f9081526002602052604090205490565b6040519081526020016100fc565b61011861046f565b5f5473ffffffffffffffffffffffffffffffffffffffff166100db565b61011861017a366004610b6f565b610482565b61019261018d366004610a90565b6107b9565b6040805167ffffffffffffffff909316835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016100fc565b6101186101d5366004610bb6565b610811565b6101926101e8366004610b30565b60036020525f908152604090205467ffffffffffffffff81169068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1682565b6001546100db9073ffffffffffffffffffffffffffffffffffffffff1681565b610118610255366004610bb6565b6108e5565b5f82815260036020908152604080832081518083019092525467ffffffffffffffff81168083526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff1692820192909252908310156103cc575f84815260026020526040812054805b8015610391575f87815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830190811061030a5761030a610bd6565b5f9182526020918290206040805180820190915291015467ffffffffffffffff81168083526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff16928201929092529450861061036a5760019250610391565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016102c3565b50816103c9576040517f70f6c8ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b602001519392505050565b5f6103e2868661025a565b6040517fc8bd017600000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff82169063c8bd01769061043b90879087908790600401610c03565b5f6040518083038186803b158015610451575f80fd5b505afa158015610463573d5f803e3d5ffd5b50505050505050505050565b61047761099c565b6104805f610a1c565b565b61048a61099c565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663059def616040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105189190610c58565b8267ffffffffffffffff161161055a576040517f9a4ff10400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8381526003602090815260409182902082518084019093525467ffffffffffffffff8082168085526801000000000000000090920473ffffffffffffffffffffffffffffffffffffffff169284019290925290841610156105e8576040517fb0d8c70400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610635576040517fa7f9319d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805167ffffffffffffffff808516911610156106fa57602081015173ffffffffffffffffffffffffffffffffffffffff16156106ec575f84815260026020908152604082208054600181018255908352918190208351920180549184015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921667ffffffffffffffff909316929092171790555b67ffffffffffffffff831681525b73ffffffffffffffffffffffffffffffffffffffff82811660208381018281525f8881526003835260409081902086518154935190961668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931667ffffffffffffffff96871617929092179091558051888152938716918401919091528201527f7a98750a395b9ee50a2644ffda039e31f1d5d06de45510275f972bb20b229b309060600160405180910390a150505050565b6002602052815f5260405f2081815481106107d2575f80fd5b5f9182526020909120015467ffffffffffffffff8116925068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16905082565b61081961099c565b60015473ffffffffffffffffffffffffffffffffffffffff161561089e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f696e697469616c697a656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108ed61099c565b73ffffffffffffffffffffffffffffffffffffffff8116610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610895565b61099981610a1c565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610895565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8060408385031215610aa1575f80fd5b50508035926020909101359150565b5f805f805f60808688031215610ac4575f80fd5b8535945060208601359350604086013567ffffffffffffffff80821115610ae9575f80fd5b818801915088601f830112610afc575f80fd5b813581811115610b0a575f80fd5b896020828501011115610b1b575f80fd5b96999598505060200195606001359392505050565b5f60208284031215610b40575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b6a575f80fd5b919050565b5f805f60608486031215610b81575f80fd5b83359250602084013567ffffffffffffffff81168114610b9f575f80fd5b9150610bad60408501610b47565b90509250925092565b5f60208284031215610bc6575f80fd5b610bcf82610b47565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60408152826040820152828460608301375f606084830101525f60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601168301019050826020830152949350505050565b5f60208284031215610c68575f80fd5b505191905056fea164736f6c6343000818000a diff --git a/bindings/bin/rollup_deployed.hex b/bindings/bin/rollup_deployed.hex index aee01dec0..24f594bc7 100644 --- a/bindings/bin/rollup_deployed.hex +++ b/bindings/bin/rollup_deployed.hex @@ -1 +1 @@ -0x6080604052600436106102f0575f3560e01c80638da5cb5b11610186578063b3e0a509116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610951578063f2fde38b14610970578063fb1e8b041461098f575f80fd5b8063ddd8a3dc146108fe578063de8b30351461091d578063dff7827e1461093c575f80fd5b8063ce5db8d6116100b7578063ce5db8d6146108b7578063d279c191146108cc578063d63b3549146108eb575f80fd5b8063b3e0a50914610866578063bedb86fb14610885578063cd4edc69146108a4575f80fd5b8063a479265d1161013c578063b31a77d311610117578063b31a77d314610813578063b348442514610828578063b35dac4e14610847575f80fd5b8063a479265d146107b4578063a4f209b0146107c9578063abc8d68d146107e8575f80fd5b8063910129d41161016c578063910129d41461073657806397fc007c14610767578063a415d8dc14610786575f80fd5b80638da5cb5b146106695780638f1d377614610686575f80fd5b80632571098d116102465780635ef7a94a116101f1578063715018a6116101cc578063715018a61461061d578063728cdbca1461063157806388b1ea0914610650575f80fd5b80635ef7a94a146105525780635f77cf1d146105b25780636c578c1d146105fe575f80fd5b80633e001b66116102215780633e001b661461050757806357e0af6c1461051c5780635c975abb1461053b575f80fd5b80632571098d146104865780632b7ac3f3146104b15780633b70c18a146104e8575f80fd5b8063121dcd50116102a657806318af3b2b1161028157806318af3b2b1461040c57806321e2f9e01461043c5780632362f03e1461045b575f80fd5b8063121dcd50146103c357806313361101146103d857806318463fb0146103f7575f80fd5b80630ceb6780116102d65780630ceb67801461036157806310d4458314610382578063116a1f42146103a1575f80fd5b806304d77215146102fb578063059def611461033e575f80fd5b366102f757005b5f80fd5b348015610306575f80fd5b50610329610315366004613f76565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610349575f80fd5b50610353609d5481565b604051908152602001610335565b34801561036c575f80fd5b5061038061037b366004613fa8565b6109a4565b005b34801561038d575f80fd5b5061038061039c366004614006565b610a76565b3480156103ac575f80fd5b506103296103bb366004613f76565b609d54101590565b3480156103ce575f80fd5b50610353609e5481565b3480156103e3575f80fd5b506103806103f236600461404e565b610dcf565b348015610402575f80fd5b5061035360a75481565b348015610417575f80fd5b50610329610426366004613f76565b5f90815260a26020526040902060010154421090565b348015610447575f80fd5b50610329610456366004613f76565b6112a4565b348015610466575f80fd5b50610353610475366004613f76565b60a16020525f908152604090205481565b348015610491575f80fd5b506103536104a0366004613f76565b60a06020525f908152604090205481565b3480156104bc575f80fd5b50609c546104d0906001600160a01b031681565b6040516001600160a01b039091168152602001610335565b3480156104f3575f80fd5b50609b546104d0906001600160a01b031681565b348015610512575f80fd5b5061035360aa5481565b348015610527575f80fd5b50610380610536366004613f76565b6112d2565b348015610546575f80fd5b5060655460ff16610329565b34801561055d575f80fd5b5061059261056c366004613f76565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610335565b3480156105bd575f80fd5b506105e57f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610335565b348015610609575f80fd5b50610380610618366004613fa8565b61137d565b348015610628575f80fd5b5061038061143a565b34801561063c575f80fd5b5061038061064b36600461408d565b61144d565b34801561065b575f80fd5b5060a6546103299060ff1681565b348015610674575f80fd5b506033546001600160a01b03166104d0565b348015610691575f80fd5b506106f26106a0366004613f76565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c001610335565b348015610741575f80fd5b50610329610750366004613f76565b5f90815260a4602052604090206003015460ff1690565b348015610772575f80fd5b50610380610781366004613fa8565b611790565b348015610791575f80fd5b506103296107a0366004613fa8565b609f6020525f908152604090205460ff1681565b3480156107bf575f80fd5b5061035360995481565b3480156107d4575f80fd5b506103806107e3366004613f76565b611873565b3480156107f3575f80fd5b50610353610802366004613fa8565b60a56020525f908152604090205481565b34801561081e575f80fd5b5061035360a85481565b348015610833575f80fd5b506103806108423660046140e8565b611923565b348015610852575f80fd5b50610380610861366004613fa8565b611b68565b348015610871575f80fd5b5061038061088036600461404e565b611bc1565b348015610890575f80fd5b5061038061089f36600461415c565b611eb9565b6103806108b2366004614177565b612014565b3480156108c2575f80fd5b5061035360985481565b3480156108d7575f80fd5b506103806108e6366004613fa8565b6125e0565b6103806108f93660046141ad565b61269f565b348015610909575f80fd5b506097546104d0906001600160a01b031681565b348015610928575f80fd5b50610329610937366004613f76565b612f59565b348015610947575f80fd5b50610353609a5481565b34801561095c575f80fd5b5061038061096b366004613f76565b612fa3565b34801561097b575f80fd5b5061038061098a366004613fa8565b613046565b34801561099a575f80fd5b5061035360a95481565b6109ac6130d3565b6001600160a01b0381165f908152609f602052604090205460ff1615610a195760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610a7e6130d3565b5f8111610acd5760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a10565b5f80610ad9858561312d565b915091505f610aec836001015160c01c90565b5f81815260a160205260409020549091508214610b4b5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a10565b5f60a181610b598785614247565b81526020019081526020015f205414610bd95760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a10565b609d548111610c505760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a10565b610c5b60018261425a565b609e555b8315610dc757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610ca781612f59565b15610d02575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610cf2908490614247565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610d7f575060a85481145b15610d89575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610c5f575b505050505050565b60a85415610e1f5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a10565b610e27613148565b5f80610e33848461312d565b915091505f610e46836001015160c01c90565b5f81815260a160205260409020549091508214610ea55760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a10565b610eae816112a4565b610efa5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a10565b610f0381612f59565b15610f505760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a10565b5f81815260a4602052604090206003015460ff1615610fb15760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a10565b5f81815260a260205260409020600101544210156110115760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a10565b605983015160a05f61102460018561425a565b81526020019081526020015f20541461107f5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a10565b5f81815260a06020526040902054156110da5760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a10565b80609d546001011461112e5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a10565b609d819055600160a35f611143866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a0602052604090205561119060f98401601185015160c01c600986015160c01c61319b565b60a25f61119e60018461425a565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560a491906111d7908461425a565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611280866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a26020526040812054158015906112cc57505f82815260a1602052604090205415155b92915050565b6112da6130d3565b5f811180156112eb57506099548114155b6113375760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a10565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b6113856130d3565b6001600160a01b0381165f908152609f602052604090205460ff166113ec5760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a10565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610a6b565b6114426130d3565b61144b5f613264565b565b5f54610100900460ff161580801561146b57505f54600160ff909116105b806114845750303b15801561148457505f5460ff166001145b6114f65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a10565b5f805460ff191660011790558015611534575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038616158061155157506001600160a01b038516155b15611588576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166115de5760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a10565b6115e66132cd565b6115ee613351565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015611787575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6117986130d3565b6001600160a01b038116158015906117be5750609c546001600160a01b03828116911614155b61180a5760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a10565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b61187b6130d3565b5f8111801561188b575060648111155b8015611899575060a9548114155b6118e55760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a10565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611371565b60a854156119735760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a10565b61197b613148565b5f80611987868661312d565b915091505f61199a836001015160c01c90565b5f81815260a1602052604090205490915082146119f95760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a10565b611a0281612f59565b611a4e5760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a10565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff191690556099546002909101544291611aa791614247565b11611b1d575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152611b18918391906133d5565b611787565b611b28838686613531565b61178781336040518060400160405280600d81526020017f50726f6f662073756363657373000000000000000000000000000000000000008152506136e4565b611b706130d3565b60aa80545f909155611b8282826137b0565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611371565b611bc96130d3565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415611c405760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a10565b5f80611c4c848461312d565b915091505f611c5f836001015160c01c90565b90505f611c6d846079015190565b905080611cbc5760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a10565b600984015160c01c15611d115760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a10565b5f611d1d856019015190565b03611d6a5760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a10565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014611d96856039015190565b14611de35760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a10565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b611ec16130d3565b8015611fe257611ecf61385b565b60a65460ff1615611fa15760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091611f23908490614247565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b611fea6138b5565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611fc4565b50565b335f908152609f602052604090205460ff166120725760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a10565b60a854156120c25760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a10565b6120ca613148565b60a65460ff161561211d5760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a10565b8167ffffffffffffffff16609d54106121785760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a10565b67ffffffffffffffff82165f90815260a1602052604090205481146121df5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a10565b6121f28267ffffffffffffffff166112a4565b61223e5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a10565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b0316156122b95760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a10565b67ffffffffffffffff82165f90815260a2602052604090206001015442106123495760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a10565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612399573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123bd919061426d565b34101561240c5760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a10565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b99763460405161255e91815260200190565b60405180910390a35f609d5460016125769190614247565b90505b609e5481116125ce578267ffffffffffffffff1681146125bc576099545f82815260a26020526040812060010180549091906125b6908490614247565b90915550505b806125c681614284565b915050612579565b505060a6805460ff1916600117905550565b335f90815260a560205260408120549081900361263f5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a10565b335f90815260a5602052604081205561265882826137b0565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a8260405161269391815260200190565b60405180910390a25050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561270b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272f91906142bb565b61277b5760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a10565b60a854156127cb5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a10565b6127d3613148565b6127e060208301836142d6565b60ff16156128305760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a10565b5f61283e60408401846142f6565b9150508061288e5760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a10565b60808301356128df5760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a10565b60a08301356129305760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a10565b5f8061294761294260208701876142f6565b61312d565b915091505f61295a836001015160c01c90565b5f81815260a1602052604090205490915082146129b95760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a10565b5f60a1816129c8846001614247565b81526020019081526020015f205414612a235760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a10565b609e548114612a745760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a10565b5f612a83846011015160c01c90565b90505f8080612ae2612a9860408c018c6142f6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150612add905060608f018f6142f6565b6138ee565b948501949384019392509050612afb60608b018b6142f6565b905061010060ff85010460200214612b555760405162461bcd60e51b815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a10565b600194909401935f804915612b6b575f49612b8d565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b90505f612b9d60608d018d6142f6565b612ba9915060f9614247565b90506040519850602081028901604052612bd7898d5f016020810190612bcf91906142d6565b60ff16613a6f565b60c087811b60018b015285811b60098b015286811b60118b015260198a0184905260808d013560598b015260a08d013560798b01528c013560998a0152612c4489612c2560208e018e6142f6565b604051612c33929190614357565b604051809103902060b99190910152565b60d98901889052612c6189612c5c60608f018f6142f6565b613a76565b603989018290528089205f88815260a1602052604081209190915560a65460ff1615612cb65760a7545f90815260a460205260409020600201546099544291612ca991614247565b612cb3919061425a565b90505b60405180608001604052804281526020018260985442612cd69190614247565b612ce09190614247565b8152602001612d318f8060400190612cf891906142f6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613a8292505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015612da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dc9919061426d565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590612e3190612e2b908f018f6142f6565b5f613ad9565b5f8e8060400190612e4291906142f6565b6040518663ffffffff1660e01b8152600401612e629594939291906143ad565b602060405180830381865afa158015612e7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ea191906142bb565b612f135760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a10565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b5f81815260a460205260408120546801000000000000000090046001600160a01b0316158015906112cc5750505f90815260a46020526040902060030154610100900460ff161590565b612fab6130d3565b5f81118015612fbc57506098548114155b6130085760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a10565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611371565b61304e6130d3565b6001600160a01b0381166130ca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a10565b61201181613264565b6033546001600160a01b0316331461144b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a10565b5f805f61313a8585613b2d565b812090969095509350505050565b60655460ff161561144b5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a10565b805f036131a757505050565b8082035f805b83811015610dc7576101008185038111156131c757508084035b8651609b546040517f55f613ce0000000000000000000000000000000000000000000000000000000081526004810187905260248101849052604481018390526020909901989194506001600160a01b0316906355f613ce906064015f604051808303815f87803b15801561323a575f80fd5b505af115801561324c573d5f803e3d5ffd5b505050506101008401935050610100810190506131ad565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166133495760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a10565b61144b613c04565b5f54610100900460ff166133cd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a10565b61144b613c8c565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af1158015613459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061347d919061426d565b5f86815260a4602052604090206001015490915061349c908290614247565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a5909152812080549091906134db908490614247565b90915550506040516134ee908490614420565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8061357e5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a10565b5f61358d846001015160c01c90565b90505f61359b856039015190565b90505f7f00000000000000000000000000000000000000000000000000000000000000006135ca876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a84861368c885160f81c90565b858888866040518663ffffffff1660e01b81526004016136b095949392919061444c565b5f6040518083038186803b1580156136c6575f80fd5b505afa1580156136d8573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613708908461447d565b6137129190614494565b905061371e818361425a565b60aa5f82825461372e9190614247565b90915550506001600160a01b0384165f90815260a560205260408120805483929061375a908490614247565b909155505060405161376d908490614420565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613857575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146137ff576040519150601f19603f3d011682016040523d82523d5f602084013e613804565b606091505b50509050806138555760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a10565b505b5050565b613863613148565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138983390565b6040516001600160a01b03909116815260200160405180910390a1565b6138bd613d11565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613898565b60405185515f9182916020890191908190849061390c908590613d63565b90506002840193505f5b8181101561399057603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613966603c8361447d565b6139709087614247565b90505f61398182603a015160f01c90565b97909701965050600101613916565b506020850282016040525b8015613a5b575f6139b085603a015160f01c90565b90506139c083828d8d8d8d613df8565b92505f6139d1866038015160f01c90565b905081811015613a235760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a10565b50998a01999890980197603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161399b565b508190039020989197509095505050505050565b8082535050565b808260f9850137505050565b5f805f6020840190506002810191505f613a9d828651613d63565b90505f5b613aac60018361425a565b811015613ac257603c9390930192600101613aa1565b505f613acf845160c01c90565b9695505050505050565b60605f80808080613aec888a018a6145b9565b9550955095509550955050818710613b0a579450613b269350505050565b838710613b1e578295505050505050613b26565b509293505050505b9392505050565b5f8160f9811015613b805760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a10565b6040519150808483378082016040525f613b9e836009015160c01c90565b905061010060ff82010460200260f9018214613bfc5760405162461bcd60e51b815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a10565b509250929050565b5f54610100900460ff16613c805760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a10565b6065805460ff19169055565b5f54610100900460ff16613d085760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a10565b61144b33613264565b60655460ff1661144b5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a10565b5f613d6f835160f01c90565b9050805f03613daa576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613db5603c8261447d565b613dc0906002614247565b82146112cc576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f855f03613e07575085613acf565b609b546001600160a01b03165f80805b89811015613eed5760ff89169150600889901c811580613e35575082155b15613e44578060200288013593505b600184841c165f03613edc576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018a90525f906001600160a01b0387169063ae453cd590602401602060405180830381865afa158015613eae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ed2919061426d565b8d52506020909b019a5b506001988901989788019701613e17565b505060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88011681811c60011615613f685760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f7420736b6970206c617374204c31206d65737361676500000000006044820152606401610a10565b509798975050505050505050565b5f60208284031215613f86575f80fd5b5035919050565b80356001600160a01b0381168114613fa3575f80fd5b919050565b5f60208284031215613fb8575f80fd5b613b2682613f8d565b5f8083601f840112613fd1575f80fd5b50813567ffffffffffffffff811115613fe8575f80fd5b602083019150836020828501011115613fff575f80fd5b9250929050565b5f805f60408486031215614018575f80fd5b833567ffffffffffffffff81111561402e575f80fd5b61403a86828701613fc1565b909790965060209590950135949350505050565b5f806020838503121561405f575f80fd5b823567ffffffffffffffff811115614075575f80fd5b61408185828601613fc1565b90969095509350505050565b5f805f805f8060c087890312156140a2575f80fd5b6140ab87613f8d565b95506140b960208801613f8d565b94506140c760408801613f8d565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f80604085870312156140fb575f80fd5b843567ffffffffffffffff80821115614112575f80fd5b61411e88838901613fc1565b90965094506020870135915080821115614136575f80fd5b5061414387828801613fc1565b95989497509550505050565b8015158114612011575f80fd5b5f6020828403121561416c575f80fd5b8135613b268161414f565b5f8060408385031215614188575f80fd5b823567ffffffffffffffff8116811461419f575f80fd5b946020939093013593505050565b5f80604083850312156141be575f80fd5b823567ffffffffffffffff808211156141d5575f80fd5b9084019060e082870312156141e8575f80fd5b909250602084013590808211156141fd575f80fd5b5083016060818603121561420f575f80fd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156112cc576112cc61421a565b818103818111156112cc576112cc61421a565b5f6020828403121561427d575f80fd5b5051919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036142b4576142b461421a565b5060010190565b5f602082840312156142cb575f80fd5b8151613b268161414f565b5f602082840312156142e6575f80fd5b813560ff81168114613b26575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614329575f80fd5b83018035915067ffffffffffffffff821115614343575f80fd5b602001915036819003821315613fff575f80fd5b818382375f9101908152919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156143f75784516001600160a01b0316835293830193918301916001016143d2565b50508760408601528481036060860152614412818789614366565b9a9950505050505050505050565b5f82515f5b8181101561443f5760208186018101518583015201614425565b505f920191825250919050565b858152846020820152608060408201525f61446b608083018587614366565b90508260608301529695505050505050565b80820281158282048414176112cc576112cc61421a565b5f826144c7577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112614508575f80fd5b8135602067ffffffffffffffff80831115614525576145256144cc565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614568576145686144cc565b6040529384526020818701810194908101925087851115614587575f80fd5b6020870191505b848210156145ae5761459f82613f8d565b8352918301919083019061458e565b979650505050505050565b5f805f805f8060c087890312156145ce575f80fd5b86359550602087013567ffffffffffffffff808211156145ec575f80fd5b6145f88a838b016144f9565b9650604089013595506060890135915080821115614614575f80fd5b6146208a838b016144f9565b94506080890135935060a089013591508082111561463c575f80fd5b5061464989828a016144f9565b915050929550929550929556fea164736f6c6343000818000a +0x6080604052600436106102fb575f3560e01c806388b1ea0911610191578063b3e0a509116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610987578063f2fde38b146109a6578063fb1e8b04146109c5575f80fd5b8063ddd8a3dc14610934578063de8b303514610953578063dff7827e14610972575f80fd5b8063ce5db8d6116100b7578063ce5db8d6146108ed578063d279c19114610902578063d63b354914610921575f80fd5b8063b3e0a5091461089c578063bedb86fb146108bb578063cd4edc69146108da575f80fd5b8063a479265d1161013c578063b31a77d311610117578063b31a77d314610849578063b34844251461085e578063b35dac4e1461087d575f80fd5b8063a479265d146107ea578063a4f209b0146107ff578063abc8d68d1461081e575f80fd5b8063910129d41161016c578063910129d41461076c57806397fc007c1461079d578063a415d8dc146107bc575f80fd5b806388b1ea09146106865780638da5cb5b1461069f5780638f1d3776146106bc575f80fd5b80632571098d116102515780635ef7a94a116101fc5780636c578c1d116101d75780636c578c1d14610634578063715018a614610653578063728cdbca14610667575f80fd5b80635ef7a94a1461055d5780635f77cf1d146105bd57806368589dfa14610609575f80fd5b80633e001b661161022c5780633e001b661461051257806357e0af6c146105275780635c975abb14610546575f80fd5b80632571098d146104915780632b7ac3f3146104bc5780633b70c18a146104f3575f80fd5b8063121dcd50116102b157806318af3b2b1161028c57806318af3b2b1461041757806321e2f9e0146104475780632362f03e14610466575f80fd5b8063121dcd50146103ce57806313361101146103e357806318463fb014610402575f80fd5b80630ceb6780116102e15780630ceb67801461036c57806310d445831461038d578063116a1f42146103ac575f80fd5b806304d7721514610306578063059def6114610349575f80fd5b3661030257005b5f80fd5b348015610311575f80fd5b50610334610320366004614046565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610354575f80fd5b5061035e609d5481565b604051908152602001610340565b348015610377575f80fd5b5061038b610386366004614078565b6109da565b005b348015610398575f80fd5b5061038b6103a73660046140d6565b610aac565b3480156103b7575f80fd5b506103346103c6366004614046565b609d54101590565b3480156103d9575f80fd5b5061035e609e5481565b3480156103ee575f80fd5b5061038b6103fd36600461411e565b610e05565b34801561040d575f80fd5b5061035e60a75481565b348015610422575f80fd5b50610334610431366004614046565b5f90815260a26020526040902060010154421090565b348015610452575f80fd5b50610334610461366004614046565b6112fa565b348015610471575f80fd5b5061035e610480366004614046565b60a16020525f908152604090205481565b34801561049c575f80fd5b5061035e6104ab366004614046565b60a06020525f908152604090205481565b3480156104c7575f80fd5b50609c546104db906001600160a01b031681565b6040516001600160a01b039091168152602001610340565b3480156104fe575f80fd5b50609b546104db906001600160a01b031681565b34801561051d575f80fd5b5061035e60aa5481565b348015610532575f80fd5b5061038b610541366004614046565b611328565b348015610551575f80fd5b5060655460ff16610334565b348015610568575f80fd5b5061059d610577366004614046565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610340565b3480156105c8575f80fd5b506105f07f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610340565b348015610614575f80fd5b5061035e610623366004614046565b60ab6020525f908152604090205481565b34801561063f575f80fd5b5061038b61064e366004614078565b6113d3565b34801561065e575f80fd5b5061038b611490565b348015610672575f80fd5b5061038b61068136600461415d565b6114a3565b348015610691575f80fd5b5060a6546103349060ff1681565b3480156106aa575f80fd5b506033546001600160a01b03166104db565b3480156106c7575f80fd5b506107286106d6366004614046565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c001610340565b348015610777575f80fd5b50610334610786366004614046565b5f90815260a4602052604090206003015460ff1690565b3480156107a8575f80fd5b5061038b6107b7366004614078565b6117e6565b3480156107c7575f80fd5b506103346107d6366004614078565b609f6020525f908152604090205460ff1681565b3480156107f5575f80fd5b5061035e60995481565b34801561080a575f80fd5b5061038b610819366004614046565b6118c9565b348015610829575f80fd5b5061035e610838366004614078565b60a56020525f908152604090205481565b348015610854575f80fd5b5061035e60a85481565b348015610869575f80fd5b5061038b6108783660046141b8565b611979565b348015610888575f80fd5b5061038b610897366004614078565b611bbe565b3480156108a7575f80fd5b5061038b6108b636600461411e565b611c17565b3480156108c6575f80fd5b5061038b6108d536600461422c565b611f19565b61038b6108e8366004614247565b612074565b3480156108f8575f80fd5b5061035e60985481565b34801561090d575f80fd5b5061038b61091c366004614078565b612640565b61038b61092f36600461427d565b6126ff565b34801561093f575f80fd5b506097546104db906001600160a01b031681565b34801561095e575f80fd5b5061033461096d366004614046565b613029565b34801561097d575f80fd5b5061035e609a5481565b348015610992575f80fd5b5061038b6109a1366004614046565b613073565b3480156109b1575f80fd5b5061038b6109c0366004614078565b613116565b3480156109d0575f80fd5b5061035e60a95481565b6109e26131a3565b6001600160a01b0381165f908152609f602052604090205460ff1615610a4f5760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ab46131a3565b5f8111610b035760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a46565b5f80610b0f85856131fd565b915091505f610b22836001015160c01c90565b5f81815260a160205260409020549091508214610b815760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b5f60a181610b8f8785614317565b81526020019081526020015f205414610c0f5760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a46565b609d548111610c865760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b610c9160018261432a565b609e555b8315610dfd57604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610cdd81613029565b15610d38575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d28908490614317565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610db5575060a85481145b15610dbf575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610c95575b505050505050565b60a85415610e555760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b610e5d613218565b5f80610e6984846131fd565b915091505f610e7c836001015160c01c90565b5f81815260a160205260409020549091508214610edb5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b610ee4816112fa565b610f305760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b610f3981613029565b15610f865760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003015460ff1615610fe75760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a46565b5f81815260a260205260409020600101544210156110475760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a46565b605983015160a05f61105a60018561432a565b81526020019081526020015f2054146110b55760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f81815260a06020526040902054156111105760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a46565b80609d54600101146111645760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b609d819055600160a35f611179866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111c660f98401601185015160c01c600986015160c01c61326b565b60a25f6111d460018461432a565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061120d908461432a565b81526020019081526020015f205f905560a45f60018361122d919061432a565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d6112d6866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061132257505f82815260a1602052604090205415155b92915050565b6113306131a3565b5f8111801561134157506099548114155b61138d5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a46565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b6113db6131a3565b6001600160a01b0381165f908152609f602052604090205460ff166114425760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a46565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610aa1565b6114986131a3565b6114a15f613334565b565b5f54610100900460ff16158080156114c157505f54600160ff909116105b806114da5750303b1580156114da57505f5460ff166001145b61154c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a46565b5f805460ff19166001179055801561158a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b03861615806115a757506001600160a01b038516155b156115de576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166116345760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a46565b61163c61339d565b611644613421565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156117dd575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6117ee6131a3565b6001600160a01b038116158015906118145750609c546001600160a01b03828116911614155b6118605760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a46565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b6118d16131a3565b5f811180156118e1575060648111155b80156118ef575060a9548114155b61193b5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a46565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b022391016113c7565b60a854156119c95760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b6119d1613218565b5f806119dd86866131fd565b915091505f6119f0836001015160c01c90565b5f81815260a160205260409020549091508214611a4f5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b611a5881613029565b611aa45760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff191690556099546002909101544291611afd91614317565b11611b73575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152611b6e918391906134a5565b6117dd565b611b7e838686613601565b6117dd81336040518060400160405280600d81526020017f50726f6f662073756363657373000000000000000000000000000000000000008152506137b4565b611bc66131a3565b60aa80545f909155611bd88282613880565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d8791016113c7565b611c1f6131a3565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415611c965760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a46565b5f80611ca284846131fd565b915091505f611cb5836001015160c01c90565b90505f611cc3846079015190565b905080611d125760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a46565b600984015160c01c15611d675760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a46565b5f611d73856019015190565b03611dc05760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a46565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014611dec856039015190565b14611e395760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a46565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b611f216131a3565b801561204257611f2f61392b565b60a65460ff16156120015760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091611f83908490614317565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b61204a613985565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612024565b50565b335f908152609f602052604090205460ff166120d25760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a46565b60a854156121225760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b61212a613218565b60a65460ff161561217d5760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a46565b8167ffffffffffffffff16609d54106121d85760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a16020526040902054811461223f5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b6122528267ffffffffffffffff166112fa565b61229e5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b0316156123195760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a2602052604090206001015442106123a95760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a46565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061241d919061433d565b34101561246c5760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b9976346040516125be91815260200190565b60405180910390a35f609d5460016125d69190614317565b90505b609e54811161262e578267ffffffffffffffff16811461261c576099545f82815260a2602052604081206001018054909190612616908490614317565b90915550505b8061262681614354565b9150506125d9565b505060a6805460ff1916600117905550565b335f90815260a560205260408120549081900361269f5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a46565b335f90815260a560205260408120556126b88282613880565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a826040516126f391815260200190565b60405180910390a25050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561276b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061278f919061438b565b6127db5760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a46565b60a8541561282b5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b612833613218565b61284060208301836143a6565b60ff16156128905760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a46565b5f61289e60408401846143c6565b915050806128ee5760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a46565b608083013561293f5760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a46565b60a08301356129905760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a46565b5f806129a76129a260208701876143c6565b6131fd565b915091505f6129ba836001015160c01c90565b90505f60a1816129cb846001614317565b81526020019081526020015f205414612a265760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a46565b609e548114612a775760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b5f81815260a160205260409020548214612ad35760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a46565b5f81815260ab6020526040902054608087013514612b335760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f612b42846011015160c01c90565b90505f8080612ba1612b5760408c018c6143c6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150612b9c905060608f018f6143c6565b6139be565b948501949384019392509050612bba60608b018b6143c6565b905061010060ff85010460200214612c145760405162461bcd60e51b815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a46565b600194909401935f804915612c2a575f49612c4c565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b90505f612c5c60608d018d6143c6565b612c68915060f9614317565b90506040519850602081028901604052612c96898d5f016020810190612c8e91906143a6565b60ff16613b3f565b60c087811b60018b015285811b60098b015286811b60118b015260198a0184905260808d013560598b015260a08d013560798b01528c013560998a0152612d0389612ce460208e018e6143c6565b604051612cf2929190614427565b604051809103902060b99190910152565b60d98901889052612d2089612d1b60608f018f6143c6565b613b46565b603989018290528089205f88815260a1602090815260408083209390935560ab905290812060a08e0135905560a65460ff1615612d865760a7545f90815260a460205260409020600201546099544291612d7991614317565b612d83919061432a565b90505b60405180608001604052804281526020018260985442612da69190614317565b612db09190614317565b8152602001612e018f8060400190612dc891906143c6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613b5292505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015612e75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e99919061433d565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590612f0190612efb908f018f6143c6565b5f613ba9565b5f8e8060400190612f1291906143c6565b6040518663ffffffff1660e01b8152600401612f3295949392919061447d565b602060405180830381865afa158015612f4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f71919061438b565b612fe35760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b5f81815260a460205260408120546801000000000000000090046001600160a01b0316158015906113225750505f90815260a46020526040902060030154610100900460ff161590565b61307b6131a3565b5f8111801561308c57506098548114155b6130d85760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a46565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a43791016113c7565b61311e6131a3565b6001600160a01b03811661319a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a46565b61207181613334565b6033546001600160a01b031633146114a15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a46565b5f805f61320a8585613bfd565b812090969095509350505050565b60655460ff16156114a15760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a46565b805f0361327757505050565b8082035f805b83811015610dfd5761010081850381111561329757508084035b8651609b546040517f55f613ce0000000000000000000000000000000000000000000000000000000081526004810187905260248101849052604481018390526020909901989194506001600160a01b0316906355f613ce906064015f604051808303815f87803b15801561330a575f80fd5b505af115801561331c573d5f803e3d5ffd5b5050505061010084019350506101008101905061327d565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166134195760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6114a1613cd4565b5f54610100900460ff1661349d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6114a1613d5c565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af1158015613529573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061354d919061433d565b5f86815260a4602052604090206001015490915061356c908290614317565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a5909152812080549091906135ab908490614317565b90915550506040516135be9084906144f0565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8061364e5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a46565b5f61365d846001015160c01c90565b90505f61366b856039015190565b90505f7f000000000000000000000000000000000000000000000000000000000000000061369a876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a84861375c885160f81c90565b858888866040518663ffffffff1660e01b815260040161378095949392919061451c565b5f6040518083038186803b158015613796575f80fd5b505afa1580156137a8573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906137d8908461454d565b6137e29190614564565b90506137ee818361432a565b60aa5f8282546137fe9190614317565b90915550506001600160a01b0384165f90815260a560205260408120805483929061382a908490614317565b909155505060405161383d9084906144f0565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613927575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146138cf576040519150601f19603f3d011682016040523d82523d5f602084013e6138d4565b606091505b50509050806139255760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a46565b505b5050565b613933613218565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586139683390565b6040516001600160a01b03909116815260200160405180910390a1565b61398d613de1565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613968565b60405185515f918291602089019190819084906139dc908590613e33565b90506002840193505f5b81811015613a6057603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613a36603c8361454d565b613a409087614317565b90505f613a5182603a015160f01c90565b979097019650506001016139e6565b506020850282016040525b8015613b2b575f613a8085603a015160f01c90565b9050613a9083828d8d8d8d613ec8565b92505f613aa1866038015160f01c90565b905081811015613af35760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a46565b50998a01999890980197603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613a6b565b508190039020989197509095505050505050565b8082535050565b808260f9850137505050565b5f805f6020840190506002810191505f613b6d828651613e33565b90505f5b613b7c60018361432a565b811015613b9257603c9390930192600101613b71565b505f613b9f845160c01c90565b9695505050505050565b60605f80808080613bbc888a018a614689565b9550955095509550955050818710613bda579450613bf69350505050565b838710613bee578295505050505050613bf6565b509293505050505b9392505050565b5f8160f9811015613c505760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a46565b6040519150808483378082016040525f613c6e836009015160c01c90565b905061010060ff82010460200260f9018214613ccc5760405162461bcd60e51b815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a46565b509250929050565b5f54610100900460ff16613d505760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6065805460ff19169055565b5f54610100900460ff16613dd85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6114a133613334565b60655460ff166114a15760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a46565b5f613e3f835160f01c90565b9050805f03613e7a576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e85603c8261454d565b613e90906002614317565b8214611322576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f855f03613ed7575085613b9f565b609b546001600160a01b03165f80805b89811015613fbd5760ff89169150600889901c811580613f05575082155b15613f14578060200288013593505b600184841c165f03613fac576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018a90525f906001600160a01b0387169063ae453cd590602401602060405180830381865afa158015613f7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fa2919061433d565b8d52506020909b019a5b506001988901989788019701613ee7565b505060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88011681811c600116156140385760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f7420736b6970206c617374204c31206d65737361676500000000006044820152606401610a46565b509798975050505050505050565b5f60208284031215614056575f80fd5b5035919050565b80356001600160a01b0381168114614073575f80fd5b919050565b5f60208284031215614088575f80fd5b613bf68261405d565b5f8083601f8401126140a1575f80fd5b50813567ffffffffffffffff8111156140b8575f80fd5b6020830191508360208285010111156140cf575f80fd5b9250929050565b5f805f604084860312156140e8575f80fd5b833567ffffffffffffffff8111156140fe575f80fd5b61410a86828701614091565b909790965060209590950135949350505050565b5f806020838503121561412f575f80fd5b823567ffffffffffffffff811115614145575f80fd5b61415185828601614091565b90969095509350505050565b5f805f805f8060c08789031215614172575f80fd5b61417b8761405d565b95506141896020880161405d565b94506141976040880161405d565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f80604085870312156141cb575f80fd5b843567ffffffffffffffff808211156141e2575f80fd5b6141ee88838901614091565b90965094506020870135915080821115614206575f80fd5b5061421387828801614091565b95989497509550505050565b8015158114612071575f80fd5b5f6020828403121561423c575f80fd5b8135613bf68161421f565b5f8060408385031215614258575f80fd5b823567ffffffffffffffff8116811461426f575f80fd5b946020939093013593505050565b5f806040838503121561428e575f80fd5b823567ffffffffffffffff808211156142a5575f80fd5b9084019060e082870312156142b8575f80fd5b909250602084013590808211156142cd575f80fd5b508301606081860312156142df575f80fd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115611322576113226142ea565b81810381811115611322576113226142ea565b5f6020828403121561434d575f80fd5b5051919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614384576143846142ea565b5060010190565b5f6020828403121561439b575f80fd5b8151613bf68161421f565b5f602082840312156143b6575f80fd5b813560ff81168114613bf6575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126143f9575f80fd5b83018035915067ffffffffffffffff821115614413575f80fd5b6020019150368190038213156140cf575f80fd5b818382375f9101908152919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156144c75784516001600160a01b0316835293830193918301916001016144a2565b505087604086015284810360608601526144e2818789614436565b9a9950505050505050505050565b5f82515f5b8181101561450f57602081860181015185830152016144f5565b505f920191825250919050565b858152846020820152608060408201525f61453b608083018587614436565b90508260608301529695505050505050565b8082028115828204841417611322576113226142ea565b5f82614597577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145d8575f80fd5b8135602067ffffffffffffffff808311156145f5576145f561459c565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156146385761463861459c565b6040529384526020818701810194908101925087851115614657575f80fd5b6020870191505b8482101561467e5761466f8261405d565b8352918301919083019061465e565b979650505050505050565b5f805f805f8060c0878903121561469e575f80fd5b86359550602087013567ffffffffffffffff808211156146bc575f80fd5b6146c88a838b016145c9565b96506040890135955060608901359150808211156146e4575f80fd5b6146f08a838b016145c9565b94506080890135935060a089013591508082111561470c575f80fd5b5061471989828a016145c9565b915050929550929550929556fea164736f6c6343000818000a diff --git a/bindings/bindings/multipleversionrollupverifier.go b/bindings/bindings/multipleversionrollupverifier.go index a5b6aa075..c86abd18b 100644 --- a/bindings/bindings/multipleversionrollupverifier.go +++ b/bindings/bindings/multipleversionrollupverifier.go @@ -31,8 +31,8 @@ var ( // MultipleVersionRollupVerifierMetaData contains all meta data concerning the MultipleVersionRollupVerifier contract. var MultipleVersionRollupVerifierMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_versions\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"_verifiers\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrorStartBatchIndexFinalized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorStartBatchIndexTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorZeroAddress\",\"type\":\"error\"},{\"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\":false,\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBatchIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"getVerifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_rollup\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"latestVerifier\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"startBatchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"legacyVerifiers\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"startBatchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_version\",\"type\":\"uint256\"}],\"name\":\"legacyVerifiersLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_version\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_startBatchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_aggrProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_publicInputHash\",\"type\":\"bytes32\"}],\"name\":\"verifyAggregateProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801562000010575f80fd5b506040516200100c3803806200100c8339810160408190526200003391620002ed565b6200003e33620001a9565b5f5b8251811015620001a0575f6001600160a01b0316828281518110620000695762000069620003ae565b60200260200101516001600160a01b031603620000995760405163a7f9319d60e01b815260040160405180910390fd5b818181518110620000ae57620000ae620003ae565b602002602001015160035f858481518110620000ce57620000ce620003ae565b602002602001015181526020019081526020015f205f0160086101000a8154816001600160a01b0302191690836001600160a01b031602179055507f7a98750a395b9ee50a2644ffda039e31f1d5d06de45510275f972bb20b229b308382815181106200013f576200013f620003ae565b60200260200101515f8484815181106200015d576200015d620003ae565b60200260200101516040516200018f9392919092835260208301919091526001600160a01b0316604082015260600190565b60405180910390a160010162000040565b505050620003c2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715620002375762000237620001f8565b604052919050565b5f6001600160401b038211156200025a576200025a620001f8565b5060051b60200190565b5f82601f83011262000274575f80fd5b815160206200028d62000287836200023f565b6200020c565b8083825260208201915060208460051b870101935086841115620002af575f80fd5b602086015b84811015620002e25780516001600160a01b0381168114620002d4575f80fd5b8352918301918301620002b4565b509695505050505050565b5f8060408385031215620002ff575f80fd5b82516001600160401b038082111562000316575f80fd5b818501915085601f8301126200032a575f80fd5b815160206200033d62000287836200023f565b82815260059290921b840181019181810190898411156200035c575f80fd5b948201945b838610156200037c5785518252948201949082019062000361565b9188015191965090935050508082111562000395575f80fd5b50620003a48582860162000264565b9150509250929050565b634e487b7160e01b5f52603260045260245ffd5b610c3c80620003d05f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063955123061161007d578063c7065b6a11610058578063c7065b6a146101da578063cb23bcb514610227578063f2fde38b14610247575f80fd5b8063955123061461016c578063bd98b2b01461017f578063c4d66de8146101c7575f80fd5b80635027ad2e116100ad5780635027ad2e1461011a578063715018a6146101475780638da5cb5b1461014f575f80fd5b806328aee03f146100c85780632c09a84814610105575b5f80fd5b6100db6100d6366004610a50565b61025a565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610118610113366004610a70565b610397565b005b610139610128366004610af0565b5f9081526002602052604090205490565b6040519081526020016100fc565b61011861042f565b5f5473ffffffffffffffffffffffffffffffffffffffff166100db565b61011861017a366004610b2f565b610442565b61019261018d366004610a50565b610779565b6040805167ffffffffffffffff909316835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016100fc565b6101186101d5366004610b76565b6107d1565b6101926101e8366004610af0565b60036020525f908152604090205467ffffffffffffffff81169068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1682565b6001546100db9073ffffffffffffffffffffffffffffffffffffffff1681565b610118610255366004610b76565b6108a5565b5f82815260036020908152604080832081518083019092525467ffffffffffffffff81168083526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff16928201929092529083101561038c575f84815260026020526040902054805b8015610389575f86815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830190811061030a5761030a610b96565b5f9182526020918290206040805180820190915291015467ffffffffffffffff81168083526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff16928201929092529350851015610389577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016102c3565b50505b602001519392505050565b5f6103a2868661025a565b6040517fc8bd017600000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff82169063c8bd0176906103fb90879087908790600401610bc3565b5f6040518083038186803b158015610411575f80fd5b505afa158015610423573d5f803e3d5ffd5b50505050505050505050565b61043761095c565b6104405f6109dc565b565b61044a61095c565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663059def616040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d89190610c18565b8267ffffffffffffffff161161051a576040517f9a4ff10400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8381526003602090815260409182902082518084019093525467ffffffffffffffff8082168085526801000000000000000090920473ffffffffffffffffffffffffffffffffffffffff169284019290925290841610156105a8576040517fb0d8c70400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166105f5576040517fa7f9319d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805167ffffffffffffffff808516911610156106ba57602081015173ffffffffffffffffffffffffffffffffffffffff16156106ac575f84815260026020908152604082208054600181018255908352918190208351920180549184015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921667ffffffffffffffff909316929092171790555b67ffffffffffffffff831681525b73ffffffffffffffffffffffffffffffffffffffff82811660208381018281525f8881526003835260409081902086518154935190961668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931667ffffffffffffffff96871617929092179091558051888152938716918401919091528201527f7a98750a395b9ee50a2644ffda039e31f1d5d06de45510275f972bb20b229b309060600160405180910390a150505050565b6002602052815f5260405f208181548110610792575f80fd5b5f9182526020909120015467ffffffffffffffff8116925068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16905082565b6107d961095c565b60015473ffffffffffffffffffffffffffffffffffffffff161561085e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f696e697469616c697a656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108ad61095c565b73ffffffffffffffffffffffffffffffffffffffff8116610950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610855565b610959816109dc565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610855565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8060408385031215610a61575f80fd5b50508035926020909101359150565b5f805f805f60808688031215610a84575f80fd5b8535945060208601359350604086013567ffffffffffffffff80821115610aa9575f80fd5b818801915088601f830112610abc575f80fd5b813581811115610aca575f80fd5b896020828501011115610adb575f80fd5b96999598505060200195606001359392505050565b5f60208284031215610b00575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b2a575f80fd5b919050565b5f805f60608486031215610b41575f80fd5b83359250602084013567ffffffffffffffff81168114610b5f575f80fd5b9150610b6d60408501610b07565b90509250925092565b5f60208284031215610b86575f80fd5b610b8f82610b07565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60408152826040820152828460608301375f606084830101525f60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601168301019050826020830152949350505050565b5f60208284031215610c28575f80fd5b505191905056fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_versions\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"_verifiers\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrorStartBatchIndexFinalized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorStartBatchIndexTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorVerifierNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorZeroAddress\",\"type\":\"error\"},{\"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\":false,\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBatchIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"getVerifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_rollup\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"latestVerifier\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"startBatchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"legacyVerifiers\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"startBatchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_version\",\"type\":\"uint256\"}],\"name\":\"legacyVerifiersLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_version\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_startBatchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_aggrProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_publicInputHash\",\"type\":\"bytes32\"}],\"name\":\"verifyAggregateProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x608060405234801562000010575f80fd5b506040516200104c3803806200104c8339810160408190526200003391620002ed565b6200003e33620001a9565b5f5b8251811015620001a0575f6001600160a01b0316828281518110620000695762000069620003ae565b60200260200101516001600160a01b031603620000995760405163a7f9319d60e01b815260040160405180910390fd5b818181518110620000ae57620000ae620003ae565b602002602001015160035f858481518110620000ce57620000ce620003ae565b602002602001015181526020019081526020015f205f0160086101000a8154816001600160a01b0302191690836001600160a01b031602179055507f7a98750a395b9ee50a2644ffda039e31f1d5d06de45510275f972bb20b229b308382815181106200013f576200013f620003ae565b60200260200101515f8484815181106200015d576200015d620003ae565b60200260200101516040516200018f9392919092835260208301919091526001600160a01b0316604082015260600190565b60405180910390a160010162000040565b505050620003c2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715620002375762000237620001f8565b604052919050565b5f6001600160401b038211156200025a576200025a620001f8565b5060051b60200190565b5f82601f83011262000274575f80fd5b815160206200028d62000287836200023f565b6200020c565b8083825260208201915060208460051b870101935086841115620002af575f80fd5b602086015b84811015620002e25780516001600160a01b0381168114620002d4575f80fd5b8352918301918301620002b4565b509695505050505050565b5f8060408385031215620002ff575f80fd5b82516001600160401b038082111562000316575f80fd5b818501915085601f8301126200032a575f80fd5b815160206200033d62000287836200023f565b82815260059290921b840181019181810190898411156200035c575f80fd5b948201945b838610156200037c5785518252948201949082019062000361565b9188015191965090935050508082111562000395575f80fd5b50620003a48582860162000264565b9150509250929050565b634e487b7160e01b5f52603260045260245ffd5b610c7c80620003d05f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063955123061161007d578063c7065b6a11610058578063c7065b6a146101da578063cb23bcb514610227578063f2fde38b14610247575f80fd5b8063955123061461016c578063bd98b2b01461017f578063c4d66de8146101c7575f80fd5b80635027ad2e116100ad5780635027ad2e1461011a578063715018a6146101475780638da5cb5b1461014f575f80fd5b806328aee03f146100c85780632c09a84814610105575b5f80fd5b6100db6100d6366004610a90565b61025a565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610118610113366004610ab0565b6103d7565b005b610139610128366004610b30565b5f9081526002602052604090205490565b6040519081526020016100fc565b61011861046f565b5f5473ffffffffffffffffffffffffffffffffffffffff166100db565b61011861017a366004610b6f565b610482565b61019261018d366004610a90565b6107b9565b6040805167ffffffffffffffff909316835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016100fc565b6101186101d5366004610bb6565b610811565b6101926101e8366004610b30565b60036020525f908152604090205467ffffffffffffffff81169068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1682565b6001546100db9073ffffffffffffffffffffffffffffffffffffffff1681565b610118610255366004610bb6565b6108e5565b5f82815260036020908152604080832081518083019092525467ffffffffffffffff81168083526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff1692820192909252908310156103cc575f84815260026020526040812054805b8015610391575f87815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830190811061030a5761030a610bd6565b5f9182526020918290206040805180820190915291015467ffffffffffffffff81168083526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff16928201929092529450861061036a5760019250610391565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016102c3565b50816103c9576040517f70f6c8ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b602001519392505050565b5f6103e2868661025a565b6040517fc8bd017600000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff82169063c8bd01769061043b90879087908790600401610c03565b5f6040518083038186803b158015610451575f80fd5b505afa158015610463573d5f803e3d5ffd5b50505050505050505050565b61047761099c565b6104805f610a1c565b565b61048a61099c565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663059def616040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105189190610c58565b8267ffffffffffffffff161161055a576040517f9a4ff10400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8381526003602090815260409182902082518084019093525467ffffffffffffffff8082168085526801000000000000000090920473ffffffffffffffffffffffffffffffffffffffff169284019290925290841610156105e8576040517fb0d8c70400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610635576040517fa7f9319d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805167ffffffffffffffff808516911610156106fa57602081015173ffffffffffffffffffffffffffffffffffffffff16156106ec575f84815260026020908152604082208054600181018255908352918190208351920180549184015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921667ffffffffffffffff909316929092171790555b67ffffffffffffffff831681525b73ffffffffffffffffffffffffffffffffffffffff82811660208381018281525f8881526003835260409081902086518154935190961668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931667ffffffffffffffff96871617929092179091558051888152938716918401919091528201527f7a98750a395b9ee50a2644ffda039e31f1d5d06de45510275f972bb20b229b309060600160405180910390a150505050565b6002602052815f5260405f2081815481106107d2575f80fd5b5f9182526020909120015467ffffffffffffffff8116925068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16905082565b61081961099c565b60015473ffffffffffffffffffffffffffffffffffffffff161561089e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f696e697469616c697a656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108ed61099c565b73ffffffffffffffffffffffffffffffffffffffff8116610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610895565b61099981610a1c565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610895565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8060408385031215610aa1575f80fd5b50508035926020909101359150565b5f805f805f60808688031215610ac4575f80fd5b8535945060208601359350604086013567ffffffffffffffff80821115610ae9575f80fd5b818801915088601f830112610afc575f80fd5b813581811115610b0a575f80fd5b896020828501011115610b1b575f80fd5b96999598505060200195606001359392505050565b5f60208284031215610b40575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b6a575f80fd5b919050565b5f805f60608486031215610b81575f80fd5b83359250602084013567ffffffffffffffff81168114610b9f575f80fd5b9150610bad60408501610b47565b90509250925092565b5f60208284031215610bc6575f80fd5b610bcf82610b47565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60408152826040820152828460608301375f606084830101525f60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601168301019050826020830152949350505050565b5f60208284031215610c68575f80fd5b505191905056fea164736f6c6343000818000a", } // MultipleVersionRollupVerifierABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/multipleversionrollupverifier_more.go b/bindings/bindings/multipleversionrollupverifier_more.go index ce643114b..cb057b117 100644 --- a/bindings/bindings/multipleversionrollupverifier_more.go +++ b/bindings/bindings/multipleversionrollupverifier_more.go @@ -13,7 +13,7 @@ const MultipleVersionRollupVerifierStorageLayoutJSON = "{\"storage\":[{\"astId\" var MultipleVersionRollupVerifierStorageLayout = new(solc.StorageLayout) -var MultipleVersionRollupVerifierDeployedBin = "0x608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063955123061161007d578063c7065b6a11610058578063c7065b6a146101da578063cb23bcb514610227578063f2fde38b14610247575f80fd5b8063955123061461016c578063bd98b2b01461017f578063c4d66de8146101c7575f80fd5b80635027ad2e116100ad5780635027ad2e1461011a578063715018a6146101475780638da5cb5b1461014f575f80fd5b806328aee03f146100c85780632c09a84814610105575b5f80fd5b6100db6100d6366004610a50565b61025a565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610118610113366004610a70565b610397565b005b610139610128366004610af0565b5f9081526002602052604090205490565b6040519081526020016100fc565b61011861042f565b5f5473ffffffffffffffffffffffffffffffffffffffff166100db565b61011861017a366004610b2f565b610442565b61019261018d366004610a50565b610779565b6040805167ffffffffffffffff909316835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016100fc565b6101186101d5366004610b76565b6107d1565b6101926101e8366004610af0565b60036020525f908152604090205467ffffffffffffffff81169068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1682565b6001546100db9073ffffffffffffffffffffffffffffffffffffffff1681565b610118610255366004610b76565b6108a5565b5f82815260036020908152604080832081518083019092525467ffffffffffffffff81168083526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff16928201929092529083101561038c575f84815260026020526040902054805b8015610389575f86815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830190811061030a5761030a610b96565b5f9182526020918290206040805180820190915291015467ffffffffffffffff81168083526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff16928201929092529350851015610389577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016102c3565b50505b602001519392505050565b5f6103a2868661025a565b6040517fc8bd017600000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff82169063c8bd0176906103fb90879087908790600401610bc3565b5f6040518083038186803b158015610411575f80fd5b505afa158015610423573d5f803e3d5ffd5b50505050505050505050565b61043761095c565b6104405f6109dc565b565b61044a61095c565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663059def616040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d89190610c18565b8267ffffffffffffffff161161051a576040517f9a4ff10400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8381526003602090815260409182902082518084019093525467ffffffffffffffff8082168085526801000000000000000090920473ffffffffffffffffffffffffffffffffffffffff169284019290925290841610156105a8576040517fb0d8c70400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166105f5576040517fa7f9319d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805167ffffffffffffffff808516911610156106ba57602081015173ffffffffffffffffffffffffffffffffffffffff16156106ac575f84815260026020908152604082208054600181018255908352918190208351920180549184015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921667ffffffffffffffff909316929092171790555b67ffffffffffffffff831681525b73ffffffffffffffffffffffffffffffffffffffff82811660208381018281525f8881526003835260409081902086518154935190961668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931667ffffffffffffffff96871617929092179091558051888152938716918401919091528201527f7a98750a395b9ee50a2644ffda039e31f1d5d06de45510275f972bb20b229b309060600160405180910390a150505050565b6002602052815f5260405f208181548110610792575f80fd5b5f9182526020909120015467ffffffffffffffff8116925068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16905082565b6107d961095c565b60015473ffffffffffffffffffffffffffffffffffffffff161561085e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f696e697469616c697a656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108ad61095c565b73ffffffffffffffffffffffffffffffffffffffff8116610950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610855565b610959816109dc565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610855565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8060408385031215610a61575f80fd5b50508035926020909101359150565b5f805f805f60808688031215610a84575f80fd5b8535945060208601359350604086013567ffffffffffffffff80821115610aa9575f80fd5b818801915088601f830112610abc575f80fd5b813581811115610aca575f80fd5b896020828501011115610adb575f80fd5b96999598505060200195606001359392505050565b5f60208284031215610b00575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b2a575f80fd5b919050565b5f805f60608486031215610b41575f80fd5b83359250602084013567ffffffffffffffff81168114610b5f575f80fd5b9150610b6d60408501610b07565b90509250925092565b5f60208284031215610b86575f80fd5b610b8f82610b07565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60408152826040820152828460608301375f606084830101525f60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601168301019050826020830152949350505050565b5f60208284031215610c28575f80fd5b505191905056fea164736f6c6343000818000a" +var MultipleVersionRollupVerifierDeployedBin = "0x608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063955123061161007d578063c7065b6a11610058578063c7065b6a146101da578063cb23bcb514610227578063f2fde38b14610247575f80fd5b8063955123061461016c578063bd98b2b01461017f578063c4d66de8146101c7575f80fd5b80635027ad2e116100ad5780635027ad2e1461011a578063715018a6146101475780638da5cb5b1461014f575f80fd5b806328aee03f146100c85780632c09a84814610105575b5f80fd5b6100db6100d6366004610a90565b61025a565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610118610113366004610ab0565b6103d7565b005b610139610128366004610b30565b5f9081526002602052604090205490565b6040519081526020016100fc565b61011861046f565b5f5473ffffffffffffffffffffffffffffffffffffffff166100db565b61011861017a366004610b6f565b610482565b61019261018d366004610a90565b6107b9565b6040805167ffffffffffffffff909316835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016100fc565b6101186101d5366004610bb6565b610811565b6101926101e8366004610b30565b60036020525f908152604090205467ffffffffffffffff81169068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1682565b6001546100db9073ffffffffffffffffffffffffffffffffffffffff1681565b610118610255366004610bb6565b6108e5565b5f82815260036020908152604080832081518083019092525467ffffffffffffffff81168083526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff1692820192909252908310156103cc575f84815260026020526040812054805b8015610391575f87815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830190811061030a5761030a610bd6565b5f9182526020918290206040805180820190915291015467ffffffffffffffff81168083526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff16928201929092529450861061036a5760019250610391565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016102c3565b50816103c9576040517f70f6c8ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b602001519392505050565b5f6103e2868661025a565b6040517fc8bd017600000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff82169063c8bd01769061043b90879087908790600401610c03565b5f6040518083038186803b158015610451575f80fd5b505afa158015610463573d5f803e3d5ffd5b50505050505050505050565b61047761099c565b6104805f610a1c565b565b61048a61099c565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663059def616040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105189190610c58565b8267ffffffffffffffff161161055a576040517f9a4ff10400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8381526003602090815260409182902082518084019093525467ffffffffffffffff8082168085526801000000000000000090920473ffffffffffffffffffffffffffffffffffffffff169284019290925290841610156105e8576040517fb0d8c70400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610635576040517fa7f9319d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805167ffffffffffffffff808516911610156106fa57602081015173ffffffffffffffffffffffffffffffffffffffff16156106ec575f84815260026020908152604082208054600181018255908352918190208351920180549184015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921667ffffffffffffffff909316929092171790555b67ffffffffffffffff831681525b73ffffffffffffffffffffffffffffffffffffffff82811660208381018281525f8881526003835260409081902086518154935190961668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931667ffffffffffffffff96871617929092179091558051888152938716918401919091528201527f7a98750a395b9ee50a2644ffda039e31f1d5d06de45510275f972bb20b229b309060600160405180910390a150505050565b6002602052815f5260405f2081815481106107d2575f80fd5b5f9182526020909120015467ffffffffffffffff8116925068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16905082565b61081961099c565b60015473ffffffffffffffffffffffffffffffffffffffff161561089e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f696e697469616c697a656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108ed61099c565b73ffffffffffffffffffffffffffffffffffffffff8116610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610895565b61099981610a1c565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610895565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8060408385031215610aa1575f80fd5b50508035926020909101359150565b5f805f805f60808688031215610ac4575f80fd5b8535945060208601359350604086013567ffffffffffffffff80821115610ae9575f80fd5b818801915088601f830112610afc575f80fd5b813581811115610b0a575f80fd5b896020828501011115610b1b575f80fd5b96999598505060200195606001359392505050565b5f60208284031215610b40575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b6a575f80fd5b919050565b5f805f60608486031215610b81575f80fd5b83359250602084013567ffffffffffffffff81168114610b9f575f80fd5b9150610bad60408501610b47565b90509250925092565b5f60208284031215610bc6575f80fd5b610bcf82610b47565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60408152826040820152828460608301375f606084830101525f60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601168301019050826020830152949350505050565b5f60208284031215610c68575f80fd5b505191905056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(MultipleVersionRollupVerifierStorageLayoutJSON), MultipleVersionRollupVerifierStorageLayout); err != nil { diff --git a/bindings/bindings/rollup.go b/bindings/bindings/rollup.go index 081c905db..ac9b469dd 100644 --- a/bindings/bindings/rollup.go +++ b/bindings/bindings/rollup.go @@ -49,8 +49,8 @@ type IRollupBatchSignatureInput struct { // RollupMetaData contains all meta data concerning the Rollup contract. var RollupMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIncorrectBatchLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNoBlockInBatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blockContexts\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"skippedL1MessageBitmap\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60a060405234801562000010575f80fd5b50604051620047c1380380620047c183398101604081905262000033916200010f565b6001600160401b0381166080526200004a62000051565b506200013e565b5f54610100900460ff1615620000bd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200010d575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000120575f80fd5b81516001600160401b038116811462000137575f80fd5b9392505050565b6080516146636200015e5f395f81816105c301526135a001526146635ff3fe6080604052600436106102f0575f3560e01c80638da5cb5b11610186578063b3e0a509116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610951578063f2fde38b14610970578063fb1e8b041461098f575f80fd5b8063ddd8a3dc146108fe578063de8b30351461091d578063dff7827e1461093c575f80fd5b8063ce5db8d6116100b7578063ce5db8d6146108b7578063d279c191146108cc578063d63b3549146108eb575f80fd5b8063b3e0a50914610866578063bedb86fb14610885578063cd4edc69146108a4575f80fd5b8063a479265d1161013c578063b31a77d311610117578063b31a77d314610813578063b348442514610828578063b35dac4e14610847575f80fd5b8063a479265d146107b4578063a4f209b0146107c9578063abc8d68d146107e8575f80fd5b8063910129d41161016c578063910129d41461073657806397fc007c14610767578063a415d8dc14610786575f80fd5b80638da5cb5b146106695780638f1d377614610686575f80fd5b80632571098d116102465780635ef7a94a116101f1578063715018a6116101cc578063715018a61461061d578063728cdbca1461063157806388b1ea0914610650575f80fd5b80635ef7a94a146105525780635f77cf1d146105b25780636c578c1d146105fe575f80fd5b80633e001b66116102215780633e001b661461050757806357e0af6c1461051c5780635c975abb1461053b575f80fd5b80632571098d146104865780632b7ac3f3146104b15780633b70c18a146104e8575f80fd5b8063121dcd50116102a657806318af3b2b1161028157806318af3b2b1461040c57806321e2f9e01461043c5780632362f03e1461045b575f80fd5b8063121dcd50146103c357806313361101146103d857806318463fb0146103f7575f80fd5b80630ceb6780116102d65780630ceb67801461036157806310d4458314610382578063116a1f42146103a1575f80fd5b806304d77215146102fb578063059def611461033e575f80fd5b366102f757005b5f80fd5b348015610306575f80fd5b50610329610315366004613f76565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610349575f80fd5b50610353609d5481565b604051908152602001610335565b34801561036c575f80fd5b5061038061037b366004613fa8565b6109a4565b005b34801561038d575f80fd5b5061038061039c366004614006565b610a76565b3480156103ac575f80fd5b506103296103bb366004613f76565b609d54101590565b3480156103ce575f80fd5b50610353609e5481565b3480156103e3575f80fd5b506103806103f236600461404e565b610dcf565b348015610402575f80fd5b5061035360a75481565b348015610417575f80fd5b50610329610426366004613f76565b5f90815260a26020526040902060010154421090565b348015610447575f80fd5b50610329610456366004613f76565b6112a4565b348015610466575f80fd5b50610353610475366004613f76565b60a16020525f908152604090205481565b348015610491575f80fd5b506103536104a0366004613f76565b60a06020525f908152604090205481565b3480156104bc575f80fd5b50609c546104d0906001600160a01b031681565b6040516001600160a01b039091168152602001610335565b3480156104f3575f80fd5b50609b546104d0906001600160a01b031681565b348015610512575f80fd5b5061035360aa5481565b348015610527575f80fd5b50610380610536366004613f76565b6112d2565b348015610546575f80fd5b5060655460ff16610329565b34801561055d575f80fd5b5061059261056c366004613f76565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610335565b3480156105bd575f80fd5b506105e57f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610335565b348015610609575f80fd5b50610380610618366004613fa8565b61137d565b348015610628575f80fd5b5061038061143a565b34801561063c575f80fd5b5061038061064b36600461408d565b61144d565b34801561065b575f80fd5b5060a6546103299060ff1681565b348015610674575f80fd5b506033546001600160a01b03166104d0565b348015610691575f80fd5b506106f26106a0366004613f76565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c001610335565b348015610741575f80fd5b50610329610750366004613f76565b5f90815260a4602052604090206003015460ff1690565b348015610772575f80fd5b50610380610781366004613fa8565b611790565b348015610791575f80fd5b506103296107a0366004613fa8565b609f6020525f908152604090205460ff1681565b3480156107bf575f80fd5b5061035360995481565b3480156107d4575f80fd5b506103806107e3366004613f76565b611873565b3480156107f3575f80fd5b50610353610802366004613fa8565b60a56020525f908152604090205481565b34801561081e575f80fd5b5061035360a85481565b348015610833575f80fd5b506103806108423660046140e8565b611923565b348015610852575f80fd5b50610380610861366004613fa8565b611b68565b348015610871575f80fd5b5061038061088036600461404e565b611bc1565b348015610890575f80fd5b5061038061089f36600461415c565b611eb9565b6103806108b2366004614177565b612014565b3480156108c2575f80fd5b5061035360985481565b3480156108d7575f80fd5b506103806108e6366004613fa8565b6125e0565b6103806108f93660046141ad565b61269f565b348015610909575f80fd5b506097546104d0906001600160a01b031681565b348015610928575f80fd5b50610329610937366004613f76565b612f59565b348015610947575f80fd5b50610353609a5481565b34801561095c575f80fd5b5061038061096b366004613f76565b612fa3565b34801561097b575f80fd5b5061038061098a366004613fa8565b613046565b34801561099a575f80fd5b5061035360a95481565b6109ac6130d3565b6001600160a01b0381165f908152609f602052604090205460ff1615610a195760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610a7e6130d3565b5f8111610acd5760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a10565b5f80610ad9858561312d565b915091505f610aec836001015160c01c90565b5f81815260a160205260409020549091508214610b4b5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a10565b5f60a181610b598785614247565b81526020019081526020015f205414610bd95760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a10565b609d548111610c505760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a10565b610c5b60018261425a565b609e555b8315610dc757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610ca781612f59565b15610d02575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610cf2908490614247565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610d7f575060a85481145b15610d89575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610c5f575b505050505050565b60a85415610e1f5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a10565b610e27613148565b5f80610e33848461312d565b915091505f610e46836001015160c01c90565b5f81815260a160205260409020549091508214610ea55760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a10565b610eae816112a4565b610efa5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a10565b610f0381612f59565b15610f505760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a10565b5f81815260a4602052604090206003015460ff1615610fb15760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a10565b5f81815260a260205260409020600101544210156110115760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a10565b605983015160a05f61102460018561425a565b81526020019081526020015f20541461107f5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a10565b5f81815260a06020526040902054156110da5760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a10565b80609d546001011461112e5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a10565b609d819055600160a35f611143866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a0602052604090205561119060f98401601185015160c01c600986015160c01c61319b565b60a25f61119e60018461425a565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560a491906111d7908461425a565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611280866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a26020526040812054158015906112cc57505f82815260a1602052604090205415155b92915050565b6112da6130d3565b5f811180156112eb57506099548114155b6113375760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a10565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b6113856130d3565b6001600160a01b0381165f908152609f602052604090205460ff166113ec5760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a10565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610a6b565b6114426130d3565b61144b5f613264565b565b5f54610100900460ff161580801561146b57505f54600160ff909116105b806114845750303b15801561148457505f5460ff166001145b6114f65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a10565b5f805460ff191660011790558015611534575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038616158061155157506001600160a01b038516155b15611588576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166115de5760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a10565b6115e66132cd565b6115ee613351565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015611787575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6117986130d3565b6001600160a01b038116158015906117be5750609c546001600160a01b03828116911614155b61180a5760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a10565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b61187b6130d3565b5f8111801561188b575060648111155b8015611899575060a9548114155b6118e55760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a10565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611371565b60a854156119735760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a10565b61197b613148565b5f80611987868661312d565b915091505f61199a836001015160c01c90565b5f81815260a1602052604090205490915082146119f95760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a10565b611a0281612f59565b611a4e5760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a10565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff191690556099546002909101544291611aa791614247565b11611b1d575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152611b18918391906133d5565b611787565b611b28838686613531565b61178781336040518060400160405280600d81526020017f50726f6f662073756363657373000000000000000000000000000000000000008152506136e4565b611b706130d3565b60aa80545f909155611b8282826137b0565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611371565b611bc96130d3565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415611c405760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a10565b5f80611c4c848461312d565b915091505f611c5f836001015160c01c90565b90505f611c6d846079015190565b905080611cbc5760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a10565b600984015160c01c15611d115760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a10565b5f611d1d856019015190565b03611d6a5760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a10565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014611d96856039015190565b14611de35760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a10565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b611ec16130d3565b8015611fe257611ecf61385b565b60a65460ff1615611fa15760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091611f23908490614247565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b611fea6138b5565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611fc4565b50565b335f908152609f602052604090205460ff166120725760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a10565b60a854156120c25760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a10565b6120ca613148565b60a65460ff161561211d5760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a10565b8167ffffffffffffffff16609d54106121785760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a10565b67ffffffffffffffff82165f90815260a1602052604090205481146121df5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a10565b6121f28267ffffffffffffffff166112a4565b61223e5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a10565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b0316156122b95760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a10565b67ffffffffffffffff82165f90815260a2602052604090206001015442106123495760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a10565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612399573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123bd919061426d565b34101561240c5760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a10565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b99763460405161255e91815260200190565b60405180910390a35f609d5460016125769190614247565b90505b609e5481116125ce578267ffffffffffffffff1681146125bc576099545f82815260a26020526040812060010180549091906125b6908490614247565b90915550505b806125c681614284565b915050612579565b505060a6805460ff1916600117905550565b335f90815260a560205260408120549081900361263f5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a10565b335f90815260a5602052604081205561265882826137b0565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a8260405161269391815260200190565b60405180910390a25050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561270b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272f91906142bb565b61277b5760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a10565b60a854156127cb5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a10565b6127d3613148565b6127e060208301836142d6565b60ff16156128305760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a10565b5f61283e60408401846142f6565b9150508061288e5760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a10565b60808301356128df5760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a10565b60a08301356129305760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a10565b5f8061294761294260208701876142f6565b61312d565b915091505f61295a836001015160c01c90565b5f81815260a1602052604090205490915082146129b95760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a10565b5f60a1816129c8846001614247565b81526020019081526020015f205414612a235760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a10565b609e548114612a745760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a10565b5f612a83846011015160c01c90565b90505f8080612ae2612a9860408c018c6142f6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150612add905060608f018f6142f6565b6138ee565b948501949384019392509050612afb60608b018b6142f6565b905061010060ff85010460200214612b555760405162461bcd60e51b815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a10565b600194909401935f804915612b6b575f49612b8d565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b90505f612b9d60608d018d6142f6565b612ba9915060f9614247565b90506040519850602081028901604052612bd7898d5f016020810190612bcf91906142d6565b60ff16613a6f565b60c087811b60018b015285811b60098b015286811b60118b015260198a0184905260808d013560598b015260a08d013560798b01528c013560998a0152612c4489612c2560208e018e6142f6565b604051612c33929190614357565b604051809103902060b99190910152565b60d98901889052612c6189612c5c60608f018f6142f6565b613a76565b603989018290528089205f88815260a1602052604081209190915560a65460ff1615612cb65760a7545f90815260a460205260409020600201546099544291612ca991614247565b612cb3919061425a565b90505b60405180608001604052804281526020018260985442612cd69190614247565b612ce09190614247565b8152602001612d318f8060400190612cf891906142f6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613a8292505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015612da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dc9919061426d565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590612e3190612e2b908f018f6142f6565b5f613ad9565b5f8e8060400190612e4291906142f6565b6040518663ffffffff1660e01b8152600401612e629594939291906143ad565b602060405180830381865afa158015612e7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ea191906142bb565b612f135760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a10565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b5f81815260a460205260408120546801000000000000000090046001600160a01b0316158015906112cc5750505f90815260a46020526040902060030154610100900460ff161590565b612fab6130d3565b5f81118015612fbc57506098548114155b6130085760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a10565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611371565b61304e6130d3565b6001600160a01b0381166130ca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a10565b61201181613264565b6033546001600160a01b0316331461144b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a10565b5f805f61313a8585613b2d565b812090969095509350505050565b60655460ff161561144b5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a10565b805f036131a757505050565b8082035f805b83811015610dc7576101008185038111156131c757508084035b8651609b546040517f55f613ce0000000000000000000000000000000000000000000000000000000081526004810187905260248101849052604481018390526020909901989194506001600160a01b0316906355f613ce906064015f604051808303815f87803b15801561323a575f80fd5b505af115801561324c573d5f803e3d5ffd5b505050506101008401935050610100810190506131ad565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166133495760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a10565b61144b613c04565b5f54610100900460ff166133cd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a10565b61144b613c8c565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af1158015613459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061347d919061426d565b5f86815260a4602052604090206001015490915061349c908290614247565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a5909152812080549091906134db908490614247565b90915550506040516134ee908490614420565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8061357e5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a10565b5f61358d846001015160c01c90565b90505f61359b856039015190565b90505f7f00000000000000000000000000000000000000000000000000000000000000006135ca876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a84861368c885160f81c90565b858888866040518663ffffffff1660e01b81526004016136b095949392919061444c565b5f6040518083038186803b1580156136c6575f80fd5b505afa1580156136d8573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613708908461447d565b6137129190614494565b905061371e818361425a565b60aa5f82825461372e9190614247565b90915550506001600160a01b0384165f90815260a560205260408120805483929061375a908490614247565b909155505060405161376d908490614420565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613857575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146137ff576040519150601f19603f3d011682016040523d82523d5f602084013e613804565b606091505b50509050806138555760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a10565b505b5050565b613863613148565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138983390565b6040516001600160a01b03909116815260200160405180910390a1565b6138bd613d11565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613898565b60405185515f9182916020890191908190849061390c908590613d63565b90506002840193505f5b8181101561399057603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613966603c8361447d565b6139709087614247565b90505f61398182603a015160f01c90565b97909701965050600101613916565b506020850282016040525b8015613a5b575f6139b085603a015160f01c90565b90506139c083828d8d8d8d613df8565b92505f6139d1866038015160f01c90565b905081811015613a235760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a10565b50998a01999890980197603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161399b565b508190039020989197509095505050505050565b8082535050565b808260f9850137505050565b5f805f6020840190506002810191505f613a9d828651613d63565b90505f5b613aac60018361425a565b811015613ac257603c9390930192600101613aa1565b505f613acf845160c01c90565b9695505050505050565b60605f80808080613aec888a018a6145b9565b9550955095509550955050818710613b0a579450613b269350505050565b838710613b1e578295505050505050613b26565b509293505050505b9392505050565b5f8160f9811015613b805760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a10565b6040519150808483378082016040525f613b9e836009015160c01c90565b905061010060ff82010460200260f9018214613bfc5760405162461bcd60e51b815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a10565b509250929050565b5f54610100900460ff16613c805760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a10565b6065805460ff19169055565b5f54610100900460ff16613d085760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a10565b61144b33613264565b60655460ff1661144b5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a10565b5f613d6f835160f01c90565b9050805f03613daa576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613db5603c8261447d565b613dc0906002614247565b82146112cc576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f855f03613e07575085613acf565b609b546001600160a01b03165f80805b89811015613eed5760ff89169150600889901c811580613e35575082155b15613e44578060200288013593505b600184841c165f03613edc576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018a90525f906001600160a01b0387169063ae453cd590602401602060405180830381865afa158015613eae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ed2919061426d565b8d52506020909b019a5b506001988901989788019701613e17565b505060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88011681811c60011615613f685760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f7420736b6970206c617374204c31206d65737361676500000000006044820152606401610a10565b509798975050505050505050565b5f60208284031215613f86575f80fd5b5035919050565b80356001600160a01b0381168114613fa3575f80fd5b919050565b5f60208284031215613fb8575f80fd5b613b2682613f8d565b5f8083601f840112613fd1575f80fd5b50813567ffffffffffffffff811115613fe8575f80fd5b602083019150836020828501011115613fff575f80fd5b9250929050565b5f805f60408486031215614018575f80fd5b833567ffffffffffffffff81111561402e575f80fd5b61403a86828701613fc1565b909790965060209590950135949350505050565b5f806020838503121561405f575f80fd5b823567ffffffffffffffff811115614075575f80fd5b61408185828601613fc1565b90969095509350505050565b5f805f805f8060c087890312156140a2575f80fd5b6140ab87613f8d565b95506140b960208801613f8d565b94506140c760408801613f8d565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f80604085870312156140fb575f80fd5b843567ffffffffffffffff80821115614112575f80fd5b61411e88838901613fc1565b90965094506020870135915080821115614136575f80fd5b5061414387828801613fc1565b95989497509550505050565b8015158114612011575f80fd5b5f6020828403121561416c575f80fd5b8135613b268161414f565b5f8060408385031215614188575f80fd5b823567ffffffffffffffff8116811461419f575f80fd5b946020939093013593505050565b5f80604083850312156141be575f80fd5b823567ffffffffffffffff808211156141d5575f80fd5b9084019060e082870312156141e8575f80fd5b909250602084013590808211156141fd575f80fd5b5083016060818603121561420f575f80fd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156112cc576112cc61421a565b818103818111156112cc576112cc61421a565b5f6020828403121561427d575f80fd5b5051919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036142b4576142b461421a565b5060010190565b5f602082840312156142cb575f80fd5b8151613b268161414f565b5f602082840312156142e6575f80fd5b813560ff81168114613b26575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614329575f80fd5b83018035915067ffffffffffffffff821115614343575f80fd5b602001915036819003821315613fff575f80fd5b818382375f9101908152919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156143f75784516001600160a01b0316835293830193918301916001016143d2565b50508760408601528481036060860152614412818789614366565b9a9950505050505050505050565b5f82515f5b8181101561443f5760208186018101518583015201614425565b505f920191825250919050565b858152846020820152608060408201525f61446b608083018587614366565b90508260608301529695505050505050565b80820281158282048414176112cc576112cc61421a565b5f826144c7577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112614508575f80fd5b8135602067ffffffffffffffff80831115614525576145256144cc565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614568576145686144cc565b6040529384526020818701810194908101925087851115614587575f80fd5b6020870191505b848210156145ae5761459f82613f8d565b8352918301919083019061458e565b979650505050505050565b5f805f805f8060c087890312156145ce575f80fd5b86359550602087013567ffffffffffffffff808211156145ec575f80fd5b6145f88a838b016144f9565b9650604089013595506060890135915080821115614614575f80fd5b6146208a838b016144f9565b94506080890135935060a089013591508082111561463c575f80fd5b5061464989828a016144f9565b915050929550929550929556fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIncorrectBatchLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNoBlockInBatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blockContexts\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"skippedL1MessageBitmap\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x60a060405234801562000010575f80fd5b50604051620048913803806200489183398101604081905262000033916200010f565b6001600160401b0381166080526200004a62000051565b506200013e565b5f54610100900460ff1615620000bd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200010d575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000120575f80fd5b81516001600160401b038116811462000137575f80fd5b9392505050565b6080516147336200015e5f395f81816105ce015261367001526147335ff3fe6080604052600436106102fb575f3560e01c806388b1ea0911610191578063b3e0a509116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610987578063f2fde38b146109a6578063fb1e8b04146109c5575f80fd5b8063ddd8a3dc14610934578063de8b303514610953578063dff7827e14610972575f80fd5b8063ce5db8d6116100b7578063ce5db8d6146108ed578063d279c19114610902578063d63b354914610921575f80fd5b8063b3e0a5091461089c578063bedb86fb146108bb578063cd4edc69146108da575f80fd5b8063a479265d1161013c578063b31a77d311610117578063b31a77d314610849578063b34844251461085e578063b35dac4e1461087d575f80fd5b8063a479265d146107ea578063a4f209b0146107ff578063abc8d68d1461081e575f80fd5b8063910129d41161016c578063910129d41461076c57806397fc007c1461079d578063a415d8dc146107bc575f80fd5b806388b1ea09146106865780638da5cb5b1461069f5780638f1d3776146106bc575f80fd5b80632571098d116102515780635ef7a94a116101fc5780636c578c1d116101d75780636c578c1d14610634578063715018a614610653578063728cdbca14610667575f80fd5b80635ef7a94a1461055d5780635f77cf1d146105bd57806368589dfa14610609575f80fd5b80633e001b661161022c5780633e001b661461051257806357e0af6c146105275780635c975abb14610546575f80fd5b80632571098d146104915780632b7ac3f3146104bc5780633b70c18a146104f3575f80fd5b8063121dcd50116102b157806318af3b2b1161028c57806318af3b2b1461041757806321e2f9e0146104475780632362f03e14610466575f80fd5b8063121dcd50146103ce57806313361101146103e357806318463fb014610402575f80fd5b80630ceb6780116102e15780630ceb67801461036c57806310d445831461038d578063116a1f42146103ac575f80fd5b806304d7721514610306578063059def6114610349575f80fd5b3661030257005b5f80fd5b348015610311575f80fd5b50610334610320366004614046565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610354575f80fd5b5061035e609d5481565b604051908152602001610340565b348015610377575f80fd5b5061038b610386366004614078565b6109da565b005b348015610398575f80fd5b5061038b6103a73660046140d6565b610aac565b3480156103b7575f80fd5b506103346103c6366004614046565b609d54101590565b3480156103d9575f80fd5b5061035e609e5481565b3480156103ee575f80fd5b5061038b6103fd36600461411e565b610e05565b34801561040d575f80fd5b5061035e60a75481565b348015610422575f80fd5b50610334610431366004614046565b5f90815260a26020526040902060010154421090565b348015610452575f80fd5b50610334610461366004614046565b6112fa565b348015610471575f80fd5b5061035e610480366004614046565b60a16020525f908152604090205481565b34801561049c575f80fd5b5061035e6104ab366004614046565b60a06020525f908152604090205481565b3480156104c7575f80fd5b50609c546104db906001600160a01b031681565b6040516001600160a01b039091168152602001610340565b3480156104fe575f80fd5b50609b546104db906001600160a01b031681565b34801561051d575f80fd5b5061035e60aa5481565b348015610532575f80fd5b5061038b610541366004614046565b611328565b348015610551575f80fd5b5060655460ff16610334565b348015610568575f80fd5b5061059d610577366004614046565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610340565b3480156105c8575f80fd5b506105f07f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610340565b348015610614575f80fd5b5061035e610623366004614046565b60ab6020525f908152604090205481565b34801561063f575f80fd5b5061038b61064e366004614078565b6113d3565b34801561065e575f80fd5b5061038b611490565b348015610672575f80fd5b5061038b61068136600461415d565b6114a3565b348015610691575f80fd5b5060a6546103349060ff1681565b3480156106aa575f80fd5b506033546001600160a01b03166104db565b3480156106c7575f80fd5b506107286106d6366004614046565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c001610340565b348015610777575f80fd5b50610334610786366004614046565b5f90815260a4602052604090206003015460ff1690565b3480156107a8575f80fd5b5061038b6107b7366004614078565b6117e6565b3480156107c7575f80fd5b506103346107d6366004614078565b609f6020525f908152604090205460ff1681565b3480156107f5575f80fd5b5061035e60995481565b34801561080a575f80fd5b5061038b610819366004614046565b6118c9565b348015610829575f80fd5b5061035e610838366004614078565b60a56020525f908152604090205481565b348015610854575f80fd5b5061035e60a85481565b348015610869575f80fd5b5061038b6108783660046141b8565b611979565b348015610888575f80fd5b5061038b610897366004614078565b611bbe565b3480156108a7575f80fd5b5061038b6108b636600461411e565b611c17565b3480156108c6575f80fd5b5061038b6108d536600461422c565b611f19565b61038b6108e8366004614247565b612074565b3480156108f8575f80fd5b5061035e60985481565b34801561090d575f80fd5b5061038b61091c366004614078565b612640565b61038b61092f36600461427d565b6126ff565b34801561093f575f80fd5b506097546104db906001600160a01b031681565b34801561095e575f80fd5b5061033461096d366004614046565b613029565b34801561097d575f80fd5b5061035e609a5481565b348015610992575f80fd5b5061038b6109a1366004614046565b613073565b3480156109b1575f80fd5b5061038b6109c0366004614078565b613116565b3480156109d0575f80fd5b5061035e60a95481565b6109e26131a3565b6001600160a01b0381165f908152609f602052604090205460ff1615610a4f5760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ab46131a3565b5f8111610b035760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a46565b5f80610b0f85856131fd565b915091505f610b22836001015160c01c90565b5f81815260a160205260409020549091508214610b815760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b5f60a181610b8f8785614317565b81526020019081526020015f205414610c0f5760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a46565b609d548111610c865760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b610c9160018261432a565b609e555b8315610dfd57604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610cdd81613029565b15610d38575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d28908490614317565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610db5575060a85481145b15610dbf575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610c95575b505050505050565b60a85415610e555760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b610e5d613218565b5f80610e6984846131fd565b915091505f610e7c836001015160c01c90565b5f81815260a160205260409020549091508214610edb5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b610ee4816112fa565b610f305760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b610f3981613029565b15610f865760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003015460ff1615610fe75760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a46565b5f81815260a260205260409020600101544210156110475760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a46565b605983015160a05f61105a60018561432a565b81526020019081526020015f2054146110b55760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f81815260a06020526040902054156111105760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a46565b80609d54600101146111645760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b609d819055600160a35f611179866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111c660f98401601185015160c01c600986015160c01c61326b565b60a25f6111d460018461432a565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061120d908461432a565b81526020019081526020015f205f905560a45f60018361122d919061432a565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d6112d6866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061132257505f82815260a1602052604090205415155b92915050565b6113306131a3565b5f8111801561134157506099548114155b61138d5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a46565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b6113db6131a3565b6001600160a01b0381165f908152609f602052604090205460ff166114425760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a46565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610aa1565b6114986131a3565b6114a15f613334565b565b5f54610100900460ff16158080156114c157505f54600160ff909116105b806114da5750303b1580156114da57505f5460ff166001145b61154c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a46565b5f805460ff19166001179055801561158a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b03861615806115a757506001600160a01b038516155b156115de576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166116345760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a46565b61163c61339d565b611644613421565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156117dd575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6117ee6131a3565b6001600160a01b038116158015906118145750609c546001600160a01b03828116911614155b6118605760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a46565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b6118d16131a3565b5f811180156118e1575060648111155b80156118ef575060a9548114155b61193b5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a46565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b022391016113c7565b60a854156119c95760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b6119d1613218565b5f806119dd86866131fd565b915091505f6119f0836001015160c01c90565b5f81815260a160205260409020549091508214611a4f5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b611a5881613029565b611aa45760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff191690556099546002909101544291611afd91614317565b11611b73575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152611b6e918391906134a5565b6117dd565b611b7e838686613601565b6117dd81336040518060400160405280600d81526020017f50726f6f662073756363657373000000000000000000000000000000000000008152506137b4565b611bc66131a3565b60aa80545f909155611bd88282613880565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d8791016113c7565b611c1f6131a3565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415611c965760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a46565b5f80611ca284846131fd565b915091505f611cb5836001015160c01c90565b90505f611cc3846079015190565b905080611d125760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a46565b600984015160c01c15611d675760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a46565b5f611d73856019015190565b03611dc05760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a46565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014611dec856039015190565b14611e395760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a46565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b611f216131a3565b801561204257611f2f61392b565b60a65460ff16156120015760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091611f83908490614317565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b61204a613985565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612024565b50565b335f908152609f602052604090205460ff166120d25760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a46565b60a854156121225760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b61212a613218565b60a65460ff161561217d5760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a46565b8167ffffffffffffffff16609d54106121d85760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a16020526040902054811461223f5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b6122528267ffffffffffffffff166112fa565b61229e5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b0316156123195760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a2602052604090206001015442106123a95760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a46565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061241d919061433d565b34101561246c5760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b9976346040516125be91815260200190565b60405180910390a35f609d5460016125d69190614317565b90505b609e54811161262e578267ffffffffffffffff16811461261c576099545f82815260a2602052604081206001018054909190612616908490614317565b90915550505b8061262681614354565b9150506125d9565b505060a6805460ff1916600117905550565b335f90815260a560205260408120549081900361269f5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a46565b335f90815260a560205260408120556126b88282613880565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a826040516126f391815260200190565b60405180910390a25050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561276b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061278f919061438b565b6127db5760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a46565b60a8541561282b5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b612833613218565b61284060208301836143a6565b60ff16156128905760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a46565b5f61289e60408401846143c6565b915050806128ee5760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a46565b608083013561293f5760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a46565b60a08301356129905760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a46565b5f806129a76129a260208701876143c6565b6131fd565b915091505f6129ba836001015160c01c90565b90505f60a1816129cb846001614317565b81526020019081526020015f205414612a265760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a46565b609e548114612a775760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b5f81815260a160205260409020548214612ad35760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a46565b5f81815260ab6020526040902054608087013514612b335760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f612b42846011015160c01c90565b90505f8080612ba1612b5760408c018c6143c6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150612b9c905060608f018f6143c6565b6139be565b948501949384019392509050612bba60608b018b6143c6565b905061010060ff85010460200214612c145760405162461bcd60e51b815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a46565b600194909401935f804915612c2a575f49612c4c565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b90505f612c5c60608d018d6143c6565b612c68915060f9614317565b90506040519850602081028901604052612c96898d5f016020810190612c8e91906143a6565b60ff16613b3f565b60c087811b60018b015285811b60098b015286811b60118b015260198a0184905260808d013560598b015260a08d013560798b01528c013560998a0152612d0389612ce460208e018e6143c6565b604051612cf2929190614427565b604051809103902060b99190910152565b60d98901889052612d2089612d1b60608f018f6143c6565b613b46565b603989018290528089205f88815260a1602090815260408083209390935560ab905290812060a08e0135905560a65460ff1615612d865760a7545f90815260a460205260409020600201546099544291612d7991614317565b612d83919061432a565b90505b60405180608001604052804281526020018260985442612da69190614317565b612db09190614317565b8152602001612e018f8060400190612dc891906143c6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613b5292505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015612e75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e99919061433d565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590612f0190612efb908f018f6143c6565b5f613ba9565b5f8e8060400190612f1291906143c6565b6040518663ffffffff1660e01b8152600401612f3295949392919061447d565b602060405180830381865afa158015612f4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f71919061438b565b612fe35760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b5f81815260a460205260408120546801000000000000000090046001600160a01b0316158015906113225750505f90815260a46020526040902060030154610100900460ff161590565b61307b6131a3565b5f8111801561308c57506098548114155b6130d85760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a46565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a43791016113c7565b61311e6131a3565b6001600160a01b03811661319a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a46565b61207181613334565b6033546001600160a01b031633146114a15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a46565b5f805f61320a8585613bfd565b812090969095509350505050565b60655460ff16156114a15760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a46565b805f0361327757505050565b8082035f805b83811015610dfd5761010081850381111561329757508084035b8651609b546040517f55f613ce0000000000000000000000000000000000000000000000000000000081526004810187905260248101849052604481018390526020909901989194506001600160a01b0316906355f613ce906064015f604051808303815f87803b15801561330a575f80fd5b505af115801561331c573d5f803e3d5ffd5b5050505061010084019350506101008101905061327d565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166134195760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6114a1613cd4565b5f54610100900460ff1661349d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6114a1613d5c565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af1158015613529573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061354d919061433d565b5f86815260a4602052604090206001015490915061356c908290614317565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a5909152812080549091906135ab908490614317565b90915550506040516135be9084906144f0565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8061364e5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a46565b5f61365d846001015160c01c90565b90505f61366b856039015190565b90505f7f000000000000000000000000000000000000000000000000000000000000000061369a876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a84861375c885160f81c90565b858888866040518663ffffffff1660e01b815260040161378095949392919061451c565b5f6040518083038186803b158015613796575f80fd5b505afa1580156137a8573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906137d8908461454d565b6137e29190614564565b90506137ee818361432a565b60aa5f8282546137fe9190614317565b90915550506001600160a01b0384165f90815260a560205260408120805483929061382a908490614317565b909155505060405161383d9084906144f0565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613927575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146138cf576040519150601f19603f3d011682016040523d82523d5f602084013e6138d4565b606091505b50509050806139255760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a46565b505b5050565b613933613218565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586139683390565b6040516001600160a01b03909116815260200160405180910390a1565b61398d613de1565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613968565b60405185515f918291602089019190819084906139dc908590613e33565b90506002840193505f5b81811015613a6057603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613a36603c8361454d565b613a409087614317565b90505f613a5182603a015160f01c90565b979097019650506001016139e6565b506020850282016040525b8015613b2b575f613a8085603a015160f01c90565b9050613a9083828d8d8d8d613ec8565b92505f613aa1866038015160f01c90565b905081811015613af35760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a46565b50998a01999890980197603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613a6b565b508190039020989197509095505050505050565b8082535050565b808260f9850137505050565b5f805f6020840190506002810191505f613b6d828651613e33565b90505f5b613b7c60018361432a565b811015613b9257603c9390930192600101613b71565b505f613b9f845160c01c90565b9695505050505050565b60605f80808080613bbc888a018a614689565b9550955095509550955050818710613bda579450613bf69350505050565b838710613bee578295505050505050613bf6565b509293505050505b9392505050565b5f8160f9811015613c505760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a46565b6040519150808483378082016040525f613c6e836009015160c01c90565b905061010060ff82010460200260f9018214613ccc5760405162461bcd60e51b815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a46565b509250929050565b5f54610100900460ff16613d505760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6065805460ff19169055565b5f54610100900460ff16613dd85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6114a133613334565b60655460ff166114a15760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a46565b5f613e3f835160f01c90565b9050805f03613e7a576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e85603c8261454d565b613e90906002614317565b8214611322576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f855f03613ed7575085613b9f565b609b546001600160a01b03165f80805b89811015613fbd5760ff89169150600889901c811580613f05575082155b15613f14578060200288013593505b600184841c165f03613fac576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018a90525f906001600160a01b0387169063ae453cd590602401602060405180830381865afa158015613f7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fa2919061433d565b8d52506020909b019a5b506001988901989788019701613ee7565b505060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88011681811c600116156140385760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f7420736b6970206c617374204c31206d65737361676500000000006044820152606401610a46565b509798975050505050505050565b5f60208284031215614056575f80fd5b5035919050565b80356001600160a01b0381168114614073575f80fd5b919050565b5f60208284031215614088575f80fd5b613bf68261405d565b5f8083601f8401126140a1575f80fd5b50813567ffffffffffffffff8111156140b8575f80fd5b6020830191508360208285010111156140cf575f80fd5b9250929050565b5f805f604084860312156140e8575f80fd5b833567ffffffffffffffff8111156140fe575f80fd5b61410a86828701614091565b909790965060209590950135949350505050565b5f806020838503121561412f575f80fd5b823567ffffffffffffffff811115614145575f80fd5b61415185828601614091565b90969095509350505050565b5f805f805f8060c08789031215614172575f80fd5b61417b8761405d565b95506141896020880161405d565b94506141976040880161405d565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f80604085870312156141cb575f80fd5b843567ffffffffffffffff808211156141e2575f80fd5b6141ee88838901614091565b90965094506020870135915080821115614206575f80fd5b5061421387828801614091565b95989497509550505050565b8015158114612071575f80fd5b5f6020828403121561423c575f80fd5b8135613bf68161421f565b5f8060408385031215614258575f80fd5b823567ffffffffffffffff8116811461426f575f80fd5b946020939093013593505050565b5f806040838503121561428e575f80fd5b823567ffffffffffffffff808211156142a5575f80fd5b9084019060e082870312156142b8575f80fd5b909250602084013590808211156142cd575f80fd5b508301606081860312156142df575f80fd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115611322576113226142ea565b81810381811115611322576113226142ea565b5f6020828403121561434d575f80fd5b5051919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614384576143846142ea565b5060010190565b5f6020828403121561439b575f80fd5b8151613bf68161421f565b5f602082840312156143b6575f80fd5b813560ff81168114613bf6575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126143f9575f80fd5b83018035915067ffffffffffffffff821115614413575f80fd5b6020019150368190038213156140cf575f80fd5b818382375f9101908152919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156144c75784516001600160a01b0316835293830193918301916001016144a2565b505087604086015284810360608601526144e2818789614436565b9a9950505050505050505050565b5f82515f5b8181101561450f57602081860181015185830152016144f5565b505f920191825250919050565b858152846020820152608060408201525f61453b608083018587614436565b90508260608301529695505050505050565b8082028115828204841417611322576113226142ea565b5f82614597577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145d8575f80fd5b8135602067ffffffffffffffff808311156145f5576145f561459c565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156146385761463861459c565b6040529384526020818701810194908101925087851115614657575f80fd5b6020870191505b8482101561467e5761466f8261405d565b8352918301919083019061465e565b979650505050505050565b5f805f805f8060c0878903121561469e575f80fd5b86359550602087013567ffffffffffffffff808211156146bc575f80fd5b6146c88a838b016145c9565b96506040890135955060608901359150808211156146e4575f80fd5b6146f08a838b016145c9565b94506080890135935060a089013591508082111561470c575f80fd5b5061471989828a016145c9565b915050929550929550929556fea164736f6c6343000818000a", } // RollupABI is the input ABI used to generate the binding from. @@ -619,6 +619,37 @@ func (_Rollup *RollupCallerSession) CommittedBatches(batchIndex *big.Int) ([32]b return _Rollup.Contract.CommittedBatches(&_Rollup.CallOpts, batchIndex) } +// CommittedStateRoots is a free data retrieval call binding the contract method 0x68589dfa. +// +// Solidity: function committedStateRoots(uint256 batchIndex) view returns(bytes32 stateRoot) +func (_Rollup *RollupCaller) CommittedStateRoots(opts *bind.CallOpts, batchIndex *big.Int) ([32]byte, error) { + var out []interface{} + err := _Rollup.contract.Call(opts, &out, "committedStateRoots", batchIndex) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// CommittedStateRoots is a free data retrieval call binding the contract method 0x68589dfa. +// +// Solidity: function committedStateRoots(uint256 batchIndex) view returns(bytes32 stateRoot) +func (_Rollup *RollupSession) CommittedStateRoots(batchIndex *big.Int) ([32]byte, error) { + return _Rollup.Contract.CommittedStateRoots(&_Rollup.CallOpts, batchIndex) +} + +// CommittedStateRoots is a free data retrieval call binding the contract method 0x68589dfa. +// +// Solidity: function committedStateRoots(uint256 batchIndex) view returns(bytes32 stateRoot) +func (_Rollup *RollupCallerSession) CommittedStateRoots(batchIndex *big.Int) ([32]byte, error) { + return _Rollup.Contract.CommittedStateRoots(&_Rollup.CallOpts, batchIndex) +} + // FinalizationPeriodSeconds is a free data retrieval call binding the contract method 0xce5db8d6. // // Solidity: function finalizationPeriodSeconds() view returns(uint256) diff --git a/bindings/bindings/rollup_more.go b/bindings/bindings/rollup_more.go index bcab9c671..96e82c601 100644 --- a/bindings/bindings/rollup_more.go +++ b/bindings/bindings/rollup_more.go @@ -9,11 +9,11 @@ import ( "morph-l2/bindings/solc" ) -const RollupStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1028_storage\"},{\"astId\":1003,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1027_storage\"},{\"astId\":1005,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"_paused\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_bool\"},{\"astId\":1006,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_uint256)1027_storage\"},{\"astId\":1007,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"l1StakingContract\",\"offset\":0,\"slot\":\"151\",\"type\":\"t_address\"},{\"astId\":1008,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"finalizationPeriodSeconds\",\"offset\":0,\"slot\":\"152\",\"type\":\"t_uint256\"},{\"astId\":1009,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"proofWindow\",\"offset\":0,\"slot\":\"153\",\"type\":\"t_uint256\"},{\"astId\":1010,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"__maxNumTxInChunk\",\"offset\":0,\"slot\":\"154\",\"type\":\"t_uint256\"},{\"astId\":1011,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"messageQueue\",\"offset\":0,\"slot\":\"155\",\"type\":\"t_address\"},{\"astId\":1012,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"verifier\",\"offset\":0,\"slot\":\"156\",\"type\":\"t_address\"},{\"astId\":1013,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"lastFinalizedBatchIndex\",\"offset\":0,\"slot\":\"157\",\"type\":\"t_uint256\"},{\"astId\":1014,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"lastCommittedBatchIndex\",\"offset\":0,\"slot\":\"158\",\"type\":\"t_uint256\"},{\"astId\":1015,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"isChallenger\",\"offset\":0,\"slot\":\"159\",\"type\":\"t_mapping(t_address,t_bool)\"},{\"astId\":1016,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"finalizedStateRoots\",\"offset\":0,\"slot\":\"160\",\"type\":\"t_mapping(t_uint256,t_bytes32)\"},{\"astId\":1017,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"committedBatches\",\"offset\":0,\"slot\":\"161\",\"type\":\"t_mapping(t_uint256,t_bytes32)\"},{\"astId\":1018,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"batchDataStore\",\"offset\":0,\"slot\":\"162\",\"type\":\"t_mapping(t_uint256,t_struct(BatchData)1030_storage)\"},{\"astId\":1019,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"withdrawalRoots\",\"offset\":0,\"slot\":\"163\",\"type\":\"t_mapping(t_bytes32,t_bool)\"},{\"astId\":1020,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"challenges\",\"offset\":0,\"slot\":\"164\",\"type\":\"t_mapping(t_uint256,t_struct(BatchChallenge)1029_storage)\"},{\"astId\":1021,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"batchChallengeReward\",\"offset\":0,\"slot\":\"165\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":1022,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"inChallenge\",\"offset\":0,\"slot\":\"166\",\"type\":\"t_bool\"},{\"astId\":1023,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"batchChallenged\",\"offset\":0,\"slot\":\"167\",\"type\":\"t_uint256\"},{\"astId\":1024,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"revertReqIndex\",\"offset\":0,\"slot\":\"168\",\"type\":\"t_uint256\"},{\"astId\":1025,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"proofRewardPercent\",\"offset\":0,\"slot\":\"169\",\"type\":\"t_uint256\"},{\"astId\":1026,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"proveRemaining\",\"offset\":0,\"slot\":\"170\",\"type\":\"t_uint256\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_uint256)1027_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1028_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_address,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_bool\"},\"t_mapping(t_address,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_uint256\"},\"t_mapping(t_bytes32,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_bool\"},\"t_mapping(t_uint256,t_bytes32)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e bytes32)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_bytes32\"},\"t_mapping(t_uint256,t_struct(BatchChallenge)1029_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e struct IRollup.BatchChallenge)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_struct(BatchChallenge)1029_storage\"},\"t_mapping(t_uint256,t_struct(BatchData)1030_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e struct IRollup.BatchData)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_struct(BatchData)1030_storage\"},\"t_struct(BatchChallenge)1029_storage\":{\"encoding\":\"inplace\",\"label\":\"struct IRollup.BatchChallenge\",\"numberOfBytes\":\"128\"},\"t_struct(BatchData)1030_storage\":{\"encoding\":\"inplace\",\"label\":\"struct IRollup.BatchData\",\"numberOfBytes\":\"128\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint64\":{\"encoding\":\"inplace\",\"label\":\"uint64\",\"numberOfBytes\":\"8\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" +const RollupStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1029_storage\"},{\"astId\":1003,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1028_storage\"},{\"astId\":1005,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"_paused\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_bool\"},{\"astId\":1006,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_uint256)1028_storage\"},{\"astId\":1007,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"l1StakingContract\",\"offset\":0,\"slot\":\"151\",\"type\":\"t_address\"},{\"astId\":1008,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"finalizationPeriodSeconds\",\"offset\":0,\"slot\":\"152\",\"type\":\"t_uint256\"},{\"astId\":1009,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"proofWindow\",\"offset\":0,\"slot\":\"153\",\"type\":\"t_uint256\"},{\"astId\":1010,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"__maxNumTxInChunk\",\"offset\":0,\"slot\":\"154\",\"type\":\"t_uint256\"},{\"astId\":1011,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"messageQueue\",\"offset\":0,\"slot\":\"155\",\"type\":\"t_address\"},{\"astId\":1012,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"verifier\",\"offset\":0,\"slot\":\"156\",\"type\":\"t_address\"},{\"astId\":1013,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"lastFinalizedBatchIndex\",\"offset\":0,\"slot\":\"157\",\"type\":\"t_uint256\"},{\"astId\":1014,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"lastCommittedBatchIndex\",\"offset\":0,\"slot\":\"158\",\"type\":\"t_uint256\"},{\"astId\":1015,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"isChallenger\",\"offset\":0,\"slot\":\"159\",\"type\":\"t_mapping(t_address,t_bool)\"},{\"astId\":1016,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"finalizedStateRoots\",\"offset\":0,\"slot\":\"160\",\"type\":\"t_mapping(t_uint256,t_bytes32)\"},{\"astId\":1017,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"committedBatches\",\"offset\":0,\"slot\":\"161\",\"type\":\"t_mapping(t_uint256,t_bytes32)\"},{\"astId\":1018,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"batchDataStore\",\"offset\":0,\"slot\":\"162\",\"type\":\"t_mapping(t_uint256,t_struct(BatchData)1031_storage)\"},{\"astId\":1019,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"withdrawalRoots\",\"offset\":0,\"slot\":\"163\",\"type\":\"t_mapping(t_bytes32,t_bool)\"},{\"astId\":1020,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"challenges\",\"offset\":0,\"slot\":\"164\",\"type\":\"t_mapping(t_uint256,t_struct(BatchChallenge)1030_storage)\"},{\"astId\":1021,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"batchChallengeReward\",\"offset\":0,\"slot\":\"165\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":1022,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"inChallenge\",\"offset\":0,\"slot\":\"166\",\"type\":\"t_bool\"},{\"astId\":1023,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"batchChallenged\",\"offset\":0,\"slot\":\"167\",\"type\":\"t_uint256\"},{\"astId\":1024,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"revertReqIndex\",\"offset\":0,\"slot\":\"168\",\"type\":\"t_uint256\"},{\"astId\":1025,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"proofRewardPercent\",\"offset\":0,\"slot\":\"169\",\"type\":\"t_uint256\"},{\"astId\":1026,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"proveRemaining\",\"offset\":0,\"slot\":\"170\",\"type\":\"t_uint256\"},{\"astId\":1027,\"contract\":\"contracts/l1/rollup/Rollup.sol:Rollup\",\"label\":\"committedStateRoots\",\"offset\":0,\"slot\":\"171\",\"type\":\"t_mapping(t_uint256,t_bytes32)\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_uint256)1028_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1029_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_address,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_bool\"},\"t_mapping(t_address,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_uint256\"},\"t_mapping(t_bytes32,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_bool\"},\"t_mapping(t_uint256,t_bytes32)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e bytes32)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_bytes32\"},\"t_mapping(t_uint256,t_struct(BatchChallenge)1030_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e struct IRollup.BatchChallenge)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_struct(BatchChallenge)1030_storage\"},\"t_mapping(t_uint256,t_struct(BatchData)1031_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e struct IRollup.BatchData)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_struct(BatchData)1031_storage\"},\"t_struct(BatchChallenge)1030_storage\":{\"encoding\":\"inplace\",\"label\":\"struct IRollup.BatchChallenge\",\"numberOfBytes\":\"128\"},\"t_struct(BatchData)1031_storage\":{\"encoding\":\"inplace\",\"label\":\"struct IRollup.BatchData\",\"numberOfBytes\":\"128\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint64\":{\"encoding\":\"inplace\",\"label\":\"uint64\",\"numberOfBytes\":\"8\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" var RollupStorageLayout = new(solc.StorageLayout) -var RollupDeployedBin = "0x6080604052600436106102f0575f3560e01c80638da5cb5b11610186578063b3e0a509116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109ac578063f2fde38b146109cb578063fb1e8b04146109ea575f80fd5b8063ddd8a3dc1461094c578063de8b303514610978578063dff7827e14610997575f80fd5b8063ce5db8d6116100b7578063ce5db8d614610905578063d279c1911461091a578063d63b354914610939575f80fd5b8063b3e0a509146108b4578063bedb86fb146108d3578063cd4edc69146108f2575f80fd5b8063a479265d1161013c578063b31a77d311610117578063b31a77d314610861578063b348442514610876578063b35dac4e14610895575f80fd5b8063a479265d14610802578063a4f209b014610817578063abc8d68d14610836575f80fd5b8063910129d41161016c578063910129d41461078457806397fc007c146107b5578063a415d8dc146107d4575f80fd5b80638da5cb5b146106905780638f1d3776146106ba575f80fd5b80632571098d116102465780635ef7a94a116101f1578063715018a6116101cc578063715018a614610644578063728cdbca1461065857806388b1ea0914610677575f80fd5b80635ef7a94a146105795780635f77cf1d146105d95780636c578c1d14610625575f80fd5b80633e001b66116102215780633e001b661461052e57806357e0af6c146105435780635c975abb14610562575f80fd5b80632571098d146104865780632b7ac3f3146104b15780633b70c18a14610502575f80fd5b8063121dcd50116102a657806318af3b2b1161028157806318af3b2b1461040c57806321e2f9e01461043c5780632362f03e1461045b575f80fd5b8063121dcd50146103c357806313361101146103d857806318463fb0146103f7575f80fd5b80630ceb6780116102d65780630ceb67801461036157806310d4458314610382578063116a1f42146103a1575f80fd5b806304d77215146102fb578063059def611461033e575f80fd5b366102f757005b5f80fd5b348015610306575f80fd5b506103296103153660046149ce565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610349575f80fd5b50610353609d5481565b604051908152602001610335565b34801561036c575f80fd5b5061038061037b366004614a0d565b6109ff565b005b34801561038d575f80fd5b5061038061039c366004614a6b565b610b23565b3480156103ac575f80fd5b506103296103bb3660046149ce565b609d54101590565b3480156103ce575f80fd5b50610353609e5481565b3480156103e3575f80fd5b506103806103f2366004614ab3565b610f0f565b348015610402575f80fd5b5061035360a75481565b348015610417575f80fd5b506103296104263660046149ce565b5f90815260a26020526040902060010154421090565b348015610447575f80fd5b506103296104563660046149ce565b6114ec565b348015610466575f80fd5b506103536104753660046149ce565b60a16020525f908152604090205481565b348015610491575f80fd5b506103536104a03660046149ce565b60a06020525f908152604090205481565b3480156104bc575f80fd5b50609c546104dd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610335565b34801561050d575f80fd5b50609b546104dd9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610539575f80fd5b5061035360aa5481565b34801561054e575f80fd5b5061038061055d3660046149ce565b61151a565b34801561056d575f80fd5b5060655460ff16610329565b348015610584575f80fd5b506105b96105933660046149ce565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610335565b3480156105e4575f80fd5b5061060c7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610335565b348015610630575f80fd5b5061038061063f366004614a0d565b6115df565b34801561064f575f80fd5b506103806116ee565b348015610663575f80fd5b50610380610672366004614af2565b611701565b348015610682575f80fd5b5060a6546103299060ff1681565b34801561069b575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166104dd565b3480156106c5575f80fd5b506107336106d43660046149ce565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff8316936801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16929060ff8082169161010090041686565b6040805167ffffffffffffffff909716875273ffffffffffffffffffffffffffffffffffffffff909516602087015293850192909252606084015215156080830152151560a082015260c001610335565b34801561078f575f80fd5b5061032961079e3660046149ce565b5f90815260a4602052604090206003015460ff1690565b3480156107c0575f80fd5b506103806107cf366004614a0d565b611aca565b3480156107df575f80fd5b506103296107ee366004614a0d565b609f6020525f908152604090205460ff1681565b34801561080d575f80fd5b5061035360995481565b348015610822575f80fd5b506103806108313660046149ce565b611bee565b348015610841575f80fd5b50610353610850366004614a0d565b60a56020525f908152604090205481565b34801561086c575f80fd5b5061035360a85481565b348015610881575f80fd5b50610380610890366004614b4d565b611cb8565b3480156108a0575f80fd5b506103806108af366004614a0d565b611f87565b3480156108bf575f80fd5b506103806108ce366004614ab3565b611fed565b3480156108de575f80fd5b506103806108ed366004614bc1565b612367565b610380610900366004614bdc565b6124fa565b348015610910575f80fd5b5061035360985481565b348015610925575f80fd5b50610380610934366004614a0d565b612c0f565b610380610947366004614c12565b612cf5565b348015610957575f80fd5b506097546104dd9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610983575f80fd5b506103296109923660046149ce565b61370e565b3480156109a2575f80fd5b50610353609a5481565b3480156109b7575f80fd5b506103806109c63660046149ce565b613765565b3480156109d6575f80fd5b506103806109e5366004614a0d565b613822565b3480156109f5575f80fd5b5061035360a95481565b610a076138d6565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1615610a9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610b2b6138d6565b5f8111610b94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a92565b5f80610ba08585613957565b915091505f610bb3836001015160c01c90565b5f81815260a160205260409020549091508214610c2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a92565b5f60a181610c3a8785614cac565b81526020019081526020015f205414610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a92565b609d548111610d65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a92565b610d70600182614cbf565b609e555b8315610f0757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610dbc8161370e565b15610e42575f81815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091610e14908490614cac565b909155505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ebf575060a85481145b15610ec9575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610d74575b505050505050565b60a85415610f79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a92565b610f81613972565b5f80610f8d8484613957565b915091505f610fa0836001015160c01c90565b5f81815260a160205260409020549091508214611019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a92565b611022816114ec565b611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a92565b6110918161370e565b156110f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a92565b5f81815260a4602052604090206003015460ff1615611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a92565b5f81815260a260205260409020600101544210156111ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a92565b605983015160a05f611200600185614cbf565b81526020019081526020015f205414611275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a92565b5f81815260a06020526040902054156112ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a92565b80609d5460010114611358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a92565b609d819055600160a35f61136d866099015190565b815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905560798301515f82815260a060205260409020556113d860f98401601185015160c01c600986015160c01c6139df565b60a25f6113e6600184614cbf565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560a4919061141f9084614cbf565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d6114c8866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061151457505f82815260a1602052604090205415155b92915050565b6115226138d6565b5f8111801561153357506099548114155b611599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a92565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b6115e76138d6565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff16611675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a92565b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610b18565b6116f66138d6565b6116ff5f613ab5565b565b5f54610100900460ff161580801561171f57505f54600160ff909116105b806117385750303b15801561173857505f5460ff166001145b6117c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a92565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611820575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff86161580611857575073ffffffffffffffffffffffffffffffffffffffff8516155b1561188e576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff871661190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a92565b611913613b2b565b61191b613bc9565b6097805473ffffffffffffffffffffffffffffffffffffffff808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015611ac1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b611ad26138d6565b73ffffffffffffffffffffffffffffffffffffffff811615801590611b125750609c5473ffffffffffffffffffffffffffffffffffffffff828116911614155b611b78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a92565b609c805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b611bf66138d6565b5f81118015611c06575060648111155b8015611c14575060a9548114155b611c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a92565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b022391016115d3565b60a85415611d22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a92565b611d2a613972565b5f80611d368686613957565b915091505f611d49836001015160c01c90565b5f81815260a160205260409020549091508214611dc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a92565b611dcb8161370e565b611e31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a92565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556099546002909101544291611ea891614cac565b11611f3c575f81815260a460209081526040808320600390810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152611f3791839190613c67565b611ac1565b611f47838686613dea565b611ac181336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613fc4565b611f8f6138d6565b60aa80545f909155611fa182826140aa565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d8791016115d3565b611ff56138d6565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415612086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a92565b5f806120928484613957565b915091505f6120a5836001015160c01c90565b90505f6120b3846079015190565b90508061211c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a92565b600984015160c01c1561218b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a92565b5f612197856019015190565b036121fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a92565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401461222a856039015190565b14612291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a92565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b61236f6138d6565b80156124c85761237d61417c565b60a65460ff161561247a5760a7545f90815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a590925282208054919290916123de908490614cac565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a150565b6124d0614201565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361249d565b50565b335f908152609f602052604090205460ff16612572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a92565b60a854156125dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a92565b6125e4613972565b60a65460ff1615612651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a92565b8167ffffffffffffffff16609d54106126c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a92565b67ffffffffffffffff82165f90815260a160205260409020548114612747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a92565b61275a8267ffffffffffffffff166114ec565b6127c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a92565b67ffffffffffffffff82165f90815260a4602052604090205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1615612862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a92565b67ffffffffffffffff82165f90815260a26020526040902060010154421061290c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a92565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612976573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061299a9190614cd2565b341015612a03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a92565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a49095529690962094518554925173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009093169290921792909217905573ffffffffffffffffffffffffffffffffffffffff168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b997634604051612b6f91815260200190565b60405180910390a35f609d546001612b879190614cac565b90505b609e548111612bdf578267ffffffffffffffff168114612bcd576099545f82815260a2602052604081206001018054909190612bc7908490614cac565b90915550505b80612bd781614ce9565b915050612b8a565b505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b335f90815260a5602052604081205490819003612c88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a92565b335f90815260a56020526040812055612ca182826140aa565b8173ffffffffffffffffffffffffffffffffffffffff167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a82604051612ce991815260200190565b60405180910390a25050565b60975473ffffffffffffffffffffffffffffffffffffffff166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015612d7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d9f9190614d20565b612e05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a92565b60a85415612e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a92565b612e77613972565b612e846020830183614d3b565b60ff1615612eee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a92565b5f612efc6040840184614d5b565b91505080612f66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a92565b6080830135612fd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a92565b60a083013561303c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a92565b5f8061305361304e6020870187614d5b565b613957565b915091505f613066836001015160c01c90565b5f81815260a1602052604090205490915082146130df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a92565b5f60a1816130ee846001614cac565b81526020019081526020015f205414613163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a92565b609e5481146131ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a92565b5f6131dd846011015160c01c90565b90505f808061323c6131f260408c018c614d5b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150613237905060608f018f614d5b565b614258565b94850194938401939250905061325560608b018b614d5b565b905061010060ff850104602002146132c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a92565b600194909401935f8049156132df575f49613301565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b90505f61331160608d018d614d5b565b61331d915060f9614cac565b9050604051985060208102890160405261334b898d5f0160208101906133439190614d3b565b60ff166143f3565b60c087811b60018b015285811b60098b015286811b60118b015260198a0184905260808d013560598b015260a08d013560798b01528c013560998a01526133b88961339960208e018e614d5b565b6040516133a7929190614dbc565b604051809103902060b99190910152565b60d989018890526133d5896133d060608f018f614d5b565b6143fa565b603989018290528089205f88815260a1602052604081209190915560a65460ff161561342a5760a7545f90815260a46020526040902060020154609954429161341d91614cac565b6134279190614cbf565b90505b6040518060800160405280428152602001826098544261344a9190614cac565b6134549190614cac565b81526020016134a58f806040019061346c9190614d5b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061440692505050565b815260975460209091019073ffffffffffffffffffffffffffffffffffffffff1663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015613533573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135579190614cd2565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e89905560975473ffffffffffffffffffffffffffffffffffffffff1692506374fe27b791508c35906135cc906135c6908f018f614d5b565b5f61445d565b5f8e80604001906135dd9190614d5b565b6040518663ffffffff1660e01b81526004016135fd959493929190614e12565b602060405180830381865afa158015613618573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061363c9190614d20565b6136c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a92565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b5f81815260a4602052604081205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16158015906115145750505f90815260a46020526040902060030154610100900460ff161590565b61376d6138d6565b5f8111801561377e57506098548114155b6137e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a92565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a43791016115d3565b61382a6138d6565b73ffffffffffffffffffffffffffffffffffffffff81166138cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a92565b6124f781613ab5565b60335473ffffffffffffffffffffffffffffffffffffffff1633146116ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a92565b5f805f61396485856144b1565b812090969095509350505050565b60655460ff16156116ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a92565b805f036139eb57505050565b8082035f805b83811015610f0757610100818503811115613a0b57508084035b8651609b546040517f55f613ce00000000000000000000000000000000000000000000000000000000815260048101879052602481018490526044810183905260209099019891945073ffffffffffffffffffffffffffffffffffffffff16906355f613ce906064015f604051808303815f87803b158015613a8b575f80fd5b505af1158015613a9d573d5f803e3d5ffd5b505050506101008401935050610100810190506139f1565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613bc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a92565b6116ff6145bc565b5f54610100900460ff16613c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a92565b6116ff61467c565b60a88390555f83815260a460205260408082205460975491517f45bc4d10000000000000000000000000000000000000000000000000000000008152600481018690526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff908116939216906345bc4d10906024016020604051808303815f875af1158015613cf8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d1c9190614cd2565b5f86815260a46020526040902060010154909150613d3b908290614cac565b5f86815260a4602090815260408083205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16835260a590915281208054909190613d87908490614cac565b9091555050604051613d9a908490614e92565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff84169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613e51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a92565b5f613e60846001015160c01c90565b90505f613e6e856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613e9d876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c5490915073ffffffffffffffffffffffffffffffffffffffff16632c09a848613f6c885160f81c90565b858888866040518663ffffffff1660e01b8152600401613f90959493929190614ebe565b5f6040518083038186803b158015613fa6575f80fd5b505afa158015613fb8573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613fe89084614eef565b613ff29190614f06565b9050613ffe8183614cbf565b60aa5f82825461400e9190614cac565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f90815260a5602052604081208054839290614047908490614cac565b909155505060405161405a908490614e92565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff86169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015614178575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114614106576040519150601f19603f3d011682016040523d82523d5f602084013e61410b565b606091505b5050905080614176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a92565b505b5050565b614184613972565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586141d73390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61420961471b565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336141d7565b60405185515f91829160208901919081908490614276908590614787565b90506002840193505f5b818110156142fa57603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f6142d0603c83614eef565b6142da9087614cac565b90505f6142eb82603a015160f01c90565b97909701965050600101614280565b506020850282016040525b80156143df575f61431a85603a015160f01c90565b905061432a83828d8d8d8d61481c565b92505f61433b866038015160f01c90565b9050818110156143a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a92565b50998a01999890980197603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01614305565b508190039020989197509095505050505050565b8082535050565b808260f9850137505050565b5f805f6020840190506002810191505f614421828651614787565b90505f5b614430600183614cbf565b81101561444657603c9390930192600101614425565b505f614453845160c01c90565b9695505050505050565b60605f80808080614470888a018a61502b565b955095509550955095505081871061448e5794506144aa9350505050565b8387106144a25782955050505050506144aa565b509293505050505b9392505050565b5f8160f981101561451e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a92565b6040519150808483378082016040525f61453c836009015160c01c90565b905061010060ff82010460200260f90182146145b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a92565b509250929050565b5f54610100900460ff16614652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a92565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff16614712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a92565b6116ff33613ab5565b60655460ff166116ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a92565b5f614793835160f01c90565b9050805f036147ce576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6147d9603c82614eef565b6147e4906002614cac565b8214611514576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f855f0361482b575085614453565b609b5473ffffffffffffffffffffffffffffffffffffffff165f80805b8981101561492b5760ff89169150600889901c811580614866575082155b15614875578060200288013593505b600184841c165f0361491a576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018a90525f9073ffffffffffffffffffffffffffffffffffffffff87169063ae453cd590602401602060405180830381865afa1580156148ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149109190614cd2565b8d52506020909b019a5b506001988901989788019701614848565b505060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88011681811c600116156149c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f63616e6e6f7420736b6970206c617374204c31206d65737361676500000000006044820152606401610a92565b509798975050505050505050565b5f602082840312156149de575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114614a08575f80fd5b919050565b5f60208284031215614a1d575f80fd5b6144aa826149e5565b5f8083601f840112614a36575f80fd5b50813567ffffffffffffffff811115614a4d575f80fd5b602083019150836020828501011115614a64575f80fd5b9250929050565b5f805f60408486031215614a7d575f80fd5b833567ffffffffffffffff811115614a93575f80fd5b614a9f86828701614a26565b909790965060209590950135949350505050565b5f8060208385031215614ac4575f80fd5b823567ffffffffffffffff811115614ada575f80fd5b614ae685828601614a26565b90969095509350505050565b5f805f805f8060c08789031215614b07575f80fd5b614b10876149e5565b9550614b1e602088016149e5565b9450614b2c604088016149e5565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614b60575f80fd5b843567ffffffffffffffff80821115614b77575f80fd5b614b8388838901614a26565b90965094506020870135915080821115614b9b575f80fd5b50614ba887828801614a26565b95989497509550505050565b80151581146124f7575f80fd5b5f60208284031215614bd1575f80fd5b81356144aa81614bb4565b5f8060408385031215614bed575f80fd5b823567ffffffffffffffff81168114614c04575f80fd5b946020939093013593505050565b5f8060408385031215614c23575f80fd5b823567ffffffffffffffff80821115614c3a575f80fd5b9084019060e08287031215614c4d575f80fd5b90925060208401359080821115614c62575f80fd5b50830160608186031215614c74575f80fd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561151457611514614c7f565b8181038181111561151457611514614c7f565b5f60208284031215614ce2575f80fd5b5051919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614d1957614d19614c7f565b5060010190565b5f60208284031215614d30575f80fd5b81516144aa81614bb4565b5f60208284031215614d4b575f80fd5b813560ff811681146144aa575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614d8e575f80fd5b83018035915067ffffffffffffffff821115614da8575f80fd5b602001915036819003821315614a64575f80fd5b818382375f9101908152919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b81811015614e6957845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101614e37565b50508760408601528481036060860152614e84818789614dcb565b9a9950505050505050505050565b5f82515f5b81811015614eb15760208186018101518583015201614e97565b505f920191825250919050565b858152846020820152608060408201525f614edd608083018587614dcb565b90508260608301529695505050505050565b808202811582820484141761151457611514614c7f565b5f82614f39577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112614f7a575f80fd5b8135602067ffffffffffffffff80831115614f9757614f97614f3e565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614fda57614fda614f3e565b6040529384526020818701810194908101925087851115614ff9575f80fd5b6020870191505b8482101561502057615011826149e5565b83529183019190830190615000565b979650505050505050565b5f805f805f8060c08789031215615040575f80fd5b86359550602087013567ffffffffffffffff8082111561505e575f80fd5b61506a8a838b01614f6b565b9650604089013595506060890135915080821115615086575f80fd5b6150928a838b01614f6b565b94506080890135935060a08901359150808211156150ae575f80fd5b506150bb89828a01614f6b565b915050929550929550929556fea164736f6c6343000818000a" +var RollupDeployedBin = "0x6080604052600436106102fb575f3560e01c806388b1ea0911610191578063b3e0a509116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109e2578063f2fde38b14610a01578063fb1e8b0414610a20575f80fd5b8063ddd8a3dc14610982578063de8b3035146109ae578063dff7827e146109cd575f80fd5b8063ce5db8d6116100b7578063ce5db8d61461093b578063d279c19114610950578063d63b35491461096f575f80fd5b8063b3e0a509146108ea578063bedb86fb14610909578063cd4edc6914610928575f80fd5b8063a479265d1161013c578063b31a77d311610117578063b31a77d314610897578063b3484425146108ac578063b35dac4e146108cb575f80fd5b8063a479265d14610838578063a4f209b01461084d578063abc8d68d1461086c575f80fd5b8063910129d41161016c578063910129d4146107ba57806397fc007c146107eb578063a415d8dc1461080a575f80fd5b806388b1ea09146106ad5780638da5cb5b146106c65780638f1d3776146106f0575f80fd5b80632571098d116102515780635ef7a94a116101fc5780636c578c1d116101d75780636c578c1d1461065b578063715018a61461067a578063728cdbca1461068e575f80fd5b80635ef7a94a146105845780635f77cf1d146105e457806368589dfa14610630575f80fd5b80633e001b661161022c5780633e001b661461053957806357e0af6c1461054e5780635c975abb1461056d575f80fd5b80632571098d146104915780632b7ac3f3146104bc5780633b70c18a1461050d575f80fd5b8063121dcd50116102b157806318af3b2b1161028c57806318af3b2b1461041757806321e2f9e0146104475780632362f03e14610466575f80fd5b8063121dcd50146103ce57806313361101146103e357806318463fb014610402575f80fd5b80630ceb6780116102e15780630ceb67801461036c57806310d445831461038d578063116a1f42146103ac575f80fd5b806304d7721514610306578063059def6114610349575f80fd5b3661030257005b5f80fd5b348015610311575f80fd5b50610334610320366004614ab8565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610354575f80fd5b5061035e609d5481565b604051908152602001610340565b348015610377575f80fd5b5061038b610386366004614af7565b610a35565b005b348015610398575f80fd5b5061038b6103a7366004614b55565b610b59565b3480156103b7575f80fd5b506103346103c6366004614ab8565b609d54101590565b3480156103d9575f80fd5b5061035e609e5481565b3480156103ee575f80fd5b5061038b6103fd366004614b9d565b610f45565b34801561040d575f80fd5b5061035e60a75481565b348015610422575f80fd5b50610334610431366004614ab8565b5f90815260a26020526040902060010154421090565b348015610452575f80fd5b50610334610461366004614ab8565b611542565b348015610471575f80fd5b5061035e610480366004614ab8565b60a16020525f908152604090205481565b34801561049c575f80fd5b5061035e6104ab366004614ab8565b60a06020525f908152604090205481565b3480156104c7575f80fd5b50609c546104e89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610340565b348015610518575f80fd5b50609b546104e89073ffffffffffffffffffffffffffffffffffffffff1681565b348015610544575f80fd5b5061035e60aa5481565b348015610559575f80fd5b5061038b610568366004614ab8565b611570565b348015610578575f80fd5b5060655460ff16610334565b34801561058f575f80fd5b506105c461059e366004614ab8565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610340565b3480156105ef575f80fd5b506106177f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610340565b34801561063b575f80fd5b5061035e61064a366004614ab8565b60ab6020525f908152604090205481565b348015610666575f80fd5b5061038b610675366004614af7565b611635565b348015610685575f80fd5b5061038b611744565b348015610699575f80fd5b5061038b6106a8366004614bdc565b611757565b3480156106b8575f80fd5b5060a6546103349060ff1681565b3480156106d1575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166104e8565b3480156106fb575f80fd5b5061076961070a366004614ab8565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff8316936801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16929060ff8082169161010090041686565b6040805167ffffffffffffffff909716875273ffffffffffffffffffffffffffffffffffffffff909516602087015293850192909252606084015215156080830152151560a082015260c001610340565b3480156107c5575f80fd5b506103346107d4366004614ab8565b5f90815260a4602052604090206003015460ff1690565b3480156107f6575f80fd5b5061038b610805366004614af7565b611b20565b348015610815575f80fd5b50610334610824366004614af7565b609f6020525f908152604090205460ff1681565b348015610843575f80fd5b5061035e60995481565b348015610858575f80fd5b5061038b610867366004614ab8565b611c44565b348015610877575f80fd5b5061035e610886366004614af7565b60a56020525f908152604090205481565b3480156108a2575f80fd5b5061035e60a85481565b3480156108b7575f80fd5b5061038b6108c6366004614c37565b611d0e565b3480156108d6575f80fd5b5061038b6108e5366004614af7565b611fdd565b3480156108f5575f80fd5b5061038b610904366004614b9d565b612043565b348015610914575f80fd5b5061038b610923366004614cab565b6123c7565b61038b610936366004614cc6565b61255a565b348015610946575f80fd5b5061035e60985481565b34801561095b575f80fd5b5061038b61096a366004614af7565b612c6f565b61038b61097d366004614cfc565b612d55565b34801561098d575f80fd5b506097546104e89073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109b9575f80fd5b506103346109c8366004614ab8565b6137f8565b3480156109d8575f80fd5b5061035e609a5481565b3480156109ed575f80fd5b5061038b6109fc366004614ab8565b61384f565b348015610a0c575f80fd5b5061038b610a1b366004614af7565b61390c565b348015610a2b575f80fd5b5061035e60a95481565b610a3d6139c0565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1615610ad1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610b616139c0565b5f8111610bca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610ac8565b5f80610bd68585613a41565b915091505f610be9836001015160c01c90565b5f81815260a160205260409020549091508214610c62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b5f60a181610c708785614d96565b81526020019081526020015f205414610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610ac8565b609d548111610d9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610ac8565b610da6600182614da9565b609e555b8315610f3d57604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610df2816137f8565b15610e78575f81815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091610e4a908490614d96565b909155505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ef5575060a85481145b15610eff575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610daa575b505050505050565b60a85415610faf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b610fb7613a5c565b5f80610fc38484613a41565b915091505f610fd6836001015160c01c90565b5f81815260a16020526040902054909150821461104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b61105881611542565b6110be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610ac8565b6110c7816137f8565b1561112e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610ac8565b5f81815260a4602052604090206003015460ff16156111a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610ac8565b5f81815260a26020526040902060010154421015611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610ac8565b605983015160a05f611236600185614da9565b81526020019081526020015f2054146112ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610ac8565b5f81815260a0602052604090205415611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610ac8565b80609d546001011461138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610ac8565b609d819055600160a35f6113a3866099015190565b815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905560798301515f82815260a0602052604090205561140e60f98401601185015160c01c600986015160c01c613ac9565b60a25f61141c600184614da9565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906114559084614da9565b81526020019081526020015f205f905560a45f6001836114759190614da9565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d61151e866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061156a57505f82815260a1602052604090205415155b92915050565b6115786139c0565b5f8111801561158957506099548114155b6115ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610ac8565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b61163d6139c0565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff166116cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610ac8565b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610b4e565b61174c6139c0565b6117555f613b9f565b565b5f54610100900460ff161580801561177557505f54600160ff909116105b8061178e5750303b15801561178e57505f5460ff166001145b61181a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ac8565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611876575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff861615806118ad575073ffffffffffffffffffffffffffffffffffffffff8516155b156118e4576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8716611961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610ac8565b611969613c15565b611971613cb3565b6097805473ffffffffffffffffffffffffffffffffffffffff808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015611b17575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b611b286139c0565b73ffffffffffffffffffffffffffffffffffffffff811615801590611b685750609c5473ffffffffffffffffffffffffffffffffffffffff828116911614155b611bce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610ac8565b609c805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b611c4c6139c0565b5f81118015611c5c575060648111155b8015611c6a575060a9548114155b611cd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610ac8565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611629565b60a85415611d78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b611d80613a5c565b5f80611d8c8686613a41565b915091505f611d9f836001015160c01c90565b5f81815260a160205260409020549091508214611e18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b611e21816137f8565b611e87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610ac8565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556099546002909101544291611efe91614d96565b11611f92575f81815260a460209081526040808320600390810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152611f8d91839190613d51565b611b17565b611f9d838686613ed4565b611b1781336040518060400160405280600d81526020017f50726f6f662073756363657373000000000000000000000000000000000000008152506140ae565b611fe56139c0565b60aa80545f909155611ff78282614194565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611629565b61204b6139c0565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea54156120dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610ac8565b5f806120e88484613a41565b915091505f6120fb836001015160c01c90565b90505f612109846079015190565b905080612172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610ac8565b600984015160c01c156121e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610ac8565b5f6121ed856019015190565b03612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610ac8565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014612280856039015190565b146122e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610ac8565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b6123cf6139c0565b8015612528576123dd614266565b60a65460ff16156124da5760a7545f90815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a5909252822080549192909161243e908490614d96565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a150565b6125306142eb565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336124fd565b50565b335f908152609f602052604090205460ff166125d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610ac8565b60a8541561263c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b612644613a5c565b60a65460ff16156126b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610ac8565b8167ffffffffffffffff16609d5410612726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610ac8565b67ffffffffffffffff82165f90815260a1602052604090205481146127a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b6127ba8267ffffffffffffffff16611542565b612820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610ac8565b67ffffffffffffffff82165f90815260a4602052604090205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16156128c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610ac8565b67ffffffffffffffff82165f90815260a26020526040902060010154421061296c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610ac8565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129fa9190614dbc565b341015612a63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610ac8565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a49095529690962094518554925173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009093169290921792909217905573ffffffffffffffffffffffffffffffffffffffff168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b997634604051612bcf91815260200190565b60405180910390a35f609d546001612be79190614d96565b90505b609e548111612c3f578267ffffffffffffffff168114612c2d576099545f82815260a2602052604081206001018054909190612c27908490614d96565b90915550505b80612c3781614dd3565b915050612bea565b505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b335f90815260a5602052604081205490819003612ce8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610ac8565b335f90815260a56020526040812055612d018282614194565b8173ffffffffffffffffffffffffffffffffffffffff167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a82604051612d4991815260200190565b60405180910390a25050565b60975473ffffffffffffffffffffffffffffffffffffffff166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015612ddb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dff9190614e0a565b612e65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610ac8565b60a85415612ecf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b612ed7613a5c565b612ee46020830183614e25565b60ff1615612f4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610ac8565b5f612f5c6040840184614e45565b91505080612fc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610ac8565b6080830135613031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610ac8565b60a083013561309c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610ac8565b5f806130b36130ae6020870187614e45565b613a41565b915091505f6130c6836001015160c01c90565b90505f60a1816130d7846001614d96565b81526020019081526020015f20541461314c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610ac8565b609e5481146131b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610ac8565b5f81815260a16020526040902054821461322d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610ac8565b5f81815260ab60205260409020546080870135146132a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610ac8565b5f6132b6846011015160c01c90565b90505f80806133156132cb60408c018c614e45565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150613310905060608f018f614e45565b614342565b94850194938401939250905061332e60608b018b614e45565b905061010060ff850104602002146133a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610ac8565b600194909401935f8049156133b8575f496133da565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b90505f6133ea60608d018d614e45565b6133f6915060f9614d96565b90506040519850602081028901604052613424898d5f01602081019061341c9190614e25565b60ff166144dd565b60c087811b60018b015285811b60098b015286811b60118b015260198a0184905260808d013560598b015260a08d013560798b01528c013560998a01526134918961347260208e018e614e45565b604051613480929190614ea6565b604051809103902060b99190910152565b60d989018890526134ae896134a960608f018f614e45565b6144e4565b603989018290528089205f88815260a1602090815260408083209390935560ab905290812060a08e0135905560a65460ff16156135145760a7545f90815260a46020526040902060020154609954429161350791614d96565b6135119190614da9565b90505b604051806080016040528042815260200182609854426135349190614d96565b61353e9190614d96565b815260200161358f8f80604001906135569190614e45565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506144f092505050565b815260975460209091019073ffffffffffffffffffffffffffffffffffffffff1663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa15801561361d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136419190614dbc565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e89905560975473ffffffffffffffffffffffffffffffffffffffff1692506374fe27b791508c35906136b6906136b0908f018f614e45565b5f614547565b5f8e80604001906136c79190614e45565b6040518663ffffffff1660e01b81526004016136e7959493929190614efc565b602060405180830381865afa158015613702573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137269190614e0a565b6137b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610ac8565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b5f81815260a4602052604081205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff161580159061156a5750505f90815260a46020526040902060030154610100900460ff161590565b6138576139c0565b5f8111801561386857506098548114155b6138ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610ac8565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611629565b6139146139c0565b73ffffffffffffffffffffffffffffffffffffffff81166139b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610ac8565b61255781613b9f565b60335473ffffffffffffffffffffffffffffffffffffffff163314611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ac8565b5f805f613a4e858561459b565b812090969095509350505050565b60655460ff1615611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610ac8565b805f03613ad557505050565b8082035f805b83811015610f3d57610100818503811115613af557508084035b8651609b546040517f55f613ce00000000000000000000000000000000000000000000000000000000815260048101879052602481018490526044810183905260209099019891945073ffffffffffffffffffffffffffffffffffffffff16906355f613ce906064015f604051808303815f87803b158015613b75575f80fd5b505af1158015613b87573d5f803e3d5ffd5b50505050610100840193505061010081019050613adb565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b6117556146a6565b5f54610100900460ff16613d49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b611755614766565b60a88390555f83815260a460205260408082205460975491517f45bc4d10000000000000000000000000000000000000000000000000000000008152600481018690526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff908116939216906345bc4d10906024016020604051808303815f875af1158015613de2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e069190614dbc565b5f86815260a46020526040902060010154909150613e25908290614d96565b5f86815260a4602090815260408083205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16835260a590915281208054909190613e71908490614d96565b9091555050604051613e84908490614f7c565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff84169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610ac8565b5f613f4a846001015160c01c90565b90505f613f58856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613f87876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c5490915073ffffffffffffffffffffffffffffffffffffffff16632c09a848614056885160f81c90565b858888866040518663ffffffff1660e01b815260040161407a959493929190614fa8565b5f6040518083038186803b158015614090575f80fd5b505afa1580156140a2573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906140d29084614fd9565b6140dc9190614ff0565b90506140e88183614da9565b60aa5f8282546140f89190614d96565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f90815260a5602052604081208054839290614131908490614d96565b9091555050604051614144908490614f7c565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff86169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015614262575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f81146141f0576040519150601f19603f3d011682016040523d82523d5f602084013e6141f5565b606091505b5050905080614260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610ac8565b505b5050565b61426e613a5c565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586142c13390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6142f3614805565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336142c1565b60405185515f91829160208901919081908490614360908590614871565b90506002840193505f5b818110156143e457603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f6143ba603c83614fd9565b6143c49087614d96565b90505f6143d582603a015160f01c90565b9790970196505060010161436a565b506020850282016040525b80156144c9575f61440485603a015160f01c90565b905061441483828d8d8d8d614906565b92505f614425866038015160f01c90565b905081811015614491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610ac8565b50998a01999890980197603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016143ef565b508190039020989197509095505050505050565b8082535050565b808260f9850137505050565b5f805f6020840190506002810191505f61450b828651614871565b90505f5b61451a600183614da9565b81101561453057603c939093019260010161450f565b505f61453d845160c01c90565b9695505050505050565b60605f8080808061455a888a018a615115565b95509550955095509550508187106145785794506145949350505050565b83871061458c578295505050505050614594565b509293505050505b9392505050565b5f8160f9811015614608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610ac8565b6040519150808483378082016040525f614626836009015160c01c90565b905061010060ff82010460200260f901821461469e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610ac8565b509250929050565b5f54610100900460ff1661473c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff166147fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b61175533613b9f565b60655460ff16611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610ac8565b5f61487d835160f01c90565b9050805f036148b8576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6148c3603c82614fd9565b6148ce906002614d96565b821461156a576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f855f0361491557508561453d565b609b5473ffffffffffffffffffffffffffffffffffffffff165f80805b89811015614a155760ff89169150600889901c811580614950575082155b1561495f578060200288013593505b600184841c165f03614a04576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018a90525f9073ffffffffffffffffffffffffffffffffffffffff87169063ae453cd590602401602060405180830381865afa1580156149d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149fa9190614dbc565b8d52506020909b019a5b506001988901989788019701614932565b505060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88011681811c60011615614aaa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f63616e6e6f7420736b6970206c617374204c31206d65737361676500000000006044820152606401610ac8565b509798975050505050505050565b5f60208284031215614ac8575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114614af2575f80fd5b919050565b5f60208284031215614b07575f80fd5b61459482614acf565b5f8083601f840112614b20575f80fd5b50813567ffffffffffffffff811115614b37575f80fd5b602083019150836020828501011115614b4e575f80fd5b9250929050565b5f805f60408486031215614b67575f80fd5b833567ffffffffffffffff811115614b7d575f80fd5b614b8986828701614b10565b909790965060209590950135949350505050565b5f8060208385031215614bae575f80fd5b823567ffffffffffffffff811115614bc4575f80fd5b614bd085828601614b10565b90969095509350505050565b5f805f805f8060c08789031215614bf1575f80fd5b614bfa87614acf565b9550614c0860208801614acf565b9450614c1660408801614acf565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614c4a575f80fd5b843567ffffffffffffffff80821115614c61575f80fd5b614c6d88838901614b10565b90965094506020870135915080821115614c85575f80fd5b50614c9287828801614b10565b95989497509550505050565b8015158114612557575f80fd5b5f60208284031215614cbb575f80fd5b813561459481614c9e565b5f8060408385031215614cd7575f80fd5b823567ffffffffffffffff81168114614cee575f80fd5b946020939093013593505050565b5f8060408385031215614d0d575f80fd5b823567ffffffffffffffff80821115614d24575f80fd5b9084019060e08287031215614d37575f80fd5b90925060208401359080821115614d4c575f80fd5b50830160608186031215614d5e575f80fd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561156a5761156a614d69565b8181038181111561156a5761156a614d69565b5f60208284031215614dcc575f80fd5b5051919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e0357614e03614d69565b5060010190565b5f60208284031215614e1a575f80fd5b815161459481614c9e565b5f60208284031215614e35575f80fd5b813560ff81168114614594575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614e78575f80fd5b83018035915067ffffffffffffffff821115614e92575f80fd5b602001915036819003821315614b4e575f80fd5b818382375f9101908152919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b81811015614f5357845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101614f21565b50508760408601528481036060860152614f6e818789614eb5565b9a9950505050505050505050565b5f82515f5b81811015614f9b5760208186018101518583015201614f81565b505f920191825250919050565b858152846020820152608060408201525f614fc7608083018587614eb5565b90508260608301529695505050505050565b808202811582820484141761156a5761156a614d69565b5f82615023577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112615064575f80fd5b8135602067ffffffffffffffff8083111561508157615081615028565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156150c4576150c4615028565b60405293845260208187018101949081019250878511156150e3575f80fd5b6020870191505b8482101561510a576150fb82614acf565b835291830191908301906150ea565b979650505050505050565b5f805f805f8060c0878903121561512a575f80fd5b86359550602087013567ffffffffffffffff80821115615148575f80fd5b6151548a838b01615055565b9650604089013595506060890135915080821115615170575f80fd5b61517c8a838b01615055565b94506080890135935060a0890135915080821115615198575f80fd5b506151a589828a01615055565b915050929550929550929556fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(RollupStorageLayoutJSON), RollupStorageLayout); err != nil { From 4c766dbadd7e75fe8fe2c1a68c56a5fedf8568dc Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Fri, 1 Nov 2024 14:34:25 +0800 Subject: [PATCH 012/106] Add fee sum storage (#619) --- tx-submitter/db/db.go | 49 +++++++++++ tx-submitter/db/db_test.go | 21 +++++ tx-submitter/entry.go | 29 ++++--- tx-submitter/flags/flags.go | 7 ++ tx-submitter/metrics/metrics.go | 22 ++--- tx-submitter/services/rollup.go | 129 ++++++++++++++++++++++++----- tx-submitter/utils/config.go | 4 + tx-submitter/utils/methods.go | 74 +++++++++++++++++ tx-submitter/utils/methods_test.go | 86 +++++++++++++++++++ 9 files changed, 377 insertions(+), 44 deletions(-) create mode 100644 tx-submitter/db/db.go create mode 100644 tx-submitter/db/db_test.go create mode 100644 tx-submitter/utils/methods_test.go diff --git a/tx-submitter/db/db.go b/tx-submitter/db/db.go new file mode 100644 index 000000000..4a5914c49 --- /dev/null +++ b/tx-submitter/db/db.go @@ -0,0 +1,49 @@ +package db + +import ( + "fmt" + "strconv" + + "morph-l2/tx-submitter/utils" + + "github.com/morph-l2/go-ethereum/ethdb/leveldb" +) + +var ( + ErrKeyNotFound = fmt.Errorf("not found") +) + +type Db struct { + db *leveldb.Database +} + +func New(pathname string) (*Db, error) { + // leveldb + ldb, err := leveldb.New(pathname, 0, 0, "tx-submitter", false) + if err != nil { + return nil, fmt.Errorf("failed to create leveldb: %w", err) + } + return &Db{db: ldb}, nil +} +func (d *Db) GetFloat(key string) (float64, error) { + v, err := d.db.Get([]byte(key)) + if err != nil { + return 0, fmt.Errorf("failed get key from leveldb %s: %w", key, err) + } + res, err := utils.ParseStringToType[float64](string(v)) + if err != nil { + return 0, fmt.Errorf("failed to parse string to float64 %s", err) + } + return res, nil +} +func (d *Db) PutFloat(key string, val float64) error { + valStr := strconv.FormatFloat(val, 'f', -1, 64) + err := d.db.Put([]byte(key), []byte(valStr)) + if err != nil { + return fmt.Errorf("failed to put key into leveldb %w", err) + } + return nil +} +func (d *Db) Close() error { + return d.db.Close() +} diff --git a/tx-submitter/db/db_test.go b/tx-submitter/db/db_test.go new file mode 100644 index 000000000..a7ecac6da --- /dev/null +++ b/tx-submitter/db/db_test.go @@ -0,0 +1,21 @@ +package db + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func Test_Get_Put(t *testing.T) { + db, err := New("test") + require.NoError(t, err) + + expect := 1.123456789012345 + // expectStr := "1.123456789012345" + + err = db.PutFloat("test", expect) + require.NoError(t, err) + v, err := db.GetFloat("test") + require.NoError(t, err) + require.Equal(t, expect, v) +} diff --git a/tx-submitter/entry.go b/tx-submitter/entry.go index 0145243ad..1b9809b3a 100644 --- a/tx-submitter/entry.go +++ b/tx-submitter/entry.go @@ -10,8 +10,10 @@ import ( "os" "os/signal" "strings" + "time" "morph-l2/bindings/bindings" + "morph-l2/tx-submitter/db" "morph-l2/tx-submitter/event" "morph-l2/tx-submitter/iface" "morph-l2/tx-submitter/metrics" @@ -65,6 +67,7 @@ func Main() func(ctx *cli.Context) error { "rough_estimate_base_gas", cfg.RollupTxGasBase, "rough_estimate_per_l1_msg", cfg.RollupTxGasPerL1Msg, "log_level", cfg.LogLevel, + "leveldb_pathname", cfg.LeveldbPathName, ) ctx, cancel := context.WithCancel(context.Background()) @@ -96,14 +99,11 @@ func Main() func(ctx *cli.Context) error { } output = io.MultiWriter(output, logFile) } - logHandler := log.StreamHandler(output, log.TerminalFormat(false)) - logLevel, err := log.LvlFromString(cfg.LogLevel) if err != nil { return err } - log.Root().SetHandler(log.LvlFilterHandler(logLevel, logHandler)) l1RpcClient, err := rpc.Dial(cfg.L1EthRpc) @@ -189,6 +189,11 @@ func Main() func(ctx *cli.Context) error { // start rorator event indexer rotator.StartEventIndexer() + ldb, err := db.New(cfg.LeveldbPathName) + if err != nil { + return fmt.Errorf("failed to connect leveldb: %w", err) + } + // new rollup service sr := services.NewRollup( ctx, @@ -205,11 +210,9 @@ func Main() func(ctx *cli.Context) error { cfg, rsaPriv, rotator, + ldb, ) - // init rollup service - if err := sr.PreCheck(); err != nil { - return err - } + // metrics { if cfg.MetricsServerEnable { @@ -223,11 +226,6 @@ func Main() func(ctx *cli.Context) error { log.Info("metrics server enabled", "host", cfg.MetricsHostname, "port", cfg.MetricsPort) } - // log external sign info - if cfg.ExternalSign { - - } - log.Info("external sign info", "external_sign", cfg.ExternalSign, "appid", cfg.ExternalSignAppid, @@ -236,7 +234,12 @@ func Main() func(ctx *cli.Context) error { "url", cfg.ExternalSignUrl, ) - sr.Start() + err = sr.Start() + for err != nil { + log.Error("rollup service start failed", "error", err) + time.Sleep(time.Second * 5) + err = sr.Start() + } // Catch CTRL-C to ensure a graceful shutdown. interrupt := make(chan os.Signal, 1) diff --git a/tx-submitter/flags/flags.go b/tx-submitter/flags/flags.go index dcfe874ca..522546488 100644 --- a/tx-submitter/flags/flags.go +++ b/tx-submitter/flags/flags.go @@ -292,6 +292,12 @@ var ( Value: 100, EnvVar: prefixEnvVar("EVENT_INDEX_STEP"), } + LeveldbPathNameFlag = cli.StringFlag{ + Name: "leveldb_path_name", + Usage: "The path name of the leveldb", + EnvVar: prefixEnvVar("LEVELDB_PATH_NAME"), + Value: "submitter-leveldb", + } ) var requiredFlags = []cli.Flag{ @@ -345,6 +351,7 @@ var optionalFlags = []cli.Flag{ RotatorBufferFlag, StakingEventStoreFileFlag, EventIndexStepFlag, + LeveldbPathNameFlag, } // Flags contains the list of configuration options available to the binary. diff --git a/tx-submitter/metrics/metrics.go b/tx-submitter/metrics/metrics.go index 05f9d1afe..2b09d467c 100644 --- a/tx-submitter/metrics/metrics.go +++ b/tx-submitter/metrics/metrics.go @@ -19,8 +19,8 @@ type Metrics struct { FinalizeCostSum prometheus.Counter RollupCost prometheus.Gauge FinalizeCost prometheus.Gauge - L1FeeCollectionSum prometheus.Counter - L1FeeCollection prometheus.Gauge + CollectedL1FeeSum prometheus.Counter + CollectedL1Fee prometheus.Gauge IndexerBlockProcessed prometheus.Gauge } @@ -57,14 +57,14 @@ func NewMetrics() *Metrics { Help: "Finalize cost", Namespace: metricsNamespace, }), - L1FeeCollection: promauto.NewGauge(prometheus.GaugeOpts{ - Name: "submitter_l1_fee_collection", - Help: "L1 fee collection", + CollectedL1Fee: promauto.NewGauge(prometheus.GaugeOpts{ + Name: "submitter_collected_l1_fee", + Help: "Collected L1 fee for every batch", Namespace: metricsNamespace, }), - L1FeeCollectionSum: promauto.NewCounter(prometheus.CounterOpts{ - Name: "submitter_l1_fee_collection_sum", - Help: "L1 fee collection", + CollectedL1FeeSum: promauto.NewCounter(prometheus.CounterOpts{ + Name: "submitter_collected_l1_fee_sum", + Help: "Collected L1 fee for all batches committed ", Namespace: metricsNamespace, }), @@ -101,12 +101,12 @@ func (m *Metrics) SetRollupCost(cost float64) { func (m *Metrics) SetFinalizeCost(cost float64) { m.FinalizeCostSum.Add(cost) - m.RollupCost.Set(cost) + m.FinalizeCost.Set(cost) } func (m *Metrics) SetCollectedL1Fee(cost float64) { - m.L1FeeCollectionSum.Add(cost) - m.L1FeeCollection.Set(cost) + m.CollectedL1FeeSum.Add(cost) + m.CollectedL1Fee.Set(cost) } func (m *Metrics) SetIndexerBlockProcessed(blockNumber uint64) { diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index f18e11b61..63a654123 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -27,6 +27,7 @@ import ( "github.com/tendermint/tendermint/blssignatures" "morph-l2/bindings/bindings" + "morph-l2/tx-submitter/db" "morph-l2/tx-submitter/event" "morph-l2/tx-submitter/iface" "morph-l2/tx-submitter/localpool" @@ -35,38 +36,43 @@ import ( ) const ( - txSlotSize = 32 * 1024 - txMaxSize = 4 * txSlotSize // 128KB - rotatorWait = 3 * time.Second + txSlotSize = 32 * 1024 + txMaxSize = 4 * txSlotSize // 128KB + rotatorWait = 3 * time.Second + rollupSumKey = "rollup_sum" + finalizeSumKey = "finalize_sum" + collectedL1FeeSumKey = "collected_l1_fee_sum" ) type Rollup struct { - ctx context.Context - metrics *metrics.Metrics - + ctx context.Context + metrics *metrics.Metrics l1RpcClient *rpc.Client L1Client iface.Client L2Clients []iface.L2Client Rollup iface.IRollup - - Staking iface.IL1Staking - - chainId *big.Int - privKey *ecdsa.PrivateKey - rollupAddr common.Address - abi *abi.ABI - + Staking iface.IL1Staking + chainId *big.Int + privKey *ecdsa.PrivateKey + rollupAddr common.Address + abi *abi.ABI // rotator - rotator *Rotator - pendingTxs *PendingTxs - + rotator *Rotator + pendingTxs *PendingTxs rollupFinalizeMu sync.Mutex externalRsaPriv *rsa.PrivateKey // cfg cfg utils.Config // signer signer types.Signer - + // leveldb + ldb *db.Db + // rollupFeeSum + rollupFeeSum float64 + // finalizeFeeSum + finalizeFeeSum float64 + // collectedL1FeeSum + collectedL1FeeSum float64 // batchcache batchCache map[uint64]*eth.RPCRollupBatch } @@ -86,6 +92,7 @@ func NewRollup( cfg utils.Config, rsaPriv *rsa.PrivateKey, rotator *Rotator, + ldb *db.Db, ) *Rollup { return &Rollup{ @@ -105,10 +112,16 @@ func NewRollup( signer: types.LatestSignerForChainID(chainId), externalRsaPriv: rsaPriv, batchCache: make(map[uint64]*eth.RPCRollupBatch), + ldb: ldb, } } -func (r *Rollup) Start() { +func (r *Rollup) Start() error { + + // init rollup service + if err := r.PreCheck(); err != nil { + return err + } // journal jn := localpool.New(r.cfg.JournalFilePath) @@ -125,6 +138,12 @@ func (r *Rollup) Start() { r.pendingTxs.Recover(txs, r.abi) } + // init fee metrics sum + err = r.InitFeeMetricsSum() + if err != nil { + return fmt.Errorf("init fee metrics sum failed: %w", err) + } + // metrics go utils.Loop(r.ctx, 10*time.Second, func() { @@ -189,7 +208,7 @@ func (r *Rollup) Start() { } } }) - + return nil } func (r *Rollup) ProcessTx() error { @@ -324,10 +343,21 @@ func (r *Rollup) ProcessTx() error { log.Warn("fee is zero", "hash", rtx.Hash().Hex()) } if method == "commitBatch" { + r.rollupFeeSum += fee + err = r.ldb.PutFloat(rollupSumKey, r.rollupFeeSum) + if err != nil { + log.Warn("put rollup fee sum error", "error", err) + } r.metrics.SetRollupCost(fee) index := utils.ParseParentBatchIndex(rtx.Data()) + 1 batch, ok := r.batchCache[index] if ok { + collectedL1FeeFloat := ToEtherFloat((*big.Int)(batch.CollectedL1Fee)) + r.collectedL1FeeSum += collectedL1FeeFloat + err = r.ldb.PutFloat(collectedL1FeeSumKey, r.collectedL1FeeSum) + if err != nil { + log.Warn("put collected l1 fee sum error", "error", err) + } r.metrics.SetCollectedL1Fee(ToEtherFloat((*big.Int)(batch.CollectedL1Fee))) // remove batch from cache delete(r.batchCache, index) @@ -338,6 +368,11 @@ func (r *Rollup) ProcessTx() error { } } else if method == "finalizeBatch" { + r.finalizeFeeSum += fee + err = r.ldb.PutFloat(finalizeSumKey, r.finalizeFeeSum) + if err != nil { + log.Warn("put finalize fee sum error", "error", err) + } r.metrics.SetFinalizeCost(fee) } } @@ -1235,3 +1270,57 @@ func (r *Rollup) RoughFinalizeGasEstimate() uint64 { func (r *Rollup) GetModuleName() string { return "rollup" } + +func (r *Rollup) InitFeeMetricsSum() error { + // try to init rollupFeeSum & finalizeFeeSum + // read rollupFeeSum + rollupFeeSum, err := r.ldb.GetFloat(rollupSumKey) + if err != nil { + log.Warn("read rollupFeeSum from leveldb failed", "error", err) + if utils.ErrStringMatch(err, db.ErrKeyNotFound) { + err = r.ldb.PutFloat(rollupSumKey, 0) + if err != nil { + return fmt.Errorf("put rollupFeeSum to leveldb failed, key: %s, %w", rollupSumKey, err) + } + } else { + return fmt.Errorf("get data from leveldb faild, key: %s, %w", rollupSumKey, err) + } + } + log.Info("rollupFeeSum: %f", rollupFeeSum) + finalizeFeeSum, err := r.ldb.GetFloat(finalizeSumKey) + if err != nil { + log.Warn("read finalizeFeeSum from leveldb failed", "error", err) + if utils.ErrStringMatch(err, db.ErrKeyNotFound) { + err = r.ldb.PutFloat(finalizeSumKey, 0) + if err != nil { + return fmt.Errorf("put finalizeFeeSum to leveldb failed, key: %s, %w", finalizeSumKey, err) + } + } else { + return fmt.Errorf("get data from leveldb faild, key: %s, %w", finalizeSumKey, err) + } + } + log.Info("finalizeFeeSum: %f", finalizeFeeSum) + collectedL1FeeSum, err := r.ldb.GetFloat(collectedL1FeeSumKey) + if err != nil { + log.Warn("read collectedL1FeeSum from leveldb failed", "error", err) + if utils.ErrStringMatch(err, db.ErrKeyNotFound) { + err = r.ldb.PutFloat(collectedL1FeeSumKey, 0) + if err != nil { + return fmt.Errorf("put collectedL1FeeSum to leveldb failed, key: %s, %w", collectedL1FeeSumKey, err) + } + } else { + return fmt.Errorf("get data from leveldb faild, key: %s, %w", collectedL1FeeSumKey, err) + } + } + r.collectedL1FeeSum = collectedL1FeeSum + log.Info("collectedL1FeeSum: %f", collectedL1FeeSum) + + r.rollupFeeSum = rollupFeeSum + r.finalizeFeeSum = finalizeFeeSum + r.collectedL1FeeSum = collectedL1FeeSum + // set fee sum init val + r.metrics.RollupCostSum.Add(r.rollupFeeSum) + r.metrics.FinalizeCostSum.Add(r.finalizeFeeSum) + r.metrics.CollectedL1FeeSum.Add(r.collectedL1FeeSum) + return nil +} diff --git a/tx-submitter/utils/config.go b/tx-submitter/utils/config.go index 5a6a9c814..3d63fa042 100644 --- a/tx-submitter/utils/config.go +++ b/tx-submitter/utils/config.go @@ -104,6 +104,8 @@ type Config struct { L1StakingDeployedBlockNumber uint64 // event indexer index step EventIndexStep uint64 + // leveldb path name + LeveldbPathName string } // NewConfig parses the DriverConfig from the provided flags or environment variables. @@ -171,6 +173,8 @@ func NewConfig(ctx *cli.Context) (Config, error) { L1StakingDeployedBlockNumber: ctx.GlobalUint64(flags.L1StakingDeployedBlocknumFlag.Name), // index step EventIndexStep: ctx.GlobalUint64(flags.EventIndexStepFlag.Name), + // leveldb path name + LeveldbPathName: ctx.GlobalString(flags.LeveldbPathNameFlag.Name), } return cfg, nil diff --git a/tx-submitter/utils/methods.go b/tx-submitter/utils/methods.go index 12d94c2d3..b2e19782a 100644 --- a/tx-submitter/utils/methods.go +++ b/tx-submitter/utils/methods.go @@ -1,7 +1,10 @@ package utils import ( + "fmt" "math/big" + "reflect" + "strconv" "github.com/morph-l2/go-ethereum" "github.com/morph-l2/go-ethereum/common" @@ -61,3 +64,74 @@ func IntersectionOfAddresses(a, b []common.Address) []common.Address { return intersection } + +func ParseStringToType[T any](s string) (T, error) { + var result T + var err error + + // 获取目标类型的名称 + switch any(result).(type) { + case int: + var v int64 + v, err = strconv.ParseInt(s, 10, 0) + result = reflect.ValueOf(int(v)).Interface().(T) + case int8: + var v int64 + v, err = strconv.ParseInt(s, 10, 8) + result = reflect.ValueOf(int8(v)).Interface().(T) + case int16: + var v int64 + v, err = strconv.ParseInt(s, 10, 16) + result = reflect.ValueOf(int16(v)).Interface().(T) + case int32: + var v int64 + v, err = strconv.ParseInt(s, 10, 32) + result = reflect.ValueOf(int32(v)).Interface().(T) + case int64: + var v int64 + v, err = strconv.ParseInt(s, 10, 64) + result = reflect.ValueOf(v).Interface().(T) + case uint: + var v uint64 + v, err = strconv.ParseUint(s, 10, 0) + result = reflect.ValueOf(uint(v)).Interface().(T) + case uint8: + var v uint64 + v, err = strconv.ParseUint(s, 10, 8) + result = reflect.ValueOf(uint8(v)).Interface().(T) + case uint16: + var v uint64 + v, err = strconv.ParseUint(s, 10, 16) + result = reflect.ValueOf(uint16(v)).Interface().(T) + case uint32: + var v uint64 + v, err = strconv.ParseUint(s, 10, 32) + result = reflect.ValueOf(uint32(v)).Interface().(T) + case uint64: + var v uint64 + v, err = strconv.ParseUint(s, 10, 64) + result = reflect.ValueOf(v).Interface().(T) + case float32: + var v float64 + v, err = strconv.ParseFloat(s, 32) + result = reflect.ValueOf(float32(v)).Interface().(T) + case float64: + var v float64 + v, err = strconv.ParseFloat(s, 64) + result = reflect.ValueOf(v).Interface().(T) + case bool: + var v bool + v, err = strconv.ParseBool(s) + result = reflect.ValueOf(v).Interface().(T) + case string: + result = reflect.ValueOf(s).Interface().(T) + default: + return *new(T), fmt.Errorf("unsupported type: %v", reflect.TypeOf(result)) + } + + if err != nil { + return *new(T), err + } + + return result, nil +} diff --git a/tx-submitter/utils/methods_test.go b/tx-submitter/utils/methods_test.go new file mode 100644 index 000000000..381cb65e4 --- /dev/null +++ b/tx-submitter/utils/methods_test.go @@ -0,0 +1,86 @@ +package utils + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestParseStringToType(t *testing.T) { + tests := []struct { + input string + expected any + hasError bool + }{ + // int cases + {"123", int(123), false}, + {"-123", int(-123), false}, + {"notanumber", int(0), true}, + + // int8 cases + {"123", int8(123), false}, + {"-128", int8(-128), false}, + {"notanumber", int8(0), true}, + + // int16 cases + {"123", int16(123), false}, + {"32767", int16(32767), false}, + {"notanumber", int16(0), true}, + + // uint cases + {"123", uint(123), false}, + {"notanumber", uint(0), true}, + + // float32 cases + {"123.45", float32(123.45), false}, + {"-123.45", float32(-123.45), false}, + {"notanumber", float32(0), true}, + + // float64 cases + {"123.45", float64(123.45), false}, + {"-123.45", float64(-123.45), false}, + {"notanumber", float64(0), true}, + + // bool cases + {"true", true, false}, + {"false", false, false}, + {"notabool", false, true}, + + // string cases + {"test", "test", false}, + } + + for _, tc := range tests { + t.Run(fmt.Sprintf("%v -> %v", tc.input, tc.expected), func(t *testing.T) { + var result any + var err error + + switch tc.expected.(type) { + case int: + result, err = ParseStringToType[int](tc.input) + case int8: + result, err = ParseStringToType[int8](tc.input) + case int16: + result, err = ParseStringToType[int16](tc.input) + case uint: + result, err = ParseStringToType[uint](tc.input) + case float32: + result, err = ParseStringToType[float32](tc.input) + case float64: + result, err = ParseStringToType[float64](tc.input) + case bool: + result, err = ParseStringToType[bool](tc.input) + case string: + result, err = ParseStringToType[string](tc.input) + } + + if tc.hasError { + require.Error(t, err) + } else { + require.NoError(t, err) + require.Equal(t, tc.expected, result) + } + }) + } +} From f09a6703c7b9bce1a94d6eb3ce2a8d70f96e19a8 Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Tue, 5 Nov 2024 15:19:20 +0800 Subject: [PATCH 013/106] fix(tx-submitter): Fixed transaction fee calculation issue - Fixed blob fee calculation logic in Blob transaction type - Added judgment for weiAmt being nil to avoid potential null pointer exceptions --- tx-submitter/services/utils.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tx-submitter/services/utils.go b/tx-submitter/services/utils.go index 4c55dd038..e8e185b42 100644 --- a/tx-submitter/services/utils.go +++ b/tx-submitter/services/utils.go @@ -54,10 +54,10 @@ func calcFee(receipt *types.Receipt) float64 { // blobfee blobfee := big.NewInt(0) if receipt.Type == types.BlobTxType { - if receipt.BlobGasPrice == nil { - return 0 + if receipt.BlobGasPrice != nil { + blobfee = new(big.Int).Mul(big.NewInt(int64(receipt.BlobGasUsed)), receipt.BlobGasPrice) } - blobfee = new(big.Int).Mul(big.NewInt(int64(receipt.BlobGasUsed)), receipt.BlobGasPrice) + } fee := new(big.Int).Add(calldatafee, blobfee) @@ -65,6 +65,9 @@ func calcFee(receipt *types.Receipt) float64 { } func ToEtherFloat(weiAmt *big.Int) float64 { + if weiAmt == nil { + return 0 + } etherAmt := new(big.Rat).SetFrac(weiAmt, big.NewInt(params.Ether)) fEtherAmt, _ := etherAmt.Float64() return fEtherAmt From c7df550b51793a6cb8aea164604f80bc190c2bfa Mon Sep 17 00:00:00 2001 From: Segue Date: Wed, 6 Nov 2024 16:52:27 +0800 Subject: [PATCH 014/106] update test --- contracts/contracts/test/L2Staking.t.sol | 49 ++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/contracts/contracts/test/L2Staking.t.sol b/contracts/contracts/test/L2Staking.t.sol index a57196ff6..b59943107 100644 --- a/contracts/contracts/test/L2Staking.t.sol +++ b/contracts/contracts/test/L2Staking.t.sol @@ -1374,9 +1374,12 @@ contract L2StakingTest is L2StakingBaseTest { assertTrue(aliceReward1 > 0); assertTrue(aliceReward2 > 0); assertTrue(aliceReward3 > 0); + // console.logString("......................"); + // console.logString("reward before claim"); // console.logUint(aliceReward1); // console.logUint(aliceReward2); // console.logUint(aliceReward3); + // console.logString("......................"); assertEq(delegetees[0], firstStaker); assertEq(delegetees[1], secondStaker); assertEq(delegetees[2], thirdStaker); @@ -1389,16 +1392,59 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.claimReward(address(0), 0); uint256 balanceAfter = morphToken.balanceOf(alice); assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); + // console.logString("......................"); + // console.logString("claim all result"); // console.logUint(balanceBefore); // console.logUint(balanceAfter); + // console.logString("......................"); hevm.stopPrank(); + (delegetees, aliceRewards) = distribute.queryAllUnclaimed(alice); + aliceReward1 = distribute.queryUnclaimed(firstStaker, alice); + aliceReward2 = distribute.queryUnclaimed(secondStaker, alice); + aliceReward3 = distribute.queryUnclaimed(thirdStaker, alice); + assertTrue(aliceReward1 == 0); + assertTrue(aliceReward2 == 0); + assertTrue(aliceReward3 == 0); + // console.logString("......................"); + // console.logString("query 0 epoch later"); + // console.logUint(aliceReward1); + // console.logUint(aliceReward2); + // console.logUint(aliceReward3); + // console.logString("......................"); + assertEq(delegetees[0], firstStaker); + assertEq(delegetees[1], secondStaker); + assertEq(delegetees[2], thirdStaker); + assertEq(aliceRewards[0], aliceReward1); + assertEq(aliceRewards[1], aliceReward2); + assertEq(aliceRewards[2], aliceReward3); + // *************** epoch = 4 ******************** // time = REWARD_EPOCH * 5; hevm.roll(blocksCountOfEpoch * 5); hevm.warp(time); _updateDistribute(3); + (delegetees, aliceRewards) = distribute.queryAllUnclaimed(alice); + aliceReward1 = distribute.queryUnclaimed(firstStaker, alice); + aliceReward2 = distribute.queryUnclaimed(secondStaker, alice); + aliceReward3 = distribute.queryUnclaimed(thirdStaker, alice); + assertTrue(aliceReward1 > 0); + assertTrue(aliceReward2 > 0); + assertTrue(aliceReward3 > 0); + // console.logString("......................"); + // console.logString("query 1 epoch later"); + // console.logUint(aliceReward1); + // console.logUint(aliceReward2); + // console.logUint(aliceReward3); + // console.logString("......................"); + assertEq(delegetees[0], firstStaker); + assertEq(delegetees[1], secondStaker); + assertEq(delegetees[2], thirdStaker); + assertEq(aliceRewards[0], aliceReward1); + assertEq(aliceRewards[1], aliceReward2); + assertEq(aliceRewards[2], aliceReward3); + // *************** epoch = 5 ******************** // time = REWARD_EPOCH * 6; hevm.roll(blocksCountOfEpoch * 6); @@ -1412,9 +1458,12 @@ contract L2StakingTest is L2StakingBaseTest { assertTrue(aliceReward1 > 0); assertTrue(aliceReward2 > 0); assertTrue(aliceReward3 > 0); + // console.logString("......................"); + // console.logString("query 2 epoch later"); // console.logUint(aliceReward1); // console.logUint(aliceReward2); // console.logUint(aliceReward3); + // console.logString("......................"); assertEq(delegetees[0], firstStaker); assertEq(delegetees[1], secondStaker); assertEq(delegetees[2], thirdStaker); From 7d5f4a663da6efa4f4c5a73a5578461567e087a1 Mon Sep 17 00:00:00 2001 From: corey Date: Thu, 7 Nov 2024 11:21:05 +0800 Subject: [PATCH 015/106] Add derivation confirmations (#630) --- node/derivation/config.go | 6 ++++++ node/derivation/derivation.go | 16 ++++++++++++++-- node/flags/flags.go | 7 +++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/node/derivation/config.go b/node/derivation/config.go index 386a0f2e0..d29dd1fef 100644 --- a/node/derivation/config.go +++ b/node/derivation/config.go @@ -12,6 +12,7 @@ import ( "github.com/morph-l2/go-ethereum/common" "github.com/morph-l2/go-ethereum/common/hexutil" + "github.com/morph-l2/go-ethereum/log" "github.com/morph-l2/go-ethereum/rpc" "github.com/urfave/cli" @@ -61,6 +62,11 @@ func (c *Config) SetCliContext(ctx *cli.Context) error { if ctx.GlobalIsSet(flags.L1Confirmations.Name) { c.L1.Confirmations = rpc.BlockNumber(ctx.GlobalInt64(flags.L1Confirmations.Name)) } + // The current setting priority is greater than Env L1Confirmations + if ctx.GlobalIsSet(flags.DerivationConfirmations.Name) { + c.L1.Confirmations = rpc.BlockNumber(ctx.GlobalInt64(flags.DerivationConfirmations.Name)) + log.Warn("derivation confirmations reset to ", c.L1.Confirmations) + } if ctx.GlobalIsSet(flags.RollupContractAddress.Name) { addr := common.HexToAddress(ctx.GlobalString(flags.RollupContractAddress.Name)) c.RollupContractAddress = addr diff --git a/node/derivation/derivation.go b/node/derivation/derivation.go index ae0beb7ac..bffff5f82 100644 --- a/node/derivation/derivation.go +++ b/node/derivation/derivation.go @@ -22,6 +22,7 @@ import ( "morph-l2/bindings/bindings" "morph-l2/bindings/predeploys" + nodecommon "morph-l2/node/common" "morph-l2/node/sync" "morph-l2/node/types" "morph-l2/node/validator" @@ -35,7 +36,7 @@ var ( type Derivation struct { ctx context.Context syncer *sync.Syncer - l1Client DeployContractBackend + l1Client *ethclient.Client RollupContractAddress common.Address confirmations rpc.BlockNumber l2Client *types.RetryableClient @@ -157,7 +158,11 @@ func (d *Derivation) Stop() { func (d *Derivation) derivationBlock(ctx context.Context) { latestDerivation := d.db.ReadLatestDerivationL1Height() - latest := d.syncer.LatestSynced() + latest, err := d.getLatestConfirmedBlockNumber(d.ctx) + if err != nil { + d.logger.Error("get latest block number failed", "err", err) + return + } var start uint64 if latestDerivation == nil { start = d.startHeight @@ -352,6 +357,9 @@ func (d *Derivation) handleL1Message(rollupData *BatchInfo, parentTotalL1Message if err != nil { return fmt.Errorf("get l1 message error:%v", err) } + if len(l1Messages) != int(block.l1MsgNum) { + return fmt.Errorf("invalid l1 msg num,expect %v,have %v", block.l1MsgNum, l1Messages) + } totalL1MessagePopped += uint64(block.l1MsgNum) if len(l1Messages) > 0 { for _, l1Message := range l1Messages { @@ -408,3 +416,7 @@ func (d *Derivation) derive(rollupData *BatchInfo) (*eth.Header, error) { return lastHeader, nil } + +func (d *Derivation) getLatestConfirmedBlockNumber(ctx context.Context) (uint64, error) { + return nodecommon.GetLatestConfirmedBlockNumber(ctx, d.l1Client, d.confirmations) +} diff --git a/node/flags/flags.go b/node/flags/flags.go index 7867b509b..e00c9ca3c 100644 --- a/node/flags/flags.go +++ b/node/flags/flags.go @@ -207,6 +207,12 @@ var ( Usage: "Number of blocks that we collect in a single eth_getLogs query", EnvVar: prefixEnvVar("DERIVATION_FETCH_BLOCK_RANGE"), } + + DerivationConfirmations = cli.Int64Flag{ + Name: "derivation.confirmations", + Usage: "The number of confirmations needed on L1 for finalization. If not set, the default value is l1.confirmations", + EnvVar: prefixEnvVar("DERIVATION_CONFIRMATIONS"), + } // Logger LogLevel = &cli.StringFlag{ Name: "log.level", @@ -304,6 +310,7 @@ var Flags = []cli.Flag{ DerivationPollInterval, DerivationLogProgressInterval, DerivationFetchBlockRange, + DerivationConfirmations, L1BeaconAddr, // logger From 0ebf17347b7fce7af879803c6e802ad3068077e1 Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Fri, 8 Nov 2024 14:46:55 +0800 Subject: [PATCH 016/106] feat(tx-submitter): Add L1 Block Growth Monitoring Feature --- tx-submitter/entry.go | 5 +++ tx-submitter/flags/flags.go | 9 ++++ tx-submitter/l1checker/blockmonitor.go | 48 +++++++++++++++++++++ tx-submitter/l1checker/blockmonitor_test.go | 23 ++++++++++ tx-submitter/services/rollup.go | 8 ++++ tx-submitter/utils/config.go | 5 ++- 6 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 tx-submitter/l1checker/blockmonitor.go create mode 100644 tx-submitter/l1checker/blockmonitor_test.go diff --git a/tx-submitter/entry.go b/tx-submitter/entry.go index 1b9809b3a..2687ed8e3 100644 --- a/tx-submitter/entry.go +++ b/tx-submitter/entry.go @@ -16,6 +16,7 @@ import ( "morph-l2/tx-submitter/db" "morph-l2/tx-submitter/event" "morph-l2/tx-submitter/iface" + "morph-l2/tx-submitter/l1checker" "morph-l2/tx-submitter/metrics" "morph-l2/tx-submitter/services" "morph-l2/tx-submitter/utils" @@ -194,6 +195,9 @@ func Main() func(ctx *cli.Context) error { return fmt.Errorf("failed to connect leveldb: %w", err) } + // blockmonitor + bm := l1checker.NewBlockMonitor(cfg.BlockNotIncreasedThreshold, l1Client) + // new rollup service sr := services.NewRollup( ctx, @@ -211,6 +215,7 @@ func Main() func(ctx *cli.Context) error { rsaPriv, rotator, ldb, + bm, ) // metrics diff --git a/tx-submitter/flags/flags.go b/tx-submitter/flags/flags.go index 522546488..041cf2db5 100644 --- a/tx-submitter/flags/flags.go +++ b/tx-submitter/flags/flags.go @@ -298,6 +298,14 @@ var ( EnvVar: prefixEnvVar("LEVELDB_PATH_NAME"), Value: "submitter-leveldb", } + + // l1 block not incremented threshold + BlockNotIncreasedThreshold = cli.Int64Flag{ + Name: "block_not_increased_threshold", + Usage: "The threshold for block not incremented", + Value: 5, + EnvVar: prefixEnvVar("BLOCK_NOT_INCREASED_THRESHOLD"), + } ) var requiredFlags = []cli.Flag{ @@ -352,6 +360,7 @@ var optionalFlags = []cli.Flag{ StakingEventStoreFileFlag, EventIndexStepFlag, LeveldbPathNameFlag, + BlockNotIncreasedThreshold, } // Flags contains the list of configuration options available to the binary. diff --git a/tx-submitter/l1checker/blockmonitor.go b/tx-submitter/l1checker/blockmonitor.go new file mode 100644 index 000000000..9864bcf83 --- /dev/null +++ b/tx-submitter/l1checker/blockmonitor.go @@ -0,0 +1,48 @@ +package l1checker + +import ( + "context" + "morph-l2/tx-submitter/iface" + "time" + + "github.com/morph-l2/go-ethereum/log" +) + +type IBlockMonitor interface { + BlockNotIncreasedIn(time.Duration) bool +} + +type BlockMonitor struct { + blockGenerateTime time.Duration //12s for Dencun + latestBlockTime time.Time + noGrowthBlockCntTime time.Duration + client iface.L1Client +} + +func NewBlockMonitor(notGrowthInBlocks int64, client iface.L1Client) *BlockMonitor { + return &BlockMonitor{ + blockGenerateTime: time.Second * 12, + latestBlockTime: time.Time{}, + noGrowthBlockCntTime: time.Second * time.Duration(notGrowthInBlocks) * 12, + client: client, + } +} + +func (m *BlockMonitor) StartMonitoring() { + ticker := time.NewTicker(m.blockGenerateTime) + for ; ; <-ticker.C { + header, err := m.client.HeaderByNumber(context.Background(), nil) + if err != nil { + log.Warn("failed to get block in blockmonitor", "error", err) + continue + } + m.latestBlockTime = time.Unix(int64(header.Time), 0) + } +} + +func (m *BlockMonitor) IsGrowth() bool { + if m.latestBlockTime.IsZero() { + return false + } + return time.Since(m.latestBlockTime) > m.noGrowthBlockCntTime +} diff --git a/tx-submitter/l1checker/blockmonitor_test.go b/tx-submitter/l1checker/blockmonitor_test.go new file mode 100644 index 000000000..fb867e896 --- /dev/null +++ b/tx-submitter/l1checker/blockmonitor_test.go @@ -0,0 +1,23 @@ +package l1checker + +import ( + "testing" + "time" + + "github.com/stretchr/testify/require" +) + +func TestIsGrowth(t *testing.T) { + + blockCnt := int64(2) + monitor := NewBlockMonitor(blockCnt, nil) + monitor.latestBlockTime = time.Time{} + require.Equal(t, false, monitor.IsGrowth()) + + monitor.latestBlockTime = time.Now() + require.Equal(t, false, monitor.IsGrowth()) + + monitor.latestBlockTime = time.Now().Add(-monitor.noGrowthBlockCntTime) + require.Equal(t, true, monitor.IsGrowth()) + +} diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 63a654123..bd7aab3d2 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -30,6 +30,7 @@ import ( "morph-l2/tx-submitter/db" "morph-l2/tx-submitter/event" "morph-l2/tx-submitter/iface" + "morph-l2/tx-submitter/l1checker" "morph-l2/tx-submitter/localpool" "morph-l2/tx-submitter/metrics" "morph-l2/tx-submitter/utils" @@ -75,6 +76,7 @@ type Rollup struct { collectedL1FeeSum float64 // batchcache batchCache map[uint64]*eth.RPCRollupBatch + bm *l1checker.BlockMonitor } func NewRollup( @@ -93,6 +95,7 @@ func NewRollup( rsaPriv *rsa.PrivateKey, rotator *Rotator, ldb *db.Db, + bm *l1checker.BlockMonitor, ) *Rollup { return &Rollup{ @@ -113,6 +116,7 @@ func NewRollup( externalRsaPriv: rsaPriv, batchCache: make(map[uint64]*eth.RPCRollupBatch), ldb: ldb, + bm: bm, } } @@ -1090,6 +1094,10 @@ func (r *Rollup) SendTx(tx *types.Transaction) error { if tx == nil { return errors.New("nil tx") } + // l1 health check + if !r.bm.IsGrowth() { + return fmt.Errorf("block not growth in %d blocks time", r.cfg.BlockNotIncreasedThreshold) + } err := sendTx(r.L1Client, r.cfg.TxFeeLimit, tx) if err != nil { diff --git a/tx-submitter/utils/config.go b/tx-submitter/utils/config.go index 3d63fa042..30decb206 100644 --- a/tx-submitter/utils/config.go +++ b/tx-submitter/utils/config.go @@ -105,7 +105,8 @@ type Config struct { // event indexer index step EventIndexStep uint64 // leveldb path name - LeveldbPathName string + LeveldbPathName string + BlockNotIncreasedThreshold int64 } // NewConfig parses the DriverConfig from the provided flags or environment variables. @@ -175,6 +176,8 @@ func NewConfig(ctx *cli.Context) (Config, error) { EventIndexStep: ctx.GlobalUint64(flags.EventIndexStepFlag.Name), // leveldb path name LeveldbPathName: ctx.GlobalString(flags.LeveldbPathNameFlag.Name), + // BlockNotIncreasedThreshold + BlockNotIncreasedThreshold: ctx.GlobalInt64(flags.BlockNotIncreasedThreshold.Name), } return cfg, nil From c83e12e4e952c7f95155d58d7ca7242f2b1eaa58 Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Fri, 8 Nov 2024 14:55:37 +0800 Subject: [PATCH 017/106] start monitoring --- tx-submitter/services/rollup.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index bd7aab3d2..02dc4587e 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -126,6 +126,8 @@ func (r *Rollup) Start() error { if err := r.PreCheck(); err != nil { return err } + // start l1 monitor + go r.bm.StartMonitoring() // journal jn := localpool.New(r.cfg.JournalFilePath) From 44be19835980621e7f0cb8f2d4d8aae54ec0d519 Mon Sep 17 00:00:00 2001 From: kukoo Date: Mon, 11 Nov 2024 14:12:54 +0800 Subject: [PATCH 018/106] Add usdc migration and flatten contracts (#633) --- .../libraries/usdc/FiatTokenProxy.sol.flatten | 114 +- ....sol.flatten => FiatTokenV2_2.sol.flatten} | 1534 ++++++++++++----- .../libraries/usdc/MigrationUSDC.sol | 86 + .../usdc/SignatureChecker.sol.flatten | 219 +++ contracts/tasks/token_deploy.ts | 140 +- 5 files changed, 1586 insertions(+), 507 deletions(-) rename contracts/contracts/libraries/usdc/{FiatTokenV2_1.sol.flatten => FiatTokenV2_2.sol.flatten} (58%) create mode 100644 contracts/contracts/libraries/usdc/MigrationUSDC.sol create mode 100644 contracts/contracts/libraries/usdc/SignatureChecker.sol.flatten diff --git a/contracts/contracts/libraries/usdc/FiatTokenProxy.sol.flatten b/contracts/contracts/libraries/usdc/FiatTokenProxy.sol.flatten index f21d33070..2f9e11121 100644 --- a/contracts/contracts/libraries/usdc/FiatTokenProxy.sol.flatten +++ b/contracts/contracts/libraries/usdc/FiatTokenProxy.sol.flatten @@ -1,29 +1,23 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: Apache-2.0 pragma solidity <0.8.0 =0.6.12 >=0.6.2; // contracts/upgradeability/Proxy.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018 zOS Global Limited. + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /** @@ -294,27 +288,21 @@ library Address { // contracts/upgradeability/UpgradeabilityProxy.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018 zOS Global Limited. + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /** @@ -394,27 +382,21 @@ contract UpgradeabilityProxy is Proxy { // contracts/upgradeability/AdminUpgradeabilityProxy.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018 zOS Global Limited. + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /** @@ -565,27 +547,21 @@ contract AdminUpgradeabilityProxy is UpgradeabilityProxy { // contracts/v1/FiatTokenProxy.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018-2020 CENTRE SECZ + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /** diff --git a/contracts/contracts/libraries/usdc/FiatTokenV2_1.sol.flatten b/contracts/contracts/libraries/usdc/FiatTokenV2_2.sol.flatten similarity index 58% rename from contracts/contracts/libraries/usdc/FiatTokenV2_1.sol.flatten rename to contracts/contracts/libraries/usdc/FiatTokenV2_2.sol.flatten index c1e9df3e9..9f8d3d419 100644 --- a/contracts/contracts/libraries/usdc/FiatTokenV2_1.sol.flatten +++ b/contracts/contracts/libraries/usdc/FiatTokenV2_2.sol.flatten @@ -1,30 +1,59 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: Apache-2.0 pragma solidity <0.8.0 =0.6.12 >=0.6.0 >=0.6.2; -// contracts/util/ECRecover.sol +// contracts/interface/IERC1271.sol /** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * * - * Copyright (c) 2016-2019 zOS Global Limited - * Copyright (c) 2018-2020 CENTRE SECZ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * http://www.apache.org/licenses/LICENSE-2.0 * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @dev Interface of the ERC1271 standard signature validation method for + * contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. + */ +interface IERC1271 { + /** + * @dev Should return whether the signature provided is valid for the provided data + * @param hash Hash of the data to be signed + * @param signature Signature byte array associated with the provided data hash + * @return magicValue bytes4 magic value 0x1626ba7e when function passes + */ + function isValidSignature(bytes32 hash, bytes memory signature) + external + view + returns (bytes4 magicValue); +} + +// contracts/util/ECRecover.sol +/** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /** @@ -74,6 +103,157 @@ library ECRecover { return signer; } + + /** + * @notice Recover signer's address from a signed message + * @dev Adapted from: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/0053ee040a7ff1dbc39691c9e67a69f564930a88/contracts/utils/cryptography/ECDSA.sol + * @param digest Keccak-256 hash digest of the signed message + * @param signature Signature byte array associated with hash + * @return Signer address + */ + function recover(bytes32 digest, bytes memory signature) + internal + pure + returns (address) + { + require(signature.length == 65, "ECRecover: invalid signature length"); + + bytes32 r; + bytes32 s; + uint8 v; + + // ecrecover takes the signature parameters, and the only way to get them + // currently is to use assembly. + /// @solidity memory-safe-assembly + assembly { + r := mload(add(signature, 0x20)) + s := mload(add(signature, 0x40)) + v := byte(0, mload(add(signature, 0x60))) + } + return recover(digest, v, r, s); + } +} + +// contracts/util/EIP712.sol +/** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * + + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @title EIP712 + * @notice A library that provides EIP712 helper functions + */ +library EIP712 { + /** + * @notice Make EIP712 domain separator + * @param name Contract name + * @param version Contract version + * @param chainId Blockchain ID + * @return Domain separator + */ + function makeDomainSeparator( + string memory name, + string memory version, + uint256 chainId + ) internal view returns (bytes32) { + return + keccak256( + abi.encode( + // keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)") + 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f, + keccak256(bytes(name)), + keccak256(bytes(version)), + chainId, + address(this) + ) + ); + } + + /** + * @notice Make EIP712 domain separator + * @param name Contract name + * @param version Contract version + * @return Domain separator + */ + function makeDomainSeparator(string memory name, string memory version) + internal + view + returns (bytes32) + { + uint256 chainId; + assembly { + chainId := chainid() + } + return makeDomainSeparator(name, version, chainId); + } +} + +// contracts/util/MessageHashUtils.sol +/** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * + + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing. + * + * The library provides methods for generating a hash of a message that conforms to the + * https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712] + * specifications. + */ +library MessageHashUtils { + /** + * @dev Returns the keccak256 digest of an EIP-712 typed data (EIP-191 version `0x01`). + * Adapted from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/21bb89ef5bfc789b9333eb05e3ba2b7b284ac77c/contracts/utils/cryptography/MessageHashUtils.sol + * + * The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with + * `\x19\x01` and hashing the result. It corresponds to the hash signed by the + * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712. + * + * @param domainSeparator Domain separator + * @param structHash Hashed EIP-712 data struct + * @return digest The keccak256 digest of an EIP-712 typed data + */ + function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) + internal + pure + returns (bytes32 digest) + { + assembly { + let ptr := mload(0x40) + mstore(ptr, "\x19\x01") + mstore(add(ptr, 0x02), domainSeparator) + mstore(add(ptr, 0x22), structHash) + digest := keccak256(ptr, 0x42) + } + } } // contracts/v1/Ownable.sol @@ -168,37 +348,48 @@ contract Ownable { // contracts/v2/EIP712Domain.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018-2020 CENTRE SECZ + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ +// solhint-disable func-name-mixedcase + /** * @title EIP712 Domain */ contract EIP712Domain { + // was originally DOMAIN_SEPARATOR + // but that has been moved to a method so we can override it in V2_2+ + bytes32 internal _DEPRECATED_CACHED_DOMAIN_SEPARATOR; + + /** + * @notice Get the EIP712 Domain Separator. + * @return The bytes32 EIP712 domain separator. + */ + function DOMAIN_SEPARATOR() external view returns (bytes32) { + return _domainSeparator(); + } + /** - * @dev EIP712 Domain Separator + * @dev Internal method to get the EIP712 Domain Separator. + * @return The bytes32 EIP712 domain separator. */ - bytes32 public DOMAIN_SEPARATOR; + function _domainSeparator() internal virtual view returns (bytes32) { + return _DEPRECATED_CACHED_DOMAIN_SEPARATOR; + } } // node_modules/@openzeppelin/contracts/math/SafeMath.sol @@ -678,114 +869,23 @@ library Address { } } -// contracts/util/EIP712.sol -/** - - * - * Copyright (c) 2018-2020 CENTRE SECZ - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/** - * @title EIP712 - * @notice A library that provides EIP712 helper functions - */ -library EIP712 { - /** - * @notice Make EIP712 domain separator - * @param name Contract name - * @param version Contract version - * @return Domain separator - */ - function makeDomainSeparator(string memory name, string memory version) - internal - view - returns (bytes32) - { - uint256 chainId; - assembly { - chainId := chainid() - } - return - keccak256( - abi.encode( - // keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)") - 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f, - keccak256(bytes(name)), - keccak256(bytes(version)), - chainId, - address(this) - ) - ); - } - - /** - * @notice Recover signer's address from a EIP712 signature - * @param domainSeparator Domain separator - * @param v v of the signature - * @param r r of the signature - * @param s s of the signature - * @param typeHashAndData Type hash concatenated with data - * @return Signer's address - */ - function recover( - bytes32 domainSeparator, - uint8 v, - bytes32 r, - bytes32 s, - bytes memory typeHashAndData - ) internal pure returns (address) { - bytes32 digest = keccak256( - abi.encodePacked( - "\x19\x01", - domainSeparator, - keccak256(typeHashAndData) - ) - ); - return ECRecover.recover(digest, v, r, s); - } -} - // contracts/v1/AbstractFiatTokenV1.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018-2020 CENTRE SECZ + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ abstract contract AbstractFiatTokenV1 is IERC20 { @@ -804,43 +904,37 @@ abstract contract AbstractFiatTokenV1 is IERC20 { // contracts/v1/Blacklistable.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018-2020 CENTRE SECZ + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /** * @title Blacklistable Token * @dev Allows accounts to be blacklisted by a "blacklister" role */ -contract Blacklistable is Ownable { +abstract contract Blacklistable is Ownable { address public blacklister; - mapping(address => bool) internal blacklisted; + mapping(address => bool) internal _deprecatedBlacklisted; event Blacklisted(address indexed _account); event UnBlacklisted(address indexed _account); event BlacklisterChanged(address indexed newBlacklister); /** - * @dev Throws if called by any account other than the blacklister + * @dev Throws if called by any account other than the blacklister. */ modifier onlyBlacklister() { require( @@ -851,43 +945,48 @@ contract Blacklistable is Ownable { } /** - * @dev Throws if argument account is blacklisted - * @param _account The address to check + * @dev Throws if argument account is blacklisted. + * @param _account The address to check. */ modifier notBlacklisted(address _account) { require( - !blacklisted[_account], + !_isBlacklisted(_account), "Blacklistable: account is blacklisted" ); _; } /** - * @dev Checks if account is blacklisted - * @param _account The address to check + * @notice Checks if account is blacklisted. + * @param _account The address to check. + * @return True if the account is blacklisted, false if the account is not blacklisted. */ function isBlacklisted(address _account) external view returns (bool) { - return blacklisted[_account]; + return _isBlacklisted(_account); } /** - * @dev Adds account to blacklist - * @param _account The address to blacklist + * @notice Adds account to blacklist. + * @param _account The address to blacklist. */ function blacklist(address _account) external onlyBlacklister { - blacklisted[_account] = true; + _blacklist(_account); emit Blacklisted(_account); } /** - * @dev Removes account from blacklist - * @param _account The address to remove from the blacklist + * @notice Removes account from blacklist. + * @param _account The address to remove from the blacklist. */ function unBlacklist(address _account) external onlyBlacklister { - blacklisted[_account] = false; + _unBlacklist(_account); emit UnBlacklisted(_account); } + /** + * @notice Updates the blacklister address. + * @param _newBlacklister The address of the new blacklister. + */ function updateBlacklister(address _newBlacklister) external onlyOwner { require( _newBlacklister != address(0), @@ -896,14 +995,37 @@ contract Blacklistable is Ownable { blacklister = _newBlacklister; emit BlacklisterChanged(blacklister); } -} -// contracts/v1/Pausable.sol -/** + /** + * @dev Checks if account is blacklisted. + * @param _account The address to check. + * @return true if the account is blacklisted, false otherwise. + */ + function _isBlacklisted(address _account) + internal + virtual + view + returns (bool); + + /** + * @dev Helper method that blacklists an account. + * @param _account The address to blacklist. + */ + function _blacklist(address _account) internal virtual; + + /** + * @dev Helper method that unblacklists an account. + * @param _account The address to unblacklist. + */ + function _unBlacklist(address _account) internal virtual; +} + +// contracts/v1/Pausable.sol +/** * * Copyright (c) 2016 Smart Contract Solutions, Inc. - * Copyright (c) 2018-2020 CENTRE SECZ0 + * Copyright (c) 2018-2020 CENTRE SECZ * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -978,7 +1100,8 @@ contract Pausable is Ownable { } /** - * @dev update the pauser role + * @notice Updates the pauser address. + * @param _newPauser The address of the new pauser. */ function updatePauser(address _newPauser) external onlyOwner { require( @@ -990,29 +1113,107 @@ contract Pausable is Ownable { } } -// contracts/v2/AbstractFiatTokenV2.sol +// contracts/util/SignatureChecker.sol /** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * * - * Copyright (c) 2018-2020 CENTRE SECZ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * http://www.apache.org/licenses/LICENSE-2.0 * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @dev Signature verification helper that can be used instead of `ECRecover.recover` to seamlessly support both ECDSA + * signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Adapted from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/21bb89ef5bfc789b9333eb05e3ba2b7b284ac77c/contracts/utils/cryptography/SignatureChecker.sol + */ +library SignatureChecker { + /** + * @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the + * signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECRecover.recover`. + * @param signer Address of the claimed signer + * @param digest Keccak-256 hash digest of the signed message + * @param signature Signature byte array associated with hash + */ + function isValidSignatureNow( + address signer, + bytes32 digest, + bytes memory signature + ) external view returns (bool) { + if (!isContract(signer)) { + return ECRecover.recover(digest, signature) == signer; + } + return isValidERC1271SignatureNow(signer, digest, signature); + } + + /** + * @dev Checks if a signature is valid for a given signer and data hash. The signature is validated + * against the signer smart contract using ERC1271. + * @param signer Address of the claimed signer + * @param digest Keccak-256 hash digest of the signed message + * @param signature Signature byte array associated with hash + * + * NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus + * change through time. It could return true at block N and false at block N+1 (or the opposite). + */ + function isValidERC1271SignatureNow( + address signer, + bytes32 digest, + bytes memory signature + ) internal view returns (bool) { + (bool success, bytes memory result) = signer.staticcall( + abi.encodeWithSelector( + IERC1271.isValidSignature.selector, + digest, + signature + ) + ); + return (success && + result.length >= 32 && + abi.decode(result, (bytes32)) == + bytes32(IERC1271.isValidSignature.selector)); + } + + /** + * @dev Checks if the input address is a smart contract. + */ + function isContract(address addr) internal view returns (bool) { + uint256 size; + assembly { + size := extcodesize(addr) + } + return size > 0; + } +} + +// contracts/v2/AbstractFiatTokenV2.sol +/** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * + + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ abstract contract AbstractFiatTokenV2 is AbstractFiatTokenV1 { @@ -1101,27 +1302,21 @@ library SafeERC20 { // contracts/v1.1/Rescuable.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018-2020 CENTRE SECZ + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ contract Rescuable is Ownable { @@ -1162,8 +1357,8 @@ contract Rescuable is Ownable { } /** - * @notice Assign the rescuer role to a given address. - * @param newRescuer New rescuer's address + * @notice Updates the rescuer address. + * @param newRescuer The address of the new rescuer. */ function updateRescuer(address newRescuer) external onlyOwner { require( @@ -1177,27 +1372,21 @@ contract Rescuable is Ownable { // contracts/v1/FiatTokenV1.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018-2020 CENTRE SECZ + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /** @@ -1214,7 +1403,10 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { address public masterMinter; bool internal initialized; - mapping(address => uint256) internal balances; + /// @dev A mapping that stores the balance and blacklist states for a given address. + /// The first bit defines whether the address is blacklisted (1 if blacklisted, 0 otherwise). + /// The last 255 bits define the balance for the address. + mapping(address => uint256) internal balanceAndBlacklistStates; mapping(address => mapping(address => uint256)) internal allowed; uint256 internal totalSupply_ = 0; mapping(address => bool) internal minters; @@ -1226,6 +1418,17 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { event MinterRemoved(address indexed oldMinter); event MasterMinterChanged(address indexed newMasterMinter); + /** + * @notice Initializes the fiat token contract. + * @param tokenName The name of the fiat token. + * @param tokenSymbol The symbol of the fiat token. + * @param tokenCurrency The fiat currency that the token represents. + * @param tokenDecimals The number of decimals that the token uses. + * @param newMasterMinter The masterMinter address for the fiat token. + * @param newPauser The pauser address for the fiat token. + * @param newBlacklister The blacklister address for the fiat token. + * @param newOwner The owner of the fiat token. + */ function initialize( string memory tokenName, string memory tokenSymbol, @@ -1266,7 +1469,7 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { } /** - * @dev Throws if called by any account other than a minter + * @dev Throws if called by any account other than a minter. */ modifier onlyMinters() { require(minters[msg.sender], "FiatToken: caller is not a minter"); @@ -1274,11 +1477,11 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { } /** - * @dev Function to mint tokens + * @notice Mints fiat tokens to an address. * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. Must be less than or equal * to the minterAllowance of the caller. - * @return A boolean that indicates if the operation was successful. + * @return True if the operation was successful. */ function mint(address _to, uint256 _amount) external @@ -1298,7 +1501,7 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { ); totalSupply_ = totalSupply_.add(_amount); - balances[_to] = balances[_to].add(_amount); + _setBalance(_to, _balanceOf(_to).add(_amount)); minterAllowed[msg.sender] = mintingAllowedAmount.sub(_amount); emit Mint(msg.sender, _to, _amount); emit Transfer(address(0), _to, _amount); @@ -1317,27 +1520,29 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { } /** - * @dev Get minter allowance for an account - * @param minter The address of the minter + * @notice Gets the minter allowance for an account. + * @param minter The address to check. + * @return The remaining minter allowance for the account. */ function minterAllowance(address minter) external view returns (uint256) { return minterAllowed[minter]; } /** - * @dev Checks if account is a minter - * @param account The address to check + * @notice Checks if an account is a minter. + * @param account The address to check. + * @return True if the account is a minter, false if the account is not a minter. */ function isMinter(address account) external view returns (bool) { return minters[account]; } /** - * @notice Amount of remaining tokens spender is allowed to transfer on - * behalf of the token owner - * @param owner Token owner's address - * @param spender Spender's address - * @return Allowance amount + * @notice Gets the remaining amount of fiat tokens a spender is allowed to transfer on + * behalf of the token owner. + * @param owner The token owner's address. + * @param spender The spender's address. + * @return The remaining allowance. */ function allowance(address owner, address spender) external @@ -1349,15 +1554,17 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { } /** - * @dev Get totalSupply of token + * @notice Gets the totalSupply of the fiat token. + * @return The totalSupply of the fiat token. */ function totalSupply() external override view returns (uint256) { return totalSupply_; } /** - * @dev Get token balance of an account - * @param account address The account + * @notice Gets the fiat token balance of an account. + * @param account The address to check. + * @return balance The fiat token balance of the account. */ function balanceOf(address account) external @@ -1365,18 +1572,18 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { view returns (uint256) { - return balances[account]; + return _balanceOf(account); } /** - * @notice Set spender's allowance over the caller's tokens to be a given - * value. - * @param spender Spender's address - * @param value Allowance amount - * @return True if successful + * @notice Sets a fiat token allowance for a spender to spend on behalf of the caller. + * @param spender The spender's address. + * @param value The allowance amount. + * @return True if the operation was successful. */ function approve(address spender, uint256 value) external + virtual override whenNotPaused notBlacklisted(msg.sender) @@ -1388,10 +1595,10 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { } /** - * @dev Internal function to set allowance - * @param owner Token owner's address - * @param spender Spender's address - * @param value Allowance amount + * @dev Internal function to set allowance. + * @param owner Token owner's address. + * @param spender Spender's address. + * @param value Allowance amount. */ function _approve( address owner, @@ -1405,11 +1612,12 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { } /** - * @notice Transfer tokens by spending allowance - * @param from Payer's address - * @param to Payee's address - * @param value Transfer amount - * @return True if successful + * @notice Transfers tokens from an address to another by spending the caller's allowance. + * @dev The caller must have some fiat token allowance on the payer's tokens. + * @param from Payer's address. + * @param to Payee's address. + * @param value Transfer amount. + * @return True if the operation was successful. */ function transferFrom( address from, @@ -1434,10 +1642,10 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { } /** - * @notice Transfer tokens from the caller - * @param to Payee's address - * @param value Transfer amount - * @return True if successful + * @notice Transfers tokens from the caller. + * @param to Payee's address. + * @param value Transfer amount. + * @return True if the operation was successful. */ function transfer(address to, uint256 value) external @@ -1452,10 +1660,10 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { } /** - * @notice Internal function to process transfers - * @param from Payer's address - * @param to Payee's address - * @param value Transfer amount + * @dev Internal function to process transfers. + * @param from Payer's address. + * @param to Payee's address. + * @param value Transfer amount. */ function _transfer( address from, @@ -1465,19 +1673,19 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require( - value <= balances[from], + value <= _balanceOf(from), "ERC20: transfer amount exceeds balance" ); - balances[from] = balances[from].sub(value); - balances[to] = balances[to].add(value); + _setBalance(from, _balanceOf(from).sub(value)); + _setBalance(to, _balanceOf(to).add(value)); emit Transfer(from, to, value); } /** - * @dev Function to add/update a new minter - * @param minter The address of the minter - * @param minterAllowedAmount The minting amount allowed for the minter + * @notice Adds or updates a new minter with a mint allowance. + * @param minter The address of the minter. + * @param minterAllowedAmount The minting amount allowed for the minter. * @return True if the operation was successful. */ function configureMinter(address minter, uint256 minterAllowedAmount) @@ -1493,8 +1701,8 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { } /** - * @dev Function to remove a minter - * @param minter The address of the minter to remove + * @notice Removes a minter. + * @param minter The address of the minter to remove. * @return True if the operation was successful. */ function removeMinter(address minter) @@ -1509,10 +1717,10 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { } /** - * @dev allows a minter to burn some of its own tokens - * Validates that caller is a minter and that sender is not blacklisted - * amount is less than or equal to the minter's account balance - * @param _amount uint256 the amount of tokens to be burned + * @notice Allows a minter to burn some of its own tokens. + * @dev The caller must be a minter, must not be blacklisted, and the amount to burn + * should be less than or equal to the account's balance. + * @param _amount the amount of tokens to be burned. */ function burn(uint256 _amount) external @@ -1520,16 +1728,20 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { onlyMinters notBlacklisted(msg.sender) { - uint256 balance = balances[msg.sender]; + uint256 balance = _balanceOf(msg.sender); require(_amount > 0, "FiatToken: burn amount not greater than 0"); require(balance >= _amount, "FiatToken: burn amount exceeds balance"); totalSupply_ = totalSupply_.sub(_amount); - balances[msg.sender] = balance.sub(_amount); + _setBalance(msg.sender, balance.sub(_amount)); emit Burn(msg.sender, _amount); emit Transfer(msg.sender, address(0), _amount); } + /** + * @notice Updates the master minter address. + * @param _newMasterMinter The address of the new master minter. + */ function updateMasterMinter(address _newMasterMinter) external onlyOwner { require( _newMasterMinter != address(0), @@ -1538,31 +1750,87 @@ contract FiatTokenV1 is AbstractFiatTokenV1, Ownable, Pausable, Blacklistable { masterMinter = _newMasterMinter; emit MasterMinterChanged(masterMinter); } + + /** + * + */ + function _blacklist(address _account) internal override { + _setBlacklistState(_account, true); + } + + /** + * + */ + function _unBlacklist(address _account) internal override { + _setBlacklistState(_account, false); + } + + /** + * @dev Helper method that sets the blacklist state of an account. + * @param _account The address of the account. + * @param _shouldBlacklist True if the account should be blacklisted, false if the account should be unblacklisted. + */ + function _setBlacklistState(address _account, bool _shouldBlacklist) + internal + virtual + { + _deprecatedBlacklisted[_account] = _shouldBlacklist; + } + + /** + * @dev Helper method that sets the balance of an account. + * @param _account The address of the account. + * @param _balance The new fiat token balance of the account. + */ + function _setBalance(address _account, uint256 _balance) internal virtual { + balanceAndBlacklistStates[_account] = _balance; + } + + /** + * + */ + function _isBlacklisted(address _account) + internal + virtual + override + view + returns (bool) + { + return _deprecatedBlacklisted[_account]; + } + + /** + * @dev Helper method to obtain the balance of an account. + * @param _account The address of the account. + * @return The fiat token balance of the account. + */ + function _balanceOf(address _account) + internal + virtual + view + returns (uint256) + { + return balanceAndBlacklistStates[_account]; + } } // contracts/v2/EIP2612.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018-2020 CENTRE SECZ + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /** @@ -1590,7 +1858,7 @@ abstract contract EIP2612 is AbstractFiatTokenV2, EIP712Domain { * @param owner Token owner's address (Authorizer) * @param spender Spender's address * @param value Amount of allowance - * @param deadline The time at which this expires (unix time) + * @param deadline The time at which the signature expires (unix time), or max uint256 value to signal no expiration * @param v v of the signature * @param r r of the signature * @param s s of the signature @@ -1604,18 +1872,49 @@ abstract contract EIP2612 is AbstractFiatTokenV2, EIP712Domain { bytes32 r, bytes32 s ) internal { - require(deadline >= now, "FiatTokenV2: permit is expired"); + _permit(owner, spender, value, deadline, abi.encodePacked(r, s, v)); + } - bytes memory data = abi.encode( - PERMIT_TYPEHASH, - owner, - spender, - value, - _permitNonces[owner]++, - deadline + /** + * @notice Verify a signed approval permit and execute if valid + * @dev EOA wallet signatures should be packed in the order of r, s, v. + * @param owner Token owner's address (Authorizer) + * @param spender Spender's address + * @param value Amount of allowance + * @param deadline The time at which the signature expires (unix time), or max uint256 value to signal no expiration + * @param signature Signature byte array signed by an EOA wallet or a contract wallet + */ + function _permit( + address owner, + address spender, + uint256 value, + uint256 deadline, + bytes memory signature + ) internal { + require( + deadline == type(uint256).max || deadline >= now, + "FiatTokenV2: permit is expired" + ); + + bytes32 typedDataHash = MessageHashUtils.toTypedDataHash( + _domainSeparator(), + keccak256( + abi.encode( + PERMIT_TYPEHASH, + owner, + spender, + value, + _permitNonces[owner]++, + deadline + ) + ) ); require( - EIP712.recover(DOMAIN_SEPARATOR, v, r, s, data) == owner, + SignatureChecker.isValidSignatureNow( + owner, + typedDataHash, + signature + ), "EIP2612: invalid signature" ); @@ -1625,27 +1924,21 @@ abstract contract EIP2612 is AbstractFiatTokenV2, EIP712Domain { // contracts/v2/EIP3009.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018-2020 CENTRE SECZ + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /** @@ -1717,20 +2010,52 @@ abstract contract EIP3009 is AbstractFiatTokenV2, EIP712Domain { bytes32 r, bytes32 s ) internal { - _requireValidAuthorization(from, nonce, validAfter, validBefore); - - bytes memory data = abi.encode( - TRANSFER_WITH_AUTHORIZATION_TYPEHASH, + _transferWithAuthorization( from, to, value, validAfter, validBefore, - nonce + nonce, + abi.encodePacked(r, s, v) ); - require( - EIP712.recover(DOMAIN_SEPARATOR, v, r, s, data) == from, - "FiatTokenV2: invalid signature" + } + + /** + * @notice Execute a transfer with a signed authorization + * @dev EOA wallet signatures should be packed in the order of r, s, v. + * @param from Payer's address (Authorizer) + * @param to Payee's address + * @param value Amount to be transferred + * @param validAfter The time after which this is valid (unix time) + * @param validBefore The time before which this is valid (unix time) + * @param nonce Unique nonce + * @param signature Signature byte array produced by an EOA wallet or a contract wallet + */ + function _transferWithAuthorization( + address from, + address to, + uint256 value, + uint256 validAfter, + uint256 validBefore, + bytes32 nonce, + bytes memory signature + ) internal { + _requireValidAuthorization(from, nonce, validAfter, validBefore); + _requireValidSignature( + from, + keccak256( + abi.encode( + TRANSFER_WITH_AUTHORIZATION_TYPEHASH, + from, + to, + value, + validAfter, + validBefore, + nonce + ) + ), + signature ); _markAuthorizationAsUsed(from, nonce); @@ -1762,33 +2087,67 @@ abstract contract EIP3009 is AbstractFiatTokenV2, EIP712Domain { bytes32 r, bytes32 s ) internal { - require(to == msg.sender, "FiatTokenV2: caller must be the payee"); - _requireValidAuthorization(from, nonce, validAfter, validBefore); - - bytes memory data = abi.encode( - RECEIVE_WITH_AUTHORIZATION_TYPEHASH, + _receiveWithAuthorization( from, to, value, validAfter, validBefore, - nonce - ); - require( - EIP712.recover(DOMAIN_SEPARATOR, v, r, s, data) == from, - "FiatTokenV2: invalid signature" + nonce, + abi.encodePacked(r, s, v) ); - - _markAuthorizationAsUsed(from, nonce); - _transfer(from, to, value); } /** - * @notice Attempt to cancel an authorization - * @param authorizer Authorizer's address - * @param nonce Nonce of the authorization - * @param v v of the signature - * @param r r of the signature + * @notice Receive a transfer with a signed authorization from the payer + * @dev This has an additional check to ensure that the payee's address + * matches the caller of this function to prevent front-running attacks. + * EOA wallet signatures should be packed in the order of r, s, v. + * @param from Payer's address (Authorizer) + * @param to Payee's address + * @param value Amount to be transferred + * @param validAfter The time after which this is valid (unix time) + * @param validBefore The time before which this is valid (unix time) + * @param nonce Unique nonce + * @param signature Signature byte array produced by an EOA wallet or a contract wallet + */ + function _receiveWithAuthorization( + address from, + address to, + uint256 value, + uint256 validAfter, + uint256 validBefore, + bytes32 nonce, + bytes memory signature + ) internal { + require(to == msg.sender, "FiatTokenV2: caller must be the payee"); + _requireValidAuthorization(from, nonce, validAfter, validBefore); + _requireValidSignature( + from, + keccak256( + abi.encode( + RECEIVE_WITH_AUTHORIZATION_TYPEHASH, + from, + to, + value, + validAfter, + validBefore, + nonce + ) + ), + signature + ); + + _markAuthorizationAsUsed(from, nonce); + _transfer(from, to, value); + } + + /** + * @notice Attempt to cancel an authorization + * @param authorizer Authorizer's address + * @param nonce Nonce of the authorization + * @param v v of the signature + * @param r r of the signature * @param s s of the signature */ function _cancelAuthorization( @@ -1798,22 +2157,55 @@ abstract contract EIP3009 is AbstractFiatTokenV2, EIP712Domain { bytes32 r, bytes32 s ) internal { - _requireUnusedAuthorization(authorizer, nonce); + _cancelAuthorization(authorizer, nonce, abi.encodePacked(r, s, v)); + } - bytes memory data = abi.encode( - CANCEL_AUTHORIZATION_TYPEHASH, + /** + * @notice Attempt to cancel an authorization + * @dev EOA wallet signatures should be packed in the order of r, s, v. + * @param authorizer Authorizer's address + * @param nonce Nonce of the authorization + * @param signature Signature byte array produced by an EOA wallet or a contract wallet + */ + function _cancelAuthorization( + address authorizer, + bytes32 nonce, + bytes memory signature + ) internal { + _requireUnusedAuthorization(authorizer, nonce); + _requireValidSignature( authorizer, - nonce - ); - require( - EIP712.recover(DOMAIN_SEPARATOR, v, r, s, data) == authorizer, - "FiatTokenV2: invalid signature" + keccak256( + abi.encode(CANCEL_AUTHORIZATION_TYPEHASH, authorizer, nonce) + ), + signature ); _authorizationStates[authorizer][nonce] = true; emit AuthorizationCanceled(authorizer, nonce); } + /** + * @notice Validates that signature against input data struct + * @param signer Signer's address + * @param dataHash Hash of encoded data struct + * @param signature Signature byte array produced by an EOA wallet or a contract wallet + */ + function _requireValidSignature( + address signer, + bytes32 dataHash, + bytes memory signature + ) private view { + require( + SignatureChecker.isValidSignatureNow( + signer, + MessageHashUtils.toTypedDataHash(_domainSeparator(), dataHash), + signature + ), + "FiatTokenV2: invalid signature" + ); + } + /** * @notice Check that an authorization is unused * @param authorizer Authorizer's address @@ -1865,27 +2257,21 @@ abstract contract EIP3009 is AbstractFiatTokenV2, EIP712Domain { // contracts/v1.1/FiatTokenV1_1.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018-2020 CENTRE SECZ + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /** @@ -1898,27 +2284,21 @@ contract FiatTokenV1_1 is FiatTokenV1, Rescuable { // contracts/v2/FiatTokenV2.sol /** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * * - * Copyright (c) 2018-2020 CENTRE SECZ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * http://www.apache.org/licenses/LICENSE-2.0 * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /** @@ -1936,7 +2316,10 @@ contract FiatTokenV2 is FiatTokenV1_1, EIP3009, EIP2612 { // solhint-disable-next-line reason-string require(initialized && _initializedVersion == 0); name = newName; - DOMAIN_SEPARATOR = EIP712.makeDomainSeparator(newName, "2"); + _DEPRECATED_CACHED_DOMAIN_SEPARATOR = EIP712.makeDomainSeparator( + newName, + "2" + ); _initializedVersion = 1; } @@ -1948,6 +2331,7 @@ contract FiatTokenV2 is FiatTokenV1_1, EIP3009, EIP2612 { */ function increaseAllowance(address spender, uint256 increment) external + virtual whenNotPaused notBlacklisted(msg.sender) notBlacklisted(spender) @@ -1965,6 +2349,7 @@ contract FiatTokenV2 is FiatTokenV1_1, EIP3009, EIP2612 { */ function decreaseAllowance(address spender, uint256 decrement) external + virtual whenNotPaused notBlacklisted(msg.sender) notBlacklisted(spender) @@ -2072,7 +2457,7 @@ contract FiatTokenV2 is FiatTokenV1_1, EIP3009, EIP2612 { * @param owner Token owner's address (Authorizer) * @param spender Spender's address * @param value Amount of allowance - * @param deadline Expiration time, seconds since the epoch + * @param deadline The time at which the signature expires (unix time), or max uint256 value to signal no expiration * @param v v of the signature * @param r r of the signature * @param s s of the signature @@ -2085,12 +2470,18 @@ contract FiatTokenV2 is FiatTokenV1_1, EIP3009, EIP2612 { uint8 v, bytes32 r, bytes32 s - ) external whenNotPaused notBlacklisted(owner) notBlacklisted(spender) { + ) + external + virtual + whenNotPaused + notBlacklisted(owner) + notBlacklisted(spender) + { _permit(owner, spender, value, deadline, v, r, s); } /** - * @notice Internal function to increase the allowance by a given increment + * @dev Internal function to increase the allowance by a given increment * @param owner Token owner's address * @param spender Spender's address * @param increment Amount of increase @@ -2104,7 +2495,7 @@ contract FiatTokenV2 is FiatTokenV1_1, EIP3009, EIP2612 { } /** - * @notice Internal function to decrease the allowance by a given decrement + * @dev Internal function to decrease the allowance by a given decrement * @param owner Token owner's address * @param spender Spender's address * @param decrement Amount of decrease @@ -2127,27 +2518,21 @@ contract FiatTokenV2 is FiatTokenV1_1, EIP3009, EIP2612 { // contracts/v2/FiatTokenV2_1.sol /** - + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. * - * Copyright (c) 2018-2020 CENTRE SECZ + * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ // solhint-disable func-name-mixedcase @@ -2165,11 +2550,11 @@ contract FiatTokenV2_1 is FiatTokenV2 { // solhint-disable-next-line reason-string require(_initializedVersion == 1); - uint256 lockedAmount = balances[address(this)]; + uint256 lockedAmount = _balanceOf(address(this)); if (lockedAmount > 0) { _transfer(address(this), lostAndFound, lockedAmount); } - blacklisted[address(this)] = true; + _blacklist(address(this)); _initializedVersion = 2; } @@ -2178,7 +2563,314 @@ contract FiatTokenV2_1 is FiatTokenV2 { * @notice Version string for the EIP712 domain separator * @return Version string */ - function version() external view returns (string memory) { + function version() external pure returns (string memory) { return "2"; } } + +// contracts/v2/FiatTokenV2_2.sol +/** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * + + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + // solhint-disable-line no-unused-import + // solhint-disable-line no-unused-import + // solhint-disable-line no-unused-import + // solhint-disable-line no-unused-import + +// solhint-disable func-name-mixedcase + +/** + * @title FiatToken V2.2 + * @notice ERC20 Token backed by fiat reserves, version 2.2 + */ +contract FiatTokenV2_2 is FiatTokenV2_1 { + /** + * @notice Initialize v2.2 + * @param accountsToBlacklist A list of accounts to migrate from the old blacklist + * @param newSymbol New token symbol + * data structure to the new blacklist data structure. + */ + function initializeV2_2( + address[] calldata accountsToBlacklist, + string calldata newSymbol + ) external { + // solhint-disable-next-line reason-string + require(_initializedVersion == 2); + + // Update fiat token symbol + symbol = newSymbol; + + // Add previously blacklisted accounts to the new blacklist data structure + // and remove them from the old blacklist data structure. + for (uint256 i = 0; i < accountsToBlacklist.length; i++) { + require( + _deprecatedBlacklisted[accountsToBlacklist[i]], + "FiatTokenV2_2: Blacklisting previously unblacklisted account!" + ); + _blacklist(accountsToBlacklist[i]); + delete _deprecatedBlacklisted[accountsToBlacklist[i]]; + } + _blacklist(address(this)); + delete _deprecatedBlacklisted[address(this)]; + + _initializedVersion = 3; + } + + /** + * @dev Internal function to get the current chain id. + * @return The current chain id. + */ + function _chainId() internal virtual view returns (uint256) { + uint256 chainId; + assembly { + chainId := chainid() + } + return chainId; + } + + /** + * + */ + function _domainSeparator() internal override view returns (bytes32) { + return EIP712.makeDomainSeparator(name, "2", _chainId()); + } + + /** + * @notice Update allowance with a signed permit + * @dev EOA wallet signatures should be packed in the order of r, s, v. + * @param owner Token owner's address (Authorizer) + * @param spender Spender's address + * @param value Amount of allowance + * @param deadline The time at which the signature expires (unix time), or max uint256 value to signal no expiration + * @param signature Signature bytes signed by an EOA wallet or a contract wallet + */ + function permit( + address owner, + address spender, + uint256 value, + uint256 deadline, + bytes memory signature + ) external whenNotPaused { + _permit(owner, spender, value, deadline, signature); + } + + /** + * @notice Execute a transfer with a signed authorization + * @dev EOA wallet signatures should be packed in the order of r, s, v. + * @param from Payer's address (Authorizer) + * @param to Payee's address + * @param value Amount to be transferred + * @param validAfter The time after which this is valid (unix time) + * @param validBefore The time before which this is valid (unix time) + * @param nonce Unique nonce + * @param signature Signature bytes signed by an EOA wallet or a contract wallet + */ + function transferWithAuthorization( + address from, + address to, + uint256 value, + uint256 validAfter, + uint256 validBefore, + bytes32 nonce, + bytes memory signature + ) external whenNotPaused notBlacklisted(from) notBlacklisted(to) { + _transferWithAuthorization( + from, + to, + value, + validAfter, + validBefore, + nonce, + signature + ); + } + + /** + * @notice Receive a transfer with a signed authorization from the payer + * @dev This has an additional check to ensure that the payee's address + * matches the caller of this function to prevent front-running attacks. + * EOA wallet signatures should be packed in the order of r, s, v. + * @param from Payer's address (Authorizer) + * @param to Payee's address + * @param value Amount to be transferred + * @param validAfter The time after which this is valid (unix time) + * @param validBefore The time before which this is valid (unix time) + * @param nonce Unique nonce + * @param signature Signature bytes signed by an EOA wallet or a contract wallet + */ + function receiveWithAuthorization( + address from, + address to, + uint256 value, + uint256 validAfter, + uint256 validBefore, + bytes32 nonce, + bytes memory signature + ) external whenNotPaused notBlacklisted(from) notBlacklisted(to) { + _receiveWithAuthorization( + from, + to, + value, + validAfter, + validBefore, + nonce, + signature + ); + } + + /** + * @notice Attempt to cancel an authorization + * @dev Works only if the authorization is not yet used. + * EOA wallet signatures should be packed in the order of r, s, v. + * @param authorizer Authorizer's address + * @param nonce Nonce of the authorization + * @param signature Signature bytes signed by an EOA wallet or a contract wallet + */ + function cancelAuthorization( + address authorizer, + bytes32 nonce, + bytes memory signature + ) external whenNotPaused { + _cancelAuthorization(authorizer, nonce, signature); + } + + /** + * @dev Helper method that sets the blacklist state of an account on balanceAndBlacklistStates. + * If _shouldBlacklist is true, we apply a (1 << 255) bitmask with an OR operation on the + * account's balanceAndBlacklistState. This flips the high bit for the account to 1, + * indicating that the account is blacklisted. + * + * If _shouldBlacklist if false, we reset the account's balanceAndBlacklistStates to their + * balances. This clears the high bit for the account, indicating that the account is unblacklisted. + * @param _account The address of the account. + * @param _shouldBlacklist True if the account should be blacklisted, false if the account should be unblacklisted. + */ + function _setBlacklistState(address _account, bool _shouldBlacklist) + internal + override + { + balanceAndBlacklistStates[_account] = _shouldBlacklist + ? balanceAndBlacklistStates[_account] | (1 << 255) + : _balanceOf(_account); + } + + /** + * @dev Helper method that sets the balance of an account on balanceAndBlacklistStates. + * Since balances are stored in the last 255 bits of the balanceAndBlacklistStates value, + * we need to ensure that the updated balance does not exceed (2^255 - 1). + * Since blacklisted accounts' balances cannot be updated, the method will also + * revert if the account is blacklisted + * @param _account The address of the account. + * @param _balance The new fiat token balance of the account (max: (2^255 - 1)). + */ + function _setBalance(address _account, uint256 _balance) internal override { + require( + _balance <= ((1 << 255) - 1), + "FiatTokenV2_2: Balance exceeds (2^255 - 1)" + ); + require( + !_isBlacklisted(_account), + "FiatTokenV2_2: Account is blacklisted" + ); + + balanceAndBlacklistStates[_account] = _balance; + } + + /** + * + */ + function _isBlacklisted(address _account) + internal + override + view + returns (bool) + { + return balanceAndBlacklistStates[_account] >> 255 == 1; + } + + /** + * @dev Helper method to obtain the balance of an account. Since balances + * are stored in the last 255 bits of the balanceAndBlacklistStates value, + * we apply a ((1 << 255) - 1) bit bitmask with an AND operation on the + * balanceAndBlacklistState to obtain the balance. + * @param _account The address of the account. + * @return The fiat token balance of the account. + */ + function _balanceOf(address _account) + internal + override + view + returns (uint256) + { + return balanceAndBlacklistStates[_account] & ((1 << 255) - 1); + } + + /** + * + */ + function approve(address spender, uint256 value) + external + override + whenNotPaused + returns (bool) + { + _approve(msg.sender, spender, value); + return true; + } + + /** + * + */ + function permit( + address owner, + address spender, + uint256 value, + uint256 deadline, + uint8 v, + bytes32 r, + bytes32 s + ) external override whenNotPaused { + _permit(owner, spender, value, deadline, v, r, s); + } + + /** + * + */ + function increaseAllowance(address spender, uint256 increment) + external + override + whenNotPaused + returns (bool) + { + _increaseAllowance(msg.sender, spender, increment); + return true; + } + + /** + * + */ + function decreaseAllowance(address spender, uint256 decrement) + external + override + whenNotPaused + returns (bool) + { + _decreaseAllowance(msg.sender, spender, decrement); + return true; + } +} diff --git a/contracts/contracts/libraries/usdc/MigrationUSDC.sol b/contracts/contracts/libraries/usdc/MigrationUSDC.sol new file mode 100644 index 000000000..462aacb70 --- /dev/null +++ b/contracts/contracts/libraries/usdc/MigrationUSDC.sol @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: MIT + +pragma solidity =0.8.24; + +import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol"; +import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol"; +import {IERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol"; +import {SafeERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol"; + +contract MigrationUSDC is OwnableUpgradeable, PausableUpgradeable, ReentrancyGuardUpgradeable { + using SafeERC20Upgradeable for IERC20Upgradeable; + + /// @dev Thrown the token balance is zero. + error ErrorTokenBalanceZero(); + + event Migrate(address indexed user, uint256 amount); + event Transfer(address indexed token, address indexed to, uint256 amount); + + /// @notice The address of old USDC address. + address public immutable OLD_USDC; + + /// @notice The address of new USDC address. + address public immutable NEW_USDC; + + /*************** + * Constructor * + ***************/ + /// @notice Constructor for `MigrationUSDC` implementation contract. + /// + /// @param _oldUSDC The address of old USDC in L2. + /// @param _newUSDC The address of new USDC in L2. + constructor(address _oldUSDC, address _newUSDC) { + _disableInitializers(); + + OLD_USDC = _oldUSDC; + NEW_USDC = _newUSDC; + } + + // initialize contract status + function initialize() external initializer { + __Ownable_init(); + __Pausable_init(); + __ReentrancyGuard_init(); + } + + // Transfer all old USDC to this contract and then transfer new USDC token to msg sender. + function migrate() external nonReentrant whenNotPaused { + // Get old USDC balance. + uint256 balance = IERC20Upgradeable(OLD_USDC).balanceOf(_msgSender()); + if (balance == 0) { + revert ErrorTokenBalanceZero(); + } + // Transfer token into this contract. + IERC20Upgradeable(OLD_USDC).safeTransferFrom(_msgSender(), address(this), balance); + // Transfer new USDC token to msg sender. + IERC20Upgradeable(NEW_USDC).transfer(_msgSender(), balance); + emit Migrate(_msgSender(), balance); + } + + // Transfer token to other address. + function transferToken(address _token, address _to, uint256 _amount) external onlyOwner { + uint256 balance = IERC20Upgradeable(_token).balanceOf(address(this)); + if (balance == 0) { + revert ErrorTokenBalanceZero(); + } + // transfer all token + if (balance < _amount) { + _amount = balance; + } + // Transfer token. + IERC20Upgradeable(_token).transfer(_to, _amount); + emit Transfer(_token, _to, _amount); + } + + // Change pause status + function setPause(bool status) external { + if (status) { + _requireNotPaused(); + _pause(); + } else { + _requirePaused(); + _unpause(); + } + } +} diff --git a/contracts/contracts/libraries/usdc/SignatureChecker.sol.flatten b/contracts/contracts/libraries/usdc/SignatureChecker.sol.flatten new file mode 100644 index 000000000..5f3ef0554 --- /dev/null +++ b/contracts/contracts/libraries/usdc/SignatureChecker.sol.flatten @@ -0,0 +1,219 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity =0.6.12; + +// contracts/interface/IERC1271.sol +/** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * + + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @dev Interface of the ERC1271 standard signature validation method for + * contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. + */ +interface IERC1271 { + /** + * @dev Should return whether the signature provided is valid for the provided data + * @param hash Hash of the data to be signed + * @param signature Signature byte array associated with the provided data hash + * @return magicValue bytes4 magic value 0x1626ba7e when function passes + */ + function isValidSignature(bytes32 hash, bytes memory signature) + external + view + returns (bytes4 magicValue); +} + +// contracts/util/ECRecover.sol +/** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * + + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @title ECRecover + * @notice A library that provides a safe ECDSA recovery function + */ +library ECRecover { + /** + * @notice Recover signer's address from a signed message + * @dev Adapted from: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/65e4ffde586ec89af3b7e9140bdc9235d1254853/contracts/cryptography/ECDSA.sol + * Modifications: Accept v, r, and s as separate arguments + * @param digest Keccak-256 hash digest of the signed message + * @param v v of the signature + * @param r r of the signature + * @param s s of the signature + * @return Signer address + */ + function recover( + bytes32 digest, + uint8 v, + bytes32 r, + bytes32 s + ) internal pure returns (address) { + // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature + // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines + // the valid range for s in (281): 0 < s < secp256k1n ÷ 2 + 1, and for v in (282): v ∈ {27, 28}. Most + // signatures from current libraries generate a unique signature with an s-value in the lower half order. + // + // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value + // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or + // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept + // these malleable signatures as well. + if ( + uint256(s) > + 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 + ) { + revert("ECRecover: invalid signature 's' value"); + } + + if (v != 27 && v != 28) { + revert("ECRecover: invalid signature 'v' value"); + } + + // If the signature is valid (and not malleable), return the signer address + address signer = ecrecover(digest, v, r, s); + require(signer != address(0), "ECRecover: invalid signature"); + + return signer; + } + + /** + * @notice Recover signer's address from a signed message + * @dev Adapted from: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/0053ee040a7ff1dbc39691c9e67a69f564930a88/contracts/utils/cryptography/ECDSA.sol + * @param digest Keccak-256 hash digest of the signed message + * @param signature Signature byte array associated with hash + * @return Signer address + */ + function recover(bytes32 digest, bytes memory signature) + internal + pure + returns (address) + { + require(signature.length == 65, "ECRecover: invalid signature length"); + + bytes32 r; + bytes32 s; + uint8 v; + + // ecrecover takes the signature parameters, and the only way to get them + // currently is to use assembly. + /// @solidity memory-safe-assembly + assembly { + r := mload(add(signature, 0x20)) + s := mload(add(signature, 0x40)) + v := byte(0, mload(add(signature, 0x60))) + } + return recover(digest, v, r, s); + } +} + +// contracts/util/SignatureChecker.sol +/** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * + + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @dev Signature verification helper that can be used instead of `ECRecover.recover` to seamlessly support both ECDSA + * signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets. + * + * Adapted from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/21bb89ef5bfc789b9333eb05e3ba2b7b284ac77c/contracts/utils/cryptography/SignatureChecker.sol + */ +library SignatureChecker { + /** + * @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the + * signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECRecover.recover`. + * @param signer Address of the claimed signer + * @param digest Keccak-256 hash digest of the signed message + * @param signature Signature byte array associated with hash + */ + function isValidSignatureNow( + address signer, + bytes32 digest, + bytes memory signature + ) external view returns (bool) { + if (!isContract(signer)) { + return ECRecover.recover(digest, signature) == signer; + } + return isValidERC1271SignatureNow(signer, digest, signature); + } + + /** + * @dev Checks if a signature is valid for a given signer and data hash. The signature is validated + * against the signer smart contract using ERC1271. + * @param signer Address of the claimed signer + * @param digest Keccak-256 hash digest of the signed message + * @param signature Signature byte array associated with hash + * + * NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus + * change through time. It could return true at block N and false at block N+1 (or the opposite). + */ + function isValidERC1271SignatureNow( + address signer, + bytes32 digest, + bytes memory signature + ) internal view returns (bool) { + (bool success, bytes memory result) = signer.staticcall( + abi.encodeWithSelector( + IERC1271.isValidSignature.selector, + digest, + signature + ) + ); + return (success && + result.length >= 32 && + abi.decode(result, (bytes32)) == + bytes32(IERC1271.isValidSignature.selector)); + } + + /** + * @dev Checks if the input address is a smart contract. + */ + function isContract(address addr) internal view returns (bool) { + uint256 size; + assembly { + size := extcodesize(addr) + } + return size > 0; + } +} diff --git a/contracts/tasks/token_deploy.ts b/contracts/tasks/token_deploy.ts index bd7a10ef3..81821d0dc 100644 --- a/contracts/tasks/token_deploy.ts +++ b/contracts/tasks/token_deploy.ts @@ -359,25 +359,26 @@ task("upgrade-l1-usdcgateway") const proxyAdmin = await ProxyAdminFactory.attach(taskArgs.proxyadmin) console.log(`proxy admin at ${proxyAdmin.address}`) - let res = await proxyAdmin.upgradeAndCall( + let res = await proxyAdmin.upgrade( taskArgs.l1usdcgatewayproxy, - gateway.address, - GatewayFactory.interface.encodeFunctionData("initialize", [ - taskArgs.counterpart, - taskArgs.router, - taskArgs.messenger - ] - ) + gateway.address ) let rec =await res.wait() console.log(`upgrade gateway ${rec.status == 1}`) + const gatewayProxy = GatewayFactory.attach(taskArgs.l1usdcgatewayproxy) + res = await gatewayProxy.initialize(taskArgs.counterpart,taskArgs.router,taskArgs.messenger) + rec =await res.wait() + console.log(`init gateway ${rec.status == 1}`) + + const owner = await gatewayProxy.owner() const counterpart = await gatewayProxy.counterpart() const router = await gatewayProxy.router() + const messenger = await gatewayProxy.messenger() const l1USDC = await gatewayProxy.l1USDC() const l2USDC = await gatewayProxy.l2USDC() - console.log(`gatewayProxy ${gatewayProxy.address}, counterpart ${counterpart}, router ${router}, l1USDC ${l1USDC}, l2USDC ${l2USDC}`) + console.log(`owner ${owner}, gatewayProxy ${gatewayProxy.address}, counterpart ${counterpart}, router ${router}, messenger ${messenger}, l1USDC ${l1USDC}, l2USDC ${l2USDC}`) }) task("upgrade-l2-usdcgateway") @@ -412,20 +413,17 @@ task("upgrade-l2-usdcgateway") const proxyAdmin = await ProxyAdminFactory.attach(taskArgs.proxyadmin) console.log(`proxy admin at ${proxyAdmin.address}`) - let res = await proxyAdmin.upgradeAndCall( + let res = await proxyAdmin.upgrade( taskArgs.l2usdcgatewayproxy, - gateway.address, - GatewayFactory.interface.encodeFunctionData("initialize", [ - taskArgs.counterpart, - taskArgs.router, - taskArgs.messenger - ] - ) + gateway.address ) let rec =await res.wait() console.log(`upgrade gateway ${rec.status == 1}`) const gatewayProxy = GatewayFactory.attach(taskArgs.l2usdcgatewayproxy) + res = await gatewayProxy.initialize( taskArgs.counterpart,taskArgs.router,taskArgs.messenger) + rec =await res.wait() + console.log(`init gateway ${rec.status == 1}`) const counterpart = await gatewayProxy.counterpart() const router = await gatewayProxy.router() const l1USDC = await gatewayProxy.l1USDC() @@ -501,3 +499,111 @@ task("upgrade-l2-usdc-v2-1") rec = await res.wait() console.log(`l2 usdc initializeV2_1 ${rec.status == 1}`) }) + +task("deploy-l1-proxy") + .addParam("proxyadmin") + .addParam("empty") + .setAction(async (taskArgs, hre) => { + // params check + if (!ethers.utils.isAddress(taskArgs.proxyadmin) || + !ethers.utils.isAddress(taskArgs.empty) + ) { + console.error(`address params check failed`) + return + } + + const TransparentProxyFactory = await hre.ethers.getContractFactory("TransparentUpgradeableProxy") + const proxy = await TransparentProxyFactory.deploy( + taskArgs.empty, //logic + taskArgs.proxyadmin, //admin + "0x" + ) + await proxy.deployed() + console.log(`proxy deployed at ${proxy.address}`) + }) + + +task("deploy-l2-usdcgateway") + .addParam("proxyadmin") + .addParam("l1token") + .addParam("l2token") + .addParam("counterpart") + .addParam("router") + .addParam("messenger") + .setAction(async (taskArgs, hre) => { + // params check + if (!ethers.utils.isAddress(taskArgs.proxyadmin) || + !ethers.utils.isAddress(taskArgs.l1token) || + !ethers.utils.isAddress(taskArgs.l2token) || + !ethers.utils.isAddress(taskArgs.counterpart) || + !ethers.utils.isAddress(taskArgs.router) || + !ethers.utils.isAddress(taskArgs.messenger) + ) { + console.error(`address params check failed`) + return + } + // deploy gateway impl + const GatewayFactory = await hre.ethers.getContractFactory("L2USDCGateway") + const gateway = await GatewayFactory.deploy(taskArgs.l1token, taskArgs.l2token) + await gateway.deployed() + console.log(`gateway impl deployed at ${gateway.address}`) + + const TransparentProxyFactory = await hre.ethers.getContractFactory("TransparentUpgradeableProxy") + const proxy = await TransparentProxyFactory.deploy( + gateway.address, //logic + taskArgs.proxyadmin, //admin + GatewayFactory.interface.encodeFunctionData("initialize",[ + taskArgs.counterpart, + taskArgs.router, + taskArgs.messenger + ] + ) + ) + await proxy.deployed() + console.log(`gateway proxy deployed at ${proxy.address}`) + + const gatewayProxy = GatewayFactory.attach(proxy.address) + const owner = await gatewayProxy.owner() + const counterpart = await gatewayProxy.counterpart() + const router = await gatewayProxy.router() + const messenger = await gatewayProxy.messenger() + const l1USDC = await gatewayProxy.l1USDC() + const l2USDC = await gatewayProxy.l2USDC() + console.log(`owner ${owner}, gatewayProxy ${gatewayProxy.address}, counterpart ${counterpart}, router ${router}, messenger ${messenger}, l1USDC ${l1USDC}, l2USDC ${l2USDC}`) + }) + +task("deploy-l2-MigrationUSDC") + .addParam("proxyadmin") + .addParam("oldtoken") + .addParam("newtoken") + .setAction(async (taskArgs, hre) => { + // params check + if (!ethers.utils.isAddress(taskArgs.proxyadmin) || + !ethers.utils.isAddress(taskArgs.oldtoken) || + !ethers.utils.isAddress(taskArgs.newtoken) + ) { + console.error(`address params check failed`) + return + } + // deploy gateway impl + const ContractFactory = await hre.ethers.getContractFactory("MigrationUSDC") + const contract = await ContractFactory.deploy(taskArgs.oldtoken, taskArgs.newtoken) + await contract.deployed() + console.log(`MigrationUSDC impl deployed at ${contract.address}`) + + const TransparentProxyFactory = await hre.ethers.getContractFactory("TransparentUpgradeableProxy") + const proxy = await TransparentProxyFactory.deploy( + contract.address, //logic + taskArgs.proxyadmin, //admin + ContractFactory.interface.encodeFunctionData("initialize",[] + ) + ) + await proxy.deployed() + console.log(`MigrationUSDC proxy deployed at ${proxy.address}`) + + const migrationProxy = ContractFactory.attach(proxy.address) + const owner = await migrationProxy.owner() + const oldtoken = await migrationProxy.OLD_USDC() + const newtoken = await migrationProxy.NEW_USDC() + console.log(`owner ${owner}, oldtoken ${oldtoken}, newtoken ${newtoken}`) + }) \ No newline at end of file From 74e8c2aba62f15bcb5bc9bd29f45fd7ad4722d66 Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Mon, 11 Nov 2024 16:08:29 +0800 Subject: [PATCH 019/106] adjust l1monitor service start order --- tx-submitter/services/rollup.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 02dc4587e..d944b5bd4 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -126,8 +126,6 @@ func (r *Rollup) Start() error { if err := r.PreCheck(); err != nil { return err } - // start l1 monitor - go r.bm.StartMonitoring() // journal jn := localpool.New(r.cfg.JournalFilePath) @@ -150,6 +148,10 @@ func (r *Rollup) Start() error { return fmt.Errorf("init fee metrics sum failed: %w", err) } + /// start services + // start l1 monitor + go r.bm.StartMonitoring() + // metrics go utils.Loop(r.ctx, 10*time.Second, func() { From 18a51b24b5c91ae6f28498425ec469097d850915 Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Mon, 11 Nov 2024 16:19:35 +0800 Subject: [PATCH 020/106] fix(tx-submitter): add mutex to protect latestBlockTime in BlockMonitor - Add a mutex to ensure thread-safe access to latestBlockTime - Implement SetLatestBlockTime and GetLatestBlockTime methods - Update StartMonitoring and IsGrowth methods to use new thread-safe accessors --- tx-submitter/l1checker/blockmonitor.go | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/tx-submitter/l1checker/blockmonitor.go b/tx-submitter/l1checker/blockmonitor.go index 9864bcf83..78270c0f2 100644 --- a/tx-submitter/l1checker/blockmonitor.go +++ b/tx-submitter/l1checker/blockmonitor.go @@ -2,9 +2,11 @@ package l1checker import ( "context" - "morph-l2/tx-submitter/iface" + "sync" "time" + "morph-l2/tx-submitter/iface" + "github.com/morph-l2/go-ethereum/log" ) @@ -17,6 +19,7 @@ type BlockMonitor struct { latestBlockTime time.Time noGrowthBlockCntTime time.Duration client iface.L1Client + mu sync.Mutex } func NewBlockMonitor(notGrowthInBlocks int64, client iface.L1Client) *BlockMonitor { @@ -36,13 +39,26 @@ func (m *BlockMonitor) StartMonitoring() { log.Warn("failed to get block in blockmonitor", "error", err) continue } - m.latestBlockTime = time.Unix(int64(header.Time), 0) + m.SetLatestBlockTime(time.Unix(int64(header.Time), 0)) } } func (m *BlockMonitor) IsGrowth() bool { - if m.latestBlockTime.IsZero() { + t := m.GetLatestBlockTime() + if t.IsZero() { return false } - return time.Since(m.latestBlockTime) > m.noGrowthBlockCntTime + return time.Since(t) > m.noGrowthBlockCntTime +} + +func (m *BlockMonitor) SetLatestBlockTime(t time.Time) { + m.mu.Lock() + defer m.mu.Unlock() + m.latestBlockTime = t +} + +func (m *BlockMonitor) GetLatestBlockTime() time.Time { + m.mu.Lock() + defer m.mu.Unlock() + return m.latestBlockTime } From 117bfbdd239b1c7eb3ca3be66376add7496eaadb Mon Sep 17 00:00:00 2001 From: Segue Date: Tue, 12 Nov 2024 10:47:41 +0800 Subject: [PATCH 021/106] update gov --- contracts/contracts/l2/staking/Gov.sol | 19 ++-- contracts/contracts/test/Gov.t.sol | 118 +++++++++++++++++++++++-- 2 files changed, 121 insertions(+), 16 deletions(-) diff --git a/contracts/contracts/l2/staking/Gov.sol b/contracts/contracts/l2/staking/Gov.sol index 4ea8805c4..7edf13a07 100644 --- a/contracts/contracts/l2/staking/Gov.sol +++ b/contracts/contracts/l2/staking/Gov.sol @@ -50,7 +50,7 @@ contract Gov is IGov, OwnableUpgradeable { uint256 public override currentProposalID; /// @notice the start index of undeleted proposals - uint256 private undeletedProposalStart; + uint256 public undeletedProposalStart; /// @notice proposal data mapping(uint256 proposalID => ProposalData) public proposalData; @@ -61,8 +61,8 @@ contract Gov is IGov, OwnableUpgradeable { /// @notice proposal voter info mapping(uint256 proposalID => EnumerableSetUpgradeable.AddressSet) internal votes; - /// @notice latest passed proposal ID - uint256 public latestPassedProposalID; + /// @notice latest executed proposal ID + uint256 public latestExecutedProposalID; /********************** * Function Modifiers * @@ -149,7 +149,7 @@ contract Gov is IGov, OwnableUpgradeable { /// @notice vote a proposal function vote(uint256 proposalID) external onlySequencer { require(proposalID <= currentProposalID, "invalid proposalID"); - require(proposalID > latestPassedProposalID, "expired proposal"); + require(proposalID > latestExecutedProposalID, "expired proposalID"); require(proposalID >= undeletedProposalStart, "proposal pruned"); uint256 expirationTime = proposalInfos[proposalID].expirationTime; require( @@ -188,7 +188,7 @@ contract Gov is IGov, OwnableUpgradeable { /// @notice execute a passed proposal /// @param deleteTo last proposal ID to delete function cleanUpExpiredProposals(uint256 deleteTo) external { - require(deleteTo < latestPassedProposalID, "only allow to delete the proposal befor latest passed proposal"); + require(deleteTo < latestExecutedProposalID, "only allow to delete the proposal befor latest passed proposal"); // when a proposal is passed, the previous proposals will be invalidated and deleted for (uint256 i = undeletedProposalStart; i <= deleteTo; i++) { delete proposalData[i]; @@ -205,8 +205,13 @@ contract Gov is IGov, OwnableUpgradeable { /// @notice return proposal status. {finished, passed, executed} function proposalStatus(uint256 proposalID) public view returns (bool, bool, bool) { require(proposalID <= currentProposalID, "invalid proposalID"); - require(proposalID > latestPassedProposalID, "expired proposal"); + require(proposalID >= latestExecutedProposalID, "expired proposal"); require(proposalID >= undeletedProposalStart, "proposal pruned"); + + if (proposalID == latestExecutedProposalID) { + return (true, true, true); + } + bool executed = proposalInfos[proposalID].executed; uint256 expirationTime = proposalInfos[proposalID].expirationTime; return ( @@ -229,7 +234,7 @@ contract Gov is IGov, OwnableUpgradeable { /// @notice execute a passed proposal function _executeProposal(uint256 proposalID) internal { - latestPassedProposalID = proposalID; + latestExecutedProposalID = proposalID; if (batchBlockInterval != proposalData[proposalID].batchBlockInterval) { uint256 _oldValue = batchBlockInterval; diff --git a/contracts/contracts/test/Gov.t.sol b/contracts/contracts/test/Gov.t.sol index 0fec646fa..09c26418d 100644 --- a/contracts/contracts/test/Gov.t.sol +++ b/contracts/contracts/test/Gov.t.sol @@ -6,6 +6,8 @@ import {IGov} from "../l2/staking/IGov.sol"; import {Types} from "../libraries/common/Types.sol"; import {ICrossDomainMessenger} from "../libraries/ICrossDomainMessenger.sol"; +import "forge-std/console.sol"; + contract GovTest is L2StakingBaseTest { function setUp() public virtual override { super.setUp(); @@ -91,6 +93,11 @@ contract GovTest is L2StakingBaseTest { uint256 proposalID = gov.createProposal(proposal); hevm.stopPrank(); + // console.logString("......................"); + // console.logUint(proposalID); + // console.logUint(gov.latestExecutedProposalID()); + // console.logString("......................"); + uint256 voteCnt = 0; for (uint256 i = 0; i < SEQUENCER_SIZE; i++) { user = address(uint160(beginSeq + i)); @@ -114,6 +121,12 @@ contract GovTest is L2StakingBaseTest { (expirationTime, executed) = gov.proposalInfos(proposalID); assertTrue(executed); assertEq(block.timestamp + VOTING_DURATION, expirationTime); + + // console.logString("......................"); + // console.logUint(proposalID); + // console.logUint(gov.latestExecutedProposalID()); + // console.logString("......................"); + (finished, passed, executed) = gov.proposalStatus(proposalID); assertTrue(finished); assertTrue(passed); @@ -176,7 +189,7 @@ contract GovTest is L2StakingBaseTest { assertTrue(passed); assertTrue(executed); - hevm.expectRevert("voting has ended"); + hevm.expectRevert("expired proposalID"); hevm.prank(address(user)); gov.vote(proposalID); hevm.stopPrank(); @@ -433,6 +446,63 @@ contract GovTest is L2StakingBaseTest { hevm.stopPrank(); } + /** + * @notice delete old data: Reverts if invalid proposal ID + */ + function test_deleteOldData_reverts() external { + IGov.ProposalData memory proposal0 = IGov.ProposalData( + 0, // batchBlockInterval + finalizationPeriodSeconds, // batchTimeout + ROLLUP_EPOCH // rollupEpoch + ); + + // create proposal + address user = address(uint160(beginSeq)); + hevm.prank(address(user)); + uint256 proposalID = gov.createProposal(proposal0); + assertEq(proposalID, 1); + hevm.stopPrank(); + + for (uint256 i = 0; i < SEQUENCER_SIZE; i++) { + user = address(uint160(beginSeq + i)); + hevm.prank(address(user)); + gov.vote(proposalID); + hevm.stopPrank(); + assertTrue(gov.isVoted(proposalID, user)); + } + + uint256 expirationTime; + bool finished; + bool passed; + bool executed; + + (expirationTime, executed) = gov.proposalInfos(proposalID); + assertTrue(executed); + assertEq(block.timestamp + VOTING_DURATION, expirationTime); + (finished, passed, executed) = gov.proposalStatus(proposalID); + assertTrue(finished); + assertTrue(passed); + assertTrue(executed); + + assertEq(gov.batchBlockInterval(), 0); + assertEq(gov.batchTimeout(), finalizationPeriodSeconds); + assertEq(gov.rollupEpoch(), ROLLUP_EPOCH); + assertEq(gov.undeletedProposalStart(), 0); + + console.logString("......................"); + console.logString("first proposal executed"); + console.logUint(gov.currentProposalID()); + console.logUint(gov.undeletedProposalStart()); + console.logUint(gov.latestExecutedProposalID()); + console.logString("......................"); + + hevm.prank(address(user)); + uint256 latestExecutedProposalID = gov.latestExecutedProposalID(); + hevm.expectRevert("only allow to delete the proposal befor latest passed proposal"); + gov.cleanUpExpiredProposals(latestExecutedProposalID); + hevm.stopPrank(); + } + /** * @notice delete old data */ @@ -474,12 +544,27 @@ contract GovTest is L2StakingBaseTest { assertEq(gov.batchBlockInterval(), 0); assertEq(gov.batchTimeout(), finalizationPeriodSeconds); assertEq(gov.rollupEpoch(), ROLLUP_EPOCH); + assertEq(gov.undeletedProposalStart(), 0); + + // console.logString("......................"); + // console.logString("first proposal executed"); + // console.logUint(gov.currentProposalID()); + // console.logUint(gov.undeletedProposalStart()); + // console.logUint(gov.latestExecutedProposalID()); + // console.logString("......................"); - // undeletedProposalStart slot value is 109 - bytes32 undeletedProposalStartBytes32 = hevm.load(address(gov), bytes32(uint256(109))); - uint256 undeletedProposalStart = uint256(undeletedProposalStartBytes32); + hevm.prank(address(user)); + gov.cleanUpExpiredProposals(gov.latestExecutedProposalID() - 1); + hevm.stopPrank(); - assertEq(undeletedProposalStart, gov.currentProposalID()); + // console.logString("......................"); + // console.logString("cleared"); + // console.logUint(gov.currentProposalID()); + // console.logUint(gov.undeletedProposalStart()); + // console.logUint(gov.latestExecutedProposalID()); + // console.logString("......................"); + + assertEq(gov.undeletedProposalStart(), 1); IGov.ProposalData memory proposal1 = IGov.ProposalData( 100, // batchBlockInterval @@ -510,11 +595,26 @@ contract GovTest is L2StakingBaseTest { assertTrue(passed); assertTrue(executed); - // undeletedProposalStart slot value is 109 - undeletedProposalStartBytes32 = hevm.load(address(gov), bytes32(uint256(109))); - undeletedProposalStart = uint256(undeletedProposalStartBytes32); + // console.logString("......................"); + // console.logString("second proposal executed"); + // console.logUint(gov.currentProposalID()); + // console.logUint(gov.undeletedProposalStart()); + // console.logUint(gov.latestExecutedProposalID()); + // console.logString("......................"); + + hevm.prank(address(user)); + gov.cleanUpExpiredProposals(gov.latestExecutedProposalID() - 1); + hevm.stopPrank(); + + // console.logString("......................"); + // console.logString("cleared"); + // console.logUint(gov.currentProposalID()); + // console.logUint(gov.undeletedProposalStart()); + // console.logUint(gov.latestExecutedProposalID()); + // console.logString("......................"); - assertEq(undeletedProposalStart, gov.currentProposalID()); + assertEq(gov.undeletedProposalStart(), gov.currentProposalID()); + assertEq(gov.undeletedProposalStart(), 2); // test old data uint256 preProposalID = 1; From 4ec7bef1531815b905f3a186eff2aa9862204f7f Mon Sep 17 00:00:00 2001 From: Segue Date: Tue, 12 Nov 2024 10:51:56 +0800 Subject: [PATCH 022/106] update bindings --- bindings/bin/gov_deployed.hex | 2 +- bindings/bindings/gov.go | 87 ++++++++++++++++++++++++++++++++++- bindings/bindings/gov_more.go | 4 +- 3 files changed, 88 insertions(+), 5 deletions(-) diff --git a/bindings/bin/gov_deployed.hex b/bindings/bin/gov_deployed.hex index c6ac23fbd..bd4d5d5dd 100644 --- a/bindings/bin/gov_deployed.hex +++ b/bindings/bin/gov_deployed.hex @@ -1 +1 @@ -0x608060405234801561000f575f80fd5b5060043610610163575f3560e01c806377c79380116100c757806396dea9361161007d578063e5aec99511610063578063e5aec9951461036a578063f2fde38b14610373578063f92ad21914610386575f80fd5b806396dea936146102e3578063b511328d1461032c575f80fd5b806385963052116100ad57806385963052146102955780638da5cb5b1461029e5780638e21d5fb146102bc575f80fd5b806377c7938014610240578063807de44314610249575f80fd5b806349c1a5811161011c578063639661901161010257806363966190146101fd578063715018a61461020657806374c260cf1461020e575f80fd5b806349c1a581146101c75780635bcfadb5146101ea575f80fd5b8063132002fc1161014c578063132002fc1461018f578063237a4b96146101ab5780634428c1a4146101be575f80fd5b80630121b93f146101675780630d61b5191461017c575b5f80fd5b61017a6101753660046115d6565b610399565b005b61017a61018a3660046115d6565b610690565b610198606b5481565b6040519081526020015b60405180910390f35b6101986101b93660046115ed565b610744565b610198606a5481565b6101da6101d5366004611624565b610a34565b60405190151581526020016101a2565b61017a6101f83660046115d6565b610a54565b610198606c5481565b61017a610b23565b61022161021c3660046115d6565b610b36565b60408051931515845291151560208401521515908201526060016101a2565b61019860675481565b6102707f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a2565b61019860655481565b60335473ffffffffffffffffffffffffffffffffffffffff16610270565b6102707f000000000000000000000000000000000000000000000000000000000000000081565b6103116102f13660046115d6565b606e6020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101a2565b61035561033a3660046115d6565b606f6020525f90815260409020805460019091015460ff1682565b604080519283529015156020830152016101a2565b61019860695481565b61017a610381366004611652565b610c23565b61017a610394366004611674565b610cc0565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636d46e987336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa15801561043e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046291906116b4565b9050806104b65760405162461bcd60e51b815260206004820152601660248201527f6f6e6c792073657175656e63657220616c6c6f7765640000000000000000000060448201526064015b60405180910390fd5b606c548211156105085760405162461bcd60e51b815260206004820152601260248201527f696e76616c69642070726f706f73616c4944000000000000000000000000000060448201526064016104ad565b606d5482101561055a5760405162461bcd60e51b815260206004820152600f60248201527f70726f706f73616c207072756e6564000000000000000000000000000000000060448201526064016104ad565b5f828152606f60205260409020805460019091015460ff168061057b575080155b8061058557504281105b156105d25760405162461bcd60e51b815260206004820152601060248201527f766f74696e672068617320656e6465640000000000000000000000000000000060448201526064016104ad565b6105e9335f8581526070602052604090209061108e565b1561065c5760405162461bcd60e51b815260206004820152602960248201527f73657175656e63657220616c726561647920766f74656420666f72207468697360448201527f2070726f706f73616c000000000000000000000000000000000000000000000060648201526084016104ad565b610673335f858152607060205260409020906110bc565b5061067d836110dd565b1561068b5761068b83611214565b505050565b5f8061069b83610b36565b509150915081156106ee5760405162461bcd60e51b815260206004820152601060248201527f766f74696e672068617320656e6465640000000000000000000000000000000060448201526064016104ad565b8061073b5760405162461bcd60e51b815260206004820181905260248201527f70726f706f73616c20686173206e6f74206265656e207061737365642079657460448201526064016104ad565b61068b83611214565b5f8073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636d46e987336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa1580156107ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080e91906116b4565b90508061085d5760405162461bcd60e51b815260206004820152601660248201527f6f6e6c792073657175656e63657220616c6c6f7765640000000000000000000060448201526064016104ad565b82604001355f036108b05760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420726f6c6c75702065706f636800000000000000000000000060448201526064016104ad565b82351515806108c25750602083013515155b61090e5760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420626174636820706172616d7300000000000000000000000060448201526064016104ad565b606c8054905f61091d83611700565b9091555050606c545f908152606e60205260409020839061095582828135815560208201356001820155604082013560028201555050565b9050506040518060400160405280606b54426109719190611737565b81525f6020918201819052606c548152606f82526040902082518155910151600190910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905533606c54604080518635815260208088013590820152818701359181019190915273ffffffffffffffffffffffffffffffffffffffff92909216917f66e5b37817dfa9935ab8e631ce7774a2e773d56cc8ea6815ac65f1fbac6420849060600160405180910390a35050606c54919050565b5f828152607060205260408120610a4b908361108e565b90505b92915050565b610a5c61147f565b5f81118015610a6d5750606b548114155b610ade5760405162461bcd60e51b8152602060048201526024808201527f696e76616c6964206e65772070726f706f73616c20766f74696e67206475726160448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016104ad565b606b80549082905560408051828152602081018490527ffe810823e41a0cf27003f3eac9c17098028ba0aece75bd9783a8da7f75fb3aa3910160405180910390a15050565b610b2b61147f565b610b345f6114e6565b565b5f805f606c54841115610b8b5760405162461bcd60e51b815260206004820152601260248201527f696e76616c69642070726f706f73616c4944000000000000000000000000000060448201526064016104ad565b606d54841015610bdd5760405162461bcd60e51b815260206004820152600f60248201527f70726f706f73616c207072756e6564000000000000000000000000000000000060448201526064016104ad565b5f848152606f602052604090206001810154905460ff909116908180610c01575080155b80610c0b57504281105b610c14876110dd565b90979096509194509092505050565b610c2b61147f565b73ffffffffffffffffffffffffffffffffffffffff8116610cb45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104ad565b610cbd816114e6565b50565b5f54610100900460ff1615808015610cde57505f54600160ff909116105b80610cf75750303b158015610cf757505f5460ff166001145b610d695760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104ad565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610dc5575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8616610e285760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016104ad565b5f8511610e775760405162461bcd60e51b815260206004820181905260248201527f696e76616c69642070726f706f73616c20766f74696e67206475726174696f6e60448201526064016104ad565b5f8211610ec65760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420726f6c6c75702065706f636800000000000000000000000060448201526064016104ad565b83151580610ed357508215155b610f1f5760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420626174636820706172616d7300000000000000000000000060448201526064016104ad565b610f28866114e6565b606b85905560658490556067839055606982905542606a55604080515f8152602081018790527ffe810823e41a0cf27003f3eac9c17098028ba0aece75bd9783a8da7f75fb3aa3910160405180910390a1604080515f8152602081018690527fa044538eba1b21d23eb13fa35811ca9d1d7ff9ef1c81ee4dc594fca08412531b910160405180910390a1604080515f8152602081018590527fab2cb47d396c5d12c082ac9b6512d332af2767ca8e1fa5bcef40fa6970626569910160405180910390a1604080515f8152602081018490527f9b20ee151d057f4f3ece7fdf4ca1370cf143f181760e7712b722572f2dcba88f910160405180910390a18015611086575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610a4b565b5f610a4b8373ffffffffffffffffffffffffffffffffffffffff841661155c565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166377d7dffb6040518163ffffffff1660e01b81526004015f60405180830381865afa158015611147573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261118c9190810190611787565b90505f805b82518110156111f1576111d68382815181106111af576111af611865565b602002602001015160705f8881526020019081526020015f2061108e90919063ffffffff16565b156111e9576111e6826001611737565b91505b600101611191565b506003825160026112029190611892565b61120c91906118a9565b109392505050565b5f818152606e60205260409020546065541461128357606580545f838152606e60205260409081902054928390555190917fa044538eba1b21d23eb13fa35811ca9d1d7ff9ef1c81ee4dc594fca08412531b9161127991848252602082015260400190565b60405180910390a1505b5f818152606e6020526040902060010154606754146112f857606780545f838152606e60205260409081902060010154928390555190917fab2cb47d396c5d12c082ac9b6512d332af2767ca8e1fa5bcef40fa6970626569916112ee91848252602082015260400190565b60405180910390a1505b5f818152606e60205260409020600201546069541461136c57606980545f838152606e6020908152604091829020600201805490945542606a55925481518381529384015290917f9b20ee151d057f4f3ece7fdf4ca1370cf143f181760e7712b722572f2dcba88f910160405180910390a1505b5f818152606f60205260409020600190810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055606d545b8181101561142b575f818152606e6020908152604080832083815560018082018590556002909101849055606f83528184208481550180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556070909152812090818161141b82826115a8565b5050600190920191506113ab9050565b50606d8190556065546067546069546040805193845260208401929092529082015281907fd31188695e1c2a2d02b755e14fa986aca41d391c337437b9159eaed8347e7f1c9060600160405180910390a250565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ad565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f8181526001830160205260408120546115a157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610a4e565b505f610a4e565b5080545f8255905f5260205f2090810190610cbd91905b808211156115d2575f81556001016115bf565b5090565b5f602082840312156115e6575f80fd5b5035919050565b5f606082840312156115fd575f80fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cbd575f80fd5b5f8060408385031215611635575f80fd5b82359150602083013561164781611603565b809150509250929050565b5f60208284031215611662575f80fd5b813561166d81611603565b9392505050565b5f805f805f60a08688031215611688575f80fd5b853561169381611603565b97602087013597506040870135966060810135965060800135945092505050565b5f602082840312156116c4575f80fd5b8151801515811461166d575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611730576117306116d3565b5060010190565b80820180821115610a4e57610a4e6116d3565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b805161178281611603565b919050565b5f6020808385031215611798575f80fd5b825167ffffffffffffffff808211156117af575f80fd5b818501915085601f8301126117c2575f80fd5b8151818111156117d4576117d461174a565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811085821117156118175761181761174a565b604052918252848201925083810185019188831115611834575f80fd5b938501935b828510156118595761184a85611777565b84529385019392850192611839565b98975050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8082028115828204841417610a4e57610a4e6116d3565b5f826118dc577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a +0x608060405234801561000f575f80fd5b5060043610610184575f3560e01c8063807de443116100dd578063b511328d11610088578063e5aec99511610063578063e5aec995146103b0578063f2fde38b146103b9578063f92ad219146103cc575f80fd5b8063b511328d14610356578063d5cc89ba14610394578063d7693075146103a7575f80fd5b80638e21d5fb116100b85780638e21d5fb146102dd57806396dea93614610304578063a83d07371461034d575f80fd5b8063807de4431461026a57806385963052146102b65780638da5cb5b146102bf575f80fd5b806349c1a5811161013d578063715018a611610118578063715018a61461022757806374c260cf1461022f57806377c7938014610261575f80fd5b806349c1a581146101e85780635bcfadb51461020b578063639661901461021e575f80fd5b8063132002fc1161016d578063132002fc146101b0578063237a4b96146101cc5780634428c1a4146101df575f80fd5b80630121b93f146101885780630d61b5191461019d575b5f80fd5b61019b610196366004611764565b6103df565b005b61019b6101ab366004611764565b610727565b6101b9606b5481565b6040519081526020015b60405180910390f35b6101b96101da36600461177b565b6107db565b6101b9606a5481565b6101fb6101f63660046117b2565b610acb565b60405190151581526020016101c3565b61019b610219366004611764565b610aeb565b6101b9606c5481565b61019b610bba565b61024261023d366004611764565b610bcd565b60408051931515845291151560208401521515908201526060016101c3565b6101b960675481565b6102917f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c3565b6101b960655481565b60335473ffffffffffffffffffffffffffffffffffffffff16610291565b6102917f000000000000000000000000000000000000000000000000000000000000000081565b610332610312366004611764565b606e6020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101c3565b6101b960715481565b61037f610364366004611764565b606f6020525f90815260409020805460019091015460ff1682565b604080519283529015156020830152016101c3565b61019b6103a2366004611764565b610d25565b6101b9606d5481565b6101b960695481565b61019b6103c73660046117e0565b610e38565b61019b6103da366004611802565b610ed5565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636d46e987336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015610484573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a89190611842565b9050806104fc5760405162461bcd60e51b815260206004820152601660248201527f6f6e6c792073657175656e63657220616c6c6f7765640000000000000000000060448201526064015b60405180910390fd5b606c5482111561054e5760405162461bcd60e51b815260206004820152601260248201527f696e76616c69642070726f706f73616c4944000000000000000000000000000060448201526064016104f3565b607154821161059f5760405162461bcd60e51b815260206004820152601260248201527f657870697265642070726f706f73616c4944000000000000000000000000000060448201526064016104f3565b606d548210156105f15760405162461bcd60e51b815260206004820152600f60248201527f70726f706f73616c207072756e6564000000000000000000000000000000000060448201526064016104f3565b5f828152606f60205260409020805460019091015460ff1680610612575080155b8061061c57504281105b156106695760405162461bcd60e51b815260206004820152601060248201527f766f74696e672068617320656e6465640000000000000000000000000000000060448201526064016104f3565b610680335f858152607060205260409020906112a3565b156106f35760405162461bcd60e51b815260206004820152602960248201527f73657175656e63657220616c726561647920766f74656420666f72207468697360448201527f2070726f706f73616c000000000000000000000000000000000000000000000060648201526084016104f3565b61070a335f858152607060205260409020906112d1565b50610714836112f2565b156107225761072283611429565b505050565b5f8061073283610bcd565b509150915081156107855760405162461bcd60e51b815260206004820152601060248201527f766f74696e672068617320656e6465640000000000000000000000000000000060448201526064016104f3565b806107d25760405162461bcd60e51b815260206004820181905260248201527f70726f706f73616c20686173206e6f74206265656e207061737365642079657460448201526064016104f3565b61072283611429565b5f8073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636d46e987336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015610881573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a59190611842565b9050806108f45760405162461bcd60e51b815260206004820152601660248201527f6f6e6c792073657175656e63657220616c6c6f7765640000000000000000000060448201526064016104f3565b82604001355f036109475760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420726f6c6c75702065706f636800000000000000000000000060448201526064016104f3565b82351515806109595750602083013515155b6109a55760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420626174636820706172616d7300000000000000000000000060448201526064016104f3565b606c8054905f6109b48361188e565b9091555050606c545f908152606e6020526040902083906109ec82828135815560208201356001820155604082013560028201555050565b9050506040518060400160405280606b5442610a0891906118c5565b81525f6020918201819052606c548152606f82526040902082518155910151600190910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905533606c54604080518635815260208088013590820152818701359181019190915273ffffffffffffffffffffffffffffffffffffffff92909216917f66e5b37817dfa9935ab8e631ce7774a2e773d56cc8ea6815ac65f1fbac6420849060600160405180910390a35050606c54919050565b5f828152607060205260408120610ae290836112a3565b90505b92915050565b610af361160d565b5f81118015610b045750606b548114155b610b755760405162461bcd60e51b8152602060048201526024808201527f696e76616c6964206e65772070726f706f73616c20766f74696e67206475726160448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016104f3565b606b80549082905560408051828152602081018490527ffe810823e41a0cf27003f3eac9c17098028ba0aece75bd9783a8da7f75fb3aa3910160405180910390a15050565b610bc261160d565b610bcb5f611674565b565b5f805f606c54841115610c225760405162461bcd60e51b815260206004820152601260248201527f696e76616c69642070726f706f73616c4944000000000000000000000000000060448201526064016104f3565b607154841015610c745760405162461bcd60e51b815260206004820152601060248201527f657870697265642070726f706f73616c0000000000000000000000000000000060448201526064016104f3565b606d54841015610cc65760405162461bcd60e51b815260206004820152600f60248201527f70726f706f73616c207072756e6564000000000000000000000000000000000060448201526064016104f3565b6071548403610cdd57506001915081905080610d1e565b5f848152606f602052604090206001810154905460ff909116908180610d01575080155b80610d0b57504281105b610d14876112f2565b8394509450945050505b9193909250565b6071548110610d9c5760405162461bcd60e51b815260206004820152603e60248201527f6f6e6c7920616c6c6f7720746f2064656c657465207468652070726f706f736160448201527f6c206265666f72206c6174657374207061737365642070726f706f73616c000060648201526084016104f3565b606d545b818111610e26575f818152606e6020908152604080832083815560018082018590556002909101849055606f83528184208481550180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560709091528120908181610e0f8282611736565b505050508080610e1e9061188e565b915050610da0565b50610e328160016118c5565b606d5550565b610e4061160d565b73ffffffffffffffffffffffffffffffffffffffff8116610ec95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104f3565b610ed281611674565b50565b5f54610100900460ff1615808015610ef357505f54600160ff909116105b80610f0c5750303b158015610f0c57505f5460ff166001145b610f7e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104f3565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fda575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff861661103d5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016104f3565b5f851161108c5760405162461bcd60e51b815260206004820181905260248201527f696e76616c69642070726f706f73616c20766f74696e67206475726174696f6e60448201526064016104f3565b5f82116110db5760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420726f6c6c75702065706f636800000000000000000000000060448201526064016104f3565b831515806110e857508215155b6111345760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420626174636820706172616d7300000000000000000000000060448201526064016104f3565b61113d86611674565b606b85905560658490556067839055606982905542606a55604080515f8152602081018790527ffe810823e41a0cf27003f3eac9c17098028ba0aece75bd9783a8da7f75fb3aa3910160405180910390a1604080515f8152602081018690527fa044538eba1b21d23eb13fa35811ca9d1d7ff9ef1c81ee4dc594fca08412531b910160405180910390a1604080515f8152602081018590527fab2cb47d396c5d12c082ac9b6512d332af2767ca8e1fa5bcef40fa6970626569910160405180910390a1604080515f8152602081018490527f9b20ee151d057f4f3ece7fdf4ca1370cf143f181760e7712b722572f2dcba88f910160405180910390a1801561129b575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610ae2565b5f610ae28373ffffffffffffffffffffffffffffffffffffffff84166116ea565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166377d7dffb6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561135c573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526113a19190810190611915565b90505f805b8251811015611406576113eb8382815181106113c4576113c46119f3565b602002602001015160705f8881526020019081526020015f206112a390919063ffffffff16565b156113fe576113fb8260016118c5565b91505b6001016113a6565b506003825160026114179190611a20565b6114219190611a37565b109392505050565b60718190555f818152606e60205260409020546065541461149d57606580545f838152606e60205260409081902054928390555190917fa044538eba1b21d23eb13fa35811ca9d1d7ff9ef1c81ee4dc594fca08412531b9161149391848252602082015260400190565b60405180910390a1505b5f818152606e60205260409020600101546067541461151257606780545f838152606e60205260409081902060010154928390555190917fab2cb47d396c5d12c082ac9b6512d332af2767ca8e1fa5bcef40fa69706265699161150891848252602082015260400190565b60405180910390a1505b5f818152606e60205260409020600201546069541461158657606980545f838152606e6020908152604091829020600201805490945542606a55925481518381529384015290917f9b20ee151d057f4f3ece7fdf4ca1370cf143f181760e7712b722572f2dcba88f910160405180910390a1505b5f818152606f6020908152604091829020600190810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690911790556065546067546069548451928352928201529182015281907fd31188695e1c2a2d02b755e14fa986aca41d391c337437b9159eaed8347e7f1c9060600160405180910390a250565b60335473ffffffffffffffffffffffffffffffffffffffff163314610bcb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f3565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f81815260018301602052604081205461172f57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610ae5565b505f610ae5565b5080545f8255905f5260205f2090810190610ed291905b80821115611760575f815560010161174d565b5090565b5f60208284031215611774575f80fd5b5035919050565b5f6060828403121561178b575f80fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610ed2575f80fd5b5f80604083850312156117c3575f80fd5b8235915060208301356117d581611791565b809150509250929050565b5f602082840312156117f0575f80fd5b81356117fb81611791565b9392505050565b5f805f805f60a08688031215611816575f80fd5b853561182181611791565b97602087013597506040870135966060810135965060800135945092505050565b5f60208284031215611852575f80fd5b815180151581146117fb575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036118be576118be611861565b5060010190565b80820180821115610ae557610ae5611861565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b805161191081611791565b919050565b5f6020808385031215611926575f80fd5b825167ffffffffffffffff8082111561193d575f80fd5b818501915085601f830112611950575f80fd5b815181811115611962576119626118d8565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811085821117156119a5576119a56118d8565b6040529182528482019250838101850191888311156119c2575f80fd5b938501935b828510156119e7576119d885611905565b845293850193928501926119c7565b98975050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8082028115828204841417610ae557610ae5611861565b5f82611a6a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a diff --git a/bindings/bindings/gov.go b/bindings/bindings/gov.go index 52a935182..464d964eb 100644 --- a/bindings/bindings/gov.go +++ b/bindings/bindings/gov.go @@ -38,8 +38,8 @@ type IGovProposalData struct { // GovMetaData contains all meta data concerning the Gov contract. var GovMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldBatchBlockInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBatchBlockInterval\",\"type\":\"uint256\"}],\"name\":\"BatchBlockIntervalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldBatchTimeout\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBatchTimeout\",\"type\":\"uint256\"}],\"name\":\"BatchTimeoutUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"batchBlockInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"batchTimeout\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rollupEpoch\",\"type\":\"uint256\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"batchBlockInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"batchTimeout\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rollupEpoch\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"odlRollupEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newRollupEpoch\",\"type\":\"uint256\"}],\"name\":\"RollupEpochUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldProposalVotingDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalVotingDuration\",\"type\":\"uint256\"}],\"name\":\"VotingDurationUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"L2_STAKING_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEQUENCER_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchBlockInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchTimeout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"batchBlockInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"batchTimeout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rollupEpoch\",\"type\":\"uint256\"}],\"internalType\":\"structIGov.ProposalData\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"createProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentProposalID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"}],\"name\":\"executeProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_votingDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchBlockInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchTimeout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rollupEpoch\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"isVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"}],\"name\":\"proposalData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"batchBlockInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"batchTimeout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rollupEpoch\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"}],\"name\":\"proposalInfos\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"}],\"name\":\"proposalStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupEpochUpdateTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_votingDuration\",\"type\":\"uint256\"}],\"name\":\"setVotingDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60c060405234801561000f575f80fd5b5073530000000000000000000000000000000000001560805273530000000000000000000000000000000000001760a05261004861004d565b610109565b5f54610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610107575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805160a0516118ee61013f5f395f81816102c1015281816103b10152818161075d01526110e101525f61024e01526118ee5ff3fe608060405234801561000f575f80fd5b5060043610610163575f3560e01c806377c79380116100c757806396dea9361161007d578063e5aec99511610063578063e5aec9951461036a578063f2fde38b14610373578063f92ad21914610386575f80fd5b806396dea936146102e3578063b511328d1461032c575f80fd5b806385963052116100ad57806385963052146102955780638da5cb5b1461029e5780638e21d5fb146102bc575f80fd5b806377c7938014610240578063807de44314610249575f80fd5b806349c1a5811161011c578063639661901161010257806363966190146101fd578063715018a61461020657806374c260cf1461020e575f80fd5b806349c1a581146101c75780635bcfadb5146101ea575f80fd5b8063132002fc1161014c578063132002fc1461018f578063237a4b96146101ab5780634428c1a4146101be575f80fd5b80630121b93f146101675780630d61b5191461017c575b5f80fd5b61017a6101753660046115d6565b610399565b005b61017a61018a3660046115d6565b610690565b610198606b5481565b6040519081526020015b60405180910390f35b6101986101b93660046115ed565b610744565b610198606a5481565b6101da6101d5366004611624565b610a34565b60405190151581526020016101a2565b61017a6101f83660046115d6565b610a54565b610198606c5481565b61017a610b23565b61022161021c3660046115d6565b610b36565b60408051931515845291151560208401521515908201526060016101a2565b61019860675481565b6102707f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a2565b61019860655481565b60335473ffffffffffffffffffffffffffffffffffffffff16610270565b6102707f000000000000000000000000000000000000000000000000000000000000000081565b6103116102f13660046115d6565b606e6020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101a2565b61035561033a3660046115d6565b606f6020525f90815260409020805460019091015460ff1682565b604080519283529015156020830152016101a2565b61019860695481565b61017a610381366004611652565b610c23565b61017a610394366004611674565b610cc0565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636d46e987336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa15801561043e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046291906116b4565b9050806104b65760405162461bcd60e51b815260206004820152601660248201527f6f6e6c792073657175656e63657220616c6c6f7765640000000000000000000060448201526064015b60405180910390fd5b606c548211156105085760405162461bcd60e51b815260206004820152601260248201527f696e76616c69642070726f706f73616c4944000000000000000000000000000060448201526064016104ad565b606d5482101561055a5760405162461bcd60e51b815260206004820152600f60248201527f70726f706f73616c207072756e6564000000000000000000000000000000000060448201526064016104ad565b5f828152606f60205260409020805460019091015460ff168061057b575080155b8061058557504281105b156105d25760405162461bcd60e51b815260206004820152601060248201527f766f74696e672068617320656e6465640000000000000000000000000000000060448201526064016104ad565b6105e9335f8581526070602052604090209061108e565b1561065c5760405162461bcd60e51b815260206004820152602960248201527f73657175656e63657220616c726561647920766f74656420666f72207468697360448201527f2070726f706f73616c000000000000000000000000000000000000000000000060648201526084016104ad565b610673335f858152607060205260409020906110bc565b5061067d836110dd565b1561068b5761068b83611214565b505050565b5f8061069b83610b36565b509150915081156106ee5760405162461bcd60e51b815260206004820152601060248201527f766f74696e672068617320656e6465640000000000000000000000000000000060448201526064016104ad565b8061073b5760405162461bcd60e51b815260206004820181905260248201527f70726f706f73616c20686173206e6f74206265656e207061737365642079657460448201526064016104ad565b61068b83611214565b5f8073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636d46e987336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa1580156107ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080e91906116b4565b90508061085d5760405162461bcd60e51b815260206004820152601660248201527f6f6e6c792073657175656e63657220616c6c6f7765640000000000000000000060448201526064016104ad565b82604001355f036108b05760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420726f6c6c75702065706f636800000000000000000000000060448201526064016104ad565b82351515806108c25750602083013515155b61090e5760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420626174636820706172616d7300000000000000000000000060448201526064016104ad565b606c8054905f61091d83611700565b9091555050606c545f908152606e60205260409020839061095582828135815560208201356001820155604082013560028201555050565b9050506040518060400160405280606b54426109719190611737565b81525f6020918201819052606c548152606f82526040902082518155910151600190910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905533606c54604080518635815260208088013590820152818701359181019190915273ffffffffffffffffffffffffffffffffffffffff92909216917f66e5b37817dfa9935ab8e631ce7774a2e773d56cc8ea6815ac65f1fbac6420849060600160405180910390a35050606c54919050565b5f828152607060205260408120610a4b908361108e565b90505b92915050565b610a5c61147f565b5f81118015610a6d5750606b548114155b610ade5760405162461bcd60e51b8152602060048201526024808201527f696e76616c6964206e65772070726f706f73616c20766f74696e67206475726160448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016104ad565b606b80549082905560408051828152602081018490527ffe810823e41a0cf27003f3eac9c17098028ba0aece75bd9783a8da7f75fb3aa3910160405180910390a15050565b610b2b61147f565b610b345f6114e6565b565b5f805f606c54841115610b8b5760405162461bcd60e51b815260206004820152601260248201527f696e76616c69642070726f706f73616c4944000000000000000000000000000060448201526064016104ad565b606d54841015610bdd5760405162461bcd60e51b815260206004820152600f60248201527f70726f706f73616c207072756e6564000000000000000000000000000000000060448201526064016104ad565b5f848152606f602052604090206001810154905460ff909116908180610c01575080155b80610c0b57504281105b610c14876110dd565b90979096509194509092505050565b610c2b61147f565b73ffffffffffffffffffffffffffffffffffffffff8116610cb45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104ad565b610cbd816114e6565b50565b5f54610100900460ff1615808015610cde57505f54600160ff909116105b80610cf75750303b158015610cf757505f5460ff166001145b610d695760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104ad565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610dc5575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8616610e285760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016104ad565b5f8511610e775760405162461bcd60e51b815260206004820181905260248201527f696e76616c69642070726f706f73616c20766f74696e67206475726174696f6e60448201526064016104ad565b5f8211610ec65760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420726f6c6c75702065706f636800000000000000000000000060448201526064016104ad565b83151580610ed357508215155b610f1f5760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420626174636820706172616d7300000000000000000000000060448201526064016104ad565b610f28866114e6565b606b85905560658490556067839055606982905542606a55604080515f8152602081018790527ffe810823e41a0cf27003f3eac9c17098028ba0aece75bd9783a8da7f75fb3aa3910160405180910390a1604080515f8152602081018690527fa044538eba1b21d23eb13fa35811ca9d1d7ff9ef1c81ee4dc594fca08412531b910160405180910390a1604080515f8152602081018590527fab2cb47d396c5d12c082ac9b6512d332af2767ca8e1fa5bcef40fa6970626569910160405180910390a1604080515f8152602081018490527f9b20ee151d057f4f3ece7fdf4ca1370cf143f181760e7712b722572f2dcba88f910160405180910390a18015611086575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610a4b565b5f610a4b8373ffffffffffffffffffffffffffffffffffffffff841661155c565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166377d7dffb6040518163ffffffff1660e01b81526004015f60405180830381865afa158015611147573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261118c9190810190611787565b90505f805b82518110156111f1576111d68382815181106111af576111af611865565b602002602001015160705f8881526020019081526020015f2061108e90919063ffffffff16565b156111e9576111e6826001611737565b91505b600101611191565b506003825160026112029190611892565b61120c91906118a9565b109392505050565b5f818152606e60205260409020546065541461128357606580545f838152606e60205260409081902054928390555190917fa044538eba1b21d23eb13fa35811ca9d1d7ff9ef1c81ee4dc594fca08412531b9161127991848252602082015260400190565b60405180910390a1505b5f818152606e6020526040902060010154606754146112f857606780545f838152606e60205260409081902060010154928390555190917fab2cb47d396c5d12c082ac9b6512d332af2767ca8e1fa5bcef40fa6970626569916112ee91848252602082015260400190565b60405180910390a1505b5f818152606e60205260409020600201546069541461136c57606980545f838152606e6020908152604091829020600201805490945542606a55925481518381529384015290917f9b20ee151d057f4f3ece7fdf4ca1370cf143f181760e7712b722572f2dcba88f910160405180910390a1505b5f818152606f60205260409020600190810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055606d545b8181101561142b575f818152606e6020908152604080832083815560018082018590556002909101849055606f83528184208481550180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556070909152812090818161141b82826115a8565b5050600190920191506113ab9050565b50606d8190556065546067546069546040805193845260208401929092529082015281907fd31188695e1c2a2d02b755e14fa986aca41d391c337437b9159eaed8347e7f1c9060600160405180910390a250565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ad565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f8181526001830160205260408120546115a157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610a4e565b505f610a4e565b5080545f8255905f5260205f2090810190610cbd91905b808211156115d2575f81556001016115bf565b5090565b5f602082840312156115e6575f80fd5b5035919050565b5f606082840312156115fd575f80fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cbd575f80fd5b5f8060408385031215611635575f80fd5b82359150602083013561164781611603565b809150509250929050565b5f60208284031215611662575f80fd5b813561166d81611603565b9392505050565b5f805f805f60a08688031215611688575f80fd5b853561169381611603565b97602087013597506040870135966060810135965060800135945092505050565b5f602082840312156116c4575f80fd5b8151801515811461166d575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611730576117306116d3565b5060010190565b80820180821115610a4e57610a4e6116d3565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b805161178281611603565b919050565b5f6020808385031215611798575f80fd5b825167ffffffffffffffff808211156117af575f80fd5b818501915085601f8301126117c2575f80fd5b8151818111156117d4576117d461174a565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811085821117156118175761181761174a565b604052918252848201925083810185019188831115611834575f80fd5b938501935b828510156118595761184a85611777565b84529385019392850192611839565b98975050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8082028115828204841417610a4e57610a4e6116d3565b5f826118dc577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldBatchBlockInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBatchBlockInterval\",\"type\":\"uint256\"}],\"name\":\"BatchBlockIntervalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldBatchTimeout\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBatchTimeout\",\"type\":\"uint256\"}],\"name\":\"BatchTimeoutUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"batchBlockInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"batchTimeout\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rollupEpoch\",\"type\":\"uint256\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"batchBlockInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"batchTimeout\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rollupEpoch\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"odlRollupEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newRollupEpoch\",\"type\":\"uint256\"}],\"name\":\"RollupEpochUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldProposalVotingDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalVotingDuration\",\"type\":\"uint256\"}],\"name\":\"VotingDurationUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"L2_STAKING_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEQUENCER_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchBlockInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchTimeout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deleteTo\",\"type\":\"uint256\"}],\"name\":\"cleanUpExpiredProposals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"batchBlockInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"batchTimeout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rollupEpoch\",\"type\":\"uint256\"}],\"internalType\":\"structIGov.ProposalData\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"createProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentProposalID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"}],\"name\":\"executeProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_votingDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchBlockInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchTimeout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rollupEpoch\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"isVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestExecutedProposalID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"}],\"name\":\"proposalData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"batchBlockInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"batchTimeout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rollupEpoch\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"}],\"name\":\"proposalInfos\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"}],\"name\":\"proposalStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupEpochUpdateTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_votingDuration\",\"type\":\"uint256\"}],\"name\":\"setVotingDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"undeletedProposalStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalID\",\"type\":\"uint256\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x60c060405234801561000f575f80fd5b5073530000000000000000000000000000000000001560805273530000000000000000000000000000000000001760a05261004861004d565b610109565b5f54610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610107575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805160a051611a7c61013f5f395f81816102e2015281816103f7015281816107f401526112f601525f61026f0152611a7c5ff3fe608060405234801561000f575f80fd5b5060043610610184575f3560e01c8063807de443116100dd578063b511328d11610088578063e5aec99511610063578063e5aec995146103b0578063f2fde38b146103b9578063f92ad219146103cc575f80fd5b8063b511328d14610356578063d5cc89ba14610394578063d7693075146103a7575f80fd5b80638e21d5fb116100b85780638e21d5fb146102dd57806396dea93614610304578063a83d07371461034d575f80fd5b8063807de4431461026a57806385963052146102b65780638da5cb5b146102bf575f80fd5b806349c1a5811161013d578063715018a611610118578063715018a61461022757806374c260cf1461022f57806377c7938014610261575f80fd5b806349c1a581146101e85780635bcfadb51461020b578063639661901461021e575f80fd5b8063132002fc1161016d578063132002fc146101b0578063237a4b96146101cc5780634428c1a4146101df575f80fd5b80630121b93f146101885780630d61b5191461019d575b5f80fd5b61019b610196366004611764565b6103df565b005b61019b6101ab366004611764565b610727565b6101b9606b5481565b6040519081526020015b60405180910390f35b6101b96101da36600461177b565b6107db565b6101b9606a5481565b6101fb6101f63660046117b2565b610acb565b60405190151581526020016101c3565b61019b610219366004611764565b610aeb565b6101b9606c5481565b61019b610bba565b61024261023d366004611764565b610bcd565b60408051931515845291151560208401521515908201526060016101c3565b6101b960675481565b6102917f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c3565b6101b960655481565b60335473ffffffffffffffffffffffffffffffffffffffff16610291565b6102917f000000000000000000000000000000000000000000000000000000000000000081565b610332610312366004611764565b606e6020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101c3565b6101b960715481565b61037f610364366004611764565b606f6020525f90815260409020805460019091015460ff1682565b604080519283529015156020830152016101c3565b61019b6103a2366004611764565b610d25565b6101b9606d5481565b6101b960695481565b61019b6103c73660046117e0565b610e38565b61019b6103da366004611802565b610ed5565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636d46e987336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015610484573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a89190611842565b9050806104fc5760405162461bcd60e51b815260206004820152601660248201527f6f6e6c792073657175656e63657220616c6c6f7765640000000000000000000060448201526064015b60405180910390fd5b606c5482111561054e5760405162461bcd60e51b815260206004820152601260248201527f696e76616c69642070726f706f73616c4944000000000000000000000000000060448201526064016104f3565b607154821161059f5760405162461bcd60e51b815260206004820152601260248201527f657870697265642070726f706f73616c4944000000000000000000000000000060448201526064016104f3565b606d548210156105f15760405162461bcd60e51b815260206004820152600f60248201527f70726f706f73616c207072756e6564000000000000000000000000000000000060448201526064016104f3565b5f828152606f60205260409020805460019091015460ff1680610612575080155b8061061c57504281105b156106695760405162461bcd60e51b815260206004820152601060248201527f766f74696e672068617320656e6465640000000000000000000000000000000060448201526064016104f3565b610680335f858152607060205260409020906112a3565b156106f35760405162461bcd60e51b815260206004820152602960248201527f73657175656e63657220616c726561647920766f74656420666f72207468697360448201527f2070726f706f73616c000000000000000000000000000000000000000000000060648201526084016104f3565b61070a335f858152607060205260409020906112d1565b50610714836112f2565b156107225761072283611429565b505050565b5f8061073283610bcd565b509150915081156107855760405162461bcd60e51b815260206004820152601060248201527f766f74696e672068617320656e6465640000000000000000000000000000000060448201526064016104f3565b806107d25760405162461bcd60e51b815260206004820181905260248201527f70726f706f73616c20686173206e6f74206265656e207061737365642079657460448201526064016104f3565b61072283611429565b5f8073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636d46e987336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015610881573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a59190611842565b9050806108f45760405162461bcd60e51b815260206004820152601660248201527f6f6e6c792073657175656e63657220616c6c6f7765640000000000000000000060448201526064016104f3565b82604001355f036109475760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420726f6c6c75702065706f636800000000000000000000000060448201526064016104f3565b82351515806109595750602083013515155b6109a55760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420626174636820706172616d7300000000000000000000000060448201526064016104f3565b606c8054905f6109b48361188e565b9091555050606c545f908152606e6020526040902083906109ec82828135815560208201356001820155604082013560028201555050565b9050506040518060400160405280606b5442610a0891906118c5565b81525f6020918201819052606c548152606f82526040902082518155910151600190910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905533606c54604080518635815260208088013590820152818701359181019190915273ffffffffffffffffffffffffffffffffffffffff92909216917f66e5b37817dfa9935ab8e631ce7774a2e773d56cc8ea6815ac65f1fbac6420849060600160405180910390a35050606c54919050565b5f828152607060205260408120610ae290836112a3565b90505b92915050565b610af361160d565b5f81118015610b045750606b548114155b610b755760405162461bcd60e51b8152602060048201526024808201527f696e76616c6964206e65772070726f706f73616c20766f74696e67206475726160448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016104f3565b606b80549082905560408051828152602081018490527ffe810823e41a0cf27003f3eac9c17098028ba0aece75bd9783a8da7f75fb3aa3910160405180910390a15050565b610bc261160d565b610bcb5f611674565b565b5f805f606c54841115610c225760405162461bcd60e51b815260206004820152601260248201527f696e76616c69642070726f706f73616c4944000000000000000000000000000060448201526064016104f3565b607154841015610c745760405162461bcd60e51b815260206004820152601060248201527f657870697265642070726f706f73616c0000000000000000000000000000000060448201526064016104f3565b606d54841015610cc65760405162461bcd60e51b815260206004820152600f60248201527f70726f706f73616c207072756e6564000000000000000000000000000000000060448201526064016104f3565b6071548403610cdd57506001915081905080610d1e565b5f848152606f602052604090206001810154905460ff909116908180610d01575080155b80610d0b57504281105b610d14876112f2565b8394509450945050505b9193909250565b6071548110610d9c5760405162461bcd60e51b815260206004820152603e60248201527f6f6e6c7920616c6c6f7720746f2064656c657465207468652070726f706f736160448201527f6c206265666f72206c6174657374207061737365642070726f706f73616c000060648201526084016104f3565b606d545b818111610e26575f818152606e6020908152604080832083815560018082018590556002909101849055606f83528184208481550180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560709091528120908181610e0f8282611736565b505050508080610e1e9061188e565b915050610da0565b50610e328160016118c5565b606d5550565b610e4061160d565b73ffffffffffffffffffffffffffffffffffffffff8116610ec95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104f3565b610ed281611674565b50565b5f54610100900460ff1615808015610ef357505f54600160ff909116105b80610f0c5750303b158015610f0c57505f5460ff166001145b610f7e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104f3565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fda575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff861661103d5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016104f3565b5f851161108c5760405162461bcd60e51b815260206004820181905260248201527f696e76616c69642070726f706f73616c20766f74696e67206475726174696f6e60448201526064016104f3565b5f82116110db5760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420726f6c6c75702065706f636800000000000000000000000060448201526064016104f3565b831515806110e857508215155b6111345760405162461bcd60e51b815260206004820152601460248201527f696e76616c696420626174636820706172616d7300000000000000000000000060448201526064016104f3565b61113d86611674565b606b85905560658490556067839055606982905542606a55604080515f8152602081018790527ffe810823e41a0cf27003f3eac9c17098028ba0aece75bd9783a8da7f75fb3aa3910160405180910390a1604080515f8152602081018690527fa044538eba1b21d23eb13fa35811ca9d1d7ff9ef1c81ee4dc594fca08412531b910160405180910390a1604080515f8152602081018590527fab2cb47d396c5d12c082ac9b6512d332af2767ca8e1fa5bcef40fa6970626569910160405180910390a1604080515f8152602081018490527f9b20ee151d057f4f3ece7fdf4ca1370cf143f181760e7712b722572f2dcba88f910160405180910390a1801561129b575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610ae2565b5f610ae28373ffffffffffffffffffffffffffffffffffffffff84166116ea565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166377d7dffb6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561135c573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526113a19190810190611915565b90505f805b8251811015611406576113eb8382815181106113c4576113c46119f3565b602002602001015160705f8881526020019081526020015f206112a390919063ffffffff16565b156113fe576113fb8260016118c5565b91505b6001016113a6565b506003825160026114179190611a20565b6114219190611a37565b109392505050565b60718190555f818152606e60205260409020546065541461149d57606580545f838152606e60205260409081902054928390555190917fa044538eba1b21d23eb13fa35811ca9d1d7ff9ef1c81ee4dc594fca08412531b9161149391848252602082015260400190565b60405180910390a1505b5f818152606e60205260409020600101546067541461151257606780545f838152606e60205260409081902060010154928390555190917fab2cb47d396c5d12c082ac9b6512d332af2767ca8e1fa5bcef40fa69706265699161150891848252602082015260400190565b60405180910390a1505b5f818152606e60205260409020600201546069541461158657606980545f838152606e6020908152604091829020600201805490945542606a55925481518381529384015290917f9b20ee151d057f4f3ece7fdf4ca1370cf143f181760e7712b722572f2dcba88f910160405180910390a1505b5f818152606f6020908152604091829020600190810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690911790556065546067546069548451928352928201529182015281907fd31188695e1c2a2d02b755e14fa986aca41d391c337437b9159eaed8347e7f1c9060600160405180910390a250565b60335473ffffffffffffffffffffffffffffffffffffffff163314610bcb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f3565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f81815260018301602052604081205461172f57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610ae5565b505f610ae5565b5080545f8255905f5260205f2090810190610ed291905b80821115611760575f815560010161174d565b5090565b5f60208284031215611774575f80fd5b5035919050565b5f6060828403121561178b575f80fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610ed2575f80fd5b5f80604083850312156117c3575f80fd5b8235915060208301356117d581611791565b809150509250929050565b5f602082840312156117f0575f80fd5b81356117fb81611791565b9392505050565b5f805f805f60a08688031215611816575f80fd5b853561182181611791565b97602087013597506040870135966060810135965060800135945092505050565b5f60208284031215611852575f80fd5b815180151581146117fb575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036118be576118be611861565b5060010190565b80820180821115610ae557610ae5611861565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b805161191081611791565b919050565b5f6020808385031215611926575f80fd5b825167ffffffffffffffff8082111561193d575f80fd5b818501915085601f830112611950575f80fd5b815181811115611962576119626118d8565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811085821117156119a5576119a56118d8565b6040529182528482019250838101850191888311156119c2575f80fd5b938501935b828510156119e7576119d885611905565b845293850193928501926119c7565b98975050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8082028115828204841417610ae557610ae5611861565b5f82611a6a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a", } // GovABI is the input ABI used to generate the binding from. @@ -395,6 +395,37 @@ func (_Gov *GovCallerSession) IsVoted(proposalID *big.Int, voter common.Address) return _Gov.Contract.IsVoted(&_Gov.CallOpts, proposalID, voter) } +// LatestExecutedProposalID is a free data retrieval call binding the contract method 0xa83d0737. +// +// Solidity: function latestExecutedProposalID() view returns(uint256) +func (_Gov *GovCaller) LatestExecutedProposalID(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Gov.contract.Call(opts, &out, "latestExecutedProposalID") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// LatestExecutedProposalID is a free data retrieval call binding the contract method 0xa83d0737. +// +// Solidity: function latestExecutedProposalID() view returns(uint256) +func (_Gov *GovSession) LatestExecutedProposalID() (*big.Int, error) { + return _Gov.Contract.LatestExecutedProposalID(&_Gov.CallOpts) +} + +// LatestExecutedProposalID is a free data retrieval call binding the contract method 0xa83d0737. +// +// Solidity: function latestExecutedProposalID() view returns(uint256) +func (_Gov *GovCallerSession) LatestExecutedProposalID() (*big.Int, error) { + return _Gov.Contract.LatestExecutedProposalID(&_Gov.CallOpts) +} + // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // // Solidity: function owner() view returns(address) @@ -616,6 +647,37 @@ func (_Gov *GovCallerSession) RollupEpochUpdateTime() (*big.Int, error) { return _Gov.Contract.RollupEpochUpdateTime(&_Gov.CallOpts) } +// UndeletedProposalStart is a free data retrieval call binding the contract method 0xd7693075. +// +// Solidity: function undeletedProposalStart() view returns(uint256) +func (_Gov *GovCaller) UndeletedProposalStart(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Gov.contract.Call(opts, &out, "undeletedProposalStart") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// UndeletedProposalStart is a free data retrieval call binding the contract method 0xd7693075. +// +// Solidity: function undeletedProposalStart() view returns(uint256) +func (_Gov *GovSession) UndeletedProposalStart() (*big.Int, error) { + return _Gov.Contract.UndeletedProposalStart(&_Gov.CallOpts) +} + +// UndeletedProposalStart is a free data retrieval call binding the contract method 0xd7693075. +// +// Solidity: function undeletedProposalStart() view returns(uint256) +func (_Gov *GovCallerSession) UndeletedProposalStart() (*big.Int, error) { + return _Gov.Contract.UndeletedProposalStart(&_Gov.CallOpts) +} + // VotingDuration is a free data retrieval call binding the contract method 0x132002fc. // // Solidity: function votingDuration() view returns(uint256) @@ -647,6 +709,27 @@ func (_Gov *GovCallerSession) VotingDuration() (*big.Int, error) { return _Gov.Contract.VotingDuration(&_Gov.CallOpts) } +// CleanUpExpiredProposals is a paid mutator transaction binding the contract method 0xd5cc89ba. +// +// Solidity: function cleanUpExpiredProposals(uint256 deleteTo) returns() +func (_Gov *GovTransactor) CleanUpExpiredProposals(opts *bind.TransactOpts, deleteTo *big.Int) (*types.Transaction, error) { + return _Gov.contract.Transact(opts, "cleanUpExpiredProposals", deleteTo) +} + +// CleanUpExpiredProposals is a paid mutator transaction binding the contract method 0xd5cc89ba. +// +// Solidity: function cleanUpExpiredProposals(uint256 deleteTo) returns() +func (_Gov *GovSession) CleanUpExpiredProposals(deleteTo *big.Int) (*types.Transaction, error) { + return _Gov.Contract.CleanUpExpiredProposals(&_Gov.TransactOpts, deleteTo) +} + +// CleanUpExpiredProposals is a paid mutator transaction binding the contract method 0xd5cc89ba. +// +// Solidity: function cleanUpExpiredProposals(uint256 deleteTo) returns() +func (_Gov *GovTransactorSession) CleanUpExpiredProposals(deleteTo *big.Int) (*types.Transaction, error) { + return _Gov.Contract.CleanUpExpiredProposals(&_Gov.TransactOpts, deleteTo) +} + // CreateProposal is a paid mutator transaction binding the contract method 0x237a4b96. // // Solidity: function createProposal((uint256,uint256,uint256) proposal) returns(uint256) diff --git a/bindings/bindings/gov_more.go b/bindings/bindings/gov_more.go index 52fed2962..dd15ac15a 100644 --- a/bindings/bindings/gov_more.go +++ b/bindings/bindings/gov_more.go @@ -9,11 +9,11 @@ import ( "morph-l2/bindings/solc" ) -const GovStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1018_storage\"},{\"astId\":1003,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1017_storage\"},{\"astId\":1005,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"batchBlockInterval\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_uint256\"},{\"astId\":1006,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"batchMaxBytes\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_uint256\"},{\"astId\":1007,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"batchTimeout\",\"offset\":0,\"slot\":\"103\",\"type\":\"t_uint256\"},{\"astId\":1008,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"maxChunks\",\"offset\":0,\"slot\":\"104\",\"type\":\"t_uint256\"},{\"astId\":1009,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"rollupEpoch\",\"offset\":0,\"slot\":\"105\",\"type\":\"t_uint256\"},{\"astId\":1010,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"rollupEpochUpdateTime\",\"offset\":0,\"slot\":\"106\",\"type\":\"t_uint256\"},{\"astId\":1011,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"votingDuration\",\"offset\":0,\"slot\":\"107\",\"type\":\"t_uint256\"},{\"astId\":1012,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"currentProposalID\",\"offset\":0,\"slot\":\"108\",\"type\":\"t_uint256\"},{\"astId\":1013,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"undeletedProposalStart\",\"offset\":0,\"slot\":\"109\",\"type\":\"t_uint256\"},{\"astId\":1014,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"proposalData\",\"offset\":0,\"slot\":\"110\",\"type\":\"t_mapping(t_uint256,t_struct(ProposalData)1020_storage)\"},{\"astId\":1015,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"proposalInfos\",\"offset\":0,\"slot\":\"111\",\"type\":\"t_mapping(t_uint256,t_struct(ProposalInfo)1021_storage)\"},{\"astId\":1016,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"votes\",\"offset\":0,\"slot\":\"112\",\"type\":\"t_mapping(t_uint256,t_struct(AddressSet)1019_storage)\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_bytes32)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"bytes32[]\",\"numberOfBytes\":\"32\"},\"t_array(t_uint256)1017_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1018_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_bytes32,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_uint256\"},\"t_mapping(t_uint256,t_struct(AddressSet)1019_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e struct EnumerableSetUpgradeable.AddressSet)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_struct(AddressSet)1019_storage\"},\"t_mapping(t_uint256,t_struct(ProposalData)1020_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e struct IGov.ProposalData)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_struct(ProposalData)1020_storage\"},\"t_mapping(t_uint256,t_struct(ProposalInfo)1021_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e struct IGov.ProposalInfo)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_struct(ProposalInfo)1021_storage\"},\"t_struct(AddressSet)1019_storage\":{\"encoding\":\"inplace\",\"label\":\"struct EnumerableSetUpgradeable.AddressSet\",\"numberOfBytes\":\"64\"},\"t_struct(ProposalData)1020_storage\":{\"encoding\":\"inplace\",\"label\":\"struct IGov.ProposalData\",\"numberOfBytes\":\"96\"},\"t_struct(ProposalInfo)1021_storage\":{\"encoding\":\"inplace\",\"label\":\"struct IGov.ProposalInfo\",\"numberOfBytes\":\"64\"},\"t_struct(Set)1022_storage\":{\"encoding\":\"inplace\",\"label\":\"struct EnumerableSetUpgradeable.Set\",\"numberOfBytes\":\"64\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" +const GovStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1019_storage\"},{\"astId\":1003,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1018_storage\"},{\"astId\":1005,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"batchBlockInterval\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_uint256\"},{\"astId\":1006,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"batchMaxBytes\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_uint256\"},{\"astId\":1007,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"batchTimeout\",\"offset\":0,\"slot\":\"103\",\"type\":\"t_uint256\"},{\"astId\":1008,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"maxChunks\",\"offset\":0,\"slot\":\"104\",\"type\":\"t_uint256\"},{\"astId\":1009,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"rollupEpoch\",\"offset\":0,\"slot\":\"105\",\"type\":\"t_uint256\"},{\"astId\":1010,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"rollupEpochUpdateTime\",\"offset\":0,\"slot\":\"106\",\"type\":\"t_uint256\"},{\"astId\":1011,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"votingDuration\",\"offset\":0,\"slot\":\"107\",\"type\":\"t_uint256\"},{\"astId\":1012,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"currentProposalID\",\"offset\":0,\"slot\":\"108\",\"type\":\"t_uint256\"},{\"astId\":1013,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"undeletedProposalStart\",\"offset\":0,\"slot\":\"109\",\"type\":\"t_uint256\"},{\"astId\":1014,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"proposalData\",\"offset\":0,\"slot\":\"110\",\"type\":\"t_mapping(t_uint256,t_struct(ProposalData)1021_storage)\"},{\"astId\":1015,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"proposalInfos\",\"offset\":0,\"slot\":\"111\",\"type\":\"t_mapping(t_uint256,t_struct(ProposalInfo)1022_storage)\"},{\"astId\":1016,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"votes\",\"offset\":0,\"slot\":\"112\",\"type\":\"t_mapping(t_uint256,t_struct(AddressSet)1020_storage)\"},{\"astId\":1017,\"contract\":\"contracts/l2/staking/Gov.sol:Gov\",\"label\":\"latestExecutedProposalID\",\"offset\":0,\"slot\":\"113\",\"type\":\"t_uint256\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_bytes32)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"bytes32[]\",\"numberOfBytes\":\"32\"},\"t_array(t_uint256)1018_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1019_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_bytes32,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_uint256\"},\"t_mapping(t_uint256,t_struct(AddressSet)1020_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e struct EnumerableSetUpgradeable.AddressSet)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_struct(AddressSet)1020_storage\"},\"t_mapping(t_uint256,t_struct(ProposalData)1021_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e struct IGov.ProposalData)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_struct(ProposalData)1021_storage\"},\"t_mapping(t_uint256,t_struct(ProposalInfo)1022_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e struct IGov.ProposalInfo)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_struct(ProposalInfo)1022_storage\"},\"t_struct(AddressSet)1020_storage\":{\"encoding\":\"inplace\",\"label\":\"struct EnumerableSetUpgradeable.AddressSet\",\"numberOfBytes\":\"64\"},\"t_struct(ProposalData)1021_storage\":{\"encoding\":\"inplace\",\"label\":\"struct IGov.ProposalData\",\"numberOfBytes\":\"96\"},\"t_struct(ProposalInfo)1022_storage\":{\"encoding\":\"inplace\",\"label\":\"struct IGov.ProposalInfo\",\"numberOfBytes\":\"64\"},\"t_struct(Set)1023_storage\":{\"encoding\":\"inplace\",\"label\":\"struct EnumerableSetUpgradeable.Set\",\"numberOfBytes\":\"64\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" var GovStorageLayout = new(solc.StorageLayout) -var GovDeployedBin = "0x608060405234801561000f575f80fd5b5060043610610163575f3560e01c806377c79380116100c757806396dea9361161007d578063e5aec99511610063578063e5aec9951461036a578063f2fde38b14610373578063f92ad21914610386575f80fd5b806396dea936146102e3578063b511328d1461032c575f80fd5b806385963052116100ad57806385963052146102955780638da5cb5b1461029e5780638e21d5fb146102bc575f80fd5b806377c7938014610240578063807de44314610249575f80fd5b806349c1a5811161011c578063639661901161010257806363966190146101fd578063715018a61461020657806374c260cf1461020e575f80fd5b806349c1a581146101c75780635bcfadb5146101ea575f80fd5b8063132002fc1161014c578063132002fc1461018f578063237a4b96146101ab5780634428c1a4146101be575f80fd5b80630121b93f146101675780630d61b5191461017c575b5f80fd5b61017a6101753660046117de565b610399565b005b61017a61018a3660046117de565b610712565b610198606b5481565b6040519081526020015b60405180910390f35b6101986101b93660046117f5565b6107fa565b610198606a5481565b6101da6101d536600461182c565b610b38565b60405190151581526020016101a2565b61017a6101f83660046117de565b610b58565b610198606c5481565b61017a610c41565b61022161021c3660046117de565b610c54565b60408051931515845291151560208401521515908201526060016101a2565b61019860675481565b6102707f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a2565b61019860655481565b60335473ffffffffffffffffffffffffffffffffffffffff16610270565b6102707f000000000000000000000000000000000000000000000000000000000000000081565b6103116102f13660046117de565b606e6020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101a2565b61035561033a3660046117de565b606f6020525f90815260409020805460019091015460ff1682565b604080519283529015156020830152016101a2565b61019860695481565b61017a61038136600461185a565b610d75565b61017a61039436600461187c565b610e2c565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636d46e987336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa15801561043e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046291906118bc565b9050806104d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6f6e6c792073657175656e63657220616c6c6f7765640000000000000000000060448201526064015b60405180910390fd5b606c5482111561053c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c69642070726f706f73616c4944000000000000000000000000000060448201526064016104c7565b606d548210156105a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f70726f706f73616c207072756e6564000000000000000000000000000000000060448201526064016104c7565b5f828152606f60205260409020805460019091015460ff16806105c9575080155b806105d357504281105b1561063a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f766f74696e672068617320656e6465640000000000000000000000000000000060448201526064016104c7565b610651335f8581526070602052604090209061127c565b156106de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f73657175656e63657220616c726561647920766f74656420666f72207468697360448201527f2070726f706f73616c000000000000000000000000000000000000000000000060648201526084016104c7565b6106f5335f858152607060205260409020906112aa565b506106ff836112cb565b1561070d5761070d83611402565b505050565b5f8061071d83610c54565b5091509150811561078a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f766f74696e672068617320656e6465640000000000000000000000000000000060448201526064016104c7565b806107f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f70726f706f73616c20686173206e6f74206265656e207061737365642079657460448201526064016104c7565b61070d83611402565b5f8073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636d46e987336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa1580156108a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c491906118bc565b90508061092d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6f6e6c792073657175656e63657220616c6c6f7765640000000000000000000060448201526064016104c7565b82604001355f0361099a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420726f6c6c75702065706f636800000000000000000000000060448201526064016104c7565b82351515806109ac5750602083013515155b610a12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420626174636820706172616d7300000000000000000000000060448201526064016104c7565b606c8054905f610a2183611908565b9091555050606c545f908152606e602052604090208390610a5982828135815560208201356001820155604082013560028201555050565b9050506040518060400160405280606b5442610a75919061193f565b81525f6020918201819052606c548152606f82526040902082518155910151600190910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905533606c54604080518635815260208088013590820152818701359181019190915273ffffffffffffffffffffffffffffffffffffffff92909216917f66e5b37817dfa9935ab8e631ce7774a2e773d56cc8ea6815ac65f1fbac6420849060600160405180910390a35050606c54919050565b5f828152607060205260408120610b4f908361127c565b90505b92915050565b610b6061166d565b5f81118015610b715750606b548114155b610bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f696e76616c6964206e65772070726f706f73616c20766f74696e67206475726160448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016104c7565b606b80549082905560408051828152602081018490527ffe810823e41a0cf27003f3eac9c17098028ba0aece75bd9783a8da7f75fb3aa3910160405180910390a15050565b610c4961166d565b610c525f6116ee565b565b5f805f606c54841115610cc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c69642070726f706f73616c4944000000000000000000000000000060448201526064016104c7565b606d54841015610d2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f70726f706f73616c207072756e6564000000000000000000000000000000000060448201526064016104c7565b5f848152606f602052604090206001810154905460ff909116908180610d53575080155b80610d5d57504281105b610d66876112cb565b90979096509194509092505050565b610d7d61166d565b73ffffffffffffffffffffffffffffffffffffffff8116610e20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104c7565b610e29816116ee565b50565b5f54610100900460ff1615808015610e4a57505f54600160ff909116105b80610e635750303b158015610e6357505f5460ff166001145b610eef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104c7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f4b575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8616610fc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016104c7565b5f8511611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f696e76616c69642070726f706f73616c20766f74696e67206475726174696f6e60448201526064016104c7565b5f821161109a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420726f6c6c75702065706f636800000000000000000000000060448201526064016104c7565b831515806110a757508215155b61110d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420626174636820706172616d7300000000000000000000000060448201526064016104c7565b611116866116ee565b606b85905560658490556067839055606982905542606a55604080515f8152602081018790527ffe810823e41a0cf27003f3eac9c17098028ba0aece75bd9783a8da7f75fb3aa3910160405180910390a1604080515f8152602081018690527fa044538eba1b21d23eb13fa35811ca9d1d7ff9ef1c81ee4dc594fca08412531b910160405180910390a1604080515f8152602081018590527fab2cb47d396c5d12c082ac9b6512d332af2767ca8e1fa5bcef40fa6970626569910160405180910390a1604080515f8152602081018490527f9b20ee151d057f4f3ece7fdf4ca1370cf143f181760e7712b722572f2dcba88f910160405180910390a18015611274575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610b4f565b5f610b4f8373ffffffffffffffffffffffffffffffffffffffff8416611764565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166377d7dffb6040518163ffffffff1660e01b81526004015f60405180830381865afa158015611335573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261137a919081019061198f565b90505f805b82518110156113df576113c483828151811061139d5761139d611a6d565b602002602001015160705f8881526020019081526020015f2061127c90919063ffffffff16565b156113d7576113d482600161193f565b91505b60010161137f565b506003825160026113f09190611a9a565b6113fa9190611ab1565b109392505050565b5f818152606e60205260409020546065541461147157606580545f838152606e60205260409081902054928390555190917fa044538eba1b21d23eb13fa35811ca9d1d7ff9ef1c81ee4dc594fca08412531b9161146791848252602082015260400190565b60405180910390a1505b5f818152606e6020526040902060010154606754146114e657606780545f838152606e60205260409081902060010154928390555190917fab2cb47d396c5d12c082ac9b6512d332af2767ca8e1fa5bcef40fa6970626569916114dc91848252602082015260400190565b60405180910390a1505b5f818152606e60205260409020600201546069541461155a57606980545f838152606e6020908152604091829020600201805490945542606a55925481518381529384015290917f9b20ee151d057f4f3ece7fdf4ca1370cf143f181760e7712b722572f2dcba88f910160405180910390a1505b5f818152606f60205260409020600190810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055606d545b81811015611619575f818152606e6020908152604080832083815560018082018590556002909101849055606f83528184208481550180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556070909152812090818161160982826117b0565b5050600190920191506115999050565b50606d8190556065546067546069546040805193845260208401929092529082015281907fd31188695e1c2a2d02b755e14fa986aca41d391c337437b9159eaed8347e7f1c9060600160405180910390a250565b60335473ffffffffffffffffffffffffffffffffffffffff163314610c52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104c7565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f8181526001830160205260408120546117a957508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610b52565b505f610b52565b5080545f8255905f5260205f2090810190610e2991905b808211156117da575f81556001016117c7565b5090565b5f602082840312156117ee575f80fd5b5035919050565b5f60608284031215611805575f80fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610e29575f80fd5b5f806040838503121561183d575f80fd5b82359150602083013561184f8161180b565b809150509250929050565b5f6020828403121561186a575f80fd5b81356118758161180b565b9392505050565b5f805f805f60a08688031215611890575f80fd5b853561189b8161180b565b97602087013597506040870135966060810135965060800135945092505050565b5f602082840312156118cc575f80fd5b81518015158114611875575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611938576119386118db565b5060010190565b80820180821115610b5257610b526118db565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b805161198a8161180b565b919050565b5f60208083850312156119a0575f80fd5b825167ffffffffffffffff808211156119b7575f80fd5b818501915085601f8301126119ca575f80fd5b8151818111156119dc576119dc611952565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715611a1f57611a1f611952565b604052918252848201925083810185019188831115611a3c575f80fd5b938501935b82851015611a6157611a528561197f565b84529385019392850192611a41565b98975050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8082028115828204841417610b5257610b526118db565b5f82611ae4577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a" +var GovDeployedBin = "0x608060405234801561000f575f80fd5b5060043610610184575f3560e01c8063807de443116100dd578063b511328d11610088578063e5aec99511610063578063e5aec995146103b0578063f2fde38b146103b9578063f92ad219146103cc575f80fd5b8063b511328d14610356578063d5cc89ba14610394578063d7693075146103a7575f80fd5b80638e21d5fb116100b85780638e21d5fb146102dd57806396dea93614610304578063a83d07371461034d575f80fd5b8063807de4431461026a57806385963052146102b65780638da5cb5b146102bf575f80fd5b806349c1a5811161013d578063715018a611610118578063715018a61461022757806374c260cf1461022f57806377c7938014610261575f80fd5b806349c1a581146101e85780635bcfadb51461020b578063639661901461021e575f80fd5b8063132002fc1161016d578063132002fc146101b0578063237a4b96146101cc5780634428c1a4146101df575f80fd5b80630121b93f146101885780630d61b5191461019d575b5f80fd5b61019b6101963660046119ba565b6103df565b005b61019b6101ab3660046119ba565b6107c3565b6101b9606b5481565b6040519081526020015b60405180910390f35b6101b96101da3660046119d1565b6108ab565b6101b9606a5481565b6101fb6101f6366004611a08565b610be9565b60405190151581526020016101c3565b61019b6102193660046119ba565b610c09565b6101b9606c5481565b61019b610cf2565b61024261023d3660046119ba565b610d05565b60408051931515845291151560208401521515908201526060016101c3565b6101b960675481565b6102917f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c3565b6101b960655481565b60335473ffffffffffffffffffffffffffffffffffffffff16610291565b6102917f000000000000000000000000000000000000000000000000000000000000000081565b6103326103123660046119ba565b606e6020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101c3565b6101b960715481565b61037f6103643660046119ba565b606f6020525f90815260409020805460019091015460ff1682565b604080519283529015156020830152016101c3565b61019b6103a23660046119ba565b610eab565b6101b9606d5481565b6101b960695481565b61019b6103c7366004611a36565b610fd8565b61019b6103da366004611a58565b61108f565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636d46e987336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015610484573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a89190611a98565b905080610516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6f6e6c792073657175656e63657220616c6c6f7765640000000000000000000060448201526064015b60405180910390fd5b606c54821115610582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c69642070726f706f73616c49440000000000000000000000000000604482015260640161050d565b60715482116105ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f657870697265642070726f706f73616c49440000000000000000000000000000604482015260640161050d565b606d54821015610659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f70726f706f73616c207072756e65640000000000000000000000000000000000604482015260640161050d565b5f828152606f60205260409020805460019091015460ff168061067a575080155b8061068457504281105b156106eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f766f74696e672068617320656e64656400000000000000000000000000000000604482015260640161050d565b610702335f858152607060205260409020906114df565b1561078f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f73657175656e63657220616c726561647920766f74656420666f72207468697360448201527f2070726f706f73616c0000000000000000000000000000000000000000000000606482015260840161050d565b6107a6335f8581526070602052604090209061150d565b506107b08361152e565b156107be576107be83611665565b505050565b5f806107ce83610d05565b5091509150811561083b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f766f74696e672068617320656e64656400000000000000000000000000000000604482015260640161050d565b806108a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f70726f706f73616c20686173206e6f74206265656e2070617373656420796574604482015260640161050d565b6107be83611665565b5f8073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636d46e987336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015610951573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109759190611a98565b9050806109de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6f6e6c792073657175656e63657220616c6c6f77656400000000000000000000604482015260640161050d565b82604001355f03610a4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420726f6c6c75702065706f6368000000000000000000000000604482015260640161050d565b8235151580610a5d5750602083013515155b610ac3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420626174636820706172616d73000000000000000000000000604482015260640161050d565b606c8054905f610ad283611ae4565b9091555050606c545f908152606e602052604090208390610b0a82828135815560208201356001820155604082013560028201555050565b9050506040518060400160405280606b5442610b269190611b1b565b81525f6020918201819052606c548152606f82526040902082518155910151600190910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905533606c54604080518635815260208088013590820152818701359181019190915273ffffffffffffffffffffffffffffffffffffffff92909216917f66e5b37817dfa9935ab8e631ce7774a2e773d56cc8ea6815ac65f1fbac6420849060600160405180910390a35050606c54919050565b5f828152607060205260408120610c0090836114df565b90505b92915050565b610c11611849565b5f81118015610c225750606b548114155b610cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f696e76616c6964206e65772070726f706f73616c20766f74696e67206475726160448201527f74696f6e00000000000000000000000000000000000000000000000000000000606482015260840161050d565b606b80549082905560408051828152602081018490527ffe810823e41a0cf27003f3eac9c17098028ba0aece75bd9783a8da7f75fb3aa3910160405180910390a15050565b610cfa611849565b610d035f6118ca565b565b5f805f606c54841115610d74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c69642070726f706f73616c49440000000000000000000000000000604482015260640161050d565b607154841015610de0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f657870697265642070726f706f73616c00000000000000000000000000000000604482015260640161050d565b606d54841015610e4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f70726f706f73616c207072756e65640000000000000000000000000000000000604482015260640161050d565b6071548403610e6357506001915081905080610ea4565b5f848152606f602052604090206001810154905460ff909116908180610e87575080155b80610e9157504281105b610e9a8761152e565b8394509450945050505b9193909250565b6071548110610f3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f6f6e6c7920616c6c6f7720746f2064656c657465207468652070726f706f736160448201527f6c206265666f72206c6174657374207061737365642070726f706f73616c0000606482015260840161050d565b606d545b818111610fc6575f818152606e6020908152604080832083815560018082018590556002909101849055606f83528184208481550180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560709091528120908181610faf828261198c565b505050508080610fbe90611ae4565b915050610f40565b50610fd2816001611b1b565b606d5550565b610fe0611849565b73ffffffffffffffffffffffffffffffffffffffff8116611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161050d565b61108c816118ca565b50565b5f54610100900460ff16158080156110ad57505f54600160ff909116105b806110c65750303b1580156110c657505f5460ff166001145b611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161050d565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156111ae575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff861661122b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206f776e657220616464726573730000000000000000000000604482015260640161050d565b5f8511611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f696e76616c69642070726f706f73616c20766f74696e67206475726174696f6e604482015260640161050d565b5f82116112fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420726f6c6c75702065706f6368000000000000000000000000604482015260640161050d565b8315158061130a57508215155b611370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420626174636820706172616d73000000000000000000000000604482015260640161050d565b611379866118ca565b606b85905560658490556067839055606982905542606a55604080515f8152602081018790527ffe810823e41a0cf27003f3eac9c17098028ba0aece75bd9783a8da7f75fb3aa3910160405180910390a1604080515f8152602081018690527fa044538eba1b21d23eb13fa35811ca9d1d7ff9ef1c81ee4dc594fca08412531b910160405180910390a1604080515f8152602081018590527fab2cb47d396c5d12c082ac9b6512d332af2767ca8e1fa5bcef40fa6970626569910160405180910390a1604080515f8152602081018490527f9b20ee151d057f4f3ece7fdf4ca1370cf143f181760e7712b722572f2dcba88f910160405180910390a180156114d7575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610c00565b5f610c008373ffffffffffffffffffffffffffffffffffffffff8416611940565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166377d7dffb6040518163ffffffff1660e01b81526004015f60405180830381865afa158015611598573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526115dd9190810190611b6b565b90505f805b82518110156116425761162783828151811061160057611600611c49565b602002602001015160705f8881526020019081526020015f206114df90919063ffffffff16565b1561163a57611637826001611b1b565b91505b6001016115e2565b506003825160026116539190611c76565b61165d9190611c8d565b109392505050565b60718190555f818152606e6020526040902054606554146116d957606580545f838152606e60205260409081902054928390555190917fa044538eba1b21d23eb13fa35811ca9d1d7ff9ef1c81ee4dc594fca08412531b916116cf91848252602082015260400190565b60405180910390a1505b5f818152606e60205260409020600101546067541461174e57606780545f838152606e60205260409081902060010154928390555190917fab2cb47d396c5d12c082ac9b6512d332af2767ca8e1fa5bcef40fa69706265699161174491848252602082015260400190565b60405180910390a1505b5f818152606e6020526040902060020154606954146117c257606980545f838152606e6020908152604091829020600201805490945542606a55925481518381529384015290917f9b20ee151d057f4f3ece7fdf4ca1370cf143f181760e7712b722572f2dcba88f910160405180910390a1505b5f818152606f6020908152604091829020600190810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690911790556065546067546069548451928352928201529182015281907fd31188695e1c2a2d02b755e14fa986aca41d391c337437b9159eaed8347e7f1c9060600160405180910390a250565b60335473ffffffffffffffffffffffffffffffffffffffff163314610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161050d565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f81815260018301602052604081205461198557508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c03565b505f610c03565b5080545f8255905f5260205f209081019061108c91905b808211156119b6575f81556001016119a3565b5090565b5f602082840312156119ca575f80fd5b5035919050565b5f606082840312156119e1575f80fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461108c575f80fd5b5f8060408385031215611a19575f80fd5b823591506020830135611a2b816119e7565b809150509250929050565b5f60208284031215611a46575f80fd5b8135611a51816119e7565b9392505050565b5f805f805f60a08688031215611a6c575f80fd5b8535611a77816119e7565b97602087013597506040870135966060810135965060800135945092505050565b5f60208284031215611aa8575f80fd5b81518015158114611a51575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b1457611b14611ab7565b5060010190565b80820180821115610c0357610c03611ab7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b8051611b66816119e7565b919050565b5f6020808385031215611b7c575f80fd5b825167ffffffffffffffff80821115611b93575f80fd5b818501915085601f830112611ba6575f80fd5b815181811115611bb857611bb8611b2e565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715611bfb57611bfb611b2e565b604052918252848201925083810185019188831115611c18575f80fd5b938501935b82851015611c3d57611c2e85611b5b565b84529385019392850192611c1d565b98975050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8082028115828204841417610c0357610c03611ab7565b5f82611cc0577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(GovStorageLayoutJSON), GovStorageLayout); err != nil { From ad25030a0ebe2e7564cbeb31b4a0f643b0da129d Mon Sep 17 00:00:00 2001 From: Segue Date: Tue, 12 Nov 2024 11:11:38 +0800 Subject: [PATCH 023/106] update nonce --- contracts/contracts/l1/staking/L1Staking.sol | 2 + contracts/contracts/l2/staking/L2Staking.sol | 16 ++++---- contracts/contracts/test/L2Staking.t.sol | 39 +++++++++++++------- 3 files changed, 35 insertions(+), 22 deletions(-) diff --git a/contracts/contracts/l1/staking/L1Staking.sol b/contracts/contracts/l1/staking/L1Staking.sol index a3f3e0221..4767374d3 100644 --- a/contracts/contracts/l1/staking/L1Staking.sol +++ b/contracts/contracts/l1/staking/L1Staking.sol @@ -481,6 +481,7 @@ contract L1Staking is IL1Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp abi.encodeCall(IL2Staking.addStaker, (nonce, add)), gasLimitAddStaker ); + nonce = nonce + 1; } /// @notice remove stakers @@ -492,6 +493,7 @@ contract L1Staking is IL1Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp abi.encodeCall(IL2Staking.removeStakers, (nonce, remove)), gasLimitRemoveStakers ); + nonce = nonce + 1; } /// @notice clean staker store diff --git a/contracts/contracts/l2/staking/L2Staking.sol b/contracts/contracts/l2/staking/L2Staking.sol index 8fd5e5ecc..1af612a3f 100644 --- a/contracts/contracts/l2/staking/L2Staking.sol +++ b/contracts/contracts/l2/staking/L2Staking.sol @@ -165,8 +165,8 @@ contract L2Staking is IL2Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp /// @notice add staker, sync from L1 /// @param _nonce msg nonce /// @param add staker to add. {addr, tmKey, blsKey} - function addStaker(uint256 _nonce, Types.StakerInfo calldata add) external onlyOtherStaking checkNonce { - nonce++; + function addStaker(uint256 _nonce, Types.StakerInfo calldata add) external onlyOtherStaking checkNonce(_nonce) { + nonce = _nonce + 1; if (stakerRankings[add.addr] == 0) { stakerAddresses.push(add.addr); stakerRankings[add.addr] = stakerAddresses.length; @@ -182,8 +182,8 @@ contract L2Staking is IL2Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp /// @notice remove stakers, sync from L1. If new sequencer set is nil, layer2 will stop producing blocks /// @param _nonce msg nonce /// @param remove staker to remove - function removeStakers(uint256 _nonce, address[] calldata remove) external onlyOtherStaking checkNonce { - nonce++; + function removeStakers(uint256 _nonce, address[] calldata remove) external onlyOtherStaking checkNonce(_nonce) { + nonce = _nonce + 1; bool updateSequencerSet = false; for (uint256 i = 0; i < remove.length; i++) { if (stakerRankings[remove[i]] <= latestSequencerSetSize) { @@ -217,8 +217,8 @@ contract L2Staking is IL2Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp /// @notice add staker. Only can be called when a serious bug causes L1 and L2 data to be out of sync /// @param _nonce msg nonce /// @param add staker to add. {addr, tmKey, blsKey} - function emergencyAddStaker(uint256 _nonce, Types.StakerInfo calldata add) external onlyOwner checkNonce { - nonce++; + function emergencyAddStaker(uint256 _nonce, Types.StakerInfo calldata add) external onlyOwner checkNonce(_nonce) { + nonce = _nonce + 1; if (stakerRankings[add.addr] == 0) { stakerAddresses.push(add.addr); stakerRankings[add.addr] = stakerAddresses.length; @@ -234,8 +234,8 @@ contract L2Staking is IL2Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp /// @notice remove stakers. Only can be called when a serious bug causes L1 and L2 data to be out of sync /// @param _nonce msg nonce /// @param remove staker to remove - function emergencyRemoveStakers(uint256 _nonce, address[] calldata remove) external onlyOwner checkNonce { - nonce++; + function emergencyRemoveStakers(uint256 _nonce, address[] calldata remove) external onlyOwner checkNonce(_nonce) { + nonce = _nonce + 1; bool updateSequencerSet = false; for (uint256 i = 0; i < remove.length; i++) { if (stakerRankings[remove[i]] <= latestSequencerSetSize) { diff --git a/contracts/contracts/test/L2Staking.t.sol b/contracts/contracts/test/L2Staking.t.sol index d2a854cc3..8a11296c9 100644 --- a/contracts/contracts/test/L2Staking.t.sol +++ b/contracts/contracts/test/L2Staking.t.sol @@ -156,7 +156,7 @@ contract L2StakingTest is L2StakingBaseTest { // Expect revert due to unauthorized call. hevm.expectRevert("staking: only other staking contract allowed"); - l2Staking.addStaker(stakerInfo); + l2Staking.addStaker(0, stakerInfo); } /** @@ -170,6 +170,7 @@ contract L2StakingTest is L2StakingBaseTest { ); assertEq(SEQUENCER_SIZE, l2Staking.getStakerAddressesLength()); hevm.startPrank(address(l2CrossDomainMessenger)); + uint256 nonce = 0; for (uint256 i = SEQUENCER_SIZE; i < SEQUENCER_SIZE * 2 + 1; i++) { address staker = address(uint160(beginSeq + i)); Types.StakerInfo memory stakerInfo = ffi.generateStakerInfo(staker); @@ -177,7 +178,8 @@ contract L2StakingTest is L2StakingBaseTest { // Expect the SequencerSetMaxSizeUpdated event is emitted successfully. hevm.expectEmit(true, true, true, true); emit IL2Staking.StakerAdded(stakerInfo.addr, stakerInfo.tmKey, stakerInfo.blsKey); - l2Staking.addStaker(stakerInfo); + l2Staking.addStaker(nonce, stakerInfo); + nonce++; } assertEq(7, l2Staking.getStakerAddressesLength()); hevm.stopPrank(); @@ -215,10 +217,12 @@ contract L2StakingTest is L2StakingBaseTest { abi.encode(address(l2Staking.OTHER_STAKING())) ); hevm.startPrank(address(l2CrossDomainMessenger)); + uint256 nonce = 0; for (uint256 i = SEQUENCER_SIZE; i < SEQUENCER_SIZE * 2; i++) { address staker = address(uint160(beginSeq + i)); Types.StakerInfo memory stakerInfo = ffi.generateStakerInfo(staker); - l2Staking.addStaker(stakerInfo); + l2Staking.addStaker(nonce, stakerInfo); + nonce++; } hevm.stopPrank(); for (uint256 i = 0; i < SEQUENCER_SIZE * 2; i++) { @@ -252,11 +256,11 @@ contract L2StakingTest is L2StakingBaseTest { hevm.startPrank(address(l2CrossDomainMessenger)); // Add the staker to the L2Staking contract. - l2Staking.addStaker(stakerInfo); + l2Staking.addStaker(0, stakerInfo); uint256 initialLength = l2Staking.getStakerAddressesLength(); // Add the same staker again to the L2Staking contract. - l2Staking.addStaker(stakerInfo); + l2Staking.addStaker(1, stakerInfo); uint256 finalLength = l2Staking.getStakerAddressesLength(); // Assert that the initial length and the final length are equal. @@ -273,7 +277,7 @@ contract L2StakingTest is L2StakingBaseTest { // Expect revert due to unauthorized call. hevm.expectRevert("staking: only other staking contract allowed"); - l2Staking.removeStakers(removed); + l2Staking.removeStakers(0, removed); } /** @@ -287,17 +291,19 @@ contract L2StakingTest is L2StakingBaseTest { ); hevm.startPrank(address(l2CrossDomainMessenger)); + uint256 nonce = 0; for (uint256 i = SEQUENCER_SIZE; i < SEQUENCER_SIZE * 2; i++) { address staker = address(uint160(beginSeq + i)); Types.StakerInfo memory stakerInfo = ffi.generateStakerInfo(staker); - l2Staking.addStaker(stakerInfo); + l2Staking.addStaker(nonce, stakerInfo); + nonce++; } address[] memory removed = new address[](2); removed[0] = address(uint160(beginSeq + 1)); removed[1] = address(uint160(beginSeq + 4)); - l2Staking.removeStakers(removed); + l2Staking.removeStakers(nonce, removed); assertEq(sequencer.getSequencerSet2Size(), 4); hevm.stopPrank(); @@ -328,10 +334,12 @@ contract L2StakingTest is L2StakingBaseTest { hevm.startPrank(address(l2CrossDomainMessenger)); // Add a set of new stakers to the L2Staking contract. + uint256 nonce = 0; for (uint256 i = SEQUENCER_SIZE; i < SEQUENCER_SIZE * 2; i++) { address staker = address(uint160(beginSeq + i)); Types.StakerInfo memory stakerInfo = ffi.generateStakerInfo(staker); - l2Staking.addStaker(stakerInfo); + l2Staking.addStaker(nonce, stakerInfo); + nonce++; } // Create an array of addresses that do not exist in the staker set. @@ -340,7 +348,7 @@ contract L2StakingTest is L2StakingBaseTest { removed[1] = address(uint160(2)); uint256 initialLength = l2Staking.getStakerAddressesLength(); - l2Staking.removeStakers(removed); + l2Staking.removeStakers(nonce, removed); uint256 finalLength = l2Staking.getStakerAddressesLength(); // Assert that the initial length and the final length are equal. @@ -362,10 +370,12 @@ contract L2StakingTest is L2StakingBaseTest { hevm.startPrank(address(l2CrossDomainMessenger)); // Add a set of new stakers to the L2Staking contract. + uint256 nonce = 0; for (uint256 i = SEQUENCER_SIZE; i < SEQUENCER_SIZE * 2; i++) { address staker = address(uint160(beginSeq + i)); Types.StakerInfo memory stakerInfo = ffi.generateStakerInfo(staker); - l2Staking.addStaker(stakerInfo); + l2Staking.addStaker(nonce, stakerInfo); + nonce++; } // Create an array of addresses to be removed. @@ -373,9 +383,10 @@ contract L2StakingTest is L2StakingBaseTest { removed[0] = address(uint160(beginSeq + 1)); removed[1] = address(uint160(beginSeq + 4)); - l2Staking.removeStakers(removed); + l2Staking.removeStakers(nonce, removed); + nonce++; uint256 initialLength = l2Staking.getStakerAddressesLength(); - l2Staking.removeStakers(removed); + l2Staking.removeStakers(nonce, removed); uint256 finalLength = l2Staking.getStakerAddressesLength(); // Assert that the initial length and the final length are equal. @@ -635,7 +646,7 @@ contract L2StakingTest is L2StakingBaseTest { hevm.startPrank(address(l2CrossDomainMessenger)); address[] memory removed = new address[](1); removed[0] = firstStaker; - l2Staking.removeStakers(removed); + l2Staking.removeStakers(0, removed); hevm.stopPrank(); // sequenser size decrease From e6861bdaa1b21d81d91a5220372715a6518113b0 Mon Sep 17 00:00:00 2001 From: Segue Date: Tue, 12 Nov 2024 11:20:26 +0800 Subject: [PATCH 024/106] update test --- contracts/contracts/test/L2Staking.t.sol | 50 ++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/contracts/contracts/test/L2Staking.t.sol b/contracts/contracts/test/L2Staking.t.sol index 8a11296c9..2bd3ebd53 100644 --- a/contracts/contracts/test/L2Staking.t.sol +++ b/contracts/contracts/test/L2Staking.t.sol @@ -159,6 +159,26 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.addStaker(0, stakerInfo); } + /** + * @notice test add staker: Reverts if invalid nonce + */ + function test_addStakers_invalidNonce_reverts() public { + hevm.mockCall( + address(l2Staking.MESSENGER()), + abi.encodeCall(ICrossDomainMessenger.xDomainMessageSender, ()), + abi.encode(address(l2Staking.OTHER_STAKING())) + ); + assertEq(SEQUENCER_SIZE, l2Staking.getStakerAddressesLength()); + hevm.startPrank(address(l2CrossDomainMessenger)); + + address staker = address(uint160(beginSeq)); + Types.StakerInfo memory stakerInfo = ffi.generateStakerInfo(staker); + + uint256 nonce = l2Staking.nonce(); + hevm.expectRevert("invalid nonce"); + l2Staking.addStaker(nonce + 1, stakerInfo); + } + /** * @notice test add staker */ @@ -280,6 +300,36 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.removeStakers(0, removed); } + /** + * @notice test removed staker: Reverts if invalid nonce + */ + function test_removeStakers_invalidNonce_reverts() public { + hevm.mockCall( + address(l2Staking.MESSENGER()), + abi.encodeCall(ICrossDomainMessenger.xDomainMessageSender, ()), + abi.encode(address(l2Staking.OTHER_STAKING())) + ); + hevm.startPrank(address(l2CrossDomainMessenger)); + + uint256 nonce = 0; + for (uint256 i = SEQUENCER_SIZE; i < SEQUENCER_SIZE * 2; i++) { + address staker = address(uint160(beginSeq + i)); + Types.StakerInfo memory stakerInfo = ffi.generateStakerInfo(staker); + l2Staking.addStaker(nonce, stakerInfo); + nonce++; + } + + address[] memory removed = new address[](2); + removed[0] = address(uint160(beginSeq + 1)); + removed[1] = address(uint160(beginSeq + 4)); + + hevm.expectRevert("invalid nonce"); + l2Staking.removeStakers(nonce + 1, removed); + + hevm.expectRevert("invalid nonce"); + l2Staking.removeStakers(nonce - 1, removed); + } + /** * @notice test removed staker */ From 15e623af442cfe6749d5aab461f37c70693c9224 Mon Sep 17 00:00:00 2001 From: Segue Date: Tue, 12 Nov 2024 11:25:14 +0800 Subject: [PATCH 025/106] fix test --- contracts/contracts/test/Gov.t.sol | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/contracts/contracts/test/Gov.t.sol b/contracts/contracts/test/Gov.t.sol index 0fec646fa..8b5ef6d5a 100644 --- a/contracts/contracts/test/Gov.t.sol +++ b/contracts/contracts/test/Gov.t.sol @@ -230,10 +230,12 @@ contract GovTest is L2StakingBaseTest { abi.encode(address(l2Staking.OTHER_STAKING())) ); hevm.startPrank(address(l2CrossDomainMessenger)); + uint256 nonce = 0; for (uint256 i = SEQUENCER_SIZE; i < SEQUENCER_SIZE * 2; i++) { address staker = address(uint160(beginSeq + i)); Types.StakerInfo memory stakerInfo = ffi.generateStakerInfo(staker); - l2Staking.addStaker(stakerInfo); + l2Staking.addStaker(nonce, stakerInfo); + nonce++; } // remove old sequencer @@ -242,7 +244,7 @@ contract GovTest is L2StakingBaseTest { address staker = address(uint160(beginSeq + i)); removed[i] = staker; } - l2Staking.removeStakers(removed); + l2Staking.removeStakers(nonce, removed); hevm.stopPrank(); (, executed) = gov.proposalInfos(proposalID); From 82ac03b085ad87df2c41626349dd3161a8b4f779 Mon Sep 17 00:00:00 2001 From: Segue Date: Tue, 12 Nov 2024 11:25:21 +0800 Subject: [PATCH 026/106] update bindings --- bindings/bin/l1staking_deployed.hex | 2 +- bindings/bin/l2staking_deployed.hex | 2 +- bindings/bindings/l1staking.go | 35 +++++++- bindings/bindings/l1staking_more.go | 4 +- bindings/bindings/l2staking.go | 125 ++++++++++++++++++++++------ bindings/bindings/l2staking_more.go | 4 +- 6 files changed, 138 insertions(+), 34 deletions(-) diff --git a/bindings/bin/l1staking_deployed.hex b/bindings/bin/l1staking_deployed.hex index 401476f33..4b21f101b 100644 --- a/bindings/bin/l1staking_deployed.hex +++ b/bindings/bin/l1staking_deployed.hex @@ -1 +1 @@ -0x6080604052600436106102f8575f3560e01c80637a9262a211610191578063ab8c53dc116100dc578063d51c90a911610087578063e2a6ad5f11610062578063e2a6ad5f1461090c578063f2fde38b1461092b578063f4fe7fef1461094a575f80fd5b8063d51c90a91461087f578063dd4785f514610894578063df155033146108d5575f80fd5b8063c7cd469a116100b7578063c7cd469a14610822578063cde4cd1114610841578063d096c3c614610860575f80fd5b8063ab8c53dc146107cf578063ae81de53146107e4578063bfa02ba914610803575f80fd5b8063927ede2d1161013c5780639fb82db9116101175780639fb82db91461077d578063a3066aab14610791578063a4f209b0146107b0575f80fd5b8063927ede2d146106f05780639b19251a146107235780639d48f41714610751575f80fd5b80638a565ac31161016c5780638a565ac3146106865780638da5cb5b146106a55780639168ae72146106c2575f80fd5b80637a9262a2146106085780638142951a14610634578063831cfb5814610653575f80fd5b806341de239b11610251578063692c565b116101fc57806374fe27b7116101d757806374fe27b714610588578063797adbde146105ae5780637a4e87c3146105cd575f80fd5b8063692c565b146105265780636f1e853314610555578063715018a614610574575f80fd5b80634d64903a1161022c5780634d64903a146104dd57806352d472eb146104f25780636801579114610507575f80fd5b806341de239b1461048857806343352d611461049d57806345bc4d10146104be575f80fd5b8063320ff860116102b15780633cb747bf1161028c5780633cb747bf1461042e5780633ccfd60b146104605780633ee2a1f914610474575f80fd5b8063320ff860146103b257806335928991146103d15780633a9bbede146103f0575f80fd5b80632a28e5a3116102e15780632a28e5a31461033a5780632e407a6f1461034f578063303afb9e1461037b575f80fd5b80630d13fd7b146102fc5780632108db3514610325575b5f80fd5b348015610307575f80fd5b506103126101a65481565b6040519081526020015b60405180910390f35b348015610330575f80fd5b50610312609c5481565b61034d610348366004613407565b610969565b005b34801561035a575f80fd5b50610312610369366004613461565b6101a16020525f908152604090205481565b348015610386575f80fd5b5061039a610395366004613481565b610d64565b6040516001600160a01b03909116815260200161031c565b3480156103bd575f80fd5b5061034d6103cc366004613498565b610d83565b3480156103dc575f80fd5b5061034d6103eb366004613481565b61109e565b3480156103fb575f80fd5b5061041e61040a366004613461565b609f6020525f908152604090205460ff1681565b604051901515815260200161031c565b348015610439575f80fd5b507f000000000000000000000000000000000000000000000000000000000000000061039a565b34801561046b575f80fd5b5061034d61114b565b34801561047f575f80fd5b5061034d611317565b348015610493575f80fd5b5061031260995481565b3480156104a8575f80fd5b506104b1611329565b60405161031c9190613540565b3480156104c9575f80fd5b506103126104d8366004613481565b61136f565b3480156104e8575f80fd5b5061031260985481565b3480156104fd575f80fd5b50610312609a5481565b348015610512575f80fd5b5061041e610521366004613461565b611675565b348015610531575f80fd5b5061041e610540366004613481565b6101a46020525f908152604090205460ff1681565b348015610560575f80fd5b5061041e61056f366004613461565b611710565b34801561057f575f80fd5b5061034d611789565b348015610593575f80fd5b5061041e6105a23660046135c2565b60019695505050505050565b3480156105b9575f80fd5b5061039a6105c8366004613481565b61179a565b3480156105d8575f80fd5b5061041e6105e7366004613668565b80516020818301810180516101a38252928201919093012091525460ff1681565b348015610613575f80fd5b50610312610622366004613461565b6101a56020525f908152604090205481565b34801561063f575f80fd5b5061034d61064e3660046136a2565b6117c3565b34801561065e575f80fd5b5061039a7f000000000000000000000000000000000000000000000000000000000000000081565b348015610691575f80fd5b5061034d6106a0366004613481565b611c85565b3480156106b0575f80fd5b506033546001600160a01b031661039a565b3480156106cd575f80fd5b506106e16106dc366004613461565b611d28565b60405161031c9392919061373d565b3480156106fb575f80fd5b5061039a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561072e575f80fd5b5061041e61073d366004613461565b609e6020525f908152604090205460ff1681565b34801561075c575f80fd5b5061077061076b366004613481565b611ddb565b60405161031c919061376d565b348015610788575f80fd5b50610770611ef8565b34801561079c575f80fd5b5061034d6107ab366004613461565b6120a6565b3480156107bb575f80fd5b5061034d6107ca366004613481565b6121d6565b3480156107da575f80fd5b50610312609d5481565b3480156107ef575f80fd5b5061034d6107fe366004613481565b612286565b34801561080e575f80fd5b5060975461039a906001600160a01b031681565b34801561082d575f80fd5b5061034d61083c3660046137b9565b612329565b34801561084c575f80fd5b5061034d61085b366004613461565b6124ca565b34801561086b575f80fd5b5061031261087a366004613461565b612538565b34801561088a575f80fd5b50610312609b5481565b34801561089f575f80fd5b506108c36108ae366004613461565b61019f6020525f908152604090205460ff1681565b60405160ff909116815260200161031c565b3480156108e0575f80fd5b5061041e6108ef366004613461565b6001600160a01b03165f9081526101a16020526040902054151590565b348015610917575f80fd5b50610312610926366004613820565b6125b2565b348015610936575f80fd5b5061034d610945366004613461565b6126e4565b348015610955575f80fd5b5061034d610964366004613481565b612771565b335f818152609e602052604090205460ff166109cc5760405162461bcd60e51b815260206004820152601060248201527f6e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064015b60405180910390fd5b335f9081526101a260205260409020546001600160a01b031615610a325760405162461bcd60e51b815260206004820152601260248201527f616c72656164792072656769737465726564000000000000000000000000000060448201526064016109c3565b8215801590610a5057505f8381526101a4602052604090205460ff16155b610a9c5760405162461bcd60e51b815260206004820152601960248201527f696e76616c69642074656e6465726d696e74207075626b65790000000000000060448201526064016109c3565b8151610100148015610acf57506101a382604051610aba919061385f565b9081526040519081900360200190205460ff16155b610b1b5760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420626c73207075626b6579000000000000000000000000000060448201526064016109c3565b6098543414610b6c5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109c3565b6040518060600160405280610b7e3390565b6001600160a01b03908116825260208083018790526040928301869052335f9081526101a28252839020845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558301516001820155908201516002820190610bf1908261390f565b50905050610c04610bff3390565b612814565b60016101a383604051610c17919061385f565b90815260408051918290036020908101909220805493151560ff199485161790555f8681526101a49092529020805490911660011790557fb9c7babb56df9f2da4a30811a6c778e4e68af88b72712d56cf62c5516e20e199610c763390565b8484604051610c879392919061373d565b60405180910390a1335f9081526101a26020908152604091829020825160608101845281546001600160a01b03168152600182015492810192909252600281018054610d5f9484019190610cda9061387a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d069061387a565b8015610d515780601f10610d2857610100808354040283529160200191610d51565b820191905f5260205f20905b815481529060010190602001808311610d3457829003601f168201915b505050505081525050612922565b505050565b60a08160ff8110610d73575f80fd5b01546001600160a01b0316905081565b610d8b612a4a565b5f5b815181101561105a57610db8828281518110610dab57610dab613a0d565b6020026020010151611675565b610e2a5760405162461bcd60e51b815260206004820152602160248201527f6f6e6c7920616374697665207374616b65722063616e2062652072656d6f766560448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016109c3565b6101a55f838381518110610e4057610e40613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20545f14610eb65760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109c3565b609954610ec39043613a67565b6101a55f848481518110610ed957610ed9613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550610f26828281518110610f1957610f19613a0d565b6020026020010151612aa4565b818181518110610f3857610f38613a0d565b60200260200101516001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d56101a55f858581518110610f8057610f80613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054604051610fb791815260200190565b60405180910390a2609e5f838381518110610fd457610fd4613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f84848151811061102157611021613a0d565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610d8d565b507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848160405161108a919061376d565b60405180910390a161109b81612b96565b50565b6110a6612a4a565b5f811180156110b857506101a6548114155b6111045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109c3565b6101a680549082905560408051828152602081018490527f36f971a40478225aeb80cfbf5e80306e8cb76d3bf7d56fdc5e490945cddb7d5591015b60405180910390a15050565b61115433611675565b6111a05760405162461bcd60e51b815260206004820152601260248201527f6f6e6c7920616374697665207374616b6572000000000000000000000000000060448201526064016109c3565b335f9081526101a56020526040902054156111fd5760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109c3565b60995461120a9043613a67565b335f8181526101a5602052604090209190915561122690612aa4565b335f8181526101a560209081526040918290205491519182527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a2335f908152609e60209081526040808320805460ff19908116909155609f83528184208054909116600190811790915581518181528083019092529091828101908036833701905050905033815f815181106112c8576112c8613a0d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848160405161108a919061376d565b61131f612a4a565b611327612c8e565b565b6113316132d4565b60408051611fe08101918290529060a09060ff9082845b81546001600160a01b03168152600190910190602001808311611348575050505050905090565b6097545f906001600160a01b0316336001600160a01b0316146113d45760405162461bcd60e51b815260206004820152601460248201527f6f6e6c7920726f6c6c757020636f6e747261637400000000000000000000000060448201526064016109c3565b6113dc612f59565b5f6113e683611ddb565b90505f805b8251811015611598575f6101a55f85848151811061140b5761140b613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054111561148e576101a55f84838151811061144f5761144f613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f9055609854826114879190613a67565b9150611590565b6114c88382815181106114a3576114a3613a0d565b60200260200101516001600160a01b03165f9081526101a16020526040902054151590565b611590576098546114d99083613a67565b91506114f0838281518110610f1957610f19613a0d565b609e5f84838151811061150557611505613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f85848151811061155257611552613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b6001016113eb565b505f6064609a54836115aa9190613a7a565b6115b49190613a91565b90506115c08183613ac9565b609d5f8282546115d09190613a67565b90915550506097546115eb906001600160a01b031682612fb2565b7f654f4a61849f1b3ad10abb283d27f02d5fece7b820acc5a3b874713b58748b5a8360405161161a919061376d565b60405180910390a17f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c8483604051611651919061376d565b60405180910390a161166283612b96565b925050506116706001606555565b919050565b6001600160a01b0381165f90815261019f602052604081205460ff16810361169e57505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906116c99060019060ff16613adc565b60ff1660ff81106116dc576116dc613a0d565b01546001600160a01b031614801561170a57506001600160a01b0382165f9081526101a16020526040902054155b92915050565b6001600160a01b0381165f90815261019f602052604081205460ff16810361173957505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906117649060019060ff16613adc565b60ff1660ff811061177757611777613a0d565b01546001600160a01b03161492915050565b611791612a4a565b6113275f613062565b6101a081815481106117aa575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f54610100900460ff16158080156117e157505f54600160ff909116105b806117fa5750303b1580156117fa57505f5460ff166001145b61186c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109c3565b5f805460ff1916600117905580156118aa575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0388166119005760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420726f6c6c757020636f6e747261637400000000000000000060448201526064016109c3565b5f871161194f5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109c3565b5f861161199e5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109c3565b5f85116119ed5760405162461bcd60e51b815260206004820152601e60248201527f696e76616c6964207769746864726177616c206c6f636b20626c6f636b73000060448201526064016109c3565b5f8311611a3c5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420676173206c696d697420616464207374616b65720000000060448201526064016109c3565b5f8211611a8b5760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420676173206c696d69742072656d6f7665207374616b65727360448201526064016109c3565b5f84118015611a9b575060648411155b611b0c5760405162461bcd60e51b8152602060048201526024808201527f696e76616c6964206368616c6c656e676572207265776172642070657263656e60448201527f746167650000000000000000000000000000000000000000000000000000000060648201526084016109c3565b611b146130cb565b611b1c61314f565b609780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a16179055609a84905560988790556101a68690556099859055609b839055609c829055604080515f8152602081018590527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910160405180910390a1604080515f8152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910160405180910390a1604080515f8152602081018690527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910160405180910390a18015611c7b575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b611c8d612a4a565b5f81118015611c9e5750609c548114155b611cea5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109c3565b609c80549082905560408051828152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910161113f565b6101a26020525f90815260409020805460018201546002830180546001600160a01b03909316939192611d5a9061387a565b80601f0160208091040260200160405190810160405280929190818152602001828054611d869061387a565b8015611dd15780601f10611da857610100808354040283529160200191611dd1565b820191905f5260205f20905b815481529060010190602001808311611db457829003601f168201915b5050505050905083565b6060600182901c5f5b8115611e0b57611df5816001613a67565b9050611e02600183613ac9565b82169150611de4565b8067ffffffffffffffff811115611e2457611e2461333d565b604051908082528060200260200182016040528015611e4d578160200160208202803683370190505b5092505f60015b60ff8160ff1611611eef57600160ff82161b861615611edd5760a0611e7a600183613adc565b60ff1660ff8110611e8d57611e8d613a0d565b015485516001600160a01b0390911690869084908110611eaf57611eaf613a0d565b6001600160a01b0390921660209283029190910190910152611ed2826001613a67565b915082821015611eef575b80611ee781613af5565b915050611e54565b50505050919050565b6040805160ff80825261200082019092526060915f91829160208201611fe0803683370190505090505f5b60ff811015611fc7575f60a08260ff8110611f4057611f40613a0d565b01546001600160a01b031614801590611f8857506101a15f60a08360ff8110611f6b57611f6b613a0d565b01546001600160a01b0316815260208101919091526040015f2054155b15611fbf5782611f9781613b13565b9350506001828281518110611fae57611fae613a0d565b911515602092830291909101909101525b600101611f23565b505f8267ffffffffffffffff811115611fe257611fe261333d565b60405190808252806020026020018201604052801561200b578160200160208202803683370190505b5090505f805b60ff81101561209c5783818151811061202c5761202c613a0d565b6020026020010151156120945760a08160ff811061204c5761204c613a0d565b015483516001600160a01b039091169084908490811061206e5761206e613a0d565b6001600160a01b03909216602092830291909101909101528161209081613b13565b9250505b600101612011565b5090949350505050565b6120ae612f59565b335f9081526101a5602052604090205461210a5760405162461bcd60e51b815260206004820152601460248201527f7769746864726177616c206e6f7420657869737400000000000000000000000060448201526064016109c3565b335f9081526101a560205260409020544310156121695760405162461bcd60e51b815260206004820152601160248201527f7769746864726177616c206c6f636b656400000000000000000000000000000060448201526064016109c3565b335f9081526101a56020526040812055612181612c8e565b604080516001600160a01b0383168152905133917f89309c9b2aeaffbdce717113df9427298b20448c05919bf889e05f8c3094254b919081900360200190a26121cc81609854612fb2565b61109b6001606555565b6121de612a4a565b5f811180156121ee575060648111155b80156121fc5750609a548114155b6122485760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642070657263656e746167650000000000000060448201526064016109c3565b609a80549082905560408051828152602081018490527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910161113f565b61228e612a4a565b5f8111801561229f5750609b548114155b6122eb5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109c3565b609b80549082905560408051828152602081018490527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910161113f565b612331612a4a565b5f5b8381101561242957609f5f86868481811061235057612350613a0d565b90506020020160208101906123659190613461565b6001600160a01b0316815260208101919091526040015f205460ff16156123ce5760405162461bcd60e51b815260206004820152600f60248201527f696e2072656d6f766564206c697374000000000000000000000000000000000060448201526064016109c3565b6001609e5f8787858181106123e5576123e5613a0d565b90506020020160208101906123fa9190613461565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101612333565b505f5b8181101561248657609e5f84848481811061244957612449613a0d565b905060200201602081019061245e9190613461565b6001600160a01b0316815260208101919091526040015f20805460ff1916905560010161242c565b507fe375867e538b40218c1b3db2ccceaf875eb073e38b510449e6088c1539ac8622848484846040516124bc9493929190613b8f565b60405180910390a150505050565b6124d2612a4a565b6124da612f59565b609d546124e78282612fb2565b5f609d55604080516001600160a01b0384168152602081018390527fa1fefb6c5328a92a416e321ed50997303fe7135fd88c28b0592b21ce42b5cdd9910160405180910390a15061109b6001606555565b5f61254282611710565b61258e5760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109c3565b506001600160a01b03165f90815261019f6020526040902054600160ff9091161b90565b5f60ff8211156126045760405162461bcd60e51b815260206004820152601c60248201527f7374616b657273206c656e677468206f7574206f6620626f756e64730000000060448201526064016109c3565b5f5b828110156126dd5761263884848381811061262357612623613a0d565b905060200201602081019061056f9190613461565b6126845760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109c3565b61019f5f85858481811061269a5761269a613a0d565b90506020020160208101906126af9190613461565b6001600160a01b0316815260208101919091526040015f2054600160ff90911681901b929092179101612606565b5092915050565b6126ec612a4a565b6001600160a01b0381166127685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109c3565b61109b81613062565b612779612a4a565b5f8111801561278a57506098548114155b6127d65760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109c3565b609880549082905560408051828152602081018490527f91e3ed304d49776a78bbe0df6bf7156f5433763621e5e728a3c2adfe7de74368910161113f565b5f5b60ff8160ff1610156128d9575f60a060ff80841690811061283957612839613a0d565b01546001600160a01b0316036128d1578160a08260ff1660ff811061286057612860613a0d565b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556128a2816001613bc0565b6001600160a01b03929092165f90815261019f60205260409020805460ff191660ff9093169290921790915550565b600101612816565b5060405162461bcd60e51b815260206004820152600960248201527f736c6f742066756c6c000000000000000000000000000000000000000000000060448201526064016109c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f846040516024016129849190613bd9565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6d454d5100000000000000000000000000000000000000000000000000000000179052609b5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a1a9493929190600401613c10565b5f604051808303815f87803b158015612a31575f80fd5b505af1158015612a43573d5f803e3d5ffd5b5050505050565b6033546001600160a01b031633146113275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109c3565b6001600160a01b0381165f9081526101a1602052604090205415612b0a5760405162461bcd60e51b815260206004820152601560248201527f616c726561647920696e2064656c6574654c697374000000000000000000000060448201526064016109c3565b6101a080546001810182555f919091527f7980fe0f714a613298681d64b7b8ffa7b148338dd52429f307d72798d5c317c40180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316179055609954612b7a9043613a67565b6001600160a01b039091165f9081526101a16020526040902055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f84604051602401612bf8919061376d565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0be67fcc00000000000000000000000000000000000000000000000000000000179052609c5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a1a9493929190600401613c10565b5f5b6101a05481101561109b57436101a15f6101a08481548110612cb457612cb4613a0d565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411612f475760a0600161019f5f6101a08581548110612cf957612cf9613a0d565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054612d2a919060ff16613adc565b60ff1660ff8110612d3d57612d3d613a0d565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556101a0805461019f915f9184908110612d7f57612d7f613a0d565b5f9182526020808320909101546001600160a01b031683528201929092526040018120805460ff191690556101a080546101a292919084908110612dc557612dc5613a0d565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590612e2360028301826132f3565b50506101a15f6101a08381548110612e3d57612e3d613a0d565b5f9182526020808320909101546001600160a01b031683528201929092526040018120556101a08054612e7290600190613ac9565b81548110612e8257612e82613a0d565b5f918252602090912001546101a080546001600160a01b039092169183908110612eae57612eae613a0d565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506101a0805480612eeb57612eeb613c48565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055612c90565b80612f5181613b13565b915050612c90565b600260655403612fab5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109c3565b6002606555565b8015613057575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613001576040519150601f19603f3d011682016040523d82523d5f602084013e613006565b606091505b5050905080610d5f5760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c6564000000000060448201526064016109c3565b5050565b6001606555565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166131475760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c3565b6113276131d3565b5f54610100900460ff166131cb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c3565b611327613258565b5f54610100900460ff1661324f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c3565b61132733613062565b5f54610100900460ff1661305b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c3565b60405180611fe0016040528060ff906020820280368337509192915050565b5080546132ff9061387a565b5f825580601f1061330e575050565b601f0160209004905f5260205f209081019061109b91905b80821115613339575f8155600101613326565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156133935761339361333d565b604052919050565b5f82601f8301126133aa575f80fd5b813567ffffffffffffffff8111156133c4576133c461333d565b6133d76020601f19601f8401160161336a565b8181528460208386010111156133eb575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613418575f80fd5b82359150602083013567ffffffffffffffff811115613435575f80fd5b6134418582860161339b565b9150509250929050565b80356001600160a01b0381168114611670575f80fd5b5f60208284031215613471575f80fd5b61347a8261344b565b9392505050565b5f60208284031215613491575f80fd5b5035919050565b5f60208083850312156134a9575f80fd5b823567ffffffffffffffff808211156134c0575f80fd5b818501915085601f8301126134d3575f80fd5b8135818111156134e5576134e561333d565b8060051b91506134f684830161336a565b818152918301840191848101908884111561350f575f80fd5b938501935b83851015613534576135258561344b565b82529385019390850190613514565b98975050505050505050565b611fe0810181835f5b60ff8110156135715781516001600160a01b0316835260209283019290910190600101613549565b50505092915050565b5f8083601f84011261358a575f80fd5b50813567ffffffffffffffff8111156135a1575f80fd5b6020830191508360208260051b85010111156135bb575f80fd5b9250929050565b5f805f805f80608087890312156135d7575f80fd5b86359550602087013567ffffffffffffffff808211156135f5575f80fd5b6136018a838b0161357a565b9097509550604089013594506060890135915080821115613620575f80fd5b818901915089601f830112613633575f80fd5b813581811115613641575f80fd5b8a6020828501011115613652575f80fd5b6020830194508093505050509295509295509295565b5f60208284031215613678575f80fd5b813567ffffffffffffffff81111561368e575f80fd5b61369a8482850161339b565b949350505050565b5f805f805f805f60e0888a0312156136b8575f80fd5b6136c18861344b565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f5b8381101561370a5781810151838201526020016136f2565b50505f910152565b5f81518084526137298160208601602086016136f0565b601f01601f19169290920160200192915050565b6001600160a01b0384168152826020820152606060408201525f6137646060830184613712565b95945050505050565b602080825282518282018190525f9190848201906040850190845b818110156137ad5783516001600160a01b031683529284019291840191600101613788565b50909695505050505050565b5f805f80604085870312156137cc575f80fd5b843567ffffffffffffffff808211156137e3575f80fd5b6137ef8883890161357a565b90965094506020870135915080821115613807575f80fd5b506138148782880161357a565b95989497509550505050565b5f8060208385031215613831575f80fd5b823567ffffffffffffffff811115613847575f80fd5b6138538582860161357a565b90969095509350505050565b5f82516138708184602087016136f0565b9190910192915050565b600181811c9082168061388e57607f821691505b6020821081036138c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610d5f57805f5260205f20601f840160051c810160208510156138f05750805b601f840160051c820191505b81811015612a43575f81556001016138fc565b815167ffffffffffffffff8111156139295761392961333d565b61393d81613937845461387a565b846138cb565b602080601f83116001811461398f575f84156139595750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613a05565b5f85815260208120601f198616915b828110156139bd5788860151825594840194600190910190840161399e565b50858210156139f957878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561170a5761170a613a3a565b808202811582820484141761170a5761170a613a3a565b5f82613ac4577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8181038181111561170a5761170a613a3a565b60ff828116828216039081111561170a5761170a613a3a565b5f60ff821660ff8103613b0a57613b0a613a3a565b60010192915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b4357613b43613a3a565b5060010190565b8183525f60208085019450825f5b85811015613b84576001600160a01b03613b718361344b565b1687529582019590820190600101613b58565b509495945050505050565b604081525f613ba2604083018688613b4a565b8281036020840152613bb5818587613b4a565b979650505050505050565b60ff818116838216019081111561170a5761170a613a3a565b602081526001600160a01b038251166020820152602082015160408201525f604083015160608084015261369a6080840182613712565b6001600160a01b0385168152836020820152608060408201525f613c376080830185613712565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a +0x608060405260043610610303575f3560e01c80638142951a11610191578063ae81de53116100dc578063d51c90a911610087578063e2a6ad5f11610062578063e2a6ad5f1461092d578063f2fde38b1461094c578063f4fe7fef1461096b575f80fd5b8063d51c90a9146108a0578063dd4785f5146108b5578063df155033146108f6575f80fd5b8063c7cd469a116100b7578063c7cd469a14610843578063cde4cd1114610862578063d096c3c614610881575f80fd5b8063ae81de53146107ef578063affed0e01461080e578063bfa02ba914610824575f80fd5b80639b19251a1161013c578063a3066aab11610117578063a3066aab1461079c578063a4f209b0146107bb578063ab8c53dc146107da575f80fd5b80639b19251a1461072e5780639d48f4171461075c5780639fb82db914610788575f80fd5b80638da5cb5b1161016c5780638da5cb5b146106b05780639168ae72146106cd578063927ede2d146106fb575f80fd5b80638142951a1461063f578063831cfb581461065e5780638a565ac314610691575f80fd5b806343352d61116102515780636f1e8533116101fc578063797adbde116101d7578063797adbde146105b95780637a4e87c3146105d85780637a9262a214610613575f80fd5b80636f1e853314610560578063715018a61461057f57806374fe27b714610593575f80fd5b806352d472eb1161022c57806352d472eb146104fd5780636801579114610512578063692c565b14610531575f80fd5b806343352d61146104a857806345bc4d10146104c95780634d64903a146104e8575f80fd5b806335928991116102b15780633ccfd60b1161028c5780633ccfd60b1461046b5780633ee2a1f91461047f57806341de239b14610493575f80fd5b806335928991146103dc5780633a9bbede146103fb5780633cb747bf14610439575f80fd5b80632e407a6f116102e15780632e407a6f1461035a578063303afb9e14610386578063320ff860146103bd575f80fd5b80630d13fd7b146103075780632108db35146103305780632a28e5a314610345575b5f80fd5b348015610312575f80fd5b5061031d6101a65481565b6040519081526020015b60405180910390f35b34801561033b575f80fd5b5061031d609c5481565b610358610353366004613495565b61098a565b005b348015610365575f80fd5b5061031d6103743660046134ef565b6101a16020525f908152604090205481565b348015610391575f80fd5b506103a56103a036600461350f565b610d85565b6040516001600160a01b039091168152602001610327565b3480156103c8575f80fd5b506103586103d7366004613526565b610da4565b3480156103e7575f80fd5b506103586103f636600461350f565b6110bf565b348015610406575f80fd5b506104296104153660046134ef565b609f6020525f908152604090205460ff1681565b6040519015158152602001610327565b348015610444575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103a5565b348015610476575f80fd5b5061035861116c565b34801561048a575f80fd5b50610358611338565b34801561049e575f80fd5b5061031d60995481565b3480156104b3575f80fd5b506104bc61134a565b60405161032791906135ce565b3480156104d4575f80fd5b5061031d6104e336600461350f565b611390565b3480156104f3575f80fd5b5061031d60985481565b348015610508575f80fd5b5061031d609a5481565b34801561051d575f80fd5b5061042961052c3660046134ef565b611696565b34801561053c575f80fd5b5061042961054b36600461350f565b6101a46020525f908152604090205460ff1681565b34801561056b575f80fd5b5061042961057a3660046134ef565b611731565b34801561058a575f80fd5b506103586117aa565b34801561059e575f80fd5b506104296105ad366004613650565b60019695505050505050565b3480156105c4575f80fd5b506103a56105d336600461350f565b6117bb565b3480156105e3575f80fd5b506104296105f23660046136f6565b80516020818301810180516101a38252928201919093012091525460ff1681565b34801561061e575f80fd5b5061031d61062d3660046134ef565b6101a56020525f908152604090205481565b34801561064a575f80fd5b50610358610659366004613730565b6117e4565b348015610669575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b34801561069c575f80fd5b506103586106ab36600461350f565b611ca6565b3480156106bb575f80fd5b506033546001600160a01b03166103a5565b3480156106d8575f80fd5b506106ec6106e73660046134ef565b611d49565b604051610327939291906137cb565b348015610706575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610739575f80fd5b506104296107483660046134ef565b609e6020525f908152604090205460ff1681565b348015610767575f80fd5b5061077b61077636600461350f565b611dfc565b604051610327919061383e565b348015610793575f80fd5b5061077b611f19565b3480156107a7575f80fd5b506103586107b63660046134ef565b6120c7565b3480156107c6575f80fd5b506103586107d536600461350f565b6121f7565b3480156107e5575f80fd5b5061031d609d5481565b3480156107fa575f80fd5b5061035861080936600461350f565b6122a7565b348015610819575f80fd5b5061031d6101a75481565b34801561082f575f80fd5b506097546103a5906001600160a01b031681565b34801561084e575f80fd5b5061035861085d366004613850565b61234a565b34801561086d575f80fd5b5061035861087c3660046134ef565b6124eb565b34801561088c575f80fd5b5061031d61089b3660046134ef565b612559565b3480156108ab575f80fd5b5061031d609b5481565b3480156108c0575f80fd5b506108e46108cf3660046134ef565b61019f6020525f908152604090205460ff1681565b60405160ff9091168152602001610327565b348015610901575f80fd5b506104296109103660046134ef565b6001600160a01b03165f9081526101a16020526040902054151590565b348015610938575f80fd5b5061031d6109473660046138b7565b6125d3565b348015610957575f80fd5b506103586109663660046134ef565b612705565b348015610976575f80fd5b5061035861098536600461350f565b612792565b335f818152609e602052604090205460ff166109ed5760405162461bcd60e51b815260206004820152601060248201527f6e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064015b60405180910390fd5b335f9081526101a260205260409020546001600160a01b031615610a535760405162461bcd60e51b815260206004820152601260248201527f616c72656164792072656769737465726564000000000000000000000000000060448201526064016109e4565b8215801590610a7157505f8381526101a4602052604090205460ff16155b610abd5760405162461bcd60e51b815260206004820152601960248201527f696e76616c69642074656e6465726d696e74207075626b65790000000000000060448201526064016109e4565b8151610100148015610af057506101a382604051610adb91906138f6565b9081526040519081900360200190205460ff16155b610b3c5760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420626c73207075626b6579000000000000000000000000000060448201526064016109e4565b6098543414610b8d5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b6040518060600160405280610b9f3390565b6001600160a01b03908116825260208083018790526040928301869052335f9081526101a28252839020845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558301516001820155908201516002820190610c1290826139ad565b50905050610c25610c203390565b612835565b60016101a383604051610c3891906138f6565b90815260408051918290036020908101909220805493151560ff199485161790555f8681526101a49092529020805490911660011790557fb9c7babb56df9f2da4a30811a6c778e4e68af88b72712d56cf62c5516e20e199610c973390565b8484604051610ca8939291906137cb565b60405180910390a1335f9081526101a26020908152604091829020825160608101845281546001600160a01b03168152600182015492810192909252600281018054610d809484019190610cfb90613911565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2790613911565b8015610d725780601f10610d4957610100808354040283529160200191610d72565b820191905f5260205f20905b815481529060010190602001808311610d5557829003601f168201915b505050505081525050612943565b505050565b60a08160ff8110610d94575f80fd5b01546001600160a01b0316905081565b610dac612a84565b5f5b815181101561107b57610dd9828281518110610dcc57610dcc613aab565b6020026020010151611696565b610e4b5760405162461bcd60e51b815260206004820152602160248201527f6f6e6c7920616374697665207374616b65722063616e2062652072656d6f766560448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016109e4565b6101a55f838381518110610e6157610e61613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20545f14610ed75760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109e4565b609954610ee49043613b05565b6101a55f848481518110610efa57610efa613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550610f47828281518110610f3a57610f3a613aab565b6020026020010151612ade565b818181518110610f5957610f59613aab565b60200260200101516001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d56101a55f858581518110610fa157610fa1613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054604051610fd891815260200190565b60405180910390a2609e5f838381518110610ff557610ff5613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f84848151811061104257611042613aab565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610dae565b507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84816040516110ab919061383e565b60405180910390a16110bc81612bd0565b50565b6110c7612a84565b5f811180156110d957506101a6548114155b6111255760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109e4565b6101a680549082905560408051828152602081018490527f36f971a40478225aeb80cfbf5e80306e8cb76d3bf7d56fdc5e490945cddb7d5591015b60405180910390a15050565b61117533611696565b6111c15760405162461bcd60e51b815260206004820152601260248201527f6f6e6c7920616374697665207374616b6572000000000000000000000000000060448201526064016109e4565b335f9081526101a560205260409020541561121e5760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109e4565b60995461122b9043613b05565b335f8181526101a5602052604090209190915561124790612ade565b335f8181526101a560209081526040918290205491519182527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a2335f908152609e60209081526040808320805460ff19908116909155609f83528184208054909116600190811790915581518181528083019092529091828101908036833701905050905033815f815181106112e9576112e9613aab565b60200260200101906001600160a01b031690816001600160a01b0316815250507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84816040516110ab919061383e565b611340612a84565b611348612ccd565b565b611352613362565b60408051611fe08101918290529060a09060ff9082845b81546001600160a01b03168152600190910190602001808311611369575050505050905090565b6097545f906001600160a01b0316336001600160a01b0316146113f55760405162461bcd60e51b815260206004820152601460248201527f6f6e6c7920726f6c6c757020636f6e747261637400000000000000000000000060448201526064016109e4565b6113fd612fe7565b5f61140783611dfc565b90505f805b82518110156115b9575f6101a55f85848151811061142c5761142c613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205411156114af576101a55f84838151811061147057611470613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f9055609854826114a89190613b05565b91506115b1565b6114e98382815181106114c4576114c4613aab565b60200260200101516001600160a01b03165f9081526101a16020526040902054151590565b6115b1576098546114fa9083613b05565b9150611511838281518110610f3a57610f3a613aab565b609e5f84838151811061152657611526613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f85848151811061157357611573613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60010161140c565b505f6064609a54836115cb9190613b18565b6115d59190613b2f565b90506115e18183613b67565b609d5f8282546115f19190613b05565b909155505060975461160c906001600160a01b031682613040565b7f654f4a61849f1b3ad10abb283d27f02d5fece7b820acc5a3b874713b58748b5a8360405161163b919061383e565b60405180910390a17f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c8483604051611672919061383e565b60405180910390a161168383612bd0565b925050506116916001606555565b919050565b6001600160a01b0381165f90815261019f602052604081205460ff1681036116bf57505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906116ea9060019060ff16613b7a565b60ff1660ff81106116fd576116fd613aab565b01546001600160a01b031614801561172b57506001600160a01b0382165f9081526101a16020526040902054155b92915050565b6001600160a01b0381165f90815261019f602052604081205460ff16810361175a57505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906117859060019060ff16613b7a565b60ff1660ff811061179857611798613aab565b01546001600160a01b03161492915050565b6117b2612a84565b6113485f6130f0565b6101a081815481106117cb575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f54610100900460ff161580801561180257505f54600160ff909116105b8061181b5750303b15801561181b57505f5460ff166001145b61188d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109e4565b5f805460ff1916600117905580156118cb575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0388166119215760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420726f6c6c757020636f6e747261637400000000000000000060448201526064016109e4565b5f87116119705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b5f86116119bf5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109e4565b5f8511611a0e5760405162461bcd60e51b815260206004820152601e60248201527f696e76616c6964207769746864726177616c206c6f636b20626c6f636b73000060448201526064016109e4565b5f8311611a5d5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420676173206c696d697420616464207374616b65720000000060448201526064016109e4565b5f8211611aac5760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420676173206c696d69742072656d6f7665207374616b65727360448201526064016109e4565b5f84118015611abc575060648411155b611b2d5760405162461bcd60e51b8152602060048201526024808201527f696e76616c6964206368616c6c656e676572207265776172642070657263656e60448201527f746167650000000000000000000000000000000000000000000000000000000060648201526084016109e4565b611b35613159565b611b3d6131dd565b609780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a16179055609a84905560988790556101a68690556099859055609b839055609c829055604080515f8152602081018590527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910160405180910390a1604080515f8152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910160405180910390a1604080515f8152602081018690527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910160405180910390a18015611c9c575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b611cae612a84565b5f81118015611cbf5750609c548114155b611d0b5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109e4565b609c80549082905560408051828152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f79101611160565b6101a26020525f90815260409020805460018201546002830180546001600160a01b03909316939192611d7b90613911565b80601f0160208091040260200160405190810160405280929190818152602001828054611da790613911565b8015611df25780601f10611dc957610100808354040283529160200191611df2565b820191905f5260205f20905b815481529060010190602001808311611dd557829003601f168201915b5050505050905083565b6060600182901c5f5b8115611e2c57611e16816001613b05565b9050611e23600183613b67565b82169150611e05565b8067ffffffffffffffff811115611e4557611e456133cb565b604051908082528060200260200182016040528015611e6e578160200160208202803683370190505b5092505f60015b60ff8160ff1611611f1057600160ff82161b861615611efe5760a0611e9b600183613b7a565b60ff1660ff8110611eae57611eae613aab565b015485516001600160a01b0390911690869084908110611ed057611ed0613aab565b6001600160a01b0390921660209283029190910190910152611ef3826001613b05565b915082821015611f10575b80611f0881613b93565b915050611e75565b50505050919050565b6040805160ff80825261200082019092526060915f91829160208201611fe0803683370190505090505f5b60ff811015611fe8575f60a08260ff8110611f6157611f61613aab565b01546001600160a01b031614801590611fa957506101a15f60a08360ff8110611f8c57611f8c613aab565b01546001600160a01b0316815260208101919091526040015f2054155b15611fe05782611fb881613bb1565b9350506001828281518110611fcf57611fcf613aab565b911515602092830291909101909101525b600101611f44565b505f8267ffffffffffffffff811115612003576120036133cb565b60405190808252806020026020018201604052801561202c578160200160208202803683370190505b5090505f805b60ff8110156120bd5783818151811061204d5761204d613aab565b6020026020010151156120b55760a08160ff811061206d5761206d613aab565b015483516001600160a01b039091169084908490811061208f5761208f613aab565b6001600160a01b0390921660209283029190910190910152816120b181613bb1565b9250505b600101612032565b5090949350505050565b6120cf612fe7565b335f9081526101a5602052604090205461212b5760405162461bcd60e51b815260206004820152601460248201527f7769746864726177616c206e6f7420657869737400000000000000000000000060448201526064016109e4565b335f9081526101a5602052604090205443101561218a5760405162461bcd60e51b815260206004820152601160248201527f7769746864726177616c206c6f636b656400000000000000000000000000000060448201526064016109e4565b335f9081526101a560205260408120556121a2612ccd565b604080516001600160a01b0383168152905133917f89309c9b2aeaffbdce717113df9427298b20448c05919bf889e05f8c3094254b919081900360200190a26121ed81609854613040565b6110bc6001606555565b6121ff612a84565b5f8111801561220f575060648111155b801561221d5750609a548114155b6122695760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642070657263656e746167650000000000000060448201526064016109e4565b609a80549082905560408051828152602081018490527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba9101611160565b6122af612a84565b5f811180156122c05750609b548114155b61230c5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109e4565b609b80549082905560408051828152602081018490527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c9101611160565b612352612a84565b5f5b8381101561244a57609f5f86868481811061237157612371613aab565b905060200201602081019061238691906134ef565b6001600160a01b0316815260208101919091526040015f205460ff16156123ef5760405162461bcd60e51b815260206004820152600f60248201527f696e2072656d6f766564206c697374000000000000000000000000000000000060448201526064016109e4565b6001609e5f87878581811061240657612406613aab565b905060200201602081019061241b91906134ef565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101612354565b505f5b818110156124a757609e5f84848481811061246a5761246a613aab565b905060200201602081019061247f91906134ef565b6001600160a01b0316815260208101919091526040015f20805460ff1916905560010161244d565b507fe375867e538b40218c1b3db2ccceaf875eb073e38b510449e6088c1539ac8622848484846040516124dd9493929190613c22565b60405180910390a150505050565b6124f3612a84565b6124fb612fe7565b609d546125088282613040565b5f609d55604080516001600160a01b0384168152602081018390527fa1fefb6c5328a92a416e321ed50997303fe7135fd88c28b0592b21ce42b5cdd9910160405180910390a1506110bc6001606555565b5f61256382611731565b6125af5760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109e4565b506001600160a01b03165f90815261019f6020526040902054600160ff9091161b90565b5f60ff8211156126255760405162461bcd60e51b815260206004820152601c60248201527f7374616b657273206c656e677468206f7574206f6620626f756e64730000000060448201526064016109e4565b5f5b828110156126fe5761265984848381811061264457612644613aab565b905060200201602081019061057a91906134ef565b6126a55760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109e4565b61019f5f8585848181106126bb576126bb613aab565b90506020020160208101906126d091906134ef565b6001600160a01b0316815260208101919091526040015f2054600160ff90911681901b929092179101612627565b5092915050565b61270d612a84565b6001600160a01b0381166127895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109e4565b6110bc816130f0565b61279a612a84565b5f811180156127ab57506098548114155b6127f75760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b609880549082905560408051828152602081018490527f91e3ed304d49776a78bbe0df6bf7156f5433763621e5e728a3c2adfe7de743689101611160565b5f5b60ff8160ff1610156128fa575f60a060ff80841690811061285a5761285a613aab565b01546001600160a01b0316036128f2578160a08260ff1660ff811061288157612881613aab565b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556128c3816001613c53565b6001600160a01b03929092165f90815261019f60205260409020805460ff191660ff9093169290921790915550565b600101612837565b5060405162461bcd60e51b815260206004820152600960248201527f736c6f742066756c6c000000000000000000000000000000000000000000000060448201526064016109e4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a754856040516024016129aa929190613c6c565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7046529b00000000000000000000000000000000000000000000000000000000179052609b5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a409493929190600401613caa565b5f604051808303815f87803b158015612a57575f80fd5b505af1158015612a69573d5f803e3d5ffd5b505050506101a7546001612a7d9190613b05565b6101a75550565b6033546001600160a01b031633146113485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109e4565b6001600160a01b0381165f9081526101a1602052604090205415612b445760405162461bcd60e51b815260206004820152601560248201527f616c726561647920696e2064656c6574654c697374000000000000000000000060448201526064016109e4565b6101a080546001810182555f919091527f7980fe0f714a613298681d64b7b8ffa7b148338dd52429f307d72798d5c317c40180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316179055609954612bb49043613b05565b6001600160a01b039091165f9081526101a16020526040902055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a75485604051602401612c37929190613ce2565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcce6cf9f00000000000000000000000000000000000000000000000000000000179052609c5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a409493929190600401613caa565b5f5b6101a0548110156110bc575f6001600160a01b03166101a08281548110612cf857612cf8613aab565b5f918252602090912001546001600160a01b031603612e33576101a15f6101a08381548110612d2957612d29613aab565b5f9182526020808320909101546001600160a01b031683528201929092526040018120556101a08054612d5e90600190613b67565b81548110612d6e57612d6e613aab565b5f918252602090912001546101a080546001600160a01b039092169183908110612d9a57612d9a613aab565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506101a0805480612dd757612dd7613cfa565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055612ccf565b436101a15f6101a08481548110612e4c57612e4c613aab565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411612fd55760a0600161019f5f6101a08581548110612e9157612e91613aab565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054612ec2919060ff16613b7a565b60ff1660ff8110612ed557612ed5613aab565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556101a0805461019f915f9184908110612f1757612f17613aab565b5f9182526020808320909101546001600160a01b031683528201929092526040018120805460ff191690556101a080546101a292919084908110612f5d57612f5d613aab565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590612fbb6002830182613381565b50506101a15f6101a08381548110612d2957612d29613aab565b80612fdf81613bb1565b915050612ccf565b6002606554036130395760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109e4565b6002606555565b80156130e5575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461308f576040519150601f19603f3d011682016040523d82523d5f602084013e613094565b606091505b5050905080610d805760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c6564000000000060448201526064016109e4565b5050565b6001606555565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166131d55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b611348613261565b5f54610100900460ff166132595760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b6113486132e6565b5f54610100900460ff166132dd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b611348336130f0565b5f54610100900460ff166130e95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b60405180611fe0016040528060ff906020820280368337509192915050565b50805461338d90613911565b5f825580601f1061339c575050565b601f0160209004905f5260205f20908101906110bc91905b808211156133c7575f81556001016133b4565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613421576134216133cb565b604052919050565b5f82601f830112613438575f80fd5b813567ffffffffffffffff811115613452576134526133cb565b6134656020601f19601f840116016133f8565b818152846020838601011115613479575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156134a6575f80fd5b82359150602083013567ffffffffffffffff8111156134c3575f80fd5b6134cf85828601613429565b9150509250929050565b80356001600160a01b0381168114611691575f80fd5b5f602082840312156134ff575f80fd5b613508826134d9565b9392505050565b5f6020828403121561351f575f80fd5b5035919050565b5f6020808385031215613537575f80fd5b823567ffffffffffffffff8082111561354e575f80fd5b818501915085601f830112613561575f80fd5b813581811115613573576135736133cb565b8060051b91506135848483016133f8565b818152918301840191848101908884111561359d575f80fd5b938501935b838510156135c2576135b3856134d9565b825293850193908501906135a2565b98975050505050505050565b611fe0810181835f5b60ff8110156135ff5781516001600160a01b03168352602092830192909101906001016135d7565b50505092915050565b5f8083601f840112613618575f80fd5b50813567ffffffffffffffff81111561362f575f80fd5b6020830191508360208260051b8501011115613649575f80fd5b9250929050565b5f805f805f8060808789031215613665575f80fd5b86359550602087013567ffffffffffffffff80821115613683575f80fd5b61368f8a838b01613608565b90975095506040890135945060608901359150808211156136ae575f80fd5b818901915089601f8301126136c1575f80fd5b8135818111156136cf575f80fd5b8a60208285010111156136e0575f80fd5b6020830194508093505050509295509295509295565b5f60208284031215613706575f80fd5b813567ffffffffffffffff81111561371c575f80fd5b61372884828501613429565b949350505050565b5f805f805f805f60e0888a031215613746575f80fd5b61374f886134d9565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f5b83811015613798578181015183820152602001613780565b50505f910152565b5f81518084526137b781602086016020860161377e565b601f01601f19169290920160200192915050565b6001600160a01b0384168152826020820152606060408201525f6137f260608301846137a0565b95945050505050565b5f815180845260208085019450602084015f5b838110156138335781516001600160a01b03168752958201959082019060010161380e565b509495945050505050565b602081525f61350860208301846137fb565b5f805f8060408587031215613863575f80fd5b843567ffffffffffffffff8082111561387a575f80fd5b61388688838901613608565b9096509450602087013591508082111561389e575f80fd5b506138ab87828801613608565b95989497509550505050565b5f80602083850312156138c8575f80fd5b823567ffffffffffffffff8111156138de575f80fd5b6138ea85828601613608565b90969095509350505050565b5f825161390781846020870161377e565b9190910192915050565b600181811c9082168061392557607f821691505b60208210810361395c577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610d8057805f5260205f20601f840160051c810160208510156139875750805b601f840160051c820191505b818110156139a6575f8155600101613993565b5050505050565b815167ffffffffffffffff8111156139c7576139c76133cb565b6139db816139d58454613911565b84613962565b602080601f831160018114613a2d575f84156139f75750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613aa3565b5f85815260208120601f198616915b82811015613a5b57888601518255948401946001909101908401613a3c565b5085821015613a9757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561172b5761172b613ad8565b808202811582820484141761172b5761172b613ad8565b5f82613b62577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8181038181111561172b5761172b613ad8565b60ff828116828216039081111561172b5761172b613ad8565b5f60ff821660ff8103613ba857613ba8613ad8565b60010192915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613be157613be1613ad8565b5060010190565b8183525f60208085019450825f5b85811015613833576001600160a01b03613c0f836134d9565b1687529582019590820190600101613bf6565b604081525f613c35604083018688613be8565b8281036020840152613c48818587613be8565b979650505050505050565b60ff818116838216019081111561172b5761172b613ad8565b828152604060208201526001600160a01b038251166040820152602082015160608201525f6040830151606060808401526137f260a08401826137a0565b6001600160a01b0385168152836020820152608060408201525f613cd160808301856137a0565b905082606083015295945050505050565b828152604060208201525f61372860408301846137fb565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a diff --git a/bindings/bin/l2staking_deployed.hex b/bindings/bin/l2staking_deployed.hex index 7eec59704..60ec31b3a 100644 --- a/bindings/bin/l2staking_deployed.hex +++ b/bindings/bin/l2staking_deployed.hex @@ -1 +1 @@ -0x608060405234801561000f575f80fd5b50600436106102cc575f3560e01c8063715018a61161017c578063927ede2d116100dd578063d557714111610093578063f0261bc21161006e578063f0261bc21461068a578063f2fde38b14610693578063fad99f98146106a6575f80fd5b8063d55771411461063b578063e10911b114610662578063ed70b3431461066a575f80fd5b8063b5d2e0dc116100c3578063b5d2e0dc146105d1578063c64814dd146105f0578063d31d83d91461061a575f80fd5b8063927ede2d1461059d57806396ab994d146105c4575f80fd5b806384d7d1d4116101325780638e21d5fb116101185780638e21d5fb146105355780639168ae721461055c57806391bd43a41461057e575f80fd5b806384d7d1d4146105015780638da5cb5b14610524575f80fd5b8063766718081161016257806376671808146104b35780637b05afb5146104bb578063831cfb58146104da575f80fd5b8063715018a6146104a3578063746c8ae1146104ab575f80fd5b80633385ccc21161023157806340b5c837116101e7578063459598a2116101c2578063459598a21461047557806346cdc18a146104885780636d454d5114610490575f80fd5b806340b5c8371461044757806343352d611461045a578063439162b514610462575f80fd5b80633c323a1b116102175780633c323a1b146103d35780633cb747bf146103e65780633d9353fe14610420575f80fd5b80633385ccc2146103b75780633b802421146103ca575f80fd5b8063174e31c4116102865780632cc138be1161026c5780632cc138be146103855780632e787be31461038e57806330158eea14610397575f80fd5b8063174e31c41461035f57806319fac8fd14610372575f80fd5b80630eb573af116102b65780630eb573af1461030b5780630f3b70591461031e57806312a3e94714610356575f80fd5b806243b758146102d05780630be67fcc146102f6575b5f80fd5b6102e36102de366004614148565b6106ae565b6040519081526020015b60405180910390f35b6103096103043660046141ab565b6106d4565b005b6103096103193660046141ea565b610bf9565b61033161032c366004614201565b610d0c565b604080516001600160a01b0390941684526020840192909252908201526060016102ed565b6102e3609a5481565b61030961036d366004614201565b610d54565b6103096103803660046141ea565b610ecc565b6102e360985481565b6102e360995481565b6103aa6103a53660046141ab565b610fee565b6040516102ed919061428c565b6103096103c5366004614148565b611215565b6102e3609c5481565b6103096103e1366004614201565b611870565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102ed565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b6103096104553660046141ea565b611f0a565b6103aa61201d565b610309610470366004614332565b612239565b6104086104833660046141ea565b612775565b609d546102e3565b61030961049e3660046143a0565b61279d565b610309612a6e565b610309612a81565b6102e3612d71565b6102e36104c9366004614148565b60a06020525f908152604090205481565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61051461050f366004614148565b612de5565b60405190151581526020016102ed565b6033546001600160a01b0316610408565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61056f61056a366004614148565b612e0f565b6040516102ed939291906143d7565b6102e361058c366004614148565b60a16020525f908152604090205481565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b6097546105149060ff1681565b6102e36105df366004614148565b609e6020525f908152604090205481565b6102e36105fe366004614407565b60a360209081525f928352604080842090915290825290205481565b61062d61062836600461443e565b612ec1565b6040516102ed9291906144b3565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61030961303b565b61067d610678366004614148565b6133d5565b6040516102ed91906144d3565b6102e3609b5481565b6103096106a1366004614148565b61346b565b6103096134f8565b6001600160a01b0381165f90815260a2602052604081206106ce906135a6565b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156107bc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b19190614534565b6001600160a01b0316145b6108335760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f805b82811015610bac57609b54609e5f8686858181106108565761085661454f565b905060200201602081019061086b9190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161089557600191505b5f609e5f8686858181106108ab576108ab61454f565b90506020020160208101906108c09190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115610b23575f6001609e5f8787868181106108fe576108fe61454f565b90506020020160208101906109139190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f205461093d91906145a9565b90505b609d5461094f906001906145a9565b811015610a2157609d6109638260016145bc565b815481106109735761097361454f565b5f91825260209091200154609d80546001600160a01b03909216918390811061099e5761099e61454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d84815481106109e1576109e161454f565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190610a149084906145a9565b9091555050600101610940565b50609d805480610a3357610a336145cf565b5f8281526020812082015f1990810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90858584818110610a8357610a8361454f565b9050602002016020810190610a989190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f868685818110610ad057610ad061454f565b9050602002016020810190610ae59190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115610b23576001609c5f828254610b1d91906145a9565b90915550505b609f5f858584818110610b3857610b3861454f565b9050602002016020810190610b4d9190614148565b6001600160a01b0316815260208101919091526040015f90812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590610ba260028301826140ea565b5050600101610836565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618383604051610bde9291906145fc565b60405180910390a18015610bf457610bf46135af565b505050565b610c0161372f565b5f81118015610c1257506099548114155b610c845760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a65000000000000000000000000000000000000000000000000000000000000606482015260840161082a565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610cd957609d54610cdd565b609c545b90505f6099548210610cf157609954610cf3565b815b9050609b548114610d0657610d066135af565b50505050565b60a4602052815f5260405f208181548110610d25575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610d5c613789565b6001600160a01b038216610e12576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610df7575f80fd5b505af1158015610e09573d5f803e3d5ffd5b50505050610ebe565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610ea7575f80fd5b505af1158015610eb9573d5f803e3d5ffd5b505050505b610ec86001606555565b5050565b335f908152609e6020526040902054610f275760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f77656400000000000000000000000000604482015260640161082a565b6014811115610f785760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e0000000000000000000000000000604482015260640161082a565b335f90815260a06020526040812082905560975460ff16610f99575f610fac565b610fa1612d71565b610fac9060016145bc565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff81111561100a5761100a614649565b60405190808252806020026020018201604052801561105657816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816110285790505b5090505f5b8381101561120d576040518060600160405280609f5f8888868181106110835761108361454f565b90506020020160208101906110989190614148565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f908888868181106110d5576110d561454f565b90506020020160208101906110ea9190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f8888868181106111275761112761454f565b905060200201602081019061113c9190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20600201805461116990614676565b80601f016020809104026020016040519081016040528092919081815260200182805461119590614676565b80156111e05780601f106111b7576101008083540402835291602001916111e0565b820191905f5260205f20905b8154815290600101906020018083116111c357829003601f168201915b50505050508152508282815181106111fa576111fa61454f565b602090810291909101015260010161105b565b509392505050565b61121d613789565b6001600160a01b0381165f90815260a36020908152604080832033845290915290205461128c5760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f00000000000000000000604482015260640161082a565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff166112b8575f6112cb565b6112c0612d71565b6112cb9060016145bc565b6097549091505f9060ff1680156112e0575082155b6112ea57816112f7565b609a546112f790836145bc565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936113b99084906145a9565b90915550506001600160a01b0385165f90815260a2602052604090206113df90336137e9565b506001600160a01b0385165f908152609e602052604090205484158015611408575060975460ff165b80156114155750609c5481105b1561168c576001600160a01b0386165f908152609e602052604081205461143e906001906145a9565b90505b6001609c5461145091906145a9565b81101561168a5760a15f609d838154811061146d5761146d61454f565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d6114a28560016145bc565b815481106114b2576114b261454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611682575f609d82815481106114f0576114f061454f565b5f918252602090912001546001600160a01b03169050609d6115138360016145bc565b815481106115235761152361454f565b5f91825260209091200154609d80546001600160a01b03909216918490811061154e5761154e61454f565b5f91825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905580609d61159c8460016145bc565b815481106115ac576115ac61454f565b5f91825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556115f78260016145bc565b609e5f609d858154811061160d5761160d61454f565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205561163c8260026145bc565b609e5f609d61164c8660016145bc565b8154811061165c5761165c61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b600101611441565b505b841580156116af57506001600160a01b0386165f90815260a16020526040902054155b156116cc576001609c5f8282546116c691906145a9565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b15801561176d575f80fd5b505af115801561177f573d5f803e3d5ffd5b5050505061178a3390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516117e5939291909283526020830191909152604082015260600190565b60405180910390a3841580156117fd575060975460ff165b801561180b5750609b548111155b80156118515750609b546001600160a01b0387165f908152609e602052604090205411806118515750609c546001600160a01b0387165f908152609e6020526040902054115b1561185e5761185e6135af565b505050505061186d6001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906118d65760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b657200000000000000000000000000000000000000000000604482015260640161082a565b6118de613789565b5f821161192d5760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e74000000000000000000000000604482015260640161082a565b6119373384613804565b156119845760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d656400000000000000000000604482015260640161082a565b6001600160a01b0383165f90815260a360209081526040808320338452909152902054611a02576119b5338461388d565b15611a025760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d656400000000000000000000000000000000604482015260640161082a565b6001600160a01b0383165f90815260a1602052604081208054849290611a299084906145bc565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611a609084906145bc565b90915550506001600160a01b0383165f90815260a260205260409020611a869033613942565b506001600160a01b0383165f90815260a16020526040902054829003611abe576001609c5f828254611ab891906145bc565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff168015611ae85750600181115b15611d39575f611af96001836145a9565b90505b8015611d375760a15f609d611b126001856145a9565b81548110611b2257611b2261454f565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d8481548110611b7357611b7361454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611d25575f609d611bab6001846145a9565b81548110611bbb57611bbb61454f565b5f91825260209091200154609d80546001600160a01b0390921692509083908110611be857611be861454f565b5f918252602090912001546001600160a01b0316609d611c096001856145a9565b81548110611c1957611c1961454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d8381548110611c5857611c5861454f565b5f918252602082200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0393909316929092179091558290609e90609d611caa6001856145a9565b81548110611cba57611cba61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611ce98260016145bc565b609e5f609d8581548110611cff57611cff61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611d2f816146c1565b915050611afc565b505b6097545f9060ff16611d4b575f611d5e565b611d53612d71565b611d5e9060016145bc565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611e92575f80fd5b505af1158015611ea4573d5f803e3d5ffd5b50505050611eb9611eb23390565b3086613956565b60975460ff168015611ecc5750609b5482115b8015611ef157506099546001600160a01b0386165f908152609e602052604090205411155b15611efe57611efe6135af565b5050610bf46001606555565b611f1261372f565b60975460ff1615611f655760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c7265616479207374617274656400000000000000000000604482015260640161082a565b4281118015611f7e5750611f7c6201518082614703565b155b8015611f8c57506098548114155b611fd85760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d6500000000000000604482015260640161082a565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff81111561203d5761203d614649565b60405190808252806020026020018201604052801561208957816020015b60408051606080820183525f80835260208301529181019190915281526020019060019003908161205b5790505b5090505f5b609d54811015612233576040518060600160405280609f5f609d85815481106120b9576120b961454f565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f929190869081106121055761210561454f565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d858154811061215e5761215e61454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020600201805461218f90614676565b80601f01602080910402602001604051908101604052809291908181526020018280546121bb90614676565b80156122065780601f106121dd57610100808354040283529160200191612206565b820191905f5260205f20905b8154815290600101906020018083116121e957829003601f168201915b50505050508152508282815181106122205761222061454f565b602090810291909101015260010161208e565b50919050565b5f54610100900460ff161580801561225757505f54600160ff909116105b806122705750303b15801561227057505f5460ff166001145b6122e25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161082a565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561233e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166123945760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e657220616464726573730000000000000000000000604482015260640161082a565b5f86116124095760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f2030000000000000000000000000000000000000000000000000000000000000606482015260840161082a565b5f85116124585760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f63687300000000604482015260640161082a565b4284118015612471575061246f6201518085614703565b155b6124bd5760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d6500000000000000604482015260640161082a565b8161250a5760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b657273000000000000000000604482015260640161082a565b61251387613bc3565b61251b613c2c565b6099869055609a8590556098849055609b8290555f5b609b548110156126975783838281811061254d5761254d61454f565b905060200281019061255f9190614716565b609f5f8686858181106125745761257461454f565b90506020028101906125869190614716565b612594906020810190614148565b6001600160a01b0316815260208101919091526040015f206125b682826147f7565b905050609d8484838181106125cd576125cd61454f565b90506020028101906125df9190614716565b6125ed906020810190614148565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556126419082906145bc565b609e5f8686858181106126565761265661454f565b90506020028101906126689190614716565b612676906020810190614148565b6001600160a01b0316815260208101919091526040015f2055600101612531565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561276c575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612784575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561288557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612856573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061287a9190614534565b6001600160a01b0316145b6128f75760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f7765640000000000000000000000000000000000000000606482015260840161082a565b609e5f6129076020840184614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f036129b457609d61293c6020830183614148565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039390931692909217909155609d5491609e9161299a90850185614148565b6001600160a01b0316815260208101919091526040015f20555b80609f5f6129c56020840184614148565b6001600160a01b0316815260208101919091526040015f206129e782826147f7565b506129f790506020820182614148565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d6020830135612a336040850185614752565b604051612a4293929190614969565b60405180910390a260975460ff16158015612a615750609954609d5411155b1561186d5761186d6135af565b612a7661372f565b612a7f5f613bc3565b565b612a8961372f565b609854421015612b005760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d6500000000000000000000000000000000000000000000000000000000606482015260840161082a565b5f609c5411612b515760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e646964617465000000000000000000000000000000000000604482015260640161082a565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612d0e575f5b81811015612d055760a15f609d8381548110612baa57612baa61454f565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d8581548110612bfb57612bfb61454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612cfd575f609d8281548110612c3957612c3961454f565b5f91825260209091200154609d80546001600160a01b0390921692509084908110612c6657612c6661454f565b5f91825260209091200154609d80546001600160a01b039092169184908110612c9157612c9161454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d8481548110612cd057612cd061454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b600101612b8c565b50600101612b80565b505f5b609d54811015612d6857612d268160016145bc565b609e5f609d8481548110612d3c57612d3c61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055600101612d11565b50612a7f6135af565b5f609854421015612dc45760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f7420737461727465642079657400000000000000604482015260640161082a565b6201518060985442612dd691906145a9565b612de091906149bc565b905090565b6001600160a01b0381165f90815260a36020908152604080832033845290915281205415156106ce565b609f6020525f90815260409020805460018201546002830180546001600160a01b03909316939192612e4090614676565b80601f0160208091040260200160405190810160405280929190818152602001828054612e6c90614676565b8015612eb75780601f10612e8e57610100808354040283529160200191612eb7565b820191905f5260205f20905b815481529060010190602001808311612e9a57829003601f168201915b5050505050905083565b5f60605f8411612f135760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a65000000000000000000000000000000604482015260640161082a565b6001600160a01b0385165f90815260a260205260409020612f33906135a6565b91508367ffffffffffffffff811115612f4e57612f4e614649565b604051908082528060200260200182016040528015612f77578160200160208202803683370190505b5090505f612f8584866149cf565b90505f6001612f9486826145bc565b612f9e90886149cf565b612fa891906145a9565b9050612fb56001856145a9565b811115612fca57612fc76001856145a9565b90505b815b818111613030576001600160a01b0388165f90815260a260205260409020612ff49082613cb0565b8482815181106130065761300661454f565b6001600160a01b039092166020928302919091019091015280613028816149e6565b915050612fcc565b505050935093915050565b613043613789565b335f90815260a46020526040812054815b8181101561336f5760975460ff1615806130a45750613071612d71565b335f90815260a4602052604090208054839081106130915761309161454f565b905f5260205f2090600302016002015411155b1561335d57335f90815260a4602052604090208054829081106130c9576130c961454f565b905f5260205f20906003020160010154836130e491906145bc565b335f90815260a46020526040812080549295509091839081106131095761310961454f565b5f91825260208220600390910201546001600160a01b0316915060a48161312d3390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061315d5761315d61454f565b905f5260205f2090600302016002015490505f60a45f61317a3390565b6001600160a01b03166001600160a01b031681526020019081526020015f2084815481106131aa576131aa61454f565b905f5260205f2090600302016001015490506001856131c991906145a9565b84101561329957335f90815260a4602052604090206131e96001876145a9565b815481106131f9576131f961454f565b905f5260205f20906003020160a45f61320f3390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061323f5761323f61454f565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a4602052604090208054806132b6576132b66145cf565b5f8281526020812060035f199093019283020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001818101839055600290910191909155915561330c90866145a9565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a3505050613054565b6133688160016145bc565b9050613054565b505f82116133bf5760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d000000000000000000604482015260640161082a565b6133c93383613cbb565b5050612a7f6001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613460575f848152602090819020604080516060810182526003860290920180546001600160a01b031683526001808201548486015260029091015491830191909152908352909201910161340c565b505050509050919050565b61347361372f565b6001600160a01b0381166134ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161082a565b61186d81613bc3565b613500613789565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015613586575f80fd5b505af1158015613598573d5f803e3d5ffd5b50505050612a7f6001606555565b5f6106ce825490565b60995460975460ff16156135d357609954609c5410156135ce5750609c545b6135e4565b609954609d5410156135e45750609d545b5f8167ffffffffffffffff8111156135fe576135fe614649565b604051908082528060200260200182016040528015613627578160200160208202803683370190505b5090505f5b8281101561369457609d81815481106136475761364761454f565b905f5260205f20015f9054906101000a90046001600160a01b03168282815181106136745761367461454f565b6001600160a01b039092166020928302919091019091015260010161362c565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a4906136fa9084906004016149fe565b5f604051808303815f87803b158015613711575f80fd5b505af1158015613723573d5f803e3d5ffd5b50509151609b55505050565b6033546001600160a01b03163314612a7f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161082a565b6002606554036137db5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161082a565b6002606555565b6001606555565b5f6137fd836001600160a01b038416613f19565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613884576001600160a01b038481165f90815260a460205260409020805491851691839081106138545761385461454f565b5f9182526020909120600390910201546001600160a01b03160361387c5760019150506106ce565b600101613807565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613916573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061393a9190614a10565b159392505050565b5f6137fd836001600160a01b038416613ffc565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156139d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139fb9190614a2f565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613a8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ab19190614a10565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613b33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b579190614a2f565b90505f83118015613b70575082613b6e83836145a9565b145b613bbc5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161082a565b5050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613ca85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161082a565b612a7f614048565b5f6137fd83836140c4565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613d3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d609190614a2f565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015613dea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e0e9190614a10565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613eb49190614a2f565b90505f83118015613ecd575082613ecb83836145a9565b145b610d065760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161082a565b5f8181526001830160205260408120548015613ff3575f613f3b6001836145a9565b85549091505f90613f4e906001906145a9565b9050818114613fad575f865f018281548110613f6c57613f6c61454f565b905f5260205f200154905080875f018481548110613f8c57613f8c61454f565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080613fbe57613fbe6145cf565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506106ce565b5f9150506106ce565b5f81815260018301602052604081205461404157508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556106ce565b505f6106ce565b5f54610100900460ff166137e25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161082a565b5f825f0182815481106140d9576140d961454f565b905f5260205f200154905092915050565b5080546140f690614676565b5f825580601f10614105575050565b601f0160209004905f5260205f209081019061186d91905b80821115614130575f815560010161411d565b5090565b6001600160a01b038116811461186d575f80fd5b5f60208284031215614158575f80fd5b81356137fd81614134565b5f8083601f840112614173575f80fd5b50813567ffffffffffffffff81111561418a575f80fd5b6020830191508360208260051b85010111156141a4575f80fd5b9250929050565b5f80602083850312156141bc575f80fd5b823567ffffffffffffffff8111156141d2575f80fd5b6141de85828601614163565b90969095509350505050565b5f602082840312156141fa575f80fd5b5035919050565b5f8060408385031215614212575f80fd5b823561421d81614134565b946020939093013593505050565b5f81518084525f5b8181101561424f57602081850181015186830182015201614233565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015614324578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526143108186018361422b565b9689019694505050908601906001016142b3565b509098975050505050505050565b5f805f805f8060a08789031215614347575f80fd5b863561435281614134565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614382575f80fd5b61438e89828a01614163565b979a9699509497509295939492505050565b5f602082840312156143b0575f80fd5b813567ffffffffffffffff8111156143c6575f80fd5b8201606081850312156137fd575f80fd5b6001600160a01b0384168152826020820152606060408201525f6143fe606083018461422b565b95945050505050565b5f8060408385031215614418575f80fd5b823561442381614134565b9150602083013561443381614134565b809150509250929050565b5f805f60608486031215614450575f80fd5b833561445b81614134565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156144a85781516001600160a01b031687529582019590820190600101614483565b509495945050505050565b828152604060208201525f6144cb6040830184614470565b949350505050565b602080825282518282018190525f919060409081850190868401855b8281101561452757815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016144ef565b5091979650505050505050565b5f60208284031215614544575f80fd5b81516137fd81614134565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156106ce576106ce61457c565b808201808211156106ce576106ce61457c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b8681101561463e57823561462381614134565b6001600160a01b031682529183019190830190600101614610565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061468a57607f821691505b602082108103612233577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f816146cf576146cf61457c565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614711576147116146d6565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614748575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614785575f80fd5b83018035915067ffffffffffffffff82111561479f575f80fd5b6020019150368190038213156141a4575f80fd5b601f821115610bf457805f5260205f20601f840160051c810160208510156147d85750805b601f840160051c820191505b81811015613bbc575f81556001016147e4565b813561480281614134565b6001600160a01b0381167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614879575f80fd5b8501803567ffffffffffffffff811115614891575f80fd5b80360384830113156148a1575f80fd5b6148b5816148af8554614676565b856147b3565b5f601f8211600181146148e8575f83156148d157508382018601355b5f19600385901b1c1916600184901b17855561495e565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561493457868501890135825593880193908901908801614915565b5084821015614952575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b5f826149ca576149ca6146d6565b500490565b80820281158282048414176106ce576106ce61457c565b5f5f1982036149f7576149f761457c565b5060010190565b602081525f6137fd6020830184614470565b5f60208284031215614a20575f80fd5b815180151581146137fd575f80fd5b5f60208284031215614a3f575f80fd5b505191905056fea164736f6c6343000818000a +0x608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106cf578063fad99f98146106e2578063fc6facc6146106ea575f80fd5b8063e10911b11461069e578063ed70b343146106a6578063f0261bc2146106c6575f80fd5b8063cce6cf9f116100c3578063cce6cf9f14610643578063d31d83d914610656578063d557714114610677575f80fd5b8063affed0e0146105f1578063b5d2e0dc146105fa578063c64814dd14610619575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a41461059e578063927ede2d146105bd57806396ab994d146105e4575f80fd5b80638da5cb5b146105445780638e21d5fb146105555780639168ae721461057c575f80fd5b80637b05afb5116101785780637b05afb5146104db578063831cfb58146104fa57806384d7d1d414610521575f80fd5b8063746c8ae1146104cb57806376671808146104d3575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104a85780637046529b146104b0578063715018a6146104c3575f80fd5b806343352d611461047a578063439162b514610482578063459598a214610495575f80fd5b80633cb747bf1161022d5780633cb747bf146104065780633d9353fe1461044057806340b5c83714610467575f80fd5b80633b802421146103ea5780633c323a1b146103f3575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103ae57806330158eea146103b75780633385ccc2146103d7575f80fd5b8063174e31c41461037f57806319fac8fd146103925780632cc138be146103a5575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610376575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe3660046145b1565b6106fd565b6040519081526020015b60405180910390f35b6103296103243660046145cc565b610723565b005b610329610339366004614616565b610901565b61035161034c36600461462d565b610a14565b604080516001600160a01b03909416845260208401929092529082015260600161030d565b610303609a5481565b61032961038d36600461462d565b610a5c565b6103296103a0366004614616565b610bd4565b61030360985481565b61030360995481565b6103ca6103c536600461469f565b610cf6565b60405161030d919061473f565b6103296103e53660046145b1565b610f1d565b610303609c5481565b61032961040136600461462d565b611557565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161030d565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329610475366004614616565b611be6565b6103ca611cf9565b6103296104903660046147e5565b611f15565b6104286104a3366004614616565b612446565b609d54610303565b6103296104be3660046145cc565b61246e565b6103296125c8565b6103296125db565b6103036128cb565b6103036104e93660046145b1565b60a06020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61053461052f3660046145b1565b61293f565b604051901515815260200161030d565b6033546001600160a01b0316610428565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61058f61058a3660046145b1565b612969565b60405161030d93929190614853565b6103036105ac3660046145b1565b60a16020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b6097546105349060ff1681565b61030360a55481565b6103036106083660046145b1565b609e6020525f908152604090205481565b610303610627366004614883565b60a360209081525f928352604080842090915290825290205481565b6103296106513660046148af565b612a1b565b6106696106643660046148f7565b612f87565b60405161030d92919061496c565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329613101565b6106b96106b43660046145b1565b613485565b60405161030d919061498c565b610303609b5481565b6103296106dd3660046145b1565b61351b565b6103296135a8565b6103296106f83660046148af565b613656565b6001600160a01b0381165f90815260a26020526040812061071d90613a21565b92915050565b61072b613a2a565b8160a55481146107825760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b61078d836001614a1a565b60a555609e5f6107a060208501856145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f0361084257609d6107d560208401846145b1565b81546001810183555f9283526020808420909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155609d5491609e91610828908601866145b1565b6001600160a01b0316815260208101919091526040015f20555b81609f5f61085360208401846145b1565b6001600160a01b0316815260208101919091526040015f206108758282614b4a565b50610885905060208301836145b1565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208401356108c16040860186614a2d565b6040516108d093929190614cb1565b60405180910390a260975460ff161580156108ef5750609954609d5411155b156108fc576108fc613a84565b505050565b610909613a2a565b5f8111801561091a57506099548114155b61098c5760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a650000000000000000000000000000000000000000000000000000000000006064820152608401610779565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff166109e157609d546109e5565b609c545b90505f60995482106109f9576099546109fb565b815b9050609b548114610a0e57610a0e613a84565b50505050565b60a4602052815f5260405f208181548110610a2d575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610a64613c04565b6001600160a01b038216610b1a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610aff575f80fd5b505af1158015610b11573d5f803e3d5ffd5b50505050610bc6565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610baf575f80fd5b505af1158015610bc1573d5f803e3d5ffd5b505050505b610bd06001606555565b5050565b335f908152609e6020526040902054610c2f5760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f776564000000000000000000000000006044820152606401610779565b6014811115610c805760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e00000000000000000000000000006044820152606401610779565b335f90815260a06020526040812082905560975460ff16610ca1575f610cb4565b610ca96128cb565b610cb4906001614a1a565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610d1257610d12614a8e565b604051908082528060200260200182016040528015610d5e57816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610d305790505b5090505f5b83811015610f15576040518060600160405280609f5f888886818110610d8b57610d8b614d04565b9050602002016020810190610da091906145b1565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610ddd57610ddd614d04565b9050602002016020810190610df291906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f888886818110610e2f57610e2f614d04565b9050602002016020810190610e4491906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f206002018054610e7190614abb565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9d90614abb565b8015610ee85780601f10610ebf57610100808354040283529160200191610ee8565b820191905f5260205f20905b815481529060010190602001808311610ecb57829003601f168201915b5050505050815250828281518110610f0257610f02614d04565b6020908102919091010152600101610d63565b509392505050565b610f25613c04565b6001600160a01b0381165f90815260a360209081526040808320338452909152902054610f945760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f000000000000000000006044820152606401610779565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff16610fc0575f610fd3565b610fc86128cb565b610fd3906001614a1a565b6097549091505f9060ff168015610fe8575082155b610ff25781610fff565b609a54610fff9083614a1a565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c51600390920201805473ffffffffffffffffffffffffffffffffffffffff191691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936110b6908490614d31565b90915550506001600160a01b0385165f90815260a2602052604090206110dc9033613c64565b506001600160a01b0385165f908152609e602052604090205484158015611105575060975460ff165b80156111125750609c5481105b15611373576001600160a01b0386165f908152609e602052604081205461113b90600190614d31565b90505b6001609c5461114d9190614d31565b8110156113715760a15f609d838154811061116a5761116a614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d61119f856001614a1a565b815481106111af576111af614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611369575f609d82815481106111ed576111ed614d04565b5f918252602090912001546001600160a01b03169050609d611210836001614a1a565b8154811061122057611220614d04565b5f91825260209091200154609d80546001600160a01b03909216918490811061124b5761124b614d04565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905580609d61128e846001614a1a565b8154811061129e5761129e614d04565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556112de826001614a1a565b609e5f609d85815481106112f4576112f4614d04565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611323826002614a1a565b609e5f609d611333866001614a1a565b8154811061134357611343614d04565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b60010161113e565b505b8415801561139657506001600160a01b0386165f90815260a16020526040902054155b156113b3576001609c5f8282546113ad9190614d31565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611454575f80fd5b505af1158015611466573d5f803e3d5ffd5b505050506114713390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516114cc939291909283526020830191909152604082015260600190565b60405180910390a3841580156114e4575060975460ff165b80156114f25750609b548111155b80156115385750609b546001600160a01b0387165f908152609e602052604090205411806115385750609c546001600160a01b0387165f908152609e6020526040902054115b1561154557611545613a84565b50505050506115546001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906115bd5760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6572000000000000000000000000000000000000000000006044820152606401610779565b6115c5613c04565b5f82116116145760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e740000000000000000000000006044820152606401610779565b61161e3384613c7f565b1561166b5760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d6564000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a3602090815260408083203384529091529020546116e95761169c3384613d08565b156116e95760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d6564000000000000000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a1602052604081208054849290611710908490614a1a565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611747908490614a1a565b90915550506001600160a01b0383165f90815260a26020526040902061176d9033613dbd565b506001600160a01b0383165f90815260a160205260409020548290036117a5576001609c5f82825461179f9190614a1a565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff1680156117cf5750600181115b15611a15575f6117e0600183614d31565b90505b8015611a135760a15f609d6117f9600185614d31565b8154811061180957611809614d04565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d848154811061185a5761185a614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611a01575f609d611892600184614d31565b815481106118a2576118a2614d04565b5f91825260209091200154609d80546001600160a01b03909216925090839081106118cf576118cf614d04565b5f918252602090912001546001600160a01b0316609d6118f0600185614d31565b8154811061190057611900614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d838154811061193f5761193f614d04565b5f9182526020822001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0393909316929092179091558290609e90609d611986600185614d31565b8154811061199657611996614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020556119c5826001614a1a565b609e5f609d85815481106119db576119db614d04565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611a0b81614d44565b9150506117e3565b505b6097545f9060ff16611a27575f611a3a565b611a2f6128cb565b611a3a906001614a1a565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611b6e575f80fd5b505af1158015611b80573d5f803e3d5ffd5b50505050611b95611b8e3390565b3086613dd1565b60975460ff168015611ba85750609b5482115b8015611bcd57506099546001600160a01b0386165f908152609e602052604090205411155b15611bda57611bda613a84565b50506108fc6001606555565b611bee613a2a565b60975460ff1615611c415760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c72656164792073746172746564000000000000000000006044820152606401610779565b4281118015611c5a5750611c586201518082614d86565b155b8015611c6857506098548114155b611cb45760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff811115611d1957611d19614a8e565b604051908082528060200260200182016040528015611d6557816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081611d375790505b5090505f5b609d54811015611f0f576040518060600160405280609f5f609d8581548110611d9557611d95614d04565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110611de157611de1614d04565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d8581548110611e3a57611e3a614d04565b5f9182526020808320909101546001600160a01b0316835282019290925260400190206002018054611e6b90614abb565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9790614abb565b8015611ee25780601f10611eb957610100808354040283529160200191611ee2565b820191905f5260205f20905b815481529060010190602001808311611ec557829003601f168201915b5050505050815250828281518110611efc57611efc614d04565b6020908102919091010152600101611d6a565b50919050565b5f54610100900460ff1615808015611f3357505f54600160ff909116105b80611f4c5750303b158015611f4c57505f5460ff166001145b611fbe5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610779565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561201a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166120705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610779565b5f86116120e55760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f20300000000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f85116121345760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f636873000000006044820152606401610779565b428411801561214d575061214b6201518085614d86565b155b6121995760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b816121e65760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b6572730000000000000000006044820152606401610779565b6121ef87614037565b6121f7614095565b6099869055609a8590556098849055609b8290555f5b609b548110156123685783838281811061222957612229614d04565b905060200281019061223b9190614d99565b609f5f86868581811061225057612250614d04565b90506020028101906122629190614d99565b6122709060208101906145b1565b6001600160a01b0316815260208101919091526040015f206122928282614b4a565b905050609d8484838181106122a9576122a9614d04565b90506020028101906122bb9190614d99565b6122c99060208101906145b1565b8154600180820184555f938452602090932001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612312908290614a1a565b609e5f86868581811061232757612327614d04565b90506020028101906123399190614d99565b6123479060208101906145b1565b6001600160a01b0316815260208101919091526040015f205560010161220d565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561243d575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612455575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561255657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061254b9190614dd5565b6001600160a01b0316145b61072b5760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b6125d0613a2a565b6125d95f614037565b565b6125e3613a2a565b60985442101561265a5760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d65000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f609c54116126ab5760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e6469646174650000000000000000000000000000000000006044820152606401610779565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612868575f5b8181101561285f5760a15f609d838154811061270457612704614d04565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d858154811061275557612755614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612857575f609d828154811061279357612793614d04565b5f91825260209091200154609d80546001600160a01b03909216925090849081106127c0576127c0614d04565b5f91825260209091200154609d80546001600160a01b0390921691849081106127eb576127eb614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d848154811061282a5761282a614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b6001016126e6565b506001016126da565b505f5b609d548110156128c257612880816001614a1a565b609e5f609d848154811061289657612896614d04565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205560010161286b565b506125d9613a84565b5f60985442101561291e5760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f74207374617274656420796574000000000000006044820152606401610779565b62015180609854426129309190614d31565b61293a9190614df0565b905090565b6001600160a01b0381165f90815260a360209081526040808320338452909152812054151561071d565b609f6020525f90815260409020805460018201546002830180546001600160a01b0390931693919261299a90614abb565b80601f01602080910402602001604051908101604052809291908181526020018280546129c690614abb565b8015612a115780601f106129e857610100808354040283529160200191612a11565b820191905f5260205f20905b8154815290600101906020018083116129f457829003601f168201915b5050505050905083565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612b0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af89190614dd5565b6001600160a01b0316145b612b755760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b8260a5548114612bc75760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b612bd2846001614a1a565b60a5555f805b83811015612f3857609b54609e5f878785818110612bf857612bf8614d04565b9050602002016020810190612c0d91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205411612c3757600191505b5f609e5f878785818110612c4d57612c4d614d04565b9050602002016020810190612c6291906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba575f6001609e5f888886818110612ca057612ca0614d04565b9050602002016020810190612cb591906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f2054612cdf9190614d31565b90505b609d54612cf190600190614d31565b811015612dc357609d612d05826001614a1a565b81548110612d1557612d15614d04565b5f91825260209091200154609d80546001600160a01b039092169183908110612d4057612d40614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d8481548110612d8357612d83614d04565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190612db6908490614d31565b9091555050600101612ce2565b50609d805480612dd557612dd5614e03565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e90868684818110612e1a57612e1a614d04565b9050602002016020810190612e2f91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f878785818110612e6757612e67614d04565b9050602002016020810190612e7c91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba576001609c5f828254612eb49190614d31565b90915550505b609f5f868684818110612ecf57612ecf614d04565b9050602002016020810190612ee491906145b1565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590612f2e6002830182614553565b5050600101612bd8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618484604051612f6a929190614e30565b60405180910390a18015612f8057612f80613a84565b5050505050565b5f60605f8411612fd95760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a650000000000000000000000000000006044820152606401610779565b6001600160a01b0385165f90815260a260205260409020612ff990613a21565b91508367ffffffffffffffff81111561301457613014614a8e565b60405190808252806020026020018201604052801561303d578160200160208202803683370190505b5090505f61304b8486614e7d565b90505f600161305a8682614a1a565b6130649088614e7d565b61306e9190614d31565b905061307b600185614d31565b8111156130905761308d600185614d31565b90505b815b8181116130f6576001600160a01b0388165f90815260a2602052604090206130ba9082614119565b8482815181106130cc576130cc614d04565b6001600160a01b0390921660209283029190910190910152806130ee81614e94565b915050613092565b505050935093915050565b613109613c04565b335f90815260a46020526040812054815b8181101561341f5760975460ff16158061316a57506131376128cb565b335f90815260a46020526040902080548390811061315757613157614d04565b905f5260205f2090600302016002015411155b1561340d57335f90815260a46020526040902080548290811061318f5761318f614d04565b905f5260205f20906003020160010154836131aa9190614a1a565b335f90815260a46020526040812080549295509091839081106131cf576131cf614d04565b5f91825260208220600390910201546001600160a01b0316915060a4816131f33390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061322357613223614d04565b905f5260205f2090600302016002015490505f60a45f6132403390565b6001600160a01b03166001600160a01b031681526020019081526020015f20848154811061327057613270614d04565b905f5260205f20906003020160010154905060018561328f9190614d31565b84101561335457335f90815260a4602052604090206132af600187614d31565b815481106132bf576132bf614d04565b905f5260205f20906003020160a45f6132d53390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061330557613305614d04565b5f91825260209091208254600390920201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a46020526040902080548061337157613371614e03565b5f8281526020812060035f1990930192830201805473ffffffffffffffffffffffffffffffffffffffff19168155600181810183905560029091019190915591556133bc9086614d31565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a350505061311a565b613418816001614a1a565b905061311a565b505f821161346f5760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d0000000000000000006044820152606401610779565b6134793383614124565b50506125d96001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613510575f848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016134bc565b505050509050919050565b613523613a2a565b6001600160a01b03811661359f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610779565b61155481614037565b6135b0613c04565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015613636575f80fd5b505af1158015613648573d5f803e3d5ffd5b505050506125d96001606555565b61365e613a2a565b8260a55481146136b05760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b6136bb846001614a1a565b60a5555f805b83811015612f3857609b54609e5f8787858181106136e1576136e1614d04565b90506020020160208101906136f691906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161372057600191505b5f609e5f87878581811061373657613736614d04565b905060200201602081019061374b91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139a3575f6001609e5f88888681811061378957613789614d04565b905060200201602081019061379e91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20546137c89190614d31565b90505b609d546137da90600190614d31565b8110156138ac57609d6137ee826001614a1a565b815481106137fe576137fe614d04565b5f91825260209091200154609d80546001600160a01b03909216918390811061382957613829614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d848154811061386c5761386c614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040018120805490919061389f908490614d31565b90915550506001016137cb565b50609d8054806138be576138be614e03565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e9086868481811061390357613903614d04565b905060200201602081019061391891906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f87878581811061395057613950614d04565b905060200201602081019061396591906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139a3576001609c5f82825461399d9190614d31565b90915550505b609f5f8686848181106139b8576139b8614d04565b90506020020160208101906139cd91906145b1565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590613a176002830182614553565b50506001016136c1565b5f61071d825490565b6033546001600160a01b031633146125d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610779565b60995460975460ff1615613aa857609954609c541015613aa35750609c545b613ab9565b609954609d541015613ab95750609d545b5f8167ffffffffffffffff811115613ad357613ad3614a8e565b604051908082528060200260200182016040528015613afc578160200160208202803683370190505b5090505f5b82811015613b6957609d8181548110613b1c57613b1c614d04565b905f5260205f20015f9054906101000a90046001600160a01b0316828281518110613b4957613b49614d04565b6001600160a01b0390921660209283029190910190910152600101613b01565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490613bcf908490600401614eac565b5f604051808303815f87803b158015613be6575f80fd5b505af1158015613bf8573d5f803e3d5ffd5b50509151609b55505050565b600260655403613c565760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610779565b6002606555565b6001606555565b5f613c78836001600160a01b038416614382565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613cff576001600160a01b038481165f90815260a46020526040902080549185169183908110613ccf57613ccf614d04565b5f9182526020909120600390910201546001600160a01b031603613cf757600191505061071d565b600101613c82565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613db59190614ebe565b159392505050565b5f613c78836001600160a01b038416614465565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e769190614edd565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613f08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f2c9190614ebe565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613fae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fd29190614edd565b90505f83118015613feb575082613fe98383614d31565b145b612f805760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166141115760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b6125d96144b1565b5f613c78838361452d565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156141a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141c99190614edd565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614253573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142779190614ebe565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156142f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061431d9190614edd565b90505f831180156143365750826143348383614d31565b145b610a0e5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b5f818152600183016020526040812054801561445c575f6143a4600183614d31565b85549091505f906143b790600190614d31565b9050818114614416575f865f0182815481106143d5576143d5614d04565b905f5260205f200154905080875f0184815481106143f5576143f5614d04565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061442757614427614e03565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061071d565b5f91505061071d565b5f8181526001830160205260408120546144aa57508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561071d565b505f61071d565b5f54610100900460ff16613c5d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b5f825f01828154811061454257614542614d04565b905f5260205f200154905092915050565b50805461455f90614abb565b5f825580601f1061456e575050565b601f0160209004905f5260205f209081019061155491905b80821115614599575f8155600101614586565b5090565b6001600160a01b0381168114611554575f80fd5b5f602082840312156145c1575f80fd5b8135613c788161459d565b5f80604083850312156145dd575f80fd5b82359150602083013567ffffffffffffffff8111156145fa575f80fd5b83016060818603121561460b575f80fd5b809150509250929050565b5f60208284031215614626575f80fd5b5035919050565b5f806040838503121561463e575f80fd5b82356146498161459d565b946020939093013593505050565b5f8083601f840112614667575f80fd5b50813567ffffffffffffffff81111561467e575f80fd5b6020830191508360208260051b8501011115614698575f80fd5b9250929050565b5f80602083850312156146b0575f80fd5b823567ffffffffffffffff8111156146c6575f80fd5b6146d285828601614657565b90969095509350505050565b5f81518084525f5b81811015614702576020818501810151868301820152016146e6565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156147d7578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526147c3818601836146de565b968901969450505090860190600101614766565b509098975050505050505050565b5f805f805f8060a087890312156147fa575f80fd5b86356148058161459d565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614835575f80fd5b61484189828a01614657565b979a9699509497509295939492505050565b6001600160a01b0384168152826020820152606060408201525f61487a60608301846146de565b95945050505050565b5f8060408385031215614894575f80fd5b823561489f8161459d565b9150602083013561460b8161459d565b5f805f604084860312156148c1575f80fd5b83359250602084013567ffffffffffffffff8111156148de575f80fd5b6148ea86828701614657565b9497909650939450505050565b5f805f60608486031215614909575f80fd5b83356149148161459d565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156149615781516001600160a01b03168752958201959082019060010161493c565b509495945050505050565b828152604060208201525f6149846040830184614929565b949350505050565b602080825282518282018190525f919060409081850190868401855b828110156149e057815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016149a8565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561071d5761071d6149ed565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a60575f80fd5b83018035915067ffffffffffffffff821115614a7a575f80fd5b602001915036819003821315614698575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680614acf57607f821691505b602082108103611f0f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156108fc57805f5260205f20601f840160051c81016020851015614b2b5750805b601f840160051c820191505b81811015612f80575f8155600101614b37565b8135614b558161459d565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614bc1575f80fd5b8501803567ffffffffffffffff811115614bd9575f80fd5b8036038483011315614be9575f80fd5b614bfd81614bf78554614abb565b85614b06565b5f601f821160018114614c30575f8315614c1957508382018601355b5f19600385901b1c1916600184901b178555614ca6565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614c7c57868501890135825593880193908901908801614c5d565b5084821015614c9a575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8181038181111561071d5761071d6149ed565b5f81614d5257614d526149ed565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614d9457614d94614d59565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614dcb575f80fd5b9190910192915050565b5f60208284031215614de5575f80fd5b8151613c788161459d565b5f82614dfe57614dfe614d59565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015614e72578235614e578161459d565b6001600160a01b031682529183019190830190600101614e44565b509695505050505050565b808202811582820484141761071d5761071d6149ed565b5f5f198203614ea557614ea56149ed565b5060010190565b602081525f613c786020830184614929565b5f60208284031215614ece575f80fd5b81518015158114613c78575f80fd5b5f60208284031215614eed575f80fd5b505191905056fea164736f6c6343000818000a diff --git a/bindings/bindings/l1staking.go b/bindings/bindings/l1staking.go index 6ef653abe..1abde6ad9 100644 --- a/bindings/bindings/l1staking.go +++ b/bindings/bindings/l1staking.go @@ -31,8 +31,8 @@ var ( // L1StakingMetaData contains all meta data concerning the L1Staking contract. var L1StakingMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_messenger\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldChallengeDeposit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newChallengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeDepositUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newGasLimit\",\"type\":\"uint256\"}],\"name\":\"GasLimitAddStakerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newGasLimit\",\"type\":\"uint256\"}],\"name\":\"GasLimitRemoveStakersUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercentage\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercentage\",\"type\":\"uint256\"}],\"name\":\"RewardPercentageUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SlashRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"stakers\",\"type\":\"address[]\"}],\"name\":\"Slashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"stakers\",\"type\":\"address[]\"}],\"name\":\"StakersRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldStakingValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newStakingValue\",\"type\":\"uint256\"}],\"name\":\"StakingValueUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"add\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"WhitelistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockHeight\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contractICrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_STAKING\",\"outputs\":[{\"internalType\":\"contractStaking\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"blsPubkey\",\"type\":\"bytes\"}],\"name\":\"blsKeys\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengeDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimSlashRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cleanStakerStore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deleteList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"deleteableHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasLimitAddStaker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasLimitRemoveStakers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveStakers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_staker\",\"type\":\"address\"}],\"name\":\"getStakerBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakers\",\"outputs\":[{\"internalType\":\"address[255]\",\"name\":\"\",\"type\":\"address[255]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_stakers\",\"type\":\"address[]\"}],\"name\":\"getStakersBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"name\":\"getStakersFromBitmap\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"stakerAddrs\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_rollupContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_stakingValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rewardPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimitAdd\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimitRemove\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isActiveStaker\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isStaker\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isStakerInDeleteList\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_stakers\",\"type\":\"address[]\"}],\"name\":\"removeStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"removedList\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardPercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequencersBitmap\",\"type\":\"uint256\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"stakerIndexes\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakerSet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"stakers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakingValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"tmPubkey\",\"type\":\"bytes32\"}],\"name\":\"tmKeys\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"updateChallengeDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasLimitAdd\",\"type\":\"uint256\"}],\"name\":\"updateGasLimitAddStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasLimitRemove\",\"type\":\"uint256\"}],\"name\":\"updateGasLimitRemoveStakers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardPercentage\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_stakingValue\",\"type\":\"uint256\"}],\"name\":\"updateStakingValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"add\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"updateWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"verifySignature\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"inWhitelist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawalLockBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60c060405234801562000010575f80fd5b5060405162003e1d38038062003e1d833981016040819052620000339162000127565b6001600160a01b03811660805273530000000000000000000000000000000000001560a0526200006262000069565b5062000156565b5f54610100900460ff1615620000d55760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161462000125575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000138575f80fd5b81516001600160a01b03811681146200014f575f80fd5b9392505050565b60805160a051613c826200019b5f395f8181610664015281816129530152612bc701525f818161043c01528181610701015281816129240152612b980152613c825ff3fe6080604052600436106102f8575f3560e01c80637a9262a211610191578063ab8c53dc116100dc578063d51c90a911610087578063e2a6ad5f11610062578063e2a6ad5f1461090c578063f2fde38b1461092b578063f4fe7fef1461094a575f80fd5b8063d51c90a91461087f578063dd4785f514610894578063df155033146108d5575f80fd5b8063c7cd469a116100b7578063c7cd469a14610822578063cde4cd1114610841578063d096c3c614610860575f80fd5b8063ab8c53dc146107cf578063ae81de53146107e4578063bfa02ba914610803575f80fd5b8063927ede2d1161013c5780639fb82db9116101175780639fb82db91461077d578063a3066aab14610791578063a4f209b0146107b0575f80fd5b8063927ede2d146106f05780639b19251a146107235780639d48f41714610751575f80fd5b80638a565ac31161016c5780638a565ac3146106865780638da5cb5b146106a55780639168ae72146106c2575f80fd5b80637a9262a2146106085780638142951a14610634578063831cfb5814610653575f80fd5b806341de239b11610251578063692c565b116101fc57806374fe27b7116101d757806374fe27b714610588578063797adbde146105ae5780637a4e87c3146105cd575f80fd5b8063692c565b146105265780636f1e853314610555578063715018a614610574575f80fd5b80634d64903a1161022c5780634d64903a146104dd57806352d472eb146104f25780636801579114610507575f80fd5b806341de239b1461048857806343352d611461049d57806345bc4d10146104be575f80fd5b8063320ff860116102b15780633cb747bf1161028c5780633cb747bf1461042e5780633ccfd60b146104605780633ee2a1f914610474575f80fd5b8063320ff860146103b257806335928991146103d15780633a9bbede146103f0575f80fd5b80632a28e5a3116102e15780632a28e5a31461033a5780632e407a6f1461034f578063303afb9e1461037b575f80fd5b80630d13fd7b146102fc5780632108db3514610325575b5f80fd5b348015610307575f80fd5b506103126101a65481565b6040519081526020015b60405180910390f35b348015610330575f80fd5b50610312609c5481565b61034d610348366004613407565b610969565b005b34801561035a575f80fd5b50610312610369366004613461565b6101a16020525f908152604090205481565b348015610386575f80fd5b5061039a610395366004613481565b610d64565b6040516001600160a01b03909116815260200161031c565b3480156103bd575f80fd5b5061034d6103cc366004613498565b610d83565b3480156103dc575f80fd5b5061034d6103eb366004613481565b61109e565b3480156103fb575f80fd5b5061041e61040a366004613461565b609f6020525f908152604090205460ff1681565b604051901515815260200161031c565b348015610439575f80fd5b507f000000000000000000000000000000000000000000000000000000000000000061039a565b34801561046b575f80fd5b5061034d61114b565b34801561047f575f80fd5b5061034d611317565b348015610493575f80fd5b5061031260995481565b3480156104a8575f80fd5b506104b1611329565b60405161031c9190613540565b3480156104c9575f80fd5b506103126104d8366004613481565b61136f565b3480156104e8575f80fd5b5061031260985481565b3480156104fd575f80fd5b50610312609a5481565b348015610512575f80fd5b5061041e610521366004613461565b611675565b348015610531575f80fd5b5061041e610540366004613481565b6101a46020525f908152604090205460ff1681565b348015610560575f80fd5b5061041e61056f366004613461565b611710565b34801561057f575f80fd5b5061034d611789565b348015610593575f80fd5b5061041e6105a23660046135c2565b60019695505050505050565b3480156105b9575f80fd5b5061039a6105c8366004613481565b61179a565b3480156105d8575f80fd5b5061041e6105e7366004613668565b80516020818301810180516101a38252928201919093012091525460ff1681565b348015610613575f80fd5b50610312610622366004613461565b6101a56020525f908152604090205481565b34801561063f575f80fd5b5061034d61064e3660046136a2565b6117c3565b34801561065e575f80fd5b5061039a7f000000000000000000000000000000000000000000000000000000000000000081565b348015610691575f80fd5b5061034d6106a0366004613481565b611c85565b3480156106b0575f80fd5b506033546001600160a01b031661039a565b3480156106cd575f80fd5b506106e16106dc366004613461565b611d28565b60405161031c9392919061373d565b3480156106fb575f80fd5b5061039a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561072e575f80fd5b5061041e61073d366004613461565b609e6020525f908152604090205460ff1681565b34801561075c575f80fd5b5061077061076b366004613481565b611ddb565b60405161031c919061376d565b348015610788575f80fd5b50610770611ef8565b34801561079c575f80fd5b5061034d6107ab366004613461565b6120a6565b3480156107bb575f80fd5b5061034d6107ca366004613481565b6121d6565b3480156107da575f80fd5b50610312609d5481565b3480156107ef575f80fd5b5061034d6107fe366004613481565b612286565b34801561080e575f80fd5b5060975461039a906001600160a01b031681565b34801561082d575f80fd5b5061034d61083c3660046137b9565b612329565b34801561084c575f80fd5b5061034d61085b366004613461565b6124ca565b34801561086b575f80fd5b5061031261087a366004613461565b612538565b34801561088a575f80fd5b50610312609b5481565b34801561089f575f80fd5b506108c36108ae366004613461565b61019f6020525f908152604090205460ff1681565b60405160ff909116815260200161031c565b3480156108e0575f80fd5b5061041e6108ef366004613461565b6001600160a01b03165f9081526101a16020526040902054151590565b348015610917575f80fd5b50610312610926366004613820565b6125b2565b348015610936575f80fd5b5061034d610945366004613461565b6126e4565b348015610955575f80fd5b5061034d610964366004613481565b612771565b335f818152609e602052604090205460ff166109cc5760405162461bcd60e51b815260206004820152601060248201527f6e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064015b60405180910390fd5b335f9081526101a260205260409020546001600160a01b031615610a325760405162461bcd60e51b815260206004820152601260248201527f616c72656164792072656769737465726564000000000000000000000000000060448201526064016109c3565b8215801590610a5057505f8381526101a4602052604090205460ff16155b610a9c5760405162461bcd60e51b815260206004820152601960248201527f696e76616c69642074656e6465726d696e74207075626b65790000000000000060448201526064016109c3565b8151610100148015610acf57506101a382604051610aba919061385f565b9081526040519081900360200190205460ff16155b610b1b5760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420626c73207075626b6579000000000000000000000000000060448201526064016109c3565b6098543414610b6c5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109c3565b6040518060600160405280610b7e3390565b6001600160a01b03908116825260208083018790526040928301869052335f9081526101a28252839020845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558301516001820155908201516002820190610bf1908261390f565b50905050610c04610bff3390565b612814565b60016101a383604051610c17919061385f565b90815260408051918290036020908101909220805493151560ff199485161790555f8681526101a49092529020805490911660011790557fb9c7babb56df9f2da4a30811a6c778e4e68af88b72712d56cf62c5516e20e199610c763390565b8484604051610c879392919061373d565b60405180910390a1335f9081526101a26020908152604091829020825160608101845281546001600160a01b03168152600182015492810192909252600281018054610d5f9484019190610cda9061387a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d069061387a565b8015610d515780601f10610d2857610100808354040283529160200191610d51565b820191905f5260205f20905b815481529060010190602001808311610d3457829003601f168201915b505050505081525050612922565b505050565b60a08160ff8110610d73575f80fd5b01546001600160a01b0316905081565b610d8b612a4a565b5f5b815181101561105a57610db8828281518110610dab57610dab613a0d565b6020026020010151611675565b610e2a5760405162461bcd60e51b815260206004820152602160248201527f6f6e6c7920616374697665207374616b65722063616e2062652072656d6f766560448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016109c3565b6101a55f838381518110610e4057610e40613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20545f14610eb65760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109c3565b609954610ec39043613a67565b6101a55f848481518110610ed957610ed9613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550610f26828281518110610f1957610f19613a0d565b6020026020010151612aa4565b818181518110610f3857610f38613a0d565b60200260200101516001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d56101a55f858581518110610f8057610f80613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054604051610fb791815260200190565b60405180910390a2609e5f838381518110610fd457610fd4613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f84848151811061102157611021613a0d565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610d8d565b507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848160405161108a919061376d565b60405180910390a161109b81612b96565b50565b6110a6612a4a565b5f811180156110b857506101a6548114155b6111045760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109c3565b6101a680549082905560408051828152602081018490527f36f971a40478225aeb80cfbf5e80306e8cb76d3bf7d56fdc5e490945cddb7d5591015b60405180910390a15050565b61115433611675565b6111a05760405162461bcd60e51b815260206004820152601260248201527f6f6e6c7920616374697665207374616b6572000000000000000000000000000060448201526064016109c3565b335f9081526101a56020526040902054156111fd5760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109c3565b60995461120a9043613a67565b335f8181526101a5602052604090209190915561122690612aa4565b335f8181526101a560209081526040918290205491519182527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a2335f908152609e60209081526040808320805460ff19908116909155609f83528184208054909116600190811790915581518181528083019092529091828101908036833701905050905033815f815181106112c8576112c8613a0d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848160405161108a919061376d565b61131f612a4a565b611327612c8e565b565b6113316132d4565b60408051611fe08101918290529060a09060ff9082845b81546001600160a01b03168152600190910190602001808311611348575050505050905090565b6097545f906001600160a01b0316336001600160a01b0316146113d45760405162461bcd60e51b815260206004820152601460248201527f6f6e6c7920726f6c6c757020636f6e747261637400000000000000000000000060448201526064016109c3565b6113dc612f59565b5f6113e683611ddb565b90505f805b8251811015611598575f6101a55f85848151811061140b5761140b613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054111561148e576101a55f84838151811061144f5761144f613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f9055609854826114879190613a67565b9150611590565b6114c88382815181106114a3576114a3613a0d565b60200260200101516001600160a01b03165f9081526101a16020526040902054151590565b611590576098546114d99083613a67565b91506114f0838281518110610f1957610f19613a0d565b609e5f84838151811061150557611505613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f85848151811061155257611552613a0d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b6001016113eb565b505f6064609a54836115aa9190613a7a565b6115b49190613a91565b90506115c08183613ac9565b609d5f8282546115d09190613a67565b90915550506097546115eb906001600160a01b031682612fb2565b7f654f4a61849f1b3ad10abb283d27f02d5fece7b820acc5a3b874713b58748b5a8360405161161a919061376d565b60405180910390a17f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c8483604051611651919061376d565b60405180910390a161166283612b96565b925050506116706001606555565b919050565b6001600160a01b0381165f90815261019f602052604081205460ff16810361169e57505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906116c99060019060ff16613adc565b60ff1660ff81106116dc576116dc613a0d565b01546001600160a01b031614801561170a57506001600160a01b0382165f9081526101a16020526040902054155b92915050565b6001600160a01b0381165f90815261019f602052604081205460ff16810361173957505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906117649060019060ff16613adc565b60ff1660ff811061177757611777613a0d565b01546001600160a01b03161492915050565b611791612a4a565b6113275f613062565b6101a081815481106117aa575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f54610100900460ff16158080156117e157505f54600160ff909116105b806117fa5750303b1580156117fa57505f5460ff166001145b61186c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109c3565b5f805460ff1916600117905580156118aa575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0388166119005760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420726f6c6c757020636f6e747261637400000000000000000060448201526064016109c3565b5f871161194f5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109c3565b5f861161199e5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109c3565b5f85116119ed5760405162461bcd60e51b815260206004820152601e60248201527f696e76616c6964207769746864726177616c206c6f636b20626c6f636b73000060448201526064016109c3565b5f8311611a3c5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420676173206c696d697420616464207374616b65720000000060448201526064016109c3565b5f8211611a8b5760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420676173206c696d69742072656d6f7665207374616b65727360448201526064016109c3565b5f84118015611a9b575060648411155b611b0c5760405162461bcd60e51b8152602060048201526024808201527f696e76616c6964206368616c6c656e676572207265776172642070657263656e60448201527f746167650000000000000000000000000000000000000000000000000000000060648201526084016109c3565b611b146130cb565b611b1c61314f565b609780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a16179055609a84905560988790556101a68690556099859055609b839055609c829055604080515f8152602081018590527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910160405180910390a1604080515f8152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910160405180910390a1604080515f8152602081018690527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910160405180910390a18015611c7b575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b611c8d612a4a565b5f81118015611c9e5750609c548114155b611cea5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109c3565b609c80549082905560408051828152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910161113f565b6101a26020525f90815260409020805460018201546002830180546001600160a01b03909316939192611d5a9061387a565b80601f0160208091040260200160405190810160405280929190818152602001828054611d869061387a565b8015611dd15780601f10611da857610100808354040283529160200191611dd1565b820191905f5260205f20905b815481529060010190602001808311611db457829003601f168201915b5050505050905083565b6060600182901c5f5b8115611e0b57611df5816001613a67565b9050611e02600183613ac9565b82169150611de4565b8067ffffffffffffffff811115611e2457611e2461333d565b604051908082528060200260200182016040528015611e4d578160200160208202803683370190505b5092505f60015b60ff8160ff1611611eef57600160ff82161b861615611edd5760a0611e7a600183613adc565b60ff1660ff8110611e8d57611e8d613a0d565b015485516001600160a01b0390911690869084908110611eaf57611eaf613a0d565b6001600160a01b0390921660209283029190910190910152611ed2826001613a67565b915082821015611eef575b80611ee781613af5565b915050611e54565b50505050919050565b6040805160ff80825261200082019092526060915f91829160208201611fe0803683370190505090505f5b60ff811015611fc7575f60a08260ff8110611f4057611f40613a0d565b01546001600160a01b031614801590611f8857506101a15f60a08360ff8110611f6b57611f6b613a0d565b01546001600160a01b0316815260208101919091526040015f2054155b15611fbf5782611f9781613b13565b9350506001828281518110611fae57611fae613a0d565b911515602092830291909101909101525b600101611f23565b505f8267ffffffffffffffff811115611fe257611fe261333d565b60405190808252806020026020018201604052801561200b578160200160208202803683370190505b5090505f805b60ff81101561209c5783818151811061202c5761202c613a0d565b6020026020010151156120945760a08160ff811061204c5761204c613a0d565b015483516001600160a01b039091169084908490811061206e5761206e613a0d565b6001600160a01b03909216602092830291909101909101528161209081613b13565b9250505b600101612011565b5090949350505050565b6120ae612f59565b335f9081526101a5602052604090205461210a5760405162461bcd60e51b815260206004820152601460248201527f7769746864726177616c206e6f7420657869737400000000000000000000000060448201526064016109c3565b335f9081526101a560205260409020544310156121695760405162461bcd60e51b815260206004820152601160248201527f7769746864726177616c206c6f636b656400000000000000000000000000000060448201526064016109c3565b335f9081526101a56020526040812055612181612c8e565b604080516001600160a01b0383168152905133917f89309c9b2aeaffbdce717113df9427298b20448c05919bf889e05f8c3094254b919081900360200190a26121cc81609854612fb2565b61109b6001606555565b6121de612a4a565b5f811180156121ee575060648111155b80156121fc5750609a548114155b6122485760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642070657263656e746167650000000000000060448201526064016109c3565b609a80549082905560408051828152602081018490527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910161113f565b61228e612a4a565b5f8111801561229f5750609b548114155b6122eb5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109c3565b609b80549082905560408051828152602081018490527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910161113f565b612331612a4a565b5f5b8381101561242957609f5f86868481811061235057612350613a0d565b90506020020160208101906123659190613461565b6001600160a01b0316815260208101919091526040015f205460ff16156123ce5760405162461bcd60e51b815260206004820152600f60248201527f696e2072656d6f766564206c697374000000000000000000000000000000000060448201526064016109c3565b6001609e5f8787858181106123e5576123e5613a0d565b90506020020160208101906123fa9190613461565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101612333565b505f5b8181101561248657609e5f84848481811061244957612449613a0d565b905060200201602081019061245e9190613461565b6001600160a01b0316815260208101919091526040015f20805460ff1916905560010161242c565b507fe375867e538b40218c1b3db2ccceaf875eb073e38b510449e6088c1539ac8622848484846040516124bc9493929190613b8f565b60405180910390a150505050565b6124d2612a4a565b6124da612f59565b609d546124e78282612fb2565b5f609d55604080516001600160a01b0384168152602081018390527fa1fefb6c5328a92a416e321ed50997303fe7135fd88c28b0592b21ce42b5cdd9910160405180910390a15061109b6001606555565b5f61254282611710565b61258e5760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109c3565b506001600160a01b03165f90815261019f6020526040902054600160ff9091161b90565b5f60ff8211156126045760405162461bcd60e51b815260206004820152601c60248201527f7374616b657273206c656e677468206f7574206f6620626f756e64730000000060448201526064016109c3565b5f5b828110156126dd5761263884848381811061262357612623613a0d565b905060200201602081019061056f9190613461565b6126845760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109c3565b61019f5f85858481811061269a5761269a613a0d565b90506020020160208101906126af9190613461565b6001600160a01b0316815260208101919091526040015f2054600160ff90911681901b929092179101612606565b5092915050565b6126ec612a4a565b6001600160a01b0381166127685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109c3565b61109b81613062565b612779612a4a565b5f8111801561278a57506098548114155b6127d65760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109c3565b609880549082905560408051828152602081018490527f91e3ed304d49776a78bbe0df6bf7156f5433763621e5e728a3c2adfe7de74368910161113f565b5f5b60ff8160ff1610156128d9575f60a060ff80841690811061283957612839613a0d565b01546001600160a01b0316036128d1578160a08260ff1660ff811061286057612860613a0d565b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556128a2816001613bc0565b6001600160a01b03929092165f90815261019f60205260409020805460ff191660ff9093169290921790915550565b600101612816565b5060405162461bcd60e51b815260206004820152600960248201527f736c6f742066756c6c000000000000000000000000000000000000000000000060448201526064016109c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f846040516024016129849190613bd9565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6d454d5100000000000000000000000000000000000000000000000000000000179052609b5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a1a9493929190600401613c10565b5f604051808303815f87803b158015612a31575f80fd5b505af1158015612a43573d5f803e3d5ffd5b5050505050565b6033546001600160a01b031633146113275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109c3565b6001600160a01b0381165f9081526101a1602052604090205415612b0a5760405162461bcd60e51b815260206004820152601560248201527f616c726561647920696e2064656c6574654c697374000000000000000000000060448201526064016109c3565b6101a080546001810182555f919091527f7980fe0f714a613298681d64b7b8ffa7b148338dd52429f307d72798d5c317c40180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316179055609954612b7a9043613a67565b6001600160a01b039091165f9081526101a16020526040902055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f84604051602401612bf8919061376d565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0be67fcc00000000000000000000000000000000000000000000000000000000179052609c5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a1a9493929190600401613c10565b5f5b6101a05481101561109b57436101a15f6101a08481548110612cb457612cb4613a0d565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411612f475760a0600161019f5f6101a08581548110612cf957612cf9613a0d565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054612d2a919060ff16613adc565b60ff1660ff8110612d3d57612d3d613a0d565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556101a0805461019f915f9184908110612d7f57612d7f613a0d565b5f9182526020808320909101546001600160a01b031683528201929092526040018120805460ff191690556101a080546101a292919084908110612dc557612dc5613a0d565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590612e2360028301826132f3565b50506101a15f6101a08381548110612e3d57612e3d613a0d565b5f9182526020808320909101546001600160a01b031683528201929092526040018120556101a08054612e7290600190613ac9565b81548110612e8257612e82613a0d565b5f918252602090912001546101a080546001600160a01b039092169183908110612eae57612eae613a0d565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506101a0805480612eeb57612eeb613c48565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055612c90565b80612f5181613b13565b915050612c90565b600260655403612fab5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109c3565b6002606555565b8015613057575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613001576040519150601f19603f3d011682016040523d82523d5f602084013e613006565b606091505b5050905080610d5f5760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c6564000000000060448201526064016109c3565b5050565b6001606555565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166131475760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c3565b6113276131d3565b5f54610100900460ff166131cb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c3565b611327613258565b5f54610100900460ff1661324f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c3565b61132733613062565b5f54610100900460ff1661305b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c3565b60405180611fe0016040528060ff906020820280368337509192915050565b5080546132ff9061387a565b5f825580601f1061330e575050565b601f0160209004905f5260205f209081019061109b91905b80821115613339575f8155600101613326565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156133935761339361333d565b604052919050565b5f82601f8301126133aa575f80fd5b813567ffffffffffffffff8111156133c4576133c461333d565b6133d76020601f19601f8401160161336a565b8181528460208386010111156133eb575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613418575f80fd5b82359150602083013567ffffffffffffffff811115613435575f80fd5b6134418582860161339b565b9150509250929050565b80356001600160a01b0381168114611670575f80fd5b5f60208284031215613471575f80fd5b61347a8261344b565b9392505050565b5f60208284031215613491575f80fd5b5035919050565b5f60208083850312156134a9575f80fd5b823567ffffffffffffffff808211156134c0575f80fd5b818501915085601f8301126134d3575f80fd5b8135818111156134e5576134e561333d565b8060051b91506134f684830161336a565b818152918301840191848101908884111561350f575f80fd5b938501935b83851015613534576135258561344b565b82529385019390850190613514565b98975050505050505050565b611fe0810181835f5b60ff8110156135715781516001600160a01b0316835260209283019290910190600101613549565b50505092915050565b5f8083601f84011261358a575f80fd5b50813567ffffffffffffffff8111156135a1575f80fd5b6020830191508360208260051b85010111156135bb575f80fd5b9250929050565b5f805f805f80608087890312156135d7575f80fd5b86359550602087013567ffffffffffffffff808211156135f5575f80fd5b6136018a838b0161357a565b9097509550604089013594506060890135915080821115613620575f80fd5b818901915089601f830112613633575f80fd5b813581811115613641575f80fd5b8a6020828501011115613652575f80fd5b6020830194508093505050509295509295509295565b5f60208284031215613678575f80fd5b813567ffffffffffffffff81111561368e575f80fd5b61369a8482850161339b565b949350505050565b5f805f805f805f60e0888a0312156136b8575f80fd5b6136c18861344b565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f5b8381101561370a5781810151838201526020016136f2565b50505f910152565b5f81518084526137298160208601602086016136f0565b601f01601f19169290920160200192915050565b6001600160a01b0384168152826020820152606060408201525f6137646060830184613712565b95945050505050565b602080825282518282018190525f9190848201906040850190845b818110156137ad5783516001600160a01b031683529284019291840191600101613788565b50909695505050505050565b5f805f80604085870312156137cc575f80fd5b843567ffffffffffffffff808211156137e3575f80fd5b6137ef8883890161357a565b90965094506020870135915080821115613807575f80fd5b506138148782880161357a565b95989497509550505050565b5f8060208385031215613831575f80fd5b823567ffffffffffffffff811115613847575f80fd5b6138538582860161357a565b90969095509350505050565b5f82516138708184602087016136f0565b9190910192915050565b600181811c9082168061388e57607f821691505b6020821081036138c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610d5f57805f5260205f20601f840160051c810160208510156138f05750805b601f840160051c820191505b81811015612a43575f81556001016138fc565b815167ffffffffffffffff8111156139295761392961333d565b61393d81613937845461387a565b846138cb565b602080601f83116001811461398f575f84156139595750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613a05565b5f85815260208120601f198616915b828110156139bd5788860151825594840194600190910190840161399e565b50858210156139f957878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561170a5761170a613a3a565b808202811582820484141761170a5761170a613a3a565b5f82613ac4577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8181038181111561170a5761170a613a3a565b60ff828116828216039081111561170a5761170a613a3a565b5f60ff821660ff8103613b0a57613b0a613a3a565b60010192915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b4357613b43613a3a565b5060010190565b8183525f60208085019450825f5b85811015613b84576001600160a01b03613b718361344b565b1687529582019590820190600101613b58565b509495945050505050565b604081525f613ba2604083018688613b4a565b8281036020840152613bb5818587613b4a565b979650505050505050565b60ff818116838216019081111561170a5761170a613a3a565b602081526001600160a01b038251166020820152602082015160408201525f604083015160608084015261369a6080840182613712565b6001600160a01b0385168152836020820152608060408201525f613c376080830185613712565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_messenger\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldChallengeDeposit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newChallengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeDepositUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newGasLimit\",\"type\":\"uint256\"}],\"name\":\"GasLimitAddStakerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newGasLimit\",\"type\":\"uint256\"}],\"name\":\"GasLimitRemoveStakersUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercentage\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercentage\",\"type\":\"uint256\"}],\"name\":\"RewardPercentageUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SlashRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"stakers\",\"type\":\"address[]\"}],\"name\":\"Slashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"stakers\",\"type\":\"address[]\"}],\"name\":\"StakersRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldStakingValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newStakingValue\",\"type\":\"uint256\"}],\"name\":\"StakingValueUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"add\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"WhitelistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockHeight\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contractICrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_STAKING\",\"outputs\":[{\"internalType\":\"contractStaking\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"blsPubkey\",\"type\":\"bytes\"}],\"name\":\"blsKeys\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengeDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimSlashRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cleanStakerStore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deleteList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"deleteableHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasLimitAddStaker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasLimitRemoveStakers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveStakers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_staker\",\"type\":\"address\"}],\"name\":\"getStakerBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakers\",\"outputs\":[{\"internalType\":\"address[255]\",\"name\":\"\",\"type\":\"address[255]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_stakers\",\"type\":\"address[]\"}],\"name\":\"getStakersBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"name\":\"getStakersFromBitmap\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"stakerAddrs\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_rollupContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_stakingValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rewardPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimitAdd\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimitRemove\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isActiveStaker\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isStaker\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isStakerInDeleteList\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_stakers\",\"type\":\"address[]\"}],\"name\":\"removeStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"removedList\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardPercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequencersBitmap\",\"type\":\"uint256\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"stakerIndexes\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakerSet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"stakers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakingValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"tmPubkey\",\"type\":\"bytes32\"}],\"name\":\"tmKeys\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"updateChallengeDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasLimitAdd\",\"type\":\"uint256\"}],\"name\":\"updateGasLimitAddStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasLimitRemove\",\"type\":\"uint256\"}],\"name\":\"updateGasLimitRemoveStakers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardPercentage\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_stakingValue\",\"type\":\"uint256\"}],\"name\":\"updateStakingValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"add\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"updateWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"verifySignature\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"inWhitelist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawalLockBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x60c060405234801562000010575f80fd5b5060405162003ecf38038062003ecf833981016040819052620000339162000127565b6001600160a01b03811660805273530000000000000000000000000000000000001560a0526200006262000069565b5062000156565b5f54610100900460ff1615620000d55760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161462000125575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000138575f80fd5b81516001600160a01b03811681146200014f575f80fd5b9392505050565b60805160a051613d346200019b5f395f818161066f015281816129740152612c0101525f81816104470152818161070c015281816129450152612bd20152613d345ff3fe608060405260043610610303575f3560e01c80638142951a11610191578063ae81de53116100dc578063d51c90a911610087578063e2a6ad5f11610062578063e2a6ad5f1461092d578063f2fde38b1461094c578063f4fe7fef1461096b575f80fd5b8063d51c90a9146108a0578063dd4785f5146108b5578063df155033146108f6575f80fd5b8063c7cd469a116100b7578063c7cd469a14610843578063cde4cd1114610862578063d096c3c614610881575f80fd5b8063ae81de53146107ef578063affed0e01461080e578063bfa02ba914610824575f80fd5b80639b19251a1161013c578063a3066aab11610117578063a3066aab1461079c578063a4f209b0146107bb578063ab8c53dc146107da575f80fd5b80639b19251a1461072e5780639d48f4171461075c5780639fb82db914610788575f80fd5b80638da5cb5b1161016c5780638da5cb5b146106b05780639168ae72146106cd578063927ede2d146106fb575f80fd5b80638142951a1461063f578063831cfb581461065e5780638a565ac314610691575f80fd5b806343352d61116102515780636f1e8533116101fc578063797adbde116101d7578063797adbde146105b95780637a4e87c3146105d85780637a9262a214610613575f80fd5b80636f1e853314610560578063715018a61461057f57806374fe27b714610593575f80fd5b806352d472eb1161022c57806352d472eb146104fd5780636801579114610512578063692c565b14610531575f80fd5b806343352d61146104a857806345bc4d10146104c95780634d64903a146104e8575f80fd5b806335928991116102b15780633ccfd60b1161028c5780633ccfd60b1461046b5780633ee2a1f91461047f57806341de239b14610493575f80fd5b806335928991146103dc5780633a9bbede146103fb5780633cb747bf14610439575f80fd5b80632e407a6f116102e15780632e407a6f1461035a578063303afb9e14610386578063320ff860146103bd575f80fd5b80630d13fd7b146103075780632108db35146103305780632a28e5a314610345575b5f80fd5b348015610312575f80fd5b5061031d6101a65481565b6040519081526020015b60405180910390f35b34801561033b575f80fd5b5061031d609c5481565b610358610353366004613495565b61098a565b005b348015610365575f80fd5b5061031d6103743660046134ef565b6101a16020525f908152604090205481565b348015610391575f80fd5b506103a56103a036600461350f565b610d85565b6040516001600160a01b039091168152602001610327565b3480156103c8575f80fd5b506103586103d7366004613526565b610da4565b3480156103e7575f80fd5b506103586103f636600461350f565b6110bf565b348015610406575f80fd5b506104296104153660046134ef565b609f6020525f908152604090205460ff1681565b6040519015158152602001610327565b348015610444575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103a5565b348015610476575f80fd5b5061035861116c565b34801561048a575f80fd5b50610358611338565b34801561049e575f80fd5b5061031d60995481565b3480156104b3575f80fd5b506104bc61134a565b60405161032791906135ce565b3480156104d4575f80fd5b5061031d6104e336600461350f565b611390565b3480156104f3575f80fd5b5061031d60985481565b348015610508575f80fd5b5061031d609a5481565b34801561051d575f80fd5b5061042961052c3660046134ef565b611696565b34801561053c575f80fd5b5061042961054b36600461350f565b6101a46020525f908152604090205460ff1681565b34801561056b575f80fd5b5061042961057a3660046134ef565b611731565b34801561058a575f80fd5b506103586117aa565b34801561059e575f80fd5b506104296105ad366004613650565b60019695505050505050565b3480156105c4575f80fd5b506103a56105d336600461350f565b6117bb565b3480156105e3575f80fd5b506104296105f23660046136f6565b80516020818301810180516101a38252928201919093012091525460ff1681565b34801561061e575f80fd5b5061031d61062d3660046134ef565b6101a56020525f908152604090205481565b34801561064a575f80fd5b50610358610659366004613730565b6117e4565b348015610669575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b34801561069c575f80fd5b506103586106ab36600461350f565b611ca6565b3480156106bb575f80fd5b506033546001600160a01b03166103a5565b3480156106d8575f80fd5b506106ec6106e73660046134ef565b611d49565b604051610327939291906137cb565b348015610706575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610739575f80fd5b506104296107483660046134ef565b609e6020525f908152604090205460ff1681565b348015610767575f80fd5b5061077b61077636600461350f565b611dfc565b604051610327919061383e565b348015610793575f80fd5b5061077b611f19565b3480156107a7575f80fd5b506103586107b63660046134ef565b6120c7565b3480156107c6575f80fd5b506103586107d536600461350f565b6121f7565b3480156107e5575f80fd5b5061031d609d5481565b3480156107fa575f80fd5b5061035861080936600461350f565b6122a7565b348015610819575f80fd5b5061031d6101a75481565b34801561082f575f80fd5b506097546103a5906001600160a01b031681565b34801561084e575f80fd5b5061035861085d366004613850565b61234a565b34801561086d575f80fd5b5061035861087c3660046134ef565b6124eb565b34801561088c575f80fd5b5061031d61089b3660046134ef565b612559565b3480156108ab575f80fd5b5061031d609b5481565b3480156108c0575f80fd5b506108e46108cf3660046134ef565b61019f6020525f908152604090205460ff1681565b60405160ff9091168152602001610327565b348015610901575f80fd5b506104296109103660046134ef565b6001600160a01b03165f9081526101a16020526040902054151590565b348015610938575f80fd5b5061031d6109473660046138b7565b6125d3565b348015610957575f80fd5b506103586109663660046134ef565b612705565b348015610976575f80fd5b5061035861098536600461350f565b612792565b335f818152609e602052604090205460ff166109ed5760405162461bcd60e51b815260206004820152601060248201527f6e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064015b60405180910390fd5b335f9081526101a260205260409020546001600160a01b031615610a535760405162461bcd60e51b815260206004820152601260248201527f616c72656164792072656769737465726564000000000000000000000000000060448201526064016109e4565b8215801590610a7157505f8381526101a4602052604090205460ff16155b610abd5760405162461bcd60e51b815260206004820152601960248201527f696e76616c69642074656e6465726d696e74207075626b65790000000000000060448201526064016109e4565b8151610100148015610af057506101a382604051610adb91906138f6565b9081526040519081900360200190205460ff16155b610b3c5760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420626c73207075626b6579000000000000000000000000000060448201526064016109e4565b6098543414610b8d5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b6040518060600160405280610b9f3390565b6001600160a01b03908116825260208083018790526040928301869052335f9081526101a28252839020845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558301516001820155908201516002820190610c1290826139ad565b50905050610c25610c203390565b612835565b60016101a383604051610c3891906138f6565b90815260408051918290036020908101909220805493151560ff199485161790555f8681526101a49092529020805490911660011790557fb9c7babb56df9f2da4a30811a6c778e4e68af88b72712d56cf62c5516e20e199610c973390565b8484604051610ca8939291906137cb565b60405180910390a1335f9081526101a26020908152604091829020825160608101845281546001600160a01b03168152600182015492810192909252600281018054610d809484019190610cfb90613911565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2790613911565b8015610d725780601f10610d4957610100808354040283529160200191610d72565b820191905f5260205f20905b815481529060010190602001808311610d5557829003601f168201915b505050505081525050612943565b505050565b60a08160ff8110610d94575f80fd5b01546001600160a01b0316905081565b610dac612a84565b5f5b815181101561107b57610dd9828281518110610dcc57610dcc613aab565b6020026020010151611696565b610e4b5760405162461bcd60e51b815260206004820152602160248201527f6f6e6c7920616374697665207374616b65722063616e2062652072656d6f766560448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016109e4565b6101a55f838381518110610e6157610e61613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20545f14610ed75760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109e4565b609954610ee49043613b05565b6101a55f848481518110610efa57610efa613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550610f47828281518110610f3a57610f3a613aab565b6020026020010151612ade565b818181518110610f5957610f59613aab565b60200260200101516001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d56101a55f858581518110610fa157610fa1613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054604051610fd891815260200190565b60405180910390a2609e5f838381518110610ff557610ff5613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f84848151811061104257611042613aab565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610dae565b507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84816040516110ab919061383e565b60405180910390a16110bc81612bd0565b50565b6110c7612a84565b5f811180156110d957506101a6548114155b6111255760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109e4565b6101a680549082905560408051828152602081018490527f36f971a40478225aeb80cfbf5e80306e8cb76d3bf7d56fdc5e490945cddb7d5591015b60405180910390a15050565b61117533611696565b6111c15760405162461bcd60e51b815260206004820152601260248201527f6f6e6c7920616374697665207374616b6572000000000000000000000000000060448201526064016109e4565b335f9081526101a560205260409020541561121e5760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109e4565b60995461122b9043613b05565b335f8181526101a5602052604090209190915561124790612ade565b335f8181526101a560209081526040918290205491519182527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a2335f908152609e60209081526040808320805460ff19908116909155609f83528184208054909116600190811790915581518181528083019092529091828101908036833701905050905033815f815181106112e9576112e9613aab565b60200260200101906001600160a01b031690816001600160a01b0316815250507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84816040516110ab919061383e565b611340612a84565b611348612ccd565b565b611352613362565b60408051611fe08101918290529060a09060ff9082845b81546001600160a01b03168152600190910190602001808311611369575050505050905090565b6097545f906001600160a01b0316336001600160a01b0316146113f55760405162461bcd60e51b815260206004820152601460248201527f6f6e6c7920726f6c6c757020636f6e747261637400000000000000000000000060448201526064016109e4565b6113fd612fe7565b5f61140783611dfc565b90505f805b82518110156115b9575f6101a55f85848151811061142c5761142c613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205411156114af576101a55f84838151811061147057611470613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f9055609854826114a89190613b05565b91506115b1565b6114e98382815181106114c4576114c4613aab565b60200260200101516001600160a01b03165f9081526101a16020526040902054151590565b6115b1576098546114fa9083613b05565b9150611511838281518110610f3a57610f3a613aab565b609e5f84838151811061152657611526613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f85848151811061157357611573613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60010161140c565b505f6064609a54836115cb9190613b18565b6115d59190613b2f565b90506115e18183613b67565b609d5f8282546115f19190613b05565b909155505060975461160c906001600160a01b031682613040565b7f654f4a61849f1b3ad10abb283d27f02d5fece7b820acc5a3b874713b58748b5a8360405161163b919061383e565b60405180910390a17f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c8483604051611672919061383e565b60405180910390a161168383612bd0565b925050506116916001606555565b919050565b6001600160a01b0381165f90815261019f602052604081205460ff1681036116bf57505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906116ea9060019060ff16613b7a565b60ff1660ff81106116fd576116fd613aab565b01546001600160a01b031614801561172b57506001600160a01b0382165f9081526101a16020526040902054155b92915050565b6001600160a01b0381165f90815261019f602052604081205460ff16810361175a57505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906117859060019060ff16613b7a565b60ff1660ff811061179857611798613aab565b01546001600160a01b03161492915050565b6117b2612a84565b6113485f6130f0565b6101a081815481106117cb575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f54610100900460ff161580801561180257505f54600160ff909116105b8061181b5750303b15801561181b57505f5460ff166001145b61188d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109e4565b5f805460ff1916600117905580156118cb575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0388166119215760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420726f6c6c757020636f6e747261637400000000000000000060448201526064016109e4565b5f87116119705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b5f86116119bf5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109e4565b5f8511611a0e5760405162461bcd60e51b815260206004820152601e60248201527f696e76616c6964207769746864726177616c206c6f636b20626c6f636b73000060448201526064016109e4565b5f8311611a5d5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420676173206c696d697420616464207374616b65720000000060448201526064016109e4565b5f8211611aac5760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420676173206c696d69742072656d6f7665207374616b65727360448201526064016109e4565b5f84118015611abc575060648411155b611b2d5760405162461bcd60e51b8152602060048201526024808201527f696e76616c6964206368616c6c656e676572207265776172642070657263656e60448201527f746167650000000000000000000000000000000000000000000000000000000060648201526084016109e4565b611b35613159565b611b3d6131dd565b609780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a16179055609a84905560988790556101a68690556099859055609b839055609c829055604080515f8152602081018590527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910160405180910390a1604080515f8152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910160405180910390a1604080515f8152602081018690527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910160405180910390a18015611c9c575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b611cae612a84565b5f81118015611cbf5750609c548114155b611d0b5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109e4565b609c80549082905560408051828152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f79101611160565b6101a26020525f90815260409020805460018201546002830180546001600160a01b03909316939192611d7b90613911565b80601f0160208091040260200160405190810160405280929190818152602001828054611da790613911565b8015611df25780601f10611dc957610100808354040283529160200191611df2565b820191905f5260205f20905b815481529060010190602001808311611dd557829003601f168201915b5050505050905083565b6060600182901c5f5b8115611e2c57611e16816001613b05565b9050611e23600183613b67565b82169150611e05565b8067ffffffffffffffff811115611e4557611e456133cb565b604051908082528060200260200182016040528015611e6e578160200160208202803683370190505b5092505f60015b60ff8160ff1611611f1057600160ff82161b861615611efe5760a0611e9b600183613b7a565b60ff1660ff8110611eae57611eae613aab565b015485516001600160a01b0390911690869084908110611ed057611ed0613aab565b6001600160a01b0390921660209283029190910190910152611ef3826001613b05565b915082821015611f10575b80611f0881613b93565b915050611e75565b50505050919050565b6040805160ff80825261200082019092526060915f91829160208201611fe0803683370190505090505f5b60ff811015611fe8575f60a08260ff8110611f6157611f61613aab565b01546001600160a01b031614801590611fa957506101a15f60a08360ff8110611f8c57611f8c613aab565b01546001600160a01b0316815260208101919091526040015f2054155b15611fe05782611fb881613bb1565b9350506001828281518110611fcf57611fcf613aab565b911515602092830291909101909101525b600101611f44565b505f8267ffffffffffffffff811115612003576120036133cb565b60405190808252806020026020018201604052801561202c578160200160208202803683370190505b5090505f805b60ff8110156120bd5783818151811061204d5761204d613aab565b6020026020010151156120b55760a08160ff811061206d5761206d613aab565b015483516001600160a01b039091169084908490811061208f5761208f613aab565b6001600160a01b0390921660209283029190910190910152816120b181613bb1565b9250505b600101612032565b5090949350505050565b6120cf612fe7565b335f9081526101a5602052604090205461212b5760405162461bcd60e51b815260206004820152601460248201527f7769746864726177616c206e6f7420657869737400000000000000000000000060448201526064016109e4565b335f9081526101a5602052604090205443101561218a5760405162461bcd60e51b815260206004820152601160248201527f7769746864726177616c206c6f636b656400000000000000000000000000000060448201526064016109e4565b335f9081526101a560205260408120556121a2612ccd565b604080516001600160a01b0383168152905133917f89309c9b2aeaffbdce717113df9427298b20448c05919bf889e05f8c3094254b919081900360200190a26121ed81609854613040565b6110bc6001606555565b6121ff612a84565b5f8111801561220f575060648111155b801561221d5750609a548114155b6122695760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642070657263656e746167650000000000000060448201526064016109e4565b609a80549082905560408051828152602081018490527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba9101611160565b6122af612a84565b5f811180156122c05750609b548114155b61230c5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109e4565b609b80549082905560408051828152602081018490527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c9101611160565b612352612a84565b5f5b8381101561244a57609f5f86868481811061237157612371613aab565b905060200201602081019061238691906134ef565b6001600160a01b0316815260208101919091526040015f205460ff16156123ef5760405162461bcd60e51b815260206004820152600f60248201527f696e2072656d6f766564206c697374000000000000000000000000000000000060448201526064016109e4565b6001609e5f87878581811061240657612406613aab565b905060200201602081019061241b91906134ef565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101612354565b505f5b818110156124a757609e5f84848481811061246a5761246a613aab565b905060200201602081019061247f91906134ef565b6001600160a01b0316815260208101919091526040015f20805460ff1916905560010161244d565b507fe375867e538b40218c1b3db2ccceaf875eb073e38b510449e6088c1539ac8622848484846040516124dd9493929190613c22565b60405180910390a150505050565b6124f3612a84565b6124fb612fe7565b609d546125088282613040565b5f609d55604080516001600160a01b0384168152602081018390527fa1fefb6c5328a92a416e321ed50997303fe7135fd88c28b0592b21ce42b5cdd9910160405180910390a1506110bc6001606555565b5f61256382611731565b6125af5760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109e4565b506001600160a01b03165f90815261019f6020526040902054600160ff9091161b90565b5f60ff8211156126255760405162461bcd60e51b815260206004820152601c60248201527f7374616b657273206c656e677468206f7574206f6620626f756e64730000000060448201526064016109e4565b5f5b828110156126fe5761265984848381811061264457612644613aab565b905060200201602081019061057a91906134ef565b6126a55760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109e4565b61019f5f8585848181106126bb576126bb613aab565b90506020020160208101906126d091906134ef565b6001600160a01b0316815260208101919091526040015f2054600160ff90911681901b929092179101612627565b5092915050565b61270d612a84565b6001600160a01b0381166127895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109e4565b6110bc816130f0565b61279a612a84565b5f811180156127ab57506098548114155b6127f75760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b609880549082905560408051828152602081018490527f91e3ed304d49776a78bbe0df6bf7156f5433763621e5e728a3c2adfe7de743689101611160565b5f5b60ff8160ff1610156128fa575f60a060ff80841690811061285a5761285a613aab565b01546001600160a01b0316036128f2578160a08260ff1660ff811061288157612881613aab565b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556128c3816001613c53565b6001600160a01b03929092165f90815261019f60205260409020805460ff191660ff9093169290921790915550565b600101612837565b5060405162461bcd60e51b815260206004820152600960248201527f736c6f742066756c6c000000000000000000000000000000000000000000000060448201526064016109e4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a754856040516024016129aa929190613c6c565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7046529b00000000000000000000000000000000000000000000000000000000179052609b5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a409493929190600401613caa565b5f604051808303815f87803b158015612a57575f80fd5b505af1158015612a69573d5f803e3d5ffd5b505050506101a7546001612a7d9190613b05565b6101a75550565b6033546001600160a01b031633146113485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109e4565b6001600160a01b0381165f9081526101a1602052604090205415612b445760405162461bcd60e51b815260206004820152601560248201527f616c726561647920696e2064656c6574654c697374000000000000000000000060448201526064016109e4565b6101a080546001810182555f919091527f7980fe0f714a613298681d64b7b8ffa7b148338dd52429f307d72798d5c317c40180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316179055609954612bb49043613b05565b6001600160a01b039091165f9081526101a16020526040902055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a75485604051602401612c37929190613ce2565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcce6cf9f00000000000000000000000000000000000000000000000000000000179052609c5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a409493929190600401613caa565b5f5b6101a0548110156110bc575f6001600160a01b03166101a08281548110612cf857612cf8613aab565b5f918252602090912001546001600160a01b031603612e33576101a15f6101a08381548110612d2957612d29613aab565b5f9182526020808320909101546001600160a01b031683528201929092526040018120556101a08054612d5e90600190613b67565b81548110612d6e57612d6e613aab565b5f918252602090912001546101a080546001600160a01b039092169183908110612d9a57612d9a613aab565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506101a0805480612dd757612dd7613cfa565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055612ccf565b436101a15f6101a08481548110612e4c57612e4c613aab565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411612fd55760a0600161019f5f6101a08581548110612e9157612e91613aab565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054612ec2919060ff16613b7a565b60ff1660ff8110612ed557612ed5613aab565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556101a0805461019f915f9184908110612f1757612f17613aab565b5f9182526020808320909101546001600160a01b031683528201929092526040018120805460ff191690556101a080546101a292919084908110612f5d57612f5d613aab565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590612fbb6002830182613381565b50506101a15f6101a08381548110612d2957612d29613aab565b80612fdf81613bb1565b915050612ccf565b6002606554036130395760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109e4565b6002606555565b80156130e5575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461308f576040519150601f19603f3d011682016040523d82523d5f602084013e613094565b606091505b5050905080610d805760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c6564000000000060448201526064016109e4565b5050565b6001606555565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166131d55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b611348613261565b5f54610100900460ff166132595760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b6113486132e6565b5f54610100900460ff166132dd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b611348336130f0565b5f54610100900460ff166130e95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b60405180611fe0016040528060ff906020820280368337509192915050565b50805461338d90613911565b5f825580601f1061339c575050565b601f0160209004905f5260205f20908101906110bc91905b808211156133c7575f81556001016133b4565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613421576134216133cb565b604052919050565b5f82601f830112613438575f80fd5b813567ffffffffffffffff811115613452576134526133cb565b6134656020601f19601f840116016133f8565b818152846020838601011115613479575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156134a6575f80fd5b82359150602083013567ffffffffffffffff8111156134c3575f80fd5b6134cf85828601613429565b9150509250929050565b80356001600160a01b0381168114611691575f80fd5b5f602082840312156134ff575f80fd5b613508826134d9565b9392505050565b5f6020828403121561351f575f80fd5b5035919050565b5f6020808385031215613537575f80fd5b823567ffffffffffffffff8082111561354e575f80fd5b818501915085601f830112613561575f80fd5b813581811115613573576135736133cb565b8060051b91506135848483016133f8565b818152918301840191848101908884111561359d575f80fd5b938501935b838510156135c2576135b3856134d9565b825293850193908501906135a2565b98975050505050505050565b611fe0810181835f5b60ff8110156135ff5781516001600160a01b03168352602092830192909101906001016135d7565b50505092915050565b5f8083601f840112613618575f80fd5b50813567ffffffffffffffff81111561362f575f80fd5b6020830191508360208260051b8501011115613649575f80fd5b9250929050565b5f805f805f8060808789031215613665575f80fd5b86359550602087013567ffffffffffffffff80821115613683575f80fd5b61368f8a838b01613608565b90975095506040890135945060608901359150808211156136ae575f80fd5b818901915089601f8301126136c1575f80fd5b8135818111156136cf575f80fd5b8a60208285010111156136e0575f80fd5b6020830194508093505050509295509295509295565b5f60208284031215613706575f80fd5b813567ffffffffffffffff81111561371c575f80fd5b61372884828501613429565b949350505050565b5f805f805f805f60e0888a031215613746575f80fd5b61374f886134d9565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f5b83811015613798578181015183820152602001613780565b50505f910152565b5f81518084526137b781602086016020860161377e565b601f01601f19169290920160200192915050565b6001600160a01b0384168152826020820152606060408201525f6137f260608301846137a0565b95945050505050565b5f815180845260208085019450602084015f5b838110156138335781516001600160a01b03168752958201959082019060010161380e565b509495945050505050565b602081525f61350860208301846137fb565b5f805f8060408587031215613863575f80fd5b843567ffffffffffffffff8082111561387a575f80fd5b61388688838901613608565b9096509450602087013591508082111561389e575f80fd5b506138ab87828801613608565b95989497509550505050565b5f80602083850312156138c8575f80fd5b823567ffffffffffffffff8111156138de575f80fd5b6138ea85828601613608565b90969095509350505050565b5f825161390781846020870161377e565b9190910192915050565b600181811c9082168061392557607f821691505b60208210810361395c577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610d8057805f5260205f20601f840160051c810160208510156139875750805b601f840160051c820191505b818110156139a6575f8155600101613993565b5050505050565b815167ffffffffffffffff8111156139c7576139c76133cb565b6139db816139d58454613911565b84613962565b602080601f831160018114613a2d575f84156139f75750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613aa3565b5f85815260208120601f198616915b82811015613a5b57888601518255948401946001909101908401613a3c565b5085821015613a9757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561172b5761172b613ad8565b808202811582820484141761172b5761172b613ad8565b5f82613b62577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8181038181111561172b5761172b613ad8565b60ff828116828216039081111561172b5761172b613ad8565b5f60ff821660ff8103613ba857613ba8613ad8565b60010192915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613be157613be1613ad8565b5060010190565b8183525f60208085019450825f5b85811015613833576001600160a01b03613c0f836134d9565b1687529582019590820190600101613bf6565b604081525f613c35604083018688613be8565b8281036020840152613c48818587613be8565b979650505050505050565b60ff818116838216019081111561172b5761172b613ad8565b828152604060208201526001600160a01b038251166040820152602082015160608201525f6040830151606060808401526137f260a08401826137a0565b6001600160a01b0385168152836020820152608060408201525f613cd160808301856137a0565b905082606083015295945050505050565b828152604060208201525f61372860408301846137fb565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a", } // L1StakingABI is the input ABI used to generate the binding from. @@ -729,6 +729,37 @@ func (_L1Staking *L1StakingCallerSession) Messenger() (common.Address, error) { return _L1Staking.Contract.Messenger(&_L1Staking.CallOpts) } +// Nonce is a free data retrieval call binding the contract method 0xaffed0e0. +// +// Solidity: function nonce() view returns(uint256) +func (_L1Staking *L1StakingCaller) Nonce(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _L1Staking.contract.Call(opts, &out, "nonce") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Nonce is a free data retrieval call binding the contract method 0xaffed0e0. +// +// Solidity: function nonce() view returns(uint256) +func (_L1Staking *L1StakingSession) Nonce() (*big.Int, error) { + return _L1Staking.Contract.Nonce(&_L1Staking.CallOpts) +} + +// Nonce is a free data retrieval call binding the contract method 0xaffed0e0. +// +// Solidity: function nonce() view returns(uint256) +func (_L1Staking *L1StakingCallerSession) Nonce() (*big.Int, error) { + return _L1Staking.Contract.Nonce(&_L1Staking.CallOpts) +} + // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // // Solidity: function owner() view returns(address) diff --git a/bindings/bindings/l1staking_more.go b/bindings/bindings/l1staking_more.go index c3a973380..63b68aa35 100644 --- a/bindings/bindings/l1staking_more.go +++ b/bindings/bindings/l1staking_more.go @@ -9,11 +9,11 @@ import ( "morph-l2/bindings/solc" ) -const L1StakingStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1027_storage\"},{\"astId\":1003,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1026_storage\"},{\"astId\":1005,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"_status\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_uint256\"},{\"astId\":1006,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_uint256)1026_storage\"},{\"astId\":1007,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"rollupContract\",\"offset\":0,\"slot\":\"151\",\"type\":\"t_address\"},{\"astId\":1008,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"stakingValue\",\"offset\":0,\"slot\":\"152\",\"type\":\"t_uint256\"},{\"astId\":1009,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"withdrawalLockBlocks\",\"offset\":0,\"slot\":\"153\",\"type\":\"t_uint256\"},{\"astId\":1010,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"rewardPercentage\",\"offset\":0,\"slot\":\"154\",\"type\":\"t_uint256\"},{\"astId\":1011,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"gasLimitAddStaker\",\"offset\":0,\"slot\":\"155\",\"type\":\"t_uint256\"},{\"astId\":1012,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"gasLimitRemoveStakers\",\"offset\":0,\"slot\":\"156\",\"type\":\"t_uint256\"},{\"astId\":1013,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"slashRemaining\",\"offset\":0,\"slot\":\"157\",\"type\":\"t_uint256\"},{\"astId\":1014,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"whitelist\",\"offset\":0,\"slot\":\"158\",\"type\":\"t_mapping(t_address,t_bool)\"},{\"astId\":1015,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"removedList\",\"offset\":0,\"slot\":\"159\",\"type\":\"t_mapping(t_address,t_bool)\"},{\"astId\":1016,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"stakerSet\",\"offset\":0,\"slot\":\"160\",\"type\":\"t_array(t_address)1025_storage\"},{\"astId\":1017,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"stakerIndexes\",\"offset\":0,\"slot\":\"415\",\"type\":\"t_mapping(t_address,t_uint8)\"},{\"astId\":1018,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"deleteList\",\"offset\":0,\"slot\":\"416\",\"type\":\"t_array(t_address)dyn_storage\"},{\"astId\":1019,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"deleteableHeight\",\"offset\":0,\"slot\":\"417\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":1020,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"stakers\",\"offset\":0,\"slot\":\"418\",\"type\":\"t_mapping(t_address,t_struct(StakerInfo)1028_storage)\"},{\"astId\":1021,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"blsKeys\",\"offset\":0,\"slot\":\"419\",\"type\":\"t_mapping(t_bytes_memory_ptr,t_bool)\"},{\"astId\":1022,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"tmKeys\",\"offset\":0,\"slot\":\"420\",\"type\":\"t_mapping(t_bytes32,t_bool)\"},{\"astId\":1023,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"withdrawals\",\"offset\":0,\"slot\":\"421\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":1024,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"challengeDeposit\",\"offset\":0,\"slot\":\"422\",\"type\":\"t_uint256\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_address)1025_storage\":{\"encoding\":\"inplace\",\"label\":\"address[255]\",\"numberOfBytes\":\"8160\"},\"t_array(t_address)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"address[]\",\"numberOfBytes\":\"32\"},\"t_array(t_uint256)1026_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1027_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_bytes_memory_ptr\":{\"encoding\":\"bytes\",\"label\":\"bytes\",\"numberOfBytes\":\"32\"},\"t_bytes_storage\":{\"encoding\":\"bytes\",\"label\":\"bytes\",\"numberOfBytes\":\"32\"},\"t_mapping(t_address,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_bool\"},\"t_mapping(t_address,t_struct(StakerInfo)1028_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e struct Types.StakerInfo)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_struct(StakerInfo)1028_storage\"},\"t_mapping(t_address,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_uint256\"},\"t_mapping(t_address,t_uint8)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e uint8)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_uint8\"},\"t_mapping(t_bytes32,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_bool\"},\"t_mapping(t_bytes_memory_ptr,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes_memory_ptr\",\"value\":\"t_bool\"},\"t_struct(StakerInfo)1028_storage\":{\"encoding\":\"inplace\",\"label\":\"struct Types.StakerInfo\",\"numberOfBytes\":\"96\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" +const L1StakingStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1028_storage\"},{\"astId\":1003,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1027_storage\"},{\"astId\":1005,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"_status\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_uint256\"},{\"astId\":1006,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_uint256)1027_storage\"},{\"astId\":1007,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"rollupContract\",\"offset\":0,\"slot\":\"151\",\"type\":\"t_address\"},{\"astId\":1008,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"stakingValue\",\"offset\":0,\"slot\":\"152\",\"type\":\"t_uint256\"},{\"astId\":1009,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"withdrawalLockBlocks\",\"offset\":0,\"slot\":\"153\",\"type\":\"t_uint256\"},{\"astId\":1010,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"rewardPercentage\",\"offset\":0,\"slot\":\"154\",\"type\":\"t_uint256\"},{\"astId\":1011,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"gasLimitAddStaker\",\"offset\":0,\"slot\":\"155\",\"type\":\"t_uint256\"},{\"astId\":1012,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"gasLimitRemoveStakers\",\"offset\":0,\"slot\":\"156\",\"type\":\"t_uint256\"},{\"astId\":1013,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"slashRemaining\",\"offset\":0,\"slot\":\"157\",\"type\":\"t_uint256\"},{\"astId\":1014,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"whitelist\",\"offset\":0,\"slot\":\"158\",\"type\":\"t_mapping(t_address,t_bool)\"},{\"astId\":1015,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"removedList\",\"offset\":0,\"slot\":\"159\",\"type\":\"t_mapping(t_address,t_bool)\"},{\"astId\":1016,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"stakerSet\",\"offset\":0,\"slot\":\"160\",\"type\":\"t_array(t_address)1026_storage\"},{\"astId\":1017,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"stakerIndexes\",\"offset\":0,\"slot\":\"415\",\"type\":\"t_mapping(t_address,t_uint8)\"},{\"astId\":1018,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"deleteList\",\"offset\":0,\"slot\":\"416\",\"type\":\"t_array(t_address)dyn_storage\"},{\"astId\":1019,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"deleteableHeight\",\"offset\":0,\"slot\":\"417\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":1020,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"stakers\",\"offset\":0,\"slot\":\"418\",\"type\":\"t_mapping(t_address,t_struct(StakerInfo)1029_storage)\"},{\"astId\":1021,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"blsKeys\",\"offset\":0,\"slot\":\"419\",\"type\":\"t_mapping(t_bytes_memory_ptr,t_bool)\"},{\"astId\":1022,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"tmKeys\",\"offset\":0,\"slot\":\"420\",\"type\":\"t_mapping(t_bytes32,t_bool)\"},{\"astId\":1023,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"withdrawals\",\"offset\":0,\"slot\":\"421\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":1024,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"challengeDeposit\",\"offset\":0,\"slot\":\"422\",\"type\":\"t_uint256\"},{\"astId\":1025,\"contract\":\"contracts/l1/staking/L1Staking.sol:L1Staking\",\"label\":\"nonce\",\"offset\":0,\"slot\":\"423\",\"type\":\"t_uint256\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_address)1026_storage\":{\"encoding\":\"inplace\",\"label\":\"address[255]\",\"numberOfBytes\":\"8160\"},\"t_array(t_address)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"address[]\",\"numberOfBytes\":\"32\"},\"t_array(t_uint256)1027_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1028_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_bytes_memory_ptr\":{\"encoding\":\"bytes\",\"label\":\"bytes\",\"numberOfBytes\":\"32\"},\"t_bytes_storage\":{\"encoding\":\"bytes\",\"label\":\"bytes\",\"numberOfBytes\":\"32\"},\"t_mapping(t_address,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_bool\"},\"t_mapping(t_address,t_struct(StakerInfo)1029_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e struct Types.StakerInfo)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_struct(StakerInfo)1029_storage\"},\"t_mapping(t_address,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_uint256\"},\"t_mapping(t_address,t_uint8)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e uint8)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_uint8\"},\"t_mapping(t_bytes32,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_bool\"},\"t_mapping(t_bytes_memory_ptr,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes_memory_ptr\",\"value\":\"t_bool\"},\"t_struct(StakerInfo)1029_storage\":{\"encoding\":\"inplace\",\"label\":\"struct Types.StakerInfo\",\"numberOfBytes\":\"96\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" var L1StakingStorageLayout = new(solc.StorageLayout) -var L1StakingDeployedBin = "0x6080604052600436106102f8575f3560e01c80637a9262a211610191578063ab8c53dc116100dc578063d51c90a911610087578063e2a6ad5f11610062578063e2a6ad5f14610940578063f2fde38b1461095f578063f4fe7fef1461097e575f80fd5b8063d51c90a9146108a6578063dd4785f5146108bb578063df155033146108fc575f80fd5b8063c7cd469a116100b7578063c7cd469a14610849578063cde4cd1114610868578063d096c3c614610887575f80fd5b8063ab8c53dc146107e9578063ae81de53146107fe578063bfa02ba91461081d575f80fd5b8063927ede2d1161013c5780639fb82db9116101175780639fb82db914610797578063a3066aab146107ab578063a4f209b0146107ca575f80fd5b8063927ede2d1461070a5780639b19251a1461073d5780639d48f4171461076b575f80fd5b80638a565ac31161016c5780638a565ac3146106935780638da5cb5b146106b25780639168ae72146106dc575f80fd5b80637a9262a2146106155780638142951a14610641578063831cfb5814610660575f80fd5b806341de239b11610251578063692c565b116101fc57806374fe27b7116101d757806374fe27b714610595578063797adbde146105bb5780637a4e87c3146105da575f80fd5b8063692c565b146105335780636f1e853314610562578063715018a614610581575f80fd5b80634d64903a1161022c5780634d64903a146104ea57806352d472eb146104ff5780636801579114610514575f80fd5b806341de239b1461049557806343352d61146104aa57806345bc4d10146104cb575f80fd5b8063320ff860116102b15780633cb747bf1161028c5780633cb747bf1461043b5780633ccfd60b1461046d5780633ee2a1f914610481575f80fd5b8063320ff860146103bf57806335928991146103de5780633a9bbede146103fd575f80fd5b80632a28e5a3116102e15780632a28e5a31461033a5780632e407a6f1461034f578063303afb9e1461037b575f80fd5b80630d13fd7b146102fc5780632108db3514610325575b5f80fd5b348015610307575f80fd5b506103126101a65481565b6040519081526020015b60405180910390f35b348015610330575f80fd5b50610312609c5481565b61034d610348366004613d4e565b61099d565b005b34801561035a575f80fd5b50610312610369366004613db5565b6101a16020525f908152604090205481565b348015610386575f80fd5b5061039a610395366004613dd5565b610e5f565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161031c565b3480156103ca575f80fd5b5061034d6103d9366004613dec565b610e8b565b3480156103e9575f80fd5b5061034d6103f8366004613dd5565b61127a565b348015610408575f80fd5b5061042b610417366004613db5565b609f6020525f908152604090205460ff1681565b604051901515815260200161031c565b348015610446575f80fd5b507f000000000000000000000000000000000000000000000000000000000000000061039a565b348015610478575f80fd5b5061034d611341565b34801561048c575f80fd5b5061034d611579565b3480156104a0575f80fd5b5061031260995481565b3480156104b5575f80fd5b506104be61158b565b60405161031c9190613e94565b3480156104d6575f80fd5b506103126104e5366004613dd5565b6115de565b3480156104f5575f80fd5b5061031260985481565b34801561050a575f80fd5b50610312609a5481565b34801561051f575f80fd5b5061042b61052e366004613db5565b61199a565b34801561053e575f80fd5b5061042b61054d366004613dd5565b6101a46020525f908152604090205460ff1681565b34801561056d575f80fd5b5061042b61057c366004613db5565b611a69565b34801561058c575f80fd5b5061034d611b09565b3480156105a0575f80fd5b5061042b6105af366004613f23565b60019695505050505050565b3480156105c6575f80fd5b5061039a6105d5366004613dd5565b611b1a565b3480156105e5575f80fd5b5061042b6105f4366004613fc9565b80516020818301810180516101a38252928201919093012091525460ff1681565b348015610620575f80fd5b5061031261062f366004613db5565b6101a56020525f908152604090205481565b34801561064c575f80fd5b5061034d61065b366004614003565b611b50565b34801561066b575f80fd5b5061039a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561069e575f80fd5b5061034d6106ad366004613dd5565b61211a565b3480156106bd575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661039a565b3480156106e7575f80fd5b506106fb6106f6366004613db5565b6121d7565b60405161031c939291906140bc565b348015610715575f80fd5b5061039a7f000000000000000000000000000000000000000000000000000000000000000081565b348015610748575f80fd5b5061042b610757366004613db5565b609e6020525f908152604090205460ff1681565b348015610776575f80fd5b5061078a610785366004613dd5565b612297565b60405161031c91906140f9565b3480156107a2575f80fd5b5061078a6123ce565b3480156107b6575f80fd5b5061034d6107c5366004613db5565b6125b0565b3480156107d5575f80fd5b5061034d6107e4366004613dd5565b612721565b3480156107f4575f80fd5b50610312609d5481565b348015610809575f80fd5b5061034d610818366004613dd5565b6127eb565b348015610828575f80fd5b5060975461039a9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610854575f80fd5b5061034d610863366004614152565b6128a8565b348015610873575f80fd5b5061034d610882366004613db5565b612ac6565b348015610892575f80fd5b506103126108a1366004613db5565b612b41565b3480156108b1575f80fd5b50610312609b5481565b3480156108c6575f80fd5b506108ea6108d5366004613db5565b61019f6020525f908152604090205460ff1681565b60405160ff909116815260200161031c565b348015610907575f80fd5b5061042b610916366004613db5565b73ffffffffffffffffffffffffffffffffffffffff165f9081526101a16020526040902054151590565b34801561094b575f80fd5b5061031261095a3660046141b9565b612be2565b34801561096a575f80fd5b5061034d610979366004613db5565b612d55565b348015610989575f80fd5b5061034d610998366004613dd5565b612e09565b335f818152609e602052604090205460ff16610a1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064015b60405180910390fd5b335f9081526101a2602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f616c7265616479207265676973746572656400000000000000000000000000006044820152606401610a11565b8215801590610ac557505f8381526101a4602052604090205460ff16155b610b2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c69642074656e6465726d696e74207075626b6579000000000000006044820152606401610a11565b8151610100148015610b5e57506101a382604051610b4991906141f8565b9081526040519081900360200190205460ff16155b610bc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c696420626c73207075626b657900000000000000000000000000006044820152606401610a11565b6098543414610c2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964207374616b696e672076616c756500000000000000000000006044820152606401610a11565b6040518060600160405280610c413390565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083018790526040928301869052335f9081526101a28252839020845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558301516001820155908201516002820190610cc190826142a8565b50905050610cd4610ccf3390565b612ec6565b60016101a383604051610ce791906141f8565b9081526040805191829003602090810190922080549315157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009485161790555f8681526101a49092529020805490911660011790557fb9c7babb56df9f2da4a30811a6c778e4e68af88b72712d56cf62c5516e20e199610d643390565b8484604051610d75939291906140bc565b60405180910390a1335f9081526101a260209081526040918290208251606081018452815473ffffffffffffffffffffffffffffffffffffffff168152600182015492810192909252600281018054610e5a9484019190610dd590614213565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0190614213565b8015610e4c5780601f10610e2357610100808354040283529160200191610e4c565b820191905f5260205f20905b815481529060010190602001808311610e2f57829003601f168201915b505050505081525050613033565b505050565b60a08160ff8110610e6e575f80fd5b015473ffffffffffffffffffffffffffffffffffffffff16905081565b610e93613186565b5f5b815181101561123657610ec0828281518110610eb357610eb36143c4565b602002602001015161199a565b610f4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f6f6e6c7920616374697665207374616b65722063616e2062652072656d6f766560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a11565b6101a55f838381518110610f6257610f626143c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f1461100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f7769746864726177696e670000000000000000000000000000000000000000006044820152606401610a11565b609954611019904361441e565b6101a55f84848151811061102f5761102f6143c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611096828281518110611089576110896143c4565b6020026020010151613207565b8181815181106110a8576110a86143c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d56101a55f8585815181106110fd576110fd6143c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405161114e91815260200190565b60405180910390a2609e5f83838151811061116b5761116b6143c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff02191690556001609f5f8484815181106111d2576111d26143c4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610e95565b507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848160405161126691906140f9565b60405180910390a16112778161333a565b50565b611282613186565b5f8111801561129457506101a6548114155b6112fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c7565006044820152606401610a11565b6101a680549082905560408051828152602081018490527f36f971a40478225aeb80cfbf5e80306e8cb76d3bf7d56fdc5e490945cddb7d5591015b60405180910390a15050565b61134a3361199a565b6113b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6f6e6c7920616374697665207374616b657200000000000000000000000000006044820152606401610a11565b335f9081526101a5602052604090205415611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f7769746864726177696e670000000000000000000000000000000000000000006044820152606401610a11565b609954611434904361441e565b335f8181526101a5602052604090209190915561145090613207565b335f8181526101a560209081526040918290205491519182527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a2335f908152609e6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116909155609f83528184208054909116600190811790915581518181528083019092529091828101908036833701905050905033815f81518110611510576115106143c4565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848160405161126691906140f9565b611581613186565b61158961345d565b565b611593613bdf565b60408051611fe08101918290529060a09060ff9082845b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116115aa575050505050905090565b6097545f9073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6f6e6c7920726f6c6c757020636f6e74726163740000000000000000000000006044820152606401610a11565b61167f6137ae565b5f61168983612297565b90505f805b82518110156118b0575f6101a55f8584815181106116ae576116ae6143c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115611765576101a55f84838151811061170c5761170c6143c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90556098548261175e919061441e565b91506118a8565b6117ac83828151811061177a5761177a6143c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff165f9081526101a16020526040902054151590565b6118a8576098546117bd908361441e565b91506117d4838281518110611089576110896143c4565b609e5f8483815181106117e9576117e96143c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff02191690556001609f5f858481518110611850576118506143c4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60010161168e565b505f6064609a54836118c29190614431565b6118cc9190614448565b90506118d88183614480565b609d5f8282546118e8919061441e565b90915550506097546119109073ffffffffffffffffffffffffffffffffffffffff1682613821565b7f654f4a61849f1b3ad10abb283d27f02d5fece7b820acc5a3b874713b58748b5a8360405161193f91906140f9565b60405180910390a17f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848360405161197691906140f9565b60405180910390a16119878361333a565b925050506119956001606555565b919050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815261019f602052604081205460ff1681036119d057505f919050565b73ffffffffffffffffffffffffffffffffffffffff82165f81815261019f602052604090205460a090611a089060019060ff16614493565b60ff1660ff8110611a1b57611a1b6143c4565b015473ffffffffffffffffffffffffffffffffffffffff16148015611a63575073ffffffffffffffffffffffffffffffffffffffff82165f9081526101a16020526040902054155b92915050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815261019f602052604081205460ff168103611a9f57505f919050565b73ffffffffffffffffffffffffffffffffffffffff82165f81815261019f602052604090205460a090611ad79060019060ff16614493565b60ff1660ff8110611aea57611aea6143c4565b015473ffffffffffffffffffffffffffffffffffffffff161492915050565b611b11613186565b6115895f6138f8565b6101a08181548110611b2a575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b5f54610100900460ff1615808015611b6e57505f54600160ff909116105b80611b875750303b158015611b8757505f5460ff166001145b611c13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a11565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611c6f575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8816611cec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420726f6c6c757020636f6e74726163740000000000000000006044820152606401610a11565b5f8711611d55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964207374616b696e672076616c756500000000000000000000006044820152606401610a11565b5f8611611dbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c7565006044820152606401610a11565b5f8511611e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f696e76616c6964207769746864726177616c206c6f636b20626c6f636b7300006044820152606401610a11565b5f8311611e90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c696420676173206c696d697420616464207374616b6572000000006044820152606401610a11565b5f8211611ef9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f696e76616c696420676173206c696d69742072656d6f7665207374616b6572736044820152606401610a11565b5f84118015611f09575060648411155b611f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f696e76616c6964206368616c6c656e676572207265776172642070657263656e60448201527f74616765000000000000000000000000000000000000000000000000000000006064820152608401610a11565b611f9c61396e565b611fa4613a0c565b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055609a84905560988790556101a68690556099859055609b839055609c829055604080515f8152602081018590527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910160405180910390a1604080515f8152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910160405180910390a1604080515f8152602081018690527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910160405180910390a18015612110575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b612122613186565b5f811180156121335750609c548114155b612199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206e657720676173206c696d697400000000000000000000006044820152606401610a11565b609c80549082905560408051828152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f79101611335565b6101a26020525f908152604090208054600182015460028301805473ffffffffffffffffffffffffffffffffffffffff90931693919261221690614213565b80601f016020809104026020016040519081016040528092919081815260200182805461224290614213565b801561228d5780601f106122645761010080835404028352916020019161228d565b820191905f5260205f20905b81548152906001019060200180831161227057829003601f168201915b5050505050905083565b6060600182901c5f5b81156122c7576122b181600161441e565b90506122be600183614480565b821691506122a0565b8067ffffffffffffffff8111156122e0576122e0613c48565b604051908082528060200260200182016040528015612309578160200160208202803683370190505b5092505f60015b60ff8160ff16116123c557600160ff82161b8616156123b35760a0612336600183614493565b60ff1660ff8110612349576123496143c4565b0154855173ffffffffffffffffffffffffffffffffffffffff90911690869084908110612378576123786143c4565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526123a882600161441e565b9150828210156123c5575b806123bd816144ac565b915050612310565b50505050919050565b6040805160ff80825261200082019092526060915f91829160208201611fe0803683370190505090505f5b60ff8110156124b7575f60a08260ff8110612416576124166143c4565b015473ffffffffffffffffffffffffffffffffffffffff161480159061247857506101a15f60a08360ff811061244e5761244e6143c4565b015473ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2054155b156124af5782612487816144ca565b935050600182828151811061249e5761249e6143c4565b911515602092830291909101909101525b6001016123f9565b505f8267ffffffffffffffff8111156124d2576124d2613c48565b6040519080825280602002602001820160405280156124fb578160200160208202803683370190505b5090505f805b60ff8110156125a65783818151811061251c5761251c6143c4565b60200260200101511561259e5760a08160ff811061253c5761253c6143c4565b0154835173ffffffffffffffffffffffffffffffffffffffff9091169084908490811061256b5761256b6143c4565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101528161259a816144ca565b9250505b600101612501565b5090949350505050565b6125b86137ae565b335f9081526101a5602052604090205461262e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7769746864726177616c206e6f742065786973740000000000000000000000006044820152606401610a11565b335f9081526101a560205260409020544310156126a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f7769746864726177616c206c6f636b65640000000000000000000000000000006044820152606401610a11565b335f9081526101a560205260408120556126bf61345d565b6040805173ffffffffffffffffffffffffffffffffffffffff83168152905133917f89309c9b2aeaffbdce717113df9427298b20448c05919bf889e05f8c3094254b919081900360200190a261271781609854613821565b6112776001606555565b612729613186565b5f81118015612739575060648111155b80156127475750609a548114155b6127ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642070657263656e74616765000000000000006044820152606401610a11565b609a80549082905560408051828152602081018490527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba9101611335565b6127f3613186565b5f811180156128045750609b548114155b61286a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206e657720676173206c696d697400000000000000000000006044820152606401610a11565b609b80549082905560408051828152602081018490527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c9101611335565b6128b0613186565b5f5b838110156129fa57609f5f8686848181106128cf576128cf6143c4565b90506020020160208101906128e49190613db5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f205460ff1615612974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e2072656d6f766564206c69737400000000000000000000000000000000006044820152606401610a11565b6001609e5f87878581811061298b5761298b6143c4565b90506020020160208101906129a09190613db5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016128b2565b505f5b81811015612a8257609e5f848484818110612a1a57612a1a6143c4565b9050602002016020810190612a2f9190613db5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556001016129fd565b507fe375867e538b40218c1b3db2ccceaf875eb073e38b510449e6088c1539ac862284848484604051612ab89493929190614553565b60405180910390a150505050565b612ace613186565b612ad66137ae565b609d54612ae38282613821565b5f609d556040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fa1fefb6c5328a92a416e321ed50997303fe7135fd88c28b0592b21ce42b5cdd9910160405180910390a1506112776001606555565b5f612b4b82611a69565b612bb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964207374616b65720000000000000000000000000000000000006044820152606401610a11565b5073ffffffffffffffffffffffffffffffffffffffff165f90815261019f6020526040902054600160ff9091161b90565b5f60ff821115612c4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7374616b657273206c656e677468206f7574206f6620626f756e6473000000006044820152606401610a11565b5f5b82811015612d4e57612c82848483818110612c6d57612c6d6143c4565b905060200201602081019061057c9190613db5565b612ce8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964207374616b65720000000000000000000000000000000000006044820152606401610a11565b61019f5f858584818110612cfe57612cfe6143c4565b9050602002016020810190612d139190613db5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2054600160ff90911681901b929092179101612c50565b5092915050565b612d5d613186565b73ffffffffffffffffffffffffffffffffffffffff8116612e00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a11565b611277816138f8565b612e11613186565b5f81118015612e2257506098548114155b612e88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964207374616b696e672076616c756500000000000000000000006044820152606401610a11565b609880549082905560408051828152602081018490527f91e3ed304d49776a78bbe0df6bf7156f5433763621e5e728a3c2adfe7de743689101611335565b5f5b60ff8160ff161015612fd0575f60a060ff808416908110612eeb57612eeb6143c4565b015473ffffffffffffffffffffffffffffffffffffffff1603612fc8578160a08260ff1660ff8110612f1f57612f1f6143c4565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055612f6e816001614584565b73ffffffffffffffffffffffffffffffffffffffff929092165f90815261019f6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9093169290921790915550565b600101612ec8565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f736c6f742066756c6c00000000000000000000000000000000000000000000006044820152606401610a11565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f846040516024016130a2919061459d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6d454d5100000000000000000000000000000000000000000000000000000000179052609b5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815261315694939291906004016145e1565b5f604051808303815f87803b15801561316d575f80fd5b505af115801561317f573d5f803e3d5ffd5b5050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314611589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a11565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526101a1602052604090205415613294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f616c726561647920696e2064656c6574654c69737400000000000000000000006044820152606401610a11565b6101a080546001810182555f919091527f7980fe0f714a613298681d64b7b8ffa7b148338dd52429f307d72798d5c317c40180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055609954613311904361441e565b73ffffffffffffffffffffffffffffffffffffffff9091165f9081526101a16020526040902055565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f846040516024016133a991906140f9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0be67fcc00000000000000000000000000000000000000000000000000000000179052609c5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815261315694939291906004016145e1565b5f5b6101a05481101561127757436101a15f6101a08481548110613483576134836143c4565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541161379c5760a0600161019f5f6101a085815481106134d5576134d56143c4565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902054613513919060ff16614493565b60ff1660ff8110613526576135266143c4565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556101a0805461019f915f9184908110613568576135686143c4565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556101a080546101a2929190849081106135d9576135d96143c4565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018101829055906136446002830182613bfe565b50506101a15f6101a0838154811061365e5761365e6143c4565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120556101a080546136a090600190614480565b815481106136b0576136b06143c4565b5f918252602090912001546101a0805473ffffffffffffffffffffffffffffffffffffffff90921691839081106136e9576136e96143c4565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101a080548061374057613740614626565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905561345f565b806137a6816144ca565b91505061345f565b60026065540361381a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a11565b6002606555565b80156138ed575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f811461387d576040519150601f19603f3d011682016040523d82523d5f602084013e613882565b606091505b5050905080610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a11565b5050565b6001606555565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a11565b611589613aaa565b5f54610100900460ff16613aa2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a11565b611589613b49565b5f54610100900460ff16613b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a11565b611589336138f8565b5f54610100900460ff166138f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a11565b60405180611fe0016040528060ff906020820280368337509192915050565b508054613c0a90614213565b5f825580601f10613c19575050565b601f0160209004905f5260205f209081019061127791905b80821115613c44575f8155600101613c31565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613cbc57613cbc613c48565b604052919050565b5f82601f830112613cd3575f80fd5b813567ffffffffffffffff811115613ced57613ced613c48565b613d1e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613c75565b818152846020838601011115613d32575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613d5f575f80fd5b82359150602083013567ffffffffffffffff811115613d7c575f80fd5b613d8885828601613cc4565b9150509250929050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611995575f80fd5b5f60208284031215613dc5575f80fd5b613dce82613d92565b9392505050565b5f60208284031215613de5575f80fd5b5035919050565b5f6020808385031215613dfd575f80fd5b823567ffffffffffffffff80821115613e14575f80fd5b818501915085601f830112613e27575f80fd5b813581811115613e3957613e39613c48565b8060051b9150613e4a848301613c75565b8181529183018401918481019088841115613e63575f80fd5b938501935b83851015613e8857613e7985613d92565b82529385019390850190613e68565b98975050505050505050565b611fe0810181835f5b60ff811015613ed257815173ffffffffffffffffffffffffffffffffffffffff16835260209283019290910190600101613e9d565b50505092915050565b5f8083601f840112613eeb575f80fd5b50813567ffffffffffffffff811115613f02575f80fd5b6020830191508360208260051b8501011115613f1c575f80fd5b9250929050565b5f805f805f8060808789031215613f38575f80fd5b86359550602087013567ffffffffffffffff80821115613f56575f80fd5b613f628a838b01613edb565b9097509550604089013594506060890135915080821115613f81575f80fd5b818901915089601f830112613f94575f80fd5b813581811115613fa2575f80fd5b8a6020828501011115613fb3575f80fd5b6020830194508093505050509295509295509295565b5f60208284031215613fd9575f80fd5b813567ffffffffffffffff811115613fef575f80fd5b613ffb84828501613cc4565b949350505050565b5f805f805f805f60e0888a031215614019575f80fd5b61402288613d92565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f5b8381101561406b578181015183820152602001614053565b50505f910152565b5f815180845261408a816020860160208601614051565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f6140f06060830184614073565b95945050505050565b602080825282518282018190525f9190848201906040850190845b8181101561414657835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101614114565b50909695505050505050565b5f805f8060408587031215614165575f80fd5b843567ffffffffffffffff8082111561417c575f80fd5b61418888838901613edb565b909650945060208701359150808211156141a0575f80fd5b506141ad87828801613edb565b95989497509550505050565b5f80602083850312156141ca575f80fd5b823567ffffffffffffffff8111156141e0575f80fd5b6141ec85828601613edb565b90969095509350505050565b5f8251614209818460208701614051565b9190910192915050565b600181811c9082168061422757607f821691505b60208210810361425e577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610e5a57805f5260205f20601f840160051c810160208510156142895750805b601f840160051c820191505b8181101561317f575f8155600101614295565b815167ffffffffffffffff8111156142c2576142c2613c48565b6142d6816142d08454614213565b84614264565b602080601f831160018114614328575f84156142f25750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556143bc565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561437457888601518255948401946001909101908401614355565b50858210156143b057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115611a6357611a636143f1565b8082028115828204841417611a6357611a636143f1565b5f8261447b577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115611a6357611a636143f1565b60ff8281168282160390811115611a6357611a636143f1565b5f60ff821660ff81036144c1576144c16143f1565b60010192915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036144fa576144fa6143f1565b5060010190565b8183525f60208085019450825f5b858110156145485773ffffffffffffffffffffffffffffffffffffffff61453583613d92565b168752958201959082019060010161450f565b509495945050505050565b604081525f614566604083018688614501565b8281036020840152614579818587614501565b979650505050505050565b60ff8181168382160190811115611a6357611a636143f1565b6020815273ffffffffffffffffffffffffffffffffffffffff8251166020820152602082015160408201525f6040830151606080840152613ffb6080840182614073565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f6146156080830185614073565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a" +var L1StakingDeployedBin = "0x608060405260043610610303575f3560e01c80638142951a11610191578063ae81de53116100dc578063d51c90a911610087578063e2a6ad5f11610062578063e2a6ad5f14610961578063f2fde38b14610980578063f4fe7fef1461099f575f80fd5b8063d51c90a9146108c7578063dd4785f5146108dc578063df1550331461091d575f80fd5b8063c7cd469a116100b7578063c7cd469a1461086a578063cde4cd1114610889578063d096c3c6146108a8575f80fd5b8063ae81de5314610809578063affed0e014610828578063bfa02ba91461083e575f80fd5b80639b19251a1161013c578063a3066aab11610117578063a3066aab146107b6578063a4f209b0146107d5578063ab8c53dc146107f4575f80fd5b80639b19251a146107485780639d48f417146107765780639fb82db9146107a2575f80fd5b80638da5cb5b1161016c5780638da5cb5b146106bd5780639168ae72146106e7578063927ede2d14610715575f80fd5b80638142951a1461064c578063831cfb581461066b5780638a565ac31461069e575f80fd5b806343352d61116102515780636f1e8533116101fc578063797adbde116101d7578063797adbde146105c65780637a4e87c3146105e55780637a9262a214610620575f80fd5b80636f1e85331461056d578063715018a61461058c57806374fe27b7146105a0575f80fd5b806352d472eb1161022c57806352d472eb1461050a578063680157911461051f578063692c565b1461053e575f80fd5b806343352d61146104b557806345bc4d10146104d65780634d64903a146104f5575f80fd5b806335928991116102b15780633ccfd60b1161028c5780633ccfd60b146104785780633ee2a1f91461048c57806341de239b146104a0575f80fd5b806335928991146103e95780633a9bbede146104085780633cb747bf14610446575f80fd5b80632e407a6f116102e15780632e407a6f1461035a578063303afb9e14610386578063320ff860146103ca575f80fd5b80630d13fd7b146103075780632108db35146103305780632a28e5a314610345575b5f80fd5b348015610312575f80fd5b5061031d6101a65481565b6040519081526020015b60405180910390f35b34801561033b575f80fd5b5061031d609c5481565b610358610353366004613df6565b6109be565b005b348015610365575f80fd5b5061031d610374366004613e5d565b6101a16020525f908152604090205481565b348015610391575f80fd5b506103a56103a0366004613e7d565b610e80565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610327565b3480156103d5575f80fd5b506103586103e4366004613e94565b610eac565b3480156103f4575f80fd5b50610358610403366004613e7d565b61129b565b348015610413575f80fd5b50610436610422366004613e5d565b609f6020525f908152604090205460ff1681565b6040519015158152602001610327565b348015610451575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103a5565b348015610483575f80fd5b50610358611362565b348015610497575f80fd5b5061035861159a565b3480156104ab575f80fd5b5061031d60995481565b3480156104c0575f80fd5b506104c96115ac565b6040516103279190613f3c565b3480156104e1575f80fd5b5061031d6104f0366004613e7d565b6115ff565b348015610500575f80fd5b5061031d60985481565b348015610515575f80fd5b5061031d609a5481565b34801561052a575f80fd5b50610436610539366004613e5d565b6119bb565b348015610549575f80fd5b50610436610558366004613e7d565b6101a46020525f908152604090205460ff1681565b348015610578575f80fd5b50610436610587366004613e5d565b611a8a565b348015610597575f80fd5b50610358611b2a565b3480156105ab575f80fd5b506104366105ba366004613fcb565b60019695505050505050565b3480156105d1575f80fd5b506103a56105e0366004613e7d565b611b3b565b3480156105f0575f80fd5b506104366105ff366004614071565b80516020818301810180516101a38252928201919093012091525460ff1681565b34801561062b575f80fd5b5061031d61063a366004613e5d565b6101a56020525f908152604090205481565b348015610657575f80fd5b506103586106663660046140ab565b611b71565b348015610676575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a9575f80fd5b506103586106b8366004613e7d565b61213b565b3480156106c8575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166103a5565b3480156106f2575f80fd5b50610706610701366004613e5d565b6121f8565b60405161032793929190614164565b348015610720575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610753575f80fd5b50610436610762366004613e5d565b609e6020525f908152604090205460ff1681565b348015610781575f80fd5b50610795610790366004613e7d565b6122b8565b60405161032791906141f1565b3480156107ad575f80fd5b506107956123ef565b3480156107c1575f80fd5b506103586107d0366004613e5d565b6125d1565b3480156107e0575f80fd5b506103586107ef366004613e7d565b612742565b3480156107ff575f80fd5b5061031d609d5481565b348015610814575f80fd5b50610358610823366004613e7d565b61280c565b348015610833575f80fd5b5061031d6101a75481565b348015610849575f80fd5b506097546103a59073ffffffffffffffffffffffffffffffffffffffff1681565b348015610875575f80fd5b50610358610884366004614203565b6128c9565b348015610894575f80fd5b506103586108a3366004613e5d565b612ae7565b3480156108b3575f80fd5b5061031d6108c2366004613e5d565b612b62565b3480156108d2575f80fd5b5061031d609b5481565b3480156108e7575f80fd5b5061090b6108f6366004613e5d565b61019f6020525f908152604090205460ff1681565b60405160ff9091168152602001610327565b348015610928575f80fd5b50610436610937366004613e5d565b73ffffffffffffffffffffffffffffffffffffffff165f9081526101a16020526040902054151590565b34801561096c575f80fd5b5061031d61097b36600461426a565b612c03565b34801561098b575f80fd5b5061035861099a366004613e5d565b612d76565b3480156109aa575f80fd5b506103586109b9366004613e7d565b612e2a565b335f818152609e602052604090205460ff16610a3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064015b60405180910390fd5b335f9081526101a2602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610ac8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f616c7265616479207265676973746572656400000000000000000000000000006044820152606401610a32565b8215801590610ae657505f8381526101a4602052604090205460ff16155b610b4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c69642074656e6465726d696e74207075626b6579000000000000006044820152606401610a32565b8151610100148015610b7f57506101a382604051610b6a91906142a9565b9081526040519081900360200190205460ff16155b610be5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c696420626c73207075626b657900000000000000000000000000006044820152606401610a32565b6098543414610c50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964207374616b696e672076616c756500000000000000000000006044820152606401610a32565b6040518060600160405280610c623390565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083018790526040928301869052335f9081526101a28252839020845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558301516001820155908201516002820190610ce29082614360565b50905050610cf5610cf03390565b612ee7565b60016101a383604051610d0891906142a9565b9081526040805191829003602090810190922080549315157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009485161790555f8681526101a49092529020805490911660011790557fb9c7babb56df9f2da4a30811a6c778e4e68af88b72712d56cf62c5516e20e199610d853390565b8484604051610d9693929190614164565b60405180910390a1335f9081526101a260209081526040918290208251606081018452815473ffffffffffffffffffffffffffffffffffffffff168152600182015492810192909252600281018054610e7b9484019190610df6906142c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610e22906142c4565b8015610e6d5780601f10610e4457610100808354040283529160200191610e6d565b820191905f5260205f20905b815481529060010190602001808311610e5057829003601f168201915b505050505081525050613054565b505050565b60a08160ff8110610e8f575f80fd5b015473ffffffffffffffffffffffffffffffffffffffff16905081565b610eb46131c0565b5f5b815181101561125757610ee1828281518110610ed457610ed461447c565b60200260200101516119bb565b610f6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f6f6e6c7920616374697665207374616b65722063616e2062652072656d6f766560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a32565b6101a55f838381518110610f8357610f8361447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f1461102d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f7769746864726177696e670000000000000000000000000000000000000000006044820152606401610a32565b60995461103a90436144d6565b6101a55f8484815181106110505761105061447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506110b78282815181106110aa576110aa61447c565b6020026020010151613241565b8181815181106110c9576110c961447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d56101a55f85858151811061111e5761111e61447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405161116f91815260200190565b60405180910390a2609e5f83838151811061118c5761118c61447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff02191690556001609f5f8484815181106111f3576111f361447c565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610eb6565b507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848160405161128791906141f1565b60405180910390a161129881613374565b50565b6112a36131c0565b5f811180156112b557506101a6548114155b61131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c7565006044820152606401610a32565b6101a680549082905560408051828152602081018490527f36f971a40478225aeb80cfbf5e80306e8cb76d3bf7d56fdc5e490945cddb7d5591015b60405180910390a15050565b61136b336119bb565b6113d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6f6e6c7920616374697665207374616b657200000000000000000000000000006044820152606401610a32565b335f9081526101a5602052604090205415611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f7769746864726177696e670000000000000000000000000000000000000000006044820152606401610a32565b60995461145590436144d6565b335f8181526101a5602052604090209190915561147190613241565b335f8181526101a560209081526040918290205491519182527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a2335f908152609e6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116909155609f83528184208054909116600190811790915581518181528083019092529091828101908036833701905050905033815f815181106115315761153161447c565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848160405161128791906141f1565b6115a26131c0565b6115aa61349c565b565b6115b4613c87565b60408051611fe08101918290529060a09060ff9082845b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116115cb575050505050905090565b6097545f9073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6f6e6c7920726f6c6c757020636f6e74726163740000000000000000000000006044820152606401610a32565b6116a0613856565b5f6116aa836122b8565b90505f805b82518110156118d1575f6101a55f8584815181106116cf576116cf61447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115611786576101a55f84838151811061172d5761172d61447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90556098548261177f91906144d6565b91506118c9565b6117cd83828151811061179b5761179b61447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff165f9081526101a16020526040902054151590565b6118c9576098546117de90836144d6565b91506117f58382815181106110aa576110aa61447c565b609e5f84838151811061180a5761180a61447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff02191690556001609f5f8584815181106118715761187161447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b6001016116af565b505f6064609a54836118e391906144e9565b6118ed9190614500565b90506118f98183614538565b609d5f82825461190991906144d6565b90915550506097546119319073ffffffffffffffffffffffffffffffffffffffff16826138c9565b7f654f4a61849f1b3ad10abb283d27f02d5fece7b820acc5a3b874713b58748b5a8360405161196091906141f1565b60405180910390a17f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848360405161199791906141f1565b60405180910390a16119a883613374565b925050506119b66001606555565b919050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815261019f602052604081205460ff1681036119f157505f919050565b73ffffffffffffffffffffffffffffffffffffffff82165f81815261019f602052604090205460a090611a299060019060ff1661454b565b60ff1660ff8110611a3c57611a3c61447c565b015473ffffffffffffffffffffffffffffffffffffffff16148015611a84575073ffffffffffffffffffffffffffffffffffffffff82165f9081526101a16020526040902054155b92915050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815261019f602052604081205460ff168103611ac057505f919050565b73ffffffffffffffffffffffffffffffffffffffff82165f81815261019f602052604090205460a090611af89060019060ff1661454b565b60ff1660ff8110611b0b57611b0b61447c565b015473ffffffffffffffffffffffffffffffffffffffff161492915050565b611b326131c0565b6115aa5f6139a0565b6101a08181548110611b4b575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b5f54610100900460ff1615808015611b8f57505f54600160ff909116105b80611ba85750303b158015611ba857505f5460ff166001145b611c34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a32565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611c90575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8816611d0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420726f6c6c757020636f6e74726163740000000000000000006044820152606401610a32565b5f8711611d76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964207374616b696e672076616c756500000000000000000000006044820152606401610a32565b5f8611611ddf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c7565006044820152606401610a32565b5f8511611e48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f696e76616c6964207769746864726177616c206c6f636b20626c6f636b7300006044820152606401610a32565b5f8311611eb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c696420676173206c696d697420616464207374616b6572000000006044820152606401610a32565b5f8211611f1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f696e76616c696420676173206c696d69742072656d6f7665207374616b6572736044820152606401610a32565b5f84118015611f2a575060648411155b611fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f696e76616c6964206368616c6c656e676572207265776172642070657263656e60448201527f74616765000000000000000000000000000000000000000000000000000000006064820152608401610a32565b611fbd613a16565b611fc5613ab4565b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055609a84905560988790556101a68690556099859055609b839055609c829055604080515f8152602081018590527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910160405180910390a1604080515f8152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910160405180910390a1604080515f8152602081018690527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910160405180910390a18015612131575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6121436131c0565b5f811180156121545750609c548114155b6121ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206e657720676173206c696d697400000000000000000000006044820152606401610a32565b609c80549082905560408051828152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f79101611356565b6101a26020525f908152604090208054600182015460028301805473ffffffffffffffffffffffffffffffffffffffff909316939192612237906142c4565b80601f0160208091040260200160405190810160405280929190818152602001828054612263906142c4565b80156122ae5780601f10612285576101008083540402835291602001916122ae565b820191905f5260205f20905b81548152906001019060200180831161229157829003601f168201915b5050505050905083565b6060600182901c5f5b81156122e8576122d28160016144d6565b90506122df600183614538565b821691506122c1565b8067ffffffffffffffff81111561230157612301613cf0565b60405190808252806020026020018201604052801561232a578160200160208202803683370190505b5092505f60015b60ff8160ff16116123e657600160ff82161b8616156123d45760a061235760018361454b565b60ff1660ff811061236a5761236a61447c565b0154855173ffffffffffffffffffffffffffffffffffffffff909116908690849081106123995761239961447c565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526123c98260016144d6565b9150828210156123e6575b806123de81614564565b915050612331565b50505050919050565b6040805160ff80825261200082019092526060915f91829160208201611fe0803683370190505090505f5b60ff8110156124d8575f60a08260ff81106124375761243761447c565b015473ffffffffffffffffffffffffffffffffffffffff161480159061249957506101a15f60a08360ff811061246f5761246f61447c565b015473ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2054155b156124d057826124a881614582565b93505060018282815181106124bf576124bf61447c565b911515602092830291909101909101525b60010161241a565b505f8267ffffffffffffffff8111156124f3576124f3613cf0565b60405190808252806020026020018201604052801561251c578160200160208202803683370190505b5090505f805b60ff8110156125c75783818151811061253d5761253d61447c565b6020026020010151156125bf5760a08160ff811061255d5761255d61447c565b0154835173ffffffffffffffffffffffffffffffffffffffff9091169084908490811061258c5761258c61447c565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152816125bb81614582565b9250505b600101612522565b5090949350505050565b6125d9613856565b335f9081526101a5602052604090205461264f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7769746864726177616c206e6f742065786973740000000000000000000000006044820152606401610a32565b335f9081526101a560205260409020544310156126c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f7769746864726177616c206c6f636b65640000000000000000000000000000006044820152606401610a32565b335f9081526101a560205260408120556126e061349c565b6040805173ffffffffffffffffffffffffffffffffffffffff83168152905133917f89309c9b2aeaffbdce717113df9427298b20448c05919bf889e05f8c3094254b919081900360200190a2612738816098546138c9565b6112986001606555565b61274a6131c0565b5f8111801561275a575060648111155b80156127685750609a548114155b6127ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642070657263656e74616765000000000000006044820152606401610a32565b609a80549082905560408051828152602081018490527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba9101611356565b6128146131c0565b5f811180156128255750609b548114155b61288b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206e657720676173206c696d697400000000000000000000006044820152606401610a32565b609b80549082905560408051828152602081018490527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c9101611356565b6128d16131c0565b5f5b83811015612a1b57609f5f8686848181106128f0576128f061447c565b90506020020160208101906129059190613e5d565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f205460ff1615612995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e2072656d6f766564206c69737400000000000000000000000000000000006044820152606401610a32565b6001609e5f8787858181106129ac576129ac61447c565b90506020020160208101906129c19190613e5d565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016128d3565b505f5b81811015612aa357609e5f848484818110612a3b57612a3b61447c565b9050602002016020810190612a509190613e5d565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600101612a1e565b507fe375867e538b40218c1b3db2ccceaf875eb073e38b510449e6088c1539ac862284848484604051612ad99493929190614600565b60405180910390a150505050565b612aef6131c0565b612af7613856565b609d54612b0482826138c9565b5f609d556040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fa1fefb6c5328a92a416e321ed50997303fe7135fd88c28b0592b21ce42b5cdd9910160405180910390a1506112986001606555565b5f612b6c82611a8a565b612bd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964207374616b65720000000000000000000000000000000000006044820152606401610a32565b5073ffffffffffffffffffffffffffffffffffffffff165f90815261019f6020526040902054600160ff9091161b90565b5f60ff821115612c6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7374616b657273206c656e677468206f7574206f6620626f756e6473000000006044820152606401610a32565b5f5b82811015612d6f57612ca3848483818110612c8e57612c8e61447c565b90506020020160208101906105879190613e5d565b612d09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964207374616b65720000000000000000000000000000000000006044820152606401610a32565b61019f5f858584818110612d1f57612d1f61447c565b9050602002016020810190612d349190613e5d565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2054600160ff90911681901b929092179101612c71565b5092915050565b612d7e6131c0565b73ffffffffffffffffffffffffffffffffffffffff8116612e21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a32565b611298816139a0565b612e326131c0565b5f81118015612e4357506098548114155b612ea9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964207374616b696e672076616c756500000000000000000000006044820152606401610a32565b609880549082905560408051828152602081018490527f91e3ed304d49776a78bbe0df6bf7156f5433763621e5e728a3c2adfe7de743689101611356565b5f5b60ff8160ff161015612ff1575f60a060ff808416908110612f0c57612f0c61447c565b015473ffffffffffffffffffffffffffffffffffffffff1603612fe9578160a08260ff1660ff8110612f4057612f4061447c565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055612f8f816001614631565b73ffffffffffffffffffffffffffffffffffffffff929092165f90815261019f6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9093169290921790915550565b600101612ee9565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f736c6f742066756c6c00000000000000000000000000000000000000000000006044820152606401610a32565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a754856040516024016130c892919061464a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7046529b00000000000000000000000000000000000000000000000000000000179052609b5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815261317c9493929190600401614695565b5f604051808303815f87803b158015613193575f80fd5b505af11580156131a5573d5f803e3d5ffd5b505050506101a75460016131b991906144d6565b6101a75550565b60335473ffffffffffffffffffffffffffffffffffffffff1633146115aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a32565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526101a16020526040902054156132ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f616c726561647920696e2064656c6574654c69737400000000000000000000006044820152606401610a32565b6101a080546001810182555f919091527f7980fe0f714a613298681d64b7b8ffa7b148338dd52429f307d72798d5c317c40180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905560995461334b90436144d6565b73ffffffffffffffffffffffffffffffffffffffff9091165f9081526101a16020526040902055565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a754856040516024016133e89291906146da565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcce6cf9f00000000000000000000000000000000000000000000000000000000179052609c5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815261317c9493929190600401614695565b5f5b6101a054811015611298575f73ffffffffffffffffffffffffffffffffffffffff166101a082815481106134d4576134d461447c565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff1603613650576101a15f6101a083815481106135125761351261447c565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120556101a0805461355490600190614538565b815481106135645761356461447c565b5f918252602090912001546101a0805473ffffffffffffffffffffffffffffffffffffffff909216918390811061359d5761359d61447c565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101a08054806135f4576135f46146f2565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905561349e565b436101a15f6101a084815481106136695761366961447c565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902054116138445760a0600161019f5f6101a085815481106136bb576136bb61447c565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020546136f9919060ff1661454b565b60ff1660ff811061370c5761370c61447c565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556101a0805461019f915f918490811061374e5761374e61447c565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556101a080546101a2929190849081106137bf576137bf61447c565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600181018290559061382a6002830182613ca6565b50506101a15f6101a083815481106135125761351261447c565b8061384e81614582565b91505061349e565b6002606554036138c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a32565b6002606555565b8015613995575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114613925576040519150601f19603f3d011682016040523d82523d5f602084013e61392a565b606091505b5050905080610e7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a32565b5050565b6001606555565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613aac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a32565b6115aa613b52565b5f54610100900460ff16613b4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a32565b6115aa613bf1565b5f54610100900460ff16613be8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a32565b6115aa336139a0565b5f54610100900460ff16613999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a32565b60405180611fe0016040528060ff906020820280368337509192915050565b508054613cb2906142c4565b5f825580601f10613cc1575050565b601f0160209004905f5260205f209081019061129891905b80821115613cec575f8155600101613cd9565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613d6457613d64613cf0565b604052919050565b5f82601f830112613d7b575f80fd5b813567ffffffffffffffff811115613d9557613d95613cf0565b613dc660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613d1d565b818152846020838601011115613dda575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613e07575f80fd5b82359150602083013567ffffffffffffffff811115613e24575f80fd5b613e3085828601613d6c565b9150509250929050565b803573ffffffffffffffffffffffffffffffffffffffff811681146119b6575f80fd5b5f60208284031215613e6d575f80fd5b613e7682613e3a565b9392505050565b5f60208284031215613e8d575f80fd5b5035919050565b5f6020808385031215613ea5575f80fd5b823567ffffffffffffffff80821115613ebc575f80fd5b818501915085601f830112613ecf575f80fd5b813581811115613ee157613ee1613cf0565b8060051b9150613ef2848301613d1d565b8181529183018401918481019088841115613f0b575f80fd5b938501935b83851015613f3057613f2185613e3a565b82529385019390850190613f10565b98975050505050505050565b611fe0810181835f5b60ff811015613f7a57815173ffffffffffffffffffffffffffffffffffffffff16835260209283019290910190600101613f45565b50505092915050565b5f8083601f840112613f93575f80fd5b50813567ffffffffffffffff811115613faa575f80fd5b6020830191508360208260051b8501011115613fc4575f80fd5b9250929050565b5f805f805f8060808789031215613fe0575f80fd5b86359550602087013567ffffffffffffffff80821115613ffe575f80fd5b61400a8a838b01613f83565b9097509550604089013594506060890135915080821115614029575f80fd5b818901915089601f83011261403c575f80fd5b81358181111561404a575f80fd5b8a602082850101111561405b575f80fd5b6020830194508093505050509295509295509295565b5f60208284031215614081575f80fd5b813567ffffffffffffffff811115614097575f80fd5b6140a384828501613d6c565b949350505050565b5f805f805f805f60e0888a0312156140c1575f80fd5b6140ca88613e3a565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f5b838110156141135781810151838201526020016140fb565b50505f910152565b5f81518084526141328160208601602086016140f9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f614198606083018461411b565b95945050505050565b5f815180845260208085019450602084015f5b838110156141e657815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016141b4565b509495945050505050565b602081525f613e7660208301846141a1565b5f805f8060408587031215614216575f80fd5b843567ffffffffffffffff8082111561422d575f80fd5b61423988838901613f83565b90965094506020870135915080821115614251575f80fd5b5061425e87828801613f83565b95989497509550505050565b5f806020838503121561427b575f80fd5b823567ffffffffffffffff811115614291575f80fd5b61429d85828601613f83565b90969095509350505050565b5f82516142ba8184602087016140f9565b9190910192915050565b600181811c908216806142d857607f821691505b60208210810361430f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610e7b57805f5260205f20601f840160051c8101602085101561433a5750805b601f840160051c820191505b81811015614359575f8155600101614346565b5050505050565b815167ffffffffffffffff81111561437a5761437a613cf0565b61438e8161438884546142c4565b84614315565b602080601f8311600181146143e0575f84156143aa5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555614474565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561442c5788860151825594840194600190910190840161440d565b508582101561446857878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115611a8457611a846144a9565b8082028115828204841417611a8457611a846144a9565b5f82614533577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115611a8457611a846144a9565b60ff8281168282160390811115611a8457611a846144a9565b5f60ff821660ff8103614579576145796144a9565b60010192915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145b2576145b26144a9565b5060010190565b8183525f60208085019450825f5b858110156141e65773ffffffffffffffffffffffffffffffffffffffff6145ed83613e3a565b16875295820195908201906001016145c7565b604081525f6146136040830186886145b9565b82810360208401526146268185876145b9565b979650505050505050565b60ff8181168382160190811115611a8457611a846144a9565b8281526040602082015273ffffffffffffffffffffffffffffffffffffffff8251166040820152602082015160608201525f60408301516060608084015261419860a084018261411b565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f6146c9608083018561411b565b905082606083015295945050505050565b828152604060208201525f6140a360408301846141a1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L1StakingStorageLayoutJSON), L1StakingStorageLayout); err != nil { diff --git a/bindings/bindings/l2staking.go b/bindings/bindings/l2staking.go index 6889a94ad..6d3b4d552 100644 --- a/bindings/bindings/l2staking.go +++ b/bindings/bindings/l2staking.go @@ -45,8 +45,8 @@ type TypesStakerInfo struct { // L2StakingMetaData contains all meta data concerning the L2Staking contract. var L2StakingMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_otherStaking\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochEffective\",\"type\":\"uint256\"}],\"name\":\"CommissionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"effectiveEpoch\",\"type\":\"uint256\"}],\"name\":\"Delegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"uint256\",\"name\":\"oldTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTime\",\"type\":\"uint256\"}],\"name\":\"RewardStartTimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldSize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSize\",\"type\":\"uint256\"}],\"name\":\"SequencerSetMaxSizeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"name\":\"StakerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"stakerAddresses\",\"type\":\"address[]\"}],\"name\":\"StakerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"effectiveEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"name\":\"Undelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UndelegationClaimed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DISTRIBUTE_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contractICrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MORPH_TOKEN_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_STAKING\",\"outputs\":[{\"internalType\":\"contractStaking\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEQUENCER_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo\",\"name\":\"add\",\"type\":\"tuple\"}],\"name\":\"addStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"candidateNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimCommission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"targetEpochIndex\",\"type\":\"uint256\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimUndelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"commissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"delegateStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"delegations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pageSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pageIndex\",\"type\":\"uint256\"}],\"name\":\"getAllDelegatorsInPagination\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"delegatorsTotalNumber\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"delegatorsInPage\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getDelegatorsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakerAddressesLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakers\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_stakerAddresses\",\"type\":\"address[]\"}],\"name\":\"getStakesInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getUndelegations\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"internalType\":\"structIL2Staking.Undelegation[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_sequencersMaxSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_undelegateLockEpochs\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rewardStartTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"_stakers\",\"type\":\"tuple[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isStakingTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestSequencerSetSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"removeStakers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardStarted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerSetMaxSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"setCommissionRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakerAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakerDelegations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalDelegationAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakerRankings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"undelegateLockEpochs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"undelegateStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"undelegations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardStartTime\",\"type\":\"uint256\"}],\"name\":\"updateRewardStartTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_sequencerSetMaxSize\",\"type\":\"uint256\"}],\"name\":\"updateSequencerSetMaxSize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x61012060405234801562000011575f80fd5b5060405162004bf338038062004bf38339810160408190526200003491620000a7565b7353000000000000000000000000000000000000076080526001600160a01b031660a05273530000000000000000000000000000000000001360c05273530000000000000000000000000000000000001760e05273530000000000000000000000000000000000001461010052620000d6565b5f60208284031215620000b8575f80fd5b81516001600160a01b0381168114620000cf575f80fd5b9392505050565b60805160a05160c05160e05161010051614a53620001a05f395f818161042501528181610d7401528181610e1c0152818161172801528181611e4d0152818161350a01526138cf01525f818161053a01526136c501525f81816106400152818161399001528181613a4501528181613aec01528181613cf501528181613da20152613e4901525f81816104df0152818161070901526127d201525f81816103e8015281816105a2015281816106df01528181610733015281816127a801526127fc0152614a535ff3fe608060405234801561000f575f80fd5b50600436106102cc575f3560e01c8063715018a61161017c578063927ede2d116100dd578063d557714111610093578063f0261bc21161006e578063f0261bc21461068a578063f2fde38b14610693578063fad99f98146106a6575f80fd5b8063d55771411461063b578063e10911b114610662578063ed70b3431461066a575f80fd5b8063b5d2e0dc116100c3578063b5d2e0dc146105d1578063c64814dd146105f0578063d31d83d91461061a575f80fd5b8063927ede2d1461059d57806396ab994d146105c4575f80fd5b806384d7d1d4116101325780638e21d5fb116101185780638e21d5fb146105355780639168ae721461055c57806391bd43a41461057e575f80fd5b806384d7d1d4146105015780638da5cb5b14610524575f80fd5b8063766718081161016257806376671808146104b35780637b05afb5146104bb578063831cfb58146104da575f80fd5b8063715018a6146104a3578063746c8ae1146104ab575f80fd5b80633385ccc21161023157806340b5c837116101e7578063459598a2116101c2578063459598a21461047557806346cdc18a146104885780636d454d5114610490575f80fd5b806340b5c8371461044757806343352d611461045a578063439162b514610462575f80fd5b80633c323a1b116102175780633c323a1b146103d35780633cb747bf146103e65780633d9353fe14610420575f80fd5b80633385ccc2146103b75780633b802421146103ca575f80fd5b8063174e31c4116102865780632cc138be1161026c5780632cc138be146103855780632e787be31461038e57806330158eea14610397575f80fd5b8063174e31c41461035f57806319fac8fd14610372575f80fd5b80630eb573af116102b65780630eb573af1461030b5780630f3b70591461031e57806312a3e94714610356575f80fd5b806243b758146102d05780630be67fcc146102f6575b5f80fd5b6102e36102de366004614148565b6106ae565b6040519081526020015b60405180910390f35b6103096103043660046141ab565b6106d4565b005b6103096103193660046141ea565b610bf9565b61033161032c366004614201565b610d0c565b604080516001600160a01b0390941684526020840192909252908201526060016102ed565b6102e3609a5481565b61030961036d366004614201565b610d54565b6103096103803660046141ea565b610ecc565b6102e360985481565b6102e360995481565b6103aa6103a53660046141ab565b610fee565b6040516102ed919061428c565b6103096103c5366004614148565b611215565b6102e3609c5481565b6103096103e1366004614201565b611870565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102ed565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b6103096104553660046141ea565b611f0a565b6103aa61201d565b610309610470366004614332565b612239565b6104086104833660046141ea565b612775565b609d546102e3565b61030961049e3660046143a0565b61279d565b610309612a6e565b610309612a81565b6102e3612d71565b6102e36104c9366004614148565b60a06020525f908152604090205481565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61051461050f366004614148565b612de5565b60405190151581526020016102ed565b6033546001600160a01b0316610408565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61056f61056a366004614148565b612e0f565b6040516102ed939291906143d7565b6102e361058c366004614148565b60a16020525f908152604090205481565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b6097546105149060ff1681565b6102e36105df366004614148565b609e6020525f908152604090205481565b6102e36105fe366004614407565b60a360209081525f928352604080842090915290825290205481565b61062d61062836600461443e565b612ec1565b6040516102ed9291906144b3565b6104087f000000000000000000000000000000000000000000000000000000000000000081565b61030961303b565b61067d610678366004614148565b6133d5565b6040516102ed91906144d3565b6102e3609b5481565b6103096106a1366004614148565b61346b565b6103096134f8565b6001600160a01b0381165f90815260a2602052604081206106ce906135a6565b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156107bc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b19190614534565b6001600160a01b0316145b6108335760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f805b82811015610bac57609b54609e5f8686858181106108565761085661454f565b905060200201602081019061086b9190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161089557600191505b5f609e5f8686858181106108ab576108ab61454f565b90506020020160208101906108c09190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115610b23575f6001609e5f8787868181106108fe576108fe61454f565b90506020020160208101906109139190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f205461093d91906145a9565b90505b609d5461094f906001906145a9565b811015610a2157609d6109638260016145bc565b815481106109735761097361454f565b5f91825260209091200154609d80546001600160a01b03909216918390811061099e5761099e61454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d84815481106109e1576109e161454f565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190610a149084906145a9565b9091555050600101610940565b50609d805480610a3357610a336145cf565b5f8281526020812082015f1990810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90858584818110610a8357610a8361454f565b9050602002016020810190610a989190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f868685818110610ad057610ad061454f565b9050602002016020810190610ae59190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115610b23576001609c5f828254610b1d91906145a9565b90915550505b609f5f858584818110610b3857610b3861454f565b9050602002016020810190610b4d9190614148565b6001600160a01b0316815260208101919091526040015f90812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590610ba260028301826140ea565b5050600101610836565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618383604051610bde9291906145fc565b60405180910390a18015610bf457610bf46135af565b505050565b610c0161372f565b5f81118015610c1257506099548114155b610c845760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a65000000000000000000000000000000000000000000000000000000000000606482015260840161082a565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610cd957609d54610cdd565b609c545b90505f6099548210610cf157609954610cf3565b815b9050609b548114610d0657610d066135af565b50505050565b60a4602052815f5260405f208181548110610d25575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610d5c613789565b6001600160a01b038216610e12576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610df7575f80fd5b505af1158015610e09573d5f803e3d5ffd5b50505050610ebe565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610ea7575f80fd5b505af1158015610eb9573d5f803e3d5ffd5b505050505b610ec86001606555565b5050565b335f908152609e6020526040902054610f275760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f77656400000000000000000000000000604482015260640161082a565b6014811115610f785760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e0000000000000000000000000000604482015260640161082a565b335f90815260a06020526040812082905560975460ff16610f99575f610fac565b610fa1612d71565b610fac9060016145bc565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff81111561100a5761100a614649565b60405190808252806020026020018201604052801561105657816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816110285790505b5090505f5b8381101561120d576040518060600160405280609f5f8888868181106110835761108361454f565b90506020020160208101906110989190614148565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f908888868181106110d5576110d561454f565b90506020020160208101906110ea9190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f8888868181106111275761112761454f565b905060200201602081019061113c9190614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20600201805461116990614676565b80601f016020809104026020016040519081016040528092919081815260200182805461119590614676565b80156111e05780601f106111b7576101008083540402835291602001916111e0565b820191905f5260205f20905b8154815290600101906020018083116111c357829003601f168201915b50505050508152508282815181106111fa576111fa61454f565b602090810291909101015260010161105b565b509392505050565b61121d613789565b6001600160a01b0381165f90815260a36020908152604080832033845290915290205461128c5760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f00000000000000000000604482015260640161082a565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff166112b8575f6112cb565b6112c0612d71565b6112cb9060016145bc565b6097549091505f9060ff1680156112e0575082155b6112ea57816112f7565b609a546112f790836145bc565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936113b99084906145a9565b90915550506001600160a01b0385165f90815260a2602052604090206113df90336137e9565b506001600160a01b0385165f908152609e602052604090205484158015611408575060975460ff165b80156114155750609c5481105b1561168c576001600160a01b0386165f908152609e602052604081205461143e906001906145a9565b90505b6001609c5461145091906145a9565b81101561168a5760a15f609d838154811061146d5761146d61454f565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d6114a28560016145bc565b815481106114b2576114b261454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611682575f609d82815481106114f0576114f061454f565b5f918252602090912001546001600160a01b03169050609d6115138360016145bc565b815481106115235761152361454f565b5f91825260209091200154609d80546001600160a01b03909216918490811061154e5761154e61454f565b5f91825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905580609d61159c8460016145bc565b815481106115ac576115ac61454f565b5f91825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556115f78260016145bc565b609e5f609d858154811061160d5761160d61454f565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205561163c8260026145bc565b609e5f609d61164c8660016145bc565b8154811061165c5761165c61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b600101611441565b505b841580156116af57506001600160a01b0386165f90815260a16020526040902054155b156116cc576001609c5f8282546116c691906145a9565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b15801561176d575f80fd5b505af115801561177f573d5f803e3d5ffd5b5050505061178a3390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516117e5939291909283526020830191909152604082015260600190565b60405180910390a3841580156117fd575060975460ff165b801561180b5750609b548111155b80156118515750609b546001600160a01b0387165f908152609e602052604090205411806118515750609c546001600160a01b0387165f908152609e6020526040902054115b1561185e5761185e6135af565b505050505061186d6001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906118d65760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b657200000000000000000000000000000000000000000000604482015260640161082a565b6118de613789565b5f821161192d5760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e74000000000000000000000000604482015260640161082a565b6119373384613804565b156119845760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d656400000000000000000000604482015260640161082a565b6001600160a01b0383165f90815260a360209081526040808320338452909152902054611a02576119b5338461388d565b15611a025760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d656400000000000000000000000000000000604482015260640161082a565b6001600160a01b0383165f90815260a1602052604081208054849290611a299084906145bc565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611a609084906145bc565b90915550506001600160a01b0383165f90815260a260205260409020611a869033613942565b506001600160a01b0383165f90815260a16020526040902054829003611abe576001609c5f828254611ab891906145bc565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff168015611ae85750600181115b15611d39575f611af96001836145a9565b90505b8015611d375760a15f609d611b126001856145a9565b81548110611b2257611b2261454f565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d8481548110611b7357611b7361454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611d25575f609d611bab6001846145a9565b81548110611bbb57611bbb61454f565b5f91825260209091200154609d80546001600160a01b0390921692509083908110611be857611be861454f565b5f918252602090912001546001600160a01b0316609d611c096001856145a9565b81548110611c1957611c1961454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d8381548110611c5857611c5861454f565b5f918252602082200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0393909316929092179091558290609e90609d611caa6001856145a9565b81548110611cba57611cba61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611ce98260016145bc565b609e5f609d8581548110611cff57611cff61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611d2f816146c1565b915050611afc565b505b6097545f9060ff16611d4b575f611d5e565b611d53612d71565b611d5e9060016145bc565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611e92575f80fd5b505af1158015611ea4573d5f803e3d5ffd5b50505050611eb9611eb23390565b3086613956565b60975460ff168015611ecc5750609b5482115b8015611ef157506099546001600160a01b0386165f908152609e602052604090205411155b15611efe57611efe6135af565b5050610bf46001606555565b611f1261372f565b60975460ff1615611f655760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c7265616479207374617274656400000000000000000000604482015260640161082a565b4281118015611f7e5750611f7c6201518082614703565b155b8015611f8c57506098548114155b611fd85760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d6500000000000000604482015260640161082a565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff81111561203d5761203d614649565b60405190808252806020026020018201604052801561208957816020015b60408051606080820183525f80835260208301529181019190915281526020019060019003908161205b5790505b5090505f5b609d54811015612233576040518060600160405280609f5f609d85815481106120b9576120b961454f565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f929190869081106121055761210561454f565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d858154811061215e5761215e61454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020600201805461218f90614676565b80601f01602080910402602001604051908101604052809291908181526020018280546121bb90614676565b80156122065780601f106121dd57610100808354040283529160200191612206565b820191905f5260205f20905b8154815290600101906020018083116121e957829003601f168201915b50505050508152508282815181106122205761222061454f565b602090810291909101015260010161208e565b50919050565b5f54610100900460ff161580801561225757505f54600160ff909116105b806122705750303b15801561227057505f5460ff166001145b6122e25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161082a565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561233e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166123945760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e657220616464726573730000000000000000000000604482015260640161082a565b5f86116124095760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f2030000000000000000000000000000000000000000000000000000000000000606482015260840161082a565b5f85116124585760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f63687300000000604482015260640161082a565b4284118015612471575061246f6201518085614703565b155b6124bd5760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d6500000000000000604482015260640161082a565b8161250a5760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b657273000000000000000000604482015260640161082a565b61251387613bc3565b61251b613c2c565b6099869055609a8590556098849055609b8290555f5b609b548110156126975783838281811061254d5761254d61454f565b905060200281019061255f9190614716565b609f5f8686858181106125745761257461454f565b90506020028101906125869190614716565b612594906020810190614148565b6001600160a01b0316815260208101919091526040015f206125b682826147f7565b905050609d8484838181106125cd576125cd61454f565b90506020028101906125df9190614716565b6125ed906020810190614148565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556126419082906145bc565b609e5f8686858181106126565761265661454f565b90506020028101906126689190614716565b612676906020810190614148565b6001600160a01b0316815260208101919091526040015f2055600101612531565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561276c575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612784575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561288557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612856573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061287a9190614534565b6001600160a01b0316145b6128f75760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f7765640000000000000000000000000000000000000000606482015260840161082a565b609e5f6129076020840184614148565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f036129b457609d61293c6020830183614148565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039390931692909217909155609d5491609e9161299a90850185614148565b6001600160a01b0316815260208101919091526040015f20555b80609f5f6129c56020840184614148565b6001600160a01b0316815260208101919091526040015f206129e782826147f7565b506129f790506020820182614148565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d6020830135612a336040850185614752565b604051612a4293929190614969565b60405180910390a260975460ff16158015612a615750609954609d5411155b1561186d5761186d6135af565b612a7661372f565b612a7f5f613bc3565b565b612a8961372f565b609854421015612b005760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d6500000000000000000000000000000000000000000000000000000000606482015260840161082a565b5f609c5411612b515760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e646964617465000000000000000000000000000000000000604482015260640161082a565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612d0e575f5b81811015612d055760a15f609d8381548110612baa57612baa61454f565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d8581548110612bfb57612bfb61454f565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612cfd575f609d8281548110612c3957612c3961454f565b5f91825260209091200154609d80546001600160a01b0390921692509084908110612c6657612c6661454f565b5f91825260209091200154609d80546001600160a01b039092169184908110612c9157612c9161454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d8481548110612cd057612cd061454f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b600101612b8c565b50600101612b80565b505f5b609d54811015612d6857612d268160016145bc565b609e5f609d8481548110612d3c57612d3c61454f565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055600101612d11565b50612a7f6135af565b5f609854421015612dc45760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f7420737461727465642079657400000000000000604482015260640161082a565b6201518060985442612dd691906145a9565b612de091906149bc565b905090565b6001600160a01b0381165f90815260a36020908152604080832033845290915281205415156106ce565b609f6020525f90815260409020805460018201546002830180546001600160a01b03909316939192612e4090614676565b80601f0160208091040260200160405190810160405280929190818152602001828054612e6c90614676565b8015612eb75780601f10612e8e57610100808354040283529160200191612eb7565b820191905f5260205f20905b815481529060010190602001808311612e9a57829003601f168201915b5050505050905083565b5f60605f8411612f135760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a65000000000000000000000000000000604482015260640161082a565b6001600160a01b0385165f90815260a260205260409020612f33906135a6565b91508367ffffffffffffffff811115612f4e57612f4e614649565b604051908082528060200260200182016040528015612f77578160200160208202803683370190505b5090505f612f8584866149cf565b90505f6001612f9486826145bc565b612f9e90886149cf565b612fa891906145a9565b9050612fb56001856145a9565b811115612fca57612fc76001856145a9565b90505b815b818111613030576001600160a01b0388165f90815260a260205260409020612ff49082613cb0565b8482815181106130065761300661454f565b6001600160a01b039092166020928302919091019091015280613028816149e6565b915050612fcc565b505050935093915050565b613043613789565b335f90815260a46020526040812054815b8181101561336f5760975460ff1615806130a45750613071612d71565b335f90815260a4602052604090208054839081106130915761309161454f565b905f5260205f2090600302016002015411155b1561335d57335f90815260a4602052604090208054829081106130c9576130c961454f565b905f5260205f20906003020160010154836130e491906145bc565b335f90815260a46020526040812080549295509091839081106131095761310961454f565b5f91825260208220600390910201546001600160a01b0316915060a48161312d3390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061315d5761315d61454f565b905f5260205f2090600302016002015490505f60a45f61317a3390565b6001600160a01b03166001600160a01b031681526020019081526020015f2084815481106131aa576131aa61454f565b905f5260205f2090600302016001015490506001856131c991906145a9565b84101561329957335f90815260a4602052604090206131e96001876145a9565b815481106131f9576131f961454f565b905f5260205f20906003020160a45f61320f3390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061323f5761323f61454f565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a4602052604090208054806132b6576132b66145cf565b5f8281526020812060035f199093019283020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001818101839055600290910191909155915561330c90866145a9565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a3505050613054565b6133688160016145bc565b9050613054565b505f82116133bf5760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d000000000000000000604482015260640161082a565b6133c93383613cbb565b5050612a7f6001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613460575f848152602090819020604080516060810182526003860290920180546001600160a01b031683526001808201548486015260029091015491830191909152908352909201910161340c565b505050509050919050565b61347361372f565b6001600160a01b0381166134ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161082a565b61186d81613bc3565b613500613789565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015613586575f80fd5b505af1158015613598573d5f803e3d5ffd5b50505050612a7f6001606555565b5f6106ce825490565b60995460975460ff16156135d357609954609c5410156135ce5750609c545b6135e4565b609954609d5410156135e45750609d545b5f8167ffffffffffffffff8111156135fe576135fe614649565b604051908082528060200260200182016040528015613627578160200160208202803683370190505b5090505f5b8281101561369457609d81815481106136475761364761454f565b905f5260205f20015f9054906101000a90046001600160a01b03168282815181106136745761367461454f565b6001600160a01b039092166020928302919091019091015260010161362c565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a4906136fa9084906004016149fe565b5f604051808303815f87803b158015613711575f80fd5b505af1158015613723573d5f803e3d5ffd5b50509151609b55505050565b6033546001600160a01b03163314612a7f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161082a565b6002606554036137db5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161082a565b6002606555565b6001606555565b5f6137fd836001600160a01b038416613f19565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613884576001600160a01b038481165f90815260a460205260409020805491851691839081106138545761385461454f565b5f9182526020909120600390910201546001600160a01b03160361387c5760019150506106ce565b600101613807565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613916573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061393a9190614a10565b159392505050565b5f6137fd836001600160a01b038416613ffc565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156139d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139fb9190614a2f565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613a8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ab19190614a10565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613b33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b579190614a2f565b90505f83118015613b70575082613b6e83836145a9565b145b613bbc5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161082a565b5050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613ca85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161082a565b612a7f614048565b5f6137fd83836140c4565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613d3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d609190614a2f565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015613dea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e0e9190614a10565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613eb49190614a2f565b90505f83118015613ecd575082613ecb83836145a9565b145b610d065760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c65640000000000604482015260640161082a565b5f8181526001830160205260408120548015613ff3575f613f3b6001836145a9565b85549091505f90613f4e906001906145a9565b9050818114613fad575f865f018281548110613f6c57613f6c61454f565b905f5260205f200154905080875f018481548110613f8c57613f8c61454f565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080613fbe57613fbe6145cf565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506106ce565b5f9150506106ce565b5f81815260018301602052604081205461404157508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556106ce565b505f6106ce565b5f54610100900460ff166137e25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161082a565b5f825f0182815481106140d9576140d961454f565b905f5260205f200154905092915050565b5080546140f690614676565b5f825580601f10614105575050565b601f0160209004905f5260205f209081019061186d91905b80821115614130575f815560010161411d565b5090565b6001600160a01b038116811461186d575f80fd5b5f60208284031215614158575f80fd5b81356137fd81614134565b5f8083601f840112614173575f80fd5b50813567ffffffffffffffff81111561418a575f80fd5b6020830191508360208260051b85010111156141a4575f80fd5b9250929050565b5f80602083850312156141bc575f80fd5b823567ffffffffffffffff8111156141d2575f80fd5b6141de85828601614163565b90969095509350505050565b5f602082840312156141fa575f80fd5b5035919050565b5f8060408385031215614212575f80fd5b823561421d81614134565b946020939093013593505050565b5f81518084525f5b8181101561424f57602081850181015186830182015201614233565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015614324578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526143108186018361422b565b9689019694505050908601906001016142b3565b509098975050505050505050565b5f805f805f8060a08789031215614347575f80fd5b863561435281614134565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614382575f80fd5b61438e89828a01614163565b979a9699509497509295939492505050565b5f602082840312156143b0575f80fd5b813567ffffffffffffffff8111156143c6575f80fd5b8201606081850312156137fd575f80fd5b6001600160a01b0384168152826020820152606060408201525f6143fe606083018461422b565b95945050505050565b5f8060408385031215614418575f80fd5b823561442381614134565b9150602083013561443381614134565b809150509250929050565b5f805f60608486031215614450575f80fd5b833561445b81614134565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156144a85781516001600160a01b031687529582019590820190600101614483565b509495945050505050565b828152604060208201525f6144cb6040830184614470565b949350505050565b602080825282518282018190525f919060409081850190868401855b8281101561452757815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016144ef565b5091979650505050505050565b5f60208284031215614544575f80fd5b81516137fd81614134565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156106ce576106ce61457c565b808201808211156106ce576106ce61457c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b8681101561463e57823561462381614134565b6001600160a01b031682529183019190830190600101614610565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061468a57607f821691505b602082108103612233577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f816146cf576146cf61457c565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614711576147116146d6565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614748575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614785575f80fd5b83018035915067ffffffffffffffff82111561479f575f80fd5b6020019150368190038213156141a4575f80fd5b601f821115610bf457805f5260205f20601f840160051c810160208510156147d85750805b601f840160051c820191505b81811015613bbc575f81556001016147e4565b813561480281614134565b6001600160a01b0381167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614879575f80fd5b8501803567ffffffffffffffff811115614891575f80fd5b80360384830113156148a1575f80fd5b6148b5816148af8554614676565b856147b3565b5f601f8211600181146148e8575f83156148d157508382018601355b5f19600385901b1c1916600184901b17855561495e565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561493457868501890135825593880193908901908801614915565b5084821015614952575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b5f826149ca576149ca6146d6565b500490565b80820281158282048414176106ce576106ce61457c565b5f5f1982036149f7576149f761457c565b5060010190565b602081525f6137fd6020830184614470565b5f60208284031215614a20575f80fd5b815180151581146137fd575f80fd5b5f60208284031215614a3f575f80fd5b505191905056fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_otherStaking\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochEffective\",\"type\":\"uint256\"}],\"name\":\"CommissionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"effectiveEpoch\",\"type\":\"uint256\"}],\"name\":\"Delegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"uint256\",\"name\":\"oldTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTime\",\"type\":\"uint256\"}],\"name\":\"RewardStartTimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldSize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSize\",\"type\":\"uint256\"}],\"name\":\"SequencerSetMaxSizeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"name\":\"StakerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"stakerAddresses\",\"type\":\"address[]\"}],\"name\":\"StakerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"effectiveEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"name\":\"Undelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UndelegationClaimed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DISTRIBUTE_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contractICrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MORPH_TOKEN_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_STAKING\",\"outputs\":[{\"internalType\":\"contractStaking\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEQUENCER_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo\",\"name\":\"add\",\"type\":\"tuple\"}],\"name\":\"addStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"candidateNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimCommission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"targetEpochIndex\",\"type\":\"uint256\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimUndelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"commissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"delegateStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"delegations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo\",\"name\":\"add\",\"type\":\"tuple\"}],\"name\":\"emergencyAddStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"emergencyRemoveStakers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pageSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pageIndex\",\"type\":\"uint256\"}],\"name\":\"getAllDelegatorsInPagination\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"delegatorsTotalNumber\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"delegatorsInPage\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getDelegatorsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakerAddressesLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakers\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_stakerAddresses\",\"type\":\"address[]\"}],\"name\":\"getStakesInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getUndelegations\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"internalType\":\"structIL2Staking.Undelegation[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_sequencersMaxSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_undelegateLockEpochs\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rewardStartTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"_stakers\",\"type\":\"tuple[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isStakingTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestSequencerSetSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"removeStakers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardStarted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerSetMaxSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"setCommissionRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakerAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakerDelegations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalDelegationAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakerRankings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"undelegateLockEpochs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"undelegateStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"undelegations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardStartTime\",\"type\":\"uint256\"}],\"name\":\"updateRewardStartTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_sequencerSetMaxSize\",\"type\":\"uint256\"}],\"name\":\"updateSequencerSetMaxSize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x61012060405234801562000011575f80fd5b50604051620050a1380380620050a18339810160408190526200003491620000a7565b7353000000000000000000000000000000000000076080526001600160a01b031660a05273530000000000000000000000000000000000001360c05273530000000000000000000000000000000000001760e05273530000000000000000000000000000000000001461010052620000d6565b5f60208284031215620000b8575f80fd5b81516001600160a01b0381168114620000cf575f80fd5b9392505050565b60805160a05160c05160e05161010051614f01620001a05f395f818161044501528181610a7c01528181610b240152818161140f01528181611b29015281816135ba0152613d4a01525f818161055a0152613b9a01525f818161067c01528181613e0b01528181613ec001528181613f670152818161415e0152818161420b01526142b201525f81816104ff015281816124a30152612a5001525f8181610408015281816105c201528181612479015281816124cd01528181612a260152612a7a0152614f015ff3fe608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106cf578063fad99f98146106e2578063fc6facc6146106ea575f80fd5b8063e10911b11461069e578063ed70b343146106a6578063f0261bc2146106c6575f80fd5b8063cce6cf9f116100c3578063cce6cf9f14610643578063d31d83d914610656578063d557714114610677575f80fd5b8063affed0e0146105f1578063b5d2e0dc146105fa578063c64814dd14610619575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a41461059e578063927ede2d146105bd57806396ab994d146105e4575f80fd5b80638da5cb5b146105445780638e21d5fb146105555780639168ae721461057c575f80fd5b80637b05afb5116101785780637b05afb5146104db578063831cfb58146104fa57806384d7d1d414610521575f80fd5b8063746c8ae1146104cb57806376671808146104d3575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104a85780637046529b146104b0578063715018a6146104c3575f80fd5b806343352d611461047a578063439162b514610482578063459598a214610495575f80fd5b80633cb747bf1161022d5780633cb747bf146104065780633d9353fe1461044057806340b5c83714610467575f80fd5b80633b802421146103ea5780633c323a1b146103f3575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103ae57806330158eea146103b75780633385ccc2146103d7575f80fd5b8063174e31c41461037f57806319fac8fd146103925780632cc138be146103a5575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610376575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe3660046145b1565b6106fd565b6040519081526020015b60405180910390f35b6103296103243660046145cc565b610723565b005b610329610339366004614616565b610901565b61035161034c36600461462d565b610a14565b604080516001600160a01b03909416845260208401929092529082015260600161030d565b610303609a5481565b61032961038d36600461462d565b610a5c565b6103296103a0366004614616565b610bd4565b61030360985481565b61030360995481565b6103ca6103c536600461469f565b610cf6565b60405161030d919061473f565b6103296103e53660046145b1565b610f1d565b610303609c5481565b61032961040136600461462d565b611557565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161030d565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329610475366004614616565b611be6565b6103ca611cf9565b6103296104903660046147e5565b611f15565b6104286104a3366004614616565b612446565b609d54610303565b6103296104be3660046145cc565b61246e565b6103296125c8565b6103296125db565b6103036128cb565b6103036104e93660046145b1565b60a06020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61053461052f3660046145b1565b61293f565b604051901515815260200161030d565b6033546001600160a01b0316610428565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61058f61058a3660046145b1565b612969565b60405161030d93929190614853565b6103036105ac3660046145b1565b60a16020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b6097546105349060ff1681565b61030360a55481565b6103036106083660046145b1565b609e6020525f908152604090205481565b610303610627366004614883565b60a360209081525f928352604080842090915290825290205481565b6103296106513660046148af565b612a1b565b6106696106643660046148f7565b612f87565b60405161030d92919061496c565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329613101565b6106b96106b43660046145b1565b613485565b60405161030d919061498c565b610303609b5481565b6103296106dd3660046145b1565b61351b565b6103296135a8565b6103296106f83660046148af565b613656565b6001600160a01b0381165f90815260a26020526040812061071d90613a21565b92915050565b61072b613a2a565b8160a55481146107825760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b61078d836001614a1a565b60a555609e5f6107a060208501856145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f0361084257609d6107d560208401846145b1565b81546001810183555f9283526020808420909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155609d5491609e91610828908601866145b1565b6001600160a01b0316815260208101919091526040015f20555b81609f5f61085360208401846145b1565b6001600160a01b0316815260208101919091526040015f206108758282614b4a565b50610885905060208301836145b1565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208401356108c16040860186614a2d565b6040516108d093929190614cb1565b60405180910390a260975460ff161580156108ef5750609954609d5411155b156108fc576108fc613a84565b505050565b610909613a2a565b5f8111801561091a57506099548114155b61098c5760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a650000000000000000000000000000000000000000000000000000000000006064820152608401610779565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff166109e157609d546109e5565b609c545b90505f60995482106109f9576099546109fb565b815b9050609b548114610a0e57610a0e613a84565b50505050565b60a4602052815f5260405f208181548110610a2d575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610a64613c04565b6001600160a01b038216610b1a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610aff575f80fd5b505af1158015610b11573d5f803e3d5ffd5b50505050610bc6565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610baf575f80fd5b505af1158015610bc1573d5f803e3d5ffd5b505050505b610bd06001606555565b5050565b335f908152609e6020526040902054610c2f5760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f776564000000000000000000000000006044820152606401610779565b6014811115610c805760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e00000000000000000000000000006044820152606401610779565b335f90815260a06020526040812082905560975460ff16610ca1575f610cb4565b610ca96128cb565b610cb4906001614a1a565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610d1257610d12614a8e565b604051908082528060200260200182016040528015610d5e57816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610d305790505b5090505f5b83811015610f15576040518060600160405280609f5f888886818110610d8b57610d8b614d04565b9050602002016020810190610da091906145b1565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610ddd57610ddd614d04565b9050602002016020810190610df291906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f888886818110610e2f57610e2f614d04565b9050602002016020810190610e4491906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f206002018054610e7190614abb565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9d90614abb565b8015610ee85780601f10610ebf57610100808354040283529160200191610ee8565b820191905f5260205f20905b815481529060010190602001808311610ecb57829003601f168201915b5050505050815250828281518110610f0257610f02614d04565b6020908102919091010152600101610d63565b509392505050565b610f25613c04565b6001600160a01b0381165f90815260a360209081526040808320338452909152902054610f945760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f000000000000000000006044820152606401610779565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff16610fc0575f610fd3565b610fc86128cb565b610fd3906001614a1a565b6097549091505f9060ff168015610fe8575082155b610ff25781610fff565b609a54610fff9083614a1a565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c51600390920201805473ffffffffffffffffffffffffffffffffffffffff191691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936110b6908490614d31565b90915550506001600160a01b0385165f90815260a2602052604090206110dc9033613c64565b506001600160a01b0385165f908152609e602052604090205484158015611105575060975460ff165b80156111125750609c5481105b15611373576001600160a01b0386165f908152609e602052604081205461113b90600190614d31565b90505b6001609c5461114d9190614d31565b8110156113715760a15f609d838154811061116a5761116a614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d61119f856001614a1a565b815481106111af576111af614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611369575f609d82815481106111ed576111ed614d04565b5f918252602090912001546001600160a01b03169050609d611210836001614a1a565b8154811061122057611220614d04565b5f91825260209091200154609d80546001600160a01b03909216918490811061124b5761124b614d04565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905580609d61128e846001614a1a565b8154811061129e5761129e614d04565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556112de826001614a1a565b609e5f609d85815481106112f4576112f4614d04565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611323826002614a1a565b609e5f609d611333866001614a1a565b8154811061134357611343614d04565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b60010161113e565b505b8415801561139657506001600160a01b0386165f90815260a16020526040902054155b156113b3576001609c5f8282546113ad9190614d31565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611454575f80fd5b505af1158015611466573d5f803e3d5ffd5b505050506114713390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516114cc939291909283526020830191909152604082015260600190565b60405180910390a3841580156114e4575060975460ff165b80156114f25750609b548111155b80156115385750609b546001600160a01b0387165f908152609e602052604090205411806115385750609c546001600160a01b0387165f908152609e6020526040902054115b1561154557611545613a84565b50505050506115546001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906115bd5760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6572000000000000000000000000000000000000000000006044820152606401610779565b6115c5613c04565b5f82116116145760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e740000000000000000000000006044820152606401610779565b61161e3384613c7f565b1561166b5760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d6564000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a3602090815260408083203384529091529020546116e95761169c3384613d08565b156116e95760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d6564000000000000000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a1602052604081208054849290611710908490614a1a565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611747908490614a1a565b90915550506001600160a01b0383165f90815260a26020526040902061176d9033613dbd565b506001600160a01b0383165f90815260a160205260409020548290036117a5576001609c5f82825461179f9190614a1a565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff1680156117cf5750600181115b15611a15575f6117e0600183614d31565b90505b8015611a135760a15f609d6117f9600185614d31565b8154811061180957611809614d04565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d848154811061185a5761185a614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611a01575f609d611892600184614d31565b815481106118a2576118a2614d04565b5f91825260209091200154609d80546001600160a01b03909216925090839081106118cf576118cf614d04565b5f918252602090912001546001600160a01b0316609d6118f0600185614d31565b8154811061190057611900614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d838154811061193f5761193f614d04565b5f9182526020822001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0393909316929092179091558290609e90609d611986600185614d31565b8154811061199657611996614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020556119c5826001614a1a565b609e5f609d85815481106119db576119db614d04565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611a0b81614d44565b9150506117e3565b505b6097545f9060ff16611a27575f611a3a565b611a2f6128cb565b611a3a906001614a1a565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611b6e575f80fd5b505af1158015611b80573d5f803e3d5ffd5b50505050611b95611b8e3390565b3086613dd1565b60975460ff168015611ba85750609b5482115b8015611bcd57506099546001600160a01b0386165f908152609e602052604090205411155b15611bda57611bda613a84565b50506108fc6001606555565b611bee613a2a565b60975460ff1615611c415760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c72656164792073746172746564000000000000000000006044820152606401610779565b4281118015611c5a5750611c586201518082614d86565b155b8015611c6857506098548114155b611cb45760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff811115611d1957611d19614a8e565b604051908082528060200260200182016040528015611d6557816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081611d375790505b5090505f5b609d54811015611f0f576040518060600160405280609f5f609d8581548110611d9557611d95614d04565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110611de157611de1614d04565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d8581548110611e3a57611e3a614d04565b5f9182526020808320909101546001600160a01b0316835282019290925260400190206002018054611e6b90614abb565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9790614abb565b8015611ee25780601f10611eb957610100808354040283529160200191611ee2565b820191905f5260205f20905b815481529060010190602001808311611ec557829003601f168201915b5050505050815250828281518110611efc57611efc614d04565b6020908102919091010152600101611d6a565b50919050565b5f54610100900460ff1615808015611f3357505f54600160ff909116105b80611f4c5750303b158015611f4c57505f5460ff166001145b611fbe5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610779565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561201a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166120705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610779565b5f86116120e55760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f20300000000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f85116121345760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f636873000000006044820152606401610779565b428411801561214d575061214b6201518085614d86565b155b6121995760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b816121e65760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b6572730000000000000000006044820152606401610779565b6121ef87614037565b6121f7614095565b6099869055609a8590556098849055609b8290555f5b609b548110156123685783838281811061222957612229614d04565b905060200281019061223b9190614d99565b609f5f86868581811061225057612250614d04565b90506020028101906122629190614d99565b6122709060208101906145b1565b6001600160a01b0316815260208101919091526040015f206122928282614b4a565b905050609d8484838181106122a9576122a9614d04565b90506020028101906122bb9190614d99565b6122c99060208101906145b1565b8154600180820184555f938452602090932001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612312908290614a1a565b609e5f86868581811061232757612327614d04565b90506020028101906123399190614d99565b6123479060208101906145b1565b6001600160a01b0316815260208101919091526040015f205560010161220d565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561243d575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612455575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561255657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061254b9190614dd5565b6001600160a01b0316145b61072b5760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b6125d0613a2a565b6125d95f614037565b565b6125e3613a2a565b60985442101561265a5760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d65000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f609c54116126ab5760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e6469646174650000000000000000000000000000000000006044820152606401610779565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612868575f5b8181101561285f5760a15f609d838154811061270457612704614d04565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d858154811061275557612755614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612857575f609d828154811061279357612793614d04565b5f91825260209091200154609d80546001600160a01b03909216925090849081106127c0576127c0614d04565b5f91825260209091200154609d80546001600160a01b0390921691849081106127eb576127eb614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d848154811061282a5761282a614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b6001016126e6565b506001016126da565b505f5b609d548110156128c257612880816001614a1a565b609e5f609d848154811061289657612896614d04565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205560010161286b565b506125d9613a84565b5f60985442101561291e5760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f74207374617274656420796574000000000000006044820152606401610779565b62015180609854426129309190614d31565b61293a9190614df0565b905090565b6001600160a01b0381165f90815260a360209081526040808320338452909152812054151561071d565b609f6020525f90815260409020805460018201546002830180546001600160a01b0390931693919261299a90614abb565b80601f01602080910402602001604051908101604052809291908181526020018280546129c690614abb565b8015612a115780601f106129e857610100808354040283529160200191612a11565b820191905f5260205f20905b8154815290600101906020018083116129f457829003601f168201915b5050505050905083565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612b0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af89190614dd5565b6001600160a01b0316145b612b755760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b8260a5548114612bc75760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b612bd2846001614a1a565b60a5555f805b83811015612f3857609b54609e5f878785818110612bf857612bf8614d04565b9050602002016020810190612c0d91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205411612c3757600191505b5f609e5f878785818110612c4d57612c4d614d04565b9050602002016020810190612c6291906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba575f6001609e5f888886818110612ca057612ca0614d04565b9050602002016020810190612cb591906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f2054612cdf9190614d31565b90505b609d54612cf190600190614d31565b811015612dc357609d612d05826001614a1a565b81548110612d1557612d15614d04565b5f91825260209091200154609d80546001600160a01b039092169183908110612d4057612d40614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d8481548110612d8357612d83614d04565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190612db6908490614d31565b9091555050600101612ce2565b50609d805480612dd557612dd5614e03565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e90868684818110612e1a57612e1a614d04565b9050602002016020810190612e2f91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f878785818110612e6757612e67614d04565b9050602002016020810190612e7c91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba576001609c5f828254612eb49190614d31565b90915550505b609f5f868684818110612ecf57612ecf614d04565b9050602002016020810190612ee491906145b1565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590612f2e6002830182614553565b5050600101612bd8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618484604051612f6a929190614e30565b60405180910390a18015612f8057612f80613a84565b5050505050565b5f60605f8411612fd95760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a650000000000000000000000000000006044820152606401610779565b6001600160a01b0385165f90815260a260205260409020612ff990613a21565b91508367ffffffffffffffff81111561301457613014614a8e565b60405190808252806020026020018201604052801561303d578160200160208202803683370190505b5090505f61304b8486614e7d565b90505f600161305a8682614a1a565b6130649088614e7d565b61306e9190614d31565b905061307b600185614d31565b8111156130905761308d600185614d31565b90505b815b8181116130f6576001600160a01b0388165f90815260a2602052604090206130ba9082614119565b8482815181106130cc576130cc614d04565b6001600160a01b0390921660209283029190910190910152806130ee81614e94565b915050613092565b505050935093915050565b613109613c04565b335f90815260a46020526040812054815b8181101561341f5760975460ff16158061316a57506131376128cb565b335f90815260a46020526040902080548390811061315757613157614d04565b905f5260205f2090600302016002015411155b1561340d57335f90815260a46020526040902080548290811061318f5761318f614d04565b905f5260205f20906003020160010154836131aa9190614a1a565b335f90815260a46020526040812080549295509091839081106131cf576131cf614d04565b5f91825260208220600390910201546001600160a01b0316915060a4816131f33390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061322357613223614d04565b905f5260205f2090600302016002015490505f60a45f6132403390565b6001600160a01b03166001600160a01b031681526020019081526020015f20848154811061327057613270614d04565b905f5260205f20906003020160010154905060018561328f9190614d31565b84101561335457335f90815260a4602052604090206132af600187614d31565b815481106132bf576132bf614d04565b905f5260205f20906003020160a45f6132d53390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061330557613305614d04565b5f91825260209091208254600390920201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a46020526040902080548061337157613371614e03565b5f8281526020812060035f1990930192830201805473ffffffffffffffffffffffffffffffffffffffff19168155600181810183905560029091019190915591556133bc9086614d31565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a350505061311a565b613418816001614a1a565b905061311a565b505f821161346f5760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d0000000000000000006044820152606401610779565b6134793383614124565b50506125d96001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613510575f848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016134bc565b505050509050919050565b613523613a2a565b6001600160a01b03811661359f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610779565b61155481614037565b6135b0613c04565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015613636575f80fd5b505af1158015613648573d5f803e3d5ffd5b505050506125d96001606555565b61365e613a2a565b8260a55481146136b05760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b6136bb846001614a1a565b60a5555f805b83811015612f3857609b54609e5f8787858181106136e1576136e1614d04565b90506020020160208101906136f691906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161372057600191505b5f609e5f87878581811061373657613736614d04565b905060200201602081019061374b91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139a3575f6001609e5f88888681811061378957613789614d04565b905060200201602081019061379e91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20546137c89190614d31565b90505b609d546137da90600190614d31565b8110156138ac57609d6137ee826001614a1a565b815481106137fe576137fe614d04565b5f91825260209091200154609d80546001600160a01b03909216918390811061382957613829614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d848154811061386c5761386c614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040018120805490919061389f908490614d31565b90915550506001016137cb565b50609d8054806138be576138be614e03565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e9086868481811061390357613903614d04565b905060200201602081019061391891906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f87878581811061395057613950614d04565b905060200201602081019061396591906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139a3576001609c5f82825461399d9190614d31565b90915550505b609f5f8686848181106139b8576139b8614d04565b90506020020160208101906139cd91906145b1565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590613a176002830182614553565b50506001016136c1565b5f61071d825490565b6033546001600160a01b031633146125d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610779565b60995460975460ff1615613aa857609954609c541015613aa35750609c545b613ab9565b609954609d541015613ab95750609d545b5f8167ffffffffffffffff811115613ad357613ad3614a8e565b604051908082528060200260200182016040528015613afc578160200160208202803683370190505b5090505f5b82811015613b6957609d8181548110613b1c57613b1c614d04565b905f5260205f20015f9054906101000a90046001600160a01b0316828281518110613b4957613b49614d04565b6001600160a01b0390921660209283029190910190910152600101613b01565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490613bcf908490600401614eac565b5f604051808303815f87803b158015613be6575f80fd5b505af1158015613bf8573d5f803e3d5ffd5b50509151609b55505050565b600260655403613c565760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610779565b6002606555565b6001606555565b5f613c78836001600160a01b038416614382565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613cff576001600160a01b038481165f90815260a46020526040902080549185169183908110613ccf57613ccf614d04565b5f9182526020909120600390910201546001600160a01b031603613cf757600191505061071d565b600101613c82565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613db59190614ebe565b159392505050565b5f613c78836001600160a01b038416614465565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e769190614edd565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613f08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f2c9190614ebe565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613fae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fd29190614edd565b90505f83118015613feb575082613fe98383614d31565b145b612f805760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166141115760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b6125d96144b1565b5f613c78838361452d565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156141a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141c99190614edd565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614253573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142779190614ebe565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156142f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061431d9190614edd565b90505f831180156143365750826143348383614d31565b145b610a0e5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b5f818152600183016020526040812054801561445c575f6143a4600183614d31565b85549091505f906143b790600190614d31565b9050818114614416575f865f0182815481106143d5576143d5614d04565b905f5260205f200154905080875f0184815481106143f5576143f5614d04565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061442757614427614e03565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061071d565b5f91505061071d565b5f8181526001830160205260408120546144aa57508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561071d565b505f61071d565b5f54610100900460ff16613c5d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b5f825f01828154811061454257614542614d04565b905f5260205f200154905092915050565b50805461455f90614abb565b5f825580601f1061456e575050565b601f0160209004905f5260205f209081019061155491905b80821115614599575f8155600101614586565b5090565b6001600160a01b0381168114611554575f80fd5b5f602082840312156145c1575f80fd5b8135613c788161459d565b5f80604083850312156145dd575f80fd5b82359150602083013567ffffffffffffffff8111156145fa575f80fd5b83016060818603121561460b575f80fd5b809150509250929050565b5f60208284031215614626575f80fd5b5035919050565b5f806040838503121561463e575f80fd5b82356146498161459d565b946020939093013593505050565b5f8083601f840112614667575f80fd5b50813567ffffffffffffffff81111561467e575f80fd5b6020830191508360208260051b8501011115614698575f80fd5b9250929050565b5f80602083850312156146b0575f80fd5b823567ffffffffffffffff8111156146c6575f80fd5b6146d285828601614657565b90969095509350505050565b5f81518084525f5b81811015614702576020818501810151868301820152016146e6565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156147d7578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526147c3818601836146de565b968901969450505090860190600101614766565b509098975050505050505050565b5f805f805f8060a087890312156147fa575f80fd5b86356148058161459d565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614835575f80fd5b61484189828a01614657565b979a9699509497509295939492505050565b6001600160a01b0384168152826020820152606060408201525f61487a60608301846146de565b95945050505050565b5f8060408385031215614894575f80fd5b823561489f8161459d565b9150602083013561460b8161459d565b5f805f604084860312156148c1575f80fd5b83359250602084013567ffffffffffffffff8111156148de575f80fd5b6148ea86828701614657565b9497909650939450505050565b5f805f60608486031215614909575f80fd5b83356149148161459d565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156149615781516001600160a01b03168752958201959082019060010161493c565b509495945050505050565b828152604060208201525f6149846040830184614929565b949350505050565b602080825282518282018190525f919060409081850190868401855b828110156149e057815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016149a8565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561071d5761071d6149ed565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a60575f80fd5b83018035915067ffffffffffffffff821115614a7a575f80fd5b602001915036819003821315614698575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680614acf57607f821691505b602082108103611f0f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156108fc57805f5260205f20601f840160051c81016020851015614b2b5750805b601f840160051c820191505b81811015612f80575f8155600101614b37565b8135614b558161459d565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614bc1575f80fd5b8501803567ffffffffffffffff811115614bd9575f80fd5b8036038483011315614be9575f80fd5b614bfd81614bf78554614abb565b85614b06565b5f601f821160018114614c30575f8315614c1957508382018601355b5f19600385901b1c1916600184901b178555614ca6565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614c7c57868501890135825593880193908901908801614c5d565b5084821015614c9a575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8181038181111561071d5761071d6149ed565b5f81614d5257614d526149ed565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614d9457614d94614d59565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614dcb575f80fd5b9190910192915050565b5f60208284031215614de5575f80fd5b8151613c788161459d565b5f82614dfe57614dfe614d59565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015614e72578235614e578161459d565b6001600160a01b031682529183019190830190600101614e44565b509695505050505050565b808202811582820484141761071d5761071d6149ed565b5f5f198203614ea557614ea56149ed565b5060010190565b602081525f613c786020830184614929565b5f60208284031215614ece575f80fd5b81518015158114613c78575f80fd5b5f60208284031215614eed575f80fd5b505191905056fea164736f6c6343000818000a", } // L2StakingABI is the input ABI used to generate the binding from. @@ -788,6 +788,37 @@ func (_L2Staking *L2StakingCallerSession) Messenger() (common.Address, error) { return _L2Staking.Contract.Messenger(&_L2Staking.CallOpts) } +// Nonce is a free data retrieval call binding the contract method 0xaffed0e0. +// +// Solidity: function nonce() view returns(uint256) +func (_L2Staking *L2StakingCaller) Nonce(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _L2Staking.contract.Call(opts, &out, "nonce") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Nonce is a free data retrieval call binding the contract method 0xaffed0e0. +// +// Solidity: function nonce() view returns(uint256) +func (_L2Staking *L2StakingSession) Nonce() (*big.Int, error) { + return _L2Staking.Contract.Nonce(&_L2Staking.CallOpts) +} + +// Nonce is a free data retrieval call binding the contract method 0xaffed0e0. +// +// Solidity: function nonce() view returns(uint256) +func (_L2Staking *L2StakingCallerSession) Nonce() (*big.Int, error) { + return _L2Staking.Contract.Nonce(&_L2Staking.CallOpts) +} + // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // // Solidity: function owner() view returns(address) @@ -1136,25 +1167,25 @@ func (_L2Staking *L2StakingCallerSession) Undelegations(delegator common.Address return _L2Staking.Contract.Undelegations(&_L2Staking.CallOpts, delegator, arg1) } -// AddStaker is a paid mutator transaction binding the contract method 0x6d454d51. +// AddStaker is a paid mutator transaction binding the contract method 0x7046529b. // -// Solidity: function addStaker((address,bytes32,bytes) add) returns() -func (_L2Staking *L2StakingTransactor) AddStaker(opts *bind.TransactOpts, add TypesStakerInfo) (*types.Transaction, error) { - return _L2Staking.contract.Transact(opts, "addStaker", add) +// Solidity: function addStaker(uint256 _nonce, (address,bytes32,bytes) add) returns() +func (_L2Staking *L2StakingTransactor) AddStaker(opts *bind.TransactOpts, _nonce *big.Int, add TypesStakerInfo) (*types.Transaction, error) { + return _L2Staking.contract.Transact(opts, "addStaker", _nonce, add) } -// AddStaker is a paid mutator transaction binding the contract method 0x6d454d51. +// AddStaker is a paid mutator transaction binding the contract method 0x7046529b. // -// Solidity: function addStaker((address,bytes32,bytes) add) returns() -func (_L2Staking *L2StakingSession) AddStaker(add TypesStakerInfo) (*types.Transaction, error) { - return _L2Staking.Contract.AddStaker(&_L2Staking.TransactOpts, add) +// Solidity: function addStaker(uint256 _nonce, (address,bytes32,bytes) add) returns() +func (_L2Staking *L2StakingSession) AddStaker(_nonce *big.Int, add TypesStakerInfo) (*types.Transaction, error) { + return _L2Staking.Contract.AddStaker(&_L2Staking.TransactOpts, _nonce, add) } -// AddStaker is a paid mutator transaction binding the contract method 0x6d454d51. +// AddStaker is a paid mutator transaction binding the contract method 0x7046529b. // -// Solidity: function addStaker((address,bytes32,bytes) add) returns() -func (_L2Staking *L2StakingTransactorSession) AddStaker(add TypesStakerInfo) (*types.Transaction, error) { - return _L2Staking.Contract.AddStaker(&_L2Staking.TransactOpts, add) +// Solidity: function addStaker(uint256 _nonce, (address,bytes32,bytes) add) returns() +func (_L2Staking *L2StakingTransactorSession) AddStaker(_nonce *big.Int, add TypesStakerInfo) (*types.Transaction, error) { + return _L2Staking.Contract.AddStaker(&_L2Staking.TransactOpts, _nonce, add) } // ClaimCommission is a paid mutator transaction binding the contract method 0xfad99f98. @@ -1241,6 +1272,48 @@ func (_L2Staking *L2StakingTransactorSession) DelegateStake(delegatee common.Add return _L2Staking.Contract.DelegateStake(&_L2Staking.TransactOpts, delegatee, amount) } +// EmergencyAddStaker is a paid mutator transaction binding the contract method 0x009c6f0c. +// +// Solidity: function emergencyAddStaker(uint256 _nonce, (address,bytes32,bytes) add) returns() +func (_L2Staking *L2StakingTransactor) EmergencyAddStaker(opts *bind.TransactOpts, _nonce *big.Int, add TypesStakerInfo) (*types.Transaction, error) { + return _L2Staking.contract.Transact(opts, "emergencyAddStaker", _nonce, add) +} + +// EmergencyAddStaker is a paid mutator transaction binding the contract method 0x009c6f0c. +// +// Solidity: function emergencyAddStaker(uint256 _nonce, (address,bytes32,bytes) add) returns() +func (_L2Staking *L2StakingSession) EmergencyAddStaker(_nonce *big.Int, add TypesStakerInfo) (*types.Transaction, error) { + return _L2Staking.Contract.EmergencyAddStaker(&_L2Staking.TransactOpts, _nonce, add) +} + +// EmergencyAddStaker is a paid mutator transaction binding the contract method 0x009c6f0c. +// +// Solidity: function emergencyAddStaker(uint256 _nonce, (address,bytes32,bytes) add) returns() +func (_L2Staking *L2StakingTransactorSession) EmergencyAddStaker(_nonce *big.Int, add TypesStakerInfo) (*types.Transaction, error) { + return _L2Staking.Contract.EmergencyAddStaker(&_L2Staking.TransactOpts, _nonce, add) +} + +// EmergencyRemoveStakers is a paid mutator transaction binding the contract method 0xfc6facc6. +// +// Solidity: function emergencyRemoveStakers(uint256 _nonce, address[] remove) returns() +func (_L2Staking *L2StakingTransactor) EmergencyRemoveStakers(opts *bind.TransactOpts, _nonce *big.Int, remove []common.Address) (*types.Transaction, error) { + return _L2Staking.contract.Transact(opts, "emergencyRemoveStakers", _nonce, remove) +} + +// EmergencyRemoveStakers is a paid mutator transaction binding the contract method 0xfc6facc6. +// +// Solidity: function emergencyRemoveStakers(uint256 _nonce, address[] remove) returns() +func (_L2Staking *L2StakingSession) EmergencyRemoveStakers(_nonce *big.Int, remove []common.Address) (*types.Transaction, error) { + return _L2Staking.Contract.EmergencyRemoveStakers(&_L2Staking.TransactOpts, _nonce, remove) +} + +// EmergencyRemoveStakers is a paid mutator transaction binding the contract method 0xfc6facc6. +// +// Solidity: function emergencyRemoveStakers(uint256 _nonce, address[] remove) returns() +func (_L2Staking *L2StakingTransactorSession) EmergencyRemoveStakers(_nonce *big.Int, remove []common.Address) (*types.Transaction, error) { + return _L2Staking.Contract.EmergencyRemoveStakers(&_L2Staking.TransactOpts, _nonce, remove) +} + // Initialize is a paid mutator transaction binding the contract method 0x439162b5. // // Solidity: function initialize(address _owner, uint256 _sequencersMaxSize, uint256 _undelegateLockEpochs, uint256 _rewardStartTime, (address,bytes32,bytes)[] _stakers) returns() @@ -1262,25 +1335,25 @@ func (_L2Staking *L2StakingTransactorSession) Initialize(_owner common.Address, return _L2Staking.Contract.Initialize(&_L2Staking.TransactOpts, _owner, _sequencersMaxSize, _undelegateLockEpochs, _rewardStartTime, _stakers) } -// RemoveStakers is a paid mutator transaction binding the contract method 0x0be67fcc. +// RemoveStakers is a paid mutator transaction binding the contract method 0xcce6cf9f. // -// Solidity: function removeStakers(address[] remove) returns() -func (_L2Staking *L2StakingTransactor) RemoveStakers(opts *bind.TransactOpts, remove []common.Address) (*types.Transaction, error) { - return _L2Staking.contract.Transact(opts, "removeStakers", remove) +// Solidity: function removeStakers(uint256 _nonce, address[] remove) returns() +func (_L2Staking *L2StakingTransactor) RemoveStakers(opts *bind.TransactOpts, _nonce *big.Int, remove []common.Address) (*types.Transaction, error) { + return _L2Staking.contract.Transact(opts, "removeStakers", _nonce, remove) } -// RemoveStakers is a paid mutator transaction binding the contract method 0x0be67fcc. +// RemoveStakers is a paid mutator transaction binding the contract method 0xcce6cf9f. // -// Solidity: function removeStakers(address[] remove) returns() -func (_L2Staking *L2StakingSession) RemoveStakers(remove []common.Address) (*types.Transaction, error) { - return _L2Staking.Contract.RemoveStakers(&_L2Staking.TransactOpts, remove) +// Solidity: function removeStakers(uint256 _nonce, address[] remove) returns() +func (_L2Staking *L2StakingSession) RemoveStakers(_nonce *big.Int, remove []common.Address) (*types.Transaction, error) { + return _L2Staking.Contract.RemoveStakers(&_L2Staking.TransactOpts, _nonce, remove) } -// RemoveStakers is a paid mutator transaction binding the contract method 0x0be67fcc. +// RemoveStakers is a paid mutator transaction binding the contract method 0xcce6cf9f. // -// Solidity: function removeStakers(address[] remove) returns() -func (_L2Staking *L2StakingTransactorSession) RemoveStakers(remove []common.Address) (*types.Transaction, error) { - return _L2Staking.Contract.RemoveStakers(&_L2Staking.TransactOpts, remove) +// Solidity: function removeStakers(uint256 _nonce, address[] remove) returns() +func (_L2Staking *L2StakingTransactorSession) RemoveStakers(_nonce *big.Int, remove []common.Address) (*types.Transaction, error) { + return _L2Staking.Contract.RemoveStakers(&_L2Staking.TransactOpts, _nonce, remove) } // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. diff --git a/bindings/bindings/l2staking_more.go b/bindings/bindings/l2staking_more.go index 9488720ab..828c89dfc 100644 --- a/bindings/bindings/l2staking_more.go +++ b/bindings/bindings/l2staking_more.go @@ -9,11 +9,11 @@ import ( "morph-l2/bindings/solc" ) -const L2StakingStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1022_storage\"},{\"astId\":1003,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1021_storage\"},{\"astId\":1005,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"_status\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_uint256\"},{\"astId\":1006,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_uint256)1021_storage\"},{\"astId\":1007,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"rewardStarted\",\"offset\":0,\"slot\":\"151\",\"type\":\"t_bool\"},{\"astId\":1008,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"rewardStartTime\",\"offset\":0,\"slot\":\"152\",\"type\":\"t_uint256\"},{\"astId\":1009,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"sequencerSetMaxSize\",\"offset\":0,\"slot\":\"153\",\"type\":\"t_uint256\"},{\"astId\":1010,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"undelegateLockEpochs\",\"offset\":0,\"slot\":\"154\",\"type\":\"t_uint256\"},{\"astId\":1011,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"latestSequencerSetSize\",\"offset\":0,\"slot\":\"155\",\"type\":\"t_uint256\"},{\"astId\":1012,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"candidateNumber\",\"offset\":0,\"slot\":\"156\",\"type\":\"t_uint256\"},{\"astId\":1013,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"stakerAddresses\",\"offset\":0,\"slot\":\"157\",\"type\":\"t_array(t_address)dyn_storage\"},{\"astId\":1014,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"stakerRankings\",\"offset\":0,\"slot\":\"158\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":1015,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"stakers\",\"offset\":0,\"slot\":\"159\",\"type\":\"t_mapping(t_address,t_struct(StakerInfo)1025_storage)\"},{\"astId\":1016,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"commissions\",\"offset\":0,\"slot\":\"160\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":1017,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"stakerDelegations\",\"offset\":0,\"slot\":\"161\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":1018,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"delegators\",\"offset\":0,\"slot\":\"162\",\"type\":\"t_mapping(t_address,t_struct(AddressSet)1023_storage)\"},{\"astId\":1019,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"delegations\",\"offset\":0,\"slot\":\"163\",\"type\":\"t_mapping(t_address,t_mapping(t_address,t_uint256))\"},{\"astId\":1020,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"undelegations\",\"offset\":0,\"slot\":\"164\",\"type\":\"t_mapping(t_address,t_array(t_struct(Undelegation)1026_storage)dyn_storage)\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_address)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"address[]\",\"numberOfBytes\":\"32\"},\"t_array(t_bytes32)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"bytes32[]\",\"numberOfBytes\":\"32\"},\"t_array(t_struct(Undelegation)1026_storage)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"struct IL2Staking.Undelegation[]\",\"numberOfBytes\":\"32\"},\"t_array(t_uint256)1021_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1022_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_bytes_storage\":{\"encoding\":\"bytes\",\"label\":\"bytes\",\"numberOfBytes\":\"32\"},\"t_mapping(t_address,t_array(t_struct(Undelegation)1026_storage)dyn_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e struct IL2Staking.Undelegation[])\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_array(t_struct(Undelegation)1026_storage)dyn_storage\"},\"t_mapping(t_address,t_mapping(t_address,t_uint256))\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e mapping(address =\u003e uint256))\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_mapping(t_address,t_uint256)\"},\"t_mapping(t_address,t_struct(AddressSet)1023_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e struct EnumerableSetUpgradeable.AddressSet)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_struct(AddressSet)1023_storage\"},\"t_mapping(t_address,t_struct(StakerInfo)1025_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e struct Types.StakerInfo)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_struct(StakerInfo)1025_storage\"},\"t_mapping(t_address,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_uint256\"},\"t_mapping(t_bytes32,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_uint256\"},\"t_struct(AddressSet)1023_storage\":{\"encoding\":\"inplace\",\"label\":\"struct EnumerableSetUpgradeable.AddressSet\",\"numberOfBytes\":\"64\"},\"t_struct(Set)1024_storage\":{\"encoding\":\"inplace\",\"label\":\"struct EnumerableSetUpgradeable.Set\",\"numberOfBytes\":\"64\"},\"t_struct(StakerInfo)1025_storage\":{\"encoding\":\"inplace\",\"label\":\"struct Types.StakerInfo\",\"numberOfBytes\":\"96\"},\"t_struct(Undelegation)1026_storage\":{\"encoding\":\"inplace\",\"label\":\"struct IL2Staking.Undelegation\",\"numberOfBytes\":\"96\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" +const L2StakingStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1023_storage\"},{\"astId\":1003,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1022_storage\"},{\"astId\":1005,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"_status\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_uint256\"},{\"astId\":1006,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_uint256)1022_storage\"},{\"astId\":1007,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"rewardStarted\",\"offset\":0,\"slot\":\"151\",\"type\":\"t_bool\"},{\"astId\":1008,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"rewardStartTime\",\"offset\":0,\"slot\":\"152\",\"type\":\"t_uint256\"},{\"astId\":1009,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"sequencerSetMaxSize\",\"offset\":0,\"slot\":\"153\",\"type\":\"t_uint256\"},{\"astId\":1010,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"undelegateLockEpochs\",\"offset\":0,\"slot\":\"154\",\"type\":\"t_uint256\"},{\"astId\":1011,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"latestSequencerSetSize\",\"offset\":0,\"slot\":\"155\",\"type\":\"t_uint256\"},{\"astId\":1012,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"candidateNumber\",\"offset\":0,\"slot\":\"156\",\"type\":\"t_uint256\"},{\"astId\":1013,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"stakerAddresses\",\"offset\":0,\"slot\":\"157\",\"type\":\"t_array(t_address)dyn_storage\"},{\"astId\":1014,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"stakerRankings\",\"offset\":0,\"slot\":\"158\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":1015,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"stakers\",\"offset\":0,\"slot\":\"159\",\"type\":\"t_mapping(t_address,t_struct(StakerInfo)1026_storage)\"},{\"astId\":1016,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"commissions\",\"offset\":0,\"slot\":\"160\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":1017,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"stakerDelegations\",\"offset\":0,\"slot\":\"161\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":1018,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"delegators\",\"offset\":0,\"slot\":\"162\",\"type\":\"t_mapping(t_address,t_struct(AddressSet)1024_storage)\"},{\"astId\":1019,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"delegations\",\"offset\":0,\"slot\":\"163\",\"type\":\"t_mapping(t_address,t_mapping(t_address,t_uint256))\"},{\"astId\":1020,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"undelegations\",\"offset\":0,\"slot\":\"164\",\"type\":\"t_mapping(t_address,t_array(t_struct(Undelegation)1027_storage)dyn_storage)\"},{\"astId\":1021,\"contract\":\"contracts/l2/staking/L2Staking.sol:L2Staking\",\"label\":\"nonce\",\"offset\":0,\"slot\":\"165\",\"type\":\"t_uint256\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_address)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"address[]\",\"numberOfBytes\":\"32\"},\"t_array(t_bytes32)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"bytes32[]\",\"numberOfBytes\":\"32\"},\"t_array(t_struct(Undelegation)1027_storage)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"struct IL2Staking.Undelegation[]\",\"numberOfBytes\":\"32\"},\"t_array(t_uint256)1022_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1023_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_bytes_storage\":{\"encoding\":\"bytes\",\"label\":\"bytes\",\"numberOfBytes\":\"32\"},\"t_mapping(t_address,t_array(t_struct(Undelegation)1027_storage)dyn_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e struct IL2Staking.Undelegation[])\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_array(t_struct(Undelegation)1027_storage)dyn_storage\"},\"t_mapping(t_address,t_mapping(t_address,t_uint256))\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e mapping(address =\u003e uint256))\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_mapping(t_address,t_uint256)\"},\"t_mapping(t_address,t_struct(AddressSet)1024_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e struct EnumerableSetUpgradeable.AddressSet)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_struct(AddressSet)1024_storage\"},\"t_mapping(t_address,t_struct(StakerInfo)1026_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e struct Types.StakerInfo)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_struct(StakerInfo)1026_storage\"},\"t_mapping(t_address,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_uint256\"},\"t_mapping(t_bytes32,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_uint256\"},\"t_struct(AddressSet)1024_storage\":{\"encoding\":\"inplace\",\"label\":\"struct EnumerableSetUpgradeable.AddressSet\",\"numberOfBytes\":\"64\"},\"t_struct(Set)1025_storage\":{\"encoding\":\"inplace\",\"label\":\"struct EnumerableSetUpgradeable.Set\",\"numberOfBytes\":\"64\"},\"t_struct(StakerInfo)1026_storage\":{\"encoding\":\"inplace\",\"label\":\"struct Types.StakerInfo\",\"numberOfBytes\":\"96\"},\"t_struct(Undelegation)1027_storage\":{\"encoding\":\"inplace\",\"label\":\"struct IL2Staking.Undelegation\",\"numberOfBytes\":\"96\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" var L2StakingStorageLayout = new(solc.StorageLayout) -var L2StakingDeployedBin = "0x608060405234801561000f575f80fd5b50600436106102cc575f3560e01c8063715018a61161017c578063927ede2d116100dd578063d557714111610093578063f0261bc21161006e578063f0261bc2146106b1578063f2fde38b146106ba578063fad99f98146106cd575f80fd5b8063d557714114610662578063e10911b114610689578063ed70b34314610691575f80fd5b8063b5d2e0dc116100c3578063b5d2e0dc146105f8578063c64814dd14610617578063d31d83d914610641575f80fd5b8063927ede2d146105c457806396ab994d146105eb575f80fd5b806384d7d1d4116101325780638e21d5fb116101185780638e21d5fb1461055c5780639168ae721461058357806391bd43a4146105a5575f80fd5b806384d7d1d41461051b5780638da5cb5b1461053e575f80fd5b8063766718081161016257806376671808146104cd5780637b05afb5146104d5578063831cfb58146104f4575f80fd5b8063715018a6146104bd578063746c8ae1146104c5575f80fd5b80633385ccc21161023157806340b5c837116101e7578063459598a2116101c2578063459598a21461048f57806346cdc18a146104a25780636d454d51146104aa575f80fd5b806340b5c8371461046157806343352d6114610474578063439162b51461047c575f80fd5b80633c323a1b116102175780633c323a1b146103e05780633cb747bf146103f35780633d9353fe1461043a575f80fd5b80633385ccc2146103c45780633b802421146103d7575f80fd5b8063174e31c4116102865780632cc138be1161026c5780632cc138be146103925780632e787be31461039b57806330158eea146103a4575f80fd5b8063174e31c41461036c57806319fac8fd1461037f575f80fd5b80630eb573af116102b65780630eb573af1461030b5780630f3b70591461031e57806312a3e94714610363575f80fd5b806243b758146102d05780630be67fcc146102f6575b5f80fd5b6102e36102de366004614bd5565b6106d5565b6040519081526020015b60405180910390f35b610309610304366004614c38565b610708565b005b610309610319366004614c77565b610d5d565b61033161032c366004614c8e565b610e8a565b6040805173ffffffffffffffffffffffffffffffffffffffff90941684526020840192909252908201526060016102ed565b6102e3609a5481565b61030961037a366004614c8e565b610edf565b61030961038d366004614c77565b611098565b6102e360985481565b6102e360995481565b6103b76103b2366004614c38565b6111ee565b6040516102ed9190614d19565b6103096103d2366004614bd5565b611456565b6102e3609c5481565b6103096103ee366004614c8e565b611bcf565b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102ed565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b61030961046f366004614c77565b6123e2565b6103b7612529565b61030961048a366004614dcc565b612786565b61041561049d366004614c77565b612d92565b609d546102e3565b6103096104b8366004614e3a565b612dc7565b610309613134565b610309613147565b6102e36134fa565b6102e36104e3366004614bd5565b60a06020525f908152604090205481565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b61052e610529366004614bd5565b613588565b60405190151581526020016102ed565b60335473ffffffffffffffffffffffffffffffffffffffff16610415565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b610596610591366004614bd5565b6135bf565b6040516102ed93929190614e71565b6102e36105b3366004614bd5565b60a16020525f908152604090205481565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b60975461052e9060ff1681565b6102e3610606366004614bd5565b609e6020525f908152604090205481565b6102e3610625366004614eae565b60a360209081525f928352604080842090915290825290205481565b61065461064f366004614ee5565b61367e565b6040516102ed929190614f67565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b610309613839565b6106a461069f366004614bd5565b613c81565b6040516102ed9190614f87565b6102e3609b5481565b6103096106c8366004614bd5565b613d31565b610309613de5565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a26020526040812061070290613ead565b92915050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561082457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c9190614ff5565b73ffffffffffffffffffffffffffffffffffffffff16145b6108b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f805b82811015610d1057609b54609e5f8686858181106108d8576108d8615010565b90506020020160208101906108ed9190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541161093157600191505b5f609e5f86868581811061094757610947615010565b905060200201602081019061095c9190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115610c7a575f6001609e5f8787868181106109b4576109b4615010565b90506020020160208101906109c99190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a0d919061506a565b90505b609d54610a1f9060019061506a565b811015610b2557609d610a3382600161507d565b81548110610a4357610a43615010565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610a7b57610a7b615010565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d8481548110610ad857610ad8615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400181208054909190610b1890849061506a565b9091555050600101610a10565b50609d805480610b3757610b37615090565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90858584818110610ba657610ba6615010565b9050602002016020810190610bbb9190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f868685818110610c0d57610c0d615010565b9050602002016020810190610c229190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115610c7a576001609c5f828254610c74919061506a565b90915550505b609f5f858584818110610c8f57610c8f615010565b9050602002016020810190610ca49190614bd5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590610d066002830182614b6a565b50506001016108b8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618383604051610d429291906150bd565b60405180910390a18015610d5857610d58613eb6565b505050565b610d6561405d565b5f81118015610d7657506099548114155b610e02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a6500000000000000000000000000000000000000000000000000000000000060648201526084016108ac565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610e5757609d54610e5b565b609c545b90505f6099548210610e6f57609954610e71565b815b9050609b548114610e8457610e84613eb6565b50505050565b60a4602052815f5260405f208181548110610ea3575f80fd5b5f91825260209091206003909102018054600182015460029092015473ffffffffffffffffffffffffffffffffffffffff909116935090915083565b610ee76140de565b73ffffffffffffffffffffffffffffffffffffffff8216610fc45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490526044015f604051808303815f87803b158015610fa9575f80fd5b505af1158015610fbb573d5f803e3d5ffd5b5050505061108a565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604481018490526064015f604051808303815f87803b158015611073575f80fd5b505af1158015611085573d5f803e3d5ffd5b505050505b6110946001606555565b5050565b335f908152609e602052604090205461110d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f7765640000000000000000000000000060448201526064016108ac565b6014811115611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e000000000000000000000000000060448201526064016108ac565b335f90815260a06020526040812082905560975460ff16611199575f6111ac565b6111a16134fa565b6111ac90600161507d565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff81111561120a5761120a615117565b60405190808252806020026020018201604052801561125657816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816112285790505b5090505f5b8381101561144e576040518060600160405280609f5f88888681811061128357611283615010565b90506020020160208101906112989190614bd5565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409091015f908120549091168352910190609f908888868181106112e2576112e2615010565b90506020020160208101906112f79190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f88888681811061134e5761134e615010565b90506020020160208101906113639190614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060020180546113aa90615144565b80601f01602080910402602001604051908101604052809291908181526020018280546113d690615144565b80156114215780601f106113f857610100808354040283529160200191611421565b820191905f5260205f20905b81548152906001019060200180831161140457829003601f168201915b505050505081525082828151811061143b5761143b615010565b602090810291909101015260010161125b565b509392505050565b61145e6140de565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a3602090815260408083203384529091529020546114f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f0000000000000000000060448201526064016108ac565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609e60205260408120546097549015919060ff1661152d575f611540565b6115356134fa565b61154090600161507d565b6097549091505f9060ff168015611555575082155b61155f578161156c565b609a5461156c908361507d565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff8781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a19092529281208054949550919361163b90849061506a565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260a26020526040902061166e9033614158565b5073ffffffffffffffffffffffffffffffffffffffff85165f908152609e6020526040902054841580156116a4575060975460ff165b80156116b15750609c5481105b1561199d5773ffffffffffffffffffffffffffffffffffffffff86165f908152609e60205260408120546116e79060019061506a565b90505b6001609c546116f9919061506a565b81101561199b5760a15f609d838154811061171657611716615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120549060a190609d61175885600161507d565b8154811061176857611768615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115611993575f609d82815481106117b3576117b3615010565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff169050609d6117e383600161507d565b815481106117f3576117f3615010565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff909216918490811061182b5761182b615010565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905580609d61188684600161507d565b8154811061189657611896615010565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556118ee82600161507d565b609e5f609d858154811061190457611904615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205561194082600261507d565b609e5f609d61195086600161507d565b8154811061196057611960615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b6001016116ea565b505b841580156119cd575073ffffffffffffffffffffffffffffffffffffffff86165f90815260a16020526040902054155b156119ea576001609c5f8282546119e4919061506a565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611a98575f80fd5b505af1158015611aaa573d5f803e3d5ffd5b50505050611ab53390565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c84602001518787604051611b2a939291909283526020830191909152604082015260600190565b60405180910390a384158015611b42575060975460ff165b8015611b505750609b548111155b8015611bb05750609b5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e60205260409020541180611bb05750609c5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e6020526040902054115b15611bbd57611bbd613eb6565b5050505050611bcc6001606555565b50565b73ffffffffffffffffffffffffffffffffffffffff82165f908152609e60205260409020548290611c5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b65720000000000000000000000000000000000000000000060448201526064016108ac565b611c646140de565b5f8211611ccd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e7400000000000000000000000060448201526064016108ac565b611cd73384614180565b15611d3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d65640000000000000000000060448201526064016108ac565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a360209081526040808320338452909152902054611de357611d7c3384614230565b15611de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f72657761726420756e636c61696d65640000000000000000000000000000000060448201526064016108ac565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a1602052604081208054849290611e1790849061507d565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a36020908152604080832033845290915281208054849290611e5b90849061507d565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a260205260409020611e8e90336142f2565b5073ffffffffffffffffffffffffffffffffffffffff83165f90815260a16020526040902054829003611ed3576001609c5f828254611ecd919061507d565b90915550505b73ffffffffffffffffffffffffffffffffffffffff83165f908152609e602052604090205460975460ff168015611f0a5750600181115b156121ea575f611f1b60018361506a565b90505b80156121e85760a15f609d611f3460018561506a565b81548110611f4457611f44615010565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8481548110611fbc57611fbc615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205411156121d6575f609d61200160018461506a565b8154811061201157612011615010565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169250908390811061204b5761204b615010565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16609d61207960018561506a565b8154811061208957612089615010565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d83815481106120e2576120e2615010565b5f918252602082200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93909316929092179091558290609e90609d61214160018561506a565b8154811061215157612151615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205561218d82600161507d565b609e5f609d85815481106121a3576121a3615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b806121e08161518f565b915050611f1e565b505b6097545f9060ff166121fc575f61220f565b6122046134fa565b61220f90600161507d565b73ffffffffffffffffffffffffffffffffffffffff86165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a373ffffffffffffffffffffffffffffffffffffffff8581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b15801561235d575f80fd5b505af115801561236f573d5f803e3d5ffd5b5050505061238461237d3390565b3086614313565b60975460ff1680156123975750609b5482115b80156123c9575060995473ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604090205411155b156123d6576123d6613eb6565b5050610d586001606555565b6123ea61405d565b60975460ff1615612457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f72657761726420616c726561647920737461727465640000000000000000000060448201526064016108ac565b4281118015612470575061246e62015180826151f0565b155b801561247e57506098548114155b6124e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016108ac565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff81111561254957612549615117565b60405190808252806020026020018201604052801561259557816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816125675790505b5090505f5b609d54811015612780576040518060600160405280609f5f609d85815481106125c5576125c5615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff90811684528382019490945260409092018120549092168352609d80549390910192609f9291908690811061261e5761261e615010565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f609d858154811061269e5761269e615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902060020180546126dc90615144565b80601f016020809104026020016040519081016040528092919081815260200182805461270890615144565b80156127535780601f1061272a57610100808354040283529160200191612753565b820191905f5260205f20905b81548152906001019060200180831161273657829003601f168201915b505050505081525082828151811061276d5761276d615010565b602090810291909101015260010161259a565b50919050565b5f54610100900460ff16158080156127a457505f54600160ff909116105b806127bd5750303b1580156127bd57505f5460ff166001145b612849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108ac565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156128a5575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8716612922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016108ac565b5f86116129b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016108ac565b5f8511612a1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f6368730000000060448201526064016108ac565b4284118015612a335750612a3162015180856151f0565b155b612a99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016108ac565b81612b00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420696e697469616c207374616b65727300000000000000000060448201526064016108ac565b612b09876145c1565b612b11614637565b6099869055609a8590556098849055609b8290555f5b609b54811015612cb457838382818110612b4357612b43615010565b9050602002810190612b559190615203565b609f5f868685818110612b6a57612b6a615010565b9050602002810190612b7c9190615203565b612b8a906020810190614bd5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f20612bb982826152e4565b905050609d848483818110612bd057612bd0615010565b9050602002810190612be29190615203565b612bf0906020810190614bd5565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055612c5190829061507d565b609e5f868685818110612c6657612c66615010565b9050602002810190612c789190615203565b612c86906020810190614bd5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2055600101612b27565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a18015612d89575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612da1575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015612ee357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ecb9190614ff5565b73ffffffffffffffffffffffffffffffffffffffff16145b612f6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016108ac565b609e5f612f7f6020840184614bd5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f0361306057609d612fce6020830183614bd5565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155609d5491609e9161303990850185614bd5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f20555b80609f5f6130716020840184614bd5565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f206130a082826152e4565b506130b090506020820182614bd5565b73ffffffffffffffffffffffffffffffffffffffff167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208301356130f9604085018561523f565b604051613108939291906154a1565b60405180910390a260975460ff161580156131275750609954609d5411155b15611bcc57611bcc613eb6565b61313c61405d565b6131455f6145c1565b565b61314f61405d565b6098544210156131e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d650000000000000000000000000000000000000000000000000000000060648201526084016108ac565b5f609c541161324b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f6e652063616e64696461746500000000000000000000000000000000000060448201526064016108ac565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d5481101561348a575f5b818110156134815760a15f609d83815481106132a4576132a4615010565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d858154811061331c5761331c615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115613479575f609d828154811061336757613367615010565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff909216925090849081106133a1576133a1615010565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921691849081106133d9576133d9615010565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d848154811061343257613432615010565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b600101613286565b5060010161327a565b505f5b609d548110156134f1576134a281600161507d565b609e5f609d84815481106134b8576134b8615010565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205560010161348d565b50613145613eb6565b5f609854421015613567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f726577617264206973206e6f742073746172746564207965740000000000000060448201526064016108ac565b6201518060985442613579919061506a565b61358391906154f4565b905090565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a3602090815260408083203384529091528120541515610702565b609f6020525f908152604090208054600182015460028301805473ffffffffffffffffffffffffffffffffffffffff9093169391926135fd90615144565b80601f016020809104026020016040519081016040528092919081815260200182805461362990615144565b80156136745780601f1061364b57610100808354040283529160200191613674565b820191905f5260205f20905b81548152906001019060200180831161365757829003601f168201915b5050505050905083565b5f60605f84116136ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f696e76616c696420706167652073697a6500000000000000000000000000000060448201526064016108ac565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260a26020526040902061371790613ead565b91508367ffffffffffffffff81111561373257613732615117565b60405190808252806020026020018201604052801561375b578160200160208202803683370190505b5090505f6137698486615507565b90505f6001613778868261507d565b6137829088615507565b61378c919061506a565b905061379960018561506a565b8111156137ae576137ab60018561506a565b90505b815b81811161382e5773ffffffffffffffffffffffffffffffffffffffff88165f90815260a2602052604090206137e590826146d5565b8482815181106137f7576137f7615010565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152806138268161551e565b9150506137b0565b505050935093915050565b6138416140de565b335f90815260a46020526040812054815b81811015613c015760975460ff1615806138a2575061386f6134fa565b335f90815260a46020526040902080548390811061388f5761388f615010565b905f5260205f2090600302016002015411155b15613bef57335f90815260a4602052604090208054829081106138c7576138c7615010565b905f5260205f20906003020160010154836138e2919061507d565b335f90815260a460205260408120805492955090918390811061390757613907615010565b5f918252602082206003909102015473ffffffffffffffffffffffffffffffffffffffff16915060a4816139383390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20838154811061398257613982615010565b905f5260205f2090600302016002015490505f60a45f61399f3390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2084815481106139e9576139e9615010565b905f5260205f209060030201600101549050600185613a08919061506a565b841015613aff57335f90815260a460205260409020613a2860018761506a565b81548110613a3857613a38615010565b905f5260205f20906003020160a45f613a4e3390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208581548110613a9857613a98615010565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091178155600180830154908201556002918201549101555b335f90815260a460205260409020805480613b1c57613b1c615090565b5f8281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018181018390556002909101919091559155613b91908661506a565b6040805184815260208101849052919650339173ffffffffffffffffffffffffffffffffffffffff8616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a3505050613852565b613bfa81600161507d565b9050613852565b505f8211613c6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d00000000000000000060448201526064016108ac565b613c7533836146e0565b50506131456001606555565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613d26575f8481526020908190206040805160608101825260038602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018082015484860152600290910154918301919091529083529092019101613cc5565b505050509050919050565b613d3961405d565b73ffffffffffffffffffffffffffffffffffffffff8116613ddc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108ac565b611bcc816145c1565b613ded6140de565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015f604051808303815f87803b158015613e8d575f80fd5b505af1158015613e9f573d5f803e3d5ffd5b505050506131456001606555565b5f610702825490565b60995460975460ff1615613eda57609954609c541015613ed55750609c545b613eeb565b609954609d541015613eeb5750609d545b5f8167ffffffffffffffff811115613f0557613f05615117565b604051908082528060200260200182016040528015613f2e578160200160208202803683370190505b5090505f5b82811015613fb557609d8181548110613f4e57613f4e615010565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110613f8857613f88615010565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101613f33565b506040517f9b8201a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490614028908490600401615555565b5f604051808303815f87803b15801561403f575f80fd5b505af1158015614051573d5f803e3d5ffd5b50509151609b55505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314613145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108ac565b60026065540361414a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108ac565b6002606555565b6001606555565b5f6141798373ffffffffffffffffffffffffffffffffffffffff841661497f565b9392505050565b5f805b73ffffffffffffffffffffffffffffffffffffffff84165f90815260a460205260409020548110156142275773ffffffffffffffffffffffffffffffffffffffff8481165f90815260a460205260409020805491851691839081106141ea576141ea615010565b5f91825260209091206003909102015473ffffffffffffffffffffffffffffffffffffffff160361421f576001915050610702565b600101614183565b505f9392505050565b6040517fde6ac93300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa1580156142c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142ea9190615567565b159392505050565b5f6141798373ffffffffffffffffffffffffffffffffffffffff8416614a62565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156143a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143c59190615586565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015614464573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144889190615567565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614517573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061453b9190615586565b90505f83118015614554575082614552838361506a565b145b6145ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016108ac565b5050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166146cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108ac565b613145614aae565b5f6141798383614b44565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa15801561476e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906147929190615586565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614829573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061484d9190615567565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156148dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149009190615586565b90505f83118015614919575082614917838361506a565b145b610e84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016108ac565b5f8181526001830160205260408120548015614a59575f6149a160018361506a565b85549091505f906149b49060019061506a565b9050818114614a13575f865f0182815481106149d2576149d2615010565b905f5260205f200154905080875f0184815481106149f2576149f2615010565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080614a2457614a24615090565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610702565b5f915050610702565b5f818152600183016020526040812054614aa757508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610702565b505f610702565b5f54610100900460ff16614151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108ac565b5f825f018281548110614b5957614b59615010565b905f5260205f200154905092915050565b508054614b7690615144565b5f825580601f10614b85575050565b601f0160209004905f5260205f2090810190611bcc91905b80821115614bb0575f8155600101614b9d565b5090565b73ffffffffffffffffffffffffffffffffffffffff81168114611bcc575f80fd5b5f60208284031215614be5575f80fd5b813561417981614bb4565b5f8083601f840112614c00575f80fd5b50813567ffffffffffffffff811115614c17575f80fd5b6020830191508360208260051b8501011115614c31575f80fd5b9250929050565b5f8060208385031215614c49575f80fd5b823567ffffffffffffffff811115614c5f575f80fd5b614c6b85828601614bf0565b90969095509350505050565b5f60208284031215614c87575f80fd5b5035919050565b5f8060408385031215614c9f575f80fd5b8235614caa81614bb4565b946020939093013593505050565b5f81518084525f5b81811015614cdc57602081850181015186830182015201614cc0565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015614dbe578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff16845287810151888501528601516060878501819052614daa81860183614cb8565b968901969450505090860190600101614d40565b509098975050505050505050565b5f805f805f8060a08789031215614de1575f80fd5b8635614dec81614bb4565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614e1c575f80fd5b614e2889828a01614bf0565b979a9699509497509295939492505050565b5f60208284031215614e4a575f80fd5b813567ffffffffffffffff811115614e60575f80fd5b820160608185031215614179575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f614ea56060830184614cb8565b95945050505050565b5f8060408385031215614ebf575f80fd5b8235614eca81614bb4565b91506020830135614eda81614bb4565b809150509250929050565b5f805f60608486031215614ef7575f80fd5b8335614f0281614bb4565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b83811015614f5c57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614f2a565b509495945050505050565b828152604060208201525f614f7f6040830184614f17565b949350505050565b602080825282518282018190525f919060409081850190868401855b82811015614fe8578151805173ffffffffffffffffffffffffffffffffffffffff16855286810151878601528501518585015260609093019290850190600101614fa3565b5091979650505050505050565b5f60208284031215615005575f80fd5b815161417981614bb4565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156107025761070261503d565b808201808211156107025761070261503d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b8681101561510c5782356150e481614bb4565b73ffffffffffffffffffffffffffffffffffffffff16825291830191908301906001016150d1565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061515857607f821691505b602082108103612780577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f8161519d5761519d61503d565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f826151fe576151fe6151c3565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112615235575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615272575f80fd5b83018035915067ffffffffffffffff82111561528c575f80fd5b602001915036819003821315614c31575f80fd5b601f821115610d5857805f5260205f20601f840160051c810160208510156152c55750805b601f840160051c820191505b818110156145ba575f81556001016152d1565b81356152ef81614bb4565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112615373575f80fd5b8501803567ffffffffffffffff81111561538b575f80fd5b803603848301131561539b575f80fd5b6153af816153a98554615144565b856152a0565b5f601f821160018114615401575f83156153cb57508382018601355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178555615496565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561544d5786850189013582559388019390890190880161542e565b508482101561548a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b5f82615502576155026151c3565b500490565b80820281158282048414176107025761070261503d565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361554e5761554e61503d565b5060010190565b602081525f6141796020830184614f17565b5f60208284031215615577575f80fd5b81518015158114614179575f80fd5b5f60208284031215615596575f80fd5b505191905056fea164736f6c6343000818000a" +var L2StakingDeployedBin = "0x608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106f6578063fad99f9814610709578063fc6facc614610711575f80fd5b8063e10911b1146106c5578063ed70b343146106cd578063f0261bc2146106ed575f80fd5b8063cce6cf9f116100c3578063cce6cf9f1461066a578063d31d83d91461067d578063d55771411461069e575f80fd5b8063affed0e014610618578063b5d2e0dc14610621578063c64814dd14610640575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a4146105c5578063927ede2d146105e457806396ab994d1461060b575f80fd5b80638da5cb5b1461055e5780638e21d5fb1461057c5780639168ae72146105a3575f80fd5b80637b05afb5116101785780637b05afb5146104f5578063831cfb581461051457806384d7d1d41461053b575f80fd5b8063746c8ae1146104e557806376671808146104ed575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104c25780637046529b146104ca578063715018a6146104dd575f80fd5b806343352d6114610494578063439162b51461049c578063459598a2146104af575f80fd5b80633cb747bf1161022d5780633cb747bf146104135780633d9353fe1461045a57806340b5c83714610481575f80fd5b80633b802421146103f75780633c323a1b14610400575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103bb57806330158eea146103c45780633385ccc2146103e4575f80fd5b8063174e31c41461038c57806319fac8fd1461039f5780632cc138be146103b2575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610383575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe3660046151fd565b610724565b6040519081526020015b60405180910390f35b610329610324366004615218565b610757565b005b610329610339366004615262565b6109a8565b61035161034c366004615279565b610ad5565b6040805173ffffffffffffffffffffffffffffffffffffffff909416845260208401929092529082015260600161030d565b610303609a5481565b61032961039a366004615279565b610b2a565b6103296103ad366004615262565b610ce3565b61030360985481565b61030360995481565b6103d76103d23660046152eb565b610e39565b60405161030d919061538b565b6103296103f23660046151fd565b6110a1565b610303609c5481565b61032961040e366004615279565b61181a565b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161030d565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b61032961048f366004615262565b61202d565b6103d7612174565b6103296104aa36600461543e565b6123d1565b6104356104bd366004615262565b6129dd565b609d54610303565b6103296104d8366004615218565b612a12565b610329612bba565b610329612bcd565b610303612f80565b6103036105033660046151fd565b60a06020525f908152604090205481565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b61054e6105493660046151fd565b61300e565b604051901515815260200161030d565b60335473ffffffffffffffffffffffffffffffffffffffff16610435565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b6105b66105b13660046151fd565b613045565b60405161030d939291906154ac565b6103036105d33660046151fd565b60a16020525f908152604090205481565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b60975461054e9060ff1681565b61030360a55481565b61030361062f3660046151fd565b609e6020525f908152604090205481565b61030361064e3660046154e9565b60a360209081525f928352604080842090915290825290205481565b610329610678366004615515565b613104565b61069061068b36600461555d565b6137d0565b60405161030d9291906155df565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b61032961398b565b6106e06106db3660046151fd565b613dd3565b60405161030d91906155ff565b610303609b5481565b6103296107043660046151fd565b613e83565b610329613f37565b61032961071f366004615515565b613fff565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a260205260408120610751906144dc565b92915050565b61075f6144e5565b8160a55481146107d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b6107db83600161569a565b60a555609e5f6107ee60208501856151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f036108cf57609d61083d60208401846151fd565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155609d5491609e916108a8908601866151fd565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f20555b81609f5f6108e060208401846151fd565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2061090f82826157ca565b5061091f905060208301836151fd565b73ffffffffffffffffffffffffffffffffffffffff167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d602084013561096860408601866156ad565b60405161097793929190615987565b60405180910390a260975460ff161580156109965750609954609d5411155b156109a3576109a3614566565b505050565b6109b06144e5565b5f811180156109c157506099548114155b610a4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a6500000000000000000000000000000000000000000000000000000000000060648201526084016107c7565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610aa257609d54610aa6565b609c545b90505f6099548210610aba57609954610abc565b815b9050609b548114610acf57610acf614566565b50505050565b60a4602052815f5260405f208181548110610aee575f80fd5b5f91825260209091206003909102018054600182015460029092015473ffffffffffffffffffffffffffffffffffffffff909116935090915083565b610b3261470d565b73ffffffffffffffffffffffffffffffffffffffff8216610c0f5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490526044015f604051808303815f87803b158015610bf4575f80fd5b505af1158015610c06573d5f803e3d5ffd5b50505050610cd5565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610cbe575f80fd5b505af1158015610cd0573d5f803e3d5ffd5b505050505b610cdf6001606555565b5050565b335f908152609e6020526040902054610d58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f7765640000000000000000000000000060448201526064016107c7565b6014811115610dc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e000000000000000000000000000060448201526064016107c7565b335f90815260a06020526040812082905560975460ff16610de4575f610df7565b610dec612f80565b610df790600161569a565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610e5557610e5561570e565b604051908082528060200260200182016040528015610ea157816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610e735790505b5090505f5b83811015611099576040518060600160405280609f5f888886818110610ece57610ece6159da565b9050602002016020810190610ee391906151fd565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610f2d57610f2d6159da565b9050602002016020810190610f4291906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f888886818110610f9957610f996159da565b9050602002016020810190610fae91906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002018054610ff59061573b565b80601f01602080910402602001604051908101604052809291908181526020018280546110219061573b565b801561106c5780601f106110435761010080835404028352916020019161106c565b820191905f5260205f20905b81548152906001019060200180831161104f57829003601f168201915b5050505050815250828281518110611086576110866159da565b6020908102919091010152600101610ea6565b509392505050565b6110a961470d565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a36020908152604080832033845290915290205461113f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f0000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609e60205260408120546097549015919060ff16611178575f61118b565b611180612f80565b61118b90600161569a565b6097549091505f9060ff1680156111a0575082155b6111aa57816111b7565b609a546111b7908361569a565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff8781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a190925292812080549495509193611286908490615a07565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260a2602052604090206112b99033614787565b5073ffffffffffffffffffffffffffffffffffffffff85165f908152609e6020526040902054841580156112ef575060975460ff165b80156112fc5750609c5481105b156115e85773ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604081205461133290600190615a07565b90505b6001609c546113449190615a07565b8110156115e65760a15f609d8381548110611361576113616159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120549060a190609d6113a385600161569a565b815481106113b3576113b36159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205411156115de575f609d82815481106113fe576113fe6159da565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff169050609d61142e83600161569a565b8154811061143e5761143e6159da565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169184908110611476576114766159da565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905580609d6114d184600161569a565b815481106114e1576114e16159da565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905561153982600161569a565b609e5f609d858154811061154f5761154f6159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205561158b82600261569a565b609e5f609d61159b86600161569a565b815481106115ab576115ab6159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b600101611335565b505b84158015611618575073ffffffffffffffffffffffffffffffffffffffff86165f90815260a16020526040902054155b15611635576001609c5f82825461162f9190615a07565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b1580156116e3575f80fd5b505af11580156116f5573d5f803e3d5ffd5b505050506117003390565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c84602001518787604051611775939291909283526020830191909152604082015260600190565b60405180910390a38415801561178d575060975460ff165b801561179b5750609b548111155b80156117fb5750609b5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e602052604090205411806117fb5750609c5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e6020526040902054115b1561180857611808614566565b50505050506118176001606555565b50565b73ffffffffffffffffffffffffffffffffffffffff82165f908152609e602052604090205482906118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b65720000000000000000000000000000000000000000000060448201526064016107c7565b6118af61470d565b5f8211611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e7400000000000000000000000060448201526064016107c7565b61192233846147af565b15611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d65640000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a360209081526040808320338452909152902054611a2e576119c7338461485f565b15611a2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f72657761726420756e636c61696d65640000000000000000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a1602052604081208054849290611a6290849061569a565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a36020908152604080832033845290915281208054849290611aa690849061569a565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a260205260409020611ad99033614921565b5073ffffffffffffffffffffffffffffffffffffffff83165f90815260a16020526040902054829003611b1e576001609c5f828254611b18919061569a565b90915550505b73ffffffffffffffffffffffffffffffffffffffff83165f908152609e602052604090205460975460ff168015611b555750600181115b15611e35575f611b66600183615a07565b90505b8015611e335760a15f609d611b7f600185615a07565b81548110611b8f57611b8f6159da565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8481548110611c0757611c076159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115611e21575f609d611c4c600184615a07565b81548110611c5c57611c5c6159da565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921692509083908110611c9657611c966159da565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16609d611cc4600185615a07565b81548110611cd457611cd46159da565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d8381548110611d2d57611d2d6159da565b5f918252602082200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93909316929092179091558290609e90609d611d8c600185615a07565b81548110611d9c57611d9c6159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055611dd882600161569a565b609e5f609d8581548110611dee57611dee6159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b80611e2b81615a1a565b915050611b69565b505b6097545f9060ff16611e47575f611e5a565b611e4f612f80565b611e5a90600161569a565b73ffffffffffffffffffffffffffffffffffffffff86165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a373ffffffffffffffffffffffffffffffffffffffff8581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611fa8575f80fd5b505af1158015611fba573d5f803e3d5ffd5b50505050611fcf611fc83390565b3086614942565b60975460ff168015611fe25750609b5482115b8015612014575060995473ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604090205411155b1561202157612021614566565b50506109a36001606555565b6120356144e5565b60975460ff16156120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f72657761726420616c726561647920737461727465640000000000000000000060448201526064016107c7565b42811180156120bb57506120b96201518082615a7b565b155b80156120c957506098548114155b61212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016107c7565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff8111156121945761219461570e565b6040519080825280602002602001820160405280156121e057816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816121b25790505b5090505f5b609d548110156123cb576040518060600160405280609f5f609d8581548110612210576122106159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff90811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110612269576122696159da565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f609d85815481106122e9576122e96159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902060020180546123279061573b565b80601f01602080910402602001604051908101604052809291908181526020018280546123539061573b565b801561239e5780601f106123755761010080835404028352916020019161239e565b820191905f5260205f20905b81548152906001019060200180831161238157829003601f168201915b50505050508152508282815181106123b8576123b86159da565b60209081029190910101526001016121e5565b50919050565b5f54610100900460ff16158080156123ef57505f54600160ff909116105b806124085750303b15801561240857505f5460ff166001145b612494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107c7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156124f0575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff871661256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016107c7565b5f86116125fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016107c7565b5f8511612665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f6368730000000060448201526064016107c7565b428411801561267e575061267c6201518085615a7b565b155b6126e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016107c7565b8161274b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420696e697469616c207374616b65727300000000000000000060448201526064016107c7565b61275487614be9565b61275c614c5f565b6099869055609a8590556098849055609b8290555f5b609b548110156128ff5783838281811061278e5761278e6159da565b90506020028101906127a09190615a8e565b609f5f8686858181106127b5576127b56159da565b90506020028101906127c79190615a8e565b6127d59060208101906151fd565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2061280482826157ca565b905050609d84848381811061281b5761281b6159da565b905060200281019061282d9190615a8e565b61283b9060208101906151fd565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905561289c90829061569a565b609e5f8686858181106128b1576128b16159da565b90506020028101906128c39190615a8e565b6128d19060208101906151fd565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2055600101612772565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a180156129d4575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d81815481106129ec575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015612b2e57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612af2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b169190615aca565b73ffffffffffffffffffffffffffffffffffffffff16145b61075f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016107c7565b612bc26144e5565b612bcb5f614be9565b565b612bd56144e5565b609854421015612c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d650000000000000000000000000000000000000000000000000000000060648201526084016107c7565b5f609c5411612cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f6e652063616e64696461746500000000000000000000000000000000000060448201526064016107c7565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612f10575f5b81811015612f075760a15f609d8381548110612d2a57612d2a6159da565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8581548110612da257612da26159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115612eff575f609d8281548110612ded57612ded6159da565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921692509084908110612e2757612e276159da565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169184908110612e5f57612e5f6159da565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d8481548110612eb857612eb86159da565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b600101612d0c565b50600101612d00565b505f5b609d54811015612f7757612f2881600161569a565b609e5f609d8481548110612f3e57612f3e6159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055600101612f13565b50612bcb614566565b5f609854421015612fed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f726577617264206973206e6f742073746172746564207965740000000000000060448201526064016107c7565b6201518060985442612fff9190615a07565b6130099190615ae5565b905090565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a3602090815260408083203384529091528120541515610751565b609f6020525f908152604090208054600182015460028301805473ffffffffffffffffffffffffffffffffffffffff9093169391926130839061573b565b80601f01602080910402602001604051908101604052809291908181526020018280546130af9061573b565b80156130fa5780601f106130d1576101008083540402835291602001916130fa565b820191905f5260205f20905b8154815290600101906020018083116130dd57829003601f168201915b5050505050905083565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561322057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132089190615aca565b73ffffffffffffffffffffffffffffffffffffffff16145b6132ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016107c7565b8260a5548114613318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064016107c7565b61332384600161569a565b60a5555f805b8381101561378157609b54609e5f878785818110613349576133496159da565b905060200201602081019061335e91906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116133a257600191505b5f609e5f8787858181106133b8576133b86159da565b90506020020160208101906133cd91906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156136eb575f6001609e5f888886818110613425576134256159da565b905060200201602081019061343a91906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461347e9190615a07565b90505b609d5461349090600190615a07565b81101561359657609d6134a482600161569a565b815481106134b4576134b46159da565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921691839081106134ec576134ec6159da565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d8481548110613549576135496159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400181208054909190613589908490615a07565b9091555050600101613481565b50609d8054806135a8576135a8615af8565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90868684818110613617576136176159da565b905060200201602081019061362c91906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f87878581811061367e5761367e6159da565b905060200201602081019061369391906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156136eb576001609c5f8282546136e59190615a07565b90915550505b609f5f868684818110613700576137006159da565b905060200201602081019061371591906151fd565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018101829055906137776002830182615192565b5050600101613329565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f6184846040516137b3929190615b25565b60405180910390a180156137c9576137c9614566565b5050505050565b5f60605f841161383c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f696e76616c696420706167652073697a6500000000000000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260a260205260409020613869906144dc565b91508367ffffffffffffffff8111156138845761388461570e565b6040519080825280602002602001820160405280156138ad578160200160208202803683370190505b5090505f6138bb8486615b7f565b90505f60016138ca868261569a565b6138d49088615b7f565b6138de9190615a07565b90506138eb600185615a07565b811115613900576138fd600185615a07565b90505b815b8181116139805773ffffffffffffffffffffffffffffffffffffffff88165f90815260a2602052604090206139379082614cfd565b848281518110613949576139496159da565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101528061397881615b96565b915050613902565b505050935093915050565b61399361470d565b335f90815260a46020526040812054815b81811015613d535760975460ff1615806139f457506139c1612f80565b335f90815260a4602052604090208054839081106139e1576139e16159da565b905f5260205f2090600302016002015411155b15613d4157335f90815260a460205260409020805482908110613a1957613a196159da565b905f5260205f2090600302016001015483613a34919061569a565b335f90815260a4602052604081208054929550909183908110613a5957613a596159da565b5f918252602082206003909102015473ffffffffffffffffffffffffffffffffffffffff16915060a481613a8a3390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208381548110613ad457613ad46159da565b905f5260205f2090600302016002015490505f60a45f613af13390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208481548110613b3b57613b3b6159da565b905f5260205f209060030201600101549050600185613b5a9190615a07565b841015613c5157335f90815260a460205260409020613b7a600187615a07565b81548110613b8a57613b8a6159da565b905f5260205f20906003020160a45f613ba03390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208581548110613bea57613bea6159da565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091178155600180830154908201556002918201549101555b335f90815260a460205260409020805480613c6e57613c6e615af8565b5f8281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018181018390556002909101919091559155613ce39086615a07565b6040805184815260208101849052919650339173ffffffffffffffffffffffffffffffffffffffff8616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a35050506139a4565b613d4c81600161569a565b90506139a4565b505f8211613dbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d00000000000000000060448201526064016107c7565b613dc73383614d08565b5050612bcb6001606555565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613e78575f8481526020908190206040805160608101825260038602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018082015484860152600290910154918301919091529083529092019101613e17565b505050509050919050565b613e8b6144e5565b73ffffffffffffffffffffffffffffffffffffffff8116613f2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107c7565b61181781614be9565b613f3f61470d565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015f604051808303815f87803b158015613fdf575f80fd5b505af1158015613ff1573d5f803e3d5ffd5b50505050612bcb6001606555565b6140076144e5565b8260a5548114614073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064016107c7565b61407e84600161569a565b60a5555f805b8381101561378157609b54609e5f8787858181106140a4576140a46159da565b90506020020160208101906140b991906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116140fd57600191505b5f609e5f878785818110614113576141136159da565b905060200201602081019061412891906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115614446575f6001609e5f888886818110614180576141806159da565b905060200201602081019061419591906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546141d99190615a07565b90505b609d546141eb90600190615a07565b8110156142f157609d6141ff82600161569a565b8154811061420f5761420f6159da565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169183908110614247576142476159da565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d84815481106142a4576142a46159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812080549091906142e4908490615a07565b90915550506001016141dc565b50609d80548061430357614303615af8565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90868684818110614372576143726159da565b905060200201602081019061438791906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f8787858181106143d9576143d96159da565b90506020020160208101906143ee91906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115614446576001609c5f8282546144409190615a07565b90915550505b609f5f86868481811061445b5761445b6159da565b905060200201602081019061447091906151fd565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018101829055906144d26002830182615192565b5050600101614084565b5f610751825490565b60335473ffffffffffffffffffffffffffffffffffffffff163314612bcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107c7565b60995460975460ff161561458a57609954609c5410156145855750609c545b61459b565b609954609d54101561459b5750609d545b5f8167ffffffffffffffff8111156145b5576145b561570e565b6040519080825280602002602001820160405280156145de578160200160208202803683370190505b5090505f5b8281101561466557609d81815481106145fe576145fe6159da565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110614638576146386159da565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526001016145e3565b506040517f9b8201a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690639b8201a4906146d8908490600401615bcd565b5f604051808303815f87803b1580156146ef575f80fd5b505af1158015614701573d5f803e3d5ffd5b50509151609b55505050565b600260655403614779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107c7565b6002606555565b6001606555565b5f6147a88373ffffffffffffffffffffffffffffffffffffffff8416614fa7565b9392505050565b5f805b73ffffffffffffffffffffffffffffffffffffffff84165f90815260a460205260409020548110156148565773ffffffffffffffffffffffffffffffffffffffff8481165f90815260a46020526040902080549185169183908110614819576148196159da565b5f91825260209091206003909102015473ffffffffffffffffffffffffffffffffffffffff160361484e576001915050610751565b6001016147b2565b505f9392505050565b6040517fde6ac93300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa1580156148f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149199190615bdf565b159392505050565b5f6147a88373ffffffffffffffffffffffffffffffffffffffff841661508a565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156149d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149f49190615bfe565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015614a93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ab79190615bdf565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614b46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614b6a9190615bfe565b90505f83118015614b83575082614b818383615a07565b145b6137c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016107c7565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16614cf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107c7565b612bcb6150d6565b5f6147a8838361516c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614d96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614dba9190615bfe565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614e51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614e759190615bdf565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614f04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614f289190615bfe565b90505f83118015614f41575082614f3f8383615a07565b145b610acf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016107c7565b5f8181526001830160205260408120548015615081575f614fc9600183615a07565b85549091505f90614fdc90600190615a07565b905081811461503b575f865f018281548110614ffa57614ffa6159da565b905f5260205f200154905080875f01848154811061501a5761501a6159da565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061504c5761504c615af8565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610751565b5f915050610751565b5f8181526001830160205260408120546150cf57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610751565b505f610751565b5f54610100900460ff16614780576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107c7565b5f825f018281548110615181576151816159da565b905f5260205f200154905092915050565b50805461519e9061573b565b5f825580601f106151ad575050565b601f0160209004905f5260205f209081019061181791905b808211156151d8575f81556001016151c5565b5090565b73ffffffffffffffffffffffffffffffffffffffff81168114611817575f80fd5b5f6020828403121561520d575f80fd5b81356147a8816151dc565b5f8060408385031215615229575f80fd5b82359150602083013567ffffffffffffffff811115615246575f80fd5b830160608186031215615257575f80fd5b809150509250929050565b5f60208284031215615272575f80fd5b5035919050565b5f806040838503121561528a575f80fd5b8235615295816151dc565b946020939093013593505050565b5f8083601f8401126152b3575f80fd5b50813567ffffffffffffffff8111156152ca575f80fd5b6020830191508360208260051b85010111156152e4575f80fd5b9250929050565b5f80602083850312156152fc575f80fd5b823567ffffffffffffffff811115615312575f80fd5b61531e858286016152a3565b90969095509350505050565b5f81518084525f5b8181101561534e57602081850181015186830182015201615332565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015615430578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff1684528781015188850152860151606087850181905261541c8186018361532a565b9689019694505050908601906001016153b2565b509098975050505050505050565b5f805f805f8060a08789031215615453575f80fd5b863561545e816151dc565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff81111561548e575f80fd5b61549a89828a016152a3565b979a9699509497509295939492505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f6154e0606083018461532a565b95945050505050565b5f80604083850312156154fa575f80fd5b8235615505816151dc565b91506020830135615257816151dc565b5f805f60408486031215615527575f80fd5b83359250602084013567ffffffffffffffff811115615544575f80fd5b615550868287016152a3565b9497909650939450505050565b5f805f6060848603121561556f575f80fd5b833561557a816151dc565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156155d457815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016155a2565b509495945050505050565b828152604060208201525f6155f7604083018461558f565b949350505050565b602080825282518282018190525f919060409081850190868401855b82811015615660578151805173ffffffffffffffffffffffffffffffffffffffff1685528681015187860152850151858501526060909301929085019060010161561b565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156107515761075161566d565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126156e0575f80fd5b83018035915067ffffffffffffffff8211156156fa575f80fd5b6020019150368190038213156152e4575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061574f57607f821691505b6020821081036123cb577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156109a357805f5260205f20601f840160051c810160208510156157ab5750805b601f840160051c820191505b818110156137c9575f81556001016157b7565b81356157d5816151dc565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112615859575f80fd5b8501803567ffffffffffffffff811115615871575f80fd5b8036038483011315615881575f80fd5b6158958161588f855461573b565b85615786565b5f601f8211600181146158e7575f83156158b157508382018601355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b17855561597c565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561593357868501890135825593880193908901908801615914565b5084821015615970577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b818103818111156107515761075161566d565b5f81615a2857615a2861566d565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82615a8957615a89615a4e565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112615ac0575f80fd5b9190910192915050565b5f60208284031215615ada575f80fd5b81516147a8816151dc565b5f82615af357615af3615a4e565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015615b74578235615b4c816151dc565b73ffffffffffffffffffffffffffffffffffffffff1682529183019190830190600101615b39565b509695505050505050565b80820281158282048414176107515761075161566d565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615bc657615bc661566d565b5060010190565b602081525f6147a8602083018461558f565b5f60208284031215615bef575f80fd5b815180151581146147a8575f80fd5b5f60208284031215615c0e575f80fd5b505191905056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L2StakingStorageLayoutJSON), L2StakingStorageLayout); err != nil { From 177ec308fd526f953791d520c5b3f6366ddf2367 Mon Sep 17 00:00:00 2001 From: Segue Date: Tue, 12 Nov 2024 13:45:21 +0800 Subject: [PATCH 027/106] prevent overflow --- contracts/contracts/l1/staking/L1Staking.sol | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contracts/contracts/l1/staking/L1Staking.sol b/contracts/contracts/l1/staking/L1Staking.sol index 4767374d3..9f8af443a 100644 --- a/contracts/contracts/l1/staking/L1Staking.sol +++ b/contracts/contracts/l1/staking/L1Staking.sol @@ -222,6 +222,9 @@ contract L1Staking is IL1Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp uint256 valueSum; for (uint256 i = 0; i < sequencers.length; i++) { + if (sequencers[i] == address(0)) { + continue; + } if (withdrawals[sequencers[i]] > 0) { delete withdrawals[sequencers[i]]; valueSum += stakingValue; From d308e370d9a89c17740aa458216ebd06588b8b38 Mon Sep 17 00:00:00 2001 From: Segue Date: Tue, 12 Nov 2024 13:49:06 +0800 Subject: [PATCH 028/106] update bindings --- bindings/bin/l1staking_deployed.hex | 2 +- bindings/bindings/l1staking.go | 2 +- bindings/bindings/l1staking_more.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bindings/bin/l1staking_deployed.hex b/bindings/bin/l1staking_deployed.hex index 4b21f101b..d2d93e247 100644 --- a/bindings/bin/l1staking_deployed.hex +++ b/bindings/bin/l1staking_deployed.hex @@ -1 +1 @@ -0x608060405260043610610303575f3560e01c80638142951a11610191578063ae81de53116100dc578063d51c90a911610087578063e2a6ad5f11610062578063e2a6ad5f1461092d578063f2fde38b1461094c578063f4fe7fef1461096b575f80fd5b8063d51c90a9146108a0578063dd4785f5146108b5578063df155033146108f6575f80fd5b8063c7cd469a116100b7578063c7cd469a14610843578063cde4cd1114610862578063d096c3c614610881575f80fd5b8063ae81de53146107ef578063affed0e01461080e578063bfa02ba914610824575f80fd5b80639b19251a1161013c578063a3066aab11610117578063a3066aab1461079c578063a4f209b0146107bb578063ab8c53dc146107da575f80fd5b80639b19251a1461072e5780639d48f4171461075c5780639fb82db914610788575f80fd5b80638da5cb5b1161016c5780638da5cb5b146106b05780639168ae72146106cd578063927ede2d146106fb575f80fd5b80638142951a1461063f578063831cfb581461065e5780638a565ac314610691575f80fd5b806343352d61116102515780636f1e8533116101fc578063797adbde116101d7578063797adbde146105b95780637a4e87c3146105d85780637a9262a214610613575f80fd5b80636f1e853314610560578063715018a61461057f57806374fe27b714610593575f80fd5b806352d472eb1161022c57806352d472eb146104fd5780636801579114610512578063692c565b14610531575f80fd5b806343352d61146104a857806345bc4d10146104c95780634d64903a146104e8575f80fd5b806335928991116102b15780633ccfd60b1161028c5780633ccfd60b1461046b5780633ee2a1f91461047f57806341de239b14610493575f80fd5b806335928991146103dc5780633a9bbede146103fb5780633cb747bf14610439575f80fd5b80632e407a6f116102e15780632e407a6f1461035a578063303afb9e14610386578063320ff860146103bd575f80fd5b80630d13fd7b146103075780632108db35146103305780632a28e5a314610345575b5f80fd5b348015610312575f80fd5b5061031d6101a65481565b6040519081526020015b60405180910390f35b34801561033b575f80fd5b5061031d609c5481565b610358610353366004613495565b61098a565b005b348015610365575f80fd5b5061031d6103743660046134ef565b6101a16020525f908152604090205481565b348015610391575f80fd5b506103a56103a036600461350f565b610d85565b6040516001600160a01b039091168152602001610327565b3480156103c8575f80fd5b506103586103d7366004613526565b610da4565b3480156103e7575f80fd5b506103586103f636600461350f565b6110bf565b348015610406575f80fd5b506104296104153660046134ef565b609f6020525f908152604090205460ff1681565b6040519015158152602001610327565b348015610444575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103a5565b348015610476575f80fd5b5061035861116c565b34801561048a575f80fd5b50610358611338565b34801561049e575f80fd5b5061031d60995481565b3480156104b3575f80fd5b506104bc61134a565b60405161032791906135ce565b3480156104d4575f80fd5b5061031d6104e336600461350f565b611390565b3480156104f3575f80fd5b5061031d60985481565b348015610508575f80fd5b5061031d609a5481565b34801561051d575f80fd5b5061042961052c3660046134ef565b611696565b34801561053c575f80fd5b5061042961054b36600461350f565b6101a46020525f908152604090205460ff1681565b34801561056b575f80fd5b5061042961057a3660046134ef565b611731565b34801561058a575f80fd5b506103586117aa565b34801561059e575f80fd5b506104296105ad366004613650565b60019695505050505050565b3480156105c4575f80fd5b506103a56105d336600461350f565b6117bb565b3480156105e3575f80fd5b506104296105f23660046136f6565b80516020818301810180516101a38252928201919093012091525460ff1681565b34801561061e575f80fd5b5061031d61062d3660046134ef565b6101a56020525f908152604090205481565b34801561064a575f80fd5b50610358610659366004613730565b6117e4565b348015610669575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b34801561069c575f80fd5b506103586106ab36600461350f565b611ca6565b3480156106bb575f80fd5b506033546001600160a01b03166103a5565b3480156106d8575f80fd5b506106ec6106e73660046134ef565b611d49565b604051610327939291906137cb565b348015610706575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610739575f80fd5b506104296107483660046134ef565b609e6020525f908152604090205460ff1681565b348015610767575f80fd5b5061077b61077636600461350f565b611dfc565b604051610327919061383e565b348015610793575f80fd5b5061077b611f19565b3480156107a7575f80fd5b506103586107b63660046134ef565b6120c7565b3480156107c6575f80fd5b506103586107d536600461350f565b6121f7565b3480156107e5575f80fd5b5061031d609d5481565b3480156107fa575f80fd5b5061035861080936600461350f565b6122a7565b348015610819575f80fd5b5061031d6101a75481565b34801561082f575f80fd5b506097546103a5906001600160a01b031681565b34801561084e575f80fd5b5061035861085d366004613850565b61234a565b34801561086d575f80fd5b5061035861087c3660046134ef565b6124eb565b34801561088c575f80fd5b5061031d61089b3660046134ef565b612559565b3480156108ab575f80fd5b5061031d609b5481565b3480156108c0575f80fd5b506108e46108cf3660046134ef565b61019f6020525f908152604090205460ff1681565b60405160ff9091168152602001610327565b348015610901575f80fd5b506104296109103660046134ef565b6001600160a01b03165f9081526101a16020526040902054151590565b348015610938575f80fd5b5061031d6109473660046138b7565b6125d3565b348015610957575f80fd5b506103586109663660046134ef565b612705565b348015610976575f80fd5b5061035861098536600461350f565b612792565b335f818152609e602052604090205460ff166109ed5760405162461bcd60e51b815260206004820152601060248201527f6e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064015b60405180910390fd5b335f9081526101a260205260409020546001600160a01b031615610a535760405162461bcd60e51b815260206004820152601260248201527f616c72656164792072656769737465726564000000000000000000000000000060448201526064016109e4565b8215801590610a7157505f8381526101a4602052604090205460ff16155b610abd5760405162461bcd60e51b815260206004820152601960248201527f696e76616c69642074656e6465726d696e74207075626b65790000000000000060448201526064016109e4565b8151610100148015610af057506101a382604051610adb91906138f6565b9081526040519081900360200190205460ff16155b610b3c5760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420626c73207075626b6579000000000000000000000000000060448201526064016109e4565b6098543414610b8d5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b6040518060600160405280610b9f3390565b6001600160a01b03908116825260208083018790526040928301869052335f9081526101a28252839020845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558301516001820155908201516002820190610c1290826139ad565b50905050610c25610c203390565b612835565b60016101a383604051610c3891906138f6565b90815260408051918290036020908101909220805493151560ff199485161790555f8681526101a49092529020805490911660011790557fb9c7babb56df9f2da4a30811a6c778e4e68af88b72712d56cf62c5516e20e199610c973390565b8484604051610ca8939291906137cb565b60405180910390a1335f9081526101a26020908152604091829020825160608101845281546001600160a01b03168152600182015492810192909252600281018054610d809484019190610cfb90613911565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2790613911565b8015610d725780601f10610d4957610100808354040283529160200191610d72565b820191905f5260205f20905b815481529060010190602001808311610d5557829003601f168201915b505050505081525050612943565b505050565b60a08160ff8110610d94575f80fd5b01546001600160a01b0316905081565b610dac612a84565b5f5b815181101561107b57610dd9828281518110610dcc57610dcc613aab565b6020026020010151611696565b610e4b5760405162461bcd60e51b815260206004820152602160248201527f6f6e6c7920616374697665207374616b65722063616e2062652072656d6f766560448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016109e4565b6101a55f838381518110610e6157610e61613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20545f14610ed75760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109e4565b609954610ee49043613b05565b6101a55f848481518110610efa57610efa613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550610f47828281518110610f3a57610f3a613aab565b6020026020010151612ade565b818181518110610f5957610f59613aab565b60200260200101516001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d56101a55f858581518110610fa157610fa1613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054604051610fd891815260200190565b60405180910390a2609e5f838381518110610ff557610ff5613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f84848151811061104257611042613aab565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610dae565b507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84816040516110ab919061383e565b60405180910390a16110bc81612bd0565b50565b6110c7612a84565b5f811180156110d957506101a6548114155b6111255760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109e4565b6101a680549082905560408051828152602081018490527f36f971a40478225aeb80cfbf5e80306e8cb76d3bf7d56fdc5e490945cddb7d5591015b60405180910390a15050565b61117533611696565b6111c15760405162461bcd60e51b815260206004820152601260248201527f6f6e6c7920616374697665207374616b6572000000000000000000000000000060448201526064016109e4565b335f9081526101a560205260409020541561121e5760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109e4565b60995461122b9043613b05565b335f8181526101a5602052604090209190915561124790612ade565b335f8181526101a560209081526040918290205491519182527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a2335f908152609e60209081526040808320805460ff19908116909155609f83528184208054909116600190811790915581518181528083019092529091828101908036833701905050905033815f815181106112e9576112e9613aab565b60200260200101906001600160a01b031690816001600160a01b0316815250507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84816040516110ab919061383e565b611340612a84565b611348612ccd565b565b611352613362565b60408051611fe08101918290529060a09060ff9082845b81546001600160a01b03168152600190910190602001808311611369575050505050905090565b6097545f906001600160a01b0316336001600160a01b0316146113f55760405162461bcd60e51b815260206004820152601460248201527f6f6e6c7920726f6c6c757020636f6e747261637400000000000000000000000060448201526064016109e4565b6113fd612fe7565b5f61140783611dfc565b90505f805b82518110156115b9575f6101a55f85848151811061142c5761142c613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205411156114af576101a55f84838151811061147057611470613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f9055609854826114a89190613b05565b91506115b1565b6114e98382815181106114c4576114c4613aab565b60200260200101516001600160a01b03165f9081526101a16020526040902054151590565b6115b1576098546114fa9083613b05565b9150611511838281518110610f3a57610f3a613aab565b609e5f84838151811061152657611526613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f85848151811061157357611573613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60010161140c565b505f6064609a54836115cb9190613b18565b6115d59190613b2f565b90506115e18183613b67565b609d5f8282546115f19190613b05565b909155505060975461160c906001600160a01b031682613040565b7f654f4a61849f1b3ad10abb283d27f02d5fece7b820acc5a3b874713b58748b5a8360405161163b919061383e565b60405180910390a17f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c8483604051611672919061383e565b60405180910390a161168383612bd0565b925050506116916001606555565b919050565b6001600160a01b0381165f90815261019f602052604081205460ff1681036116bf57505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906116ea9060019060ff16613b7a565b60ff1660ff81106116fd576116fd613aab565b01546001600160a01b031614801561172b57506001600160a01b0382165f9081526101a16020526040902054155b92915050565b6001600160a01b0381165f90815261019f602052604081205460ff16810361175a57505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906117859060019060ff16613b7a565b60ff1660ff811061179857611798613aab565b01546001600160a01b03161492915050565b6117b2612a84565b6113485f6130f0565b6101a081815481106117cb575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f54610100900460ff161580801561180257505f54600160ff909116105b8061181b5750303b15801561181b57505f5460ff166001145b61188d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109e4565b5f805460ff1916600117905580156118cb575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0388166119215760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420726f6c6c757020636f6e747261637400000000000000000060448201526064016109e4565b5f87116119705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b5f86116119bf5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109e4565b5f8511611a0e5760405162461bcd60e51b815260206004820152601e60248201527f696e76616c6964207769746864726177616c206c6f636b20626c6f636b73000060448201526064016109e4565b5f8311611a5d5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420676173206c696d697420616464207374616b65720000000060448201526064016109e4565b5f8211611aac5760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420676173206c696d69742072656d6f7665207374616b65727360448201526064016109e4565b5f84118015611abc575060648411155b611b2d5760405162461bcd60e51b8152602060048201526024808201527f696e76616c6964206368616c6c656e676572207265776172642070657263656e60448201527f746167650000000000000000000000000000000000000000000000000000000060648201526084016109e4565b611b35613159565b611b3d6131dd565b609780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a16179055609a84905560988790556101a68690556099859055609b839055609c829055604080515f8152602081018590527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910160405180910390a1604080515f8152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910160405180910390a1604080515f8152602081018690527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910160405180910390a18015611c9c575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b611cae612a84565b5f81118015611cbf5750609c548114155b611d0b5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109e4565b609c80549082905560408051828152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f79101611160565b6101a26020525f90815260409020805460018201546002830180546001600160a01b03909316939192611d7b90613911565b80601f0160208091040260200160405190810160405280929190818152602001828054611da790613911565b8015611df25780601f10611dc957610100808354040283529160200191611df2565b820191905f5260205f20905b815481529060010190602001808311611dd557829003601f168201915b5050505050905083565b6060600182901c5f5b8115611e2c57611e16816001613b05565b9050611e23600183613b67565b82169150611e05565b8067ffffffffffffffff811115611e4557611e456133cb565b604051908082528060200260200182016040528015611e6e578160200160208202803683370190505b5092505f60015b60ff8160ff1611611f1057600160ff82161b861615611efe5760a0611e9b600183613b7a565b60ff1660ff8110611eae57611eae613aab565b015485516001600160a01b0390911690869084908110611ed057611ed0613aab565b6001600160a01b0390921660209283029190910190910152611ef3826001613b05565b915082821015611f10575b80611f0881613b93565b915050611e75565b50505050919050565b6040805160ff80825261200082019092526060915f91829160208201611fe0803683370190505090505f5b60ff811015611fe8575f60a08260ff8110611f6157611f61613aab565b01546001600160a01b031614801590611fa957506101a15f60a08360ff8110611f8c57611f8c613aab565b01546001600160a01b0316815260208101919091526040015f2054155b15611fe05782611fb881613bb1565b9350506001828281518110611fcf57611fcf613aab565b911515602092830291909101909101525b600101611f44565b505f8267ffffffffffffffff811115612003576120036133cb565b60405190808252806020026020018201604052801561202c578160200160208202803683370190505b5090505f805b60ff8110156120bd5783818151811061204d5761204d613aab565b6020026020010151156120b55760a08160ff811061206d5761206d613aab565b015483516001600160a01b039091169084908490811061208f5761208f613aab565b6001600160a01b0390921660209283029190910190910152816120b181613bb1565b9250505b600101612032565b5090949350505050565b6120cf612fe7565b335f9081526101a5602052604090205461212b5760405162461bcd60e51b815260206004820152601460248201527f7769746864726177616c206e6f7420657869737400000000000000000000000060448201526064016109e4565b335f9081526101a5602052604090205443101561218a5760405162461bcd60e51b815260206004820152601160248201527f7769746864726177616c206c6f636b656400000000000000000000000000000060448201526064016109e4565b335f9081526101a560205260408120556121a2612ccd565b604080516001600160a01b0383168152905133917f89309c9b2aeaffbdce717113df9427298b20448c05919bf889e05f8c3094254b919081900360200190a26121ed81609854613040565b6110bc6001606555565b6121ff612a84565b5f8111801561220f575060648111155b801561221d5750609a548114155b6122695760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642070657263656e746167650000000000000060448201526064016109e4565b609a80549082905560408051828152602081018490527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba9101611160565b6122af612a84565b5f811180156122c05750609b548114155b61230c5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109e4565b609b80549082905560408051828152602081018490527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c9101611160565b612352612a84565b5f5b8381101561244a57609f5f86868481811061237157612371613aab565b905060200201602081019061238691906134ef565b6001600160a01b0316815260208101919091526040015f205460ff16156123ef5760405162461bcd60e51b815260206004820152600f60248201527f696e2072656d6f766564206c697374000000000000000000000000000000000060448201526064016109e4565b6001609e5f87878581811061240657612406613aab565b905060200201602081019061241b91906134ef565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101612354565b505f5b818110156124a757609e5f84848481811061246a5761246a613aab565b905060200201602081019061247f91906134ef565b6001600160a01b0316815260208101919091526040015f20805460ff1916905560010161244d565b507fe375867e538b40218c1b3db2ccceaf875eb073e38b510449e6088c1539ac8622848484846040516124dd9493929190613c22565b60405180910390a150505050565b6124f3612a84565b6124fb612fe7565b609d546125088282613040565b5f609d55604080516001600160a01b0384168152602081018390527fa1fefb6c5328a92a416e321ed50997303fe7135fd88c28b0592b21ce42b5cdd9910160405180910390a1506110bc6001606555565b5f61256382611731565b6125af5760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109e4565b506001600160a01b03165f90815261019f6020526040902054600160ff9091161b90565b5f60ff8211156126255760405162461bcd60e51b815260206004820152601c60248201527f7374616b657273206c656e677468206f7574206f6620626f756e64730000000060448201526064016109e4565b5f5b828110156126fe5761265984848381811061264457612644613aab565b905060200201602081019061057a91906134ef565b6126a55760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109e4565b61019f5f8585848181106126bb576126bb613aab565b90506020020160208101906126d091906134ef565b6001600160a01b0316815260208101919091526040015f2054600160ff90911681901b929092179101612627565b5092915050565b61270d612a84565b6001600160a01b0381166127895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109e4565b6110bc816130f0565b61279a612a84565b5f811180156127ab57506098548114155b6127f75760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b609880549082905560408051828152602081018490527f91e3ed304d49776a78bbe0df6bf7156f5433763621e5e728a3c2adfe7de743689101611160565b5f5b60ff8160ff1610156128fa575f60a060ff80841690811061285a5761285a613aab565b01546001600160a01b0316036128f2578160a08260ff1660ff811061288157612881613aab565b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556128c3816001613c53565b6001600160a01b03929092165f90815261019f60205260409020805460ff191660ff9093169290921790915550565b600101612837565b5060405162461bcd60e51b815260206004820152600960248201527f736c6f742066756c6c000000000000000000000000000000000000000000000060448201526064016109e4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a754856040516024016129aa929190613c6c565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7046529b00000000000000000000000000000000000000000000000000000000179052609b5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a409493929190600401613caa565b5f604051808303815f87803b158015612a57575f80fd5b505af1158015612a69573d5f803e3d5ffd5b505050506101a7546001612a7d9190613b05565b6101a75550565b6033546001600160a01b031633146113485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109e4565b6001600160a01b0381165f9081526101a1602052604090205415612b445760405162461bcd60e51b815260206004820152601560248201527f616c726561647920696e2064656c6574654c697374000000000000000000000060448201526064016109e4565b6101a080546001810182555f919091527f7980fe0f714a613298681d64b7b8ffa7b148338dd52429f307d72798d5c317c40180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316179055609954612bb49043613b05565b6001600160a01b039091165f9081526101a16020526040902055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a75485604051602401612c37929190613ce2565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcce6cf9f00000000000000000000000000000000000000000000000000000000179052609c5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a409493929190600401613caa565b5f5b6101a0548110156110bc575f6001600160a01b03166101a08281548110612cf857612cf8613aab565b5f918252602090912001546001600160a01b031603612e33576101a15f6101a08381548110612d2957612d29613aab565b5f9182526020808320909101546001600160a01b031683528201929092526040018120556101a08054612d5e90600190613b67565b81548110612d6e57612d6e613aab565b5f918252602090912001546101a080546001600160a01b039092169183908110612d9a57612d9a613aab565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506101a0805480612dd757612dd7613cfa565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055612ccf565b436101a15f6101a08481548110612e4c57612e4c613aab565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411612fd55760a0600161019f5f6101a08581548110612e9157612e91613aab565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054612ec2919060ff16613b7a565b60ff1660ff8110612ed557612ed5613aab565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556101a0805461019f915f9184908110612f1757612f17613aab565b5f9182526020808320909101546001600160a01b031683528201929092526040018120805460ff191690556101a080546101a292919084908110612f5d57612f5d613aab565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590612fbb6002830182613381565b50506101a15f6101a08381548110612d2957612d29613aab565b80612fdf81613bb1565b915050612ccf565b6002606554036130395760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109e4565b6002606555565b80156130e5575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461308f576040519150601f19603f3d011682016040523d82523d5f602084013e613094565b606091505b5050905080610d805760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c6564000000000060448201526064016109e4565b5050565b6001606555565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166131d55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b611348613261565b5f54610100900460ff166132595760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b6113486132e6565b5f54610100900460ff166132dd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b611348336130f0565b5f54610100900460ff166130e95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b60405180611fe0016040528060ff906020820280368337509192915050565b50805461338d90613911565b5f825580601f1061339c575050565b601f0160209004905f5260205f20908101906110bc91905b808211156133c7575f81556001016133b4565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613421576134216133cb565b604052919050565b5f82601f830112613438575f80fd5b813567ffffffffffffffff811115613452576134526133cb565b6134656020601f19601f840116016133f8565b818152846020838601011115613479575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156134a6575f80fd5b82359150602083013567ffffffffffffffff8111156134c3575f80fd5b6134cf85828601613429565b9150509250929050565b80356001600160a01b0381168114611691575f80fd5b5f602082840312156134ff575f80fd5b613508826134d9565b9392505050565b5f6020828403121561351f575f80fd5b5035919050565b5f6020808385031215613537575f80fd5b823567ffffffffffffffff8082111561354e575f80fd5b818501915085601f830112613561575f80fd5b813581811115613573576135736133cb565b8060051b91506135848483016133f8565b818152918301840191848101908884111561359d575f80fd5b938501935b838510156135c2576135b3856134d9565b825293850193908501906135a2565b98975050505050505050565b611fe0810181835f5b60ff8110156135ff5781516001600160a01b03168352602092830192909101906001016135d7565b50505092915050565b5f8083601f840112613618575f80fd5b50813567ffffffffffffffff81111561362f575f80fd5b6020830191508360208260051b8501011115613649575f80fd5b9250929050565b5f805f805f8060808789031215613665575f80fd5b86359550602087013567ffffffffffffffff80821115613683575f80fd5b61368f8a838b01613608565b90975095506040890135945060608901359150808211156136ae575f80fd5b818901915089601f8301126136c1575f80fd5b8135818111156136cf575f80fd5b8a60208285010111156136e0575f80fd5b6020830194508093505050509295509295509295565b5f60208284031215613706575f80fd5b813567ffffffffffffffff81111561371c575f80fd5b61372884828501613429565b949350505050565b5f805f805f805f60e0888a031215613746575f80fd5b61374f886134d9565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f5b83811015613798578181015183820152602001613780565b50505f910152565b5f81518084526137b781602086016020860161377e565b601f01601f19169290920160200192915050565b6001600160a01b0384168152826020820152606060408201525f6137f260608301846137a0565b95945050505050565b5f815180845260208085019450602084015f5b838110156138335781516001600160a01b03168752958201959082019060010161380e565b509495945050505050565b602081525f61350860208301846137fb565b5f805f8060408587031215613863575f80fd5b843567ffffffffffffffff8082111561387a575f80fd5b61388688838901613608565b9096509450602087013591508082111561389e575f80fd5b506138ab87828801613608565b95989497509550505050565b5f80602083850312156138c8575f80fd5b823567ffffffffffffffff8111156138de575f80fd5b6138ea85828601613608565b90969095509350505050565b5f825161390781846020870161377e565b9190910192915050565b600181811c9082168061392557607f821691505b60208210810361395c577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610d8057805f5260205f20601f840160051c810160208510156139875750805b601f840160051c820191505b818110156139a6575f8155600101613993565b5050505050565b815167ffffffffffffffff8111156139c7576139c76133cb565b6139db816139d58454613911565b84613962565b602080601f831160018114613a2d575f84156139f75750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613aa3565b5f85815260208120601f198616915b82811015613a5b57888601518255948401946001909101908401613a3c565b5085821015613a9757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561172b5761172b613ad8565b808202811582820484141761172b5761172b613ad8565b5f82613b62577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8181038181111561172b5761172b613ad8565b60ff828116828216039081111561172b5761172b613ad8565b5f60ff821660ff8103613ba857613ba8613ad8565b60010192915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613be157613be1613ad8565b5060010190565b8183525f60208085019450825f5b85811015613833576001600160a01b03613c0f836134d9565b1687529582019590820190600101613bf6565b604081525f613c35604083018688613be8565b8281036020840152613c48818587613be8565b979650505050505050565b60ff818116838216019081111561172b5761172b613ad8565b828152604060208201526001600160a01b038251166040820152602082015160608201525f6040830151606060808401526137f260a08401826137a0565b6001600160a01b0385168152836020820152608060408201525f613cd160808301856137a0565b905082606083015295945050505050565b828152604060208201525f61372860408301846137fb565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a +0x608060405260043610610303575f3560e01c80638142951a11610191578063ae81de53116100dc578063d51c90a911610087578063e2a6ad5f11610062578063e2a6ad5f1461092d578063f2fde38b1461094c578063f4fe7fef1461096b575f80fd5b8063d51c90a9146108a0578063dd4785f5146108b5578063df155033146108f6575f80fd5b8063c7cd469a116100b7578063c7cd469a14610843578063cde4cd1114610862578063d096c3c614610881575f80fd5b8063ae81de53146107ef578063affed0e01461080e578063bfa02ba914610824575f80fd5b80639b19251a1161013c578063a3066aab11610117578063a3066aab1461079c578063a4f209b0146107bb578063ab8c53dc146107da575f80fd5b80639b19251a1461072e5780639d48f4171461075c5780639fb82db914610788575f80fd5b80638da5cb5b1161016c5780638da5cb5b146106b05780639168ae72146106cd578063927ede2d146106fb575f80fd5b80638142951a1461063f578063831cfb581461065e5780638a565ac314610691575f80fd5b806343352d61116102515780636f1e8533116101fc578063797adbde116101d7578063797adbde146105b95780637a4e87c3146105d85780637a9262a214610613575f80fd5b80636f1e853314610560578063715018a61461057f57806374fe27b714610593575f80fd5b806352d472eb1161022c57806352d472eb146104fd5780636801579114610512578063692c565b14610531575f80fd5b806343352d61146104a857806345bc4d10146104c95780634d64903a146104e8575f80fd5b806335928991116102b15780633ccfd60b1161028c5780633ccfd60b1461046b5780633ee2a1f91461047f57806341de239b14610493575f80fd5b806335928991146103dc5780633a9bbede146103fb5780633cb747bf14610439575f80fd5b80632e407a6f116102e15780632e407a6f1461035a578063303afb9e14610386578063320ff860146103bd575f80fd5b80630d13fd7b146103075780632108db35146103305780632a28e5a314610345575b5f80fd5b348015610312575f80fd5b5061031d6101a65481565b6040519081526020015b60405180910390f35b34801561033b575f80fd5b5061031d609c5481565b6103586103533660046134c8565b61098a565b005b348015610365575f80fd5b5061031d610374366004613522565b6101a16020525f908152604090205481565b348015610391575f80fd5b506103a56103a0366004613542565b610d85565b6040516001600160a01b039091168152602001610327565b3480156103c8575f80fd5b506103586103d7366004613559565b610da4565b3480156103e7575f80fd5b506103586103f6366004613542565b6110bf565b348015610406575f80fd5b50610429610415366004613522565b609f6020525f908152604090205460ff1681565b6040519015158152602001610327565b348015610444575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103a5565b348015610476575f80fd5b5061035861116c565b34801561048a575f80fd5b50610358611338565b34801561049e575f80fd5b5061031d60995481565b3480156104b3575f80fd5b506104bc61134a565b6040516103279190613601565b3480156104d4575f80fd5b5061031d6104e3366004613542565b611390565b3480156104f3575f80fd5b5061031d60985481565b348015610508575f80fd5b5061031d609a5481565b34801561051d575f80fd5b5061042961052c366004613522565b6116c9565b34801561053c575f80fd5b5061042961054b366004613542565b6101a46020525f908152604090205460ff1681565b34801561056b575f80fd5b5061042961057a366004613522565b611764565b34801561058a575f80fd5b506103586117dd565b34801561059e575f80fd5b506104296105ad366004613683565b60019695505050505050565b3480156105c4575f80fd5b506103a56105d3366004613542565b6117ee565b3480156105e3575f80fd5b506104296105f2366004613729565b80516020818301810180516101a38252928201919093012091525460ff1681565b34801561061e575f80fd5b5061031d61062d366004613522565b6101a56020525f908152604090205481565b34801561064a575f80fd5b50610358610659366004613763565b611817565b348015610669575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b34801561069c575f80fd5b506103586106ab366004613542565b611cd9565b3480156106bb575f80fd5b506033546001600160a01b03166103a5565b3480156106d8575f80fd5b506106ec6106e7366004613522565b611d7c565b604051610327939291906137fe565b348015610706575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610739575f80fd5b50610429610748366004613522565b609e6020525f908152604090205460ff1681565b348015610767575f80fd5b5061077b610776366004613542565b611e2f565b6040516103279190613871565b348015610793575f80fd5b5061077b611f4c565b3480156107a7575f80fd5b506103586107b6366004613522565b6120fa565b3480156107c6575f80fd5b506103586107d5366004613542565b61222a565b3480156107e5575f80fd5b5061031d609d5481565b3480156107fa575f80fd5b50610358610809366004613542565b6122da565b348015610819575f80fd5b5061031d6101a75481565b34801561082f575f80fd5b506097546103a5906001600160a01b031681565b34801561084e575f80fd5b5061035861085d366004613883565b61237d565b34801561086d575f80fd5b5061035861087c366004613522565b61251e565b34801561088c575f80fd5b5061031d61089b366004613522565b61258c565b3480156108ab575f80fd5b5061031d609b5481565b3480156108c0575f80fd5b506108e46108cf366004613522565b61019f6020525f908152604090205460ff1681565b60405160ff9091168152602001610327565b348015610901575f80fd5b50610429610910366004613522565b6001600160a01b03165f9081526101a16020526040902054151590565b348015610938575f80fd5b5061031d6109473660046138ea565b612606565b348015610957575f80fd5b50610358610966366004613522565b612738565b348015610976575f80fd5b50610358610985366004613542565b6127c5565b335f818152609e602052604090205460ff166109ed5760405162461bcd60e51b815260206004820152601060248201527f6e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064015b60405180910390fd5b335f9081526101a260205260409020546001600160a01b031615610a535760405162461bcd60e51b815260206004820152601260248201527f616c72656164792072656769737465726564000000000000000000000000000060448201526064016109e4565b8215801590610a7157505f8381526101a4602052604090205460ff16155b610abd5760405162461bcd60e51b815260206004820152601960248201527f696e76616c69642074656e6465726d696e74207075626b65790000000000000060448201526064016109e4565b8151610100148015610af057506101a382604051610adb9190613929565b9081526040519081900360200190205460ff16155b610b3c5760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420626c73207075626b6579000000000000000000000000000060448201526064016109e4565b6098543414610b8d5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b6040518060600160405280610b9f3390565b6001600160a01b03908116825260208083018790526040928301869052335f9081526101a28252839020845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558301516001820155908201516002820190610c1290826139e0565b50905050610c25610c203390565b612868565b60016101a383604051610c389190613929565b90815260408051918290036020908101909220805493151560ff199485161790555f8681526101a49092529020805490911660011790557fb9c7babb56df9f2da4a30811a6c778e4e68af88b72712d56cf62c5516e20e199610c973390565b8484604051610ca8939291906137fe565b60405180910390a1335f9081526101a26020908152604091829020825160608101845281546001600160a01b03168152600182015492810192909252600281018054610d809484019190610cfb90613944565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2790613944565b8015610d725780601f10610d4957610100808354040283529160200191610d72565b820191905f5260205f20905b815481529060010190602001808311610d5557829003601f168201915b505050505081525050612976565b505050565b60a08160ff8110610d94575f80fd5b01546001600160a01b0316905081565b610dac612ab7565b5f5b815181101561107b57610dd9828281518110610dcc57610dcc613ade565b60200260200101516116c9565b610e4b5760405162461bcd60e51b815260206004820152602160248201527f6f6e6c7920616374697665207374616b65722063616e2062652072656d6f766560448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016109e4565b6101a55f838381518110610e6157610e61613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20545f14610ed75760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109e4565b609954610ee49043613b38565b6101a55f848481518110610efa57610efa613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550610f47828281518110610f3a57610f3a613ade565b6020026020010151612b11565b818181518110610f5957610f59613ade565b60200260200101516001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d56101a55f858581518110610fa157610fa1613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054604051610fd891815260200190565b60405180910390a2609e5f838381518110610ff557610ff5613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f84848151811061104257611042613ade565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610dae565b507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84816040516110ab9190613871565b60405180910390a16110bc81612c03565b50565b6110c7612ab7565b5f811180156110d957506101a6548114155b6111255760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109e4565b6101a680549082905560408051828152602081018490527f36f971a40478225aeb80cfbf5e80306e8cb76d3bf7d56fdc5e490945cddb7d5591015b60405180910390a15050565b611175336116c9565b6111c15760405162461bcd60e51b815260206004820152601260248201527f6f6e6c7920616374697665207374616b6572000000000000000000000000000060448201526064016109e4565b335f9081526101a560205260409020541561121e5760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109e4565b60995461122b9043613b38565b335f8181526101a5602052604090209190915561124790612b11565b335f8181526101a560209081526040918290205491519182527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a2335f908152609e60209081526040808320805460ff19908116909155609f83528184208054909116600190811790915581518181528083019092529091828101908036833701905050905033815f815181106112e9576112e9613ade565b60200260200101906001600160a01b031690816001600160a01b0316815250507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84816040516110ab9190613871565b611340612ab7565b611348612d00565b565b611352613395565b60408051611fe08101918290529060a09060ff9082845b81546001600160a01b03168152600190910190602001808311611369575050505050905090565b6097545f906001600160a01b0316336001600160a01b0316146113f55760405162461bcd60e51b815260206004820152601460248201527f6f6e6c7920726f6c6c757020636f6e747261637400000000000000000000000060448201526064016109e4565b6113fd61301a565b5f61140783611e2f565b90505f805b82518110156115ec575f6001600160a01b031683828151811061143157611431613ade565b60200260200101516001600160a01b031603156115e4575f6101a55f85848151811061145f5761145f613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205411156114e2576101a55f8483815181106114a3576114a3613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f9055609854826114db9190613b38565b91506115e4565b61151c8382815181106114f7576114f7613ade565b60200260200101516001600160a01b03165f9081526101a16020526040902054151590565b6115e45760985461152d9083613b38565b9150611544838281518110610f3a57610f3a613ade565b609e5f84838151811061155957611559613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f8584815181106115a6576115a6613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60010161140c565b505f6064609a54836115fe9190613b4b565b6116089190613b62565b90506116148183613b9a565b609d5f8282546116249190613b38565b909155505060975461163f906001600160a01b031682613073565b7f654f4a61849f1b3ad10abb283d27f02d5fece7b820acc5a3b874713b58748b5a8360405161166e9190613871565b60405180910390a17f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84836040516116a59190613871565b60405180910390a16116b683612c03565b925050506116c46001606555565b919050565b6001600160a01b0381165f90815261019f602052604081205460ff1681036116f257505f919050565b6001600160a01b0382165f81815261019f602052604090205460a09061171d9060019060ff16613bad565b60ff1660ff811061173057611730613ade565b01546001600160a01b031614801561175e57506001600160a01b0382165f9081526101a16020526040902054155b92915050565b6001600160a01b0381165f90815261019f602052604081205460ff16810361178d57505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906117b89060019060ff16613bad565b60ff1660ff81106117cb576117cb613ade565b01546001600160a01b03161492915050565b6117e5612ab7565b6113485f613123565b6101a081815481106117fe575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f54610100900460ff161580801561183557505f54600160ff909116105b8061184e5750303b15801561184e57505f5460ff166001145b6118c05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109e4565b5f805460ff1916600117905580156118fe575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0388166119545760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420726f6c6c757020636f6e747261637400000000000000000060448201526064016109e4565b5f87116119a35760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b5f86116119f25760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109e4565b5f8511611a415760405162461bcd60e51b815260206004820152601e60248201527f696e76616c6964207769746864726177616c206c6f636b20626c6f636b73000060448201526064016109e4565b5f8311611a905760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420676173206c696d697420616464207374616b65720000000060448201526064016109e4565b5f8211611adf5760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420676173206c696d69742072656d6f7665207374616b65727360448201526064016109e4565b5f84118015611aef575060648411155b611b605760405162461bcd60e51b8152602060048201526024808201527f696e76616c6964206368616c6c656e676572207265776172642070657263656e60448201527f746167650000000000000000000000000000000000000000000000000000000060648201526084016109e4565b611b6861318c565b611b70613210565b609780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a16179055609a84905560988790556101a68690556099859055609b839055609c829055604080515f8152602081018590527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910160405180910390a1604080515f8152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910160405180910390a1604080515f8152602081018690527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910160405180910390a18015611ccf575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b611ce1612ab7565b5f81118015611cf25750609c548114155b611d3e5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109e4565b609c80549082905560408051828152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f79101611160565b6101a26020525f90815260409020805460018201546002830180546001600160a01b03909316939192611dae90613944565b80601f0160208091040260200160405190810160405280929190818152602001828054611dda90613944565b8015611e255780601f10611dfc57610100808354040283529160200191611e25565b820191905f5260205f20905b815481529060010190602001808311611e0857829003601f168201915b5050505050905083565b6060600182901c5f5b8115611e5f57611e49816001613b38565b9050611e56600183613b9a565b82169150611e38565b8067ffffffffffffffff811115611e7857611e786133fe565b604051908082528060200260200182016040528015611ea1578160200160208202803683370190505b5092505f60015b60ff8160ff1611611f4357600160ff82161b861615611f315760a0611ece600183613bad565b60ff1660ff8110611ee157611ee1613ade565b015485516001600160a01b0390911690869084908110611f0357611f03613ade565b6001600160a01b0390921660209283029190910190910152611f26826001613b38565b915082821015611f43575b80611f3b81613bc6565b915050611ea8565b50505050919050565b6040805160ff80825261200082019092526060915f91829160208201611fe0803683370190505090505f5b60ff81101561201b575f60a08260ff8110611f9457611f94613ade565b01546001600160a01b031614801590611fdc57506101a15f60a08360ff8110611fbf57611fbf613ade565b01546001600160a01b0316815260208101919091526040015f2054155b156120135782611feb81613be4565b935050600182828151811061200257612002613ade565b911515602092830291909101909101525b600101611f77565b505f8267ffffffffffffffff811115612036576120366133fe565b60405190808252806020026020018201604052801561205f578160200160208202803683370190505b5090505f805b60ff8110156120f05783818151811061208057612080613ade565b6020026020010151156120e85760a08160ff81106120a0576120a0613ade565b015483516001600160a01b03909116908490849081106120c2576120c2613ade565b6001600160a01b0390921660209283029190910190910152816120e481613be4565b9250505b600101612065565b5090949350505050565b61210261301a565b335f9081526101a5602052604090205461215e5760405162461bcd60e51b815260206004820152601460248201527f7769746864726177616c206e6f7420657869737400000000000000000000000060448201526064016109e4565b335f9081526101a560205260409020544310156121bd5760405162461bcd60e51b815260206004820152601160248201527f7769746864726177616c206c6f636b656400000000000000000000000000000060448201526064016109e4565b335f9081526101a560205260408120556121d5612d00565b604080516001600160a01b0383168152905133917f89309c9b2aeaffbdce717113df9427298b20448c05919bf889e05f8c3094254b919081900360200190a261222081609854613073565b6110bc6001606555565b612232612ab7565b5f81118015612242575060648111155b80156122505750609a548114155b61229c5760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642070657263656e746167650000000000000060448201526064016109e4565b609a80549082905560408051828152602081018490527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba9101611160565b6122e2612ab7565b5f811180156122f35750609b548114155b61233f5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109e4565b609b80549082905560408051828152602081018490527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c9101611160565b612385612ab7565b5f5b8381101561247d57609f5f8686848181106123a4576123a4613ade565b90506020020160208101906123b99190613522565b6001600160a01b0316815260208101919091526040015f205460ff16156124225760405162461bcd60e51b815260206004820152600f60248201527f696e2072656d6f766564206c697374000000000000000000000000000000000060448201526064016109e4565b6001609e5f87878581811061243957612439613ade565b905060200201602081019061244e9190613522565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101612387565b505f5b818110156124da57609e5f84848481811061249d5761249d613ade565b90506020020160208101906124b29190613522565b6001600160a01b0316815260208101919091526040015f20805460ff19169055600101612480565b507fe375867e538b40218c1b3db2ccceaf875eb073e38b510449e6088c1539ac8622848484846040516125109493929190613c55565b60405180910390a150505050565b612526612ab7565b61252e61301a565b609d5461253b8282613073565b5f609d55604080516001600160a01b0384168152602081018390527fa1fefb6c5328a92a416e321ed50997303fe7135fd88c28b0592b21ce42b5cdd9910160405180910390a1506110bc6001606555565b5f61259682611764565b6125e25760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109e4565b506001600160a01b03165f90815261019f6020526040902054600160ff9091161b90565b5f60ff8211156126585760405162461bcd60e51b815260206004820152601c60248201527f7374616b657273206c656e677468206f7574206f6620626f756e64730000000060448201526064016109e4565b5f5b828110156127315761268c84848381811061267757612677613ade565b905060200201602081019061057a9190613522565b6126d85760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109e4565b61019f5f8585848181106126ee576126ee613ade565b90506020020160208101906127039190613522565b6001600160a01b0316815260208101919091526040015f2054600160ff90911681901b92909217910161265a565b5092915050565b612740612ab7565b6001600160a01b0381166127bc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109e4565b6110bc81613123565b6127cd612ab7565b5f811180156127de57506098548114155b61282a5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b609880549082905560408051828152602081018490527f91e3ed304d49776a78bbe0df6bf7156f5433763621e5e728a3c2adfe7de743689101611160565b5f5b60ff8160ff16101561292d575f60a060ff80841690811061288d5761288d613ade565b01546001600160a01b031603612925578160a08260ff1660ff81106128b4576128b4613ade565b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556128f6816001613c86565b6001600160a01b03929092165f90815261019f60205260409020805460ff191660ff9093169290921790915550565b60010161286a565b5060405162461bcd60e51b815260206004820152600960248201527f736c6f742066756c6c000000000000000000000000000000000000000000000060448201526064016109e4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a754856040516024016129dd929190613c9f565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7046529b00000000000000000000000000000000000000000000000000000000179052609b5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a739493929190600401613cdd565b5f604051808303815f87803b158015612a8a575f80fd5b505af1158015612a9c573d5f803e3d5ffd5b505050506101a7546001612ab09190613b38565b6101a75550565b6033546001600160a01b031633146113485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109e4565b6001600160a01b0381165f9081526101a1602052604090205415612b775760405162461bcd60e51b815260206004820152601560248201527f616c726561647920696e2064656c6574654c697374000000000000000000000060448201526064016109e4565b6101a080546001810182555f919091527f7980fe0f714a613298681d64b7b8ffa7b148338dd52429f307d72798d5c317c40180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316179055609954612be79043613b38565b6001600160a01b039091165f9081526101a16020526040902055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a75485604051602401612c6a929190613d15565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcce6cf9f00000000000000000000000000000000000000000000000000000000179052609c5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a739493929190600401613cdd565b5f5b6101a0548110156110bc575f6001600160a01b03166101a08281548110612d2b57612d2b613ade565b5f918252602090912001546001600160a01b031603612e66576101a15f6101a08381548110612d5c57612d5c613ade565b5f9182526020808320909101546001600160a01b031683528201929092526040018120556101a08054612d9190600190613b9a565b81548110612da157612da1613ade565b5f918252602090912001546101a080546001600160a01b039092169183908110612dcd57612dcd613ade565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506101a0805480612e0a57612e0a613d2d565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055612d02565b436101a15f6101a08481548110612e7f57612e7f613ade565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054116130085760a0600161019f5f6101a08581548110612ec457612ec4613ade565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054612ef5919060ff16613bad565b60ff1660ff8110612f0857612f08613ade565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556101a0805461019f915f9184908110612f4a57612f4a613ade565b5f9182526020808320909101546001600160a01b031683528201929092526040018120805460ff191690556101a080546101a292919084908110612f9057612f90613ade565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590612fee60028301826133b4565b50506101a15f6101a08381548110612d5c57612d5c613ade565b8061301281613be4565b915050612d02565b60026065540361306c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109e4565b6002606555565b8015613118575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146130c2576040519150601f19603f3d011682016040523d82523d5f602084013e6130c7565b606091505b5050905080610d805760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c6564000000000060448201526064016109e4565b5050565b6001606555565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166132085760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b611348613294565b5f54610100900460ff1661328c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b611348613319565b5f54610100900460ff166133105760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b61134833613123565b5f54610100900460ff1661311c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b60405180611fe0016040528060ff906020820280368337509192915050565b5080546133c090613944565b5f825580601f106133cf575050565b601f0160209004905f5260205f20908101906110bc91905b808211156133fa575f81556001016133e7565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613454576134546133fe565b604052919050565b5f82601f83011261346b575f80fd5b813567ffffffffffffffff811115613485576134856133fe565b6134986020601f19601f8401160161342b565b8181528460208386010111156134ac575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156134d9575f80fd5b82359150602083013567ffffffffffffffff8111156134f6575f80fd5b6135028582860161345c565b9150509250929050565b80356001600160a01b03811681146116c4575f80fd5b5f60208284031215613532575f80fd5b61353b8261350c565b9392505050565b5f60208284031215613552575f80fd5b5035919050565b5f602080838503121561356a575f80fd5b823567ffffffffffffffff80821115613581575f80fd5b818501915085601f830112613594575f80fd5b8135818111156135a6576135a66133fe565b8060051b91506135b784830161342b565b81815291830184019184810190888411156135d0575f80fd5b938501935b838510156135f5576135e68561350c565b825293850193908501906135d5565b98975050505050505050565b611fe0810181835f5b60ff8110156136325781516001600160a01b031683526020928301929091019060010161360a565b50505092915050565b5f8083601f84011261364b575f80fd5b50813567ffffffffffffffff811115613662575f80fd5b6020830191508360208260051b850101111561367c575f80fd5b9250929050565b5f805f805f8060808789031215613698575f80fd5b86359550602087013567ffffffffffffffff808211156136b6575f80fd5b6136c28a838b0161363b565b90975095506040890135945060608901359150808211156136e1575f80fd5b818901915089601f8301126136f4575f80fd5b813581811115613702575f80fd5b8a6020828501011115613713575f80fd5b6020830194508093505050509295509295509295565b5f60208284031215613739575f80fd5b813567ffffffffffffffff81111561374f575f80fd5b61375b8482850161345c565b949350505050565b5f805f805f805f60e0888a031215613779575f80fd5b6137828861350c565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f5b838110156137cb5781810151838201526020016137b3565b50505f910152565b5f81518084526137ea8160208601602086016137b1565b601f01601f19169290920160200192915050565b6001600160a01b0384168152826020820152606060408201525f61382560608301846137d3565b95945050505050565b5f815180845260208085019450602084015f5b838110156138665781516001600160a01b031687529582019590820190600101613841565b509495945050505050565b602081525f61353b602083018461382e565b5f805f8060408587031215613896575f80fd5b843567ffffffffffffffff808211156138ad575f80fd5b6138b98883890161363b565b909650945060208701359150808211156138d1575f80fd5b506138de8782880161363b565b95989497509550505050565b5f80602083850312156138fb575f80fd5b823567ffffffffffffffff811115613911575f80fd5b61391d8582860161363b565b90969095509350505050565b5f825161393a8184602087016137b1565b9190910192915050565b600181811c9082168061395857607f821691505b60208210810361398f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610d8057805f5260205f20601f840160051c810160208510156139ba5750805b601f840160051c820191505b818110156139d9575f81556001016139c6565b5050505050565b815167ffffffffffffffff8111156139fa576139fa6133fe565b613a0e81613a088454613944565b84613995565b602080601f831160018114613a60575f8415613a2a5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613ad6565b5f85815260208120601f198616915b82811015613a8e57888601518255948401946001909101908401613a6f565b5085821015613aca57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561175e5761175e613b0b565b808202811582820484141761175e5761175e613b0b565b5f82613b95577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8181038181111561175e5761175e613b0b565b60ff828116828216039081111561175e5761175e613b0b565b5f60ff821660ff8103613bdb57613bdb613b0b565b60010192915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c1457613c14613b0b565b5060010190565b8183525f60208085019450825f5b85811015613866576001600160a01b03613c428361350c565b1687529582019590820190600101613c29565b604081525f613c68604083018688613c1b565b8281036020840152613c7b818587613c1b565b979650505050505050565b60ff818116838216019081111561175e5761175e613b0b565b828152604060208201526001600160a01b038251166040820152602082015160608201525f60408301516060608084015261382560a08401826137d3565b6001600160a01b0385168152836020820152608060408201525f613d0460808301856137d3565b905082606083015295945050505050565b828152604060208201525f61375b604083018461382e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a diff --git a/bindings/bindings/l1staking.go b/bindings/bindings/l1staking.go index 1abde6ad9..f22c3b2dd 100644 --- a/bindings/bindings/l1staking.go +++ b/bindings/bindings/l1staking.go @@ -32,7 +32,7 @@ var ( // L1StakingMetaData contains all meta data concerning the L1Staking contract. var L1StakingMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_messenger\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldChallengeDeposit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newChallengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeDepositUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newGasLimit\",\"type\":\"uint256\"}],\"name\":\"GasLimitAddStakerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newGasLimit\",\"type\":\"uint256\"}],\"name\":\"GasLimitRemoveStakersUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercentage\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercentage\",\"type\":\"uint256\"}],\"name\":\"RewardPercentageUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SlashRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"stakers\",\"type\":\"address[]\"}],\"name\":\"Slashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"stakers\",\"type\":\"address[]\"}],\"name\":\"StakersRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldStakingValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newStakingValue\",\"type\":\"uint256\"}],\"name\":\"StakingValueUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"add\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"WhitelistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockHeight\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contractICrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_STAKING\",\"outputs\":[{\"internalType\":\"contractStaking\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"blsPubkey\",\"type\":\"bytes\"}],\"name\":\"blsKeys\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengeDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimSlashRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cleanStakerStore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deleteList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"deleteableHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasLimitAddStaker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasLimitRemoveStakers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveStakers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_staker\",\"type\":\"address\"}],\"name\":\"getStakerBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakers\",\"outputs\":[{\"internalType\":\"address[255]\",\"name\":\"\",\"type\":\"address[255]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_stakers\",\"type\":\"address[]\"}],\"name\":\"getStakersBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"name\":\"getStakersFromBitmap\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"stakerAddrs\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_rollupContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_stakingValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rewardPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimitAdd\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimitRemove\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isActiveStaker\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isStaker\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isStakerInDeleteList\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_stakers\",\"type\":\"address[]\"}],\"name\":\"removeStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"removedList\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardPercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequencersBitmap\",\"type\":\"uint256\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"stakerIndexes\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakerSet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"stakers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakingValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"tmPubkey\",\"type\":\"bytes32\"}],\"name\":\"tmKeys\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"updateChallengeDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasLimitAdd\",\"type\":\"uint256\"}],\"name\":\"updateGasLimitAddStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasLimitRemove\",\"type\":\"uint256\"}],\"name\":\"updateGasLimitRemoveStakers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardPercentage\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_stakingValue\",\"type\":\"uint256\"}],\"name\":\"updateStakingValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"add\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"updateWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"verifySignature\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddr\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"inWhitelist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawalLockBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60c060405234801562000010575f80fd5b5060405162003ecf38038062003ecf833981016040819052620000339162000127565b6001600160a01b03811660805273530000000000000000000000000000000000001560a0526200006262000069565b5062000156565b5f54610100900460ff1615620000d55760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161462000125575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000138575f80fd5b81516001600160a01b03811681146200014f575f80fd5b9392505050565b60805160a051613d346200019b5f395f818161066f015281816129740152612c0101525f81816104470152818161070c015281816129450152612bd20152613d345ff3fe608060405260043610610303575f3560e01c80638142951a11610191578063ae81de53116100dc578063d51c90a911610087578063e2a6ad5f11610062578063e2a6ad5f1461092d578063f2fde38b1461094c578063f4fe7fef1461096b575f80fd5b8063d51c90a9146108a0578063dd4785f5146108b5578063df155033146108f6575f80fd5b8063c7cd469a116100b7578063c7cd469a14610843578063cde4cd1114610862578063d096c3c614610881575f80fd5b8063ae81de53146107ef578063affed0e01461080e578063bfa02ba914610824575f80fd5b80639b19251a1161013c578063a3066aab11610117578063a3066aab1461079c578063a4f209b0146107bb578063ab8c53dc146107da575f80fd5b80639b19251a1461072e5780639d48f4171461075c5780639fb82db914610788575f80fd5b80638da5cb5b1161016c5780638da5cb5b146106b05780639168ae72146106cd578063927ede2d146106fb575f80fd5b80638142951a1461063f578063831cfb581461065e5780638a565ac314610691575f80fd5b806343352d61116102515780636f1e8533116101fc578063797adbde116101d7578063797adbde146105b95780637a4e87c3146105d85780637a9262a214610613575f80fd5b80636f1e853314610560578063715018a61461057f57806374fe27b714610593575f80fd5b806352d472eb1161022c57806352d472eb146104fd5780636801579114610512578063692c565b14610531575f80fd5b806343352d61146104a857806345bc4d10146104c95780634d64903a146104e8575f80fd5b806335928991116102b15780633ccfd60b1161028c5780633ccfd60b1461046b5780633ee2a1f91461047f57806341de239b14610493575f80fd5b806335928991146103dc5780633a9bbede146103fb5780633cb747bf14610439575f80fd5b80632e407a6f116102e15780632e407a6f1461035a578063303afb9e14610386578063320ff860146103bd575f80fd5b80630d13fd7b146103075780632108db35146103305780632a28e5a314610345575b5f80fd5b348015610312575f80fd5b5061031d6101a65481565b6040519081526020015b60405180910390f35b34801561033b575f80fd5b5061031d609c5481565b610358610353366004613495565b61098a565b005b348015610365575f80fd5b5061031d6103743660046134ef565b6101a16020525f908152604090205481565b348015610391575f80fd5b506103a56103a036600461350f565b610d85565b6040516001600160a01b039091168152602001610327565b3480156103c8575f80fd5b506103586103d7366004613526565b610da4565b3480156103e7575f80fd5b506103586103f636600461350f565b6110bf565b348015610406575f80fd5b506104296104153660046134ef565b609f6020525f908152604090205460ff1681565b6040519015158152602001610327565b348015610444575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103a5565b348015610476575f80fd5b5061035861116c565b34801561048a575f80fd5b50610358611338565b34801561049e575f80fd5b5061031d60995481565b3480156104b3575f80fd5b506104bc61134a565b60405161032791906135ce565b3480156104d4575f80fd5b5061031d6104e336600461350f565b611390565b3480156104f3575f80fd5b5061031d60985481565b348015610508575f80fd5b5061031d609a5481565b34801561051d575f80fd5b5061042961052c3660046134ef565b611696565b34801561053c575f80fd5b5061042961054b36600461350f565b6101a46020525f908152604090205460ff1681565b34801561056b575f80fd5b5061042961057a3660046134ef565b611731565b34801561058a575f80fd5b506103586117aa565b34801561059e575f80fd5b506104296105ad366004613650565b60019695505050505050565b3480156105c4575f80fd5b506103a56105d336600461350f565b6117bb565b3480156105e3575f80fd5b506104296105f23660046136f6565b80516020818301810180516101a38252928201919093012091525460ff1681565b34801561061e575f80fd5b5061031d61062d3660046134ef565b6101a56020525f908152604090205481565b34801561064a575f80fd5b50610358610659366004613730565b6117e4565b348015610669575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b34801561069c575f80fd5b506103586106ab36600461350f565b611ca6565b3480156106bb575f80fd5b506033546001600160a01b03166103a5565b3480156106d8575f80fd5b506106ec6106e73660046134ef565b611d49565b604051610327939291906137cb565b348015610706575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610739575f80fd5b506104296107483660046134ef565b609e6020525f908152604090205460ff1681565b348015610767575f80fd5b5061077b61077636600461350f565b611dfc565b604051610327919061383e565b348015610793575f80fd5b5061077b611f19565b3480156107a7575f80fd5b506103586107b63660046134ef565b6120c7565b3480156107c6575f80fd5b506103586107d536600461350f565b6121f7565b3480156107e5575f80fd5b5061031d609d5481565b3480156107fa575f80fd5b5061035861080936600461350f565b6122a7565b348015610819575f80fd5b5061031d6101a75481565b34801561082f575f80fd5b506097546103a5906001600160a01b031681565b34801561084e575f80fd5b5061035861085d366004613850565b61234a565b34801561086d575f80fd5b5061035861087c3660046134ef565b6124eb565b34801561088c575f80fd5b5061031d61089b3660046134ef565b612559565b3480156108ab575f80fd5b5061031d609b5481565b3480156108c0575f80fd5b506108e46108cf3660046134ef565b61019f6020525f908152604090205460ff1681565b60405160ff9091168152602001610327565b348015610901575f80fd5b506104296109103660046134ef565b6001600160a01b03165f9081526101a16020526040902054151590565b348015610938575f80fd5b5061031d6109473660046138b7565b6125d3565b348015610957575f80fd5b506103586109663660046134ef565b612705565b348015610976575f80fd5b5061035861098536600461350f565b612792565b335f818152609e602052604090205460ff166109ed5760405162461bcd60e51b815260206004820152601060248201527f6e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064015b60405180910390fd5b335f9081526101a260205260409020546001600160a01b031615610a535760405162461bcd60e51b815260206004820152601260248201527f616c72656164792072656769737465726564000000000000000000000000000060448201526064016109e4565b8215801590610a7157505f8381526101a4602052604090205460ff16155b610abd5760405162461bcd60e51b815260206004820152601960248201527f696e76616c69642074656e6465726d696e74207075626b65790000000000000060448201526064016109e4565b8151610100148015610af057506101a382604051610adb91906138f6565b9081526040519081900360200190205460ff16155b610b3c5760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420626c73207075626b6579000000000000000000000000000060448201526064016109e4565b6098543414610b8d5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b6040518060600160405280610b9f3390565b6001600160a01b03908116825260208083018790526040928301869052335f9081526101a28252839020845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558301516001820155908201516002820190610c1290826139ad565b50905050610c25610c203390565b612835565b60016101a383604051610c3891906138f6565b90815260408051918290036020908101909220805493151560ff199485161790555f8681526101a49092529020805490911660011790557fb9c7babb56df9f2da4a30811a6c778e4e68af88b72712d56cf62c5516e20e199610c973390565b8484604051610ca8939291906137cb565b60405180910390a1335f9081526101a26020908152604091829020825160608101845281546001600160a01b03168152600182015492810192909252600281018054610d809484019190610cfb90613911565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2790613911565b8015610d725780601f10610d4957610100808354040283529160200191610d72565b820191905f5260205f20905b815481529060010190602001808311610d5557829003601f168201915b505050505081525050612943565b505050565b60a08160ff8110610d94575f80fd5b01546001600160a01b0316905081565b610dac612a84565b5f5b815181101561107b57610dd9828281518110610dcc57610dcc613aab565b6020026020010151611696565b610e4b5760405162461bcd60e51b815260206004820152602160248201527f6f6e6c7920616374697665207374616b65722063616e2062652072656d6f766560448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016109e4565b6101a55f838381518110610e6157610e61613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20545f14610ed75760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109e4565b609954610ee49043613b05565b6101a55f848481518110610efa57610efa613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550610f47828281518110610f3a57610f3a613aab565b6020026020010151612ade565b818181518110610f5957610f59613aab565b60200260200101516001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d56101a55f858581518110610fa157610fa1613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054604051610fd891815260200190565b60405180910390a2609e5f838381518110610ff557610ff5613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f84848151811061104257611042613aab565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610dae565b507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84816040516110ab919061383e565b60405180910390a16110bc81612bd0565b50565b6110c7612a84565b5f811180156110d957506101a6548114155b6111255760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109e4565b6101a680549082905560408051828152602081018490527f36f971a40478225aeb80cfbf5e80306e8cb76d3bf7d56fdc5e490945cddb7d5591015b60405180910390a15050565b61117533611696565b6111c15760405162461bcd60e51b815260206004820152601260248201527f6f6e6c7920616374697665207374616b6572000000000000000000000000000060448201526064016109e4565b335f9081526101a560205260409020541561121e5760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109e4565b60995461122b9043613b05565b335f8181526101a5602052604090209190915561124790612ade565b335f8181526101a560209081526040918290205491519182527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a2335f908152609e60209081526040808320805460ff19908116909155609f83528184208054909116600190811790915581518181528083019092529091828101908036833701905050905033815f815181106112e9576112e9613aab565b60200260200101906001600160a01b031690816001600160a01b0316815250507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84816040516110ab919061383e565b611340612a84565b611348612ccd565b565b611352613362565b60408051611fe08101918290529060a09060ff9082845b81546001600160a01b03168152600190910190602001808311611369575050505050905090565b6097545f906001600160a01b0316336001600160a01b0316146113f55760405162461bcd60e51b815260206004820152601460248201527f6f6e6c7920726f6c6c757020636f6e747261637400000000000000000000000060448201526064016109e4565b6113fd612fe7565b5f61140783611dfc565b90505f805b82518110156115b9575f6101a55f85848151811061142c5761142c613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205411156114af576101a55f84838151811061147057611470613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f9055609854826114a89190613b05565b91506115b1565b6114e98382815181106114c4576114c4613aab565b60200260200101516001600160a01b03165f9081526101a16020526040902054151590565b6115b1576098546114fa9083613b05565b9150611511838281518110610f3a57610f3a613aab565b609e5f84838151811061152657611526613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f85848151811061157357611573613aab565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60010161140c565b505f6064609a54836115cb9190613b18565b6115d59190613b2f565b90506115e18183613b67565b609d5f8282546115f19190613b05565b909155505060975461160c906001600160a01b031682613040565b7f654f4a61849f1b3ad10abb283d27f02d5fece7b820acc5a3b874713b58748b5a8360405161163b919061383e565b60405180910390a17f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c8483604051611672919061383e565b60405180910390a161168383612bd0565b925050506116916001606555565b919050565b6001600160a01b0381165f90815261019f602052604081205460ff1681036116bf57505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906116ea9060019060ff16613b7a565b60ff1660ff81106116fd576116fd613aab565b01546001600160a01b031614801561172b57506001600160a01b0382165f9081526101a16020526040902054155b92915050565b6001600160a01b0381165f90815261019f602052604081205460ff16810361175a57505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906117859060019060ff16613b7a565b60ff1660ff811061179857611798613aab565b01546001600160a01b03161492915050565b6117b2612a84565b6113485f6130f0565b6101a081815481106117cb575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f54610100900460ff161580801561180257505f54600160ff909116105b8061181b5750303b15801561181b57505f5460ff166001145b61188d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109e4565b5f805460ff1916600117905580156118cb575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0388166119215760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420726f6c6c757020636f6e747261637400000000000000000060448201526064016109e4565b5f87116119705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b5f86116119bf5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109e4565b5f8511611a0e5760405162461bcd60e51b815260206004820152601e60248201527f696e76616c6964207769746864726177616c206c6f636b20626c6f636b73000060448201526064016109e4565b5f8311611a5d5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420676173206c696d697420616464207374616b65720000000060448201526064016109e4565b5f8211611aac5760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420676173206c696d69742072656d6f7665207374616b65727360448201526064016109e4565b5f84118015611abc575060648411155b611b2d5760405162461bcd60e51b8152602060048201526024808201527f696e76616c6964206368616c6c656e676572207265776172642070657263656e60448201527f746167650000000000000000000000000000000000000000000000000000000060648201526084016109e4565b611b35613159565b611b3d6131dd565b609780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a16179055609a84905560988790556101a68690556099859055609b839055609c829055604080515f8152602081018590527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910160405180910390a1604080515f8152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910160405180910390a1604080515f8152602081018690527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910160405180910390a18015611c9c575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b611cae612a84565b5f81118015611cbf5750609c548114155b611d0b5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109e4565b609c80549082905560408051828152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f79101611160565b6101a26020525f90815260409020805460018201546002830180546001600160a01b03909316939192611d7b90613911565b80601f0160208091040260200160405190810160405280929190818152602001828054611da790613911565b8015611df25780601f10611dc957610100808354040283529160200191611df2565b820191905f5260205f20905b815481529060010190602001808311611dd557829003601f168201915b5050505050905083565b6060600182901c5f5b8115611e2c57611e16816001613b05565b9050611e23600183613b67565b82169150611e05565b8067ffffffffffffffff811115611e4557611e456133cb565b604051908082528060200260200182016040528015611e6e578160200160208202803683370190505b5092505f60015b60ff8160ff1611611f1057600160ff82161b861615611efe5760a0611e9b600183613b7a565b60ff1660ff8110611eae57611eae613aab565b015485516001600160a01b0390911690869084908110611ed057611ed0613aab565b6001600160a01b0390921660209283029190910190910152611ef3826001613b05565b915082821015611f10575b80611f0881613b93565b915050611e75565b50505050919050565b6040805160ff80825261200082019092526060915f91829160208201611fe0803683370190505090505f5b60ff811015611fe8575f60a08260ff8110611f6157611f61613aab565b01546001600160a01b031614801590611fa957506101a15f60a08360ff8110611f8c57611f8c613aab565b01546001600160a01b0316815260208101919091526040015f2054155b15611fe05782611fb881613bb1565b9350506001828281518110611fcf57611fcf613aab565b911515602092830291909101909101525b600101611f44565b505f8267ffffffffffffffff811115612003576120036133cb565b60405190808252806020026020018201604052801561202c578160200160208202803683370190505b5090505f805b60ff8110156120bd5783818151811061204d5761204d613aab565b6020026020010151156120b55760a08160ff811061206d5761206d613aab565b015483516001600160a01b039091169084908490811061208f5761208f613aab565b6001600160a01b0390921660209283029190910190910152816120b181613bb1565b9250505b600101612032565b5090949350505050565b6120cf612fe7565b335f9081526101a5602052604090205461212b5760405162461bcd60e51b815260206004820152601460248201527f7769746864726177616c206e6f7420657869737400000000000000000000000060448201526064016109e4565b335f9081526101a5602052604090205443101561218a5760405162461bcd60e51b815260206004820152601160248201527f7769746864726177616c206c6f636b656400000000000000000000000000000060448201526064016109e4565b335f9081526101a560205260408120556121a2612ccd565b604080516001600160a01b0383168152905133917f89309c9b2aeaffbdce717113df9427298b20448c05919bf889e05f8c3094254b919081900360200190a26121ed81609854613040565b6110bc6001606555565b6121ff612a84565b5f8111801561220f575060648111155b801561221d5750609a548114155b6122695760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642070657263656e746167650000000000000060448201526064016109e4565b609a80549082905560408051828152602081018490527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba9101611160565b6122af612a84565b5f811180156122c05750609b548114155b61230c5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109e4565b609b80549082905560408051828152602081018490527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c9101611160565b612352612a84565b5f5b8381101561244a57609f5f86868481811061237157612371613aab565b905060200201602081019061238691906134ef565b6001600160a01b0316815260208101919091526040015f205460ff16156123ef5760405162461bcd60e51b815260206004820152600f60248201527f696e2072656d6f766564206c697374000000000000000000000000000000000060448201526064016109e4565b6001609e5f87878581811061240657612406613aab565b905060200201602081019061241b91906134ef565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101612354565b505f5b818110156124a757609e5f84848481811061246a5761246a613aab565b905060200201602081019061247f91906134ef565b6001600160a01b0316815260208101919091526040015f20805460ff1916905560010161244d565b507fe375867e538b40218c1b3db2ccceaf875eb073e38b510449e6088c1539ac8622848484846040516124dd9493929190613c22565b60405180910390a150505050565b6124f3612a84565b6124fb612fe7565b609d546125088282613040565b5f609d55604080516001600160a01b0384168152602081018390527fa1fefb6c5328a92a416e321ed50997303fe7135fd88c28b0592b21ce42b5cdd9910160405180910390a1506110bc6001606555565b5f61256382611731565b6125af5760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109e4565b506001600160a01b03165f90815261019f6020526040902054600160ff9091161b90565b5f60ff8211156126255760405162461bcd60e51b815260206004820152601c60248201527f7374616b657273206c656e677468206f7574206f6620626f756e64730000000060448201526064016109e4565b5f5b828110156126fe5761265984848381811061264457612644613aab565b905060200201602081019061057a91906134ef565b6126a55760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109e4565b61019f5f8585848181106126bb576126bb613aab565b90506020020160208101906126d091906134ef565b6001600160a01b0316815260208101919091526040015f2054600160ff90911681901b929092179101612627565b5092915050565b61270d612a84565b6001600160a01b0381166127895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109e4565b6110bc816130f0565b61279a612a84565b5f811180156127ab57506098548114155b6127f75760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b609880549082905560408051828152602081018490527f91e3ed304d49776a78bbe0df6bf7156f5433763621e5e728a3c2adfe7de743689101611160565b5f5b60ff8160ff1610156128fa575f60a060ff80841690811061285a5761285a613aab565b01546001600160a01b0316036128f2578160a08260ff1660ff811061288157612881613aab565b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556128c3816001613c53565b6001600160a01b03929092165f90815261019f60205260409020805460ff191660ff9093169290921790915550565b600101612837565b5060405162461bcd60e51b815260206004820152600960248201527f736c6f742066756c6c000000000000000000000000000000000000000000000060448201526064016109e4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a754856040516024016129aa929190613c6c565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7046529b00000000000000000000000000000000000000000000000000000000179052609b5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a409493929190600401613caa565b5f604051808303815f87803b158015612a57575f80fd5b505af1158015612a69573d5f803e3d5ffd5b505050506101a7546001612a7d9190613b05565b6101a75550565b6033546001600160a01b031633146113485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109e4565b6001600160a01b0381165f9081526101a1602052604090205415612b445760405162461bcd60e51b815260206004820152601560248201527f616c726561647920696e2064656c6574654c697374000000000000000000000060448201526064016109e4565b6101a080546001810182555f919091527f7980fe0f714a613298681d64b7b8ffa7b148338dd52429f307d72798d5c317c40180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316179055609954612bb49043613b05565b6001600160a01b039091165f9081526101a16020526040902055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a75485604051602401612c37929190613ce2565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcce6cf9f00000000000000000000000000000000000000000000000000000000179052609c5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a409493929190600401613caa565b5f5b6101a0548110156110bc575f6001600160a01b03166101a08281548110612cf857612cf8613aab565b5f918252602090912001546001600160a01b031603612e33576101a15f6101a08381548110612d2957612d29613aab565b5f9182526020808320909101546001600160a01b031683528201929092526040018120556101a08054612d5e90600190613b67565b81548110612d6e57612d6e613aab565b5f918252602090912001546101a080546001600160a01b039092169183908110612d9a57612d9a613aab565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506101a0805480612dd757612dd7613cfa565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055612ccf565b436101a15f6101a08481548110612e4c57612e4c613aab565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411612fd55760a0600161019f5f6101a08581548110612e9157612e91613aab565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054612ec2919060ff16613b7a565b60ff1660ff8110612ed557612ed5613aab565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556101a0805461019f915f9184908110612f1757612f17613aab565b5f9182526020808320909101546001600160a01b031683528201929092526040018120805460ff191690556101a080546101a292919084908110612f5d57612f5d613aab565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590612fbb6002830182613381565b50506101a15f6101a08381548110612d2957612d29613aab565b80612fdf81613bb1565b915050612ccf565b6002606554036130395760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109e4565b6002606555565b80156130e5575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461308f576040519150601f19603f3d011682016040523d82523d5f602084013e613094565b606091505b5050905080610d805760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c6564000000000060448201526064016109e4565b5050565b6001606555565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166131d55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b611348613261565b5f54610100900460ff166132595760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b6113486132e6565b5f54610100900460ff166132dd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b611348336130f0565b5f54610100900460ff166130e95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b60405180611fe0016040528060ff906020820280368337509192915050565b50805461338d90613911565b5f825580601f1061339c575050565b601f0160209004905f5260205f20908101906110bc91905b808211156133c7575f81556001016133b4565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613421576134216133cb565b604052919050565b5f82601f830112613438575f80fd5b813567ffffffffffffffff811115613452576134526133cb565b6134656020601f19601f840116016133f8565b818152846020838601011115613479575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156134a6575f80fd5b82359150602083013567ffffffffffffffff8111156134c3575f80fd5b6134cf85828601613429565b9150509250929050565b80356001600160a01b0381168114611691575f80fd5b5f602082840312156134ff575f80fd5b613508826134d9565b9392505050565b5f6020828403121561351f575f80fd5b5035919050565b5f6020808385031215613537575f80fd5b823567ffffffffffffffff8082111561354e575f80fd5b818501915085601f830112613561575f80fd5b813581811115613573576135736133cb565b8060051b91506135848483016133f8565b818152918301840191848101908884111561359d575f80fd5b938501935b838510156135c2576135b3856134d9565b825293850193908501906135a2565b98975050505050505050565b611fe0810181835f5b60ff8110156135ff5781516001600160a01b03168352602092830192909101906001016135d7565b50505092915050565b5f8083601f840112613618575f80fd5b50813567ffffffffffffffff81111561362f575f80fd5b6020830191508360208260051b8501011115613649575f80fd5b9250929050565b5f805f805f8060808789031215613665575f80fd5b86359550602087013567ffffffffffffffff80821115613683575f80fd5b61368f8a838b01613608565b90975095506040890135945060608901359150808211156136ae575f80fd5b818901915089601f8301126136c1575f80fd5b8135818111156136cf575f80fd5b8a60208285010111156136e0575f80fd5b6020830194508093505050509295509295509295565b5f60208284031215613706575f80fd5b813567ffffffffffffffff81111561371c575f80fd5b61372884828501613429565b949350505050565b5f805f805f805f60e0888a031215613746575f80fd5b61374f886134d9565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f5b83811015613798578181015183820152602001613780565b50505f910152565b5f81518084526137b781602086016020860161377e565b601f01601f19169290920160200192915050565b6001600160a01b0384168152826020820152606060408201525f6137f260608301846137a0565b95945050505050565b5f815180845260208085019450602084015f5b838110156138335781516001600160a01b03168752958201959082019060010161380e565b509495945050505050565b602081525f61350860208301846137fb565b5f805f8060408587031215613863575f80fd5b843567ffffffffffffffff8082111561387a575f80fd5b61388688838901613608565b9096509450602087013591508082111561389e575f80fd5b506138ab87828801613608565b95989497509550505050565b5f80602083850312156138c8575f80fd5b823567ffffffffffffffff8111156138de575f80fd5b6138ea85828601613608565b90969095509350505050565b5f825161390781846020870161377e565b9190910192915050565b600181811c9082168061392557607f821691505b60208210810361395c577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610d8057805f5260205f20601f840160051c810160208510156139875750805b601f840160051c820191505b818110156139a6575f8155600101613993565b5050505050565b815167ffffffffffffffff8111156139c7576139c76133cb565b6139db816139d58454613911565b84613962565b602080601f831160018114613a2d575f84156139f75750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613aa3565b5f85815260208120601f198616915b82811015613a5b57888601518255948401946001909101908401613a3c565b5085821015613a9757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561172b5761172b613ad8565b808202811582820484141761172b5761172b613ad8565b5f82613b62577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8181038181111561172b5761172b613ad8565b60ff828116828216039081111561172b5761172b613ad8565b5f60ff821660ff8103613ba857613ba8613ad8565b60010192915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613be157613be1613ad8565b5060010190565b8183525f60208085019450825f5b85811015613833576001600160a01b03613c0f836134d9565b1687529582019590820190600101613bf6565b604081525f613c35604083018688613be8565b8281036020840152613c48818587613be8565b979650505050505050565b60ff818116838216019081111561172b5761172b613ad8565b828152604060208201526001600160a01b038251166040820152602082015160608201525f6040830151606060808401526137f260a08401826137a0565b6001600160a01b0385168152836020820152608060408201525f613cd160808301856137a0565b905082606083015295945050505050565b828152604060208201525f61372860408301846137fb565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a", + Bin: "0x60c060405234801562000010575f80fd5b5060405162003f0238038062003f02833981016040819052620000339162000127565b6001600160a01b03811660805273530000000000000000000000000000000000001560a0526200006262000069565b5062000156565b5f54610100900460ff1615620000d55760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161462000125575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000138575f80fd5b81516001600160a01b03811681146200014f575f80fd5b9392505050565b60805160a051613d676200019b5f395f818161066f015281816129a70152612c3401525f81816104470152818161070c015281816129780152612c050152613d675ff3fe608060405260043610610303575f3560e01c80638142951a11610191578063ae81de53116100dc578063d51c90a911610087578063e2a6ad5f11610062578063e2a6ad5f1461092d578063f2fde38b1461094c578063f4fe7fef1461096b575f80fd5b8063d51c90a9146108a0578063dd4785f5146108b5578063df155033146108f6575f80fd5b8063c7cd469a116100b7578063c7cd469a14610843578063cde4cd1114610862578063d096c3c614610881575f80fd5b8063ae81de53146107ef578063affed0e01461080e578063bfa02ba914610824575f80fd5b80639b19251a1161013c578063a3066aab11610117578063a3066aab1461079c578063a4f209b0146107bb578063ab8c53dc146107da575f80fd5b80639b19251a1461072e5780639d48f4171461075c5780639fb82db914610788575f80fd5b80638da5cb5b1161016c5780638da5cb5b146106b05780639168ae72146106cd578063927ede2d146106fb575f80fd5b80638142951a1461063f578063831cfb581461065e5780638a565ac314610691575f80fd5b806343352d61116102515780636f1e8533116101fc578063797adbde116101d7578063797adbde146105b95780637a4e87c3146105d85780637a9262a214610613575f80fd5b80636f1e853314610560578063715018a61461057f57806374fe27b714610593575f80fd5b806352d472eb1161022c57806352d472eb146104fd5780636801579114610512578063692c565b14610531575f80fd5b806343352d61146104a857806345bc4d10146104c95780634d64903a146104e8575f80fd5b806335928991116102b15780633ccfd60b1161028c5780633ccfd60b1461046b5780633ee2a1f91461047f57806341de239b14610493575f80fd5b806335928991146103dc5780633a9bbede146103fb5780633cb747bf14610439575f80fd5b80632e407a6f116102e15780632e407a6f1461035a578063303afb9e14610386578063320ff860146103bd575f80fd5b80630d13fd7b146103075780632108db35146103305780632a28e5a314610345575b5f80fd5b348015610312575f80fd5b5061031d6101a65481565b6040519081526020015b60405180910390f35b34801561033b575f80fd5b5061031d609c5481565b6103586103533660046134c8565b61098a565b005b348015610365575f80fd5b5061031d610374366004613522565b6101a16020525f908152604090205481565b348015610391575f80fd5b506103a56103a0366004613542565b610d85565b6040516001600160a01b039091168152602001610327565b3480156103c8575f80fd5b506103586103d7366004613559565b610da4565b3480156103e7575f80fd5b506103586103f6366004613542565b6110bf565b348015610406575f80fd5b50610429610415366004613522565b609f6020525f908152604090205460ff1681565b6040519015158152602001610327565b348015610444575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103a5565b348015610476575f80fd5b5061035861116c565b34801561048a575f80fd5b50610358611338565b34801561049e575f80fd5b5061031d60995481565b3480156104b3575f80fd5b506104bc61134a565b6040516103279190613601565b3480156104d4575f80fd5b5061031d6104e3366004613542565b611390565b3480156104f3575f80fd5b5061031d60985481565b348015610508575f80fd5b5061031d609a5481565b34801561051d575f80fd5b5061042961052c366004613522565b6116c9565b34801561053c575f80fd5b5061042961054b366004613542565b6101a46020525f908152604090205460ff1681565b34801561056b575f80fd5b5061042961057a366004613522565b611764565b34801561058a575f80fd5b506103586117dd565b34801561059e575f80fd5b506104296105ad366004613683565b60019695505050505050565b3480156105c4575f80fd5b506103a56105d3366004613542565b6117ee565b3480156105e3575f80fd5b506104296105f2366004613729565b80516020818301810180516101a38252928201919093012091525460ff1681565b34801561061e575f80fd5b5061031d61062d366004613522565b6101a56020525f908152604090205481565b34801561064a575f80fd5b50610358610659366004613763565b611817565b348015610669575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b34801561069c575f80fd5b506103586106ab366004613542565b611cd9565b3480156106bb575f80fd5b506033546001600160a01b03166103a5565b3480156106d8575f80fd5b506106ec6106e7366004613522565b611d7c565b604051610327939291906137fe565b348015610706575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610739575f80fd5b50610429610748366004613522565b609e6020525f908152604090205460ff1681565b348015610767575f80fd5b5061077b610776366004613542565b611e2f565b6040516103279190613871565b348015610793575f80fd5b5061077b611f4c565b3480156107a7575f80fd5b506103586107b6366004613522565b6120fa565b3480156107c6575f80fd5b506103586107d5366004613542565b61222a565b3480156107e5575f80fd5b5061031d609d5481565b3480156107fa575f80fd5b50610358610809366004613542565b6122da565b348015610819575f80fd5b5061031d6101a75481565b34801561082f575f80fd5b506097546103a5906001600160a01b031681565b34801561084e575f80fd5b5061035861085d366004613883565b61237d565b34801561086d575f80fd5b5061035861087c366004613522565b61251e565b34801561088c575f80fd5b5061031d61089b366004613522565b61258c565b3480156108ab575f80fd5b5061031d609b5481565b3480156108c0575f80fd5b506108e46108cf366004613522565b61019f6020525f908152604090205460ff1681565b60405160ff9091168152602001610327565b348015610901575f80fd5b50610429610910366004613522565b6001600160a01b03165f9081526101a16020526040902054151590565b348015610938575f80fd5b5061031d6109473660046138ea565b612606565b348015610957575f80fd5b50610358610966366004613522565b612738565b348015610976575f80fd5b50610358610985366004613542565b6127c5565b335f818152609e602052604090205460ff166109ed5760405162461bcd60e51b815260206004820152601060248201527f6e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064015b60405180910390fd5b335f9081526101a260205260409020546001600160a01b031615610a535760405162461bcd60e51b815260206004820152601260248201527f616c72656164792072656769737465726564000000000000000000000000000060448201526064016109e4565b8215801590610a7157505f8381526101a4602052604090205460ff16155b610abd5760405162461bcd60e51b815260206004820152601960248201527f696e76616c69642074656e6465726d696e74207075626b65790000000000000060448201526064016109e4565b8151610100148015610af057506101a382604051610adb9190613929565b9081526040519081900360200190205460ff16155b610b3c5760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420626c73207075626b6579000000000000000000000000000060448201526064016109e4565b6098543414610b8d5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b6040518060600160405280610b9f3390565b6001600160a01b03908116825260208083018790526040928301869052335f9081526101a28252839020845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558301516001820155908201516002820190610c1290826139e0565b50905050610c25610c203390565b612868565b60016101a383604051610c389190613929565b90815260408051918290036020908101909220805493151560ff199485161790555f8681526101a49092529020805490911660011790557fb9c7babb56df9f2da4a30811a6c778e4e68af88b72712d56cf62c5516e20e199610c973390565b8484604051610ca8939291906137fe565b60405180910390a1335f9081526101a26020908152604091829020825160608101845281546001600160a01b03168152600182015492810192909252600281018054610d809484019190610cfb90613944565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2790613944565b8015610d725780601f10610d4957610100808354040283529160200191610d72565b820191905f5260205f20905b815481529060010190602001808311610d5557829003601f168201915b505050505081525050612976565b505050565b60a08160ff8110610d94575f80fd5b01546001600160a01b0316905081565b610dac612ab7565b5f5b815181101561107b57610dd9828281518110610dcc57610dcc613ade565b60200260200101516116c9565b610e4b5760405162461bcd60e51b815260206004820152602160248201527f6f6e6c7920616374697665207374616b65722063616e2062652072656d6f766560448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016109e4565b6101a55f838381518110610e6157610e61613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20545f14610ed75760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109e4565b609954610ee49043613b38565b6101a55f848481518110610efa57610efa613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550610f47828281518110610f3a57610f3a613ade565b6020026020010151612b11565b818181518110610f5957610f59613ade565b60200260200101516001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d56101a55f858581518110610fa157610fa1613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054604051610fd891815260200190565b60405180910390a2609e5f838381518110610ff557610ff5613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f84848151811061104257611042613ade565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610dae565b507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84816040516110ab9190613871565b60405180910390a16110bc81612c03565b50565b6110c7612ab7565b5f811180156110d957506101a6548114155b6111255760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109e4565b6101a680549082905560408051828152602081018490527f36f971a40478225aeb80cfbf5e80306e8cb76d3bf7d56fdc5e490945cddb7d5591015b60405180910390a15050565b611175336116c9565b6111c15760405162461bcd60e51b815260206004820152601260248201527f6f6e6c7920616374697665207374616b6572000000000000000000000000000060448201526064016109e4565b335f9081526101a560205260409020541561121e5760405162461bcd60e51b815260206004820152600b60248201527f7769746864726177696e6700000000000000000000000000000000000000000060448201526064016109e4565b60995461122b9043613b38565b335f8181526101a5602052604090209190915561124790612b11565b335f8181526101a560209081526040918290205491519182527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a2335f908152609e60209081526040808320805460ff19908116909155609f83528184208054909116600190811790915581518181528083019092529091828101908036833701905050905033815f815181106112e9576112e9613ade565b60200260200101906001600160a01b031690816001600160a01b0316815250507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84816040516110ab9190613871565b611340612ab7565b611348612d00565b565b611352613395565b60408051611fe08101918290529060a09060ff9082845b81546001600160a01b03168152600190910190602001808311611369575050505050905090565b6097545f906001600160a01b0316336001600160a01b0316146113f55760405162461bcd60e51b815260206004820152601460248201527f6f6e6c7920726f6c6c757020636f6e747261637400000000000000000000000060448201526064016109e4565b6113fd61301a565b5f61140783611e2f565b90505f805b82518110156115ec575f6001600160a01b031683828151811061143157611431613ade565b60200260200101516001600160a01b031603156115e4575f6101a55f85848151811061145f5761145f613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205411156114e2576101a55f8483815181106114a3576114a3613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f9055609854826114db9190613b38565b91506115e4565b61151c8382815181106114f7576114f7613ade565b60200260200101516001600160a01b03165f9081526101a16020526040902054151590565b6115e45760985461152d9083613b38565b9150611544838281518110610f3a57610f3a613ade565b609e5f84838151811061155957611559613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81549060ff02191690556001609f5f8584815181106115a6576115a6613ade565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60010161140c565b505f6064609a54836115fe9190613b4b565b6116089190613b62565b90506116148183613b9a565b609d5f8282546116249190613b38565b909155505060975461163f906001600160a01b031682613073565b7f654f4a61849f1b3ad10abb283d27f02d5fece7b820acc5a3b874713b58748b5a8360405161166e9190613871565b60405180910390a17f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84836040516116a59190613871565b60405180910390a16116b683612c03565b925050506116c46001606555565b919050565b6001600160a01b0381165f90815261019f602052604081205460ff1681036116f257505f919050565b6001600160a01b0382165f81815261019f602052604090205460a09061171d9060019060ff16613bad565b60ff1660ff811061173057611730613ade565b01546001600160a01b031614801561175e57506001600160a01b0382165f9081526101a16020526040902054155b92915050565b6001600160a01b0381165f90815261019f602052604081205460ff16810361178d57505f919050565b6001600160a01b0382165f81815261019f602052604090205460a0906117b89060019060ff16613bad565b60ff1660ff81106117cb576117cb613ade565b01546001600160a01b03161492915050565b6117e5612ab7565b6113485f613123565b6101a081815481106117fe575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f54610100900460ff161580801561183557505f54600160ff909116105b8061184e5750303b15801561184e57505f5460ff166001145b6118c05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109e4565b5f805460ff1916600117905580156118fe575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0388166119545760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420726f6c6c757020636f6e747261637400000000000000000060448201526064016109e4565b5f87116119a35760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b5f86116119f25760405162461bcd60e51b815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c75650060448201526064016109e4565b5f8511611a415760405162461bcd60e51b815260206004820152601e60248201527f696e76616c6964207769746864726177616c206c6f636b20626c6f636b73000060448201526064016109e4565b5f8311611a905760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420676173206c696d697420616464207374616b65720000000060448201526064016109e4565b5f8211611adf5760405162461bcd60e51b815260206004820181905260248201527f696e76616c696420676173206c696d69742072656d6f7665207374616b65727360448201526064016109e4565b5f84118015611aef575060648411155b611b605760405162461bcd60e51b8152602060048201526024808201527f696e76616c6964206368616c6c656e676572207265776172642070657263656e60448201527f746167650000000000000000000000000000000000000000000000000000000060648201526084016109e4565b611b6861318c565b611b70613210565b609780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a16179055609a84905560988790556101a68690556099859055609b839055609c829055604080515f8152602081018590527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910160405180910390a1604080515f8152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910160405180910390a1604080515f8152602081018690527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910160405180910390a18015611ccf575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b611ce1612ab7565b5f81118015611cf25750609c548114155b611d3e5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109e4565b609c80549082905560408051828152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f79101611160565b6101a26020525f90815260409020805460018201546002830180546001600160a01b03909316939192611dae90613944565b80601f0160208091040260200160405190810160405280929190818152602001828054611dda90613944565b8015611e255780601f10611dfc57610100808354040283529160200191611e25565b820191905f5260205f20905b815481529060010190602001808311611e0857829003601f168201915b5050505050905083565b6060600182901c5f5b8115611e5f57611e49816001613b38565b9050611e56600183613b9a565b82169150611e38565b8067ffffffffffffffff811115611e7857611e786133fe565b604051908082528060200260200182016040528015611ea1578160200160208202803683370190505b5092505f60015b60ff8160ff1611611f4357600160ff82161b861615611f315760a0611ece600183613bad565b60ff1660ff8110611ee157611ee1613ade565b015485516001600160a01b0390911690869084908110611f0357611f03613ade565b6001600160a01b0390921660209283029190910190910152611f26826001613b38565b915082821015611f43575b80611f3b81613bc6565b915050611ea8565b50505050919050565b6040805160ff80825261200082019092526060915f91829160208201611fe0803683370190505090505f5b60ff81101561201b575f60a08260ff8110611f9457611f94613ade565b01546001600160a01b031614801590611fdc57506101a15f60a08360ff8110611fbf57611fbf613ade565b01546001600160a01b0316815260208101919091526040015f2054155b156120135782611feb81613be4565b935050600182828151811061200257612002613ade565b911515602092830291909101909101525b600101611f77565b505f8267ffffffffffffffff811115612036576120366133fe565b60405190808252806020026020018201604052801561205f578160200160208202803683370190505b5090505f805b60ff8110156120f05783818151811061208057612080613ade565b6020026020010151156120e85760a08160ff81106120a0576120a0613ade565b015483516001600160a01b03909116908490849081106120c2576120c2613ade565b6001600160a01b0390921660209283029190910190910152816120e481613be4565b9250505b600101612065565b5090949350505050565b61210261301a565b335f9081526101a5602052604090205461215e5760405162461bcd60e51b815260206004820152601460248201527f7769746864726177616c206e6f7420657869737400000000000000000000000060448201526064016109e4565b335f9081526101a560205260409020544310156121bd5760405162461bcd60e51b815260206004820152601160248201527f7769746864726177616c206c6f636b656400000000000000000000000000000060448201526064016109e4565b335f9081526101a560205260408120556121d5612d00565b604080516001600160a01b0383168152905133917f89309c9b2aeaffbdce717113df9427298b20448c05919bf889e05f8c3094254b919081900360200190a261222081609854613073565b6110bc6001606555565b612232612ab7565b5f81118015612242575060648111155b80156122505750609a548114155b61229c5760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642070657263656e746167650000000000000060448201526064016109e4565b609a80549082905560408051828152602081018490527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba9101611160565b6122e2612ab7565b5f811180156122f35750609b548114155b61233f5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206e657720676173206c696d6974000000000000000000000060448201526064016109e4565b609b80549082905560408051828152602081018490527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c9101611160565b612385612ab7565b5f5b8381101561247d57609f5f8686848181106123a4576123a4613ade565b90506020020160208101906123b99190613522565b6001600160a01b0316815260208101919091526040015f205460ff16156124225760405162461bcd60e51b815260206004820152600f60248201527f696e2072656d6f766564206c697374000000000000000000000000000000000060448201526064016109e4565b6001609e5f87878581811061243957612439613ade565b905060200201602081019061244e9190613522565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101612387565b505f5b818110156124da57609e5f84848481811061249d5761249d613ade565b90506020020160208101906124b29190613522565b6001600160a01b0316815260208101919091526040015f20805460ff19169055600101612480565b507fe375867e538b40218c1b3db2ccceaf875eb073e38b510449e6088c1539ac8622848484846040516125109493929190613c55565b60405180910390a150505050565b612526612ab7565b61252e61301a565b609d5461253b8282613073565b5f609d55604080516001600160a01b0384168152602081018390527fa1fefb6c5328a92a416e321ed50997303fe7135fd88c28b0592b21ce42b5cdd9910160405180910390a1506110bc6001606555565b5f61259682611764565b6125e25760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109e4565b506001600160a01b03165f90815261019f6020526040902054600160ff9091161b90565b5f60ff8211156126585760405162461bcd60e51b815260206004820152601c60248201527f7374616b657273206c656e677468206f7574206f6620626f756e64730000000060448201526064016109e4565b5f5b828110156127315761268c84848381811061267757612677613ade565b905060200201602081019061057a9190613522565b6126d85760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207374616b657200000000000000000000000000000000000060448201526064016109e4565b61019f5f8585848181106126ee576126ee613ade565b90506020020160208101906127039190613522565b6001600160a01b0316815260208101919091526040015f2054600160ff90911681901b92909217910161265a565b5092915050565b612740612ab7565b6001600160a01b0381166127bc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109e4565b6110bc81613123565b6127cd612ab7565b5f811180156127de57506098548114155b61282a5760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964207374616b696e672076616c7565000000000000000000000060448201526064016109e4565b609880549082905560408051828152602081018490527f91e3ed304d49776a78bbe0df6bf7156f5433763621e5e728a3c2adfe7de743689101611160565b5f5b60ff8160ff16101561292d575f60a060ff80841690811061288d5761288d613ade565b01546001600160a01b031603612925578160a08260ff1660ff81106128b4576128b4613ade565b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556128f6816001613c86565b6001600160a01b03929092165f90815261019f60205260409020805460ff191660ff9093169290921790915550565b60010161286a565b5060405162461bcd60e51b815260206004820152600960248201527f736c6f742066756c6c000000000000000000000000000000000000000000000060448201526064016109e4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a754856040516024016129dd929190613c9f565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7046529b00000000000000000000000000000000000000000000000000000000179052609b5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a739493929190600401613cdd565b5f604051808303815f87803b158015612a8a575f80fd5b505af1158015612a9c573d5f803e3d5ffd5b505050506101a7546001612ab09190613b38565b6101a75550565b6033546001600160a01b031633146113485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109e4565b6001600160a01b0381165f9081526101a1602052604090205415612b775760405162461bcd60e51b815260206004820152601560248201527f616c726561647920696e2064656c6574654c697374000000000000000000000060448201526064016109e4565b6101a080546001810182555f919091527f7980fe0f714a613298681d64b7b8ffa7b148338dd52429f307d72798d5c317c40180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316179055609954612be79043613b38565b6001600160a01b039091165f9081526101a16020526040902055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a75485604051602401612c6a929190613d15565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcce6cf9f00000000000000000000000000000000000000000000000000000000179052609c5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152612a739493929190600401613cdd565b5f5b6101a0548110156110bc575f6001600160a01b03166101a08281548110612d2b57612d2b613ade565b5f918252602090912001546001600160a01b031603612e66576101a15f6101a08381548110612d5c57612d5c613ade565b5f9182526020808320909101546001600160a01b031683528201929092526040018120556101a08054612d9190600190613b9a565b81548110612da157612da1613ade565b5f918252602090912001546101a080546001600160a01b039092169183908110612dcd57612dcd613ade565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506101a0805480612e0a57612e0a613d2d565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055612d02565b436101a15f6101a08481548110612e7f57612e7f613ade565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054116130085760a0600161019f5f6101a08581548110612ec457612ec4613ade565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054612ef5919060ff16613bad565b60ff1660ff8110612f0857612f08613ade565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556101a0805461019f915f9184908110612f4a57612f4a613ade565b5f9182526020808320909101546001600160a01b031683528201929092526040018120805460ff191690556101a080546101a292919084908110612f9057612f90613ade565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590612fee60028301826133b4565b50506101a15f6101a08381548110612d5c57612d5c613ade565b8061301281613be4565b915050612d02565b60026065540361306c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109e4565b6002606555565b8015613118575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146130c2576040519150601f19603f3d011682016040523d82523d5f602084013e6130c7565b606091505b5050905080610d805760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c6564000000000060448201526064016109e4565b5050565b6001606555565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166132085760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b611348613294565b5f54610100900460ff1661328c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b611348613319565b5f54610100900460ff166133105760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b61134833613123565b5f54610100900460ff1661311c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e4565b60405180611fe0016040528060ff906020820280368337509192915050565b5080546133c090613944565b5f825580601f106133cf575050565b601f0160209004905f5260205f20908101906110bc91905b808211156133fa575f81556001016133e7565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613454576134546133fe565b604052919050565b5f82601f83011261346b575f80fd5b813567ffffffffffffffff811115613485576134856133fe565b6134986020601f19601f8401160161342b565b8181528460208386010111156134ac575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156134d9575f80fd5b82359150602083013567ffffffffffffffff8111156134f6575f80fd5b6135028582860161345c565b9150509250929050565b80356001600160a01b03811681146116c4575f80fd5b5f60208284031215613532575f80fd5b61353b8261350c565b9392505050565b5f60208284031215613552575f80fd5b5035919050565b5f602080838503121561356a575f80fd5b823567ffffffffffffffff80821115613581575f80fd5b818501915085601f830112613594575f80fd5b8135818111156135a6576135a66133fe565b8060051b91506135b784830161342b565b81815291830184019184810190888411156135d0575f80fd5b938501935b838510156135f5576135e68561350c565b825293850193908501906135d5565b98975050505050505050565b611fe0810181835f5b60ff8110156136325781516001600160a01b031683526020928301929091019060010161360a565b50505092915050565b5f8083601f84011261364b575f80fd5b50813567ffffffffffffffff811115613662575f80fd5b6020830191508360208260051b850101111561367c575f80fd5b9250929050565b5f805f805f8060808789031215613698575f80fd5b86359550602087013567ffffffffffffffff808211156136b6575f80fd5b6136c28a838b0161363b565b90975095506040890135945060608901359150808211156136e1575f80fd5b818901915089601f8301126136f4575f80fd5b813581811115613702575f80fd5b8a6020828501011115613713575f80fd5b6020830194508093505050509295509295509295565b5f60208284031215613739575f80fd5b813567ffffffffffffffff81111561374f575f80fd5b61375b8482850161345c565b949350505050565b5f805f805f805f60e0888a031215613779575f80fd5b6137828861350c565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f5b838110156137cb5781810151838201526020016137b3565b50505f910152565b5f81518084526137ea8160208601602086016137b1565b601f01601f19169290920160200192915050565b6001600160a01b0384168152826020820152606060408201525f61382560608301846137d3565b95945050505050565b5f815180845260208085019450602084015f5b838110156138665781516001600160a01b031687529582019590820190600101613841565b509495945050505050565b602081525f61353b602083018461382e565b5f805f8060408587031215613896575f80fd5b843567ffffffffffffffff808211156138ad575f80fd5b6138b98883890161363b565b909650945060208701359150808211156138d1575f80fd5b506138de8782880161363b565b95989497509550505050565b5f80602083850312156138fb575f80fd5b823567ffffffffffffffff811115613911575f80fd5b61391d8582860161363b565b90969095509350505050565b5f825161393a8184602087016137b1565b9190910192915050565b600181811c9082168061395857607f821691505b60208210810361398f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610d8057805f5260205f20601f840160051c810160208510156139ba5750805b601f840160051c820191505b818110156139d9575f81556001016139c6565b5050505050565b815167ffffffffffffffff8111156139fa576139fa6133fe565b613a0e81613a088454613944565b84613995565b602080601f831160018114613a60575f8415613a2a5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613ad6565b5f85815260208120601f198616915b82811015613a8e57888601518255948401946001909101908401613a6f565b5085821015613aca57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561175e5761175e613b0b565b808202811582820484141761175e5761175e613b0b565b5f82613b95577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8181038181111561175e5761175e613b0b565b60ff828116828216039081111561175e5761175e613b0b565b5f60ff821660ff8103613bdb57613bdb613b0b565b60010192915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c1457613c14613b0b565b5060010190565b8183525f60208085019450825f5b85811015613866576001600160a01b03613c428361350c565b1687529582019590820190600101613c29565b604081525f613c68604083018688613c1b565b8281036020840152613c7b818587613c1b565b979650505050505050565b60ff818116838216019081111561175e5761175e613b0b565b828152604060208201526001600160a01b038251166040820152602082015160608201525f60408301516060608084015261382560a08401826137d3565b6001600160a01b0385168152836020820152608060408201525f613d0460808301856137d3565b905082606083015295945050505050565b828152604060208201525f61375b604083018461382e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a", } // L1StakingABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/l1staking_more.go b/bindings/bindings/l1staking_more.go index 63b68aa35..a72d81cd0 100644 --- a/bindings/bindings/l1staking_more.go +++ b/bindings/bindings/l1staking_more.go @@ -13,7 +13,7 @@ const L1StakingStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\ var L1StakingStorageLayout = new(solc.StorageLayout) -var L1StakingDeployedBin = "0x608060405260043610610303575f3560e01c80638142951a11610191578063ae81de53116100dc578063d51c90a911610087578063e2a6ad5f11610062578063e2a6ad5f14610961578063f2fde38b14610980578063f4fe7fef1461099f575f80fd5b8063d51c90a9146108c7578063dd4785f5146108dc578063df1550331461091d575f80fd5b8063c7cd469a116100b7578063c7cd469a1461086a578063cde4cd1114610889578063d096c3c6146108a8575f80fd5b8063ae81de5314610809578063affed0e014610828578063bfa02ba91461083e575f80fd5b80639b19251a1161013c578063a3066aab11610117578063a3066aab146107b6578063a4f209b0146107d5578063ab8c53dc146107f4575f80fd5b80639b19251a146107485780639d48f417146107765780639fb82db9146107a2575f80fd5b80638da5cb5b1161016c5780638da5cb5b146106bd5780639168ae72146106e7578063927ede2d14610715575f80fd5b80638142951a1461064c578063831cfb581461066b5780638a565ac31461069e575f80fd5b806343352d61116102515780636f1e8533116101fc578063797adbde116101d7578063797adbde146105c65780637a4e87c3146105e55780637a9262a214610620575f80fd5b80636f1e85331461056d578063715018a61461058c57806374fe27b7146105a0575f80fd5b806352d472eb1161022c57806352d472eb1461050a578063680157911461051f578063692c565b1461053e575f80fd5b806343352d61146104b557806345bc4d10146104d65780634d64903a146104f5575f80fd5b806335928991116102b15780633ccfd60b1161028c5780633ccfd60b146104785780633ee2a1f91461048c57806341de239b146104a0575f80fd5b806335928991146103e95780633a9bbede146104085780633cb747bf14610446575f80fd5b80632e407a6f116102e15780632e407a6f1461035a578063303afb9e14610386578063320ff860146103ca575f80fd5b80630d13fd7b146103075780632108db35146103305780632a28e5a314610345575b5f80fd5b348015610312575f80fd5b5061031d6101a65481565b6040519081526020015b60405180910390f35b34801561033b575f80fd5b5061031d609c5481565b610358610353366004613df6565b6109be565b005b348015610365575f80fd5b5061031d610374366004613e5d565b6101a16020525f908152604090205481565b348015610391575f80fd5b506103a56103a0366004613e7d565b610e80565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610327565b3480156103d5575f80fd5b506103586103e4366004613e94565b610eac565b3480156103f4575f80fd5b50610358610403366004613e7d565b61129b565b348015610413575f80fd5b50610436610422366004613e5d565b609f6020525f908152604090205460ff1681565b6040519015158152602001610327565b348015610451575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103a5565b348015610483575f80fd5b50610358611362565b348015610497575f80fd5b5061035861159a565b3480156104ab575f80fd5b5061031d60995481565b3480156104c0575f80fd5b506104c96115ac565b6040516103279190613f3c565b3480156104e1575f80fd5b5061031d6104f0366004613e7d565b6115ff565b348015610500575f80fd5b5061031d60985481565b348015610515575f80fd5b5061031d609a5481565b34801561052a575f80fd5b50610436610539366004613e5d565b6119bb565b348015610549575f80fd5b50610436610558366004613e7d565b6101a46020525f908152604090205460ff1681565b348015610578575f80fd5b50610436610587366004613e5d565b611a8a565b348015610597575f80fd5b50610358611b2a565b3480156105ab575f80fd5b506104366105ba366004613fcb565b60019695505050505050565b3480156105d1575f80fd5b506103a56105e0366004613e7d565b611b3b565b3480156105f0575f80fd5b506104366105ff366004614071565b80516020818301810180516101a38252928201919093012091525460ff1681565b34801561062b575f80fd5b5061031d61063a366004613e5d565b6101a56020525f908152604090205481565b348015610657575f80fd5b506103586106663660046140ab565b611b71565b348015610676575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a9575f80fd5b506103586106b8366004613e7d565b61213b565b3480156106c8575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166103a5565b3480156106f2575f80fd5b50610706610701366004613e5d565b6121f8565b60405161032793929190614164565b348015610720575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610753575f80fd5b50610436610762366004613e5d565b609e6020525f908152604090205460ff1681565b348015610781575f80fd5b50610795610790366004613e7d565b6122b8565b60405161032791906141f1565b3480156107ad575f80fd5b506107956123ef565b3480156107c1575f80fd5b506103586107d0366004613e5d565b6125d1565b3480156107e0575f80fd5b506103586107ef366004613e7d565b612742565b3480156107ff575f80fd5b5061031d609d5481565b348015610814575f80fd5b50610358610823366004613e7d565b61280c565b348015610833575f80fd5b5061031d6101a75481565b348015610849575f80fd5b506097546103a59073ffffffffffffffffffffffffffffffffffffffff1681565b348015610875575f80fd5b50610358610884366004614203565b6128c9565b348015610894575f80fd5b506103586108a3366004613e5d565b612ae7565b3480156108b3575f80fd5b5061031d6108c2366004613e5d565b612b62565b3480156108d2575f80fd5b5061031d609b5481565b3480156108e7575f80fd5b5061090b6108f6366004613e5d565b61019f6020525f908152604090205460ff1681565b60405160ff9091168152602001610327565b348015610928575f80fd5b50610436610937366004613e5d565b73ffffffffffffffffffffffffffffffffffffffff165f9081526101a16020526040902054151590565b34801561096c575f80fd5b5061031d61097b36600461426a565b612c03565b34801561098b575f80fd5b5061035861099a366004613e5d565b612d76565b3480156109aa575f80fd5b506103586109b9366004613e7d565b612e2a565b335f818152609e602052604090205460ff16610a3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064015b60405180910390fd5b335f9081526101a2602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610ac8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f616c7265616479207265676973746572656400000000000000000000000000006044820152606401610a32565b8215801590610ae657505f8381526101a4602052604090205460ff16155b610b4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c69642074656e6465726d696e74207075626b6579000000000000006044820152606401610a32565b8151610100148015610b7f57506101a382604051610b6a91906142a9565b9081526040519081900360200190205460ff16155b610be5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c696420626c73207075626b657900000000000000000000000000006044820152606401610a32565b6098543414610c50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964207374616b696e672076616c756500000000000000000000006044820152606401610a32565b6040518060600160405280610c623390565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083018790526040928301869052335f9081526101a28252839020845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558301516001820155908201516002820190610ce29082614360565b50905050610cf5610cf03390565b612ee7565b60016101a383604051610d0891906142a9565b9081526040805191829003602090810190922080549315157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009485161790555f8681526101a49092529020805490911660011790557fb9c7babb56df9f2da4a30811a6c778e4e68af88b72712d56cf62c5516e20e199610d853390565b8484604051610d9693929190614164565b60405180910390a1335f9081526101a260209081526040918290208251606081018452815473ffffffffffffffffffffffffffffffffffffffff168152600182015492810192909252600281018054610e7b9484019190610df6906142c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610e22906142c4565b8015610e6d5780601f10610e4457610100808354040283529160200191610e6d565b820191905f5260205f20905b815481529060010190602001808311610e5057829003601f168201915b505050505081525050613054565b505050565b60a08160ff8110610e8f575f80fd5b015473ffffffffffffffffffffffffffffffffffffffff16905081565b610eb46131c0565b5f5b815181101561125757610ee1828281518110610ed457610ed461447c565b60200260200101516119bb565b610f6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f6f6e6c7920616374697665207374616b65722063616e2062652072656d6f766560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a32565b6101a55f838381518110610f8357610f8361447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f1461102d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f7769746864726177696e670000000000000000000000000000000000000000006044820152606401610a32565b60995461103a90436144d6565b6101a55f8484815181106110505761105061447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506110b78282815181106110aa576110aa61447c565b6020026020010151613241565b8181815181106110c9576110c961447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d56101a55f85858151811061111e5761111e61447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405161116f91815260200190565b60405180910390a2609e5f83838151811061118c5761118c61447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff02191690556001609f5f8484815181106111f3576111f361447c565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610eb6565b507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848160405161128791906141f1565b60405180910390a161129881613374565b50565b6112a36131c0565b5f811180156112b557506101a6548114155b61131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c7565006044820152606401610a32565b6101a680549082905560408051828152602081018490527f36f971a40478225aeb80cfbf5e80306e8cb76d3bf7d56fdc5e490945cddb7d5591015b60405180910390a15050565b61136b336119bb565b6113d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6f6e6c7920616374697665207374616b657200000000000000000000000000006044820152606401610a32565b335f9081526101a5602052604090205415611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f7769746864726177696e670000000000000000000000000000000000000000006044820152606401610a32565b60995461145590436144d6565b335f8181526101a5602052604090209190915561147190613241565b335f8181526101a560209081526040918290205491519182527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a2335f908152609e6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116909155609f83528184208054909116600190811790915581518181528083019092529091828101908036833701905050905033815f815181106115315761153161447c565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848160405161128791906141f1565b6115a26131c0565b6115aa61349c565b565b6115b4613c87565b60408051611fe08101918290529060a09060ff9082845b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116115cb575050505050905090565b6097545f9073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6f6e6c7920726f6c6c757020636f6e74726163740000000000000000000000006044820152606401610a32565b6116a0613856565b5f6116aa836122b8565b90505f805b82518110156118d1575f6101a55f8584815181106116cf576116cf61447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115611786576101a55f84838151811061172d5761172d61447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90556098548261177f91906144d6565b91506118c9565b6117cd83828151811061179b5761179b61447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff165f9081526101a16020526040902054151590565b6118c9576098546117de90836144d6565b91506117f58382815181106110aa576110aa61447c565b609e5f84838151811061180a5761180a61447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff02191690556001609f5f8584815181106118715761187161447c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b6001016116af565b505f6064609a54836118e391906144e9565b6118ed9190614500565b90506118f98183614538565b609d5f82825461190991906144d6565b90915550506097546119319073ffffffffffffffffffffffffffffffffffffffff16826138c9565b7f654f4a61849f1b3ad10abb283d27f02d5fece7b820acc5a3b874713b58748b5a8360405161196091906141f1565b60405180910390a17f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c848360405161199791906141f1565b60405180910390a16119a883613374565b925050506119b66001606555565b919050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815261019f602052604081205460ff1681036119f157505f919050565b73ffffffffffffffffffffffffffffffffffffffff82165f81815261019f602052604090205460a090611a299060019060ff1661454b565b60ff1660ff8110611a3c57611a3c61447c565b015473ffffffffffffffffffffffffffffffffffffffff16148015611a84575073ffffffffffffffffffffffffffffffffffffffff82165f9081526101a16020526040902054155b92915050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815261019f602052604081205460ff168103611ac057505f919050565b73ffffffffffffffffffffffffffffffffffffffff82165f81815261019f602052604090205460a090611af89060019060ff1661454b565b60ff1660ff8110611b0b57611b0b61447c565b015473ffffffffffffffffffffffffffffffffffffffff161492915050565b611b326131c0565b6115aa5f6139a0565b6101a08181548110611b4b575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b5f54610100900460ff1615808015611b8f57505f54600160ff909116105b80611ba85750303b158015611ba857505f5460ff166001145b611c34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a32565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611c90575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8816611d0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420726f6c6c757020636f6e74726163740000000000000000006044820152606401610a32565b5f8711611d76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964207374616b696e672076616c756500000000000000000000006044820152606401610a32565b5f8611611ddf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c7565006044820152606401610a32565b5f8511611e48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f696e76616c6964207769746864726177616c206c6f636b20626c6f636b7300006044820152606401610a32565b5f8311611eb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c696420676173206c696d697420616464207374616b6572000000006044820152606401610a32565b5f8211611f1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f696e76616c696420676173206c696d69742072656d6f7665207374616b6572736044820152606401610a32565b5f84118015611f2a575060648411155b611fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f696e76616c6964206368616c6c656e676572207265776172642070657263656e60448201527f74616765000000000000000000000000000000000000000000000000000000006064820152608401610a32565b611fbd613a16565b611fc5613ab4565b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055609a84905560988790556101a68690556099859055609b839055609c829055604080515f8152602081018590527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910160405180910390a1604080515f8152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910160405180910390a1604080515f8152602081018690527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910160405180910390a18015612131575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6121436131c0565b5f811180156121545750609c548114155b6121ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206e657720676173206c696d697400000000000000000000006044820152606401610a32565b609c80549082905560408051828152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f79101611356565b6101a26020525f908152604090208054600182015460028301805473ffffffffffffffffffffffffffffffffffffffff909316939192612237906142c4565b80601f0160208091040260200160405190810160405280929190818152602001828054612263906142c4565b80156122ae5780601f10612285576101008083540402835291602001916122ae565b820191905f5260205f20905b81548152906001019060200180831161229157829003601f168201915b5050505050905083565b6060600182901c5f5b81156122e8576122d28160016144d6565b90506122df600183614538565b821691506122c1565b8067ffffffffffffffff81111561230157612301613cf0565b60405190808252806020026020018201604052801561232a578160200160208202803683370190505b5092505f60015b60ff8160ff16116123e657600160ff82161b8616156123d45760a061235760018361454b565b60ff1660ff811061236a5761236a61447c565b0154855173ffffffffffffffffffffffffffffffffffffffff909116908690849081106123995761239961447c565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526123c98260016144d6565b9150828210156123e6575b806123de81614564565b915050612331565b50505050919050565b6040805160ff80825261200082019092526060915f91829160208201611fe0803683370190505090505f5b60ff8110156124d8575f60a08260ff81106124375761243761447c565b015473ffffffffffffffffffffffffffffffffffffffff161480159061249957506101a15f60a08360ff811061246f5761246f61447c565b015473ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2054155b156124d057826124a881614582565b93505060018282815181106124bf576124bf61447c565b911515602092830291909101909101525b60010161241a565b505f8267ffffffffffffffff8111156124f3576124f3613cf0565b60405190808252806020026020018201604052801561251c578160200160208202803683370190505b5090505f805b60ff8110156125c75783818151811061253d5761253d61447c565b6020026020010151156125bf5760a08160ff811061255d5761255d61447c565b0154835173ffffffffffffffffffffffffffffffffffffffff9091169084908490811061258c5761258c61447c565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152816125bb81614582565b9250505b600101612522565b5090949350505050565b6125d9613856565b335f9081526101a5602052604090205461264f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7769746864726177616c206e6f742065786973740000000000000000000000006044820152606401610a32565b335f9081526101a560205260409020544310156126c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f7769746864726177616c206c6f636b65640000000000000000000000000000006044820152606401610a32565b335f9081526101a560205260408120556126e061349c565b6040805173ffffffffffffffffffffffffffffffffffffffff83168152905133917f89309c9b2aeaffbdce717113df9427298b20448c05919bf889e05f8c3094254b919081900360200190a2612738816098546138c9565b6112986001606555565b61274a6131c0565b5f8111801561275a575060648111155b80156127685750609a548114155b6127ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642070657263656e74616765000000000000006044820152606401610a32565b609a80549082905560408051828152602081018490527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba9101611356565b6128146131c0565b5f811180156128255750609b548114155b61288b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206e657720676173206c696d697400000000000000000000006044820152606401610a32565b609b80549082905560408051828152602081018490527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c9101611356565b6128d16131c0565b5f5b83811015612a1b57609f5f8686848181106128f0576128f061447c565b90506020020160208101906129059190613e5d565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f205460ff1615612995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e2072656d6f766564206c69737400000000000000000000000000000000006044820152606401610a32565b6001609e5f8787858181106129ac576129ac61447c565b90506020020160208101906129c19190613e5d565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016128d3565b505f5b81811015612aa357609e5f848484818110612a3b57612a3b61447c565b9050602002016020810190612a509190613e5d565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600101612a1e565b507fe375867e538b40218c1b3db2ccceaf875eb073e38b510449e6088c1539ac862284848484604051612ad99493929190614600565b60405180910390a150505050565b612aef6131c0565b612af7613856565b609d54612b0482826138c9565b5f609d556040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fa1fefb6c5328a92a416e321ed50997303fe7135fd88c28b0592b21ce42b5cdd9910160405180910390a1506112986001606555565b5f612b6c82611a8a565b612bd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964207374616b65720000000000000000000000000000000000006044820152606401610a32565b5073ffffffffffffffffffffffffffffffffffffffff165f90815261019f6020526040902054600160ff9091161b90565b5f60ff821115612c6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7374616b657273206c656e677468206f7574206f6620626f756e6473000000006044820152606401610a32565b5f5b82811015612d6f57612ca3848483818110612c8e57612c8e61447c565b90506020020160208101906105879190613e5d565b612d09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964207374616b65720000000000000000000000000000000000006044820152606401610a32565b61019f5f858584818110612d1f57612d1f61447c565b9050602002016020810190612d349190613e5d565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2054600160ff90911681901b929092179101612c71565b5092915050565b612d7e6131c0565b73ffffffffffffffffffffffffffffffffffffffff8116612e21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a32565b611298816139a0565b612e326131c0565b5f81118015612e4357506098548114155b612ea9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964207374616b696e672076616c756500000000000000000000006044820152606401610a32565b609880549082905560408051828152602081018490527f91e3ed304d49776a78bbe0df6bf7156f5433763621e5e728a3c2adfe7de743689101611356565b5f5b60ff8160ff161015612ff1575f60a060ff808416908110612f0c57612f0c61447c565b015473ffffffffffffffffffffffffffffffffffffffff1603612fe9578160a08260ff1660ff8110612f4057612f4061447c565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055612f8f816001614631565b73ffffffffffffffffffffffffffffffffffffffff929092165f90815261019f6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9093169290921790915550565b600101612ee9565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f736c6f742066756c6c00000000000000000000000000000000000000000000006044820152606401610a32565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a754856040516024016130c892919061464a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7046529b00000000000000000000000000000000000000000000000000000000179052609b5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815261317c9493929190600401614695565b5f604051808303815f87803b158015613193575f80fd5b505af11580156131a5573d5f803e3d5ffd5b505050506101a75460016131b991906144d6565b6101a75550565b60335473ffffffffffffffffffffffffffffffffffffffff1633146115aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a32565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526101a16020526040902054156132ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f616c726561647920696e2064656c6574654c69737400000000000000000000006044820152606401610a32565b6101a080546001810182555f919091527f7980fe0f714a613298681d64b7b8ffa7b148338dd52429f307d72798d5c317c40180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905560995461334b90436144d6565b73ffffffffffffffffffffffffffffffffffffffff9091165f9081526101a16020526040902055565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a754856040516024016133e89291906146da565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcce6cf9f00000000000000000000000000000000000000000000000000000000179052609c5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815261317c9493929190600401614695565b5f5b6101a054811015611298575f73ffffffffffffffffffffffffffffffffffffffff166101a082815481106134d4576134d461447c565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff1603613650576101a15f6101a083815481106135125761351261447c565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120556101a0805461355490600190614538565b815481106135645761356461447c565b5f918252602090912001546101a0805473ffffffffffffffffffffffffffffffffffffffff909216918390811061359d5761359d61447c565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101a08054806135f4576135f46146f2565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905561349e565b436101a15f6101a084815481106136695761366961447c565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902054116138445760a0600161019f5f6101a085815481106136bb576136bb61447c565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020546136f9919060ff1661454b565b60ff1660ff811061370c5761370c61447c565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556101a0805461019f915f918490811061374e5761374e61447c565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556101a080546101a2929190849081106137bf576137bf61447c565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600181018290559061382a6002830182613ca6565b50506101a15f6101a083815481106135125761351261447c565b8061384e81614582565b91505061349e565b6002606554036138c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a32565b6002606555565b8015613995575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114613925576040519150601f19603f3d011682016040523d82523d5f602084013e61392a565b606091505b5050905080610e7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a32565b5050565b6001606555565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613aac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a32565b6115aa613b52565b5f54610100900460ff16613b4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a32565b6115aa613bf1565b5f54610100900460ff16613be8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a32565b6115aa336139a0565b5f54610100900460ff16613999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a32565b60405180611fe0016040528060ff906020820280368337509192915050565b508054613cb2906142c4565b5f825580601f10613cc1575050565b601f0160209004905f5260205f209081019061129891905b80821115613cec575f8155600101613cd9565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613d6457613d64613cf0565b604052919050565b5f82601f830112613d7b575f80fd5b813567ffffffffffffffff811115613d9557613d95613cf0565b613dc660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613d1d565b818152846020838601011115613dda575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613e07575f80fd5b82359150602083013567ffffffffffffffff811115613e24575f80fd5b613e3085828601613d6c565b9150509250929050565b803573ffffffffffffffffffffffffffffffffffffffff811681146119b6575f80fd5b5f60208284031215613e6d575f80fd5b613e7682613e3a565b9392505050565b5f60208284031215613e8d575f80fd5b5035919050565b5f6020808385031215613ea5575f80fd5b823567ffffffffffffffff80821115613ebc575f80fd5b818501915085601f830112613ecf575f80fd5b813581811115613ee157613ee1613cf0565b8060051b9150613ef2848301613d1d565b8181529183018401918481019088841115613f0b575f80fd5b938501935b83851015613f3057613f2185613e3a565b82529385019390850190613f10565b98975050505050505050565b611fe0810181835f5b60ff811015613f7a57815173ffffffffffffffffffffffffffffffffffffffff16835260209283019290910190600101613f45565b50505092915050565b5f8083601f840112613f93575f80fd5b50813567ffffffffffffffff811115613faa575f80fd5b6020830191508360208260051b8501011115613fc4575f80fd5b9250929050565b5f805f805f8060808789031215613fe0575f80fd5b86359550602087013567ffffffffffffffff80821115613ffe575f80fd5b61400a8a838b01613f83565b9097509550604089013594506060890135915080821115614029575f80fd5b818901915089601f83011261403c575f80fd5b81358181111561404a575f80fd5b8a602082850101111561405b575f80fd5b6020830194508093505050509295509295509295565b5f60208284031215614081575f80fd5b813567ffffffffffffffff811115614097575f80fd5b6140a384828501613d6c565b949350505050565b5f805f805f805f60e0888a0312156140c1575f80fd5b6140ca88613e3a565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f5b838110156141135781810151838201526020016140fb565b50505f910152565b5f81518084526141328160208601602086016140f9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f614198606083018461411b565b95945050505050565b5f815180845260208085019450602084015f5b838110156141e657815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016141b4565b509495945050505050565b602081525f613e7660208301846141a1565b5f805f8060408587031215614216575f80fd5b843567ffffffffffffffff8082111561422d575f80fd5b61423988838901613f83565b90965094506020870135915080821115614251575f80fd5b5061425e87828801613f83565b95989497509550505050565b5f806020838503121561427b575f80fd5b823567ffffffffffffffff811115614291575f80fd5b61429d85828601613f83565b90969095509350505050565b5f82516142ba8184602087016140f9565b9190910192915050565b600181811c908216806142d857607f821691505b60208210810361430f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610e7b57805f5260205f20601f840160051c8101602085101561433a5750805b601f840160051c820191505b81811015614359575f8155600101614346565b5050505050565b815167ffffffffffffffff81111561437a5761437a613cf0565b61438e8161438884546142c4565b84614315565b602080601f8311600181146143e0575f84156143aa5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555614474565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561442c5788860151825594840194600190910190840161440d565b508582101561446857878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115611a8457611a846144a9565b8082028115828204841417611a8457611a846144a9565b5f82614533577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115611a8457611a846144a9565b60ff8281168282160390811115611a8457611a846144a9565b5f60ff821660ff8103614579576145796144a9565b60010192915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145b2576145b26144a9565b5060010190565b8183525f60208085019450825f5b858110156141e65773ffffffffffffffffffffffffffffffffffffffff6145ed83613e3a565b16875295820195908201906001016145c7565b604081525f6146136040830186886145b9565b82810360208401526146268185876145b9565b979650505050505050565b60ff8181168382160190811115611a8457611a846144a9565b8281526040602082015273ffffffffffffffffffffffffffffffffffffffff8251166040820152602082015160608201525f60408301516060608084015261419860a084018261411b565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f6146c9608083018561411b565b905082606083015295945050505050565b828152604060208201525f6140a360408301846141a1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a" +var L1StakingDeployedBin = "0x608060405260043610610303575f3560e01c80638142951a11610191578063ae81de53116100dc578063d51c90a911610087578063e2a6ad5f11610062578063e2a6ad5f14610961578063f2fde38b14610980578063f4fe7fef1461099f575f80fd5b8063d51c90a9146108c7578063dd4785f5146108dc578063df1550331461091d575f80fd5b8063c7cd469a116100b7578063c7cd469a1461086a578063cde4cd1114610889578063d096c3c6146108a8575f80fd5b8063ae81de5314610809578063affed0e014610828578063bfa02ba91461083e575f80fd5b80639b19251a1161013c578063a3066aab11610117578063a3066aab146107b6578063a4f209b0146107d5578063ab8c53dc146107f4575f80fd5b80639b19251a146107485780639d48f417146107765780639fb82db9146107a2575f80fd5b80638da5cb5b1161016c5780638da5cb5b146106bd5780639168ae72146106e7578063927ede2d14610715575f80fd5b80638142951a1461064c578063831cfb581461066b5780638a565ac31461069e575f80fd5b806343352d61116102515780636f1e8533116101fc578063797adbde116101d7578063797adbde146105c65780637a4e87c3146105e55780637a9262a214610620575f80fd5b80636f1e85331461056d578063715018a61461058c57806374fe27b7146105a0575f80fd5b806352d472eb1161022c57806352d472eb1461050a578063680157911461051f578063692c565b1461053e575f80fd5b806343352d61146104b557806345bc4d10146104d65780634d64903a146104f5575f80fd5b806335928991116102b15780633ccfd60b1161028c5780633ccfd60b146104785780633ee2a1f91461048c57806341de239b146104a0575f80fd5b806335928991146103e95780633a9bbede146104085780633cb747bf14610446575f80fd5b80632e407a6f116102e15780632e407a6f1461035a578063303afb9e14610386578063320ff860146103ca575f80fd5b80630d13fd7b146103075780632108db35146103305780632a28e5a314610345575b5f80fd5b348015610312575f80fd5b5061031d6101a65481565b6040519081526020015b60405180910390f35b34801561033b575f80fd5b5061031d609c5481565b610358610353366004613e43565b6109be565b005b348015610365575f80fd5b5061031d610374366004613eaa565b6101a16020525f908152604090205481565b348015610391575f80fd5b506103a56103a0366004613eca565b610e80565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610327565b3480156103d5575f80fd5b506103586103e4366004613ee1565b610eac565b3480156103f4575f80fd5b50610358610403366004613eca565b61129b565b348015610413575f80fd5b50610436610422366004613eaa565b609f6020525f908152604090205460ff1681565b6040519015158152602001610327565b348015610451575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103a5565b348015610483575f80fd5b50610358611362565b348015610497575f80fd5b5061035861159a565b3480156104ab575f80fd5b5061031d60995481565b3480156104c0575f80fd5b506104c96115ac565b6040516103279190613f89565b3480156104e1575f80fd5b5061031d6104f0366004613eca565b6115ff565b348015610500575f80fd5b5061031d60985481565b348015610515575f80fd5b5061031d609a5481565b34801561052a575f80fd5b50610436610539366004613eaa565b611a08565b348015610549575f80fd5b50610436610558366004613eca565b6101a46020525f908152604090205460ff1681565b348015610578575f80fd5b50610436610587366004613eaa565b611ad7565b348015610597575f80fd5b50610358611b77565b3480156105ab575f80fd5b506104366105ba366004614018565b60019695505050505050565b3480156105d1575f80fd5b506103a56105e0366004613eca565b611b88565b3480156105f0575f80fd5b506104366105ff3660046140be565b80516020818301810180516101a38252928201919093012091525460ff1681565b34801561062b575f80fd5b5061031d61063a366004613eaa565b6101a56020525f908152604090205481565b348015610657575f80fd5b506103586106663660046140f8565b611bbe565b348015610676575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a9575f80fd5b506103586106b8366004613eca565b612188565b3480156106c8575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166103a5565b3480156106f2575f80fd5b50610706610701366004613eaa565b612245565b604051610327939291906141b1565b348015610720575f80fd5b506103a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610753575f80fd5b50610436610762366004613eaa565b609e6020525f908152604090205460ff1681565b348015610781575f80fd5b50610795610790366004613eca565b612305565b604051610327919061423e565b3480156107ad575f80fd5b5061079561243c565b3480156107c1575f80fd5b506103586107d0366004613eaa565b61261e565b3480156107e0575f80fd5b506103586107ef366004613eca565b61278f565b3480156107ff575f80fd5b5061031d609d5481565b348015610814575f80fd5b50610358610823366004613eca565b612859565b348015610833575f80fd5b5061031d6101a75481565b348015610849575f80fd5b506097546103a59073ffffffffffffffffffffffffffffffffffffffff1681565b348015610875575f80fd5b50610358610884366004614250565b612916565b348015610894575f80fd5b506103586108a3366004613eaa565b612b34565b3480156108b3575f80fd5b5061031d6108c2366004613eaa565b612baf565b3480156108d2575f80fd5b5061031d609b5481565b3480156108e7575f80fd5b5061090b6108f6366004613eaa565b61019f6020525f908152604090205460ff1681565b60405160ff9091168152602001610327565b348015610928575f80fd5b50610436610937366004613eaa565b73ffffffffffffffffffffffffffffffffffffffff165f9081526101a16020526040902054151590565b34801561096c575f80fd5b5061031d61097b3660046142b7565b612c50565b34801561098b575f80fd5b5061035861099a366004613eaa565b612dc3565b3480156109aa575f80fd5b506103586109b9366004613eca565b612e77565b335f818152609e602052604090205460ff16610a3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064015b60405180910390fd5b335f9081526101a2602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610ac8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f616c7265616479207265676973746572656400000000000000000000000000006044820152606401610a32565b8215801590610ae657505f8381526101a4602052604090205460ff16155b610b4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c69642074656e6465726d696e74207075626b6579000000000000006044820152606401610a32565b8151610100148015610b7f57506101a382604051610b6a91906142f6565b9081526040519081900360200190205460ff16155b610be5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c696420626c73207075626b657900000000000000000000000000006044820152606401610a32565b6098543414610c50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964207374616b696e672076616c756500000000000000000000006044820152606401610a32565b6040518060600160405280610c623390565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083018790526040928301869052335f9081526101a28252839020845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558301516001820155908201516002820190610ce290826143ad565b50905050610cf5610cf03390565b612f34565b60016101a383604051610d0891906142f6565b9081526040805191829003602090810190922080549315157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009485161790555f8681526101a49092529020805490911660011790557fb9c7babb56df9f2da4a30811a6c778e4e68af88b72712d56cf62c5516e20e199610d853390565b8484604051610d96939291906141b1565b60405180910390a1335f9081526101a260209081526040918290208251606081018452815473ffffffffffffffffffffffffffffffffffffffff168152600182015492810192909252600281018054610e7b9484019190610df690614311565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2290614311565b8015610e6d5780601f10610e4457610100808354040283529160200191610e6d565b820191905f5260205f20905b815481529060010190602001808311610e5057829003601f168201915b5050505050815250506130a1565b505050565b60a08160ff8110610e8f575f80fd5b015473ffffffffffffffffffffffffffffffffffffffff16905081565b610eb461320d565b5f5b815181101561125757610ee1828281518110610ed457610ed46144c9565b6020026020010151611a08565b610f6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f6f6e6c7920616374697665207374616b65722063616e2062652072656d6f766560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a32565b6101a55f838381518110610f8357610f836144c9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f1461102d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f7769746864726177696e670000000000000000000000000000000000000000006044820152606401610a32565b60995461103a9043614523565b6101a55f848481518110611050576110506144c9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506110b78282815181106110aa576110aa6144c9565b602002602001015161328e565b8181815181106110c9576110c96144c9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d56101a55f85858151811061111e5761111e6144c9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405161116f91815260200190565b60405180910390a2609e5f83838151811061118c5761118c6144c9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff02191690556001609f5f8484815181106111f3576111f36144c9565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610eb6565b507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c8481604051611287919061423e565b60405180910390a1611298816133c1565b50565b6112a361320d565b5f811180156112b557506101a6548114155b61131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c7565006044820152606401610a32565b6101a680549082905560408051828152602081018490527f36f971a40478225aeb80cfbf5e80306e8cb76d3bf7d56fdc5e490945cddb7d5591015b60405180910390a15050565b61136b33611a08565b6113d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6f6e6c7920616374697665207374616b657200000000000000000000000000006044820152606401610a32565b335f9081526101a5602052604090205415611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f7769746864726177696e670000000000000000000000000000000000000000006044820152606401610a32565b6099546114559043614523565b335f8181526101a560205260409020919091556114719061328e565b335f8181526101a560209081526040918290205491519182527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a2335f908152609e6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116909155609f83528184208054909116600190811790915581518181528083019092529091828101908036833701905050905033815f81518110611531576115316144c9565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c8481604051611287919061423e565b6115a261320d565b6115aa6134e9565b565b6115b4613cd4565b60408051611fe08101918290529060a09060ff9082845b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116115cb575050505050905090565b6097545f9073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6f6e6c7920726f6c6c757020636f6e74726163740000000000000000000000006044820152606401610a32565b6116a06138a3565b5f6116aa83612305565b90505f805b825181101561191e575f73ffffffffffffffffffffffffffffffffffffffff168382815181106116e1576116e16144c9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160315611916575f6101a55f85848151811061171c5761171c6144c9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156117d3576101a55f84838151811061177a5761177a6144c9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9055609854826117cc9190614523565b9150611916565b61181a8382815181106117e8576117e86144c9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff165f9081526101a16020526040902054151590565b6119165760985461182b9083614523565b91506118428382815181106110aa576110aa6144c9565b609e5f848381518110611857576118576144c9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff02191690556001609f5f8584815181106118be576118be6144c9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b6001016116af565b505f6064609a54836119309190614536565b61193a919061454d565b90506119468183614585565b609d5f8282546119569190614523565b909155505060975461197e9073ffffffffffffffffffffffffffffffffffffffff1682613916565b7f654f4a61849f1b3ad10abb283d27f02d5fece7b820acc5a3b874713b58748b5a836040516119ad919061423e565b60405180910390a17f3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84836040516119e4919061423e565b60405180910390a16119f5836133c1565b92505050611a036001606555565b919050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815261019f602052604081205460ff168103611a3e57505f919050565b73ffffffffffffffffffffffffffffffffffffffff82165f81815261019f602052604090205460a090611a769060019060ff16614598565b60ff1660ff8110611a8957611a896144c9565b015473ffffffffffffffffffffffffffffffffffffffff16148015611ad1575073ffffffffffffffffffffffffffffffffffffffff82165f9081526101a16020526040902054155b92915050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815261019f602052604081205460ff168103611b0d57505f919050565b73ffffffffffffffffffffffffffffffffffffffff82165f81815261019f602052604090205460a090611b459060019060ff16614598565b60ff1660ff8110611b5857611b586144c9565b015473ffffffffffffffffffffffffffffffffffffffff161492915050565b611b7f61320d565b6115aa5f6139ed565b6101a08181548110611b98575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b5f54610100900460ff1615808015611bdc57505f54600160ff909116105b80611bf55750303b158015611bf557505f5460ff166001145b611c81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a32565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611cdd575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8816611d5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420726f6c6c757020636f6e74726163740000000000000000006044820152606401610a32565b5f8711611dc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964207374616b696e672076616c756500000000000000000000006044820152606401610a32565b5f8611611e2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c6964206368616c6c656e6765206465706f7369742076616c7565006044820152606401610a32565b5f8511611e95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f696e76616c6964207769746864726177616c206c6f636b20626c6f636b7300006044820152606401610a32565b5f8311611efe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c696420676173206c696d697420616464207374616b6572000000006044820152606401610a32565b5f8211611f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f696e76616c696420676173206c696d69742072656d6f7665207374616b6572736044820152606401610a32565b5f84118015611f77575060648411155b612002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f696e76616c6964206368616c6c656e676572207265776172642070657263656e60448201527f74616765000000000000000000000000000000000000000000000000000000006064820152608401610a32565b61200a613a63565b612012613b01565b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055609a84905560988790556101a68690556099859055609b839055609c829055604080515f8152602081018590527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c910160405180910390a1604080515f8152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f7910160405180910390a1604080515f8152602081018690527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba910160405180910390a1801561217e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b61219061320d565b5f811180156121a15750609c548114155b612207576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206e657720676173206c696d697400000000000000000000006044820152606401610a32565b609c80549082905560408051828152602081018490527fdd4b37d1f14888147fe4be2cfaedcbf148fd07ececc856d0433241b8b6e4a7f79101611356565b6101a26020525f908152604090208054600182015460028301805473ffffffffffffffffffffffffffffffffffffffff90931693919261228490614311565b80601f01602080910402602001604051908101604052809291908181526020018280546122b090614311565b80156122fb5780601f106122d2576101008083540402835291602001916122fb565b820191905f5260205f20905b8154815290600101906020018083116122de57829003601f168201915b5050505050905083565b6060600182901c5f5b81156123355761231f816001614523565b905061232c600183614585565b8216915061230e565b8067ffffffffffffffff81111561234e5761234e613d3d565b604051908082528060200260200182016040528015612377578160200160208202803683370190505b5092505f60015b60ff8160ff161161243357600160ff82161b8616156124215760a06123a4600183614598565b60ff1660ff81106123b7576123b76144c9565b0154855173ffffffffffffffffffffffffffffffffffffffff909116908690849081106123e6576123e66144c9565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152612416826001614523565b915082821015612433575b8061242b816145b1565b91505061237e565b50505050919050565b6040805160ff80825261200082019092526060915f91829160208201611fe0803683370190505090505f5b60ff811015612525575f60a08260ff8110612484576124846144c9565b015473ffffffffffffffffffffffffffffffffffffffff16148015906124e657506101a15f60a08360ff81106124bc576124bc6144c9565b015473ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2054155b1561251d57826124f5816145cf565b935050600182828151811061250c5761250c6144c9565b911515602092830291909101909101525b600101612467565b505f8267ffffffffffffffff81111561254057612540613d3d565b604051908082528060200260200182016040528015612569578160200160208202803683370190505b5090505f805b60ff8110156126145783818151811061258a5761258a6144c9565b60200260200101511561260c5760a08160ff81106125aa576125aa6144c9565b0154835173ffffffffffffffffffffffffffffffffffffffff909116908490849081106125d9576125d96144c9565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015281612608816145cf565b9250505b60010161256f565b5090949350505050565b6126266138a3565b335f9081526101a5602052604090205461269c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7769746864726177616c206e6f742065786973740000000000000000000000006044820152606401610a32565b335f9081526101a56020526040902054431015612715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f7769746864726177616c206c6f636b65640000000000000000000000000000006044820152606401610a32565b335f9081526101a5602052604081205561272d6134e9565b6040805173ffffffffffffffffffffffffffffffffffffffff83168152905133917f89309c9b2aeaffbdce717113df9427298b20448c05919bf889e05f8c3094254b919081900360200190a261278581609854613916565b6112986001606555565b61279761320d565b5f811180156127a7575060648111155b80156127b55750609a548114155b61281b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642070657263656e74616765000000000000006044820152606401610a32565b609a80549082905560408051828152602081018490527fa46de936426e045703b2d34a292a19fde92b329018db8e0da750033876b655ba9101611356565b61286161320d565b5f811180156128725750609b548114155b6128d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206e657720676173206c696d697400000000000000000000006044820152606401610a32565b609b80549082905560408051828152602081018490527f0ef80fb82bf5439b8591744c0fde771f5d93dce7a7970b1e9b7828cdc3970e9c9101611356565b61291e61320d565b5f5b83811015612a6857609f5f86868481811061293d5761293d6144c9565b90506020020160208101906129529190613eaa565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f205460ff16156129e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e2072656d6f766564206c69737400000000000000000000000000000000006044820152606401610a32565b6001609e5f8787858181106129f9576129f96144c9565b9050602002016020810190612a0e9190613eaa565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101612920565b505f5b81811015612af057609e5f848484818110612a8857612a886144c9565b9050602002016020810190612a9d9190613eaa565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600101612a6b565b507fe375867e538b40218c1b3db2ccceaf875eb073e38b510449e6088c1539ac862284848484604051612b26949392919061464d565b60405180910390a150505050565b612b3c61320d565b612b446138a3565b609d54612b518282613916565b5f609d556040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fa1fefb6c5328a92a416e321ed50997303fe7135fd88c28b0592b21ce42b5cdd9910160405180910390a1506112986001606555565b5f612bb982611ad7565b612c1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964207374616b65720000000000000000000000000000000000006044820152606401610a32565b5073ffffffffffffffffffffffffffffffffffffffff165f90815261019f6020526040902054600160ff9091161b90565b5f60ff821115612cbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7374616b657273206c656e677468206f7574206f6620626f756e6473000000006044820152606401610a32565b5f5b82811015612dbc57612cf0848483818110612cdb57612cdb6144c9565b90506020020160208101906105879190613eaa565b612d56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964207374616b65720000000000000000000000000000000000006044820152606401610a32565b61019f5f858584818110612d6c57612d6c6144c9565b9050602002016020810190612d819190613eaa565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2054600160ff90911681901b929092179101612cbe565b5092915050565b612dcb61320d565b73ffffffffffffffffffffffffffffffffffffffff8116612e6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a32565b611298816139ed565b612e7f61320d565b5f81118015612e9057506098548114155b612ef6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964207374616b696e672076616c756500000000000000000000006044820152606401610a32565b609880549082905560408051828152602081018490527f91e3ed304d49776a78bbe0df6bf7156f5433763621e5e728a3c2adfe7de743689101611356565b5f5b60ff8160ff16101561303e575f60a060ff808416908110612f5957612f596144c9565b015473ffffffffffffffffffffffffffffffffffffffff1603613036578160a08260ff1660ff8110612f8d57612f8d6144c9565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055612fdc81600161467e565b73ffffffffffffffffffffffffffffffffffffffff929092165f90815261019f6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9093169290921790915550565b600101612f36565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f736c6f742066756c6c00000000000000000000000000000000000000000000006044820152606401610a32565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a75485604051602401613115929190614697565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7046529b00000000000000000000000000000000000000000000000000000000179052609b5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b1681526131c994939291906004016146e2565b5f604051808303815f87803b1580156131e0575f80fd5b505af11580156131f2573d5f803e3d5ffd5b505050506101a75460016132069190614523565b6101a75550565b60335473ffffffffffffffffffffffffffffffffffffffff1633146115aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a32565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526101a160205260409020541561331b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f616c726561647920696e2064656c6574654c69737400000000000000000000006044820152606401610a32565b6101a080546001810182555f919091527f7980fe0f714a613298681d64b7b8ffa7b148338dd52429f307d72798d5c317c40180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790556099546133989043614523565b73ffffffffffffffffffffffffffffffffffffffff9091165f9081526101a16020526040902055565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b2267a7b7f00000000000000000000000000000000000000000000000000000000000000005f6101a75485604051602401613435929190614727565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcce6cf9f00000000000000000000000000000000000000000000000000000000179052609c5490517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b1681526131c994939291906004016146e2565b5f5b6101a054811015611298575f73ffffffffffffffffffffffffffffffffffffffff166101a08281548110613521576135216144c9565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff160361369d576101a15f6101a0838154811061355f5761355f6144c9565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120556101a080546135a190600190614585565b815481106135b1576135b16144c9565b5f918252602090912001546101a0805473ffffffffffffffffffffffffffffffffffffffff90921691839081106135ea576135ea6144c9565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101a08054806136415761364161473f565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690550190556134eb565b436101a15f6101a084815481106136b6576136b66144c9565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902054116138915760a0600161019f5f6101a08581548110613708576137086144c9565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902054613746919060ff16614598565b60ff1660ff8110613759576137596144c9565b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556101a0805461019f915f918490811061379b5761379b6144c9565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556101a080546101a29291908490811061380c5761380c6144c9565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018101829055906138776002830182613cf3565b50506101a15f6101a0838154811061355f5761355f6144c9565b8061389b816145cf565b9150506134eb565b60026065540361390f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a32565b6002606555565b80156139e2575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114613972576040519150601f19603f3d011682016040523d82523d5f602084013e613977565b606091505b5050905080610e7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a32565b5050565b6001606555565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613af9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a32565b6115aa613b9f565b5f54610100900460ff16613b97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a32565b6115aa613c3e565b5f54610100900460ff16613c35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a32565b6115aa336139ed565b5f54610100900460ff166139e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a32565b60405180611fe0016040528060ff906020820280368337509192915050565b508054613cff90614311565b5f825580601f10613d0e575050565b601f0160209004905f5260205f209081019061129891905b80821115613d39575f8155600101613d26565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613db157613db1613d3d565b604052919050565b5f82601f830112613dc8575f80fd5b813567ffffffffffffffff811115613de257613de2613d3d565b613e1360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613d6a565b818152846020838601011115613e27575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613e54575f80fd5b82359150602083013567ffffffffffffffff811115613e71575f80fd5b613e7d85828601613db9565b9150509250929050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a03575f80fd5b5f60208284031215613eba575f80fd5b613ec382613e87565b9392505050565b5f60208284031215613eda575f80fd5b5035919050565b5f6020808385031215613ef2575f80fd5b823567ffffffffffffffff80821115613f09575f80fd5b818501915085601f830112613f1c575f80fd5b813581811115613f2e57613f2e613d3d565b8060051b9150613f3f848301613d6a565b8181529183018401918481019088841115613f58575f80fd5b938501935b83851015613f7d57613f6e85613e87565b82529385019390850190613f5d565b98975050505050505050565b611fe0810181835f5b60ff811015613fc757815173ffffffffffffffffffffffffffffffffffffffff16835260209283019290910190600101613f92565b50505092915050565b5f8083601f840112613fe0575f80fd5b50813567ffffffffffffffff811115613ff7575f80fd5b6020830191508360208260051b8501011115614011575f80fd5b9250929050565b5f805f805f806080878903121561402d575f80fd5b86359550602087013567ffffffffffffffff8082111561404b575f80fd5b6140578a838b01613fd0565b9097509550604089013594506060890135915080821115614076575f80fd5b818901915089601f830112614089575f80fd5b813581811115614097575f80fd5b8a60208285010111156140a8575f80fd5b6020830194508093505050509295509295509295565b5f602082840312156140ce575f80fd5b813567ffffffffffffffff8111156140e4575f80fd5b6140f084828501613db9565b949350505050565b5f805f805f805f60e0888a03121561410e575f80fd5b61411788613e87565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f5b83811015614160578181015183820152602001614148565b50505f910152565b5f815180845261417f816020860160208601614146565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f6141e56060830184614168565b95945050505050565b5f815180845260208085019450602084015f5b8381101561423357815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614201565b509495945050505050565b602081525f613ec360208301846141ee565b5f805f8060408587031215614263575f80fd5b843567ffffffffffffffff8082111561427a575f80fd5b61428688838901613fd0565b9096509450602087013591508082111561429e575f80fd5b506142ab87828801613fd0565b95989497509550505050565b5f80602083850312156142c8575f80fd5b823567ffffffffffffffff8111156142de575f80fd5b6142ea85828601613fd0565b90969095509350505050565b5f8251614307818460208701614146565b9190910192915050565b600181811c9082168061432557607f821691505b60208210810361435c577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610e7b57805f5260205f20601f840160051c810160208510156143875750805b601f840160051c820191505b818110156143a6575f8155600101614393565b5050505050565b815167ffffffffffffffff8111156143c7576143c7613d3d565b6143db816143d58454614311565b84614362565b602080601f83116001811461442d575f84156143f75750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556144c1565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156144795788860151825594840194600190910190840161445a565b50858210156144b557878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115611ad157611ad16144f6565b8082028115828204841417611ad157611ad16144f6565b5f82614580577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115611ad157611ad16144f6565b60ff8281168282160390811115611ad157611ad16144f6565b5f60ff821660ff81036145c6576145c66144f6565b60010192915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145ff576145ff6144f6565b5060010190565b8183525f60208085019450825f5b858110156142335773ffffffffffffffffffffffffffffffffffffffff61463a83613e87565b1687529582019590820190600101614614565b604081525f614660604083018688614606565b8281036020840152614673818587614606565b979650505050505050565b60ff8181168382160190811115611ad157611ad16144f6565b8281526040602082015273ffffffffffffffffffffffffffffffffffffffff8251166040820152602082015160608201525f6040830151606060808401526141e560a0840182614168565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f6147166080830185614168565b905082606083015295945050505050565b828152604060208201525f6140f060408301846141ee565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L1StakingStorageLayoutJSON), L1StakingStorageLayout); err != nil { From 4e401508115ed168a6ad81151ef20b1e15b6dc1b Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Tue, 12 Nov 2024 17:39:13 +0800 Subject: [PATCH 029/106] refactor(tx-submitter): introduce constant for block time --- tx-submitter/l1checker/blockmonitor.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tx-submitter/l1checker/blockmonitor.go b/tx-submitter/l1checker/blockmonitor.go index 78270c0f2..e1b31cccd 100644 --- a/tx-submitter/l1checker/blockmonitor.go +++ b/tx-submitter/l1checker/blockmonitor.go @@ -10,6 +10,8 @@ import ( "github.com/morph-l2/go-ethereum/log" ) +const blockTime = time.Second * 12 + type IBlockMonitor interface { BlockNotIncreasedIn(time.Duration) bool } @@ -24,7 +26,7 @@ type BlockMonitor struct { func NewBlockMonitor(notGrowthInBlocks int64, client iface.L1Client) *BlockMonitor { return &BlockMonitor{ - blockGenerateTime: time.Second * 12, + blockGenerateTime: blockTime, latestBlockTime: time.Time{}, noGrowthBlockCntTime: time.Second * time.Duration(notGrowthInBlocks) * 12, client: client, From 578b09622fa3218b42df7ea6b72f53053760a7c9 Mon Sep 17 00:00:00 2001 From: kukoo Date: Tue, 12 Nov 2024 18:21:52 +0800 Subject: [PATCH 030/106] Fix migration (#635) --- .../libraries/usdc/MigrationUSDC.sol | 34 ++- contracts/tasks/token_deploy.ts | 218 +++++++++--------- 2 files changed, 140 insertions(+), 112 deletions(-) diff --git a/contracts/contracts/libraries/usdc/MigrationUSDC.sol b/contracts/contracts/libraries/usdc/MigrationUSDC.sol index 462aacb70..ffef27aa9 100644 --- a/contracts/contracts/libraries/usdc/MigrationUSDC.sol +++ b/contracts/contracts/libraries/usdc/MigrationUSDC.sol @@ -11,11 +11,14 @@ import {SafeERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ER contract MigrationUSDC is OwnableUpgradeable, PausableUpgradeable, ReentrancyGuardUpgradeable { using SafeERC20Upgradeable for IERC20Upgradeable; + error ErrZeroAddress(); + /// @dev Thrown the token balance is zero. error ErrorTokenBalanceZero(); event Migrate(address indexed user, uint256 amount); event Transfer(address indexed token, address indexed to, uint256 amount); + event UpdateRecipient(address indexed oldRecipient, address indexed newRecipient); /// @notice The address of old USDC address. address public immutable OLD_USDC; @@ -23,6 +26,9 @@ contract MigrationUSDC is OwnableUpgradeable, PausableUpgradeable, ReentrancyGua /// @notice The address of new USDC address. address public immutable NEW_USDC; + /// @notice Wallet that will receive the tokens on L2. + address public recipient; + /*************** * Constructor * ***************/ @@ -38,10 +44,17 @@ contract MigrationUSDC is OwnableUpgradeable, PausableUpgradeable, ReentrancyGua } // initialize contract status - function initialize() external initializer { + function initialize(address _recipient) external initializer { + if (_recipient == address(0)) { + revert ErrZeroAddress(); + } + recipient = _recipient; + __Ownable_init(); __Pausable_init(); __ReentrancyGuard_init(); + + emit UpdateRecipient(address(0), recipient); } // Transfer all old USDC to this contract and then transfer new USDC token to msg sender. @@ -59,7 +72,10 @@ contract MigrationUSDC is OwnableUpgradeable, PausableUpgradeable, ReentrancyGua } // Transfer token to other address. - function transferToken(address _token, address _to, uint256 _amount) external onlyOwner { + function transferToken(address _token, uint256 _amount) external onlyOwner { + if (recipient == address(0)) { + revert ErrZeroAddress(); + } uint256 balance = IERC20Upgradeable(_token).balanceOf(address(this)); if (balance == 0) { revert ErrorTokenBalanceZero(); @@ -69,12 +85,20 @@ contract MigrationUSDC is OwnableUpgradeable, PausableUpgradeable, ReentrancyGua _amount = balance; } // Transfer token. - IERC20Upgradeable(_token).transfer(_to, _amount); - emit Transfer(_token, _to, _amount); + IERC20Upgradeable(_token).transfer(recipient, _amount); + emit Transfer(_token, recipient, _amount); + } + + // Update the address of recipient. + function updateRecipient(address _newRecipient) external onlyOwner { + address _oldRecipient = recipient; + recipient = _newRecipient; + + emit UpdateRecipient(_oldRecipient, _newRecipient); } // Change pause status - function setPause(bool status) external { + function setPause(bool status) external onlyOwner { if (status) { _requireNotPaused(); _pause(); diff --git a/contracts/tasks/token_deploy.ts b/contracts/tasks/token_deploy.ts index 81821d0dc..b942b243b 100644 --- a/contracts/tasks/token_deploy.ts +++ b/contracts/tasks/token_deploy.ts @@ -253,11 +253,11 @@ task("init-l1-lidogateway") const gateway = await GatewayFactory.attach(taskArgs.l1lidogateway) console.log(`gateway at ${gateway.address}`) - let res = await gateway.initialize(taskArgs.counterpart,taskArgs.router,taskArgs.messenger) + let res = await gateway.initialize(taskArgs.counterpart, taskArgs.router, taskArgs.messenger) let rec = await res.wait() console.log(`initialize ${rec.status == 1}, txHash: ${rec.transactionHash}`) - res = await gateway.initializeV2(taskArgs.opter,taskArgs.opter,taskArgs.opter,taskArgs.opter) + res = await gateway.initializeV2(taskArgs.opter, taskArgs.opter, taskArgs.opter, taskArgs.opter) rec = await res.wait() console.log(`initializeV2 ${rec.status == 1}, txHash: ${rec.transactionHash}`) @@ -268,14 +268,14 @@ task("init-l1-lidogateway") let withdrawalEnabled = await gateway.isWithdrawalsEnabled() console.log(`counterpart ${counterpart}, router ${router}, messenger ${messenger}, depositEnabled ${depositEnabled}, withdrawalEnabled ${withdrawalEnabled}`) - const DEPOSITS_ENABLER_ROLE =await gateway.DEPOSITS_ENABLER_ROLE() - const DEPOSITS_DISABLER_ROLE =await gateway.DEPOSITS_DISABLER_ROLE() - const WITHDRAWALS_ENABLER_ROLE =await gateway.WITHDRAWALS_ENABLER_ROLE() - const WITHDRAWALS_DISABLER_ROLE =await gateway.WITHDRAWALS_DISABLER_ROLE() - const depositE = await gateway.hasRole(DEPOSITS_ENABLER_ROLE,taskArgs.opter) - const depositD = await gateway.hasRole(DEPOSITS_DISABLER_ROLE,taskArgs.opter) - const withdrawE = await gateway.hasRole(WITHDRAWALS_ENABLER_ROLE,taskArgs.opter) - const withdrawD = await gateway.hasRole(WITHDRAWALS_DISABLER_ROLE,taskArgs.opter) + const DEPOSITS_ENABLER_ROLE = await gateway.DEPOSITS_ENABLER_ROLE() + const DEPOSITS_DISABLER_ROLE = await gateway.DEPOSITS_DISABLER_ROLE() + const WITHDRAWALS_ENABLER_ROLE = await gateway.WITHDRAWALS_ENABLER_ROLE() + const WITHDRAWALS_DISABLER_ROLE = await gateway.WITHDRAWALS_DISABLER_ROLE() + const depositE = await gateway.hasRole(DEPOSITS_ENABLER_ROLE, taskArgs.opter) + const depositD = await gateway.hasRole(DEPOSITS_DISABLER_ROLE, taskArgs.opter) + const withdrawE = await gateway.hasRole(WITHDRAWALS_ENABLER_ROLE, taskArgs.opter) + const withdrawD = await gateway.hasRole(WITHDRAWALS_DISABLER_ROLE, taskArgs.opter) console.log(`Role: depositE ${depositE}, depositD ${depositD}, withdrawE ${withdrawE}, withdrawD ${withdrawD}`) }) @@ -301,11 +301,11 @@ task("init-l2-lidogateway") const gateway = await GatewayFactory.attach(taskArgs.l2lidogateway) console.log(`gateway at ${gateway.address}`) - let res = await gateway.initialize(taskArgs.counterpart,taskArgs.router,taskArgs.messenger) + let res = await gateway.initialize(taskArgs.counterpart, taskArgs.router, taskArgs.messenger) let rec = await res.wait() console.log(`initialize ${rec.status == 1}, txHash: ${rec.transactionHash}`) - res = await gateway.initializeV2(taskArgs.opter,taskArgs.opter,taskArgs.opter,taskArgs.opter) + res = await gateway.initializeV2(taskArgs.opter, taskArgs.opter, taskArgs.opter, taskArgs.opter) rec = await res.wait() console.log(`initializeV2 ${rec.status == 1}, txHash: ${rec.transactionHash}`) @@ -316,14 +316,14 @@ task("init-l2-lidogateway") let withdrawalEnabled = await gateway.isWithdrawalsEnabled() console.log(`counterpart ${counterpart}, router ${router}, messenger ${messenger}, depositEnabled ${depositEnabled}, withdrawalEnabled ${withdrawalEnabled}`) - const DEPOSITS_ENABLER_ROLE =await gateway.DEPOSITS_ENABLER_ROLE() - const DEPOSITS_DISABLER_ROLE =await gateway.DEPOSITS_DISABLER_ROLE() - const WITHDRAWALS_ENABLER_ROLE =await gateway.WITHDRAWALS_ENABLER_ROLE() - const WITHDRAWALS_DISABLER_ROLE =await gateway.WITHDRAWALS_DISABLER_ROLE() - const depositE = await gateway.hasRole(DEPOSITS_ENABLER_ROLE,taskArgs.opter) - const depositD = await gateway.hasRole(DEPOSITS_DISABLER_ROLE,taskArgs.opter) - const withdrawE = await gateway.hasRole(WITHDRAWALS_ENABLER_ROLE,taskArgs.opter) - const withdrawD = await gateway.hasRole(WITHDRAWALS_DISABLER_ROLE,taskArgs.opter) + const DEPOSITS_ENABLER_ROLE = await gateway.DEPOSITS_ENABLER_ROLE() + const DEPOSITS_DISABLER_ROLE = await gateway.DEPOSITS_DISABLER_ROLE() + const WITHDRAWALS_ENABLER_ROLE = await gateway.WITHDRAWALS_ENABLER_ROLE() + const WITHDRAWALS_DISABLER_ROLE = await gateway.WITHDRAWALS_DISABLER_ROLE() + const depositE = await gateway.hasRole(DEPOSITS_ENABLER_ROLE, taskArgs.opter) + const depositD = await gateway.hasRole(DEPOSITS_DISABLER_ROLE, taskArgs.opter) + const withdrawE = await gateway.hasRole(WITHDRAWALS_ENABLER_ROLE, taskArgs.opter) + const withdrawD = await gateway.hasRole(WITHDRAWALS_DISABLER_ROLE, taskArgs.opter) console.log(`Role: depositE ${depositE}, depositD ${depositD}, withdrawE ${withdrawE}, withdrawD ${withdrawD}`) }) @@ -336,49 +336,49 @@ task("upgrade-l1-usdcgateway") .addParam("router") .addParam("messenger") .setAction(async (taskArgs, hre) => { - // params check - if (!ethers.utils.isAddress(taskArgs.proxyadmin) || - !ethers.utils.isAddress(taskArgs.l1usdcgatewayproxy) || - !ethers.utils.isAddress(taskArgs.l1token) || - !ethers.utils.isAddress(taskArgs.l2token) || - !ethers.utils.isAddress(taskArgs.counterpart) || - !ethers.utils.isAddress(taskArgs.router) || - !ethers.utils.isAddress(taskArgs.messenger) - ) { - console.error(`address params check failed`) - return - } - // deploy gateway impl - const GatewayFactory = await hre.ethers.getContractFactory("L1USDCGateway") - const gateway = await GatewayFactory.deploy(taskArgs.l1token, taskArgs.l2token) - await gateway.deployed() - console.log(`gateway impl deployed at ${gateway.address}`) - - // upgrade proxy with initialize - const ProxyAdminFactory = await hre.ethers.getContractFactory("ProxyAdmin") - const proxyAdmin = await ProxyAdminFactory.attach(taskArgs.proxyadmin) - console.log(`proxy admin at ${proxyAdmin.address}`) - - let res = await proxyAdmin.upgrade( - taskArgs.l1usdcgatewayproxy, - gateway.address - ) - let rec =await res.wait() - console.log(`upgrade gateway ${rec.status == 1}`) - - - const gatewayProxy = GatewayFactory.attach(taskArgs.l1usdcgatewayproxy) - res = await gatewayProxy.initialize(taskArgs.counterpart,taskArgs.router,taskArgs.messenger) - rec =await res.wait() - console.log(`init gateway ${rec.status == 1}`) - - const owner = await gatewayProxy.owner() - const counterpart = await gatewayProxy.counterpart() - const router = await gatewayProxy.router() - const messenger = await gatewayProxy.messenger() - const l1USDC = await gatewayProxy.l1USDC() - const l2USDC = await gatewayProxy.l2USDC() - console.log(`owner ${owner}, gatewayProxy ${gatewayProxy.address}, counterpart ${counterpart}, router ${router}, messenger ${messenger}, l1USDC ${l1USDC}, l2USDC ${l2USDC}`) + // params check + if (!ethers.utils.isAddress(taskArgs.proxyadmin) || + !ethers.utils.isAddress(taskArgs.l1usdcgatewayproxy) || + !ethers.utils.isAddress(taskArgs.l1token) || + !ethers.utils.isAddress(taskArgs.l2token) || + !ethers.utils.isAddress(taskArgs.counterpart) || + !ethers.utils.isAddress(taskArgs.router) || + !ethers.utils.isAddress(taskArgs.messenger) + ) { + console.error(`address params check failed`) + return + } + // deploy gateway impl + const GatewayFactory = await hre.ethers.getContractFactory("L1USDCGateway") + const gateway = await GatewayFactory.deploy(taskArgs.l1token, taskArgs.l2token) + await gateway.deployed() + console.log(`gateway impl deployed at ${gateway.address}`) + + // upgrade proxy with initialize + const ProxyAdminFactory = await hre.ethers.getContractFactory("ProxyAdmin") + const proxyAdmin = await ProxyAdminFactory.attach(taskArgs.proxyadmin) + console.log(`proxy admin at ${proxyAdmin.address}`) + + let res = await proxyAdmin.upgrade( + taskArgs.l1usdcgatewayproxy, + gateway.address + ) + let rec = await res.wait() + console.log(`upgrade gateway ${rec.status == 1}`) + + + const gatewayProxy = GatewayFactory.attach(taskArgs.l1usdcgatewayproxy) + res = await gatewayProxy.initialize(taskArgs.counterpart, taskArgs.router, taskArgs.messenger) + rec = await res.wait() + console.log(`init gateway ${rec.status == 1}`) + + const owner = await gatewayProxy.owner() + const counterpart = await gatewayProxy.counterpart() + const router = await gatewayProxy.router() + const messenger = await gatewayProxy.messenger() + const l1USDC = await gatewayProxy.l1USDC() + const l2USDC = await gatewayProxy.l2USDC() + console.log(`owner ${owner}, gatewayProxy ${gatewayProxy.address}, counterpart ${counterpart}, router ${router}, messenger ${messenger}, l1USDC ${l1USDC}, l2USDC ${l2USDC}`) }) task("upgrade-l2-usdcgateway") @@ -390,45 +390,45 @@ task("upgrade-l2-usdcgateway") .addParam("router") .addParam("messenger") .setAction(async (taskArgs, hre) => { - // params check - if (!ethers.utils.isAddress(taskArgs.proxyadmin) || - !ethers.utils.isAddress(taskArgs.l2usdcgatewayproxy) || - !ethers.utils.isAddress(taskArgs.l1token) || - !ethers.utils.isAddress(taskArgs.l2token) || - !ethers.utils.isAddress(taskArgs.counterpart) || - !ethers.utils.isAddress(taskArgs.router) || - !ethers.utils.isAddress(taskArgs.messenger) - ) { - console.error(`address params check failed`) - return - } - // deploy gateway impl - const GatewayFactory = await hre.ethers.getContractFactory("L2USDCGateway") - const gateway = await GatewayFactory.deploy(taskArgs.l1token, taskArgs.l2token) - await gateway.deployed() - console.log(`gateway impl deployed at ${gateway.address}`) - - // upgrade proxy with initialize - const ProxyAdminFactory = await hre.ethers.getContractFactory("ProxyAdmin") - const proxyAdmin = await ProxyAdminFactory.attach(taskArgs.proxyadmin) - console.log(`proxy admin at ${proxyAdmin.address}`) - - let res = await proxyAdmin.upgrade( - taskArgs.l2usdcgatewayproxy, - gateway.address - ) - let rec =await res.wait() - console.log(`upgrade gateway ${rec.status == 1}`) - - const gatewayProxy = GatewayFactory.attach(taskArgs.l2usdcgatewayproxy) - res = await gatewayProxy.initialize( taskArgs.counterpart,taskArgs.router,taskArgs.messenger) - rec =await res.wait() - console.log(`init gateway ${rec.status == 1}`) - const counterpart = await gatewayProxy.counterpart() - const router = await gatewayProxy.router() - const l1USDC = await gatewayProxy.l1USDC() - const l2USDC = await gatewayProxy.l2USDC() - console.log(`gatewayProxy ${gatewayProxy.address}, counterpart ${counterpart}, router ${router}, l1USDC ${l1USDC}, l2USDC ${l2USDC}`) + // params check + if (!ethers.utils.isAddress(taskArgs.proxyadmin) || + !ethers.utils.isAddress(taskArgs.l2usdcgatewayproxy) || + !ethers.utils.isAddress(taskArgs.l1token) || + !ethers.utils.isAddress(taskArgs.l2token) || + !ethers.utils.isAddress(taskArgs.counterpart) || + !ethers.utils.isAddress(taskArgs.router) || + !ethers.utils.isAddress(taskArgs.messenger) + ) { + console.error(`address params check failed`) + return + } + // deploy gateway impl + const GatewayFactory = await hre.ethers.getContractFactory("L2USDCGateway") + const gateway = await GatewayFactory.deploy(taskArgs.l1token, taskArgs.l2token) + await gateway.deployed() + console.log(`gateway impl deployed at ${gateway.address}`) + + // upgrade proxy with initialize + const ProxyAdminFactory = await hre.ethers.getContractFactory("ProxyAdmin") + const proxyAdmin = await ProxyAdminFactory.attach(taskArgs.proxyadmin) + console.log(`proxy admin at ${proxyAdmin.address}`) + + let res = await proxyAdmin.upgrade( + taskArgs.l2usdcgatewayproxy, + gateway.address + ) + let rec = await res.wait() + console.log(`upgrade gateway ${rec.status == 1}`) + + const gatewayProxy = GatewayFactory.attach(taskArgs.l2usdcgatewayproxy) + res = await gatewayProxy.initialize(taskArgs.counterpart, taskArgs.router, taskArgs.messenger) + rec = await res.wait() + console.log(`init gateway ${rec.status == 1}`) + const counterpart = await gatewayProxy.counterpart() + const router = await gatewayProxy.router() + const l1USDC = await gatewayProxy.l1USDC() + const l2USDC = await gatewayProxy.l2USDC() + console.log(`gatewayProxy ${gatewayProxy.address}, counterpart ${counterpart}, router ${router}, l1USDC ${l1USDC}, l2USDC ${l2USDC}`) }) task("upgrade-l2-usdc-v2") @@ -452,7 +452,7 @@ task("upgrade-l2-usdc-v2") let res = await proxyAdmin.upgradeAndCall( taskArgs.l2usdcproxy, taskArgs.newimpl, - new ethers.utils.Interface(V2_1ABI).encodeFunctionData("initializeV2",[ + new ethers.utils.Interface(V2_1ABI).encodeFunctionData("initializeV2", [ "USD Coin" ]) ) @@ -489,7 +489,7 @@ task("upgrade-l2-usdc-v2-1") let rec = await res.wait() console.log(`upgrade usdc v2 ${rec.status == 1}`) - const l2usdc = new ethers.Contract(taskArgs.l2usdcproxy,new ethers.utils.Interface(V2_1ABI)) + const l2usdc = new ethers.Contract(taskArgs.l2usdcproxy, new ethers.utils.Interface(V2_1ABI)) res = await l2usdc.connect(deployer).initializeV2("USD Coin") rec = await res.wait() @@ -552,11 +552,11 @@ task("deploy-l2-usdcgateway") const proxy = await TransparentProxyFactory.deploy( gateway.address, //logic taskArgs.proxyadmin, //admin - GatewayFactory.interface.encodeFunctionData("initialize",[ + GatewayFactory.interface.encodeFunctionData("initialize", [ taskArgs.counterpart, taskArgs.router, taskArgs.messenger - ] + ] ) ) await proxy.deployed() @@ -576,10 +576,12 @@ task("deploy-l2-MigrationUSDC") .addParam("proxyadmin") .addParam("oldtoken") .addParam("newtoken") + .addParam("recipient") .setAction(async (taskArgs, hre) => { // params check if (!ethers.utils.isAddress(taskArgs.proxyadmin) || !ethers.utils.isAddress(taskArgs.oldtoken) || + !ethers.utils.isAddress(taskArgs.recipient) || !ethers.utils.isAddress(taskArgs.newtoken) ) { console.error(`address params check failed`) @@ -595,7 +597,9 @@ task("deploy-l2-MigrationUSDC") const proxy = await TransparentProxyFactory.deploy( contract.address, //logic taskArgs.proxyadmin, //admin - ContractFactory.interface.encodeFunctionData("initialize",[] + ContractFactory.interface.encodeFunctionData("initialize", [ + taskArgs.recipient + ] ) ) await proxy.deployed() From fe8860676ca9d18facea0002f64a6d73244a9b5b Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Wed, 13 Nov 2024 11:31:06 +0800 Subject: [PATCH 031/106] correct block monitoring logic and time calculation --- tx-submitter/l1checker/blockmonitor.go | 5 +++-- tx-submitter/l1checker/blockmonitor_test.go | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tx-submitter/l1checker/blockmonitor.go b/tx-submitter/l1checker/blockmonitor.go index e1b31cccd..9c870809b 100644 --- a/tx-submitter/l1checker/blockmonitor.go +++ b/tx-submitter/l1checker/blockmonitor.go @@ -28,7 +28,7 @@ func NewBlockMonitor(notGrowthInBlocks int64, client iface.L1Client) *BlockMonit return &BlockMonitor{ blockGenerateTime: blockTime, latestBlockTime: time.Time{}, - noGrowthBlockCntTime: time.Second * time.Duration(notGrowthInBlocks) * 12, + noGrowthBlockCntTime: time.Duration(notGrowthInBlocks) * blockTime, client: client, } } @@ -48,9 +48,10 @@ func (m *BlockMonitor) StartMonitoring() { func (m *BlockMonitor) IsGrowth() bool { t := m.GetLatestBlockTime() if t.IsZero() { + log.Warn("latest block time is zero") return false } - return time.Since(t) > m.noGrowthBlockCntTime + return time.Since(t) < m.noGrowthBlockCntTime } func (m *BlockMonitor) SetLatestBlockTime(t time.Time) { diff --git a/tx-submitter/l1checker/blockmonitor_test.go b/tx-submitter/l1checker/blockmonitor_test.go index fb867e896..846e814ce 100644 --- a/tx-submitter/l1checker/blockmonitor_test.go +++ b/tx-submitter/l1checker/blockmonitor_test.go @@ -15,9 +15,9 @@ func TestIsGrowth(t *testing.T) { require.Equal(t, false, monitor.IsGrowth()) monitor.latestBlockTime = time.Now() - require.Equal(t, false, monitor.IsGrowth()) + require.Equal(t, true, monitor.IsGrowth()) monitor.latestBlockTime = time.Now().Add(-monitor.noGrowthBlockCntTime) - require.Equal(t, true, monitor.IsGrowth()) + require.Equal(t, false, monitor.IsGrowth()) } From 254704ea7fdfb09285d89c59398cd3b0da591674 Mon Sep 17 00:00:00 2001 From: kukoo Date: Wed, 13 Nov 2024 14:43:18 +0800 Subject: [PATCH 032/106] Add usdc master minter flatten file (#637) --- .../libraries/usdc/MasterMinter.sol.flatten | 676 ++++++++++++++++++ 1 file changed, 676 insertions(+) create mode 100644 contracts/contracts/libraries/usdc/MasterMinter.sol.flatten diff --git a/contracts/contracts/libraries/usdc/MasterMinter.sol.flatten b/contracts/contracts/libraries/usdc/MasterMinter.sol.flatten new file mode 100644 index 000000000..94eb3dc20 --- /dev/null +++ b/contracts/contracts/libraries/usdc/MasterMinter.sol.flatten @@ -0,0 +1,676 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity <0.8.0 =0.6.12 >=0.6.0; + +// contracts/minting/MinterManagementInterface.sol +/** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * + + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @dev A contract that implements the MinterManagementInterface has external + * functions for adding and removing minters and modifying their allowances. + * An example is the FiatTokenV1 contract. + */ +interface MinterManagementInterface { + function isMinter(address _account) external view returns (bool); + + function minterAllowance(address _minter) external view returns (uint256); + + function configureMinter(address _minter, uint256 _minterAllowedAmount) + external + returns (bool); + + function removeMinter(address _minter) external returns (bool); +} + +// contracts/v1/Ownable.sol +/** + + * + * Copyright (c) 2018 zOS Global Limited. + * Copyright (c) 2018-2020 CENTRE SECZ + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * @notice The Ownable contract has an owner address, and provides basic + * authorization control functions + * @dev Forked from https://github.com/OpenZeppelin/openzeppelin-labs/blob/3887ab77b8adafba4a26ace002f3a684c1a3388b/upgradeability_ownership/contracts/ownership/Ownable.sol + * Modifications: + * 1. Consolidate OwnableStorage into this contract (7/13/18) + * 2. Reformat, conform to Solidity 0.6 syntax, and add error messages (5/13/20) + * 3. Make public functions external (5/27/20) + */ +contract Ownable { + // Owner of the contract + address private _owner; + + /** + * @dev Event to show ownership has been transferred + * @param previousOwner representing the address of the previous owner + * @param newOwner representing the address of the new owner + */ + event OwnershipTransferred(address previousOwner, address newOwner); + + /** + * @dev The constructor sets the original owner of the contract to the sender account. + */ + constructor() public { + setOwner(msg.sender); + } + + /** + * @dev Tells the address of the owner + * @return the address of the owner + */ + function owner() external view returns (address) { + return _owner; + } + + /** + * @dev Sets a new owner address + */ + function setOwner(address newOwner) internal { + _owner = newOwner; + } + + /** + * @dev Throws if called by any account other than the owner. + */ + modifier onlyOwner() { + require(msg.sender == _owner, "Ownable: caller is not the owner"); + _; + } + + /** + * @dev Allows the current owner to transfer control of the contract to a newOwner. + * @param newOwner The address to transfer ownership to. + */ + function transferOwnership(address newOwner) external onlyOwner { + require( + newOwner != address(0), + "Ownable: new owner is the zero address" + ); + emit OwnershipTransferred(_owner, newOwner); + setOwner(newOwner); + } +} + +// node_modules/@openzeppelin/contracts/math/SafeMath.sol + +/** + * @dev Wrappers over Solidity's arithmetic operations with added overflow + * checks. + * + * Arithmetic operations in Solidity wrap on overflow. This can easily result + * in bugs, because programmers usually assume that an overflow raises an + * error, which is the standard behavior in high level programming languages. + * `SafeMath` restores this intuition by reverting the transaction when an + * operation overflows. + * + * Using this library instead of the unchecked operations eliminates an entire + * class of bugs, so it's recommended to use it always. + */ +library SafeMath { + /** + * @dev Returns the addition of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { + uint256 c = a + b; + if (c < a) return (false, 0); + return (true, c); + } + + /** + * @dev Returns the substraction of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { + if (b > a) return (false, 0); + return (true, a - b); + } + + /** + * @dev Returns the multiplication of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { + // 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 (true, 0); + uint256 c = a * b; + if (c / a != b) return (false, 0); + return (true, c); + } + + /** + * @dev Returns the division of two unsigned integers, with a division by zero flag. + * + * _Available since v3.4._ + */ + function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { + if (b == 0) return (false, 0); + return (true, a / b); + } + + /** + * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. + * + * _Available since v3.4._ + */ + function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { + if (b == 0) return (false, 0); + return (true, a % b); + } + + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + return c; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + require(b <= a, "SafeMath: subtraction overflow"); + return a - b; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + if (a == 0) return 0; + uint256 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + return c; + } + + /** + * @dev Returns the integer division of two unsigned integers, reverting 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(uint256 a, uint256 b) internal pure returns (uint256) { + require(b > 0, "SafeMath: division by zero"); + return a / b; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * reverting when dividing by zero. + * + * Counterpart to Solidity's `%` operator. 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 mod(uint256 a, uint256 b) internal pure returns (uint256) { + require(b > 0, "SafeMath: modulo by zero"); + return a % b; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {trySub}. + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b <= a, errorMessage); + return a - b; + } + + /** + * @dev Returns the integer division of two unsigned integers, reverting with custom message on + * division by zero. The result is rounded towards zero. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryDiv}. + * + * 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(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b > 0, errorMessage); + return a / b; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * reverting with custom message when dividing by zero. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryMod}. + * + * Counterpart to Solidity's `%` operator. 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 mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b > 0, errorMessage); + return a % b; + } +} + +// contracts/minting/Controller.sol +/** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * + + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @title Controller + * @notice Generic implementation of the owner-controller-worker model. + * One owner manages many controllers. Each controller manages one worker. + * Workers may be reused across different controllers. + */ +contract Controller is Ownable { + /** + * @dev A controller manages a single worker address. + * controllers[controller] = worker + */ + mapping(address => address) internal controllers; + + event ControllerConfigured( + address indexed _controller, + address indexed _worker + ); + event ControllerRemoved(address indexed _controller); + + /** + * @notice Ensures that caller is the controller of a non-zero worker + * address. + */ + modifier onlyController() { + require( + controllers[msg.sender] != address(0), + "The value of controllers[msg.sender] must be non-zero" + ); + _; + } + + /** + * @notice Gets the worker at address _controller. + */ + function getWorker(address _controller) external view returns (address) { + return controllers[_controller]; + } + + // onlyOwner functions + + /** + * @notice Configure a controller with the given worker. + * @param _controller The controller to be configured with a worker. + * @param _worker The worker to be set for the newly configured controller. + * _worker must not be a non-zero address. To disable a worker, + * use removeController instead. + */ + function configureController(address _controller, address _worker) + public + onlyOwner + { + require( + _controller != address(0), + "Controller must be a non-zero address" + ); + require(_worker != address(0), "Worker must be a non-zero address"); + controllers[_controller] = _worker; + emit ControllerConfigured(_controller, _worker); + } + + /** + * @notice disables a controller by setting its worker to address(0). + * @param _controller The controller to disable. + */ + function removeController(address _controller) public onlyOwner { + require( + _controller != address(0), + "Controller must be a non-zero address" + ); + require( + controllers[_controller] != address(0), + "Worker must be a non-zero address" + ); + controllers[_controller] = address(0); + emit ControllerRemoved(_controller); + } +} + +// contracts/minting/MintController.sol +/** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * + + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// solhint-disable func-name-mixedcase + +/** + * @title MintController + * @dev The MintController contract manages minters for a contract that + * implements the MinterManagerInterface. It lets the owner designate certain + * addresses as controllers, and these controllers then manage the + * minters by adding and removing minters, as well as modifying their minting + * allowance. A controller may manage exactly one minter, but the same minter + * address may be managed by multiple controllers. + * MintController inherits from the Controller contract. It treats the + * Controller workers as minters. + */ +contract MintController is Controller { + using SafeMath for uint256; + + /** + * @dev MintController calls the minterManager to execute/record minter + * management tasks, as well as to query the status of a minter address. + */ + MinterManagementInterface internal minterManager; + + event MinterManagerSet( + address indexed _oldMinterManager, + address indexed _newMinterManager + ); + event MinterConfigured( + address indexed _msgSender, + address indexed _minter, + uint256 _allowance + ); + event MinterRemoved(address indexed _msgSender, address indexed _minter); + event MinterAllowanceIncremented( + address indexed _msgSender, + address indexed _minter, + uint256 _increment, + uint256 _newAllowance + ); + + event MinterAllowanceDecremented( + address indexed msgSender, + address indexed minter, + uint256 decrement, + uint256 newAllowance + ); + + /** + * @notice Initializes the minterManager. + * @param _minterManager The address of the minterManager contract. + */ + constructor(address _minterManager) public { + minterManager = MinterManagementInterface(_minterManager); + } + + /** + * @notice gets the minterManager + */ + function getMinterManager() + external + view + returns (MinterManagementInterface) + { + return minterManager; + } + + // onlyOwner functions + + /** + * @notice Sets the minterManager. + * @param _newMinterManager The address of the new minterManager contract. + */ + function setMinterManager(address _newMinterManager) public onlyOwner { + emit MinterManagerSet(address(minterManager), _newMinterManager); + minterManager = MinterManagementInterface(_newMinterManager); + } + + // onlyController functions + + /** + * @notice Removes the controller's own minter. + */ + function removeMinter() public onlyController returns (bool) { + address minter = controllers[msg.sender]; + emit MinterRemoved(msg.sender, minter); + return minterManager.removeMinter(minter); + } + + /** + * @notice Enables the minter and sets its allowance. + * @param _newAllowance New allowance to be set for minter. + */ + function configureMinter(uint256 _newAllowance) + public + onlyController + returns (bool) + { + address minter = controllers[msg.sender]; + emit MinterConfigured(msg.sender, minter, _newAllowance); + return internal_setMinterAllowance(minter, _newAllowance); + } + + /** + * @notice Increases the minter's allowance if and only if the minter is an + * active minter. + * @dev An minter is considered active if minterManager.isMinter(minter) + * returns true. + */ + function incrementMinterAllowance(uint256 _allowanceIncrement) + public + onlyController + returns (bool) + { + require( + _allowanceIncrement > 0, + "Allowance increment must be greater than 0" + ); + address minter = controllers[msg.sender]; + require( + minterManager.isMinter(minter), + "Can only increment allowance for minters in minterManager" + ); + + uint256 currentAllowance = minterManager.minterAllowance(minter); + uint256 newAllowance = currentAllowance.add(_allowanceIncrement); + + emit MinterAllowanceIncremented( + msg.sender, + minter, + _allowanceIncrement, + newAllowance + ); + + return internal_setMinterAllowance(minter, newAllowance); + } + + /** + * @notice decreases the minter allowance if and only if the minter is + * currently active. The controller can safely send a signed + * decrementMinterAllowance() transaction to a minter and not worry + * about it being used to undo a removeMinter() transaction. + */ + function decrementMinterAllowance(uint256 _allowanceDecrement) + public + onlyController + returns (bool) + { + require( + _allowanceDecrement > 0, + "Allowance decrement must be greater than 0" + ); + address minter = controllers[msg.sender]; + require( + minterManager.isMinter(minter), + "Can only decrement allowance for minters in minterManager" + ); + + uint256 currentAllowance = minterManager.minterAllowance(minter); + uint256 actualAllowanceDecrement = ( + currentAllowance > _allowanceDecrement + ? _allowanceDecrement + : currentAllowance + ); + uint256 newAllowance = currentAllowance.sub(actualAllowanceDecrement); + + emit MinterAllowanceDecremented( + msg.sender, + minter, + actualAllowanceDecrement, + newAllowance + ); + + return internal_setMinterAllowance(minter, newAllowance); + } + + // Internal functions + + /** + * @notice Uses the MinterManagementInterface to enable the minter and + * set its allowance. + * @param _minter Minter to set new allowance of. + * @param _newAllowance New allowance to be set for minter. + */ + function internal_setMinterAllowance(address _minter, uint256 _newAllowance) + internal + returns (bool) + { + return minterManager.configureMinter(_minter, _newAllowance); + } +} + +// contracts/minting/MasterMinter.sol +/** + * Copyright 2023 Circle Internet Group, Inc. All rights reserved. + * + + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @title MasterMinter + * @notice MasterMinter uses multiple controllers to manage minters for a + * contract that implements the MinterManagerInterface. + * @dev MasterMinter inherits all its functionality from MintController. + */ +contract MasterMinter is MintController { + constructor(address _minterManager) public MintController(_minterManager) {} +} From 65b99bec71c7960b6ea6145ec639d253776c2db1 Mon Sep 17 00:00:00 2001 From: FletcherMan Date: Wed, 13 Nov 2024 15:27:50 +0800 Subject: [PATCH 033/106] Batch upgrade for removing skip map (#628) Co-authored-by: vincent Co-authored-by: chengwenxi <22697326+chengwenxi@users.noreply.github.com> Co-authored-by: curryxbo --- .gitmodules | 2 +- Makefile | 2 +- ...essagequeuewithgaspriceoracle_deployed.hex | 2 +- bindings/bin/rollup_deployed.hex | 2 +- .../l1messagequeuewithgaspriceoracle.go | 78 ++---- .../l1messagequeuewithgaspriceoracle_more.go | 4 +- bindings/bindings/rollup.go | 29 +-- bindings/bindings/rollup_more.go | 2 +- bindings/go.mod | 2 +- bindings/go.sum | 4 +- .../contracts/l1/rollup/IL1MessageQueue.sol | 10 +- contracts/contracts/l1/rollup/IRollup.sol | 2 - .../L1MessageQueueWithGasPriceOracle.sol | 37 +-- contracts/contracts/l1/rollup/Rollup.sol | 62 +---- .../libraries/codec/BatchHeaderCodecV0.sol | 45 +--- .../libraries/verifier/ISP1Verifier.sol | 2 +- .../libraries/verifier/SP1VerifierPlonk.sol | 12 +- .../libraries/verifier/ZkEvmVerifierV1.sol | 1 - contracts/contracts/lido/L1LidoGateway.sol | 2 +- .../contracts/mock/BatchHeaderCodecTest.sol | 3 +- .../test/L1CrossDomainMessenger.t.sol | 8 +- .../contracts/test/L1CustomERC20Gateway.t.sol | 4 +- .../contracts/test/L1ERC1155Gateway.t.sol | 8 +- .../contracts/test/L1ERC721Gateway.t.sol | 8 +- contracts/contracts/test/L1ETHGateway.t.sol | 4 +- contracts/contracts/test/L1MessageQueue.t.sol | 20 +- .../test/L1StandardERC20Gateway.t.sol | 4 +- contracts/contracts/test/L1WETHGateway.t.sol | 2 +- .../contracts/test/L2CustomERC20Gateway.t.sol | 8 +- .../contracts/test/L2ERC1155Gateway.t.sol | 40 ++- .../contracts/test/L2ERC721Gateway.t.sol | 12 +- .../contracts/test/L2GatewayRouter.t.sol | 38 ++- contracts/contracts/test/Rollup.t.sol | 239 +++--------------- .../contracts/test/ZkEvmVerifierV1.t.sol | 2 +- .../test/base/BatchHeaderCodeV0.t.sol | 4 +- contracts/go.mod | 2 +- contracts/go.sum | 4 +- go-ethereum | 2 +- go.work.sum | 2 + node/core/batch.go | 91 +++---- node/core/config.go | 17 ++ node/core/executor.go | 9 +- node/core/l1_message.go | 37 +-- node/core/l1_message_test.go | 68 +---- node/derivation/batch_info.go | 5 +- node/derivation/derivation.go | 101 +++++--- node/derivation/derivation_test.go | 69 ++--- node/flags/flags.go | 20 ++ node/go.mod | 2 +- node/go.sum | 4 +- node/types/batch.go | 8 +- node/types/consensus_message.go | 5 +- node/types/derivation.go | 6 - ops/docker/.env | 9 +- ops/docker/docker-compose-4nodes.yml | 4 + ops/l2-genesis/go.mod | 2 +- ops/l2-genesis/go.sum | 4 +- ops/tools/go.mod | 2 +- ops/tools/go.sum | 4 +- oracle/go.mod | 2 +- oracle/go.sum | 6 +- tx-submitter/go.mod | 2 +- tx-submitter/go.sum | 6 +- tx-submitter/services/rollup.go | 13 +- 64 files changed, 436 insertions(+), 774 deletions(-) delete mode 100644 node/types/derivation.go diff --git a/.gitmodules b/.gitmodules index 8e8091378..3b72cbd03 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "go-ethereum"] path = go-ethereum url = https://github.com/morph-l2/go-ethereum.git -branch = release/2.0.x +branch = main diff --git a/Makefile b/Makefile index d53102ae7..92026b225 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ ################## update dependencies #################### -ETHEREUM_TARGET_VERSION := morph-v2.0.1 +ETHEREUM_TARGET_VERSION := v1.10.14-0.20241105040223-5c7f1bb7073e TENDERMINT_TARGET_VERSION := v0.3.1 ETHEREUM_MODULE_NAME := github.com/morph-l2/go-ethereum diff --git a/bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex b/bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex index 029ef9d7a..704b62314 100644 --- a/bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex +++ b/bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex @@ -1 +1 @@ -0x608060405234801561000f575f80fd5b50600436106101a5575f3560e01c80639b159782116100e8578063d5ad4a9711610093578063e172d3a11161006e578063e172d3a1146103ca578063e3176bd5146103e4578063f2fde38b146103ed578063fd0ad31e14610400575f80fd5b8063d5ad4a9714610391578063d99bc80e146103a4578063da35a26f146103b7575f80fd5b8063bb7862ca116100c3578063bb7862ca14610337578063bdc6f0a014610357578063c27606771461036a575f80fd5b80639b15978214610308578063a85006ca1461031b578063ae453cd514610324575f80fd5b80635f9cd92e116101535780638770d7071161012e5780638770d707146102645780638da5cb5b146102b057806391652461146102ce578063927ede2d146102e1575f80fd5b80635f9cd92e14610236578063715018a6146102495780637d82191a14610251575f80fd5b806355f613ce1161018357806355f613ce146102055780635ad9945a1461021a5780635e45da231461022d575f80fd5b806329aa604b146101a95780633e4cbbe6146101cf5780633e6dada1146101e2575b5f80fd5b6101bc6101b73660046114fc565b610408565b6040519081526020015b60405180910390f35b6101bc6101dd366004611536565b610427565b6101f56101f03660046114fc565b6104db565b60405190151581526020016101c6565b61021861021336600461155e565b610521565b005b6101bc6102283660046115cc565b610715565b6101bc60685481565b610218610244366004611648565b610905565b61021861099a565b6101f561025f3660046114fc565b6109ad565b61028b7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c6565b60335473ffffffffffffffffffffffffffffffffffffffff1661028b565b6102186102dc3660046114fc565b6109e0565b61028b7f000000000000000000000000000000000000000000000000000000000000000081565b610218610316366004611661565b610bff565b6101bc60675481565b6101bc6103323660046114fc565b610ce1565b606b5461028b9073ffffffffffffffffffffffffffffffffffffffff1681565b6102186103653660046116b7565b610d57565b61028b7f000000000000000000000000000000000000000000000000000000000000000081565b61021861039f3660046114fc565b610e88565b6102186103b23660046114fc565b610ed6565b6102186103c536600461172a565b610f1c565b6101bc6103d8366004611754565b60100261520801919050565b6101bc60655481565b6102186103fb366004611648565b6110d1565b6066546101bc565b60668181548110610417575f80fd5b5f91825260209091200154905081565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa158015610495573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b99190611793565b156104c557505f6104d5565b6065546104d290836117b9565b90505b92915050565b600881901c5f908152606a6020526040812054600160ff84161b16151580156104d55750600882901c5f90815260696020526040902054600160ff84161b1615156104d5565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146105ab5760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b6101008211156105fd5760405162461bcd60e51b815260206004820152601560248201527f706f7020746f6f206d616e79206d65737361676573000000000000000000000060448201526064016105a2565b826067541461064e5760405162461bcd60e51b815260206004820152601460248201527f737461727420696e646578206d69736d6174636800000000000000000000000060448201526064016105a2565b600883901c5f818152606a6020526040902080546001851b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0193841660ff871681811b9092179092559092919061010081860111156106c557600182015f908152606a6020526040902061010082900385901c90555b50505081830160675560408051848152602081018490529081018290527fc77f792f838ae38399ac31acc3348389aeb110ce7bedf3cfdbdd5e6679267970906060015b60405180910390a1505050565b5f607e816107bf565b5f8161072c57506001919050565b5b81156107425760089190911c9060010161072d565b919050565b80608083106001811461077f5761075d8461071e565b60808101835360018301925084816020036008021b83528083019250506107a0565b848415166001811461079357848353610798565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b600560405101806107d260018c83610747565b90506107e060018983610747565b90506107ec89826107a8565b90506107fa60018b83610747565b905060018614600181146108625760388710600181146108475761081d8861071e565b8060b701845360018401935088816020036008021b8452808401935050878984379187019161085c565b87608001835360018301925087898437918701915b50610873565b6108705f89355f1a84610747565b91505b5061087e8c826107a8565b90508181035f8060388310600181146108b15761089a8461071e565b60f78101600882021b8517935060010191506108bc565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b61090d61116e565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6109a261116e565b6109ab5f6111d5565b565b5f60675482106109be57505f919050565b600882901c5f908152606a6020526040902054600160ff84161b1615156104d5565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610a8b5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e67657200000000000000000000000000000000000000000060648201526084016105a2565b6067548110610adc5760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742064726f702070656e64696e67206d657373616765000000000060448201526064016105a2565b600881901c5f908152606a6020526040902054600160ff83161b16610b435760405162461bcd60e51b815260206004820152601860248201527f64726f70206e6f6e2d736b6970706564206d657373616765000000000000000060448201526064016105a2565b600881901c5f90815260696020526040902054600160ff83161b1615610bab5760405162461bcd60e51b815260206004820152601760248201527f6d65737361676520616c72656164792064726f7070656400000000000000000060448201526064016105a2565b600881901c5f9081526069602052604090208054600160ff84161b1790556040518181527f43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf9060200160405180910390a150565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610caa5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e67657200000000000000000000000000000000000000000060648201526084016105a2565b610cb583838361124b565b3373111100000000000000000000000000000000111101610cda81865f878787611347565b5050505050565b6066545f908210610d345760405162461bcd60e51b815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e676500000000000060448201526064016105a2565b60668281548110610d4757610d476117f5565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610e025760405162461bcd60e51b815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f617465776179000000000000000000000000000000000000000000000000000060648201526084016105a2565b73ffffffffffffffffffffffffffffffffffffffff86163b15610e675760405162461bcd60e51b815260206004820152600860248201527f6f6e6c7920454f4100000000000000000000000000000000000000000000000060448201526064016105a2565b610e7283838361124b565b610e80868686868686611347565b505050505050565b610e9061116e565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c591015b60405180910390a15050565b610ede61116e565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead3663299101610eca565b5f54610100900460ff1615808015610f3a57505f54600160ff909116105b80610f535750303b158015610f5357505f5460ff166001145b610fc55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105a2565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611021575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6110296113f8565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841617905580156110cc575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610708565b505050565b6110d961116e565b73ffffffffffffffffffffffffffffffffffffffff81166111625760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105a2565b61116b816111d5565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146109ab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a2565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6068548311156112c35760405162461bcd60e51b815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d697400000000000000000000000000000000000000000000000000000060648201526084016105a2565b6010810261520801808410156113415760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e736963206761730000000000000000000000000060648201526084016105a2565b50505050565b6066545f61135a8883888a898989610715565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e906113e6908a9087908b908b908b90611822565b60405180910390a35050505050505050565b5f54610100900460ff166114745760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105a2565b6109ab5f54610100900460ff166114f35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105a2565b6109ab336111d5565b5f6020828403121561150c575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610742575f80fd5b5f8060408385031215611547575f80fd5b61155083611513565b946020939093013593505050565b5f805f60608486031215611570575f80fd5b505081359360208301359350604090920135919050565b5f8083601f840112611597575f80fd5b50813567ffffffffffffffff8111156115ae575f80fd5b6020830191508360208285010111156115c5575f80fd5b9250929050565b5f805f805f805f60c0888a0312156115e2575f80fd5b6115eb88611513565b9650602088013595506040880135945061160760608901611513565b93506080880135925060a088013567ffffffffffffffff811115611629575f80fd5b6116358a828b01611587565b989b979a50959850939692959293505050565b5f60208284031215611658575f80fd5b6104d282611513565b5f805f8060608587031215611674575f80fd5b61167d85611513565b935060208501359250604085013567ffffffffffffffff81111561169f575f80fd5b6116ab87828801611587565b95989497509550505050565b5f805f805f8060a087890312156116cc575f80fd5b6116d587611513565b95506116e360208801611513565b94506040870135935060608701359250608087013567ffffffffffffffff81111561170c575f80fd5b61171889828a01611587565b979a9699509497509295939492505050565b5f806040838503121561173b575f80fd5b8235915061174b60208401611513565b90509250929050565b5f8060208385031215611765575f80fd5b823567ffffffffffffffff81111561177b575f80fd5b61178785828601611587565b90969095509350505050565b5f602082840312156117a3575f80fd5b815180151581146117b2575f80fd5b9392505050565b80820281158282048414176104d5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a +0x608060405234801561000f575f80fd5b506004361061019a575f3560e01c80639b159782116100e8578063d5ad4a9711610093578063e172d3a11161006e578063e172d3a1146103ac578063e3176bd5146103c6578063f2fde38b146103cf578063fd0ad31e146103e2575f80fd5b8063d5ad4a9714610373578063d99bc80e14610386578063da35a26f14610399575f80fd5b8063bb7862ca116100c3578063bb7862ca14610319578063bdc6f0a014610339578063c27606771461034c575f80fd5b80639b159782146102ea578063a85006ca146102fd578063ae453cd514610306575f80fd5b80635f9cd92e116101485780638da5cb5b116101235780638da5cb5b1461029257806391652461146102b0578063927ede2d146102c3575f80fd5b80635f9cd92e1461022b578063715018a61461023e5780638770d70714610246575f80fd5b80633e6dada1116101785780633e6dada1146101ec5780635ad9945a1461020f5780635e45da2314610222575f80fd5b806329aa604b1461019e5780633c7f5283146101c45780633e4cbbe6146101d9575b5f80fd5b6101b16101ac366004611399565b6103ea565b6040519081526020015b60405180910390f35b6101d76101d23660046113b0565b610409565b005b6101b16101e73660046113f3565b61057a565b6101ff6101fa366004611399565b61062e565b60405190151581526020016101bb565b6101b161021d366004611460565b610650565b6101b160685481565b6101d76102393660046114dc565b610840565b6101d76108d5565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bb565b60335473ffffffffffffffffffffffffffffffffffffffff1661026d565b6101d76102be366004611399565b6108e8565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6101d76102f83660046114f5565b610aa0565b6101b160675481565b6101b1610314366004611399565b610b82565b606b5461026d9073ffffffffffffffffffffffffffffffffffffffff1681565b6101d761034736600461154b565b610bf8565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6101d7610381366004611399565b610d29565b6101d7610394366004611399565b610d6f565b6101d76103a73660046115be565b610db5565b6101b16103ba3660046115e8565b60100261520801919050565b6101b160655481565b6101d76103dd3660046114dc565b610f6e565b6066546101b1565b606681815481106103f9575f80fd5b5f91825260209091200154905081565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146104935760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b6101008111156104e55760405162461bcd60e51b815260206004820152601560248201527f706f7020746f6f206d616e79206d657373616765730000000000000000000000604482015260640161048a565b81606754146105365760405162461bcd60e51b815260206004820152601460248201527f737461727420696e646578206d69736d61746368000000000000000000000000604482015260640161048a565b80820160675560408051838152602081018390527f3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f2691015b60405180910390a15050565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa1580156105e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060c9190611627565b1561061857505f610628565b606554610625908361164d565b90505b92915050565b600881901c5f90815260696020526040812054600160ff84161b161515610628565b5f607e816106fa565b5f8161066757506001919050565b5b811561067d5760089190911c90600101610668565b919050565b8060808310600181146106ba5761069884610659565b60808101835360018301925084816020036008021b83528083019250506106db565b84841516600181146106ce578483536106d3565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b6005604051018061070d60018c83610682565b905061071b60018983610682565b905061072789826106e3565b905061073560018b83610682565b9050600186146001811461079d5760388710600181146107825761075888610659565b8060b701845360018401935088816020036008021b84528084019350508789843791870191610797565b87608001835360018301925087898437918701915b506107ae565b6107ab5f89355f1a84610682565b91505b506107b98c826106e3565b90508181035f8060388310600181146107ec576107d584610659565b60f78101600882021b8517935060010191506107f7565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b61084861100b565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108dd61100b565b6108e65f611072565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146109935760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e676572000000000000000000000000000000000000000000606482015260840161048a565b60675481106109e45760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742064726f702070656e64696e67206d6573736167650000000000604482015260640161048a565b600881901c5f90815260696020526040902054600160ff83161b1615610a4c5760405162461bcd60e51b815260206004820152601760248201527f6d65737361676520616c72656164792064726f70706564000000000000000000604482015260640161048a565b600881901c5f9081526069602052604090208054600160ff84161b1790556040518181527f43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf9060200160405180910390a150565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610b4b5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e676572000000000000000000000000000000000000000000606482015260840161048a565b610b568383836110e8565b3373111100000000000000000000000000000000111101610b7b81865f8787876111e4565b5050505050565b6066545f908210610bd55760405162461bcd60e51b815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e6765000000000000604482015260640161048a565b60668281548110610be857610be8611689565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610ca35760405162461bcd60e51b815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f6174657761790000000000000000000000000000000000000000000000000000606482015260840161048a565b73ffffffffffffffffffffffffffffffffffffffff86163b15610d085760405162461bcd60e51b815260206004820152600860248201527f6f6e6c7920454f41000000000000000000000000000000000000000000000000604482015260640161048a565b610d138383836110e8565b610d218686868686866111e4565b505050505050565b610d3161100b565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c5910161056e565b610d7761100b565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead366329910161056e565b5f54610100900460ff1615808015610dd357505f54600160ff909116105b80610dec5750303b158015610dec57505f5460ff166001145b610e5e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161048a565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610eba575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610ec2611295565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015610f69575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610f7661100b565b73ffffffffffffffffffffffffffffffffffffffff8116610fff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161048a565b61100881611072565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108e65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048a565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6068548311156111605760405162461bcd60e51b815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d6974000000000000000000000000000000000000000000000000000000606482015260840161048a565b6010810261520801808410156111de5760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e7369632067617300000000000000000000000000606482015260840161048a565b50505050565b6066545f6111f78883888a898989610650565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e90611283908a9087908b908b908b906116b6565b60405180910390a35050505050505050565b5f54610100900460ff166113115760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161048a565b6108e65f54610100900460ff166113905760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161048a565b6108e633611072565b5f602082840312156113a9575f80fd5b5035919050565b5f80604083850312156113c1575f80fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461067d575f80fd5b5f8060408385031215611404575f80fd5b61140d836113d0565b946020939093013593505050565b5f8083601f84011261142b575f80fd5b50813567ffffffffffffffff811115611442575f80fd5b602083019150836020828501011115611459575f80fd5b9250929050565b5f805f805f805f60c0888a031215611476575f80fd5b61147f886113d0565b9650602088013595506040880135945061149b606089016113d0565b93506080880135925060a088013567ffffffffffffffff8111156114bd575f80fd5b6114c98a828b0161141b565b989b979a50959850939692959293505050565b5f602082840312156114ec575f80fd5b610625826113d0565b5f805f8060608587031215611508575f80fd5b611511856113d0565b935060208501359250604085013567ffffffffffffffff811115611533575f80fd5b61153f8782880161141b565b95989497509550505050565b5f805f805f8060a08789031215611560575f80fd5b611569876113d0565b9550611577602088016113d0565b94506040870135935060608701359250608087013567ffffffffffffffff8111156115a0575f80fd5b6115ac89828a0161141b565b979a9699509497509295939492505050565b5f80604083850312156115cf575f80fd5b823591506115df602084016113d0565b90509250929050565b5f80602083850312156115f9575f80fd5b823567ffffffffffffffff81111561160f575f80fd5b61161b8582860161141b565b90969095509350505050565b5f60208284031215611637575f80fd5b81518015158114611646575f80fd5b9392505050565b8082028115828204841417610628577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a diff --git a/bindings/bin/rollup_deployed.hex b/bindings/bin/rollup_deployed.hex index 24f594bc7..663d65ec6 100644 --- a/bindings/bin/rollup_deployed.hex +++ b/bindings/bin/rollup_deployed.hex @@ -1 +1 @@ -0x6080604052600436106102fb575f3560e01c806388b1ea0911610191578063b3e0a509116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610987578063f2fde38b146109a6578063fb1e8b04146109c5575f80fd5b8063ddd8a3dc14610934578063de8b303514610953578063dff7827e14610972575f80fd5b8063ce5db8d6116100b7578063ce5db8d6146108ed578063d279c19114610902578063d63b354914610921575f80fd5b8063b3e0a5091461089c578063bedb86fb146108bb578063cd4edc69146108da575f80fd5b8063a479265d1161013c578063b31a77d311610117578063b31a77d314610849578063b34844251461085e578063b35dac4e1461087d575f80fd5b8063a479265d146107ea578063a4f209b0146107ff578063abc8d68d1461081e575f80fd5b8063910129d41161016c578063910129d41461076c57806397fc007c1461079d578063a415d8dc146107bc575f80fd5b806388b1ea09146106865780638da5cb5b1461069f5780638f1d3776146106bc575f80fd5b80632571098d116102515780635ef7a94a116101fc5780636c578c1d116101d75780636c578c1d14610634578063715018a614610653578063728cdbca14610667575f80fd5b80635ef7a94a1461055d5780635f77cf1d146105bd57806368589dfa14610609575f80fd5b80633e001b661161022c5780633e001b661461051257806357e0af6c146105275780635c975abb14610546575f80fd5b80632571098d146104915780632b7ac3f3146104bc5780633b70c18a146104f3575f80fd5b8063121dcd50116102b157806318af3b2b1161028c57806318af3b2b1461041757806321e2f9e0146104475780632362f03e14610466575f80fd5b8063121dcd50146103ce57806313361101146103e357806318463fb014610402575f80fd5b80630ceb6780116102e15780630ceb67801461036c57806310d445831461038d578063116a1f42146103ac575f80fd5b806304d7721514610306578063059def6114610349575f80fd5b3661030257005b5f80fd5b348015610311575f80fd5b50610334610320366004614046565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610354575f80fd5b5061035e609d5481565b604051908152602001610340565b348015610377575f80fd5b5061038b610386366004614078565b6109da565b005b348015610398575f80fd5b5061038b6103a73660046140d6565b610aac565b3480156103b7575f80fd5b506103346103c6366004614046565b609d54101590565b3480156103d9575f80fd5b5061035e609e5481565b3480156103ee575f80fd5b5061038b6103fd36600461411e565b610e05565b34801561040d575f80fd5b5061035e60a75481565b348015610422575f80fd5b50610334610431366004614046565b5f90815260a26020526040902060010154421090565b348015610452575f80fd5b50610334610461366004614046565b6112fa565b348015610471575f80fd5b5061035e610480366004614046565b60a16020525f908152604090205481565b34801561049c575f80fd5b5061035e6104ab366004614046565b60a06020525f908152604090205481565b3480156104c7575f80fd5b50609c546104db906001600160a01b031681565b6040516001600160a01b039091168152602001610340565b3480156104fe575f80fd5b50609b546104db906001600160a01b031681565b34801561051d575f80fd5b5061035e60aa5481565b348015610532575f80fd5b5061038b610541366004614046565b611328565b348015610551575f80fd5b5060655460ff16610334565b348015610568575f80fd5b5061059d610577366004614046565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610340565b3480156105c8575f80fd5b506105f07f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610340565b348015610614575f80fd5b5061035e610623366004614046565b60ab6020525f908152604090205481565b34801561063f575f80fd5b5061038b61064e366004614078565b6113d3565b34801561065e575f80fd5b5061038b611490565b348015610672575f80fd5b5061038b61068136600461415d565b6114a3565b348015610691575f80fd5b5060a6546103349060ff1681565b3480156106aa575f80fd5b506033546001600160a01b03166104db565b3480156106c7575f80fd5b506107286106d6366004614046565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c001610340565b348015610777575f80fd5b50610334610786366004614046565b5f90815260a4602052604090206003015460ff1690565b3480156107a8575f80fd5b5061038b6107b7366004614078565b6117e6565b3480156107c7575f80fd5b506103346107d6366004614078565b609f6020525f908152604090205460ff1681565b3480156107f5575f80fd5b5061035e60995481565b34801561080a575f80fd5b5061038b610819366004614046565b6118c9565b348015610829575f80fd5b5061035e610838366004614078565b60a56020525f908152604090205481565b348015610854575f80fd5b5061035e60a85481565b348015610869575f80fd5b5061038b6108783660046141b8565b611979565b348015610888575f80fd5b5061038b610897366004614078565b611bbe565b3480156108a7575f80fd5b5061038b6108b636600461411e565b611c17565b3480156108c6575f80fd5b5061038b6108d536600461422c565b611f19565b61038b6108e8366004614247565b612074565b3480156108f8575f80fd5b5061035e60985481565b34801561090d575f80fd5b5061038b61091c366004614078565b612640565b61038b61092f36600461427d565b6126ff565b34801561093f575f80fd5b506097546104db906001600160a01b031681565b34801561095e575f80fd5b5061033461096d366004614046565b613029565b34801561097d575f80fd5b5061035e609a5481565b348015610992575f80fd5b5061038b6109a1366004614046565b613073565b3480156109b1575f80fd5b5061038b6109c0366004614078565b613116565b3480156109d0575f80fd5b5061035e60a95481565b6109e26131a3565b6001600160a01b0381165f908152609f602052604090205460ff1615610a4f5760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ab46131a3565b5f8111610b035760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a46565b5f80610b0f85856131fd565b915091505f610b22836001015160c01c90565b5f81815260a160205260409020549091508214610b815760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b5f60a181610b8f8785614317565b81526020019081526020015f205414610c0f5760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a46565b609d548111610c865760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b610c9160018261432a565b609e555b8315610dfd57604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610cdd81613029565b15610d38575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d28908490614317565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610db5575060a85481145b15610dbf575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610c95575b505050505050565b60a85415610e555760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b610e5d613218565b5f80610e6984846131fd565b915091505f610e7c836001015160c01c90565b5f81815260a160205260409020549091508214610edb5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b610ee4816112fa565b610f305760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b610f3981613029565b15610f865760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003015460ff1615610fe75760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a46565b5f81815260a260205260409020600101544210156110475760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a46565b605983015160a05f61105a60018561432a565b81526020019081526020015f2054146110b55760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f81815260a06020526040902054156111105760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a46565b80609d54600101146111645760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b609d819055600160a35f611179866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111c660f98401601185015160c01c600986015160c01c61326b565b60a25f6111d460018461432a565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061120d908461432a565b81526020019081526020015f205f905560a45f60018361122d919061432a565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d6112d6866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061132257505f82815260a1602052604090205415155b92915050565b6113306131a3565b5f8111801561134157506099548114155b61138d5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a46565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b6113db6131a3565b6001600160a01b0381165f908152609f602052604090205460ff166114425760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a46565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610aa1565b6114986131a3565b6114a15f613334565b565b5f54610100900460ff16158080156114c157505f54600160ff909116105b806114da5750303b1580156114da57505f5460ff166001145b61154c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a46565b5f805460ff19166001179055801561158a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b03861615806115a757506001600160a01b038516155b156115de576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166116345760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a46565b61163c61339d565b611644613421565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156117dd575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6117ee6131a3565b6001600160a01b038116158015906118145750609c546001600160a01b03828116911614155b6118605760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a46565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b6118d16131a3565b5f811180156118e1575060648111155b80156118ef575060a9548114155b61193b5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a46565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b022391016113c7565b60a854156119c95760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b6119d1613218565b5f806119dd86866131fd565b915091505f6119f0836001015160c01c90565b5f81815260a160205260409020549091508214611a4f5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b611a5881613029565b611aa45760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff191690556099546002909101544291611afd91614317565b11611b73575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152611b6e918391906134a5565b6117dd565b611b7e838686613601565b6117dd81336040518060400160405280600d81526020017f50726f6f662073756363657373000000000000000000000000000000000000008152506137b4565b611bc66131a3565b60aa80545f909155611bd88282613880565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d8791016113c7565b611c1f6131a3565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415611c965760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a46565b5f80611ca284846131fd565b915091505f611cb5836001015160c01c90565b90505f611cc3846079015190565b905080611d125760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a46565b600984015160c01c15611d675760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a46565b5f611d73856019015190565b03611dc05760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a46565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014611dec856039015190565b14611e395760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a46565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b611f216131a3565b801561204257611f2f61392b565b60a65460ff16156120015760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091611f83908490614317565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b61204a613985565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612024565b50565b335f908152609f602052604090205460ff166120d25760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a46565b60a854156121225760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b61212a613218565b60a65460ff161561217d5760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a46565b8167ffffffffffffffff16609d54106121d85760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a16020526040902054811461223f5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b6122528267ffffffffffffffff166112fa565b61229e5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b0316156123195760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a2602052604090206001015442106123a95760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a46565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061241d919061433d565b34101561246c5760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b9976346040516125be91815260200190565b60405180910390a35f609d5460016125d69190614317565b90505b609e54811161262e578267ffffffffffffffff16811461261c576099545f82815260a2602052604081206001018054909190612616908490614317565b90915550505b8061262681614354565b9150506125d9565b505060a6805460ff1916600117905550565b335f90815260a560205260408120549081900361269f5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a46565b335f90815260a560205260408120556126b88282613880565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a826040516126f391815260200190565b60405180910390a25050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561276b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061278f919061438b565b6127db5760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a46565b60a8541561282b5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b612833613218565b61284060208301836143a6565b60ff16156128905760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a46565b5f61289e60408401846143c6565b915050806128ee5760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a46565b608083013561293f5760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a46565b60a08301356129905760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a46565b5f806129a76129a260208701876143c6565b6131fd565b915091505f6129ba836001015160c01c90565b90505f60a1816129cb846001614317565b81526020019081526020015f205414612a265760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a46565b609e548114612a775760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b5f81815260a160205260409020548214612ad35760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a46565b5f81815260ab6020526040902054608087013514612b335760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f612b42846011015160c01c90565b90505f8080612ba1612b5760408c018c6143c6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150612b9c905060608f018f6143c6565b6139be565b948501949384019392509050612bba60608b018b6143c6565b905061010060ff85010460200214612c145760405162461bcd60e51b815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a46565b600194909401935f804915612c2a575f49612c4c565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b90505f612c5c60608d018d6143c6565b612c68915060f9614317565b90506040519850602081028901604052612c96898d5f016020810190612c8e91906143a6565b60ff16613b3f565b60c087811b60018b015285811b60098b015286811b60118b015260198a0184905260808d013560598b015260a08d013560798b01528c013560998a0152612d0389612ce460208e018e6143c6565b604051612cf2929190614427565b604051809103902060b99190910152565b60d98901889052612d2089612d1b60608f018f6143c6565b613b46565b603989018290528089205f88815260a1602090815260408083209390935560ab905290812060a08e0135905560a65460ff1615612d865760a7545f90815260a460205260409020600201546099544291612d7991614317565b612d83919061432a565b90505b60405180608001604052804281526020018260985442612da69190614317565b612db09190614317565b8152602001612e018f8060400190612dc891906143c6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613b5292505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015612e75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e99919061433d565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590612f0190612efb908f018f6143c6565b5f613ba9565b5f8e8060400190612f1291906143c6565b6040518663ffffffff1660e01b8152600401612f3295949392919061447d565b602060405180830381865afa158015612f4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f71919061438b565b612fe35760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b5f81815260a460205260408120546801000000000000000090046001600160a01b0316158015906113225750505f90815260a46020526040902060030154610100900460ff161590565b61307b6131a3565b5f8111801561308c57506098548114155b6130d85760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a46565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a43791016113c7565b61311e6131a3565b6001600160a01b03811661319a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a46565b61207181613334565b6033546001600160a01b031633146114a15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a46565b5f805f61320a8585613bfd565b812090969095509350505050565b60655460ff16156114a15760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a46565b805f0361327757505050565b8082035f805b83811015610dfd5761010081850381111561329757508084035b8651609b546040517f55f613ce0000000000000000000000000000000000000000000000000000000081526004810187905260248101849052604481018390526020909901989194506001600160a01b0316906355f613ce906064015f604051808303815f87803b15801561330a575f80fd5b505af115801561331c573d5f803e3d5ffd5b5050505061010084019350506101008101905061327d565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166134195760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6114a1613cd4565b5f54610100900460ff1661349d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6114a1613d5c565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af1158015613529573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061354d919061433d565b5f86815260a4602052604090206001015490915061356c908290614317565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a5909152812080549091906135ab908490614317565b90915550506040516135be9084906144f0565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8061364e5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a46565b5f61365d846001015160c01c90565b90505f61366b856039015190565b90505f7f000000000000000000000000000000000000000000000000000000000000000061369a876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a84861375c885160f81c90565b858888866040518663ffffffff1660e01b815260040161378095949392919061451c565b5f6040518083038186803b158015613796575f80fd5b505afa1580156137a8573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906137d8908461454d565b6137e29190614564565b90506137ee818361432a565b60aa5f8282546137fe9190614317565b90915550506001600160a01b0384165f90815260a560205260408120805483929061382a908490614317565b909155505060405161383d9084906144f0565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613927575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146138cf576040519150601f19603f3d011682016040523d82523d5f602084013e6138d4565b606091505b50509050806139255760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a46565b505b5050565b613933613218565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586139683390565b6040516001600160a01b03909116815260200160405180910390a1565b61398d613de1565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613968565b60405185515f918291602089019190819084906139dc908590613e33565b90506002840193505f5b81811015613a6057603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613a36603c8361454d565b613a409087614317565b90505f613a5182603a015160f01c90565b979097019650506001016139e6565b506020850282016040525b8015613b2b575f613a8085603a015160f01c90565b9050613a9083828d8d8d8d613ec8565b92505f613aa1866038015160f01c90565b905081811015613af35760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a46565b50998a01999890980197603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613a6b565b508190039020989197509095505050505050565b8082535050565b808260f9850137505050565b5f805f6020840190506002810191505f613b6d828651613e33565b90505f5b613b7c60018361432a565b811015613b9257603c9390930192600101613b71565b505f613b9f845160c01c90565b9695505050505050565b60605f80808080613bbc888a018a614689565b9550955095509550955050818710613bda579450613bf69350505050565b838710613bee578295505050505050613bf6565b509293505050505b9392505050565b5f8160f9811015613c505760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a46565b6040519150808483378082016040525f613c6e836009015160c01c90565b905061010060ff82010460200260f9018214613ccc5760405162461bcd60e51b815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a46565b509250929050565b5f54610100900460ff16613d505760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6065805460ff19169055565b5f54610100900460ff16613dd85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6114a133613334565b60655460ff166114a15760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a46565b5f613e3f835160f01c90565b9050805f03613e7a576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e85603c8261454d565b613e90906002614317565b8214611322576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f855f03613ed7575085613b9f565b609b546001600160a01b03165f80805b89811015613fbd5760ff89169150600889901c811580613f05575082155b15613f14578060200288013593505b600184841c165f03613fac576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018a90525f906001600160a01b0387169063ae453cd590602401602060405180830381865afa158015613f7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fa2919061433d565b8d52506020909b019a5b506001988901989788019701613ee7565b505060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88011681811c600116156140385760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f7420736b6970206c617374204c31206d65737361676500000000006044820152606401610a46565b509798975050505050505050565b5f60208284031215614056575f80fd5b5035919050565b80356001600160a01b0381168114614073575f80fd5b919050565b5f60208284031215614088575f80fd5b613bf68261405d565b5f8083601f8401126140a1575f80fd5b50813567ffffffffffffffff8111156140b8575f80fd5b6020830191508360208285010111156140cf575f80fd5b9250929050565b5f805f604084860312156140e8575f80fd5b833567ffffffffffffffff8111156140fe575f80fd5b61410a86828701614091565b909790965060209590950135949350505050565b5f806020838503121561412f575f80fd5b823567ffffffffffffffff811115614145575f80fd5b61415185828601614091565b90969095509350505050565b5f805f805f8060c08789031215614172575f80fd5b61417b8761405d565b95506141896020880161405d565b94506141976040880161405d565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f80604085870312156141cb575f80fd5b843567ffffffffffffffff808211156141e2575f80fd5b6141ee88838901614091565b90965094506020870135915080821115614206575f80fd5b5061421387828801614091565b95989497509550505050565b8015158114612071575f80fd5b5f6020828403121561423c575f80fd5b8135613bf68161421f565b5f8060408385031215614258575f80fd5b823567ffffffffffffffff8116811461426f575f80fd5b946020939093013593505050565b5f806040838503121561428e575f80fd5b823567ffffffffffffffff808211156142a5575f80fd5b9084019060e082870312156142b8575f80fd5b909250602084013590808211156142cd575f80fd5b508301606081860312156142df575f80fd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115611322576113226142ea565b81810381811115611322576113226142ea565b5f6020828403121561434d575f80fd5b5051919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614384576143846142ea565b5060010190565b5f6020828403121561439b575f80fd5b8151613bf68161421f565b5f602082840312156143b6575f80fd5b813560ff81168114613bf6575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126143f9575f80fd5b83018035915067ffffffffffffffff821115614413575f80fd5b6020019150368190038213156140cf575f80fd5b818382375f9101908152919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156144c75784516001600160a01b0316835293830193918301916001016144a2565b505087604086015284810360608601526144e2818789614436565b9a9950505050505050505050565b5f82515f5b8181101561450f57602081860181015185830152016144f5565b505f920191825250919050565b858152846020820152608060408201525f61453b608083018587614436565b90508260608301529695505050505050565b8082028115828204841417611322576113226142ea565b5f82614597577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145d8575f80fd5b8135602067ffffffffffffffff808311156145f5576145f561459c565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156146385761463861459c565b6040529384526020818701810194908101925087851115614657575f80fd5b6020870191505b8482101561467e5761466f8261405d565b8352918301919083019061465e565b979650505050505050565b5f805f805f8060c0878903121561469e575f80fd5b86359550602087013567ffffffffffffffff808211156146bc575f80fd5b6146c88a838b016145c9565b96506040890135955060608901359150808211156146e4575f80fd5b6146f08a838b016145c9565b94506080890135935060a089013591508082111561470c575f80fd5b5061471989828a016145c9565b915050929550929550929556fea164736f6c6343000818000a +0x6080604052600436106102fb575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610987578063f2fde38b146109a6578063fb1e8b04146109c5575f80fd5b8063ddd8a3dc14610934578063de8b303514610953578063dff7827e14610972575f80fd5b8063cd4edc69116100b7578063cd4edc69146108ed578063ce5db8d614610900578063d279c19114610915575f80fd5b8063b35dac4e14610890578063b3e0a509146108af578063bedb86fb146108ce575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d14610831578063b31a77d31461085c578063b348442514610871575f80fd5b8063a415d8dc146107cf578063a479265d146107fd578063a4f209b014610812575f80fd5b80638f1d37761161016c5780638f1d3776146106cf578063910129d41461077f57806397fc007c146107b0575f80fd5b8063728cdbca1461067a57806388b1ea09146106995780638da5cb5b146106b2575f80fd5b80632571098d116102515780635c975abb116101fc57806368589dfa116101d757806368589dfa1461061c5780636c578c1d14610647578063715018a614610666575f80fd5b80635c975abb146105595780635ef7a94a146105705780635f77cf1d146105d0575f80fd5b80633e001b661161022c5780633e001b66146105125780634a8d544f1461052757806357e0af6c1461053a575f80fd5b80632571098d146104915780632b7ac3f3146104bc5780633b70c18a146104f3575f80fd5b8063121dcd50116102b157806318af3b2b1161028c57806318af3b2b1461041757806321e2f9e0146104475780632362f03e14610466575f80fd5b8063121dcd50146103ce57806313361101146103e357806318463fb014610402575f80fd5b80630ceb6780116102e15780630ceb67801461036c57806310d445831461038d578063116a1f42146103ac575f80fd5b806304d7721514610306578063059def6114610349575f80fd5b3661030257005b5f80fd5b348015610311575f80fd5b50610334610320366004613e66565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610354575f80fd5b5061035e609d5481565b604051908152602001610340565b348015610377575f80fd5b5061038b610386366004613e98565b6109da565b005b348015610398575f80fd5b5061038b6103a7366004613ef6565b610aac565b3480156103b7575f80fd5b506103346103c6366004613e66565b609d54101590565b3480156103d9575f80fd5b5061035e609e5481565b3480156103ee575f80fd5b5061038b6103fd366004613f3e565b610e05565b34801561040d575f80fd5b5061035e60a75481565b348015610422575f80fd5b50610334610431366004613e66565b5f90815260a26020526040902060010154421090565b348015610452575f80fd5b50610334610461366004613e66565b6112fc565b348015610471575f80fd5b5061035e610480366004613e66565b60a16020525f908152604090205481565b34801561049c575f80fd5b5061035e6104ab366004613e66565b60a06020525f908152604090205481565b3480156104c7575f80fd5b50609c546104db906001600160a01b031681565b6040516001600160a01b039091168152602001610340565b3480156104fe575f80fd5b50609b546104db906001600160a01b031681565b34801561051d575f80fd5b5061035e60aa5481565b61038b610535366004613f7d565b61132a565b348015610545575f80fd5b5061038b610554366004613e66565b611bad565b348015610564575f80fd5b5060655460ff16610334565b34801561057b575f80fd5b506105b061058a366004613e66565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610340565b3480156105db575f80fd5b506106037f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610340565b348015610627575f80fd5b5061035e610636366004613e66565b60ab6020525f908152604090205481565b348015610652575f80fd5b5061038b610661366004613e98565b611c58565b348015610671575f80fd5b5061038b611d15565b348015610685575f80fd5b5061038b610694366004613fea565b611d28565b3480156106a4575f80fd5b5060a6546103349060ff1681565b3480156106bd575f80fd5b506033546001600160a01b03166104db565b3480156106da575f80fd5b5061073b6106e9366004613e66565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c001610340565b34801561078a575f80fd5b50610334610799366004613e66565b5f90815260a4602052604090206003015460ff1690565b3480156107bb575f80fd5b5061038b6107ca366004613e98565b61206b565b3480156107da575f80fd5b506103346107e9366004613e98565b609f6020525f908152604090205460ff1681565b348015610808575f80fd5b5061035e60995481565b34801561081d575f80fd5b5061038b61082c366004613e66565b61214e565b34801561083c575f80fd5b5061035e61084b366004613e98565b60a56020525f908152604090205481565b348015610867575f80fd5b5061035e60a85481565b34801561087c575f80fd5b5061038b61088b366004614045565b6121fe565b34801561089b575f80fd5b5061038b6108aa366004613e98565b612443565b3480156108ba575f80fd5b5061038b6108c9366004613f3e565b61249c565b3480156108d9575f80fd5b5061038b6108e83660046140b9565b61279e565b61038b6108fb3660046140d4565b6128f9565b34801561090b575f80fd5b5061035e60985481565b348015610920575f80fd5b5061038b61092f366004613e98565b612ec5565b34801561093f575f80fd5b506097546104db906001600160a01b031681565b34801561095e575f80fd5b5061033461096d366004613e66565b612f84565b34801561097d575f80fd5b5061035e609a5481565b348015610992575f80fd5b5061038b6109a1366004613e66565b612fce565b3480156109b1575f80fd5b5061038b6109c0366004613e98565b613071565b3480156109d0575f80fd5b5061035e60a95481565b6109e26130fe565b6001600160a01b0381165f908152609f602052604090205460ff1615610a4f5760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ab46130fe565b5f8111610b035760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a46565b5f80610b0f8585613158565b915091505f610b22836001015160c01c90565b5f81815260a160205260409020549091508214610b815760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b5f60a181610b8f8785614137565b81526020019081526020015f205414610c0f5760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a46565b609d548111610c865760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b610c9160018261414a565b609e555b8315610dfd57604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610cdd81612f84565b15610d38575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d28908490614137565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610db5575060a85481145b15610dbf575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610c95575b505050505050565b60a85415610e555760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b610e5d613173565b5f80610e698484613158565b915091505f610e7c836001015160c01c90565b5f81815260a160205260409020549091508214610edb5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b610ee4816112fc565b610f305760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b610f3981612f84565b15610f865760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003015460ff1615610fe75760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a46565b5f81815260a260205260409020600101544210156110475760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a46565b605983015160a05f61105a60018561414a565b81526020019081526020015f2054146110b55760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f81815260a06020526040902054156111105760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a46565b80609d54600101146111645760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b609d819055600160a35f611179866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111c86111bb846011015160c01c90565b600985015160c01c6131c6565b60a25f6111d660018461414a565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061120f908461414a565b81526020019081526020015f205f905560a45f60018361122f919061414a565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d6112d8866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061132457505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ba919061415d565b6114065760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a46565b60a854156114565760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b61145e613173565b61146b6020830183614178565b60ff16156114bb5760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a46565b5f6114c96040840184614198565b915050806115195760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a46565b606083013561156a5760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a46565b60808301356115bb5760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a46565b5f806115d26115cd6020870187614198565b613158565b915091505f6115e5836001015160c01c90565b90505f60a1816115f6846001614137565b81526020019081526020015f2054146116515760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a46565b609e5481146116a25760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b5f81815260a1602052604090205482146116fe5760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a46565b5f81815260ab602052604090205460608701351461175e5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f61176d846011015160c01c90565b90505f80806117bf61178260408c018c614198565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792508891506132839050565b600196909601959485019493840193925090505f8049156117e1575f49611803565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f961182e8961182660208f018f614178565b60ff16613400565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a015261189d8961187e60208e018e614198565b60405161188c9291906141f9565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff161561190a5760a7545f90815260a4602052604090206002015460995442916118fd91614137565b611907919061414a565b90505b6040518060800160405280428152602001826098544261192a9190614137565b6119349190614137565b81526020016119858f806040019061194c9190614198565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061340792505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156119f9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1d9190614208565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590611a8590611a7f908f018f614198565b5f61345e565b5f8e8060400190611a969190614198565b6040518663ffffffff1660e01b8152600401611ab6959493929190614266565b602060405180830381865afa158015611ad1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611af5919061415d565b611b675760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611bb56130fe565b5f81118015611bc657506099548114155b611c125760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a46565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b611c606130fe565b6001600160a01b0381165f908152609f602052604090205460ff16611cc75760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a46565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610aa1565b611d1d6130fe565b611d265f6134b2565b565b5f54610100900460ff1615808015611d4657505f54600160ff909116105b80611d5f5750303b158015611d5f57505f5460ff166001145b611dd15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a46565b5f805460ff191660011790558015611e0f575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0386161580611e2c57506001600160a01b038516155b15611e63576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038716611eb95760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a46565b611ec161351b565b611ec961359f565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015612062575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6120736130fe565b6001600160a01b038116158015906120995750609c546001600160a01b03828116911614155b6120e55760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a46565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b6121566130fe565b5f81118015612166575060648111155b8015612174575060a9548114155b6121c05760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a46565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c4c565b60a8541561224e5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b612256613173565b5f806122628686613158565b915091505f612275836001015160c01c90565b5f81815260a1602052604090205490915082146122d45760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b6122dd81612f84565b6123295760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff19169055609954600290910154429161238291614137565b116123f8575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f757400000000000000000000000000000000000000000000000000918301919091526123f391839190613623565b612062565b61240383868661377f565b61206281336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613932565b61244b6130fe565b60aa80545f90915561245d82826139fe565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c4c565b6124a46130fe565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561251b5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a46565b5f806125278484613158565b915091505f61253a836001015160c01c90565b90505f612548846079015190565b9050806125975760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a46565b600984015160c01c156125ec5760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a46565b5f6125f8856019015190565b036126455760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a46565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014612671856039015190565b146126be5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a46565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b6127a66130fe565b80156128c7576127b4613aa9565b60a65460ff16156128865760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612808908490614137565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b6128cf613b03565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336128a9565b50565b335f908152609f602052604090205460ff166129575760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a46565b60a854156129a75760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b6129af613173565b60a65460ff1615612a025760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a46565b8167ffffffffffffffff16609d5410612a5d5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a160205260409020548114612ac45760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b612ad78267ffffffffffffffff166112fc565b612b235760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612b9e5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a260205260409020600101544210612c2e5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a46565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ca29190614208565b341015612cf15760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b997634604051612e4391815260200190565b60405180910390a35f609d546001612e5b9190614137565b90505b609e548111612eb3578267ffffffffffffffff168114612ea1576099545f82815260a2602052604081206001018054909190612e9b908490614137565b90915550505b80612eab816142d9565b915050612e5e565b505060a6805460ff1916600117905550565b335f90815260a5602052604081205490819003612f245760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a46565b335f90815260a56020526040812055612f3d82826139fe565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a82604051612f7891815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b0316158015906113245750505f90815260a46020526040902060030154610100900460ff161590565b612fd66130fe565b5f81118015612fe757506098548114155b6130335760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a46565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c4c565b6130796130fe565b6001600160a01b0381166130f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a46565b6128f6816134b2565b6033546001600160a01b03163314611d265760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a46565b5f805f6131658585613b3c565b812090969095509350505050565b60655460ff1615611d265760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a46565b805f036131d1575050565b8082035f5b8281101561327d576101008184038111156131f057508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b158015613253575f80fd5b505af1158015613265573d5f803e3d5ffd5b505050506101008301925050610100810190506131d6565b50505050565b60405183515f918291602087019190819084906132a1908590613ba4565b90506002840193505f5b8181101561332557603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f6132fb603c83614310565b6133059087614137565b90505f61331682603a015160f01c90565b979097019650506001016132ab565b506020850282016040525b80156133ee575f61334585603a015160f01c90565b905061335383828b8b613c39565b92505f613364866038015160f01c90565b9050818110156133b65760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a46565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613330565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613422828651613ba4565b90505f5b61343160018361414a565b81101561344757603c9390930192600101613426565b505f613454845160c01c90565b9695505050505050565b60605f80808080613471888a018a614414565b955095509550955095505081871061348f5794506134ab9350505050565b8387106134a35782955050505050506134ab565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166135975760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b611d26613d07565b5f54610100900460ff1661361b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b611d26613d8f565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af11580156136a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136cb9190614208565b5f86815260a460205260409020600101549091506136ea908290614137565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a590915281208054909190613729908490614137565b909155505060405161373c9084906144b1565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b806137cc5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a46565b5f6137db846001015160c01c90565b90505f6137e9856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613818876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a8486138da885160f81c90565b858888866040518663ffffffff1660e01b81526004016138fe9594939291906144dd565b5f6040518083038186803b158015613914575f80fd5b505afa158015613926573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906139569084614310565b613960919061450e565b905061396c818361414a565b60aa5f82825461397c9190614137565b90915550506001600160a01b0384165f90815260a56020526040812080548392906139a8908490614137565b90915550506040516139bb9084906144b1565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613aa5575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613a4d576040519150601f19603f3d011682016040523d82523d5f602084013e613a52565b606091505b5050905080613aa35760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a46565b505b5050565b613ab1613173565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613ae63390565b6040516001600160a01b03909116815260200160405180910390a1565b613b0b613e14565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613ae6565b5f8160f98114613b8e5760405162461bcd60e51b815260206004820152601f60248201527f626174636820686561646572206c656e677468206d75737420626520323439006044820152606401610a46565b6040519150808483378082016040529250929050565b5f613bb0835160f01c90565b9050805f03613beb576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613bf6603c82614310565b613c01906002614137565b8214611324576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03613c48575083613cff565b609b546001600160a01b03165f5b85811015613cf9576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613cbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ce09190614208565b8852506020909601956001948501949384019301613c56565b50859150505b949350505050565b5f54610100900460ff16613d835760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6065805460ff19169055565b5f54610100900460ff16613e0b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b611d26336134b2565b60655460ff16611d265760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a46565b5f60208284031215613e76575f80fd5b5035919050565b80356001600160a01b0381168114613e93575f80fd5b919050565b5f60208284031215613ea8575f80fd5b6134ab82613e7d565b5f8083601f840112613ec1575f80fd5b50813567ffffffffffffffff811115613ed8575f80fd5b602083019150836020828501011115613eef575f80fd5b9250929050565b5f805f60408486031215613f08575f80fd5b833567ffffffffffffffff811115613f1e575f80fd5b613f2a86828701613eb1565b909790965060209590950135949350505050565b5f8060208385031215613f4f575f80fd5b823567ffffffffffffffff811115613f65575f80fd5b613f7185828601613eb1565b90969095509350505050565b5f8060408385031215613f8e575f80fd5b823567ffffffffffffffff80821115613fa5575f80fd5b9084019060c08287031215613fb8575f80fd5b90925060208401359080821115613fcd575f80fd5b50830160608186031215613fdf575f80fd5b809150509250929050565b5f805f805f8060c08789031215613fff575f80fd5b61400887613e7d565b955061401660208801613e7d565b945061402460408801613e7d565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614058575f80fd5b843567ffffffffffffffff8082111561406f575f80fd5b61407b88838901613eb1565b90965094506020870135915080821115614093575f80fd5b506140a087828801613eb1565b95989497509550505050565b80151581146128f6575f80fd5b5f602082840312156140c9575f80fd5b81356134ab816140ac565b5f80604083850312156140e5575f80fd5b823567ffffffffffffffff811681146140fc575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156113245761132461410a565b818103818111156113245761132461410a565b5f6020828403121561416d575f80fd5b81516134ab816140ac565b5f60208284031215614188575f80fd5b813560ff811681146134ab575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126141cb575f80fd5b83018035915067ffffffffffffffff8211156141e5575f80fd5b602001915036819003821315613eef575f80fd5b818382375f9101908152919050565b5f60208284031215614218575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156142b05784516001600160a01b03168352938301939183019160010161428b565b505087604086015284810360608601526142cb81878961421f565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036143095761430961410a565b5060010190565b80820281158282048414176113245761132461410a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112614363575f80fd5b8135602067ffffffffffffffff8083111561438057614380614327565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156143c3576143c3614327565b60405293845260208187018101949081019250878511156143e2575f80fd5b6020870191505b84821015614409576143fa82613e7d565b835291830191908301906143e9565b979650505050505050565b5f805f805f8060c08789031215614429575f80fd5b86359550602087013567ffffffffffffffff80821115614447575f80fd5b6144538a838b01614354565b965060408901359550606089013591508082111561446f575f80fd5b61447b8a838b01614354565b94506080890135935060a0890135915080821115614497575f80fd5b506144a489828a01614354565b9150509295509295509295565b5f82515f5b818110156144d057602081860181015185830152016144b6565b505f920191825250919050565b858152846020820152608060408201525f6144fc60808301858761421f565b90508260608301529695505050505050565b5f82614541577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a diff --git a/bindings/bindings/l1messagequeuewithgaspriceoracle.go b/bindings/bindings/l1messagequeuewithgaspriceoracle.go index 966fbf65e..34bda65f5 100644 --- a/bindings/bindings/l1messagequeuewithgaspriceoracle.go +++ b/bindings/bindings/l1messagequeuewithgaspriceoracle.go @@ -31,8 +31,8 @@ var ( // L1MessageQueueWithGasPriceOracleMetaData contains all meta data concerning the L1MessageQueueWithGasPriceOracle contract. var L1MessageQueueWithGasPriceOracleMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_enforcedTxGateway\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"skippedBitmap\",\"type\":\"uint256\"}],\"name\":\"DequeueTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"DropTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"queueIndex\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldGateway\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newGateway\",\"type\":\"address\"}],\"name\":\"UpdateEnforcedTxGateway\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldGasOracle\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newGasOracle\",\"type\":\"address\"}],\"name\":\"UpdateGasOracle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldL2BaseFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newL2BaseFee\",\"type\":\"uint256\"}],\"name\":\"UpdateL2BaseFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_oldMaxGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newMaxGasLimit\",\"type\":\"uint256\"}],\"name\":\"UpdateMaxGasLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldWhitelistChecker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newWhitelistChecker\",\"type\":\"address\"}],\"name\":\"UpdateWhitelistChecker\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ENFORCED_TX_GATEWAAY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROLLUP_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"appendCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"appendEnforcedTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"calculateIntrinsicGasFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"computeTransactionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"dropCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"estimateCrossDomainMessageFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"}],\"name\":\"getCrossDomainMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_whitelistChecker\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"}],\"name\":\"isMessageDropped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"}],\"name\":\"isMessageSkipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextCrossDomainMessageIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingQueueIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_startIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_skippedBitmap\",\"type\":\"uint256\"}],\"name\":\"popCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newL2BaseFee\",\"type\":\"uint256\"}],\"name\":\"setL2BaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newMaxGasLimit\",\"type\":\"uint256\"}],\"name\":\"updateMaxGasLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newWhitelistChecker\",\"type\":\"address\"}],\"name\":\"updateWhitelistChecker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"whitelistChecker\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60e060405234801562000010575f80fd5b5060405162001aad38038062001aad833981016040819052620000339162000185565b6001600160a01b03831615806200005157506001600160a01b038216155b806200006457506001600160a01b038116155b156200008357604051630ecc6fdf60e41b815260040160405180910390fd5b6200008d620000ab565b6001600160a01b0392831660805290821660a0521660c052620001cc565b5f54610100900460ff1615620001175760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161462000167575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811462000180575f80fd5b919050565b5f805f6060848603121562000198575f80fd5b620001a38462000169565b9250620001b36020850162000169565b9150620001c36040850162000169565b90509250925092565b60805160a05160c05161189a620002135f395f818161036f0152610d5a01525f8181610269015261052401525f81816102e6015281816109e30152610c02015261189a5ff3fe608060405234801561000f575f80fd5b50600436106101a5575f3560e01c80639b159782116100e8578063d5ad4a9711610093578063e172d3a11161006e578063e172d3a1146103ca578063e3176bd5146103e4578063f2fde38b146103ed578063fd0ad31e14610400575f80fd5b8063d5ad4a9714610391578063d99bc80e146103a4578063da35a26f146103b7575f80fd5b8063bb7862ca116100c3578063bb7862ca14610337578063bdc6f0a014610357578063c27606771461036a575f80fd5b80639b15978214610308578063a85006ca1461031b578063ae453cd514610324575f80fd5b80635f9cd92e116101535780638770d7071161012e5780638770d707146102645780638da5cb5b146102b057806391652461146102ce578063927ede2d146102e1575f80fd5b80635f9cd92e14610236578063715018a6146102495780637d82191a14610251575f80fd5b806355f613ce1161018357806355f613ce146102055780635ad9945a1461021a5780635e45da231461022d575f80fd5b806329aa604b146101a95780633e4cbbe6146101cf5780633e6dada1146101e2575b5f80fd5b6101bc6101b73660046114fc565b610408565b6040519081526020015b60405180910390f35b6101bc6101dd366004611536565b610427565b6101f56101f03660046114fc565b6104db565b60405190151581526020016101c6565b61021861021336600461155e565b610521565b005b6101bc6102283660046115cc565b610715565b6101bc60685481565b610218610244366004611648565b610905565b61021861099a565b6101f561025f3660046114fc565b6109ad565b61028b7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c6565b60335473ffffffffffffffffffffffffffffffffffffffff1661028b565b6102186102dc3660046114fc565b6109e0565b61028b7f000000000000000000000000000000000000000000000000000000000000000081565b610218610316366004611661565b610bff565b6101bc60675481565b6101bc6103323660046114fc565b610ce1565b606b5461028b9073ffffffffffffffffffffffffffffffffffffffff1681565b6102186103653660046116b7565b610d57565b61028b7f000000000000000000000000000000000000000000000000000000000000000081565b61021861039f3660046114fc565b610e88565b6102186103b23660046114fc565b610ed6565b6102186103c536600461172a565b610f1c565b6101bc6103d8366004611754565b60100261520801919050565b6101bc60655481565b6102186103fb366004611648565b6110d1565b6066546101bc565b60668181548110610417575f80fd5b5f91825260209091200154905081565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa158015610495573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b99190611793565b156104c557505f6104d5565b6065546104d290836117b9565b90505b92915050565b600881901c5f908152606a6020526040812054600160ff84161b16151580156104d55750600882901c5f90815260696020526040902054600160ff84161b1615156104d5565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146105ab5760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b6101008211156105fd5760405162461bcd60e51b815260206004820152601560248201527f706f7020746f6f206d616e79206d65737361676573000000000000000000000060448201526064016105a2565b826067541461064e5760405162461bcd60e51b815260206004820152601460248201527f737461727420696e646578206d69736d6174636800000000000000000000000060448201526064016105a2565b600883901c5f818152606a6020526040902080546001851b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0193841660ff871681811b9092179092559092919061010081860111156106c557600182015f908152606a6020526040902061010082900385901c90555b50505081830160675560408051848152602081018490529081018290527fc77f792f838ae38399ac31acc3348389aeb110ce7bedf3cfdbdd5e6679267970906060015b60405180910390a1505050565b5f607e816107bf565b5f8161072c57506001919050565b5b81156107425760089190911c9060010161072d565b919050565b80608083106001811461077f5761075d8461071e565b60808101835360018301925084816020036008021b83528083019250506107a0565b848415166001811461079357848353610798565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b600560405101806107d260018c83610747565b90506107e060018983610747565b90506107ec89826107a8565b90506107fa60018b83610747565b905060018614600181146108625760388710600181146108475761081d8861071e565b8060b701845360018401935088816020036008021b8452808401935050878984379187019161085c565b87608001835360018301925087898437918701915b50610873565b6108705f89355f1a84610747565b91505b5061087e8c826107a8565b90508181035f8060388310600181146108b15761089a8461071e565b60f78101600882021b8517935060010191506108bc565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b61090d61116e565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6109a261116e565b6109ab5f6111d5565b565b5f60675482106109be57505f919050565b600882901c5f908152606a6020526040902054600160ff84161b1615156104d5565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610a8b5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e67657200000000000000000000000000000000000000000060648201526084016105a2565b6067548110610adc5760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742064726f702070656e64696e67206d657373616765000000000060448201526064016105a2565b600881901c5f908152606a6020526040902054600160ff83161b16610b435760405162461bcd60e51b815260206004820152601860248201527f64726f70206e6f6e2d736b6970706564206d657373616765000000000000000060448201526064016105a2565b600881901c5f90815260696020526040902054600160ff83161b1615610bab5760405162461bcd60e51b815260206004820152601760248201527f6d65737361676520616c72656164792064726f7070656400000000000000000060448201526064016105a2565b600881901c5f9081526069602052604090208054600160ff84161b1790556040518181527f43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf9060200160405180910390a150565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610caa5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e67657200000000000000000000000000000000000000000060648201526084016105a2565b610cb583838361124b565b3373111100000000000000000000000000000000111101610cda81865f878787611347565b5050505050565b6066545f908210610d345760405162461bcd60e51b815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e676500000000000060448201526064016105a2565b60668281548110610d4757610d476117f5565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610e025760405162461bcd60e51b815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f617465776179000000000000000000000000000000000000000000000000000060648201526084016105a2565b73ffffffffffffffffffffffffffffffffffffffff86163b15610e675760405162461bcd60e51b815260206004820152600860248201527f6f6e6c7920454f4100000000000000000000000000000000000000000000000060448201526064016105a2565b610e7283838361124b565b610e80868686868686611347565b505050505050565b610e9061116e565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c591015b60405180910390a15050565b610ede61116e565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead3663299101610eca565b5f54610100900460ff1615808015610f3a57505f54600160ff909116105b80610f535750303b158015610f5357505f5460ff166001145b610fc55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105a2565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611021575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6110296113f8565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841617905580156110cc575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610708565b505050565b6110d961116e565b73ffffffffffffffffffffffffffffffffffffffff81166111625760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105a2565b61116b816111d5565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146109ab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a2565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6068548311156112c35760405162461bcd60e51b815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d697400000000000000000000000000000000000000000000000000000060648201526084016105a2565b6010810261520801808410156113415760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e736963206761730000000000000000000000000060648201526084016105a2565b50505050565b6066545f61135a8883888a898989610715565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e906113e6908a9087908b908b908b90611822565b60405180910390a35050505050505050565b5f54610100900460ff166114745760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105a2565b6109ab5f54610100900460ff166114f35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105a2565b6109ab336111d5565b5f6020828403121561150c575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610742575f80fd5b5f8060408385031215611547575f80fd5b61155083611513565b946020939093013593505050565b5f805f60608486031215611570575f80fd5b505081359360208301359350604090920135919050565b5f8083601f840112611597575f80fd5b50813567ffffffffffffffff8111156115ae575f80fd5b6020830191508360208285010111156115c5575f80fd5b9250929050565b5f805f805f805f60c0888a0312156115e2575f80fd5b6115eb88611513565b9650602088013595506040880135945061160760608901611513565b93506080880135925060a088013567ffffffffffffffff811115611629575f80fd5b6116358a828b01611587565b989b979a50959850939692959293505050565b5f60208284031215611658575f80fd5b6104d282611513565b5f805f8060608587031215611674575f80fd5b61167d85611513565b935060208501359250604085013567ffffffffffffffff81111561169f575f80fd5b6116ab87828801611587565b95989497509550505050565b5f805f805f8060a087890312156116cc575f80fd5b6116d587611513565b95506116e360208801611513565b94506040870135935060608701359250608087013567ffffffffffffffff81111561170c575f80fd5b61171889828a01611587565b979a9699509497509295939492505050565b5f806040838503121561173b575f80fd5b8235915061174b60208401611513565b90509250929050565b5f8060208385031215611765575f80fd5b823567ffffffffffffffff81111561177b575f80fd5b61178785828601611587565b90969095509350505050565b5f602082840312156117a3575f80fd5b815180151581146117b2575f80fd5b9392505050565b80820281158282048414176104d5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_enforcedTxGateway\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"DequeueTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"DropTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"queueIndex\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldGateway\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newGateway\",\"type\":\"address\"}],\"name\":\"UpdateEnforcedTxGateway\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldGasOracle\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newGasOracle\",\"type\":\"address\"}],\"name\":\"UpdateGasOracle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldL2BaseFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newL2BaseFee\",\"type\":\"uint256\"}],\"name\":\"UpdateL2BaseFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_oldMaxGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newMaxGasLimit\",\"type\":\"uint256\"}],\"name\":\"UpdateMaxGasLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldWhitelistChecker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newWhitelistChecker\",\"type\":\"address\"}],\"name\":\"UpdateWhitelistChecker\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ENFORCED_TX_GATEWAAY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROLLUP_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"appendCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"appendEnforcedTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"calculateIntrinsicGasFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"computeTransactionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"dropCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"estimateCrossDomainMessageFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"}],\"name\":\"getCrossDomainMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_whitelistChecker\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"}],\"name\":\"isMessageDropped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextCrossDomainMessageIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingQueueIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_startIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"popCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newL2BaseFee\",\"type\":\"uint256\"}],\"name\":\"setL2BaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newMaxGasLimit\",\"type\":\"uint256\"}],\"name\":\"updateMaxGasLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newWhitelistChecker\",\"type\":\"address\"}],\"name\":\"updateWhitelistChecker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"whitelistChecker\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x60e060405234801562000010575f80fd5b506040516200194138038062001941833981016040819052620000339162000185565b6001600160a01b03831615806200005157506001600160a01b038216155b806200006457506001600160a01b038116155b156200008357604051630ecc6fdf60e41b815260040160405180910390fd5b6200008d620000ab565b6001600160a01b0392831660805290821660a0521660c052620001cc565b5f54610100900460ff1615620001175760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161462000167575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811462000180575f80fd5b919050565b5f805f6060848603121562000198575f80fd5b620001a38462000169565b9250620001b36020850162000169565b9150620001c36040850162000169565b90509250925092565b60805160a05160c05161172e620002135f395f81816103510152610bfb01525f818161024b015261040c01525f81816102c8015281816108eb0152610aa3015261172e5ff3fe608060405234801561000f575f80fd5b506004361061019a575f3560e01c80639b159782116100e8578063d5ad4a9711610093578063e172d3a11161006e578063e172d3a1146103ac578063e3176bd5146103c6578063f2fde38b146103cf578063fd0ad31e146103e2575f80fd5b8063d5ad4a9714610373578063d99bc80e14610386578063da35a26f14610399575f80fd5b8063bb7862ca116100c3578063bb7862ca14610319578063bdc6f0a014610339578063c27606771461034c575f80fd5b80639b159782146102ea578063a85006ca146102fd578063ae453cd514610306575f80fd5b80635f9cd92e116101485780638da5cb5b116101235780638da5cb5b1461029257806391652461146102b0578063927ede2d146102c3575f80fd5b80635f9cd92e1461022b578063715018a61461023e5780638770d70714610246575f80fd5b80633e6dada1116101785780633e6dada1146101ec5780635ad9945a1461020f5780635e45da2314610222575f80fd5b806329aa604b1461019e5780633c7f5283146101c45780633e4cbbe6146101d9575b5f80fd5b6101b16101ac366004611399565b6103ea565b6040519081526020015b60405180910390f35b6101d76101d23660046113b0565b610409565b005b6101b16101e73660046113f3565b61057a565b6101ff6101fa366004611399565b61062e565b60405190151581526020016101bb565b6101b161021d366004611460565b610650565b6101b160685481565b6101d76102393660046114dc565b610840565b6101d76108d5565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bb565b60335473ffffffffffffffffffffffffffffffffffffffff1661026d565b6101d76102be366004611399565b6108e8565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6101d76102f83660046114f5565b610aa0565b6101b160675481565b6101b1610314366004611399565b610b82565b606b5461026d9073ffffffffffffffffffffffffffffffffffffffff1681565b6101d761034736600461154b565b610bf8565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6101d7610381366004611399565b610d29565b6101d7610394366004611399565b610d6f565b6101d76103a73660046115be565b610db5565b6101b16103ba3660046115e8565b60100261520801919050565b6101b160655481565b6101d76103dd3660046114dc565b610f6e565b6066546101b1565b606681815481106103f9575f80fd5b5f91825260209091200154905081565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146104935760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b6101008111156104e55760405162461bcd60e51b815260206004820152601560248201527f706f7020746f6f206d616e79206d657373616765730000000000000000000000604482015260640161048a565b81606754146105365760405162461bcd60e51b815260206004820152601460248201527f737461727420696e646578206d69736d61746368000000000000000000000000604482015260640161048a565b80820160675560408051838152602081018390527f3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f2691015b60405180910390a15050565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa1580156105e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060c9190611627565b1561061857505f610628565b606554610625908361164d565b90505b92915050565b600881901c5f90815260696020526040812054600160ff84161b161515610628565b5f607e816106fa565b5f8161066757506001919050565b5b811561067d5760089190911c90600101610668565b919050565b8060808310600181146106ba5761069884610659565b60808101835360018301925084816020036008021b83528083019250506106db565b84841516600181146106ce578483536106d3565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b6005604051018061070d60018c83610682565b905061071b60018983610682565b905061072789826106e3565b905061073560018b83610682565b9050600186146001811461079d5760388710600181146107825761075888610659565b8060b701845360018401935088816020036008021b84528084019350508789843791870191610797565b87608001835360018301925087898437918701915b506107ae565b6107ab5f89355f1a84610682565b91505b506107b98c826106e3565b90508181035f8060388310600181146107ec576107d584610659565b60f78101600882021b8517935060010191506107f7565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b61084861100b565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108dd61100b565b6108e65f611072565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146109935760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e676572000000000000000000000000000000000000000000606482015260840161048a565b60675481106109e45760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742064726f702070656e64696e67206d6573736167650000000000604482015260640161048a565b600881901c5f90815260696020526040902054600160ff83161b1615610a4c5760405162461bcd60e51b815260206004820152601760248201527f6d65737361676520616c72656164792064726f70706564000000000000000000604482015260640161048a565b600881901c5f9081526069602052604090208054600160ff84161b1790556040518181527f43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf9060200160405180910390a150565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610b4b5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e676572000000000000000000000000000000000000000000606482015260840161048a565b610b568383836110e8565b3373111100000000000000000000000000000000111101610b7b81865f8787876111e4565b5050505050565b6066545f908210610bd55760405162461bcd60e51b815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e6765000000000000604482015260640161048a565b60668281548110610be857610be8611689565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610ca35760405162461bcd60e51b815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f6174657761790000000000000000000000000000000000000000000000000000606482015260840161048a565b73ffffffffffffffffffffffffffffffffffffffff86163b15610d085760405162461bcd60e51b815260206004820152600860248201527f6f6e6c7920454f41000000000000000000000000000000000000000000000000604482015260640161048a565b610d138383836110e8565b610d218686868686866111e4565b505050505050565b610d3161100b565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c5910161056e565b610d7761100b565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead366329910161056e565b5f54610100900460ff1615808015610dd357505f54600160ff909116105b80610dec5750303b158015610dec57505f5460ff166001145b610e5e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161048a565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610eba575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610ec2611295565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015610f69575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610f7661100b565b73ffffffffffffffffffffffffffffffffffffffff8116610fff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161048a565b61100881611072565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108e65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048a565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6068548311156111605760405162461bcd60e51b815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d6974000000000000000000000000000000000000000000000000000000606482015260840161048a565b6010810261520801808410156111de5760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e7369632067617300000000000000000000000000606482015260840161048a565b50505050565b6066545f6111f78883888a898989610650565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e90611283908a9087908b908b908b906116b6565b60405180910390a35050505050505050565b5f54610100900460ff166113115760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161048a565b6108e65f54610100900460ff166113905760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161048a565b6108e633611072565b5f602082840312156113a9575f80fd5b5035919050565b5f80604083850312156113c1575f80fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461067d575f80fd5b5f8060408385031215611404575f80fd5b61140d836113d0565b946020939093013593505050565b5f8083601f84011261142b575f80fd5b50813567ffffffffffffffff811115611442575f80fd5b602083019150836020828501011115611459575f80fd5b9250929050565b5f805f805f805f60c0888a031215611476575f80fd5b61147f886113d0565b9650602088013595506040880135945061149b606089016113d0565b93506080880135925060a088013567ffffffffffffffff8111156114bd575f80fd5b6114c98a828b0161141b565b989b979a50959850939692959293505050565b5f602082840312156114ec575f80fd5b610625826113d0565b5f805f8060608587031215611508575f80fd5b611511856113d0565b935060208501359250604085013567ffffffffffffffff811115611533575f80fd5b61153f8782880161141b565b95989497509550505050565b5f805f805f8060a08789031215611560575f80fd5b611569876113d0565b9550611577602088016113d0565b94506040870135935060608701359250608087013567ffffffffffffffff8111156115a0575f80fd5b6115ac89828a0161141b565b979a9699509497509295939492505050565b5f80604083850312156115cf575f80fd5b823591506115df602084016113d0565b90509250929050565b5f80602083850312156115f9575f80fd5b823567ffffffffffffffff81111561160f575f80fd5b61161b8582860161141b565b90969095509350505050565b5f60208284031215611637575f80fd5b81518015158114611646575f80fd5b9392505050565b8082028115828204841417610628577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a", } // L1MessageQueueWithGasPriceOracleABI is the input ABI used to generate the binding from. @@ -450,37 +450,6 @@ func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleCallerS return _L1MessageQueueWithGasPriceOracle.Contract.IsMessageDropped(&_L1MessageQueueWithGasPriceOracle.CallOpts, _queueIndex) } -// IsMessageSkipped is a free data retrieval call binding the contract method 0x7d82191a. -// -// Solidity: function isMessageSkipped(uint256 _queueIndex) view returns(bool) -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleCaller) IsMessageSkipped(opts *bind.CallOpts, _queueIndex *big.Int) (bool, error) { - var out []interface{} - err := _L1MessageQueueWithGasPriceOracle.contract.Call(opts, &out, "isMessageSkipped", _queueIndex) - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// IsMessageSkipped is a free data retrieval call binding the contract method 0x7d82191a. -// -// Solidity: function isMessageSkipped(uint256 _queueIndex) view returns(bool) -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleSession) IsMessageSkipped(_queueIndex *big.Int) (bool, error) { - return _L1MessageQueueWithGasPriceOracle.Contract.IsMessageSkipped(&_L1MessageQueueWithGasPriceOracle.CallOpts, _queueIndex) -} - -// IsMessageSkipped is a free data retrieval call binding the contract method 0x7d82191a. -// -// Solidity: function isMessageSkipped(uint256 _queueIndex) view returns(bool) -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleCallerSession) IsMessageSkipped(_queueIndex *big.Int) (bool, error) { - return _L1MessageQueueWithGasPriceOracle.Contract.IsMessageSkipped(&_L1MessageQueueWithGasPriceOracle.CallOpts, _queueIndex) -} - // L2BaseFee is a free data retrieval call binding the contract method 0xe3176bd5. // // Solidity: function l2BaseFee() view returns(uint256) @@ -782,25 +751,25 @@ func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleTransac return _L1MessageQueueWithGasPriceOracle.Contract.Initialize(&_L1MessageQueueWithGasPriceOracle.TransactOpts, _maxGasLimit, _whitelistChecker) } -// PopCrossDomainMessage is a paid mutator transaction binding the contract method 0x55f613ce. +// PopCrossDomainMessage is a paid mutator transaction binding the contract method 0x3c7f5283. // -// Solidity: function popCrossDomainMessage(uint256 _startIndex, uint256 _count, uint256 _skippedBitmap) returns() -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleTransactor) PopCrossDomainMessage(opts *bind.TransactOpts, _startIndex *big.Int, _count *big.Int, _skippedBitmap *big.Int) (*types.Transaction, error) { - return _L1MessageQueueWithGasPriceOracle.contract.Transact(opts, "popCrossDomainMessage", _startIndex, _count, _skippedBitmap) +// Solidity: function popCrossDomainMessage(uint256 _startIndex, uint256 _count) returns() +func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleTransactor) PopCrossDomainMessage(opts *bind.TransactOpts, _startIndex *big.Int, _count *big.Int) (*types.Transaction, error) { + return _L1MessageQueueWithGasPriceOracle.contract.Transact(opts, "popCrossDomainMessage", _startIndex, _count) } -// PopCrossDomainMessage is a paid mutator transaction binding the contract method 0x55f613ce. +// PopCrossDomainMessage is a paid mutator transaction binding the contract method 0x3c7f5283. // -// Solidity: function popCrossDomainMessage(uint256 _startIndex, uint256 _count, uint256 _skippedBitmap) returns() -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleSession) PopCrossDomainMessage(_startIndex *big.Int, _count *big.Int, _skippedBitmap *big.Int) (*types.Transaction, error) { - return _L1MessageQueueWithGasPriceOracle.Contract.PopCrossDomainMessage(&_L1MessageQueueWithGasPriceOracle.TransactOpts, _startIndex, _count, _skippedBitmap) +// Solidity: function popCrossDomainMessage(uint256 _startIndex, uint256 _count) returns() +func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleSession) PopCrossDomainMessage(_startIndex *big.Int, _count *big.Int) (*types.Transaction, error) { + return _L1MessageQueueWithGasPriceOracle.Contract.PopCrossDomainMessage(&_L1MessageQueueWithGasPriceOracle.TransactOpts, _startIndex, _count) } -// PopCrossDomainMessage is a paid mutator transaction binding the contract method 0x55f613ce. +// PopCrossDomainMessage is a paid mutator transaction binding the contract method 0x3c7f5283. // -// Solidity: function popCrossDomainMessage(uint256 _startIndex, uint256 _count, uint256 _skippedBitmap) returns() -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleTransactorSession) PopCrossDomainMessage(_startIndex *big.Int, _count *big.Int, _skippedBitmap *big.Int) (*types.Transaction, error) { - return _L1MessageQueueWithGasPriceOracle.Contract.PopCrossDomainMessage(&_L1MessageQueueWithGasPriceOracle.TransactOpts, _startIndex, _count, _skippedBitmap) +// Solidity: function popCrossDomainMessage(uint256 _startIndex, uint256 _count) returns() +func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleTransactorSession) PopCrossDomainMessage(_startIndex *big.Int, _count *big.Int) (*types.Transaction, error) { + return _L1MessageQueueWithGasPriceOracle.Contract.PopCrossDomainMessage(&_L1MessageQueueWithGasPriceOracle.TransactOpts, _startIndex, _count) } // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. @@ -977,15 +946,14 @@ func (it *L1MessageQueueWithGasPriceOracleDequeueTransactionIterator) Close() er // L1MessageQueueWithGasPriceOracleDequeueTransaction represents a DequeueTransaction event raised by the L1MessageQueueWithGasPriceOracle contract. type L1MessageQueueWithGasPriceOracleDequeueTransaction struct { - StartIndex *big.Int - Count *big.Int - SkippedBitmap *big.Int - Raw types.Log // Blockchain specific contextual infos + StartIndex *big.Int + Count *big.Int + Raw types.Log // Blockchain specific contextual infos } -// FilterDequeueTransaction is a free log retrieval operation binding the contract event 0xc77f792f838ae38399ac31acc3348389aeb110ce7bedf3cfdbdd5e6679267970. +// FilterDequeueTransaction is a free log retrieval operation binding the contract event 0x3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f26. // -// Solidity: event DequeueTransaction(uint256 startIndex, uint256 count, uint256 skippedBitmap) +// Solidity: event DequeueTransaction(uint256 startIndex, uint256 count) func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleFilterer) FilterDequeueTransaction(opts *bind.FilterOpts) (*L1MessageQueueWithGasPriceOracleDequeueTransactionIterator, error) { logs, sub, err := _L1MessageQueueWithGasPriceOracle.contract.FilterLogs(opts, "DequeueTransaction") @@ -995,9 +963,9 @@ func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleFiltere return &L1MessageQueueWithGasPriceOracleDequeueTransactionIterator{contract: _L1MessageQueueWithGasPriceOracle.contract, event: "DequeueTransaction", logs: logs, sub: sub}, nil } -// WatchDequeueTransaction is a free log subscription operation binding the contract event 0xc77f792f838ae38399ac31acc3348389aeb110ce7bedf3cfdbdd5e6679267970. +// WatchDequeueTransaction is a free log subscription operation binding the contract event 0x3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f26. // -// Solidity: event DequeueTransaction(uint256 startIndex, uint256 count, uint256 skippedBitmap) +// Solidity: event DequeueTransaction(uint256 startIndex, uint256 count) func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleFilterer) WatchDequeueTransaction(opts *bind.WatchOpts, sink chan<- *L1MessageQueueWithGasPriceOracleDequeueTransaction) (event.Subscription, error) { logs, sub, err := _L1MessageQueueWithGasPriceOracle.contract.WatchLogs(opts, "DequeueTransaction") @@ -1032,9 +1000,9 @@ func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleFiltere }), nil } -// ParseDequeueTransaction is a log parse operation binding the contract event 0xc77f792f838ae38399ac31acc3348389aeb110ce7bedf3cfdbdd5e6679267970. +// ParseDequeueTransaction is a log parse operation binding the contract event 0x3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f26. // -// Solidity: event DequeueTransaction(uint256 startIndex, uint256 count, uint256 skippedBitmap) +// Solidity: event DequeueTransaction(uint256 startIndex, uint256 count) func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleFilterer) ParseDequeueTransaction(log types.Log) (*L1MessageQueueWithGasPriceOracleDequeueTransaction, error) { event := new(L1MessageQueueWithGasPriceOracleDequeueTransaction) if err := _L1MessageQueueWithGasPriceOracle.contract.UnpackLog(event, "DequeueTransaction", log); err != nil { diff --git a/bindings/bindings/l1messagequeuewithgaspriceoracle_more.go b/bindings/bindings/l1messagequeuewithgaspriceoracle_more.go index 761291539..a58058b80 100644 --- a/bindings/bindings/l1messagequeuewithgaspriceoracle_more.go +++ b/bindings/bindings/l1messagequeuewithgaspriceoracle_more.go @@ -9,11 +9,11 @@ import ( "morph-l2/bindings/solc" ) -const L1MessageQueueWithGasPriceOracleStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1013_storage\"},{\"astId\":1003,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1012_storage\"},{\"astId\":1005,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"l2BaseFee\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_uint256\"},{\"astId\":1006,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"messageQueue\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_bytes32)dyn_storage\"},{\"astId\":1007,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"pendingQueueIndex\",\"offset\":0,\"slot\":\"103\",\"type\":\"t_uint256\"},{\"astId\":1008,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"maxGasLimit\",\"offset\":0,\"slot\":\"104\",\"type\":\"t_uint256\"},{\"astId\":1009,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"droppedMessageBitmap\",\"offset\":0,\"slot\":\"105\",\"type\":\"t_struct(BitMap)1014_storage\"},{\"astId\":1010,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"skippedMessageBitmap\",\"offset\":0,\"slot\":\"106\",\"type\":\"t_mapping(t_uint256,t_uint256)\"},{\"astId\":1011,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"whitelistChecker\",\"offset\":0,\"slot\":\"107\",\"type\":\"t_address\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_bytes32)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"bytes32[]\",\"numberOfBytes\":\"32\"},\"t_array(t_uint256)1012_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1013_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_uint256,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_uint256\"},\"t_struct(BitMap)1014_storage\":{\"encoding\":\"inplace\",\"label\":\"struct BitMapsUpgradeable.BitMap\",\"numberOfBytes\":\"32\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" +const L1MessageQueueWithGasPriceOracleStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1013_storage\"},{\"astId\":1003,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1012_storage\"},{\"astId\":1005,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"l2BaseFee\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_uint256\"},{\"astId\":1006,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"messageQueue\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_bytes32)dyn_storage\"},{\"astId\":1007,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"pendingQueueIndex\",\"offset\":0,\"slot\":\"103\",\"type\":\"t_uint256\"},{\"astId\":1008,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"maxGasLimit\",\"offset\":0,\"slot\":\"104\",\"type\":\"t_uint256\"},{\"astId\":1009,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"droppedMessageBitmap\",\"offset\":0,\"slot\":\"105\",\"type\":\"t_struct(BitMap)1014_storage\"},{\"astId\":1010,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"__skippedMessageBitmap\",\"offset\":0,\"slot\":\"106\",\"type\":\"t_mapping(t_uint256,t_uint256)\"},{\"astId\":1011,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"whitelistChecker\",\"offset\":0,\"slot\":\"107\",\"type\":\"t_address\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_bytes32)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"bytes32[]\",\"numberOfBytes\":\"32\"},\"t_array(t_uint256)1012_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1013_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_uint256,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_uint256\"},\"t_struct(BitMap)1014_storage\":{\"encoding\":\"inplace\",\"label\":\"struct BitMapsUpgradeable.BitMap\",\"numberOfBytes\":\"32\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" var L1MessageQueueWithGasPriceOracleStorageLayout = new(solc.StorageLayout) -var L1MessageQueueWithGasPriceOracleDeployedBin = "0x608060405234801561000f575f80fd5b50600436106101a5575f3560e01c80639b159782116100e8578063d5ad4a9711610093578063e172d3a11161006e578063e172d3a1146103ca578063e3176bd5146103e4578063f2fde38b146103ed578063fd0ad31e14610400575f80fd5b8063d5ad4a9714610391578063d99bc80e146103a4578063da35a26f146103b7575f80fd5b8063bb7862ca116100c3578063bb7862ca14610337578063bdc6f0a014610357578063c27606771461036a575f80fd5b80639b15978214610308578063a85006ca1461031b578063ae453cd514610324575f80fd5b80635f9cd92e116101535780638770d7071161012e5780638770d707146102645780638da5cb5b146102b057806391652461146102ce578063927ede2d146102e1575f80fd5b80635f9cd92e14610236578063715018a6146102495780637d82191a14610251575f80fd5b806355f613ce1161018357806355f613ce146102055780635ad9945a1461021a5780635e45da231461022d575f80fd5b806329aa604b146101a95780633e4cbbe6146101cf5780633e6dada1146101e2575b5f80fd5b6101bc6101b73660046116d0565b610408565b6040519081526020015b60405180910390f35b6101bc6101dd36600461170a565b610427565b6101f56101f03660046116d0565b6104db565b60405190151581526020016101c6565b610218610213366004611732565b610521565b005b6101bc6102283660046117a0565b610763565b6101bc60685481565b61021861024436600461181c565b610953565b6102186109e8565b6101f561025f3660046116d0565b6109fb565b61028b7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c6565b60335473ffffffffffffffffffffffffffffffffffffffff1661028b565b6102186102dc3660046116d0565b610a2e565b61028b7f000000000000000000000000000000000000000000000000000000000000000081565b610218610316366004611835565b610cb5565b6101bc60675481565b6101bc6103323660046116d0565b610db1565b606b5461028b9073ffffffffffffffffffffffffffffffffffffffff1681565b61021861036536600461188b565b610e41565b61028b7f000000000000000000000000000000000000000000000000000000000000000081565b61021861039f3660046116d0565b610fa6565b6102186103b23660046116d0565b610ff4565b6102186103c53660046118fe565b61103a565b6101bc6103d8366004611928565b60100261520801919050565b6101bc60655481565b6102186103fb36600461181c565b611209565b6066546101bc565b60668181548110610417575f80fd5b5f91825260209091200154905081565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa158015610495573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b99190611967565b156104c557505f6104d5565b6065546104d2908361198d565b90505b92915050565b600881901c5f908152606a6020526040812054600160ff84161b16151580156104d55750600882901c5f90815260696020526040902054600160ff84161b1615156104d5565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146105c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b610100821115610631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f706f7020746f6f206d616e79206d65737361676573000000000000000000000060448201526064016105bc565b826067541461069c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f737461727420696e646578206d69736d6174636800000000000000000000000060448201526064016105bc565b600883901c5f818152606a6020526040902080546001851b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0193841660ff871681811b90921790925590929190610100818601111561071357600182015f908152606a6020526040902061010082900385901c90555b50505081830160675560408051848152602081018490529081018290527fc77f792f838ae38399ac31acc3348389aeb110ce7bedf3cfdbdd5e6679267970906060015b60405180910390a1505050565b5f607e8161080d565b5f8161077a57506001919050565b5b81156107905760089190911c9060010161077b565b919050565b8060808310600181146107cd576107ab8461076c565b60808101835360018301925084816020036008021b83528083019250506107ee565b84841516600181146107e1578483536107e6565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b6005604051018061082060018c83610795565b905061082e60018983610795565b905061083a89826107f6565b905061084860018b83610795565b905060018614600181146108b05760388710600181146108955761086b8861076c565b8060b701845360018401935088816020036008021b845280840193505087898437918701916108aa565b87608001835360018301925087898437918701915b506108c1565b6108be5f89355f1a84610795565b91505b506108cc8c826107f6565b90508181035f8060388310600181146108ff576108e88461076c565b60f78101600882021b85179350600101915061090a565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b61095b6112c0565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6109f06112c0565b6109f95f611341565b565b5f6067548210610a0c57505f919050565b600882901c5f908152606a6020526040902054600160ff84161b1615156104d5565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610af3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e67657200000000000000000000000000000000000000000060648201526084016105bc565b6067548110610b5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f63616e6e6f742064726f702070656e64696e67206d657373616765000000000060448201526064016105bc565b600881901c5f908152606a6020526040902054600160ff83161b16610bdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f64726f70206e6f6e2d736b6970706564206d657373616765000000000000000060448201526064016105bc565b600881901c5f90815260696020526040902054600160ff83161b1615610c61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6d65737361676520616c72656164792064726f7070656400000000000000000060448201526064016105bc565b600881901c5f9081526069602052604090208054600160ff84161b1790556040518181527f43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf9060200160405180910390a150565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610d7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e67657200000000000000000000000000000000000000000060648201526084016105bc565b610d858383836113b7565b3373111100000000000000000000000000000000111101610daa81865f8787876114e7565b5050505050565b6066545f908210610e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e676500000000000060448201526064016105bc565b60668281548110610e3157610e316119c9565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610f06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f617465776179000000000000000000000000000000000000000000000000000060648201526084016105bc565b73ffffffffffffffffffffffffffffffffffffffff86163b15610f85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f6f6e6c7920454f4100000000000000000000000000000000000000000000000060448201526064016105bc565b610f908383836113b7565b610f9e8686868686866114e7565b505050505050565b610fae6112c0565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c591015b60405180910390a15050565b610ffc6112c0565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead3663299101610fe8565b5f54610100900460ff161580801561105857505f54600160ff909116105b806110715750303b15801561107157505f5460ff166001145b6110fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105bc565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611159575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b611161611598565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015611204575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610756565b505050565b6112116112c0565b73ffffffffffffffffffffffffffffffffffffffff81166112b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105bc565b6112bd81611341565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146109f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bc565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606854831115611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d697400000000000000000000000000000000000000000000000000000060648201526084016105bc565b6010810261520801808410156114e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e736963206761730000000000000000000000000060648201526084016105bc565b50505050565b6066545f6114fa8883888a898989610763565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e90611586908a9087908b908b908b906119f6565b60405180910390a35050505050505050565b5f54610100900460ff1661162e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105bc565b6109f95f54610100900460ff166116c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105bc565b6109f933611341565b5f602082840312156116e0575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610790575f80fd5b5f806040838503121561171b575f80fd5b611724836116e7565b946020939093013593505050565b5f805f60608486031215611744575f80fd5b505081359360208301359350604090920135919050565b5f8083601f84011261176b575f80fd5b50813567ffffffffffffffff811115611782575f80fd5b602083019150836020828501011115611799575f80fd5b9250929050565b5f805f805f805f60c0888a0312156117b6575f80fd5b6117bf886116e7565b965060208801359550604088013594506117db606089016116e7565b93506080880135925060a088013567ffffffffffffffff8111156117fd575f80fd5b6118098a828b0161175b565b989b979a50959850939692959293505050565b5f6020828403121561182c575f80fd5b6104d2826116e7565b5f805f8060608587031215611848575f80fd5b611851856116e7565b935060208501359250604085013567ffffffffffffffff811115611873575f80fd5b61187f8782880161175b565b95989497509550505050565b5f805f805f8060a087890312156118a0575f80fd5b6118a9876116e7565b95506118b7602088016116e7565b94506040870135935060608701359250608087013567ffffffffffffffff8111156118e0575f80fd5b6118ec89828a0161175b565b979a9699509497509295939492505050565b5f806040838503121561190f575f80fd5b8235915061191f602084016116e7565b90509250929050565b5f8060208385031215611939575f80fd5b823567ffffffffffffffff81111561194f575f80fd5b61195b8582860161175b565b90969095509350505050565b5f60208284031215611977575f80fd5b81518015158114611986575f80fd5b9392505050565b80820281158282048414176104d5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a" +var L1MessageQueueWithGasPriceOracleDeployedBin = "0x608060405234801561000f575f80fd5b506004361061019a575f3560e01c80639b159782116100e8578063d5ad4a9711610093578063e172d3a11161006e578063e172d3a1146103ac578063e3176bd5146103c6578063f2fde38b146103cf578063fd0ad31e146103e2575f80fd5b8063d5ad4a9714610373578063d99bc80e14610386578063da35a26f14610399575f80fd5b8063bb7862ca116100c3578063bb7862ca14610319578063bdc6f0a014610339578063c27606771461034c575f80fd5b80639b159782146102ea578063a85006ca146102fd578063ae453cd514610306575f80fd5b80635f9cd92e116101485780638da5cb5b116101235780638da5cb5b1461029257806391652461146102b0578063927ede2d146102c3575f80fd5b80635f9cd92e1461022b578063715018a61461023e5780638770d70714610246575f80fd5b80633e6dada1116101785780633e6dada1146101ec5780635ad9945a1461020f5780635e45da2314610222575f80fd5b806329aa604b1461019e5780633c7f5283146101c45780633e4cbbe6146101d9575b5f80fd5b6101b16101ac366004611553565b6103ea565b6040519081526020015b60405180910390f35b6101d76101d236600461156a565b610409565b005b6101b16101e73660046115ad565b6105c8565b6101ff6101fa366004611553565b61067c565b60405190151581526020016101bb565b6101b161021d36600461161a565b61069e565b6101b160685481565b6101d7610239366004611696565b61088e565b6101d7610923565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bb565b60335473ffffffffffffffffffffffffffffffffffffffff1661026d565b6101d76102be366004611553565b610936565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6101d76102f83660046116af565b610b3c565b6101b160675481565b6101b1610314366004611553565b610c38565b606b5461026d9073ffffffffffffffffffffffffffffffffffffffff1681565b6101d7610347366004611705565b610cc8565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6101d7610381366004611553565b610e2d565b6101d7610394366004611553565b610e73565b6101d76103a7366004611778565b610eb9565b6101b16103ba3660046117a2565b60100261520801919050565b6101b160655481565b6101d76103dd366004611696565b61108c565b6066546101b1565b606681815481106103f9575f80fd5b5f91825260209091200154905081565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146104ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b610100811115610519576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f706f7020746f6f206d616e79206d65737361676573000000000000000000000060448201526064016104a4565b8160675414610584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f737461727420696e646578206d69736d6174636800000000000000000000000060448201526064016104a4565b80820160675560408051838152602081018390527f3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f2691015b60405180910390a15050565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa158015610636573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065a91906117e1565b1561066657505f610676565b6065546106739083611807565b90505b92915050565b600881901c5f90815260696020526040812054600160ff84161b161515610676565b5f607e81610748565b5f816106b557506001919050565b5b81156106cb5760089190911c906001016106b6565b919050565b806080831060018114610708576106e6846106a7565b60808101835360018301925084816020036008021b8352808301925050610729565b848415166001811461071c57848353610721565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b6005604051018061075b60018c836106d0565b9050610769600189836106d0565b90506107758982610731565b905061078360018b836106d0565b905060018614600181146107eb5760388710600181146107d0576107a6886106a7565b8060b701845360018401935088816020036008021b845280840193505087898437918701916107e5565b87608001835360018301925087898437918701915b506107fc565b6107f95f89355f1a846106d0565b91505b506108078c82610731565b90508181035f80603883106001811461083a57610823846106a7565b60f78101600882021b851793506001019150610845565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b610896611143565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61092b611143565b6109345f6111c4565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146109fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e67657200000000000000000000000000000000000000000060648201526084016104a4565b6067548110610a66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f63616e6e6f742064726f702070656e64696e67206d657373616765000000000060448201526064016104a4565b600881901c5f90815260696020526040902054600160ff83161b1615610ae8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6d65737361676520616c72656164792064726f7070656400000000000000000060448201526064016104a4565b600881901c5f9081526069602052604090208054600160ff84161b1790556040518181527f43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf9060200160405180910390a150565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e67657200000000000000000000000000000000000000000060648201526084016104a4565b610c0c83838361123a565b3373111100000000000000000000000000000000111101610c3181865f87878761136a565b5050505050565b6066545f908210610ca5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e676500000000000060448201526064016104a4565b60668281548110610cb857610cb8611843565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f617465776179000000000000000000000000000000000000000000000000000060648201526084016104a4565b73ffffffffffffffffffffffffffffffffffffffff86163b15610e0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f6f6e6c7920454f4100000000000000000000000000000000000000000000000060448201526064016104a4565b610e1783838361123a565b610e2586868686868661136a565b505050505050565b610e35611143565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c591016105bc565b610e7b611143565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead36632991016105bc565b5f54610100900460ff1615808015610ed757505f54600160ff909116105b80610ef05750303b158015610ef057505f5460ff166001145b610f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104a4565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fd8575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610fe061141b565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015611087575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b611094611143565b73ffffffffffffffffffffffffffffffffffffffff8116611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104a4565b611140816111c4565b50565b60335473ffffffffffffffffffffffffffffffffffffffff163314610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6068548311156112cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d697400000000000000000000000000000000000000000000000000000060648201526084016104a4565b601081026152080180841015611364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e736963206761730000000000000000000000000060648201526084016104a4565b50505050565b6066545f61137d8883888a89898961069e565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e90611409908a9087908b908b908b90611870565b60405180910390a35050505050505050565b5f54610100900460ff166114b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a4565b6109345f54610100900460ff1661154a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a4565b610934336111c4565b5f60208284031215611563575f80fd5b5035919050565b5f806040838503121561157b575f80fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff811681146106cb575f80fd5b5f80604083850312156115be575f80fd5b6115c78361158a565b946020939093013593505050565b5f8083601f8401126115e5575f80fd5b50813567ffffffffffffffff8111156115fc575f80fd5b602083019150836020828501011115611613575f80fd5b9250929050565b5f805f805f805f60c0888a031215611630575f80fd5b6116398861158a565b965060208801359550604088013594506116556060890161158a565b93506080880135925060a088013567ffffffffffffffff811115611677575f80fd5b6116838a828b016115d5565b989b979a50959850939692959293505050565b5f602082840312156116a6575f80fd5b6106738261158a565b5f805f80606085870312156116c2575f80fd5b6116cb8561158a565b935060208501359250604085013567ffffffffffffffff8111156116ed575f80fd5b6116f9878288016115d5565b95989497509550505050565b5f805f805f8060a0878903121561171a575f80fd5b6117238761158a565b95506117316020880161158a565b94506040870135935060608701359250608087013567ffffffffffffffff81111561175a575f80fd5b61176689828a016115d5565b979a9699509497509295939492505050565b5f8060408385031215611789575f80fd5b823591506117996020840161158a565b90509250929050565b5f80602083850312156117b3575f80fd5b823567ffffffffffffffff8111156117c9575f80fd5b6117d5858286016115d5565b90969095509350505050565b5f602082840312156117f1575f80fd5b81518015158114611800575f80fd5b9392505050565b8082028115828204841417610676577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L1MessageQueueWithGasPriceOracleStorageLayoutJSON), L1MessageQueueWithGasPriceOracleStorageLayout); err != nil { diff --git a/bindings/bindings/rollup.go b/bindings/bindings/rollup.go index ac9b469dd..41e21beda 100644 --- a/bindings/bindings/rollup.go +++ b/bindings/bindings/rollup.go @@ -31,13 +31,12 @@ var ( // IRollupBatchDataInput is an auto generated low-level Go binding around an user-defined struct. type IRollupBatchDataInput struct { - Version uint8 - ParentBatchHeader []byte - BlockContexts []byte - SkippedL1MessageBitmap []byte - PrevStateRoot [32]byte - PostStateRoot [32]byte - WithdrawalRoot [32]byte + Version uint8 + ParentBatchHeader []byte + BlockContexts []byte + PrevStateRoot [32]byte + PostStateRoot [32]byte + WithdrawalRoot [32]byte } // IRollupBatchSignatureInput is an auto generated low-level Go binding around an user-defined struct. @@ -49,8 +48,8 @@ type IRollupBatchSignatureInput struct { // RollupMetaData contains all meta data concerning the Rollup contract. var RollupMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIncorrectBatchLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNoBlockInBatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blockContexts\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"skippedL1MessageBitmap\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60a060405234801562000010575f80fd5b50604051620048913803806200489183398101604081905262000033916200010f565b6001600160401b0381166080526200004a62000051565b506200013e565b5f54610100900460ff1615620000bd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200010d575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000120575f80fd5b81516001600160401b038116811462000137575f80fd5b9392505050565b6080516147336200015e5f395f81816105ce015261367001526147335ff3fe6080604052600436106102fb575f3560e01c806388b1ea0911610191578063b3e0a509116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610987578063f2fde38b146109a6578063fb1e8b04146109c5575f80fd5b8063ddd8a3dc14610934578063de8b303514610953578063dff7827e14610972575f80fd5b8063ce5db8d6116100b7578063ce5db8d6146108ed578063d279c19114610902578063d63b354914610921575f80fd5b8063b3e0a5091461089c578063bedb86fb146108bb578063cd4edc69146108da575f80fd5b8063a479265d1161013c578063b31a77d311610117578063b31a77d314610849578063b34844251461085e578063b35dac4e1461087d575f80fd5b8063a479265d146107ea578063a4f209b0146107ff578063abc8d68d1461081e575f80fd5b8063910129d41161016c578063910129d41461076c57806397fc007c1461079d578063a415d8dc146107bc575f80fd5b806388b1ea09146106865780638da5cb5b1461069f5780638f1d3776146106bc575f80fd5b80632571098d116102515780635ef7a94a116101fc5780636c578c1d116101d75780636c578c1d14610634578063715018a614610653578063728cdbca14610667575f80fd5b80635ef7a94a1461055d5780635f77cf1d146105bd57806368589dfa14610609575f80fd5b80633e001b661161022c5780633e001b661461051257806357e0af6c146105275780635c975abb14610546575f80fd5b80632571098d146104915780632b7ac3f3146104bc5780633b70c18a146104f3575f80fd5b8063121dcd50116102b157806318af3b2b1161028c57806318af3b2b1461041757806321e2f9e0146104475780632362f03e14610466575f80fd5b8063121dcd50146103ce57806313361101146103e357806318463fb014610402575f80fd5b80630ceb6780116102e15780630ceb67801461036c57806310d445831461038d578063116a1f42146103ac575f80fd5b806304d7721514610306578063059def6114610349575f80fd5b3661030257005b5f80fd5b348015610311575f80fd5b50610334610320366004614046565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610354575f80fd5b5061035e609d5481565b604051908152602001610340565b348015610377575f80fd5b5061038b610386366004614078565b6109da565b005b348015610398575f80fd5b5061038b6103a73660046140d6565b610aac565b3480156103b7575f80fd5b506103346103c6366004614046565b609d54101590565b3480156103d9575f80fd5b5061035e609e5481565b3480156103ee575f80fd5b5061038b6103fd36600461411e565b610e05565b34801561040d575f80fd5b5061035e60a75481565b348015610422575f80fd5b50610334610431366004614046565b5f90815260a26020526040902060010154421090565b348015610452575f80fd5b50610334610461366004614046565b6112fa565b348015610471575f80fd5b5061035e610480366004614046565b60a16020525f908152604090205481565b34801561049c575f80fd5b5061035e6104ab366004614046565b60a06020525f908152604090205481565b3480156104c7575f80fd5b50609c546104db906001600160a01b031681565b6040516001600160a01b039091168152602001610340565b3480156104fe575f80fd5b50609b546104db906001600160a01b031681565b34801561051d575f80fd5b5061035e60aa5481565b348015610532575f80fd5b5061038b610541366004614046565b611328565b348015610551575f80fd5b5060655460ff16610334565b348015610568575f80fd5b5061059d610577366004614046565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610340565b3480156105c8575f80fd5b506105f07f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610340565b348015610614575f80fd5b5061035e610623366004614046565b60ab6020525f908152604090205481565b34801561063f575f80fd5b5061038b61064e366004614078565b6113d3565b34801561065e575f80fd5b5061038b611490565b348015610672575f80fd5b5061038b61068136600461415d565b6114a3565b348015610691575f80fd5b5060a6546103349060ff1681565b3480156106aa575f80fd5b506033546001600160a01b03166104db565b3480156106c7575f80fd5b506107286106d6366004614046565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c001610340565b348015610777575f80fd5b50610334610786366004614046565b5f90815260a4602052604090206003015460ff1690565b3480156107a8575f80fd5b5061038b6107b7366004614078565b6117e6565b3480156107c7575f80fd5b506103346107d6366004614078565b609f6020525f908152604090205460ff1681565b3480156107f5575f80fd5b5061035e60995481565b34801561080a575f80fd5b5061038b610819366004614046565b6118c9565b348015610829575f80fd5b5061035e610838366004614078565b60a56020525f908152604090205481565b348015610854575f80fd5b5061035e60a85481565b348015610869575f80fd5b5061038b6108783660046141b8565b611979565b348015610888575f80fd5b5061038b610897366004614078565b611bbe565b3480156108a7575f80fd5b5061038b6108b636600461411e565b611c17565b3480156108c6575f80fd5b5061038b6108d536600461422c565b611f19565b61038b6108e8366004614247565b612074565b3480156108f8575f80fd5b5061035e60985481565b34801561090d575f80fd5b5061038b61091c366004614078565b612640565b61038b61092f36600461427d565b6126ff565b34801561093f575f80fd5b506097546104db906001600160a01b031681565b34801561095e575f80fd5b5061033461096d366004614046565b613029565b34801561097d575f80fd5b5061035e609a5481565b348015610992575f80fd5b5061038b6109a1366004614046565b613073565b3480156109b1575f80fd5b5061038b6109c0366004614078565b613116565b3480156109d0575f80fd5b5061035e60a95481565b6109e26131a3565b6001600160a01b0381165f908152609f602052604090205460ff1615610a4f5760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ab46131a3565b5f8111610b035760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a46565b5f80610b0f85856131fd565b915091505f610b22836001015160c01c90565b5f81815260a160205260409020549091508214610b815760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b5f60a181610b8f8785614317565b81526020019081526020015f205414610c0f5760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a46565b609d548111610c865760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b610c9160018261432a565b609e555b8315610dfd57604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610cdd81613029565b15610d38575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d28908490614317565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610db5575060a85481145b15610dbf575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610c95575b505050505050565b60a85415610e555760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b610e5d613218565b5f80610e6984846131fd565b915091505f610e7c836001015160c01c90565b5f81815260a160205260409020549091508214610edb5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b610ee4816112fa565b610f305760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b610f3981613029565b15610f865760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003015460ff1615610fe75760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a46565b5f81815260a260205260409020600101544210156110475760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a46565b605983015160a05f61105a60018561432a565b81526020019081526020015f2054146110b55760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f81815260a06020526040902054156111105760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a46565b80609d54600101146111645760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b609d819055600160a35f611179866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111c660f98401601185015160c01c600986015160c01c61326b565b60a25f6111d460018461432a565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061120d908461432a565b81526020019081526020015f205f905560a45f60018361122d919061432a565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d6112d6866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061132257505f82815260a1602052604090205415155b92915050565b6113306131a3565b5f8111801561134157506099548114155b61138d5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a46565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b6113db6131a3565b6001600160a01b0381165f908152609f602052604090205460ff166114425760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a46565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610aa1565b6114986131a3565b6114a15f613334565b565b5f54610100900460ff16158080156114c157505f54600160ff909116105b806114da5750303b1580156114da57505f5460ff166001145b61154c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a46565b5f805460ff19166001179055801561158a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b03861615806115a757506001600160a01b038516155b156115de576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166116345760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a46565b61163c61339d565b611644613421565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156117dd575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6117ee6131a3565b6001600160a01b038116158015906118145750609c546001600160a01b03828116911614155b6118605760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a46565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b6118d16131a3565b5f811180156118e1575060648111155b80156118ef575060a9548114155b61193b5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a46565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b022391016113c7565b60a854156119c95760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b6119d1613218565b5f806119dd86866131fd565b915091505f6119f0836001015160c01c90565b5f81815260a160205260409020549091508214611a4f5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b611a5881613029565b611aa45760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff191690556099546002909101544291611afd91614317565b11611b73575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152611b6e918391906134a5565b6117dd565b611b7e838686613601565b6117dd81336040518060400160405280600d81526020017f50726f6f662073756363657373000000000000000000000000000000000000008152506137b4565b611bc66131a3565b60aa80545f909155611bd88282613880565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d8791016113c7565b611c1f6131a3565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415611c965760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a46565b5f80611ca284846131fd565b915091505f611cb5836001015160c01c90565b90505f611cc3846079015190565b905080611d125760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a46565b600984015160c01c15611d675760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a46565b5f611d73856019015190565b03611dc05760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a46565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014611dec856039015190565b14611e395760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a46565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b611f216131a3565b801561204257611f2f61392b565b60a65460ff16156120015760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091611f83908490614317565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b61204a613985565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612024565b50565b335f908152609f602052604090205460ff166120d25760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a46565b60a854156121225760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b61212a613218565b60a65460ff161561217d5760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a46565b8167ffffffffffffffff16609d54106121d85760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a16020526040902054811461223f5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b6122528267ffffffffffffffff166112fa565b61229e5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b0316156123195760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a2602052604090206001015442106123a95760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a46565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061241d919061433d565b34101561246c5760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b9976346040516125be91815260200190565b60405180910390a35f609d5460016125d69190614317565b90505b609e54811161262e578267ffffffffffffffff16811461261c576099545f82815260a2602052604081206001018054909190612616908490614317565b90915550505b8061262681614354565b9150506125d9565b505060a6805460ff1916600117905550565b335f90815260a560205260408120549081900361269f5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a46565b335f90815260a560205260408120556126b88282613880565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a826040516126f391815260200190565b60405180910390a25050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561276b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061278f919061438b565b6127db5760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a46565b60a8541561282b5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b612833613218565b61284060208301836143a6565b60ff16156128905760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a46565b5f61289e60408401846143c6565b915050806128ee5760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a46565b608083013561293f5760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a46565b60a08301356129905760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a46565b5f806129a76129a260208701876143c6565b6131fd565b915091505f6129ba836001015160c01c90565b90505f60a1816129cb846001614317565b81526020019081526020015f205414612a265760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a46565b609e548114612a775760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b5f81815260a160205260409020548214612ad35760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a46565b5f81815260ab6020526040902054608087013514612b335760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f612b42846011015160c01c90565b90505f8080612ba1612b5760408c018c6143c6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150612b9c905060608f018f6143c6565b6139be565b948501949384019392509050612bba60608b018b6143c6565b905061010060ff85010460200214612c145760405162461bcd60e51b815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a46565b600194909401935f804915612c2a575f49612c4c565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b90505f612c5c60608d018d6143c6565b612c68915060f9614317565b90506040519850602081028901604052612c96898d5f016020810190612c8e91906143a6565b60ff16613b3f565b60c087811b60018b015285811b60098b015286811b60118b015260198a0184905260808d013560598b015260a08d013560798b01528c013560998a0152612d0389612ce460208e018e6143c6565b604051612cf2929190614427565b604051809103902060b99190910152565b60d98901889052612d2089612d1b60608f018f6143c6565b613b46565b603989018290528089205f88815260a1602090815260408083209390935560ab905290812060a08e0135905560a65460ff1615612d865760a7545f90815260a460205260409020600201546099544291612d7991614317565b612d83919061432a565b90505b60405180608001604052804281526020018260985442612da69190614317565b612db09190614317565b8152602001612e018f8060400190612dc891906143c6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613b5292505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015612e75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e99919061433d565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590612f0190612efb908f018f6143c6565b5f613ba9565b5f8e8060400190612f1291906143c6565b6040518663ffffffff1660e01b8152600401612f3295949392919061447d565b602060405180830381865afa158015612f4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f71919061438b565b612fe35760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b5f81815260a460205260408120546801000000000000000090046001600160a01b0316158015906113225750505f90815260a46020526040902060030154610100900460ff161590565b61307b6131a3565b5f8111801561308c57506098548114155b6130d85760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a46565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a43791016113c7565b61311e6131a3565b6001600160a01b03811661319a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a46565b61207181613334565b6033546001600160a01b031633146114a15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a46565b5f805f61320a8585613bfd565b812090969095509350505050565b60655460ff16156114a15760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a46565b805f0361327757505050565b8082035f805b83811015610dfd5761010081850381111561329757508084035b8651609b546040517f55f613ce0000000000000000000000000000000000000000000000000000000081526004810187905260248101849052604481018390526020909901989194506001600160a01b0316906355f613ce906064015f604051808303815f87803b15801561330a575f80fd5b505af115801561331c573d5f803e3d5ffd5b5050505061010084019350506101008101905061327d565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166134195760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6114a1613cd4565b5f54610100900460ff1661349d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6114a1613d5c565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af1158015613529573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061354d919061433d565b5f86815260a4602052604090206001015490915061356c908290614317565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a5909152812080549091906135ab908490614317565b90915550506040516135be9084906144f0565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8061364e5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a46565b5f61365d846001015160c01c90565b90505f61366b856039015190565b90505f7f000000000000000000000000000000000000000000000000000000000000000061369a876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a84861375c885160f81c90565b858888866040518663ffffffff1660e01b815260040161378095949392919061451c565b5f6040518083038186803b158015613796575f80fd5b505afa1580156137a8573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906137d8908461454d565b6137e29190614564565b90506137ee818361432a565b60aa5f8282546137fe9190614317565b90915550506001600160a01b0384165f90815260a560205260408120805483929061382a908490614317565b909155505060405161383d9084906144f0565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613927575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146138cf576040519150601f19603f3d011682016040523d82523d5f602084013e6138d4565b606091505b50509050806139255760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a46565b505b5050565b613933613218565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586139683390565b6040516001600160a01b03909116815260200160405180910390a1565b61398d613de1565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613968565b60405185515f918291602089019190819084906139dc908590613e33565b90506002840193505f5b81811015613a6057603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613a36603c8361454d565b613a409087614317565b90505f613a5182603a015160f01c90565b979097019650506001016139e6565b506020850282016040525b8015613b2b575f613a8085603a015160f01c90565b9050613a9083828d8d8d8d613ec8565b92505f613aa1866038015160f01c90565b905081811015613af35760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a46565b50998a01999890980197603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613a6b565b508190039020989197509095505050505050565b8082535050565b808260f9850137505050565b5f805f6020840190506002810191505f613b6d828651613e33565b90505f5b613b7c60018361432a565b811015613b9257603c9390930192600101613b71565b505f613b9f845160c01c90565b9695505050505050565b60605f80808080613bbc888a018a614689565b9550955095509550955050818710613bda579450613bf69350505050565b838710613bee578295505050505050613bf6565b509293505050505b9392505050565b5f8160f9811015613c505760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a46565b6040519150808483378082016040525f613c6e836009015160c01c90565b905061010060ff82010460200260f9018214613ccc5760405162461bcd60e51b815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610a46565b509250929050565b5f54610100900460ff16613d505760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6065805460ff19169055565b5f54610100900460ff16613dd85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6114a133613334565b60655460ff166114a15760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a46565b5f613e3f835160f01c90565b9050805f03613e7a576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e85603c8261454d565b613e90906002614317565b8214611322576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f855f03613ed7575085613b9f565b609b546001600160a01b03165f80805b89811015613fbd5760ff89169150600889901c811580613f05575082155b15613f14578060200288013593505b600184841c165f03613fac576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018a90525f906001600160a01b0387169063ae453cd590602401602060405180830381865afa158015613f7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fa2919061433d565b8d52506020909b019a5b506001988901989788019701613ee7565b505060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88011681811c600116156140385760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f7420736b6970206c617374204c31206d65737361676500000000006044820152606401610a46565b509798975050505050505050565b5f60208284031215614056575f80fd5b5035919050565b80356001600160a01b0381168114614073575f80fd5b919050565b5f60208284031215614088575f80fd5b613bf68261405d565b5f8083601f8401126140a1575f80fd5b50813567ffffffffffffffff8111156140b8575f80fd5b6020830191508360208285010111156140cf575f80fd5b9250929050565b5f805f604084860312156140e8575f80fd5b833567ffffffffffffffff8111156140fe575f80fd5b61410a86828701614091565b909790965060209590950135949350505050565b5f806020838503121561412f575f80fd5b823567ffffffffffffffff811115614145575f80fd5b61415185828601614091565b90969095509350505050565b5f805f805f8060c08789031215614172575f80fd5b61417b8761405d565b95506141896020880161405d565b94506141976040880161405d565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f80604085870312156141cb575f80fd5b843567ffffffffffffffff808211156141e2575f80fd5b6141ee88838901614091565b90965094506020870135915080821115614206575f80fd5b5061421387828801614091565b95989497509550505050565b8015158114612071575f80fd5b5f6020828403121561423c575f80fd5b8135613bf68161421f565b5f8060408385031215614258575f80fd5b823567ffffffffffffffff8116811461426f575f80fd5b946020939093013593505050565b5f806040838503121561428e575f80fd5b823567ffffffffffffffff808211156142a5575f80fd5b9084019060e082870312156142b8575f80fd5b909250602084013590808211156142cd575f80fd5b508301606081860312156142df575f80fd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115611322576113226142ea565b81810381811115611322576113226142ea565b5f6020828403121561434d575f80fd5b5051919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614384576143846142ea565b5060010190565b5f6020828403121561439b575f80fd5b8151613bf68161421f565b5f602082840312156143b6575f80fd5b813560ff81168114613bf6575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126143f9575f80fd5b83018035915067ffffffffffffffff821115614413575f80fd5b6020019150368190038213156140cf575f80fd5b818382375f9101908152919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156144c75784516001600160a01b0316835293830193918301916001016144a2565b505087604086015284810360608601526144e2818789614436565b9a9950505050505050505050565b5f82515f5b8181101561450f57602081860181015185830152016144f5565b505f920191825250919050565b858152846020820152608060408201525f61453b608083018587614436565b90508260608301529695505050505050565b8082028115828204841417611322576113226142ea565b5f82614597577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145d8575f80fd5b8135602067ffffffffffffffff808311156145f5576145f561459c565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156146385761463861459c565b6040529384526020818701810194908101925087851115614657575f80fd5b6020870191505b8482101561467e5761466f8261405d565b8352918301919083019061465e565b979650505050505050565b5f805f805f8060c0878903121561469e575f80fd5b86359550602087013567ffffffffffffffff808211156146bc575f80fd5b6146c88a838b016145c9565b96506040890135955060608901359150808211156146e4575f80fd5b6146f08a838b016145c9565b94506080890135935060a089013591508082111561470c575f80fd5b5061471989828a016145c9565b915050929550929550929556fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIncorrectBatchLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNoBlockInBatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blockContexts\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x60a060405234801562000010575f80fd5b50604051620046b1380380620046b183398101604081905262000033916200010f565b6001600160401b0381166080526200004a62000051565b506200013e565b5f54610100900460ff1615620000bd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200010d575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000120575f80fd5b81516001600160401b038116811462000137575f80fd5b9392505050565b6080516145536200015e5f395f81816105e101526137ee01526145535ff3fe6080604052600436106102fb575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610987578063f2fde38b146109a6578063fb1e8b04146109c5575f80fd5b8063ddd8a3dc14610934578063de8b303514610953578063dff7827e14610972575f80fd5b8063cd4edc69116100b7578063cd4edc69146108ed578063ce5db8d614610900578063d279c19114610915575f80fd5b8063b35dac4e14610890578063b3e0a509146108af578063bedb86fb146108ce575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d14610831578063b31a77d31461085c578063b348442514610871575f80fd5b8063a415d8dc146107cf578063a479265d146107fd578063a4f209b014610812575f80fd5b80638f1d37761161016c5780638f1d3776146106cf578063910129d41461077f57806397fc007c146107b0575f80fd5b8063728cdbca1461067a57806388b1ea09146106995780638da5cb5b146106b2575f80fd5b80632571098d116102515780635c975abb116101fc57806368589dfa116101d757806368589dfa1461061c5780636c578c1d14610647578063715018a614610666575f80fd5b80635c975abb146105595780635ef7a94a146105705780635f77cf1d146105d0575f80fd5b80633e001b661161022c5780633e001b66146105125780634a8d544f1461052757806357e0af6c1461053a575f80fd5b80632571098d146104915780632b7ac3f3146104bc5780633b70c18a146104f3575f80fd5b8063121dcd50116102b157806318af3b2b1161028c57806318af3b2b1461041757806321e2f9e0146104475780632362f03e14610466575f80fd5b8063121dcd50146103ce57806313361101146103e357806318463fb014610402575f80fd5b80630ceb6780116102e15780630ceb67801461036c57806310d445831461038d578063116a1f42146103ac575f80fd5b806304d7721514610306578063059def6114610349575f80fd5b3661030257005b5f80fd5b348015610311575f80fd5b50610334610320366004613e66565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610354575f80fd5b5061035e609d5481565b604051908152602001610340565b348015610377575f80fd5b5061038b610386366004613e98565b6109da565b005b348015610398575f80fd5b5061038b6103a7366004613ef6565b610aac565b3480156103b7575f80fd5b506103346103c6366004613e66565b609d54101590565b3480156103d9575f80fd5b5061035e609e5481565b3480156103ee575f80fd5b5061038b6103fd366004613f3e565b610e05565b34801561040d575f80fd5b5061035e60a75481565b348015610422575f80fd5b50610334610431366004613e66565b5f90815260a26020526040902060010154421090565b348015610452575f80fd5b50610334610461366004613e66565b6112fc565b348015610471575f80fd5b5061035e610480366004613e66565b60a16020525f908152604090205481565b34801561049c575f80fd5b5061035e6104ab366004613e66565b60a06020525f908152604090205481565b3480156104c7575f80fd5b50609c546104db906001600160a01b031681565b6040516001600160a01b039091168152602001610340565b3480156104fe575f80fd5b50609b546104db906001600160a01b031681565b34801561051d575f80fd5b5061035e60aa5481565b61038b610535366004613f7d565b61132a565b348015610545575f80fd5b5061038b610554366004613e66565b611bad565b348015610564575f80fd5b5060655460ff16610334565b34801561057b575f80fd5b506105b061058a366004613e66565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610340565b3480156105db575f80fd5b506106037f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610340565b348015610627575f80fd5b5061035e610636366004613e66565b60ab6020525f908152604090205481565b348015610652575f80fd5b5061038b610661366004613e98565b611c58565b348015610671575f80fd5b5061038b611d15565b348015610685575f80fd5b5061038b610694366004613fea565b611d28565b3480156106a4575f80fd5b5060a6546103349060ff1681565b3480156106bd575f80fd5b506033546001600160a01b03166104db565b3480156106da575f80fd5b5061073b6106e9366004613e66565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c001610340565b34801561078a575f80fd5b50610334610799366004613e66565b5f90815260a4602052604090206003015460ff1690565b3480156107bb575f80fd5b5061038b6107ca366004613e98565b61206b565b3480156107da575f80fd5b506103346107e9366004613e98565b609f6020525f908152604090205460ff1681565b348015610808575f80fd5b5061035e60995481565b34801561081d575f80fd5b5061038b61082c366004613e66565b61214e565b34801561083c575f80fd5b5061035e61084b366004613e98565b60a56020525f908152604090205481565b348015610867575f80fd5b5061035e60a85481565b34801561087c575f80fd5b5061038b61088b366004614045565b6121fe565b34801561089b575f80fd5b5061038b6108aa366004613e98565b612443565b3480156108ba575f80fd5b5061038b6108c9366004613f3e565b61249c565b3480156108d9575f80fd5b5061038b6108e83660046140b9565b61279e565b61038b6108fb3660046140d4565b6128f9565b34801561090b575f80fd5b5061035e60985481565b348015610920575f80fd5b5061038b61092f366004613e98565b612ec5565b34801561093f575f80fd5b506097546104db906001600160a01b031681565b34801561095e575f80fd5b5061033461096d366004613e66565b612f84565b34801561097d575f80fd5b5061035e609a5481565b348015610992575f80fd5b5061038b6109a1366004613e66565b612fce565b3480156109b1575f80fd5b5061038b6109c0366004613e98565b613071565b3480156109d0575f80fd5b5061035e60a95481565b6109e26130fe565b6001600160a01b0381165f908152609f602052604090205460ff1615610a4f5760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ab46130fe565b5f8111610b035760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a46565b5f80610b0f8585613158565b915091505f610b22836001015160c01c90565b5f81815260a160205260409020549091508214610b815760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b5f60a181610b8f8785614137565b81526020019081526020015f205414610c0f5760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a46565b609d548111610c865760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b610c9160018261414a565b609e555b8315610dfd57604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610cdd81612f84565b15610d38575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d28908490614137565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610db5575060a85481145b15610dbf575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610c95575b505050505050565b60a85415610e555760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b610e5d613173565b5f80610e698484613158565b915091505f610e7c836001015160c01c90565b5f81815260a160205260409020549091508214610edb5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b610ee4816112fc565b610f305760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b610f3981612f84565b15610f865760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003015460ff1615610fe75760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a46565b5f81815260a260205260409020600101544210156110475760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a46565b605983015160a05f61105a60018561414a565b81526020019081526020015f2054146110b55760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f81815260a06020526040902054156111105760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a46565b80609d54600101146111645760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b609d819055600160a35f611179866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111c86111bb846011015160c01c90565b600985015160c01c6131c6565b60a25f6111d660018461414a565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061120f908461414a565b81526020019081526020015f205f905560a45f60018361122f919061414a565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d6112d8866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061132457505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ba919061415d565b6114065760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a46565b60a854156114565760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b61145e613173565b61146b6020830183614178565b60ff16156114bb5760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a46565b5f6114c96040840184614198565b915050806115195760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a46565b606083013561156a5760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a46565b60808301356115bb5760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a46565b5f806115d26115cd6020870187614198565b613158565b915091505f6115e5836001015160c01c90565b90505f60a1816115f6846001614137565b81526020019081526020015f2054146116515760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a46565b609e5481146116a25760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b5f81815260a1602052604090205482146116fe5760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a46565b5f81815260ab602052604090205460608701351461175e5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f61176d846011015160c01c90565b90505f80806117bf61178260408c018c614198565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792508891506132839050565b600196909601959485019493840193925090505f8049156117e1575f49611803565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f961182e8961182660208f018f614178565b60ff16613400565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a015261189d8961187e60208e018e614198565b60405161188c9291906141f9565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff161561190a5760a7545f90815260a4602052604090206002015460995442916118fd91614137565b611907919061414a565b90505b6040518060800160405280428152602001826098544261192a9190614137565b6119349190614137565b81526020016119858f806040019061194c9190614198565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061340792505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156119f9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1d9190614208565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590611a8590611a7f908f018f614198565b5f61345e565b5f8e8060400190611a969190614198565b6040518663ffffffff1660e01b8152600401611ab6959493929190614266565b602060405180830381865afa158015611ad1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611af5919061415d565b611b675760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611bb56130fe565b5f81118015611bc657506099548114155b611c125760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a46565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b611c606130fe565b6001600160a01b0381165f908152609f602052604090205460ff16611cc75760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a46565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610aa1565b611d1d6130fe565b611d265f6134b2565b565b5f54610100900460ff1615808015611d4657505f54600160ff909116105b80611d5f5750303b158015611d5f57505f5460ff166001145b611dd15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a46565b5f805460ff191660011790558015611e0f575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0386161580611e2c57506001600160a01b038516155b15611e63576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038716611eb95760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a46565b611ec161351b565b611ec961359f565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015612062575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6120736130fe565b6001600160a01b038116158015906120995750609c546001600160a01b03828116911614155b6120e55760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a46565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b6121566130fe565b5f81118015612166575060648111155b8015612174575060a9548114155b6121c05760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a46565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c4c565b60a8541561224e5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b612256613173565b5f806122628686613158565b915091505f612275836001015160c01c90565b5f81815260a1602052604090205490915082146122d45760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b6122dd81612f84565b6123295760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff19169055609954600290910154429161238291614137565b116123f8575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f757400000000000000000000000000000000000000000000000000918301919091526123f391839190613623565b612062565b61240383868661377f565b61206281336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613932565b61244b6130fe565b60aa80545f90915561245d82826139fe565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c4c565b6124a46130fe565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561251b5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a46565b5f806125278484613158565b915091505f61253a836001015160c01c90565b90505f612548846079015190565b9050806125975760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a46565b600984015160c01c156125ec5760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a46565b5f6125f8856019015190565b036126455760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a46565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014612671856039015190565b146126be5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a46565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b6127a66130fe565b80156128c7576127b4613aa9565b60a65460ff16156128865760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612808908490614137565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b6128cf613b03565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336128a9565b50565b335f908152609f602052604090205460ff166129575760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a46565b60a854156129a75760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b6129af613173565b60a65460ff1615612a025760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a46565b8167ffffffffffffffff16609d5410612a5d5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a160205260409020548114612ac45760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b612ad78267ffffffffffffffff166112fc565b612b235760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612b9e5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a260205260409020600101544210612c2e5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a46565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ca29190614208565b341015612cf15760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b997634604051612e4391815260200190565b60405180910390a35f609d546001612e5b9190614137565b90505b609e548111612eb3578267ffffffffffffffff168114612ea1576099545f82815260a2602052604081206001018054909190612e9b908490614137565b90915550505b80612eab816142d9565b915050612e5e565b505060a6805460ff1916600117905550565b335f90815260a5602052604081205490819003612f245760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a46565b335f90815260a56020526040812055612f3d82826139fe565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a82604051612f7891815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b0316158015906113245750505f90815260a46020526040902060030154610100900460ff161590565b612fd66130fe565b5f81118015612fe757506098548114155b6130335760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a46565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c4c565b6130796130fe565b6001600160a01b0381166130f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a46565b6128f6816134b2565b6033546001600160a01b03163314611d265760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a46565b5f805f6131658585613b3c565b812090969095509350505050565b60655460ff1615611d265760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a46565b805f036131d1575050565b8082035f5b8281101561327d576101008184038111156131f057508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b158015613253575f80fd5b505af1158015613265573d5f803e3d5ffd5b505050506101008301925050610100810190506131d6565b50505050565b60405183515f918291602087019190819084906132a1908590613ba4565b90506002840193505f5b8181101561332557603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f6132fb603c83614310565b6133059087614137565b90505f61331682603a015160f01c90565b979097019650506001016132ab565b506020850282016040525b80156133ee575f61334585603a015160f01c90565b905061335383828b8b613c39565b92505f613364866038015160f01c90565b9050818110156133b65760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a46565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613330565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613422828651613ba4565b90505f5b61343160018361414a565b81101561344757603c9390930192600101613426565b505f613454845160c01c90565b9695505050505050565b60605f80808080613471888a018a614414565b955095509550955095505081871061348f5794506134ab9350505050565b8387106134a35782955050505050506134ab565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166135975760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b611d26613d07565b5f54610100900460ff1661361b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b611d26613d8f565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af11580156136a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136cb9190614208565b5f86815260a460205260409020600101549091506136ea908290614137565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a590915281208054909190613729908490614137565b909155505060405161373c9084906144b1565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b806137cc5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a46565b5f6137db846001015160c01c90565b90505f6137e9856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613818876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a8486138da885160f81c90565b858888866040518663ffffffff1660e01b81526004016138fe9594939291906144dd565b5f6040518083038186803b158015613914575f80fd5b505afa158015613926573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906139569084614310565b613960919061450e565b905061396c818361414a565b60aa5f82825461397c9190614137565b90915550506001600160a01b0384165f90815260a56020526040812080548392906139a8908490614137565b90915550506040516139bb9084906144b1565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613aa5575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613a4d576040519150601f19603f3d011682016040523d82523d5f602084013e613a52565b606091505b5050905080613aa35760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a46565b505b5050565b613ab1613173565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613ae63390565b6040516001600160a01b03909116815260200160405180910390a1565b613b0b613e14565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613ae6565b5f8160f98114613b8e5760405162461bcd60e51b815260206004820152601f60248201527f626174636820686561646572206c656e677468206d75737420626520323439006044820152606401610a46565b6040519150808483378082016040529250929050565b5f613bb0835160f01c90565b9050805f03613beb576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613bf6603c82614310565b613c01906002614137565b8214611324576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03613c48575083613cff565b609b546001600160a01b03165f5b85811015613cf9576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613cbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ce09190614208565b8852506020909601956001948501949384019301613c56565b50859150505b949350505050565b5f54610100900460ff16613d835760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6065805460ff19169055565b5f54610100900460ff16613e0b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b611d26336134b2565b60655460ff16611d265760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a46565b5f60208284031215613e76575f80fd5b5035919050565b80356001600160a01b0381168114613e93575f80fd5b919050565b5f60208284031215613ea8575f80fd5b6134ab82613e7d565b5f8083601f840112613ec1575f80fd5b50813567ffffffffffffffff811115613ed8575f80fd5b602083019150836020828501011115613eef575f80fd5b9250929050565b5f805f60408486031215613f08575f80fd5b833567ffffffffffffffff811115613f1e575f80fd5b613f2a86828701613eb1565b909790965060209590950135949350505050565b5f8060208385031215613f4f575f80fd5b823567ffffffffffffffff811115613f65575f80fd5b613f7185828601613eb1565b90969095509350505050565b5f8060408385031215613f8e575f80fd5b823567ffffffffffffffff80821115613fa5575f80fd5b9084019060c08287031215613fb8575f80fd5b90925060208401359080821115613fcd575f80fd5b50830160608186031215613fdf575f80fd5b809150509250929050565b5f805f805f8060c08789031215613fff575f80fd5b61400887613e7d565b955061401660208801613e7d565b945061402460408801613e7d565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614058575f80fd5b843567ffffffffffffffff8082111561406f575f80fd5b61407b88838901613eb1565b90965094506020870135915080821115614093575f80fd5b506140a087828801613eb1565b95989497509550505050565b80151581146128f6575f80fd5b5f602082840312156140c9575f80fd5b81356134ab816140ac565b5f80604083850312156140e5575f80fd5b823567ffffffffffffffff811681146140fc575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156113245761132461410a565b818103818111156113245761132461410a565b5f6020828403121561416d575f80fd5b81516134ab816140ac565b5f60208284031215614188575f80fd5b813560ff811681146134ab575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126141cb575f80fd5b83018035915067ffffffffffffffff8211156141e5575f80fd5b602001915036819003821315613eef575f80fd5b818382375f9101908152919050565b5f60208284031215614218575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156142b05784516001600160a01b03168352938301939183019160010161428b565b505087604086015284810360608601526142cb81878961421f565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036143095761430961410a565b5060010190565b80820281158282048414176113245761132461410a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112614363575f80fd5b8135602067ffffffffffffffff8083111561438057614380614327565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156143c3576143c3614327565b60405293845260208187018101949081019250878511156143e2575f80fd5b6020870191505b84821015614409576143fa82613e7d565b835291830191908301906143e9565b979650505050505050565b5f805f805f8060c08789031215614429575f80fd5b86359550602087013567ffffffffffffffff80821115614447575f80fd5b6144538a838b01614354565b965060408901359550606089013591508082111561446f575f80fd5b61447b8a838b01614354565b94506080890135935060a0890135915080821115614497575f80fd5b506144a489828a01614354565b9150509295509295509295565b5f82515f5b818110156144d057602081860181015185830152016144b6565b505f920191825250919050565b858152846020820152608060408201525f6144fc60808301858761421f565b90508260608301529695505050505050565b5f82614541577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a", } // RollupABI is the input ABI used to generate the binding from. @@ -1261,23 +1260,23 @@ func (_Rollup *RollupTransactorSession) ClaimReward(receiver common.Address) (*t return _Rollup.Contract.ClaimReward(&_Rollup.TransactOpts, receiver) } -// CommitBatch is a paid mutator transaction binding the contract method 0xd63b3549. +// CommitBatch is a paid mutator transaction binding the contract method 0x4a8d544f. // -// Solidity: function commitBatch((uint8,bytes,bytes,bytes,bytes32,bytes32,bytes32) batchDataInput, (uint256,bytes,bytes) batchSignatureInput) payable returns() +// Solidity: function commitBatch((uint8,bytes,bytes,bytes32,bytes32,bytes32) batchDataInput, (uint256,bytes,bytes) batchSignatureInput) payable returns() func (_Rollup *RollupTransactor) CommitBatch(opts *bind.TransactOpts, batchDataInput IRollupBatchDataInput, batchSignatureInput IRollupBatchSignatureInput) (*types.Transaction, error) { return _Rollup.contract.Transact(opts, "commitBatch", batchDataInput, batchSignatureInput) } -// CommitBatch is a paid mutator transaction binding the contract method 0xd63b3549. +// CommitBatch is a paid mutator transaction binding the contract method 0x4a8d544f. // -// Solidity: function commitBatch((uint8,bytes,bytes,bytes,bytes32,bytes32,bytes32) batchDataInput, (uint256,bytes,bytes) batchSignatureInput) payable returns() +// Solidity: function commitBatch((uint8,bytes,bytes,bytes32,bytes32,bytes32) batchDataInput, (uint256,bytes,bytes) batchSignatureInput) payable returns() func (_Rollup *RollupSession) CommitBatch(batchDataInput IRollupBatchDataInput, batchSignatureInput IRollupBatchSignatureInput) (*types.Transaction, error) { return _Rollup.Contract.CommitBatch(&_Rollup.TransactOpts, batchDataInput, batchSignatureInput) } -// CommitBatch is a paid mutator transaction binding the contract method 0xd63b3549. +// CommitBatch is a paid mutator transaction binding the contract method 0x4a8d544f. // -// Solidity: function commitBatch((uint8,bytes,bytes,bytes,bytes32,bytes32,bytes32) batchDataInput, (uint256,bytes,bytes) batchSignatureInput) payable returns() +// Solidity: function commitBatch((uint8,bytes,bytes,bytes32,bytes32,bytes32) batchDataInput, (uint256,bytes,bytes) batchSignatureInput) payable returns() func (_Rollup *RollupTransactorSession) CommitBatch(batchDataInput IRollupBatchDataInput, batchSignatureInput IRollupBatchSignatureInput) (*types.Transaction, error) { return _Rollup.Contract.CommitBatch(&_Rollup.TransactOpts, batchDataInput, batchSignatureInput) } diff --git a/bindings/bindings/rollup_more.go b/bindings/bindings/rollup_more.go index 96e82c601..df9c64775 100644 --- a/bindings/bindings/rollup_more.go +++ b/bindings/bindings/rollup_more.go @@ -13,7 +13,7 @@ const RollupStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"co var RollupStorageLayout = new(solc.StorageLayout) -var RollupDeployedBin = "0x6080604052600436106102fb575f3560e01c806388b1ea0911610191578063b3e0a509116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109e2578063f2fde38b14610a01578063fb1e8b0414610a20575f80fd5b8063ddd8a3dc14610982578063de8b3035146109ae578063dff7827e146109cd575f80fd5b8063ce5db8d6116100b7578063ce5db8d61461093b578063d279c19114610950578063d63b35491461096f575f80fd5b8063b3e0a509146108ea578063bedb86fb14610909578063cd4edc6914610928575f80fd5b8063a479265d1161013c578063b31a77d311610117578063b31a77d314610897578063b3484425146108ac578063b35dac4e146108cb575f80fd5b8063a479265d14610838578063a4f209b01461084d578063abc8d68d1461086c575f80fd5b8063910129d41161016c578063910129d4146107ba57806397fc007c146107eb578063a415d8dc1461080a575f80fd5b806388b1ea09146106ad5780638da5cb5b146106c65780638f1d3776146106f0575f80fd5b80632571098d116102515780635ef7a94a116101fc5780636c578c1d116101d75780636c578c1d1461065b578063715018a61461067a578063728cdbca1461068e575f80fd5b80635ef7a94a146105845780635f77cf1d146105e457806368589dfa14610630575f80fd5b80633e001b661161022c5780633e001b661461053957806357e0af6c1461054e5780635c975abb1461056d575f80fd5b80632571098d146104915780632b7ac3f3146104bc5780633b70c18a1461050d575f80fd5b8063121dcd50116102b157806318af3b2b1161028c57806318af3b2b1461041757806321e2f9e0146104475780632362f03e14610466575f80fd5b8063121dcd50146103ce57806313361101146103e357806318463fb014610402575f80fd5b80630ceb6780116102e15780630ceb67801461036c57806310d445831461038d578063116a1f42146103ac575f80fd5b806304d7721514610306578063059def6114610349575f80fd5b3661030257005b5f80fd5b348015610311575f80fd5b50610334610320366004614ab8565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610354575f80fd5b5061035e609d5481565b604051908152602001610340565b348015610377575f80fd5b5061038b610386366004614af7565b610a35565b005b348015610398575f80fd5b5061038b6103a7366004614b55565b610b59565b3480156103b7575f80fd5b506103346103c6366004614ab8565b609d54101590565b3480156103d9575f80fd5b5061035e609e5481565b3480156103ee575f80fd5b5061038b6103fd366004614b9d565b610f45565b34801561040d575f80fd5b5061035e60a75481565b348015610422575f80fd5b50610334610431366004614ab8565b5f90815260a26020526040902060010154421090565b348015610452575f80fd5b50610334610461366004614ab8565b611542565b348015610471575f80fd5b5061035e610480366004614ab8565b60a16020525f908152604090205481565b34801561049c575f80fd5b5061035e6104ab366004614ab8565b60a06020525f908152604090205481565b3480156104c7575f80fd5b50609c546104e89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610340565b348015610518575f80fd5b50609b546104e89073ffffffffffffffffffffffffffffffffffffffff1681565b348015610544575f80fd5b5061035e60aa5481565b348015610559575f80fd5b5061038b610568366004614ab8565b611570565b348015610578575f80fd5b5060655460ff16610334565b34801561058f575f80fd5b506105c461059e366004614ab8565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610340565b3480156105ef575f80fd5b506106177f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610340565b34801561063b575f80fd5b5061035e61064a366004614ab8565b60ab6020525f908152604090205481565b348015610666575f80fd5b5061038b610675366004614af7565b611635565b348015610685575f80fd5b5061038b611744565b348015610699575f80fd5b5061038b6106a8366004614bdc565b611757565b3480156106b8575f80fd5b5060a6546103349060ff1681565b3480156106d1575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166104e8565b3480156106fb575f80fd5b5061076961070a366004614ab8565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff8316936801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16929060ff8082169161010090041686565b6040805167ffffffffffffffff909716875273ffffffffffffffffffffffffffffffffffffffff909516602087015293850192909252606084015215156080830152151560a082015260c001610340565b3480156107c5575f80fd5b506103346107d4366004614ab8565b5f90815260a4602052604090206003015460ff1690565b3480156107f6575f80fd5b5061038b610805366004614af7565b611b20565b348015610815575f80fd5b50610334610824366004614af7565b609f6020525f908152604090205460ff1681565b348015610843575f80fd5b5061035e60995481565b348015610858575f80fd5b5061038b610867366004614ab8565b611c44565b348015610877575f80fd5b5061035e610886366004614af7565b60a56020525f908152604090205481565b3480156108a2575f80fd5b5061035e60a85481565b3480156108b7575f80fd5b5061038b6108c6366004614c37565b611d0e565b3480156108d6575f80fd5b5061038b6108e5366004614af7565b611fdd565b3480156108f5575f80fd5b5061038b610904366004614b9d565b612043565b348015610914575f80fd5b5061038b610923366004614cab565b6123c7565b61038b610936366004614cc6565b61255a565b348015610946575f80fd5b5061035e60985481565b34801561095b575f80fd5b5061038b61096a366004614af7565b612c6f565b61038b61097d366004614cfc565b612d55565b34801561098d575f80fd5b506097546104e89073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109b9575f80fd5b506103346109c8366004614ab8565b6137f8565b3480156109d8575f80fd5b5061035e609a5481565b3480156109ed575f80fd5b5061038b6109fc366004614ab8565b61384f565b348015610a0c575f80fd5b5061038b610a1b366004614af7565b61390c565b348015610a2b575f80fd5b5061035e60a95481565b610a3d6139c0565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1615610ad1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610b616139c0565b5f8111610bca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610ac8565b5f80610bd68585613a41565b915091505f610be9836001015160c01c90565b5f81815260a160205260409020549091508214610c62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b5f60a181610c708785614d96565b81526020019081526020015f205414610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610ac8565b609d548111610d9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610ac8565b610da6600182614da9565b609e555b8315610f3d57604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610df2816137f8565b15610e78575f81815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091610e4a908490614d96565b909155505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ef5575060a85481145b15610eff575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610daa575b505050505050565b60a85415610faf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b610fb7613a5c565b5f80610fc38484613a41565b915091505f610fd6836001015160c01c90565b5f81815260a16020526040902054909150821461104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b61105881611542565b6110be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610ac8565b6110c7816137f8565b1561112e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610ac8565b5f81815260a4602052604090206003015460ff16156111a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610ac8565b5f81815260a26020526040902060010154421015611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610ac8565b605983015160a05f611236600185614da9565b81526020019081526020015f2054146112ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610ac8565b5f81815260a0602052604090205415611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610ac8565b80609d546001011461138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610ac8565b609d819055600160a35f6113a3866099015190565b815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905560798301515f82815260a0602052604090205561140e60f98401601185015160c01c600986015160c01c613ac9565b60a25f61141c600184614da9565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906114559084614da9565b81526020019081526020015f205f905560a45f6001836114759190614da9565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d61151e866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061156a57505f82815260a1602052604090205415155b92915050565b6115786139c0565b5f8111801561158957506099548114155b6115ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610ac8565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b61163d6139c0565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff166116cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610ac8565b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610b4e565b61174c6139c0565b6117555f613b9f565b565b5f54610100900460ff161580801561177557505f54600160ff909116105b8061178e5750303b15801561178e57505f5460ff166001145b61181a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ac8565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611876575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff861615806118ad575073ffffffffffffffffffffffffffffffffffffffff8516155b156118e4576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8716611961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610ac8565b611969613c15565b611971613cb3565b6097805473ffffffffffffffffffffffffffffffffffffffff808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015611b17575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b611b286139c0565b73ffffffffffffffffffffffffffffffffffffffff811615801590611b685750609c5473ffffffffffffffffffffffffffffffffffffffff828116911614155b611bce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610ac8565b609c805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b611c4c6139c0565b5f81118015611c5c575060648111155b8015611c6a575060a9548114155b611cd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610ac8565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611629565b60a85415611d78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b611d80613a5c565b5f80611d8c8686613a41565b915091505f611d9f836001015160c01c90565b5f81815260a160205260409020549091508214611e18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b611e21816137f8565b611e87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610ac8565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556099546002909101544291611efe91614d96565b11611f92575f81815260a460209081526040808320600390810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152611f8d91839190613d51565b611b17565b611f9d838686613ed4565b611b1781336040518060400160405280600d81526020017f50726f6f662073756363657373000000000000000000000000000000000000008152506140ae565b611fe56139c0565b60aa80545f909155611ff78282614194565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611629565b61204b6139c0565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea54156120dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610ac8565b5f806120e88484613a41565b915091505f6120fb836001015160c01c90565b90505f612109846079015190565b905080612172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610ac8565b600984015160c01c156121e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610ac8565b5f6121ed856019015190565b03612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610ac8565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014612280856039015190565b146122e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610ac8565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b6123cf6139c0565b8015612528576123dd614266565b60a65460ff16156124da5760a7545f90815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a5909252822080549192909161243e908490614d96565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a150565b6125306142eb565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336124fd565b50565b335f908152609f602052604090205460ff166125d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610ac8565b60a8541561263c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b612644613a5c565b60a65460ff16156126b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610ac8565b8167ffffffffffffffff16609d5410612726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610ac8565b67ffffffffffffffff82165f90815260a1602052604090205481146127a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b6127ba8267ffffffffffffffff16611542565b612820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610ac8565b67ffffffffffffffff82165f90815260a4602052604090205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16156128c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610ac8565b67ffffffffffffffff82165f90815260a26020526040902060010154421061296c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610ac8565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129fa9190614dbc565b341015612a63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610ac8565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a49095529690962094518554925173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009093169290921792909217905573ffffffffffffffffffffffffffffffffffffffff168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b997634604051612bcf91815260200190565b60405180910390a35f609d546001612be79190614d96565b90505b609e548111612c3f578267ffffffffffffffff168114612c2d576099545f82815260a2602052604081206001018054909190612c27908490614d96565b90915550505b80612c3781614dd3565b915050612bea565b505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b335f90815260a5602052604081205490819003612ce8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610ac8565b335f90815260a56020526040812055612d018282614194565b8173ffffffffffffffffffffffffffffffffffffffff167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a82604051612d4991815260200190565b60405180910390a25050565b60975473ffffffffffffffffffffffffffffffffffffffff166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015612ddb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dff9190614e0a565b612e65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610ac8565b60a85415612ecf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b612ed7613a5c565b612ee46020830183614e25565b60ff1615612f4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610ac8565b5f612f5c6040840184614e45565b91505080612fc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610ac8565b6080830135613031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610ac8565b60a083013561309c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610ac8565b5f806130b36130ae6020870187614e45565b613a41565b915091505f6130c6836001015160c01c90565b90505f60a1816130d7846001614d96565b81526020019081526020015f20541461314c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610ac8565b609e5481146131b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610ac8565b5f81815260a16020526040902054821461322d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610ac8565b5f81815260ab60205260409020546080870135146132a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610ac8565b5f6132b6846011015160c01c90565b90505f80806133156132cb60408c018c614e45565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150613310905060608f018f614e45565b614342565b94850194938401939250905061332e60608b018b614e45565b905061010060ff850104602002146133a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610ac8565b600194909401935f8049156133b8575f496133da565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b90505f6133ea60608d018d614e45565b6133f6915060f9614d96565b90506040519850602081028901604052613424898d5f01602081019061341c9190614e25565b60ff166144dd565b60c087811b60018b015285811b60098b015286811b60118b015260198a0184905260808d013560598b015260a08d013560798b01528c013560998a01526134918961347260208e018e614e45565b604051613480929190614ea6565b604051809103902060b99190910152565b60d989018890526134ae896134a960608f018f614e45565b6144e4565b603989018290528089205f88815260a1602090815260408083209390935560ab905290812060a08e0135905560a65460ff16156135145760a7545f90815260a46020526040902060020154609954429161350791614d96565b6135119190614da9565b90505b604051806080016040528042815260200182609854426135349190614d96565b61353e9190614d96565b815260200161358f8f80604001906135569190614e45565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506144f092505050565b815260975460209091019073ffffffffffffffffffffffffffffffffffffffff1663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa15801561361d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136419190614dbc565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e89905560975473ffffffffffffffffffffffffffffffffffffffff1692506374fe27b791508c35906136b6906136b0908f018f614e45565b5f614547565b5f8e80604001906136c79190614e45565b6040518663ffffffff1660e01b81526004016136e7959493929190614efc565b602060405180830381865afa158015613702573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137269190614e0a565b6137b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610ac8565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b5f81815260a4602052604081205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff161580159061156a5750505f90815260a46020526040902060030154610100900460ff161590565b6138576139c0565b5f8111801561386857506098548114155b6138ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610ac8565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611629565b6139146139c0565b73ffffffffffffffffffffffffffffffffffffffff81166139b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610ac8565b61255781613b9f565b60335473ffffffffffffffffffffffffffffffffffffffff163314611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ac8565b5f805f613a4e858561459b565b812090969095509350505050565b60655460ff1615611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610ac8565b805f03613ad557505050565b8082035f805b83811015610f3d57610100818503811115613af557508084035b8651609b546040517f55f613ce00000000000000000000000000000000000000000000000000000000815260048101879052602481018490526044810183905260209099019891945073ffffffffffffffffffffffffffffffffffffffff16906355f613ce906064015f604051808303815f87803b158015613b75575f80fd5b505af1158015613b87573d5f803e3d5ffd5b50505050610100840193505061010081019050613adb565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b6117556146a6565b5f54610100900460ff16613d49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b611755614766565b60a88390555f83815260a460205260408082205460975491517f45bc4d10000000000000000000000000000000000000000000000000000000008152600481018690526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff908116939216906345bc4d10906024016020604051808303815f875af1158015613de2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e069190614dbc565b5f86815260a46020526040902060010154909150613e25908290614d96565b5f86815260a4602090815260408083205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16835260a590915281208054909190613e71908490614d96565b9091555050604051613e84908490614f7c565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff84169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610ac8565b5f613f4a846001015160c01c90565b90505f613f58856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613f87876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c5490915073ffffffffffffffffffffffffffffffffffffffff16632c09a848614056885160f81c90565b858888866040518663ffffffff1660e01b815260040161407a959493929190614fa8565b5f6040518083038186803b158015614090575f80fd5b505afa1580156140a2573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906140d29084614fd9565b6140dc9190614ff0565b90506140e88183614da9565b60aa5f8282546140f89190614d96565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f90815260a5602052604081208054839290614131908490614d96565b9091555050604051614144908490614f7c565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff86169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015614262575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f81146141f0576040519150601f19603f3d011682016040523d82523d5f602084013e6141f5565b606091505b5050905080614260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610ac8565b505b5050565b61426e613a5c565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586142c13390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6142f3614805565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336142c1565b60405185515f91829160208901919081908490614360908590614871565b90506002840193505f5b818110156143e457603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f6143ba603c83614fd9565b6143c49087614d96565b90505f6143d582603a015160f01c90565b9790970196505060010161436a565b506020850282016040525b80156144c9575f61440485603a015160f01c90565b905061441483828d8d8d8d614906565b92505f614425866038015160f01c90565b905081811015614491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610ac8565b50998a01999890980197603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016143ef565b508190039020989197509095505050505050565b8082535050565b808260f9850137505050565b5f805f6020840190506002810191505f61450b828651614871565b90505f5b61451a600183614da9565b81101561453057603c939093019260010161450f565b505f61453d845160c01c90565b9695505050505050565b60605f8080808061455a888a018a615115565b95509550955095509550508187106145785794506145949350505050565b83871061458c578295505050505050614594565b509293505050505b9392505050565b5f8160f9811015614608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610ac8565b6040519150808483378082016040525f614626836009015160c01c90565b905061010060ff82010460200260f901821461469e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f77726f6e67206269746d6170206c656e677468000000000000000000000000006044820152606401610ac8565b509250929050565b5f54610100900460ff1661473c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff166147fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b61175533613b9f565b60655460ff16611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610ac8565b5f61487d835160f01c90565b9050805f036148b8576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6148c3603c82614fd9565b6148ce906002614d96565b821461156a576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f855f0361491557508561453d565b609b5473ffffffffffffffffffffffffffffffffffffffff165f80805b89811015614a155760ff89169150600889901c811580614950575082155b1561495f578060200288013593505b600184841c165f03614a04576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018a90525f9073ffffffffffffffffffffffffffffffffffffffff87169063ae453cd590602401602060405180830381865afa1580156149d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149fa9190614dbc565b8d52506020909b019a5b506001988901989788019701614932565b505060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88011681811c60011615614aaa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f63616e6e6f7420736b6970206c617374204c31206d65737361676500000000006044820152606401610ac8565b509798975050505050505050565b5f60208284031215614ac8575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114614af2575f80fd5b919050565b5f60208284031215614b07575f80fd5b61459482614acf565b5f8083601f840112614b20575f80fd5b50813567ffffffffffffffff811115614b37575f80fd5b602083019150836020828501011115614b4e575f80fd5b9250929050565b5f805f60408486031215614b67575f80fd5b833567ffffffffffffffff811115614b7d575f80fd5b614b8986828701614b10565b909790965060209590950135949350505050565b5f8060208385031215614bae575f80fd5b823567ffffffffffffffff811115614bc4575f80fd5b614bd085828601614b10565b90969095509350505050565b5f805f805f8060c08789031215614bf1575f80fd5b614bfa87614acf565b9550614c0860208801614acf565b9450614c1660408801614acf565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614c4a575f80fd5b843567ffffffffffffffff80821115614c61575f80fd5b614c6d88838901614b10565b90965094506020870135915080821115614c85575f80fd5b50614c9287828801614b10565b95989497509550505050565b8015158114612557575f80fd5b5f60208284031215614cbb575f80fd5b813561459481614c9e565b5f8060408385031215614cd7575f80fd5b823567ffffffffffffffff81168114614cee575f80fd5b946020939093013593505050565b5f8060408385031215614d0d575f80fd5b823567ffffffffffffffff80821115614d24575f80fd5b9084019060e08287031215614d37575f80fd5b90925060208401359080821115614d4c575f80fd5b50830160608186031215614d5e575f80fd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561156a5761156a614d69565b8181038181111561156a5761156a614d69565b5f60208284031215614dcc575f80fd5b5051919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e0357614e03614d69565b5060010190565b5f60208284031215614e1a575f80fd5b815161459481614c9e565b5f60208284031215614e35575f80fd5b813560ff81168114614594575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614e78575f80fd5b83018035915067ffffffffffffffff821115614e92575f80fd5b602001915036819003821315614b4e575f80fd5b818382375f9101908152919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b81811015614f5357845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101614f21565b50508760408601528481036060860152614f6e818789614eb5565b9a9950505050505050505050565b5f82515f5b81811015614f9b5760208186018101518583015201614f81565b505f920191825250919050565b858152846020820152608060408201525f614fc7608083018587614eb5565b90508260608301529695505050505050565b808202811582820484141761156a5761156a614d69565b5f82615023577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112615064575f80fd5b8135602067ffffffffffffffff8083111561508157615081615028565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156150c4576150c4615028565b60405293845260208187018101949081019250878511156150e3575f80fd5b6020870191505b8482101561510a576150fb82614acf565b835291830191908301906150ea565b979650505050505050565b5f805f805f8060c0878903121561512a575f80fd5b86359550602087013567ffffffffffffffff80821115615148575f80fd5b6151548a838b01615055565b9650604089013595506060890135915080821115615170575f80fd5b61517c8a838b01615055565b94506080890135935060a0890135915080821115615198575f80fd5b506151a589828a01615055565b915050929550929550929556fea164736f6c6343000818000a" +var RollupDeployedBin = "0x6080604052600436106102fb575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109e2578063f2fde38b14610a01578063fb1e8b0414610a20575f80fd5b8063ddd8a3dc14610982578063de8b3035146109ae578063dff7827e146109cd575f80fd5b8063cd4edc69116100b7578063cd4edc691461093b578063ce5db8d61461094e578063d279c19114610963575f80fd5b8063b35dac4e146108de578063b3e0a509146108fd578063bedb86fb1461091c575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d1461087f578063b31a77d3146108aa578063b3484425146108bf575f80fd5b8063a415d8dc1461081d578063a479265d1461084b578063a4f209b014610860575f80fd5b80638f1d37761161016c5780638f1d377614610703578063910129d4146107cd57806397fc007c146107fe575f80fd5b8063728cdbca146106a157806388b1ea09146106c05780638da5cb5b146106d9575f80fd5b80632571098d116102515780635c975abb116101fc57806368589dfa116101d757806368589dfa146106435780636c578c1d1461066e578063715018a61461068d575f80fd5b80635c975abb146105805780635ef7a94a146105975780635f77cf1d146105f7575f80fd5b80633e001b661161022c5780633e001b66146105395780634a8d544f1461054e57806357e0af6c14610561575f80fd5b80632571098d146104915780632b7ac3f3146104bc5780633b70c18a1461050d575f80fd5b8063121dcd50116102b157806318af3b2b1161028c57806318af3b2b1461041757806321e2f9e0146104475780632362f03e14610466575f80fd5b8063121dcd50146103ce57806313361101146103e357806318463fb014610402575f80fd5b80630ceb6780116102e15780630ceb67801461036c57806310d445831461038d578063116a1f42146103ac575f80fd5b806304d7721514610306578063059def6114610349575f80fd5b3661030257005b5f80fd5b348015610311575f80fd5b5061033461032036600461488a565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610354575f80fd5b5061035e609d5481565b604051908152602001610340565b348015610377575f80fd5b5061038b6103863660046148c9565b610a35565b005b348015610398575f80fd5b5061038b6103a7366004614927565b610b59565b3480156103b7575f80fd5b506103346103c636600461488a565b609d54101590565b3480156103d9575f80fd5b5061035e609e5481565b3480156103ee575f80fd5b5061038b6103fd36600461496f565b610f45565b34801561040d575f80fd5b5061035e60a75481565b348015610422575f80fd5b5061033461043136600461488a565b5f90815260a26020526040902060010154421090565b348015610452575f80fd5b5061033461046136600461488a565b611544565b348015610471575f80fd5b5061035e61048036600461488a565b60a16020525f908152604090205481565b34801561049c575f80fd5b5061035e6104ab36600461488a565b60a06020525f908152604090205481565b3480156104c7575f80fd5b50609c546104e89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610340565b348015610518575f80fd5b50609b546104e89073ffffffffffffffffffffffffffffffffffffffff1681565b348015610544575f80fd5b5061035e60aa5481565b61038b61055c3660046149ae565b611572565b34801561056c575f80fd5b5061038b61057b36600461488a565b611f54565b34801561058b575f80fd5b5060655460ff16610334565b3480156105a2575f80fd5b506105d76105b136600461488a565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610340565b348015610602575f80fd5b5061062a7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610340565b34801561064e575f80fd5b5061035e61065d36600461488a565b60ab6020525f908152604090205481565b348015610679575f80fd5b5061038b6106883660046148c9565b612019565b348015610698575f80fd5b5061038b612128565b3480156106ac575f80fd5b5061038b6106bb366004614a1b565b61213b565b3480156106cb575f80fd5b5060a6546103349060ff1681565b3480156106e4575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166104e8565b34801561070e575f80fd5b5061077c61071d36600461488a565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff8316936801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16929060ff8082169161010090041686565b6040805167ffffffffffffffff909716875273ffffffffffffffffffffffffffffffffffffffff909516602087015293850192909252606084015215156080830152151560a082015260c001610340565b3480156107d8575f80fd5b506103346107e736600461488a565b5f90815260a4602052604090206003015460ff1690565b348015610809575f80fd5b5061038b6108183660046148c9565b612504565b348015610828575f80fd5b506103346108373660046148c9565b609f6020525f908152604090205460ff1681565b348015610856575f80fd5b5061035e60995481565b34801561086b575f80fd5b5061038b61087a36600461488a565b612628565b34801561088a575f80fd5b5061035e6108993660046148c9565b60a56020525f908152604090205481565b3480156108b5575f80fd5b5061035e60a85481565b3480156108ca575f80fd5b5061038b6108d9366004614a76565b6126f2565b3480156108e9575f80fd5b5061038b6108f83660046148c9565b6129c1565b348015610908575f80fd5b5061038b61091736600461496f565b612a27565b348015610927575f80fd5b5061038b610936366004614aea565b612dab565b61038b610949366004614b05565b612f3e565b348015610959575f80fd5b5061035e60985481565b34801561096e575f80fd5b5061038b61097d3660046148c9565b613653565b34801561098d575f80fd5b506097546104e89073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109b9575f80fd5b506103346109c836600461488a565b613739565b3480156109d8575f80fd5b5061035e609a5481565b3480156109ed575f80fd5b5061038b6109fc36600461488a565b613790565b348015610a0c575f80fd5b5061038b610a1b3660046148c9565b61384d565b348015610a2b575f80fd5b5061035e60a95481565b610a3d613901565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1615610ad1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610b61613901565b5f8111610bca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610ac8565b5f80610bd68585613982565b915091505f610be9836001015160c01c90565b5f81815260a160205260409020549091508214610c62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b5f60a181610c708785614b68565b81526020019081526020015f205414610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610ac8565b609d548111610d9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610ac8565b610da6600182614b7b565b609e555b8315610f3d57604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610df281613739565b15610e78575f81815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091610e4a908490614b68565b909155505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ef5575060a85481145b15610eff575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610daa575b505050505050565b60a85415610faf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b610fb761399d565b5f80610fc38484613982565b915091505f610fd6836001015160c01c90565b5f81815260a16020526040902054909150821461104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b61105881611544565b6110be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610ac8565b6110c781613739565b1561112e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610ac8565b5f81815260a4602052604090206003015460ff16156111a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610ac8565b5f81815260a26020526040902060010154421015611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610ac8565b605983015160a05f611236600185614b7b565b81526020019081526020015f2054146112ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610ac8565b5f81815260a0602052604090205415611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610ac8565b80609d546001011461138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610ac8565b609d819055600160a35f6113a3866099015190565b815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905560798301515f82815260a06020526040902055611410611403846011015160c01c90565b600985015160c01c613a0a565b60a25f61141e600184614b7b565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906114579084614b7b565b81526020019081526020015f205f905560a45f6001836114779190614b7b565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611520866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061156c57505f82815260a1602052604090205415155b92915050565b60975473ffffffffffffffffffffffffffffffffffffffff166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa1580156115f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161c9190614b8e565b611682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610ac8565b60a854156116ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b6116f461399d565b6117016020830183614ba9565b60ff161561176b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610ac8565b5f6117796040840184614bc9565b915050806117e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610ac8565b606083013561184e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610ac8565b60808301356118b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610ac8565b5f806118d06118cb6020870187614bc9565b613982565b915091505f6118e3836001015160c01c90565b90505f60a1816118f4846001614b68565b81526020019081526020015f205414611969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610ac8565b609e5481146119d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610ac8565b5f81815260a160205260409020548214611a4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610ac8565b5f81815260ab6020526040902054606087013514611ac4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610ac8565b5f611ad3846011015160c01c90565b90505f8080611b25611ae860408c018c614bc9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150613ad49050565b600196909601959485019493840193925090505f804915611b47575f49611b69565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f9611b9489611b8c60208f018f614ba9565b60ff16613c6b565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a0152611c0389611be460208e018e614bc9565b604051611bf2929190614c2a565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff1615611c705760a7545f90815260a460205260409020600201546099544291611c6391614b68565b611c6d9190614b7b565b90505b60405180608001604052804281526020018260985442611c909190614b68565b611c9a9190614b68565b8152602001611ceb8f8060400190611cb29190614bc9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613c7292505050565b815260975460209091019073ffffffffffffffffffffffffffffffffffffffff1663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015611d79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d9d9190614c39565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e89905560975473ffffffffffffffffffffffffffffffffffffffff1692506374fe27b791508c3590611e1290611e0c908f018f614bc9565b5f613cc9565b5f8e8060400190611e239190614bc9565b6040518663ffffffff1660e01b8152600401611e43959493929190614c97565b602060405180830381865afa158015611e5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e829190614b8e565b611f0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610ac8565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611f5c613901565b5f81118015611f6d57506099548114155b611fd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610ac8565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b612021613901565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff166120af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610ac8565b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610b4e565b612130613901565b6121395f613d1d565b565b5f54610100900460ff161580801561215957505f54600160ff909116105b806121725750303b15801561217257505f5460ff166001145b6121fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ac8565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561225a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff86161580612291575073ffffffffffffffffffffffffffffffffffffffff8516155b156122c8576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8716612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610ac8565b61234d613d93565b612355613e31565b6097805473ffffffffffffffffffffffffffffffffffffffff808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156124fb575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b61250c613901565b73ffffffffffffffffffffffffffffffffffffffff81161580159061254c5750609c5473ffffffffffffffffffffffffffffffffffffffff828116911614155b6125b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610ac8565b609c805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b612630613901565b5f81118015612640575060648111155b801561264e575060a9548114155b6126b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610ac8565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910161200d565b60a8541561275c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b61276461399d565b5f806127708686613982565b915091505f612783836001015160c01c90565b5f81815260a1602052604090205490915082146127fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b61280581613739565b61286b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610ac8565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560995460029091015442916128e291614b68565b11612976575f81815260a460209081526040808320600390810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560a2835292819020909201548251808401909352600783527f54696d656f7574000000000000000000000000000000000000000000000000009183019190915261297191839190613ecf565b6124fb565b612981838686614052565b6124fb81336040518060400160405280600d81526020017f50726f6f6620737563636573730000000000000000000000000000000000000081525061422c565b6129c9613901565b60aa80545f9091556129db8282614312565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d87910161200d565b612a2f613901565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415612ac0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610ac8565b5f80612acc8484613982565b915091505f612adf836001015160c01c90565b90505f612aed846079015190565b905080612b56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610ac8565b600984015160c01c15612bc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610ac8565b5f612bd1856019015190565b03612c38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610ac8565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014612c64856039015190565b14612ccb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610ac8565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b612db3613901565b8015612f0c57612dc16143e4565b60a65460ff1615612ebe5760a7545f90815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091612e22908490614b68565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a150565b612f14614469565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612ee1565b50565b335f908152609f602052604090205460ff16612fb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610ac8565b60a85415613020576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b61302861399d565b60a65460ff1615613095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610ac8565b8167ffffffffffffffff16609d541061310a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610ac8565b67ffffffffffffffff82165f90815260a16020526040902054811461318b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b61319e8267ffffffffffffffff16611544565b613204576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610ac8565b67ffffffffffffffff82165f90815260a4602052604090205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16156132a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610ac8565b67ffffffffffffffff82165f90815260a260205260409020600101544210613350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610ac8565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133de9190614c39565b341015613447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610ac8565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a49095529690962094518554925173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009093169290921792909217905573ffffffffffffffffffffffffffffffffffffffff168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b9976346040516135b391815260200190565b60405180910390a35f609d5460016135cb9190614b68565b90505b609e548111613623578267ffffffffffffffff168114613611576099545f82815260a260205260408120600101805490919061360b908490614b68565b90915550505b8061361b81614d17565b9150506135ce565b505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b335f90815260a56020526040812054908190036136cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610ac8565b335f90815260a560205260408120556136e58282614312565b8173ffffffffffffffffffffffffffffffffffffffff167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a8260405161372d91815260200190565b60405180910390a25050565b5f81815260a4602052604081205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff161580159061156c5750505f90815260a46020526040902060030154610100900460ff161590565b613798613901565b5f811180156137a957506098548114155b61380f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610ac8565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910161200d565b613855613901565b73ffffffffffffffffffffffffffffffffffffffff81166138f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610ac8565b612f3b81613d1d565b60335473ffffffffffffffffffffffffffffffffffffffff163314612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ac8565b5f805f61398f85856144c0565b812090969095509350505050565b60655460ff1615612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610ac8565b805f03613a15575050565b8082035f5b82811015613ace57610100818403811115613a3457508083035b609b546040517f3c7f5283000000000000000000000000000000000000000000000000000000008152600481018590526024810183905273ffffffffffffffffffffffffffffffffffffffff90911690633c7f5283906044015f604051808303815f87803b158015613aa4575f80fd5b505af1158015613ab6573d5f803e3d5ffd5b50505050610100830192505061010081019050613a1a565b50505050565b60405183515f91829160208701919081908490613af2908590614542565b90506002840193505f5b81811015613b7657603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613b4c603c83614d4e565b613b569087614b68565b90505f613b6782603a015160f01c90565b97909701965050600101613afc565b506020850282016040525b8015613c59575f613b9685603a015160f01c90565b9050613ba483828b8b6145d7565b92505f613bb5866038015160f01c90565b905081811015613c21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610ac8565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613b81565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613c8d828651614542565b90505f5b613c9c600183614b7b565b811015613cb257603c9390930192600101613c91565b505f613cbf845160c01c90565b9695505050505050565b60605f80808080613cdc888a018a614e52565b9550955095509550955050818710613cfa579450613d169350505050565b838710613d0e578295505050505050613d16565b509293505050505b9392505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613e29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b6121396146bf565b5f54610100900460ff16613ec7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b61213961477f565b60a88390555f83815260a460205260408082205460975491517f45bc4d10000000000000000000000000000000000000000000000000000000008152600481018690526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff908116939216906345bc4d10906024016020604051808303815f875af1158015613f60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f849190614c39565b5f86815260a46020526040902060010154909150613fa3908290614b68565b5f86815260a4602090815260408083205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16835260a590915281208054909190613fef908490614b68565b9091555050604051614002908490614eef565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff84169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b806140b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610ac8565b5f6140c8846001015160c01c90565b90505f6140d6856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000614105876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c5490915073ffffffffffffffffffffffffffffffffffffffff16632c09a8486141d4885160f81c90565b858888866040518663ffffffff1660e01b81526004016141f8959493929190614f1b565b5f6040518083038186803b15801561420e575f80fd5b505afa158015614220573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906142509084614d4e565b61425a9190614f4c565b90506142668183614b7b565b60aa5f8282546142769190614b68565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f90815260a56020526040812080548392906142af908490614b68565b90915550506040516142c2908490614eef565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff86169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80156143e0575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f811461436e576040519150601f19603f3d011682016040523d82523d5f602084013e614373565b606091505b50509050806143de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610ac8565b505b5050565b6143ec61399d565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861443f3390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61447161481e565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361443f565b5f8160f9811461452c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f626174636820686561646572206c656e677468206d75737420626520323439006044820152606401610ac8565b6040519150808483378082016040529250929050565b5f61454e835160f01c90565b9050805f03614589576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614594603c82614d4e565b61459f906002614b68565b821461156c576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f036145e65750836146b7565b609b5473ffffffffffffffffffffffffffffffffffffffff165f5b858110156146b1576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f9073ffffffffffffffffffffffffffffffffffffffff84169063ae453cd590602401602060405180830381865afa158015614674573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906146989190614c39565b8852506020909601956001948501949384019301614601565b50859150505b949350505050565b5f54610100900460ff16614755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff16614815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b61213933613d1d565b60655460ff16612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610ac8565b5f6020828403121561489a575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146148c4575f80fd5b919050565b5f602082840312156148d9575f80fd5b613d16826148a1565b5f8083601f8401126148f2575f80fd5b50813567ffffffffffffffff811115614909575f80fd5b602083019150836020828501011115614920575f80fd5b9250929050565b5f805f60408486031215614939575f80fd5b833567ffffffffffffffff81111561494f575f80fd5b61495b868287016148e2565b909790965060209590950135949350505050565b5f8060208385031215614980575f80fd5b823567ffffffffffffffff811115614996575f80fd5b6149a2858286016148e2565b90969095509350505050565b5f80604083850312156149bf575f80fd5b823567ffffffffffffffff808211156149d6575f80fd5b9084019060c082870312156149e9575f80fd5b909250602084013590808211156149fe575f80fd5b50830160608186031215614a10575f80fd5b809150509250929050565b5f805f805f8060c08789031215614a30575f80fd5b614a39876148a1565b9550614a47602088016148a1565b9450614a55604088016148a1565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614a89575f80fd5b843567ffffffffffffffff80821115614aa0575f80fd5b614aac888389016148e2565b90965094506020870135915080821115614ac4575f80fd5b50614ad1878288016148e2565b95989497509550505050565b8015158114612f3b575f80fd5b5f60208284031215614afa575f80fd5b8135613d1681614add565b5f8060408385031215614b16575f80fd5b823567ffffffffffffffff81168114614b2d575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561156c5761156c614b3b565b8181038181111561156c5761156c614b3b565b5f60208284031215614b9e575f80fd5b8151613d1681614add565b5f60208284031215614bb9575f80fd5b813560ff81168114613d16575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614bfc575f80fd5b83018035915067ffffffffffffffff821115614c16575f80fd5b602001915036819003821315614920575f80fd5b818382375f9101908152919050565b5f60208284031215614c49575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b81811015614cee57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101614cbc565b50508760408601528481036060860152614d09818789614c50565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614d4757614d47614b3b565b5060010190565b808202811582820484141761156c5761156c614b3b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112614da1575f80fd5b8135602067ffffffffffffffff80831115614dbe57614dbe614d65565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614e0157614e01614d65565b6040529384526020818701810194908101925087851115614e20575f80fd5b6020870191505b84821015614e4757614e38826148a1565b83529183019190830190614e27565b979650505050505050565b5f805f805f8060c08789031215614e67575f80fd5b86359550602087013567ffffffffffffffff80821115614e85575f80fd5b614e918a838b01614d92565b9650604089013595506060890135915080821115614ead575f80fd5b614eb98a838b01614d92565b94506080890135935060a0890135915080821115614ed5575f80fd5b50614ee289828a01614d92565b9150509295509295509295565b5f82515f5b81811015614f0e5760208186018101518583015201614ef4565b505f920191825250919050565b858152846020820152608060408201525f614f3a608083018587614c50565b90508260608301529695505050505050565b5f82614f7f577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(RollupStorageLayoutJSON), RollupStorageLayout); err != nil { diff --git a/bindings/go.mod b/bindings/go.mod index 9bddb269e..27f5875bd 100644 --- a/bindings/go.mod +++ b/bindings/go.mod @@ -4,7 +4,7 @@ go 1.22 replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.1 -require github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 +require github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e require ( github.com/VictoriaMetrics/fastcache v1.12.2 // indirect diff --git a/bindings/go.sum b/bindings/go.sum index d6e55c303..6c525f26a 100644 --- a/bindings/go.sum +++ b/bindings/go.sum @@ -109,8 +109,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 h1:4+cbRSS4lacSIC81RXxvA04UHhGVC4SHVn+bKeqhPSM= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= diff --git a/contracts/contracts/l1/rollup/IL1MessageQueue.sol b/contracts/contracts/l1/rollup/IL1MessageQueue.sol index 96b1e0006..3e9a4734b 100644 --- a/contracts/contracts/l1/rollup/IL1MessageQueue.sol +++ b/contracts/contracts/l1/rollup/IL1MessageQueue.sol @@ -33,8 +33,7 @@ interface IL1MessageQueue { /// @notice Emitted when some L1 => L2 transactions are included in L1. /// @param startIndex The start index of messages popped. /// @param count The number of messages popped. - /// @param skippedBitmap A bitmap indicates whether a message is skipped. - event DequeueTransaction(uint256 startIndex, uint256 count, uint256 skippedBitmap); + event DequeueTransaction(uint256 startIndex, uint256 count); /// @notice Emitted when a message is dropped from L1. /// @param index The index of message dropped. @@ -96,10 +95,6 @@ interface IL1MessageQueue { bytes calldata data ) external view returns (bytes32); - /// @notice Return whether the message is skipped. - /// @param queueIndex The queue index of the message to check. - function isMessageSkipped(uint256 queueIndex) external view returns (bool); - /// @notice Return whether the message is dropped. /// @param queueIndex The queue index of the message to check. function isMessageDropped(uint256 queueIndex) external view returns (bool); @@ -136,8 +131,7 @@ interface IL1MessageQueue { /// /// @param startIndex The start index to pop. /// @param count The number of messages to pop. - /// @param skippedBitmap A bitmap indicates whether a message is skipped. - function popCrossDomainMessage(uint256 startIndex, uint256 count, uint256 skippedBitmap) external; + function popCrossDomainMessage(uint256 startIndex, uint256 count) external; /// @notice Drop a skipped message from the queue. function dropCrossDomainMessage(uint256 index) external; diff --git a/contracts/contracts/l1/rollup/IRollup.sol b/contracts/contracts/l1/rollup/IRollup.sol index e27e9564c..680a550d1 100644 --- a/contracts/contracts/l1/rollup/IRollup.sol +++ b/contracts/contracts/l1/rollup/IRollup.sol @@ -9,7 +9,6 @@ interface IRollup { /// @param version The version of current batch. /// @param parentBatchHeader The header of parent batch, see the comments of `BatchHeaderV0Codec`. /// @param blockContexts The block contexts of current batch. - /// @param skippedL1MessageBitmap The bitmap indicates whether each L1 message is skipped or not. /// @param prevStateRoot The state root of parent batch. /// @param postStateRoot The state root of current batch. /// @param withdrawalRoot The withdraw trie root of current batch. @@ -17,7 +16,6 @@ interface IRollup { uint8 version; bytes parentBatchHeader; bytes blockContexts; - bytes skippedL1MessageBitmap; bytes32 prevStateRoot; bytes32 postStateRoot; bytes32 withdrawalRoot; diff --git a/contracts/contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol b/contracts/contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol index fdc9d25c4..de353fe91 100644 --- a/contracts/contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol +++ b/contracts/contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol @@ -51,8 +51,8 @@ contract L1MessageQueueWithGasPriceOracle is OwnableUpgradeable, IL1MessageQueue /// @dev The bitmap for dropped messages, where `droppedMessageBitmap[i]` keeps the bits from `[i*256, (i+1)*256)`. BitMapsUpgradeable.BitMap private droppedMessageBitmap; - /// @dev The bitmap for skipped messages, where `skippedMessageBitmap[i]` keeps the bits from `[i*256, (i+1)*256)`. - mapping(uint256 => uint256) private skippedMessageBitmap; + /// @dev The bitmap for skipped messages, where `skippedMessageBitmap[i]` keeps the bits from `[i*256, (i+1)*256)`. Deprecated. + mapping(uint256 => uint256) private __skippedMessageBitmap; /// @inheritdoc IL1MessageQueueWithGasPriceOracle address public whitelistChecker; @@ -260,17 +260,9 @@ contract L1MessageQueueWithGasPriceOracle is OwnableUpgradeable, IL1MessageQueue return hash; } - /// @inheritdoc IL1MessageQueue - function isMessageSkipped(uint256 _queueIndex) external view returns (bool) { - if (_queueIndex >= pendingQueueIndex) return false; - - return _isMessageSkipped(_queueIndex); - } - /// @inheritdoc IL1MessageQueue function isMessageDropped(uint256 _queueIndex) external view returns (bool) { - // it should be a skipped message first. - return _isMessageSkipped(_queueIndex) && droppedMessageBitmap.get(_queueIndex); + return droppedMessageBitmap.get(_queueIndex); } /***************************** @@ -320,35 +312,23 @@ contract L1MessageQueueWithGasPriceOracle is OwnableUpgradeable, IL1MessageQueue } /// @inheritdoc IL1MessageQueue - function popCrossDomainMessage(uint256 _startIndex, uint256 _count, uint256 _skippedBitmap) external { + function popCrossDomainMessage(uint256 _startIndex, uint256 _count) external { require(_msgSender() == ROLLUP_CONTRACT, "Only callable by the rollup"); require(_count <= 256, "pop too many messages"); require(pendingQueueIndex == _startIndex, "start index mismatch"); unchecked { - // clear extra bits in `_skippedBitmap`, and if _count = 256, it's designed to overflow. - uint256 mask = (1 << _count) - 1; - _skippedBitmap &= mask; - - uint256 bucket = _startIndex >> 8; - uint256 offset = _startIndex & 0xff; - skippedMessageBitmap[bucket] |= _skippedBitmap << offset; - if (offset + _count > 256) { - skippedMessageBitmap[bucket + 1] = _skippedBitmap >> (256 - offset); - } - pendingQueueIndex = _startIndex + _count; } - emit DequeueTransaction(_startIndex, _count, _skippedBitmap); + emit DequeueTransaction(_startIndex, _count); } /// @inheritdoc IL1MessageQueue function dropCrossDomainMessage(uint256 _index) external onlyMessenger { require(_index < pendingQueueIndex, "cannot drop pending message"); - require(_isMessageSkipped(_index), "drop non-skipped message"); require(!droppedMessageBitmap.get(_index), "message already dropped"); droppedMessageBitmap.set(_index); @@ -409,11 +389,4 @@ contract L1MessageQueueWithGasPriceOracle is OwnableUpgradeable, IL1MessageQueue uint256 intrinsicGas = calculateIntrinsicGasFee(_calldata); require(_gasLimit >= intrinsicGas, "Insufficient gas limit, must be above intrinsic gas"); } - - /// @dev Returns whether the bit at `index` is set. - function _isMessageSkipped(uint256 index) internal view returns (bool) { - uint256 bucket = index >> 8; - uint256 mask = 1 << (index & 0xff); - return skippedMessageBitmap[bucket] & mask != 0; - } } diff --git a/contracts/contracts/l1/rollup/Rollup.sol b/contracts/contracts/l1/rollup/Rollup.sol index cd1e8a9e9..c9f932418 100644 --- a/contracts/contracts/l1/rollup/Rollup.sol +++ b/contracts/contracts/l1/rollup/Rollup.sol @@ -243,28 +243,19 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { (dataHash, _totalNumL1Messages) = _commitBatch( batchDataInput.blockContexts, _totalL1MessagesPoppedInBatch, - _totalL1MessagesPoppedOverall, - batchDataInput.skippedL1MessageBitmap + _totalL1MessagesPoppedOverall ); unchecked { _totalL1MessagesPoppedInBatch += _totalNumL1Messages; _totalL1MessagesPoppedOverall += _totalNumL1Messages; } - // check the length of bitmap - unchecked { - require( - ((_totalL1MessagesPoppedInBatch + 255) / 256) * 32 == batchDataInput.skippedL1MessageBitmap.length, - "wrong bitmap length" - ); - } assembly { _batchIndex := add(_batchIndex, 1) // increase batch index } bytes32 _blobVersionedHash = (blobhash(0) == bytes32(0)) ? ZERO_VERSIONED_HASH : blobhash(0); { - uint256 _headerLength = BatchHeaderCodecV0.BATCH_HEADER_FIXED_LENGTH + - batchDataInput.skippedL1MessageBitmap.length; + uint256 _headerLength = BatchHeaderCodecV0.BATCH_HEADER_LENGTH; assembly { _batchPtr := mload(0x40) mstore(0x40, add(_batchPtr, mul(_headerLength, 32))) @@ -280,7 +271,6 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { BatchHeaderCodecV0.storeWithdrawRootHash(_batchPtr, batchDataInput.withdrawalRoot); BatchHeaderCodecV0.storeSequencerSetVerifyHash(_batchPtr, keccak256(batchSignatureInput.sequencerSets)); BatchHeaderCodecV0.storeParentBatchHash(_batchPtr, _parentBatchHash); - BatchHeaderCodecV0.storeSkippedBitmap(_batchPtr, batchDataInput.skippedL1MessageBitmap); BatchHeaderCodecV0.storeBlobVersionedHash(_batchPtr, _blobVersionedHash); committedBatches[_batchIndex] = BatchHeaderCodecV0.computeBatchHash(_batchPtr, _headerLength); committedStateRoots[_batchIndex] = batchDataInput.postStateRoot; @@ -529,7 +519,6 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { // Pop finalized and non-skipped message from L1MessageQueue. _popL1Messages( - BatchHeaderCodecV0.getSkippedBitmapPtr(memPtr), BatchHeaderCodecV0.getTotalL1MessagePopped(memPtr), BatchHeaderCodecV0.getL1MessagePopped(memPtr) ); @@ -594,25 +583,19 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { **********************/ /// @dev Internal function to pop finalized l1 messages. - /// @param bitmapPtr The memory offset of `skippedL1MessageBitmap`. /// @param totalL1MessagePopped The total number of L1 messages popped in all batches including current batch. /// @param l1MessagePopped The number of L1 messages popped in current batch. - function _popL1Messages(uint256 bitmapPtr, uint256 totalL1MessagePopped, uint256 l1MessagePopped) internal { + function _popL1Messages(uint256 totalL1MessagePopped, uint256 l1MessagePopped) internal { if (l1MessagePopped == 0) return; unchecked { uint256 startIndex = totalL1MessagePopped - l1MessagePopped; - uint256 bitmap; for (uint256 i = 0; i < l1MessagePopped; i += 256) { uint256 _count = 256; if (l1MessagePopped - i < _count) { _count = l1MessagePopped - i; } - assembly { - bitmap := mload(bitmapPtr) - bitmapPtr := add(bitmapPtr, 0x20) - } - IL1MessageQueue(messageQueue).popCrossDomainMessage(startIndex, _count, bitmap); + IL1MessageQueue(messageQueue).popCrossDomainMessage(startIndex, _count); startIndex += 256; } } @@ -747,14 +730,12 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { /// @param _blockContexts The encoded block contexts to commit. /// @param _totalL1MessagesPoppedInBatch The total number of L1 messages popped in current batch. /// @param _totalL1MessagesPoppedOverall The total number of L1 messages popped in all batches including current batch. - /// @param _skippedL1MessageBitmap The bitmap indicates whether each L1 message is skipped or not. /// @return _dataHash The computed data hash for this batch. /// @return _totalNumL1MessagesInBatch The total number of L1 message popped in current batch function _commitBatch( bytes memory _blockContexts, uint256 _totalL1MessagesPoppedInBatch, - uint256 _totalL1MessagesPoppedOverall, - bytes calldata _skippedL1MessageBitmap + uint256 _totalL1MessagesPoppedOverall ) internal view returns (bytes32 _dataHash, uint256 _totalNumL1MessagesInBatch) { uint256 batchPtr; uint256 startDataPtr; @@ -791,8 +772,7 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { dataPtr, _numL1MessagesInBlock, _totalL1MessagesPoppedInBatch, - _totalL1MessagesPoppedOverall, - _skippedL1MessageBitmap + _totalL1MessagesPoppedOverall ); uint256 _numTransactionsInBlock = BatchCodecV0.getNumTransactions(batchPtr); require(_numTransactionsInBlock >= _numL1MessagesInBlock, "num txs less than num L1 msgs"); @@ -816,14 +796,12 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { /// @param _numL1Messages The number of L1 messages to load. /// @param _totalL1MessagesPoppedInBatch The total number of L1 messages popped in current batch. /// @param _totalL1MessagesPoppedOverall The total number of L1 messages popped in all batches including current batch. - /// @param _skippedL1MessageBitmap The bitmap indicates whether each L1 message is skipped or not. /// @return uint256 The new memory offset after loading. function _loadL1MessageHashes( uint256 _ptr, uint256 _numL1Messages, uint256 _totalL1MessagesPoppedInBatch, - uint256 _totalL1MessagesPoppedOverall, - bytes calldata _skippedL1MessageBitmap + uint256 _totalL1MessagesPoppedOverall ) internal view returns (uint256) { if (_numL1Messages == 0) { return _ptr; @@ -831,34 +809,16 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { IL1MessageQueue _messageQueue = IL1MessageQueue(messageQueue); unchecked { - uint256 _bitmap; - uint256 rem; for (uint256 i = 0; i < _numL1Messages; i++) { - uint256 quo = _totalL1MessagesPoppedInBatch >> 8; - rem = _totalL1MessagesPoppedInBatch & 0xff; - - // load bitmap every 256 bits - if (i == 0 || rem == 0) { - assembly { - _bitmap := calldataload(add(_skippedL1MessageBitmap.offset, mul(0x20, quo))) - } - } - if (((_bitmap >> rem) & 1) == 0) { - // message not skipped - bytes32 _hash = _messageQueue.getCrossDomainMessage(_totalL1MessagesPoppedOverall); - assembly { - mstore(_ptr, _hash) - _ptr := add(_ptr, 0x20) - } + bytes32 _hash = _messageQueue.getCrossDomainMessage(_totalL1MessagesPoppedOverall); + assembly { + mstore(_ptr, _hash) + _ptr := add(_ptr, 0x20) } _totalL1MessagesPoppedInBatch += 1; _totalL1MessagesPoppedOverall += 1; } - - // check last L1 message is not skipped, _totalL1MessagesPoppedInBatch must > 0 - rem = (_totalL1MessagesPoppedInBatch - 1) & 0xff; - require(((_bitmap >> rem) & 1) == 0, "cannot skip last L1 message"); } return _ptr; diff --git a/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol b/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol index de79c7737..fc3d35534 100644 --- a/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol +++ b/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol @@ -18,11 +18,10 @@ pragma solidity ^0.8.24; /// * withdrawRootHash 32 bytes32 153 L2 withdrawal tree root hash /// * sequencerSetVerifyHash 32 bytes32 185 L2 sequencers set verify hash /// * parentBatchHash 32 bytes32 217 The parent batch hash -/// * skippedL1MessageBitmap dynamic uint256[] 249 A bitmap to indicate which L1 messages are skipped in the batch /// ``` library BatchHeaderCodecV0 { /// @dev The length of fixed parts of the batch header. - uint256 internal constant BATCH_HEADER_FIXED_LENGTH = 249; + uint256 internal constant BATCH_HEADER_LENGTH = 249; /// @notice Load batch header in calldata to memory. /// @param _batchHeader The encoded batch header bytes in calldata. @@ -30,20 +29,13 @@ library BatchHeaderCodecV0 { /// @return length The length in bytes of the batch header. function loadAndValidate(bytes calldata _batchHeader) internal pure returns (uint256 batchPtr, uint256 length) { length = _batchHeader.length; - require(length >= BATCH_HEADER_FIXED_LENGTH, "batch header length too small"); + require(length == BATCH_HEADER_LENGTH, "batch header length must be 249"); // copy batch header to memory. assembly { batchPtr := mload(0x40) calldatacopy(batchPtr, _batchHeader.offset, length) mstore(0x40, add(batchPtr, length)) } - - // check batch header length - uint256 _l1MessagePopped = getL1MessagePopped(batchPtr); - - unchecked { - require(length == BATCH_HEADER_FIXED_LENGTH + ((_l1MessagePopped + 255) / 256) * 32, "wrong bitmap length"); - } } /// @notice Get the version of the batch header. @@ -133,26 +125,6 @@ library BatchHeaderCodecV0 { } } - /// @notice Get the start memory offset for skipped L1 messages bitmap. - /// @param batchPtr The start memory offset of the batch header in memory. - /// @return _bitmapPtr the start memory offset for skipped L1 messages bitmap. - function getSkippedBitmapPtr(uint256 batchPtr) internal pure returns (uint256 _bitmapPtr) { - assembly { - _bitmapPtr := add(batchPtr, BATCH_HEADER_FIXED_LENGTH) - } - } - - /// @notice Get the skipped L1 messages bitmap. - /// @param batchPtr The start memory offset of the batch header in memory. - /// @param index The index of bitmap to load. - /// @return _bitmap The bitmap from bits `index * 256` to `index * 256 + 255`. - function getSkippedBitmap(uint256 batchPtr, uint256 index) internal pure returns (uint256 _bitmap) { - assembly { - batchPtr := add(batchPtr, BATCH_HEADER_FIXED_LENGTH) - _bitmap := mload(add(batchPtr, mul(index, 32))) - } - } - /// @notice Store the version of batch header. /// @param batchPtr The start memory offset of the batch header in memory. /// @param _version The version of batch header. @@ -258,19 +230,6 @@ library BatchHeaderCodecV0 { } } - /// @notice Store the skipped L1 message bitmap of batch header. - /// @param batchPtr The start memory offset of the batch header in memory. - /// @param _skippedL1MessageBitmap The skipped L1 message bitmap. - function storeSkippedBitmap(uint256 batchPtr, bytes calldata _skippedL1MessageBitmap) internal pure { - assembly { - calldatacopy( - add(batchPtr, BATCH_HEADER_FIXED_LENGTH), - _skippedL1MessageBitmap.offset, - _skippedL1MessageBitmap.length - ) - } - } - /// @notice Compute the batch hash. /// @dev Caller should make sure that the encoded batch header is correct. /// diff --git a/contracts/contracts/libraries/verifier/ISP1Verifier.sol b/contracts/contracts/libraries/verifier/ISP1Verifier.sol index 328089f27..d2f99aec4 100644 --- a/contracts/contracts/libraries/verifier/ISP1Verifier.sol +++ b/contracts/contracts/libraries/verifier/ISP1Verifier.sol @@ -16,4 +16,4 @@ interface ISP1Verifier { interface ISP1VerifierWithHash is ISP1Verifier { /// @notice Returns the hash of the verifier. function VERIFIER_HASH() external pure returns (bytes32); -} \ No newline at end of file +} diff --git a/contracts/contracts/libraries/verifier/SP1VerifierPlonk.sol b/contracts/contracts/libraries/verifier/SP1VerifierPlonk.sol index d63fb5cfe..7fd8f3ee2 100644 --- a/contracts/contracts/libraries/verifier/SP1VerifierPlonk.sol +++ b/contracts/contracts/libraries/verifier/SP1VerifierPlonk.sol @@ -23,9 +23,7 @@ contract SP1Verifier is PlonkVerifier, ISP1VerifierWithHash { /// @notice Hashes the public values to a field elements inside Bn254. /// @param publicValues The public values. - function hashPublicValues( - bytes calldata publicValues - ) public pure returns (bytes32) { + function hashPublicValues(bytes calldata publicValues) public pure returns (bytes32) { return sha256(publicValues) & bytes32(uint256((1 << 253) - 1)); } @@ -33,11 +31,7 @@ contract SP1Verifier is PlonkVerifier, ISP1VerifierWithHash { /// @param programVKey The verification key for the RISC-V program. /// @param publicValues The public values encoded as bytes. /// @param proofBytes The proof of the program execution the SP1 zkVM encoded as bytes. - function verifyProof( - bytes32 programVKey, - bytes calldata publicValues, - bytes calldata proofBytes - ) external view { + function verifyProof(bytes32 programVKey, bytes calldata publicValues, bytes calldata proofBytes) external view { bytes4 receivedSelector = bytes4(proofBytes[:4]); bytes4 expectedSelector = bytes4(VERIFIER_HASH()); if (receivedSelector != expectedSelector) { @@ -53,4 +47,4 @@ contract SP1Verifier is PlonkVerifier, ISP1VerifierWithHash { revert InvalidProof(); } } -} \ No newline at end of file +} diff --git a/contracts/contracts/libraries/verifier/ZkEvmVerifierV1.sol b/contracts/contracts/libraries/verifier/ZkEvmVerifierV1.sol index 2bae6e303..52da6a8c0 100644 --- a/contracts/contracts/libraries/verifier/ZkEvmVerifierV1.sol +++ b/contracts/contracts/libraries/verifier/ZkEvmVerifierV1.sol @@ -7,7 +7,6 @@ import {SP1Verifier} from "./SP1VerifierPlonk.sol"; // solhint-disable no-inline-assembly contract ZkEvmVerifierV1 is IZkEvmVerifier, SP1Verifier { - /// @notice The verification key for the morph executor program. bytes32 public programVkey; diff --git a/contracts/contracts/lido/L1LidoGateway.sol b/contracts/contracts/lido/L1LidoGateway.sol index 444a01ff4..f39618612 100644 --- a/contracts/contracts/lido/L1LidoGateway.sol +++ b/contracts/contracts/lido/L1LidoGateway.sol @@ -128,7 +128,7 @@ contract L1LidoGateway is L1ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag uint256 nonce = IL1CrossDomainMessenger(messenger).messageNonce(); - // 3. Send message to L1CrossDomainMessenger. + // 3. Send message to L1CrossDomainMessenger. IL1CrossDomainMessenger(messenger).sendMessage{value: msg.value}(counterpart, 0, _message, _gasLimit, _from); emit DepositERC20(_token, l2Token, _from, _to, _amount, _data, nonce); diff --git a/contracts/contracts/mock/BatchHeaderCodecTest.sol b/contracts/contracts/mock/BatchHeaderCodecTest.sol index 6bd6ea019..9b6206c8d 100644 --- a/contracts/contracts/mock/BatchHeaderCodecTest.sol +++ b/contracts/contracts/mock/BatchHeaderCodecTest.sol @@ -111,7 +111,6 @@ contract BatchHeaderCodecTest { BatchHeaderCodecV0.storeWithdrawRootHash(_batchPtr, data.withdrawRootHash); BatchHeaderCodecV0.storeSequencerSetVerifyHash(_batchPtr, data.sequencerSetVerifyHash); BatchHeaderCodecV0.storeParentBatchHash(_batchPtr, data.parentBatchHash); - BatchHeaderCodecV0.storeSkippedBitmap(_batchPtr, data.skipMap); - return BatchHeaderCodecV0.computeBatchHash(_batchPtr, BatchHeaderCodecV0.BATCH_HEADER_FIXED_LENGTH); + return BatchHeaderCodecV0.computeBatchHash(_batchPtr, BatchHeaderCodecV0.BATCH_HEADER_LENGTH); } } diff --git a/contracts/contracts/test/L1CrossDomainMessenger.t.sol b/contracts/contracts/test/L1CrossDomainMessenger.t.sol index a3de0826c..47af5645e 100644 --- a/contracts/contracts/test/L1CrossDomainMessenger.t.sol +++ b/contracts/contracts/test/L1CrossDomainMessenger.t.sol @@ -451,9 +451,9 @@ contract L1CrossDomainMessengerTest is L1GatewayBaseTest { l1ETHGateway.depositETHAndCall{value: amount}(recipient, amount, dataToCall, defaultGasLimit); - // skip message 0 + // pop message 0 hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1, 0x1); + l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); hevm.stopPrank(); @@ -473,9 +473,9 @@ contract L1CrossDomainMessengerTest is L1GatewayBaseTest { l1ETHGateway.depositETHAndCall{value: amount}(recipient, amount, dataToCall, defaultGasLimit); - // skip message 0 + // pop message 0 hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1, 0x1); + l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); hevm.stopPrank(); diff --git a/contracts/contracts/test/L1CustomERC20Gateway.t.sol b/contracts/contracts/test/L1CustomERC20Gateway.t.sol index 1ac3f5742..8ac88ce0c 100644 --- a/contracts/contracts/test/L1CustomERC20Gateway.t.sol +++ b/contracts/contracts/test/L1CustomERC20Gateway.t.sol @@ -192,9 +192,9 @@ contract L1CustomERC20GatewayTest is L1GatewayBaseTest { ); gateway.depositERC20AndCall(address(l1Token), recipient, amount, dataToCall, defaultGasLimit); - // skip message 0 + // pop message 0 hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1, 0x1); + l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); hevm.stopPrank(); diff --git a/contracts/contracts/test/L1ERC1155Gateway.t.sol b/contracts/contracts/test/L1ERC1155Gateway.t.sol index 7d383d388..b81e92702 100644 --- a/contracts/contracts/test/L1ERC1155Gateway.t.sol +++ b/contracts/contracts/test/L1ERC1155Gateway.t.sol @@ -168,9 +168,9 @@ contract L1ERC1155GatewayTest is L1GatewayBaseTest, ERC1155TokenReceiver { ); gateway.depositERC1155(address(l1Token), tokenId, amount, defaultGasLimit); - // skip message 0 + // pop message 0 hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1, 0x1); + l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); hevm.stopPrank(); @@ -201,9 +201,9 @@ contract L1ERC1155GatewayTest is L1GatewayBaseTest, ERC1155TokenReceiver { ); gateway.batchDepositERC1155(address(l1Token), _tokenIds, _amounts, defaultGasLimit); - // skip message 0 + // pop message 0 hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1, 0x1); + l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); hevm.stopPrank(); diff --git a/contracts/contracts/test/L1ERC721Gateway.t.sol b/contracts/contracts/test/L1ERC721Gateway.t.sol index a6ba3b694..17db63c8c 100644 --- a/contracts/contracts/test/L1ERC721Gateway.t.sol +++ b/contracts/contracts/test/L1ERC721Gateway.t.sol @@ -184,9 +184,9 @@ contract L1ERC721GatewayTest is L1GatewayBaseTest, ERC721TokenReceiver { ); gateway.depositERC721(address(l1Token), tokenId, defaultGasLimit); - // skip message 0 + // pop message 0 hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1, 0x1); + l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); hevm.stopPrank(); @@ -214,9 +214,9 @@ contract L1ERC721GatewayTest is L1GatewayBaseTest, ERC721TokenReceiver { ); gateway.batchDepositERC721(address(l1Token), _tokenIds, defaultGasLimit); - // skip message 0 + // pop message 0 hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1, 0x1); + l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); hevm.stopPrank(); diff --git a/contracts/contracts/test/L1ETHGateway.t.sol b/contracts/contracts/test/L1ETHGateway.t.sol index c5d0caf44..488e2777c 100644 --- a/contracts/contracts/test/L1ETHGateway.t.sol +++ b/contracts/contracts/test/L1ETHGateway.t.sol @@ -175,9 +175,9 @@ contract L1ETHGatewayTest is L1GatewayBaseTest { ); l1ETHGateway.depositETHAndCall{value: amount}(recipient, amount, dataToCall, defaultGasLimit); - // skip message 0 + // pop message 0 hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1, 0x1); + l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); hevm.stopPrank(); diff --git a/contracts/contracts/test/L1MessageQueue.t.sol b/contracts/contracts/test/L1MessageQueue.t.sol index 3e027e96e..2620f2e65 100644 --- a/contracts/contracts/test/L1MessageQueue.t.sol +++ b/contracts/contracts/test/L1MessageQueue.t.sol @@ -215,7 +215,7 @@ contract L1MessageQueueTest is L1MessageBaseTest { l1MessageQueue.appendCrossDomainMessage(alice, gasLimit, _calldata); hevm.prank(bob); hevm.expectRevert("Only callable by the rollup"); - l1MessageQueue.popCrossDomainMessage(0, 1, 0x3ff); + l1MessageQueue.popCrossDomainMessage(0, 1); } function test_popCrossDomainMessage_tooManyMessages_reverts() external { @@ -225,7 +225,7 @@ contract L1MessageQueueTest is L1MessageBaseTest { // Expect revert when _count > 256. hevm.prank(alice); hevm.expectRevert("pop too many messages"); - l1MessageQueue.popCrossDomainMessage(0, 257, 0x3ff); + l1MessageQueue.popCrossDomainMessage(0, 257); } function test_popCrossDomainMessage_startIndexMismatch_reverts() external { @@ -235,7 +235,7 @@ contract L1MessageQueueTest is L1MessageBaseTest { // Expect revert when pendingQueueIndex != _startIndex. hevm.prank(alice); hevm.expectRevert("start index mismatch"); - l1MessageQueue.popCrossDomainMessage(1, 2, 0x3ff); + l1MessageQueue.popCrossDomainMessage(1, 2); } function test_dropCrossDomainMessage_cannotDropPending_reverts() external { @@ -268,13 +268,11 @@ contract L1MessageQueueTest is L1MessageBaseTest { // Verify the event QueueTransaction is emitted successfully. hevm.expectEmit(false, false, false, true); - emit IL1MessageQueue.DequeueTransaction(0, 10, 0x3ff); + emit IL1MessageQueue.DequeueTransaction(0, 10); // pop all 10 message - l1MessageQueue.popCrossDomainMessage(0, 10, 0x3ff); - for (uint64 i = 0; i < 10; i++) { - assertTrue(l1MessageQueue.isMessageSkipped(i)); - } + l1MessageQueue.popCrossDomainMessage(0, 10); + // drop all 10 message for (uint64 i = 0; i < 10; i++) { l1MessageQueue.dropCrossDomainMessage(i); @@ -297,10 +295,8 @@ contract L1MessageQueueTest is L1MessageBaseTest { } // pop all 10 message - l1MessageQueue.popCrossDomainMessage(0, 10, 0x3ff); - for (uint64 i = 0; i < 10; i++) { - assertTrue(l1MessageQueue.isMessageSkipped(i)); - } + l1MessageQueue.popCrossDomainMessage(0, 10); + // drop all 10 message for (uint64 i = 0; i < 10; i++) { l1MessageQueue.dropCrossDomainMessage(i); diff --git a/contracts/contracts/test/L1StandardERC20Gateway.t.sol b/contracts/contracts/test/L1StandardERC20Gateway.t.sol index 86883d53b..00bbe5e65 100644 --- a/contracts/contracts/test/L1StandardERC20Gateway.t.sol +++ b/contracts/contracts/test/L1StandardERC20Gateway.t.sol @@ -306,9 +306,9 @@ contract L1StandardERC20GatewayTest is L1GatewayBaseTest { l1StandardERC20Gateway.depositERC20AndCall(address(l1Token), recipient, amount, dataToCall, defaultGasLimit); l1StandardERC20Gateway.depositERC20AndCall(address(l1Token), recipient, amount, dataToCall, defaultGasLimit); - // skip message 0 and 1 + // pop message 0 and 1 hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 2, 0x3); + l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 2); assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 2); hevm.stopPrank(); diff --git a/contracts/contracts/test/L1WETHGateway.t.sol b/contracts/contracts/test/L1WETHGateway.t.sol index bc0bf6813..f4de6bac1 100644 --- a/contracts/contracts/test/L1WETHGateway.t.sol +++ b/contracts/contracts/test/L1WETHGateway.t.sol @@ -207,7 +207,7 @@ contract L1WETHGatewayTest is L1GatewayBaseTest { // skip message 0 hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1, 0x1); + l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); hevm.stopPrank(); diff --git a/contracts/contracts/test/L2CustomERC20Gateway.t.sol b/contracts/contracts/test/L2CustomERC20Gateway.t.sol index c5cf4b211..0edf44cbc 100644 --- a/contracts/contracts/test/L2CustomERC20Gateway.t.sol +++ b/contracts/contracts/test/L2CustomERC20Gateway.t.sol @@ -66,7 +66,7 @@ contract L2CustomERC20GatewayTest is L2GatewayBaseTest { ); // Deploy a new L2CustomERC20Gateway contract. L2CustomERC20Gateway l2CustomERC20GatewayImplTemp = new L2CustomERC20Gateway(); - + // Expect revert due to zero router address. hevm.expectRevert("zero router address"); ITransparentUpgradeableProxy(address(l2CustomERC20GatewayProxyTemp)).upgradeToAndCall( @@ -80,7 +80,7 @@ contract L2CustomERC20GatewayTest is L2GatewayBaseTest { ) ) ); - + // Expect revert due to zero counterpart address. hevm.expectRevert("zero counterpart address"); ITransparentUpgradeableProxy(address(l2CustomERC20GatewayProxyTemp)).upgradeToAndCall( @@ -134,7 +134,7 @@ contract L2CustomERC20GatewayTest is L2GatewayBaseTest { // Cast the proxy contract address to the L2CustomERC20Gateway contract type to call its methods. L2CustomERC20Gateway l2CustomERC20GatewayTemp = L2CustomERC20Gateway((address(l2CustomERC20GatewayProxyTemp))); hevm.stopPrank(); - + // Verify the counterpart, router and messenger are initialized successfully. assertEq(l2CustomERC20GatewayTemp.counterpart(), address(NON_ZERO_ADDRESS)); assertEq(l2CustomERC20GatewayTemp.router(), address(l2GatewayRouter)); @@ -155,7 +155,7 @@ contract L2CustomERC20GatewayTest is L2GatewayBaseTest { function test_updateTokenMapping_succeeds(address token1, address token2) public { hevm.assume(token1 != address(0)); - + // Expect the UpdateTokenMapping event to be emitted successfully. hevm.expectEmit(true, true, true, true); emit L2CustomERC20Gateway.UpdateTokenMapping(token2, address(0), token1); diff --git a/contracts/contracts/test/L2ERC1155Gateway.t.sol b/contracts/contracts/test/L2ERC1155Gateway.t.sol index 1a6bae769..6757de9f5 100644 --- a/contracts/contracts/test/L2ERC1155Gateway.t.sol +++ b/contracts/contracts/test/L2ERC1155Gateway.t.sol @@ -70,7 +70,7 @@ contract L2ERC1155GatewayTest is L2GatewayBaseTest, ERC1155TokenReceiver { ) ) ); - + // Expect revert due to zero messenger address. hevm.expectRevert("zero messenger address"); ITransparentUpgradeableProxy(address(l2ERC1155GatewayProxy)).upgradeToAndCall( @@ -109,7 +109,7 @@ contract L2ERC1155GatewayTest is L2GatewayBaseTest, ERC1155TokenReceiver { // Cast the proxy contract address to the L2ERC1155Gateway contract type to call its methods. L2ERC1155Gateway l2ERC1155GatewayTemp = L2ERC1155Gateway(address(l2ERC1155GatewayProxyTemp)); hevm.stopPrank(); - + // Verify the counterpart and messenger are initialized successfully. assertEq(l2ERC1155GatewayTemp.counterpart(), address(NON_ZERO_ADDRESS)); assertEq(l2ERC1155GatewayTemp.messenger(), address(l2CrossDomainMessenger)); @@ -166,7 +166,14 @@ contract L2ERC1155GatewayTest is L2GatewayBaseTest, ERC1155TokenReceiver { // Expect WithdrawERC1155 event to be emitted. hevm.expectEmit(true, true, true, true); - emit IL2ERC1155Gateway.WithdrawERC1155(address(token), address(token), address(this), address(this), tokenId, amount); + emit IL2ERC1155Gateway.WithdrawERC1155( + address(token), + address(token), + address(this), + address(this), + tokenId, + amount + ); gateway.withdrawERC1155(address(token), tokenId, amount, 0); assertEq(token.balanceOf(address(gateway), tokenId), 0); @@ -240,7 +247,14 @@ contract L2ERC1155GatewayTest is L2GatewayBaseTest, ERC1155TokenReceiver { // Expect BatchWithdrawERC1155 event to be emitted. hevm.expectEmit(true, true, true, true); - emit IL2ERC1155Gateway.BatchWithdrawERC1155(address(token), address(token), address(this), address(this), _tokenIds, _amounts); + emit IL2ERC1155Gateway.BatchWithdrawERC1155( + address(token), + address(token), + address(this), + address(this), + _tokenIds, + _amounts + ); gateway.batchWithdrawERC1155(address(token), _tokenIds, _amounts, 0); for (uint256 i = 0; i < count; i++) { @@ -264,7 +278,14 @@ contract L2ERC1155GatewayTest is L2GatewayBaseTest, ERC1155TokenReceiver { // Expect BatchWithdrawERC1155 event to be emitted. hevm.expectEmit(true, true, true, true); - emit IL2ERC1155Gateway.BatchWithdrawERC1155(address(token), address(token), address(this), to, _tokenIds, _amounts); + emit IL2ERC1155Gateway.BatchWithdrawERC1155( + address(token), + address(token), + address(this), + to, + _tokenIds, + _amounts + ); gateway.batchWithdrawERC1155(address(token), to, _tokenIds, _amounts, 0); for (uint256 i = 0; i < count; i++) { @@ -386,7 +407,14 @@ contract L2ERC1155GatewayTest is L2GatewayBaseTest, ERC1155TokenReceiver { // Expect the FinalizeDepositERC1155 event can be emitted successfully. hevm.expectEmit(true, true, true, true); - emit IL2ERC1155Gateway.FinalizeBatchDepositERC1155(address(token), address(token), from, to, _tokenIds, _amounts); + emit IL2ERC1155Gateway.FinalizeBatchDepositERC1155( + address(token), + address(token), + from, + to, + _tokenIds, + _amounts + ); messenger.callTarget( address(gateway), diff --git a/contracts/contracts/test/L2ERC721Gateway.t.sol b/contracts/contracts/test/L2ERC721Gateway.t.sol index 74aebe1bc..44ec84c3a 100644 --- a/contracts/contracts/test/L2ERC721Gateway.t.sol +++ b/contracts/contracts/test/L2ERC721Gateway.t.sol @@ -70,7 +70,7 @@ contract L2ERC721GatewayTest is L2GatewayBaseTest { ) ) ); - + // Expect revert due to zero messenger address. hevm.expectRevert("zero messenger address"); ITransparentUpgradeableProxy(address(l2ERC721GatewayProxy)).upgradeToAndCall( @@ -109,7 +109,7 @@ contract L2ERC721GatewayTest is L2GatewayBaseTest { // Cast the proxy contract address to the L2ERC721Gateway contract type to call its methods. L2ERC721Gateway l2ERC721GatewayTemp = L2ERC721Gateway(address(l2ERC721GatewayProxyTemp)); hevm.stopPrank(); - + // Verify the counterpart and messenger are initialized successfully. assertEq(l2ERC721GatewayTemp.counterpart(), address(NON_ZERO_ADDRESS)); assertEq(l2ERC721GatewayTemp.messenger(), address(l2CrossDomainMessenger)); @@ -231,7 +231,13 @@ contract L2ERC721GatewayTest is L2GatewayBaseTest { // Expect BatchWithdrawERC721 event to be emitted. hevm.expectEmit(true, true, true, true); - emit IL2ERC721Gateway.BatchWithdrawERC721(address(token), address(token), address(this), address(this), _tokenIds); + emit IL2ERC721Gateway.BatchWithdrawERC721( + address(token), + address(token), + address(this), + address(this), + _tokenIds + ); gateway.batchWithdrawERC721(address(token), _tokenIds, 0); for (uint256 i = 0; i < count; i++) { diff --git a/contracts/contracts/test/L2GatewayRouter.t.sol b/contracts/contracts/test/L2GatewayRouter.t.sol index 5a4b6076b..5d8ca28c8 100644 --- a/contracts/contracts/test/L2GatewayRouter.t.sol +++ b/contracts/contracts/test/L2GatewayRouter.t.sol @@ -48,20 +48,16 @@ contract L2GatewayRouterTest is L2GatewayBaseTest { hevm.startPrank(multisig); // Deploy a proxy contract for the L2GatewayRouter. TransparentUpgradeableProxy l2GatewayRouterProxyTempA = new TransparentUpgradeableProxy( - address(emptyContract), - address(multisig), - new bytes(0) + address(emptyContract), + address(multisig), + new bytes(0) ); // Deploy a new L2GatewayRouter contract. L2GatewayRouter l2GatewayRouterImplTempA = new L2GatewayRouter(); // Initialize the proxy with the new implementation. - ITransparentUpgradeableProxy(address(l2GatewayRouterProxyTempA)) - .upgradeToAndCall( - address(l2GatewayRouterImplTempA), - abi.encodeCall( - L2GatewayRouter.initialize, - (address(0), address(0)) - ) + ITransparentUpgradeableProxy(address(l2GatewayRouterProxyTempA)).upgradeToAndCall( + address(l2GatewayRouterImplTempA), + abi.encodeCall(L2GatewayRouter.initialize, (address(0), address(0))) ); // Cast the proxy address to the L2GatewayRouter contract type to call its methods. L2GatewayRouter l2GatewayRouterTempA = L2GatewayRouter(address(l2GatewayRouterProxyTempA)); @@ -72,33 +68,29 @@ contract L2GatewayRouterTest is L2GatewayBaseTest { hevm.startPrank(multisig); // Deploy another proxy contract for the L2GatewayRouter. TransparentUpgradeableProxy l2GatewayRouterProxyTempB = new TransparentUpgradeableProxy( - address(emptyContract), - address(multisig), - new bytes(0) + address(emptyContract), + address(multisig), + new bytes(0) ); // Deploy a new L2GatewayRouter contract. L2GatewayRouter l2GatewayRouterImplTempB = new L2GatewayRouter(); - + // Expect the SetDefaultERC20Gateway event to be emitted successfully. hevm.expectEmit(true, true, false, true); emit IL2GatewayRouter.SetDefaultERC20Gateway(address(0), address(2)); - + // Expect the SetETHGateway event to be emitted successfully. hevm.expectEmit(true, true, false, true); emit IL2GatewayRouter.SetETHGateway(address(0), address(1)); // Initialize the proxy with the new implementation. - ITransparentUpgradeableProxy(address(l2GatewayRouterProxyTempB)) - .upgradeToAndCall( - address(l2GatewayRouterImplTempB), - abi.encodeCall( - L2GatewayRouter.initialize, - (address(1), address(2)) - ) + ITransparentUpgradeableProxy(address(l2GatewayRouterProxyTempB)).upgradeToAndCall( + address(l2GatewayRouterImplTempB), + abi.encodeCall(L2GatewayRouter.initialize, (address(1), address(2))) ); // Cast the proxy address to the L2GatewayRouter contract type to call its methods. L2GatewayRouter l2GatewayRouterTempB = L2GatewayRouter(address(l2GatewayRouterProxyTempB)); hevm.stopPrank(); - + // Verify that the ethGateway and defaultERC20Gateway are initialized correctly. assertEq(l2GatewayRouterTempB.ethGateway(), address(1)); assertEq(l2GatewayRouterTempB.defaultERC20Gateway(), address(2)); diff --git a/contracts/contracts/test/Rollup.t.sol b/contracts/contracts/test/Rollup.t.sol index 0e3464caf..95d49eda1 100644 --- a/contracts/contracts/test/Rollup.t.sol +++ b/contracts/contracts/test/Rollup.t.sol @@ -56,7 +56,6 @@ contract RollupCommitBatchTest is L1MessageBaseTest { rollup.importGenesisBatch(batchHeader0); bytes32 batchHash0 = rollup.committedBatches(0); - bytes memory bitmap; bytes memory batch; // commit batch1, one batch with one block, 1 tx, 1 L1 message, no skip @@ -76,7 +75,7 @@ contract RollupCommitBatchTest is L1MessageBaseTest { // f1f58308e98844ec99e2990d88bfb36e1a30f0e6591e62af90ae6f8498a1b067 // => hash for parent batch header // 00847173b29b238cf319cde79512b7c213e5a8b4138daa7051914c4592b6dfc7 - bytes memory batchHeader1 = new bytes(249 + 32); + bytes memory batchHeader1 = new bytes(249); assembly { mstore(add(batchHeader1, 0x20), 0) // version mstore(add(batchHeader1, add(0x20, 1)), shl(192, 1)) // batchIndex = 1 @@ -92,7 +91,6 @@ contract RollupCommitBatchTest is L1MessageBaseTest { 0xf1f58308e98844ec99e2990d88bfb36e1a30f0e6591e62af90ae6f8498a1b067 ) // sequencerSetVerifyHash mstore(add(batchHeader1, add(0x20, 217)), batchHash0) // parentBatchHash - mstore(add(batchHeader1, add(0x20, 249)), 0) // bitmap0 } batch = new bytes(2 + 60); assembly { @@ -100,7 +98,6 @@ contract RollupCommitBatchTest is L1MessageBaseTest { mstore(add(batch, add(0x22, 56)), shl(240, 1)) // numTransactions = 1 mstore(add(batch, add(0x22, 58)), shl(240, 1)) // numL1Messages = 1 } - bitmap = new bytes(32); hevm.mockCall( address(rollup.l1StakingContract()), abi.encodeCall(IL1Staking.isActiveStaker, (address(0))), @@ -113,14 +110,14 @@ contract RollupCommitBatchTest is L1MessageBaseTest { ); hevm.startPrank(address(0)); hevm.expectEmit(true, true, false, true); - emit IRollup.CommitBatch(1, bytes32(0x135ab7153517794b38566492dee2a60426285da9764f8ad07da93cf7dd560a59)); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, bitmap, bytesData1, bytesData1, bytesData3); + emit IRollup.CommitBatch(1, bytes32(0x7764891041982c1f3abd964616bf5c777e752e327779f980a0881ef2bc994324)); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, bytesData1, bytesData1, bytesData3); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); assertFalse(rollup.isBatchFinalized(1)); bytes32 batchHash1 = rollup.committedBatches(1); - assertEq(batchHash1, bytes32(0x135ab7153517794b38566492dee2a60426285da9764f8ad07da93cf7dd560a59)); + assertEq(batchHash1, bytes32(0x7764891041982c1f3abd964616bf5c777e752e327779f980a0881ef2bc994324)); bytes32 stateRoot1 = rollup.committedStateRoots(1); assertEq(stateRoot1, bytesData1); @@ -132,7 +129,6 @@ contract RollupCommitBatchTest is L1MessageBaseTest { assertEq(rollup.finalizedStateRoots(1), bytesData1); assertTrue(rollup.withdrawalRoots(bytes32(uint256(3)))); assertEq(rollup.lastFinalizedBatchIndex(), 1); - assertFalse(l1MessageQueueWithGasPriceOracle.isMessageSkipped(0)); assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); // check deleted values assertFalse(rollup.batchExist(0)); @@ -143,13 +139,13 @@ contract RollupCommitBatchTest is L1MessageBaseTest { // 2. block1 has 5 tx, 3 L1 messages, no skips // 3. block2 has 10 tx, 5 L1 messages, even is skipped, last is not skipped // 4. block3 has 300 tx, 256 L1 messages, odd position is skipped, last is not skipped - bytes memory batchHeader2 = new bytes(249 + 32 + 32); + bytes memory batchHeader2 = new bytes(249); assembly { mstore(add(batchHeader2, 0x20), 0) // version mstore(add(batchHeader2, add(0x20, 1)), shl(192, 2)) // batchIndex = 2 mstore(add(batchHeader2, add(0x20, 9)), shl(192, 264)) // l1MessagePopped = 264 mstore(add(batchHeader2, add(0x20, 17)), shl(192, 265)) // totalL1MessagePopped = 265 - mstore(add(batchHeader2, add(0x20, 25)), 0xc67045fcf768071021f5acec08a921553fdae4c33a675d38e4c4a25589c91120) // dataHash + mstore(add(batchHeader2, add(0x20, 25)), 0x81e7e4ffa69f7496f9377a1e4140fbb16fcc81d8086b44a1316fc77cc2b9a63b) // dataHash mstore(add(batchHeader2, add(0x20, 57)), 0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014) // l2 tx blob versioned hash mstore(add(batchHeader2, add(0x20, 89)), bytesData1) // prevStateHash mstore(add(batchHeader2, add(0x20, 121)), bytesData1) // postStateHash @@ -159,11 +155,6 @@ contract RollupCommitBatchTest is L1MessageBaseTest { 0xf1f58308e98844ec99e2990d88bfb36e1a30f0e6591e62af90ae6f8498a1b067 ) // sequencerSetVerifyHash mstore(add(batchHeader2, add(0x20, 217)), batchHash1) // parentBatchHash - mstore( - add(batchHeader2, add(0x20, 249)), - 77194726158210796949047323339125271902179989777093709359638389338608753093160 - ) // bitmap0 - mstore(add(batchHeader2, add(0x20, 281)), 42) // bitmap1 } batch = new bytes(2 + 60 * 4); assembly { @@ -178,15 +169,6 @@ contract RollupCommitBatchTest is L1MessageBaseTest { mstore(add(batch, add(214, 58)), shl(240, 256)) // block3.numL1Messages = 256 } - bitmap = new bytes(64); - assembly { - mstore( - add(bitmap, add(0x20, 0)), - 77194726158210796949047323339125271902179989777093709359638389338608753093160 - ) // bitmap0 - mstore(add(bitmap, add(0x20, 32)), 42) // bitmap1 - } - hevm.prank(multisig); hevm.mockCall( address(rollup.l1StakingContract()), @@ -200,15 +182,15 @@ contract RollupCommitBatchTest is L1MessageBaseTest { ); hevm.startPrank(address(0)); hevm.expectEmit(true, true, false, true); - emit IRollup.CommitBatch(2, bytes32(0x71259c7573b1db248381cef917270058e2ca20620c6eae975a1aa76b9858392a)); + emit IRollup.CommitBatch(2, bytes32(0x0389812d59b1230ba183f27cbe53955d98a1bce20512048a9b9e062b71403c94)); - batchDataInput = IRollup.BatchDataInput(0, batchHeader1, batch, bitmap, bytesData1, bytesData1, bytesData4); + batchDataInput = IRollup.BatchDataInput(0, batchHeader1, batch, bytesData1, bytesData1, bytesData4); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); assertFalse(rollup.isBatchFinalized(2)); bytes32 batchHash2 = rollup.committedBatches(2); - assertEq(batchHash2, bytes32(0x71259c7573b1db248381cef917270058e2ca20620c6eae975a1aa76b9858392a)); + assertEq(batchHash2, bytes32(0x0389812d59b1230ba183f27cbe53955d98a1bce20512048a9b9e062b71403c94)); bytes32 stateRoot2 = rollup.committedStateRoots(2); assertEq(stateRoot2, bytesData1); @@ -227,27 +209,6 @@ contract RollupCommitBatchTest is L1MessageBaseTest { // check deleted values assertFalse(rollup.batchExist(1)); assertEq(rollup.committedStateRoots(1), 0); - - // 1 ~ 4, zero - for (uint256 i = 1; i < 4; i++) { - assertFalse(l1MessageQueueWithGasPriceOracle.isMessageSkipped(i)); - } - // 4 ~ 9, even is nonzero, odd is zero - for (uint256 i = 4; i < 9; i++) { - if (i % 2 == 1 || i == 8) { - assertFalse(l1MessageQueueWithGasPriceOracle.isMessageSkipped(i)); - } else { - assertTrue(l1MessageQueueWithGasPriceOracle.isMessageSkipped(i)); - } - } - // 9 ~ 265, even is nonzero, odd is zero - for (uint256 i = 9; i < 265; i++) { - if (i % 2 == 1 || i == 264) { - assertFalse(l1MessageQueueWithGasPriceOracle.isMessageSkipped(i)); - } else { - assertTrue(l1MessageQueueWithGasPriceOracle.isMessageSkipped(i)); - } - } } } @@ -309,60 +270,28 @@ contract RollupTest is L1MessageBaseTest { // only active staker allowed, revert hevm.startPrank(address(0)); hevm.expectRevert("only active staker allowed"); - batchDataInput = IRollup.BatchDataInput( - 0, - batchHeader0, - new bytes(0), - new bytes(0), - stateRoot, - stateRoot, - getTreeRoot() - ); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, new bytes(0), stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); // invalid version, revert hevm.startPrank(alice); hevm.expectRevert("invalid version"); - batchDataInput = IRollup.BatchDataInput( - 1, - batchHeader0, - new bytes(0), - new bytes(0), - stateRoot, - stateRoot, - getTreeRoot() - ); + batchDataInput = IRollup.BatchDataInput(1, batchHeader0, new bytes(0), stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); // batch is empty, revert hevm.startPrank(alice); hevm.expectRevert("batch is empty"); - batchDataInput = IRollup.BatchDataInput( - 0, - batchHeader0, - new bytes(0), - new bytes(0), - stateRoot, - stateRoot, - getTreeRoot() - ); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, new bytes(0), stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); - // batch header length too small, revert + // batch header length incorrect, revert hevm.startPrank(alice); - hevm.expectRevert("batch header length too small"); - batchDataInput = IRollup.BatchDataInput( - 0, - new bytes(120), - new bytes(1), - new bytes(0), - stateRoot, - stateRoot, - getTreeRoot() - ); + hevm.expectRevert("batch header length must be 249"); + batchDataInput = IRollup.BatchDataInput(0, new bytes(120), new bytes(1), stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); @@ -372,15 +301,7 @@ contract RollupTest is L1MessageBaseTest { } hevm.startPrank(alice); hevm.expectRevert("incorrect batch index"); - batchDataInput = IRollup.BatchDataInput( - 0, - batchHeader0, - new bytes(1), - new bytes(0), - stateRoot, - stateRoot, - getTreeRoot() - ); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, new bytes(1), stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); assembly { @@ -393,15 +314,7 @@ contract RollupTest is L1MessageBaseTest { } hevm.startPrank(alice); hevm.expectRevert("incorrect parent batch hash"); - batchDataInput = IRollup.BatchDataInput( - 0, - batchHeader0, - new bytes(1), - new bytes(0), - stateRoot, - stateRoot, - getTreeRoot() - ); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, new bytes(1), stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); assembly { @@ -416,7 +329,6 @@ contract RollupTest is L1MessageBaseTest { 0, batchHeader0, new bytes(1), - new bytes(0), bytes32(uint256(2)), stateRoot, getTreeRoot() @@ -424,18 +336,10 @@ contract RollupTest is L1MessageBaseTest { rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); - // wrong bitmap length, revert + // incorrect batch header length, revert hevm.startPrank(alice); - hevm.expectRevert("wrong bitmap length"); - batchDataInput = IRollup.BatchDataInput( - 0, - new bytes(250), - new bytes(1), - new bytes(0), - stateRoot, - stateRoot, - getTreeRoot() - ); + hevm.expectRevert("batch header length must be 249"); + batchDataInput = IRollup.BatchDataInput(0, new bytes(250), new bytes(1), stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); @@ -443,15 +347,7 @@ contract RollupTest is L1MessageBaseTest { bytes memory batch = new bytes(2); hevm.startPrank(alice); hevm.expectRevert(BatchCodecV0.ErrorNoBlockInBatch.selector); - batchDataInput = IRollup.BatchDataInput( - 0, - batchHeader0, - batch, - new bytes(0), - stateRoot, - stateRoot, - getTreeRoot() - ); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); @@ -460,41 +356,18 @@ contract RollupTest is L1MessageBaseTest { batch[1] = bytes1(uint8(1)); // one block in this batch hevm.startPrank(alice); hevm.expectRevert(BatchCodecV0.ErrorIncorrectBatchLength.selector); - batchDataInput = IRollup.BatchDataInput( - 0, - batchHeader0, - batch, - new bytes(0), - stateRoot, - stateRoot, - getTreeRoot() - ); - rollup.commitBatch(batchDataInput, batchSignatureInput); - hevm.stopPrank(); - - // cannot skip last L1 message, revert - batch = new bytes(2 + 60); - bytes memory bitmap = new bytes(32); - batch[1] = bytes1(uint8(1)); // one block in this batch - batch[59] = bytes1(uint8(1)); // numTransactions = 1 - batch[61] = bytes1(uint8(1)); // numL1Messages = 1 - bitmap[31] = bytes1(uint8(1)); - hevm.startPrank(alice); - hevm.expectRevert("cannot skip last L1 message"); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, bitmap, stateRoot, stateRoot, getTreeRoot()); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); // num txs less than num L1 msgs, revert batch = new bytes(2 + 60); - bitmap = new bytes(32); batch[1] = bytes1(uint8(1)); // one block in this batch batch[59] = bytes1(uint8(1)); // numTransactions = 1 batch[61] = bytes1(uint8(3)); // numL1Messages = 3 - bitmap[31] = bytes1(uint8(3)); hevm.startPrank(alice); hevm.expectRevert("num txs less than num L1 msgs"); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, bitmap, stateRoot, stateRoot, getTreeRoot()); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); @@ -503,15 +376,7 @@ contract RollupTest is L1MessageBaseTest { batch[1] = bytes1(uint8(1)); // one block in this batch hevm.startPrank(alice); hevm.expectRevert(BatchCodecV0.ErrorIncorrectBatchLength.selector); - batchDataInput = IRollup.BatchDataInput( - 0, - batchHeader0, - batch, - new bytes(0), - stateRoot, - stateRoot, - getTreeRoot() - ); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); @@ -519,15 +384,7 @@ contract RollupTest is L1MessageBaseTest { batch = new bytes(2 + 60); batch[1] = bytes1(uint8(1)); // one block in this batch hevm.startPrank(alice); - batchDataInput = IRollup.BatchDataInput( - 0, - batchHeader0, - batch, - new bytes(0), - stateRoot, - stateRoot, - getTreeRoot() - ); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, getTreeRoot()); hevm.deal(address(0), 10 ether); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); @@ -536,15 +393,7 @@ contract RollupTest is L1MessageBaseTest { // batch is already committed, revert hevm.startPrank(alice); hevm.expectRevert("batch already committed"); - batchDataInput = IRollup.BatchDataInput( - 0, - batchHeader0, - batch, - new bytes(0), - stateRoot, - stateRoot, - getTreeRoot() - ); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); } @@ -574,15 +423,7 @@ contract RollupTest is L1MessageBaseTest { bytes memory batch = new bytes(2 + 60); batch[1] = bytes1(uint8(1)); // one block in this batch hevm.startPrank(alice); - batchDataInput = IRollup.BatchDataInput( - 0, - batchHeader0, - batch, - new bytes(0), - stateRoot, - stateRoot, - bytes32(uint256(4)) - ); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, bytes32(uint256(4))); rollup.commitBatch(batchDataInput, batchSignatureInput); // first chunk with too many txs hevm.stopPrank(); assertEq(rollup.committedBatches(1), 0xb7cb76cf9e9f5878136c1d14e095f5d5b435fe8252cad6eb100e51110033b6ed); @@ -607,15 +448,7 @@ contract RollupTest is L1MessageBaseTest { // commit another batch hevm.startPrank(alice); - batchDataInput = IRollup.BatchDataInput( - 0, - batchHeader1, - batch, - new bytes(0), - stateRoot, - stateRoot, - bytes32(uint256(4)) - ); + batchDataInput = IRollup.BatchDataInput(0, batchHeader1, batch, stateRoot, stateRoot, bytes32(uint256(4))); rollup.commitBatch(batchDataInput, batchSignatureInput); // first chunk with too many txs hevm.stopPrank(); @@ -675,7 +508,6 @@ contract RollupTest is L1MessageBaseTest { 0, new bytes(0), new bytes(0), - new bytes(0), stateRoot, stateRoot, bytes32(uint256(4)) @@ -720,26 +552,17 @@ contract RollupTest is L1MessageBaseTest { hevm.prank(multisig); rollup.importGenesisBatch(batchHeader); - // batch header length too small, revert + // batch header length incorrect, revert batchHeader = new bytes(248); assembly { mstore(add(batchHeader, add(0x20, 121)), bytesData1) // stateRootHsash } - hevm.expectRevert("batch header length too small"); - hevm.prank(multisig); - rollup.importGenesisBatch(batchHeader); - - // wrong bitmap length, revert - batchHeader = new bytes(250); - assembly { - mstore(add(batchHeader, add(0x20, 121)), bytesData1) // stateRootHsash - } - hevm.expectRevert("wrong bitmap length"); + hevm.expectRevert("batch header length must be 249"); hevm.prank(multisig); rollup.importGenesisBatch(batchHeader); // not all fields are zero, revert - batchHeader = new bytes(249 + 32); + batchHeader = new bytes(249); assembly { mstore(add(batchHeader, add(0x20, 9)), shl(192, 1)) // l1MessagePopped not zero mstore(add(batchHeader, add(0x20, 121)), bytesData1) // stateRootHsash diff --git a/contracts/contracts/test/ZkEvmVerifierV1.t.sol b/contracts/contracts/test/ZkEvmVerifierV1.t.sol index 47f4be4dc..7891058e8 100644 --- a/contracts/contracts/test/ZkEvmVerifierV1.t.sol +++ b/contracts/contracts/test/ZkEvmVerifierV1.t.sol @@ -45,4 +45,4 @@ contract EvmTest is Test { fixture.proof[31] = 0x00; evm.verifyPlonk(fixture.proof, fixture.publicValues); } -} \ No newline at end of file +} diff --git a/contracts/contracts/test/base/BatchHeaderCodeV0.t.sol b/contracts/contracts/test/base/BatchHeaderCodeV0.t.sol index d7533aa8d..9ecabccdb 100644 --- a/contracts/contracts/test/base/BatchHeaderCodeV0.t.sol +++ b/contracts/contracts/test/base/BatchHeaderCodeV0.t.sol @@ -17,7 +17,7 @@ contract BatchHeaderCodeV0Test is DSTestPlus { } function test_btach_decode() public { - bytes memory batchHeader0 = new bytes(249 + 32); + bytes memory batchHeader0 = new bytes(249); assembly { mstore(add(batchHeader0, 0x20), shl(248, 1)) // version mstore(add(batchHeader0, add(0x20, 1)), shl(192, 1)) // batchIndex = 1 @@ -30,7 +30,6 @@ contract BatchHeaderCodeV0Test is DSTestPlus { mstore(add(batchHeader0, add(0x20, 153)), ZERO_VERSIONED_HASH) // withdrawRootHash mstore(add(batchHeader0, add(0x20, 185)), ZERO_VERSIONED_HASH) // sequencerSetVerifyHash mstore(add(batchHeader0, add(0x20, 217)), ZERO_VERSIONED_HASH) // parentBatchHash - mstore(add(batchHeader0, add(0x20, 249)), 0) // bitmap0 } uint256 version = codecTest.getVersion(batchHeader0); @@ -78,7 +77,6 @@ contract BatchHeaderCodeV0Test is DSTestPlus { add(batchHeader0, add(0x20, 217)), 0x5db199130d0c9334530358520a66d09c98c62325011a3665cf3efcc93e77623c ) // parentBatchHash - mstore(add(batchHeader0, add(0x20, 249)), 0) // bitmap0 } { uint256 version = codecTest.getVersion(batchHeader0); diff --git a/contracts/go.mod b/contracts/go.mod index 614343366..783504b76 100644 --- a/contracts/go.mod +++ b/contracts/go.mod @@ -6,7 +6,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/iden3/go-iden3-crypto v0.0.16 - github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 + github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e github.com/stretchr/testify v1.9.0 ) diff --git a/contracts/go.sum b/contracts/go.sum index 8f4a20fa4..71bfe5ece 100644 --- a/contracts/go.sum +++ b/contracts/go.sum @@ -25,8 +25,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 h1:4+cbRSS4lacSIC81RXxvA04UHhGVC4SHVn+bKeqhPSM= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= diff --git a/go-ethereum b/go-ethereum index 0ff2a10a9..5c7f1bb70 160000 --- a/go-ethereum +++ b/go-ethereum @@ -1 +1 @@ -Subproject commit 0ff2a10a9625e38b5d2189ad713d104192c1ae16 +Subproject commit 5c7f1bb7073ef2c88ea52d00e217b60d34ff221f diff --git a/go.work.sum b/go.work.sum index f675befb5..af83c40f3 100644 --- a/go.work.sum +++ b/go.work.sum @@ -761,6 +761,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/morph-l2/go-ethereum v0.5.0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/go-ethereum v0.6.0/go.mod h1:Z8nCRf+BHV5GwFKpVamy6yur7LrKkzqaPfQcwYnq0bE= +github.com/morph-l2/go-ethereum v1.10.14-0.20241028101924-8c247ffe3315 h1:egBq7X488cY3PMSecpyf34H6zqwix0WwcDzcCOeKlYU= +github.com/morph-l2/go-ethereum v1.10.14-0.20241028101924-8c247ffe3315/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/node/core/batch.go b/node/core/batch.go index e463f5f4a..2ecb561ba 100644 --- a/node/core/batch.go +++ b/node/core/batch.go @@ -7,6 +7,8 @@ import ( "fmt" "math/big" + "morph-l2/node/types" + "github.com/morph-l2/go-ethereum/accounts/abi/bind" "github.com/morph-l2/go-ethereum/common" eth "github.com/morph-l2/go-ethereum/core/types" @@ -14,8 +16,6 @@ import ( "github.com/morph-l2/go-ethereum/crypto/bls12381" "github.com/tendermint/tendermint/l2node" tmtypes "github.com/tendermint/tendermint/types" - - "morph-l2/node/types" ) type BatchingCache struct { @@ -25,7 +25,6 @@ type BatchingCache struct { // accumulated batch data batchData *types.BatchData totalL1MessagePopped uint64 - skippedBitmap []*big.Int postStateRoot common.Hash withdrawRoot common.Hash @@ -39,7 +38,6 @@ type BatchingCache struct { currentTxs tmtypes.Txs currentL1TxsHashes []common.Hash totalL1MessagePoppedAfterCurBlock uint64 - skippedBitmapAfterCurBlock []*big.Int currentStateRoot common.Hash currentWithdrawRoot common.Hash currentBlockBytes []byte @@ -65,7 +63,6 @@ func (bc *BatchingCache) ClearCurrent() { bc.currentTxs = nil bc.currentL1TxsHashes = nil bc.currentBlockContext = nil - bc.skippedBitmapAfterCurBlock = nil bc.totalL1MessagePoppedAfterCurBlock = 0 bc.currentStateRoot = common.Hash{} bc.currentWithdrawRoot = common.Hash{} @@ -103,8 +100,6 @@ func (e *Executor) CalculateCapWithProposalBlock(currentBlockBytes []byte, curre } } - // skipped L1 message bitmap, an array of 256-bit bitmaps - var skippedBitmap []*big.Int var txsPayload []byte var l1TxHashes []common.Hash var totalL1MessagePopped = parentBatchHeader.TotalL1MessagePopped @@ -129,7 +124,7 @@ func (e *Executor) CalculateCapWithProposalBlock(currentBlockBytes []byte, curre } totalL1MessagePoppedBefore := totalL1MessagePopped - txsPayload, l1TxHashes, totalL1MessagePopped, skippedBitmap, l2TxNum, err = ParsingTxs(transactions[i], parentBatchHeader.TotalL1MessagePopped, totalL1MessagePoppedBefore, skippedBitmap) + txsPayload, l1TxHashes, totalL1MessagePopped, l2TxNum, err = ParsingTxs(transactions[i], totalL1MessagePoppedBefore) if err != nil { return false, err } @@ -151,7 +146,6 @@ func (e *Executor) CalculateCapWithProposalBlock(currentBlockBytes []byte, curre } e.batchingCache.parentBatchHeader = parentBatchHeader - e.batchingCache.skippedBitmap = skippedBitmap header, err := e.l2Client.HeaderByNumber(context.Background(), big.NewInt(int64(lastHeightBeforeCurrentBatch))) if err != nil { return false, err @@ -194,14 +188,6 @@ func (e *Executor) SealBatch() ([]byte, []byte, error) { return nil, nil, errors.New("failed to seal batch. No data found in batch cache") } - // compute skipped bitmap - skippedL1MessageBitmapBytes := make([]byte, len(e.batchingCache.skippedBitmap)*32) - for ii, num := range e.batchingCache.skippedBitmap { - bz := num.Bytes() - padding := 32 - len(bz) - copy(skippedL1MessageBitmapBytes[32*ii+padding:], bz) - } - sidecar, err := types.EncodeTxsPayloadToBlob(e.batchingCache.batchData.TxsPayload()) if err != nil { return nil, nil, err @@ -216,10 +202,23 @@ func (e *Executor) SealBatch() ([]byte, []byte, error) { return nil, nil, fmt.Errorf("failed to get sequencerSetVerifyHash, err: %w", err) } + block, err := wrappedBlockFromBytes(e.batchingCache.currentBlockBytes) + if err != nil { + return nil, nil, err + } + l1MessagePopped := e.batchingCache.totalL1MessagePopped - e.batchingCache.parentBatchHeader.TotalL1MessagePopped + var skippedL1MessageBitmap []byte + if block.Timestamp < e.UpgradeBatchTime { + e.logger.Info("waiting upgrade batch time", "upgradeBatchTime", e.UpgradeBatchTime, "current block time", block.Timestamp, "remaining seconds", e.UpgradeBatchTime-block.Timestamp) + if l1MessagePopped > 0 { // 32 zero bytes when before upgrading and has L1 message in batch + skippedL1MessageBitmap = make([]byte, 32) + } + } + batchHeader := types.BatchHeader{ Version: 0, BatchIndex: e.batchingCache.parentBatchHeader.BatchIndex + 1, - L1MessagePopped: e.batchingCache.totalL1MessagePopped - e.batchingCache.parentBatchHeader.TotalL1MessagePopped, + L1MessagePopped: l1MessagePopped, TotalL1MessagePopped: e.batchingCache.totalL1MessagePopped, DataHash: e.batchingCache.batchData.DataHash(), BlobVersionedHash: blobHashes[0], // currently we only have one blob @@ -228,20 +227,20 @@ func (e *Executor) SealBatch() ([]byte, []byte, error) { WithdrawalRoot: e.batchingCache.withdrawRoot, SequencerSetVerifyHash: sequencerSetVerifyHash, ParentBatchHash: e.batchingCache.parentBatchHeader.Hash(), - SkippedL1MessageBitmap: skippedL1MessageBitmapBytes, + SkippedL1MessageBitmap: skippedL1MessageBitmap, } e.batchingCache.sealedBatchHeader = &batchHeader e.batchingCache.sealedSidecar = sidecar batchHash := e.batchingCache.sealedBatchHeader.Hash() e.logger.Info("Sealed batch header", "batchHash", batchHash.Hex()) - e.logger.Info(fmt.Sprintf("===batchIndex: %d \n===L1MessagePopped: %d \n===TotalL1MessagePopped: %d \n===dataHash: %x \n===blockNum: %d \n===ParentBatchHash: %x \n===SkippedL1MessageBitmap: %x \n", + e.logger.Info(fmt.Sprintf("===batchIndex: %d \n===L1MessagePopped: %d \n===TotalL1MessagePopped: %d \n===dataHash: %x \n===blockNum: %d \n===SkippedL1MessageBitmap: %s \n===ParentBatchHash: %x \n", batchHeader.BatchIndex, batchHeader.L1MessagePopped, batchHeader.TotalL1MessagePopped, batchHeader.DataHash, e.batchingCache.batchData.BlockNum(), - batchHeader.ParentBatchHash, - batchHeader.SkippedL1MessageBitmap)) + batchHeader.SkippedL1MessageBitmap, + batchHeader.ParentBatchHash)) blockContexts, _ := e.batchingCache.batchData.Encode() e.logger.Info(fmt.Sprintf("===blockContexts: %x \n", blockContexts)) @@ -320,12 +319,11 @@ func (e *Executor) CommitBatch(currentBlockBytes []byte, currentTxs tmtypes.Txs, e.batchingCache.sealedBatchHeader = nil e.batchingCache.sealedSidecar = nil - _, _, totalL1MessagePopped, skippedBitmap, _, err := ParsingTxs(e.batchingCache.currentTxs, e.batchingCache.totalL1MessagePopped, e.batchingCache.totalL1MessagePopped, nil) + _, _, totalL1MessagePopped, _, err := ParsingTxs(e.batchingCache.currentTxs, e.batchingCache.totalL1MessagePopped) if err != nil { return err } e.batchingCache.totalL1MessagePopped = totalL1MessagePopped - e.batchingCache.skippedBitmap = skippedBitmap e.batchingCache.postStateRoot = e.batchingCache.currentStateRoot e.batchingCache.withdrawRoot = e.batchingCache.currentWithdrawRoot e.batchingCache.lastPackedBlockHeight = curHeight @@ -376,7 +374,6 @@ func (e *Executor) PackCurrentBlock(currentBlockBytes []byte, currentTxs tmtypes e.batchingCache.batchData = types.NewBatchData() } e.batchingCache.batchData.Append(e.batchingCache.currentBlockContext, e.batchingCache.currentTxsPayload, e.batchingCache.currentL1TxsHashes) - e.batchingCache.skippedBitmap = e.batchingCache.skippedBitmapAfterCurBlock e.batchingCache.totalL1MessagePopped = e.batchingCache.totalL1MessagePoppedAfterCurBlock e.batchingCache.withdrawRoot = e.batchingCache.currentWithdrawRoot e.batchingCache.postStateRoot = e.batchingCache.currentStateRoot @@ -392,7 +389,7 @@ func (e *Executor) BatchHash(batchHeaderBytes []byte) ([]byte, error) { } func (e *Executor) setCurrentBlock(currentBlockBytes []byte, currentTxs tmtypes.Txs) error { - currentTxsPayload, curL1TxsHashes, totalL1MessagePopped, skippedBitmap, l2TxNum, err := ParsingTxs(currentTxs, e.batchingCache.parentBatchHeader.TotalL1MessagePopped, e.batchingCache.totalL1MessagePopped, e.batchingCache.skippedBitmap) + currentTxsPayload, curL1TxsHashes, totalL1MessagePopped, l2TxNum, err := ParsingTxs(currentTxs, e.batchingCache.totalL1MessagePopped) if err != nil { return err } @@ -408,7 +405,6 @@ func (e *Executor) setCurrentBlock(currentBlockBytes []byte, currentTxs tmtypes. e.batchingCache.currentTxs = currentTxs e.batchingCache.currentL1TxsHashes = curL1TxsHashes e.batchingCache.totalL1MessagePoppedAfterCurBlock = totalL1MessagePopped - e.batchingCache.skippedBitmapAfterCurBlock = skippedBitmap e.batchingCache.currentStateRoot = curBlock.StateRoot e.batchingCache.currentWithdrawRoot = curBlock.WithdrawTrieRoot e.batchingCache.currentBlockBytes = currentBlockBytes @@ -416,21 +412,14 @@ func (e *Executor) setCurrentBlock(currentBlockBytes []byte, currentTxs tmtypes. return nil } -func ParsingTxs(transactions tmtypes.Txs, totalL1MessagePoppedBeforeTheBatch, totalL1MessagePoppedBefore uint64, skippedBitmapBefore []*big.Int) (txsPayload []byte, l1TxHashes []common.Hash, totalL1MessagePopped uint64, skippedBitmap []*big.Int, l2TxNum int, err error) { - // the first queue index that belongs to this batch - baseIndex := totalL1MessagePoppedBeforeTheBatch +func ParsingTxs(transactions tmtypes.Txs, totalL1MessagePoppedBefore uint64) (txsPayload []byte, l1TxHashes []common.Hash, totalL1MessagePopped uint64, l2TxNum int, err error) { // the next queue index that we need to process nextIndex := totalL1MessagePoppedBefore - skippedBitmap = make([]*big.Int, len(skippedBitmapBefore)) - for i, bm := range skippedBitmapBefore { - skippedBitmap[i] = new(big.Int).SetBytes(bm.Bytes()) - } - for i, txBz := range transactions { var tx eth.Transaction if err = tx.UnmarshalBinary(txBz); err != nil { - return nil, nil, 0, nil, 0, fmt.Errorf("transaction %d is not valid: %v", i, err) + return nil, nil, 0, 0, fmt.Errorf("transaction %d is not valid: %v", i, err) } if isL1MessageTxType(txBz) { @@ -439,25 +428,7 @@ func ParsingTxs(transactions tmtypes.Txs, totalL1MessagePoppedBeforeTheBatch, to currentIndex := tx.L1MessageQueueIndex() if currentIndex < nextIndex { - return nil, nil, 0, nil, 0, fmt.Errorf("unexpected batch payload, expected queue index: %d, got: %d. transaction hash: %v", nextIndex, currentIndex, tx.Hash()) - } - - // mark skipped messages - for skippedIndex := nextIndex; skippedIndex < currentIndex; skippedIndex++ { - quo := int((skippedIndex - baseIndex) / 256) - rem := int((skippedIndex - baseIndex) % 256) - for len(skippedBitmap) <= quo { - bitmap := big.NewInt(0) - skippedBitmap = append(skippedBitmap, bitmap) - } - skippedBitmap[quo].SetBit(skippedBitmap[quo], rem, 1) - } - - // process included message - quo := int((currentIndex - baseIndex) / 256) - for len(skippedBitmap) <= quo { - bitmap := big.NewInt(0) - skippedBitmap = append(skippedBitmap, bitmap) + return nil, nil, 0, 0, fmt.Errorf("unexpected batch payload, expected queue index: %d, got: %d. transaction hash: %v", nextIndex, currentIndex, tx.Hash()) } nextIndex = currentIndex + 1 @@ -524,9 +495,17 @@ func (e *Executor) ConvertBlsData(blsData l2node.BlsData) (*eth.BatchSignature, return &bs, nil } -func heightFromBCBytes(blockBytes []byte) (uint64, error) { +func wrappedBlockFromBytes(blockBytes []byte) (*types.WrappedBlock, error) { var curBlock = new(types.WrappedBlock) if err := curBlock.UnmarshalBinary(blockBytes); err != nil { + return nil, err + } + return curBlock, nil +} + +func heightFromBCBytes(blockBytes []byte) (uint64, error) { + curBlock, err := wrappedBlockFromBytes(blockBytes) + if err != nil { return 0, err } return curBlock.Number, nil diff --git a/node/core/config.go b/node/core/config.go index 5457b2986..f14d66488 100644 --- a/node/core/config.go +++ b/node/core/config.go @@ -22,6 +22,11 @@ import ( "morph-l2/node/types" ) +var ( + MainnetUpgradeBatchTime uint64 = 2000 + HoleskyUpgradeBatchTime uint64 = 350000 +) + type Config struct { L2 *types.L2Config `json:"l2"` L2CrossDomainMessengerAddress common.Address `json:"cross_domain_messenger_address"` @@ -29,6 +34,7 @@ type Config struct { GovAddress common.Address `json:"gov_address"` L2StakingAddress common.Address `json:"l2staking_address"` MaxL1MessageNumPerBlock uint64 `json:"max_l1_message_num_per_block"` + UpgradeBatchTime uint64 `json:"upgrade_batch_time"` DevSequencer bool `json:"dev_sequencer"` Logger tmlog.Logger `json:"logger"` } @@ -151,5 +157,16 @@ func (c *Config) SetCliContext(ctx *cli.Context) error { c.DevSequencer = ctx.GlobalBool(flags.DevSequencer.Name) } + // setup batch upgrade index + switch { + case ctx.GlobalIsSet(flags.MainnetFlag.Name): + c.UpgradeBatchTime = MainnetUpgradeBatchTime + case ctx.GlobalIsSet(flags.HoleskyFlag.Name): + c.UpgradeBatchTime = HoleskyUpgradeBatchTime + case ctx.GlobalIsSet(flags.UpgradeBatchTime.Name): + c.UpgradeBatchTime = ctx.GlobalUint64(flags.UpgradeBatchTime.Name) + logger.Info("set UpgradeBatchTime: ", ctx.GlobalUint64(flags.UpgradeBatchTime.Name)) + } + return nil } diff --git a/node/core/executor.go b/node/core/executor.go index 27fad5423..90f97e253 100644 --- a/node/core/executor.go +++ b/node/core/executor.go @@ -51,8 +51,9 @@ type Executor struct { isSequencer bool devSequencer bool - rollupABI *abi.ABI - batchingCache *BatchingCache + UpgradeBatchTime uint64 + rollupABI *abi.ABI + batchingCache *BatchingCache logger tmlog.Logger metrics *Metrics @@ -119,6 +120,7 @@ func NewExecutor(newSyncFunc NewSyncerFunc, config *Config, tmPubKey crypto.PubK devSequencer: config.DevSequencer, rollupABI: rollupAbi, batchingCache: NewBatchingCache(), + UpgradeBatchTime: config.UpgradeBatchTime, logger: logger, metrics: PrometheusMetrics("morphnode"), } @@ -195,7 +197,6 @@ func (e *Executor) RequestBlockData(height int64) (txs [][]byte, blockMeta []byt NextL1MessageIndex: l2Block.NextL1MessageIndex, Hash: l2Block.Hash, CollectedL1TxHashes: collectedL1TxHashes, - SkippedL1Txs: l2Block.SkippedTxs, } blockMeta, err = wb.MarshalBinary() txs = l2Block.Transactions @@ -239,7 +240,6 @@ func (e *Executor) CheckBlockData(txs [][]byte, metaData []byte) (valid bool, er WithdrawTrieRoot: wrappedBlock.WithdrawTrieRoot, NextL1MessageIndex: wrappedBlock.NextL1MessageIndex, Hash: wrappedBlock.Hash, - SkippedTxs: wrappedBlock.SkippedL1Txs, Transactions: txs, } @@ -306,7 +306,6 @@ func (e *Executor) DeliverBlock(txs [][]byte, metaData []byte, consensusData l2n LogsBloom: wrappedBlock.LogsBloom, WithdrawTrieRoot: wrappedBlock.WithdrawTrieRoot, NextL1MessageIndex: wrappedBlock.NextL1MessageIndex, - SkippedTxs: wrappedBlock.SkippedL1Txs, Hash: wrappedBlock.Hash, Transactions: txs, diff --git a/node/core/l1_message.go b/node/core/l1_message.go index 207f3dfaf..83a7ec7c1 100644 --- a/node/core/l1_message.go +++ b/node/core/l1_message.go @@ -19,11 +19,10 @@ func (e *Executor) updateNextL1MessageIndex(l2Block *catalyst.ExecutableL2Data) // validateL1Messages has the constraints // 1. all the collected L1 messages belonged to the given L1TxHash are exist. // 2. the collected L1 messages belonged to the given L1TxHash are sequenced correctly. -// 3. the L1 messages from the block.Transactions are sorted correctly(queueIndex increases but does not have to be continuous). +// 3. the L1 messages from the block.Transactions are sorted correctly. // 4. the L1 message from the block.Transactions must be one of the collected L1Messages. // 5. all the L1 messages from the block.Transactions must precede other normal L2 transactions. -// 6. the block.NextL1MessageIndex MUST be greater the queue index of the last involved L1Message in the block. -// 7. the skipped transactions from ExecutableL2Data extracted Must be the same as the ones from Layer1. +// 6. the block.NextL1MessageIndex MUST be equal to the queue index of the last involved L1Message in the block. func (e *Executor) validateL1Messages(block *catalyst.ExecutableL2Data, collectedL1TxHashes []common.Hash) error { nextExpectedIndex := e.nextL1MsgIndex @@ -54,7 +53,6 @@ func (e *Executor) validateL1Messages(block *catalyst.ExecutableL2Data, collecte nextExpectedIndex = e.nextL1MsgIndex L1SectionOver := false - var skipped eth.Transactions // check the L1 messages from block.Transactions for i, txBz := range block.Transactions { if !isL1MessageTxType(txBz) { @@ -74,7 +72,7 @@ func (e *Executor) validateL1Messages(block *catalyst.ExecutableL2Data, collecte currentTxQueueIndex := tx.L1MessageQueueIndex() // constraints 3 - if currentTxQueueIndex < nextExpectedIndex { + if currentTxQueueIndex != nextExpectedIndex { return types.ErrInvalidL1MessageOrder } @@ -96,44 +94,17 @@ func (e *Executor) validateL1Messages(block *catalyst.ExecutableL2Data, collecte e.logger.Error("wrong L1Message content", "index", currentTxQueueIndex) return types.ErrUnknownL1Message } - for queueIndex := nextExpectedIndex; queueIndex < currentTxQueueIndex; queueIndex++ { - skippedTx, ok := cache[queueIndex] - if !ok { - e.logger.Error("lost skipped L1Message collected", "queueIndex", queueIndex) - return types.ErrInvalidSkippedL1Message - } - skipped = append(skipped, skippedTx) - } nextExpectedIndex = currentTxQueueIndex + 1 } // constraints 6 - if block.NextL1MessageIndex < nextExpectedIndex { + if block.NextL1MessageIndex != nextExpectedIndex { e.logger.Error("wrong NextL1MessageIndex in the block", "indexOfLastInvolvedL1Tx", nextExpectedIndex-1, "block.NextL1MessageIndex", block.NextL1MessageIndex) return types.ErrWrongNextL1MessageIndex } - for queueIndex := nextExpectedIndex; queueIndex < block.NextL1MessageIndex; queueIndex++ { - skippedTx, ok := cache[queueIndex] - if !ok { - e.logger.Error("lost skipped L1Message collected", "queueIndex", queueIndex) - return types.ErrInvalidL1Message - } - skipped = append(skipped, skippedTx) - } - // constraints 7 - if len(skipped) != len(block.SkippedTxs) { - e.logger.Error("found wrong number of skipped txs", "expected skippedTx num", len(skipped), "actual", len(block.SkippedTxs)) - return types.ErrInvalidSkippedL1Message - } - for i, skippedTx := range skipped { - if skippedTx.Hash() != block.SkippedTxs[i].Tx.Hash() { - e.logger.Error("found wrong skipped tx hash", "expected skippedTx hash", skippedTx.Hash().Hex(), "actual", block.SkippedTxs[i].Tx.Hash()) - return types.ErrInvalidSkippedL1Message - } - } return nil } diff --git a/node/core/l1_message_test.go b/node/core/l1_message_test.go index cd4ae9a13..d425dbe1e 100644 --- a/node/core/l1_message_test.go +++ b/node/core/l1_message_test.go @@ -164,86 +164,26 @@ func TestValidateL1Messages(t *testing.T) { }) t.Run("constraint 6: testing block.NextL1MessageIndex", func(t *testing.T) { - to := common.BigToAddress(big.NewInt(1)) - skippedL1WithIndex10 := eth.L1MessageTx{ - QueueIndex: uint64(10), - Gas: 21000, - To: &to, - Value: big.NewInt(100), - Sender: common.BigToAddress(big.NewInt(int64(10))), - } - l1Message10 := types.L1Message{ - L1TxHash: common.BigToHash(big.NewInt(int64(10))), - L1MessageTx: skippedL1WithIndex10, - } - thisL1Reader := l1Reader.copy() - thisL1Reader.addL1Message(l1Message10) executor := Executor{ nextL1MsgIndex: 0, - l1MsgReader: thisL1Reader, + l1MsgReader: &l1Reader, logger: tmlog.NewTMLogger(tmlog.NewSyncWriter(os.Stdout)), } block := &catalyst.ExecutableL2Data{ - NextL1MessageIndex: 11, + NextL1MessageIndex: 10, Transactions: l1TxBytes, - SkippedTxs: []*eth.SkippedTransaction{ - {Tx: eth.NewTx(&skippedL1WithIndex10)}, - }, } - collectedL1TxHashesCopy := append(collectedL1TxHashes, common.BigToHash(big.NewInt(int64(10)))) - err := executor.validateL1Messages(block, collectedL1TxHashesCopy) + err := executor.validateL1Messages(block, collectedL1TxHashes) require.NoError(t, err) block = &catalyst.ExecutableL2Data{ - NextL1MessageIndex: 9, + NextL1MessageIndex: 11, Transactions: l1TxBytes, } err = executor.validateL1Messages(block, collectedL1TxHashes) require.ErrorIs(t, err, types.ErrWrongNextL1MessageIndex) }) - t.Run("constraint 7: invalid skipped L1 messages", func(t *testing.T) { - executor := Executor{ - nextL1MsgIndex: 0, - l1MsgReader: &l1Reader, - logger: tmlog.NewTMLogger(tmlog.NewSyncWriter(os.Stdout)), - } - - originTxs := block.Transactions[:] - l1TxBytes := make([][]byte, 0) - l1TxBytes = append(append(l1TxBytes, originTxs[:2]...), originTxs[3:]...) - - thisBlock := &catalyst.ExecutableL2Data{ - NextL1MessageIndex: 10, - Transactions: l1TxBytes, - } - - err := executor.validateL1Messages(thisBlock, collectedL1TxHashes) - require.EqualError(t, err, types.ErrInvalidSkippedL1Message.Error()) - - skippedTx := new(eth.Transaction) - err = skippedTx.UnmarshalBinary(originTxs[2]) - require.NoError(t, err) - thisBlock = &catalyst.ExecutableL2Data{ - NextL1MessageIndex: 10, - Transactions: l1TxBytes, - SkippedTxs: []*eth.SkippedTransaction{ - {Tx: skippedTx}, - }, - } - err = executor.validateL1Messages(thisBlock, collectedL1TxHashes) - require.NoError(t, err) - - thisBlock = &catalyst.ExecutableL2Data{ - NextL1MessageIndex: 10, - Transactions: l1TxBytes, - SkippedTxs: []*eth.SkippedTransaction{ - {Tx: skippedTx}, - }, - } - err = executor.validateL1Messages(thisBlock, collectedL1TxHashes) - require.NoError(t, err) - }) } var _ types.L1MessageReader = (*testL1MsgReader)(nil) diff --git a/node/derivation/batch_info.go b/node/derivation/batch_info.go index 8b55ed92b..17d4fe88a 100644 --- a/node/derivation/batch_info.go +++ b/node/derivation/batch_info.go @@ -78,7 +78,10 @@ func (bi *BatchInfo) TxNum() uint64 { func (bi *BatchInfo) ParseBatch(batch geth.RPCRollupBatch) error { bi.root = batch.PostStateRoot bi.withdrawalRoot = batch.WithdrawRoot - bi.skippedL1MessageBitmap = new(big.Int).SetBytes(batch.SkippedL1MessageBitmap[:]) + // If skipMap is zero value, there are no msgs that can be skipped + if len(batch.SkippedL1MessageBitmap[:]) != 0 { + bi.skippedL1MessageBitmap = new(big.Int).SetBytes(batch.SkippedL1MessageBitmap[:]) + } bi.version = uint64(batch.Version) tq := newTxQueue() for _, blob := range batch.Sidecar.Blobs { diff --git a/node/derivation/derivation.go b/node/derivation/derivation.go index bffff5f82..6db69e881 100644 --- a/node/derivation/derivation.go +++ b/node/derivation/derivation.go @@ -10,6 +10,7 @@ import ( "time" "github.com/morph-l2/go-ethereum" + "github.com/morph-l2/go-ethereum/accounts/abi" "github.com/morph-l2/go-ethereum/accounts/abi/bind" "github.com/morph-l2/go-ethereum/common" eth "github.com/morph-l2/go-ethereum/core/types" @@ -47,6 +48,9 @@ type Derivation struct { l1BeaconClient *L1BeaconClient L2ToL1MessagePasser *bindings.L2ToL1MessagePasser + rollupABI *abi.ABI + legacyRollupABI *abi.ABI // before remove skipMap + db Database cancel context.CancelFunc @@ -82,6 +86,14 @@ func NewDerivationClient(ctx context.Context, cfg *Config, syncer *sync.Syncer, if err != nil { return nil, err } + rollupAbi, err := bindings.RollupMetaData.GetAbi() + if err != nil { + return nil, err + } + legacyRollupAbi, err := types.LegacyRollupMetaData.GetAbi() + if err != nil { + return nil, err + } ctx, cancel := context.WithCancel(ctx) logger = logger.With("module", "derivation") metrics := PrometheusMetrics("morphnode") @@ -103,6 +115,8 @@ func NewDerivationClient(ctx context.Context, cfg *Config, syncer *sync.Syncer, syncer: syncer, validator: validator, rollup: rollup, + rollupABI: rollupAbi, + legacyRollupABI: legacyRollupAbi, logger: logger, RollupContractAddress: cfg.RollupContractAddress, confirmations: cfg.L1.Confirmations, @@ -268,28 +282,10 @@ func (d *Derivation) fetchRollupDataByTxHash(txHash common.Hash, blockNumber uin if pending { return nil, errors.New("pending transaction") } - abi, err := bindings.RollupMetaData.GetAbi() + batch, err := d.UnPackData(tx.Data()) if err != nil { return nil, err } - if !bytes.Equal(abi.Methods["commitBatch"].ID, tx.Data()[:4]) { - return nil, types.ErrNotCommitBatchTx - } - args, err := abi.Methods["commitBatch"].Inputs.Unpack(tx.Data()[4:]) - if err != nil { - return nil, fmt.Errorf("submitBatches Unpack error:%v", err) - } - - rollupBatchData := args[0].(struct { - Version uint8 "json:\"version\"" - ParentBatchHeader []uint8 "json:\"parentBatchHeader\"" - BlockContexts []uint8 "json:\"blockContexts\"" - SkippedL1MessageBitmap []uint8 "json:\"skippedL1MessageBitmap\"" - PrevStateRoot [32]uint8 "json:\"prevStateRoot\"" - PostStateRoot [32]uint8 "json:\"postStateRoot\"" - WithdrawalRoot [32]uint8 "json:\"withdrawalRoot\"" - }) - // query blob block, err := d.l1Client.BlockByNumber(d.ctx, big.NewInt(int64(blockNumber))) if err != nil { @@ -309,18 +305,7 @@ func (d *Derivation) fetchRollupDataByTxHash(txHash common.Hash, blockNumber uin return nil, fmt.Errorf("getBlockSidecar error:%v", err) } } - - batch := geth.RPCRollupBatch{ - Version: uint(rollupBatchData.Version), - ParentBatchHeader: rollupBatchData.ParentBatchHeader, - BlockContexts: rollupBatchData.BlockContexts, - SkippedL1MessageBitmap: rollupBatchData.SkippedL1MessageBitmap, - PrevStateRoot: common.BytesToHash(rollupBatchData.PrevStateRoot[:]), - PostStateRoot: common.BytesToHash(rollupBatchData.PostStateRoot[:]), - WithdrawRoot: common.BytesToHash(rollupBatchData.WithdrawalRoot[:]), - Sidecar: bts, - } - + batch.Sidecar = bts rollupData, err := d.parseBatch(batch) if err != nil { d.logger.Error("parse batch failed", "txNonce", tx.Nonce(), "txHash", txHash, @@ -333,6 +318,58 @@ func (d *Derivation) fetchRollupDataByTxHash(txHash common.Hash, blockNumber uin return rollupData, nil } +func (d *Derivation) UnPackData(data []byte) (geth.RPCRollupBatch, error) { + var batch geth.RPCRollupBatch + if bytes.Equal(d.rollupABI.Methods["commitBatch"].ID, data[:4]) { + args, err := d.rollupABI.Methods["commitBatch"].Inputs.Unpack(data[4:]) + if err != nil { + return batch, fmt.Errorf("submitBatches Unpack error:%v", err) + } + rollupBatchData := args[0].(struct { + Version uint8 "json:\"version\"" + ParentBatchHeader []uint8 "json:\"parentBatchHeader\"" + BlockContexts []uint8 "json:\"blockContexts\"" + PrevStateRoot [32]uint8 "json:\"prevStateRoot\"" + PostStateRoot [32]uint8 "json:\"postStateRoot\"" + WithdrawalRoot [32]uint8 "json:\"withdrawalRoot\"" + }) + batch = geth.RPCRollupBatch{ + Version: uint(rollupBatchData.Version), + ParentBatchHeader: rollupBatchData.ParentBatchHeader, + BlockContexts: rollupBatchData.BlockContexts, + PrevStateRoot: common.BytesToHash(rollupBatchData.PrevStateRoot[:]), + PostStateRoot: common.BytesToHash(rollupBatchData.PostStateRoot[:]), + WithdrawRoot: common.BytesToHash(rollupBatchData.WithdrawalRoot[:]), + } + } else if bytes.Equal(d.legacyRollupABI.Methods["commitBatch"].ID, data[:4]) { + args, err := d.legacyRollupABI.Methods["commitBatch"].Inputs.Unpack(data[4:]) + if err != nil { + return batch, fmt.Errorf("submitBatches Unpack error:%v", err) + } + rollupBatchData := args[0].(struct { + Version uint8 "json:\"version\"" + ParentBatchHeader []uint8 "json:\"parentBatchHeader\"" + BlockContexts []uint8 "json:\"blockContexts\"" + SkippedL1MessageBitmap []uint8 "json:\"skippedL1MessageBitmap\"" + PrevStateRoot [32]uint8 "json:\"prevStateRoot\"" + PostStateRoot [32]uint8 "json:\"postStateRoot\"" + WithdrawalRoot [32]uint8 "json:\"withdrawalRoot\"" + }) + batch = geth.RPCRollupBatch{ + Version: uint(rollupBatchData.Version), + ParentBatchHeader: rollupBatchData.ParentBatchHeader, + BlockContexts: rollupBatchData.BlockContexts, + SkippedL1MessageBitmap: rollupBatchData.SkippedL1MessageBitmap, + PrevStateRoot: common.BytesToHash(rollupBatchData.PrevStateRoot[:]), + PostStateRoot: common.BytesToHash(rollupBatchData.PostStateRoot[:]), + WithdrawRoot: common.BytesToHash(rollupBatchData.WithdrawalRoot[:]), + } + } else { + return batch, types.ErrNotCommitBatchTx + } + return batch, nil +} + func (d *Derivation) parseBatch(batch geth.RPCRollupBatch) (*BatchInfo, error) { parentBatchHeader, err := types.DecodeBatchHeader(batch.ParentBatchHeader) if err != nil { @@ -363,7 +400,7 @@ func (d *Derivation) handleL1Message(rollupData *BatchInfo, parentTotalL1Message totalL1MessagePopped += uint64(block.l1MsgNum) if len(l1Messages) > 0 { for _, l1Message := range l1Messages { - if rollupData.skippedL1MessageBitmap.Bit(int(l1Message.QueueIndex)-int(parentTotalL1MessagePopped)) == 1 { + if rollupData.skippedL1MessageBitmap != nil && rollupData.skippedL1MessageBitmap.Bit(int(l1Message.QueueIndex)-int(parentTotalL1MessagePopped)) == 1 { continue } transaction := eth.NewTx(&l1Message.L1MessageTx) diff --git a/node/derivation/derivation_test.go b/node/derivation/derivation_test.go index e54a76543..6d16c0a0c 100644 --- a/node/derivation/derivation_test.go +++ b/node/derivation/derivation_test.go @@ -2,36 +2,45 @@ package derivation import ( "testing" + + "github.com/morph-l2/go-ethereum/common/hexutil" + "github.com/stretchr/testify/require" + + "morph-l2/bindings/bindings" + "morph-l2/node/types" +) + +var ( + errorData = "0x92f65af30000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e0000000000000000000000000000000000000000000000000000000000000098000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000006a02b8abfcc1aa740eb6330093a5ef9c1d09c39672c390926de6db9089554b620322b8abfcc1aa740eb6330093a5ef9c1d09c39672c390926de6db9089554b6203227ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75700000000000000000000000000000000000000000000000000000000000006c00000000000000000000000000000000000000000000000000000000000000059000000000000000127000000000000000000000000000000006a5279896e0503ca805ecdb9208afa1ae78e214ceae183cf59fba3a8788e4598b0cd5e7bf4073160681199a5f107e15ec96c350840ebedb522a79c73615037b9000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004b11400000000000015520000000065e43bfb000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015530000000065e43c02000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015540000000065e43c08000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015550000000065e43c0f000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015560000000065e43c15000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015570000000065e43c1c000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015580000000065e43c22000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015590000000065e43c280000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155a0000000065e43c2f0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155b0000000065e43c350000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155c0000000065e43c3c0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155d0000000065e43c420000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155e0000000065e43c490000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155f0000000065e43c4f000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015600000000065e43c56000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015610000000065e43c5c000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015620000000065e43c62000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015630000000065e43c69000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015640000000065e43c6f000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015650000000065e43c7600000000000000000000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001656c61193a9eca0201811fc18e071ee949910f696d7464fb3ed32ce9e9f022967f03962fb34c8533f0d01c13e808f4c000000000000000000000000000000000a066efeb662c0804b6c35a0be989a5fbd6a229261b12a176195772febca89e806e3fa2bebe19f95c7491af5afc7334e000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001656c61193a9eca0201811fc18e071ee949910f696d7464fb3ed32ce9e9f022967f03962fb34c8533f0d01c13e808f4c000000000000000000000000000000000a066efeb662c0804b6c35a0be989a5fbd6a229261b12a176195772febca89e806e3fa2bebe19f95c7491af5afc7334e" + legacyData = "0xd63b3549000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000260292474b44bd10019728c36f474d43e57f666da244f857f10155d3b1df986d37700ba12e4dbe3733969348ffaf757b9225bdc7a3c48a5119f9a31256bbaa206fd6c0ab4151eda56c3b5b3f680e5100a43957ccb5aed62431468c550838e42f6df00000000000000000000000000000000000000000000000000000000000000f9000000000000008a98000000000000000000000000000001fbabd382d81484e2b0dc54e4d50d5767c312cd80d9c333217cc54d2a7395b06e650146a9e49d91463c241819423fac7ffa814a0a04473cace0e7a00b42da68ecd00a75fef5e27def60bbd05a3d76a3ca335df4d182a33e63c7f6c8e7890fe323f2292474b44bd10019728c36f474d43e57f666da244f857f10155d3b1df986d3776c0ab4151eda56c3b5b3f680e5100a43957ccb5aed62431468c550838e42f6dffed06619f2ec164eedb2121c02eda056059e58b8651d8b73785ab73f8aa3a555ac69de82ab218b900846f782176e21f0fa200cd8d8e8a70f64624e80d45d68a800000000000000000000000000000000000000000000000000000000000000000000000000003e000100000000000776ed00000000672b021600000000000000000000000000000000000000000000000000000000000f42400000000001c9c38003f9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000004e4600000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000b6346ded94fc61b637763610d0c59846b77810800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000b6346ded94fc61b637763610d0c59846b77810800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b6346ded94fc61b637763610d0c59846b778108000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000002c6d7a4e30d442f8d1acdc5068b604b75d1fc37673a07d51e0e56f3cbe28c36fa177a7d490b0147b89dbcc9e496f7d80000000000000000000000000000000001dddd9c85d12fb203286351cd1def0e5e830194ccc8ca494420adaa75db7613bf4cbe61fb316b8df2ec89eeda2b04e1" + data = "0x4a8d544f000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000260292474b44bd10019728c36f474d43e57f666da244f857f10155d3b1df986d37700ba12e4dbe3733969348ffaf757b9225bdc7a3c48a5119f9a31256bbaa206fd6c0ab4151eda56c3b5b3f680e5100a43957ccb5aed62431468c550838e42f6df00000000000000000000000000000000000000000000000000000000000000f9000000000000008a98000000000000000000000000000001fbabd382d81484e2b0dc54e4d50d5767c312cd80d9c333217cc54d2a7395b06e650146a9e49d91463c241819423fac7ffa814a0a04473cace0e7a00b42da68ecd00a75fef5e27def60bbd05a3d76a3ca335df4d182a33e63c7f6c8e7890fe323f2292474b44bd10019728c36f474d43e57f666da244f857f10155d3b1df986d3776c0ab4151eda56c3b5b3f680e5100a43957ccb5aed62431468c550838e42f6dffed06619f2ec164eedb2121c02eda056059e58b8651d8b73785ab73f8aa3a555ac69de82ab218b900846f782176e21f0fa200cd8d8e8a70f64624e80d45d68a800000000000000000000000000000000000000000000000000000000000000000000000000003e000100000000000776ed00000000672b021600000000000000000000000000000000000000000000000000000000000f42400000000001c9c38003f9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000004e4600000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000b6346ded94fc61b637763610d0c59846b77810800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000b6346ded94fc61b637763610d0c59846b77810800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b6346ded94fc61b637763610d0c59846b778108000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000002c6d7a4e30d442f8d1acdc5068b604b75d1fc37673a07d51e0e56f3cbe28c36fa177a7d490b0147b89dbcc9e496f7d80000000000000000000000000000000001dddd9c85d12fb203286351cd1def0e5e830194ccc8ca494420adaa75db7613bf4cbe61fb316b8df2ec89eeda2b04e1" ) -func TestDecodeBatch(t *testing.T) { - //abi, err := bindings.RollupMetaData.GetAbi() - //require.NoError(t, err) - //hexData := "0x92f65af30000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e0000000000000000000000000000000000000000000000000000000000000098000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000006a02b8abfcc1aa740eb6330093a5ef9c1d09c39672c390926de6db9089554b620322b8abfcc1aa740eb6330093a5ef9c1d09c39672c390926de6db9089554b6203227ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75700000000000000000000000000000000000000000000000000000000000006c00000000000000000000000000000000000000000000000000000000000000059000000000000000127000000000000000000000000000000006a5279896e0503ca805ecdb9208afa1ae78e214ceae183cf59fba3a8788e4598b0cd5e7bf4073160681199a5f107e15ec96c350840ebedb522a79c73615037b9000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004b11400000000000015520000000065e43bfb000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015530000000065e43c02000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015540000000065e43c08000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015550000000065e43c0f000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015560000000065e43c15000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015570000000065e43c1c000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015580000000065e43c22000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015590000000065e43c280000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155a0000000065e43c2f0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155b0000000065e43c350000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155c0000000065e43c3c0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155d0000000065e43c420000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155e0000000065e43c490000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155f0000000065e43c4f000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015600000000065e43c56000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015610000000065e43c5c000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015620000000065e43c62000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015630000000065e43c69000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015640000000065e43c6f000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015650000000065e43c7600000000000000000000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001656c61193a9eca0201811fc18e071ee949910f696d7464fb3ed32ce9e9f022967f03962fb34c8533f0d01c13e808f4c000000000000000000000000000000000a066efeb662c0804b6c35a0be989a5fbd6a229261b12a176195772febca89e806e3fa2bebe19f95c7491af5afc7334e000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001656c61193a9eca0201811fc18e071ee949910f696d7464fb3ed32ce9e9f022967f03962fb34c8533f0d01c13e808f4c000000000000000000000000000000000a066efeb662c0804b6c35a0be989a5fbd6a229261b12a176195772febca89e806e3fa2bebe19f95c7491af5afc7334e" - //txData, err := hexutil.Decode(hexData) - //require.NoError(t, err) - //args, err := abi.Methods["commitBatch"].Inputs.Unpack(txData[4:]) - //require.NoError(t, err) - //rollupBatchData := args[0].(struct { - // Version uint8 "json:\"version\"" - // ParentBatchHeader []uint8 "json:\"parentBatchHeader\"" - // BlockContexts []uint8 "json:\"blockContexts\"" - // SkippedL1MessageBitmap []uint8 "json:\"skippedL1MessageBitmap\"" - // PrevStateRoot [32]uint8 "json:\"prevStateRoot\"" - // PostStateRoot [32]uint8 "json:\"postStateRoot\"" - // WithdrawalRoot [32]uint8 "json:\"withdrawalRoot\"" - //}) - // - //batch := eth.RPCRollupBatch{ - // Version: uint(rollupBatchData.Version), - // ParentBatchHeader: rollupBatchData.ParentBatchHeader, - // BlockContexts: rollupBatchData.BlockContexts, - // SkippedL1MessageBitmap: rollupBatchData.SkippedL1MessageBitmap, - // PrevStateRoot: common.BytesToHash(rollupBatchData.PrevStateRoot[:]), - // PostStateRoot: common.BytesToHash(rollupBatchData.PostStateRoot[:]), - // WithdrawRoot: common.BytesToHash(rollupBatchData.WithdrawalRoot[:]), - //} - //batchInfo := new(BatchInfo) - //err = batchInfo.ParseBatch(batch) - //require.NoError(t, err) +func TestUnPackData(t *testing.T) { + rollupAbi, err := bindings.RollupMetaData.GetAbi() + require.NoError(t, err) + legacyRollupAbi, err := types.LegacyRollupMetaData.GetAbi() + require.NoError(t, err) + d := Derivation{ + rollupABI: rollupAbi, + legacyRollupABI: legacyRollupAbi, + } + errorTxData, err := hexutil.Decode(errorData) + require.NoError(t, err) + _, err = d.UnPackData(errorTxData) + require.Error(t, err) + legacyTxData, err := hexutil.Decode(legacyData) + require.NoError(t, err) + legacyBatch, err := d.UnPackData(legacyTxData) + require.NoError(t, err) + LegacyBatchInfo := new(BatchInfo) + err = LegacyBatchInfo.ParseBatch(legacyBatch) + require.NoError(t, err) + txData, err := hexutil.Decode(data) + require.NoError(t, err) + batch, err := d.UnPackData(txData) + require.NoError(t, err) + batchInfo := new(BatchInfo) + err = batchInfo.ParseBatch(batch) + require.NoError(t, err) } diff --git a/node/flags/flags.go b/node/flags/flags.go index e00c9ca3c..c28f27b39 100644 --- a/node/flags/flags.go +++ b/node/flags/flags.go @@ -208,6 +208,21 @@ var ( EnvVar: prefixEnvVar("DERIVATION_FETCH_BLOCK_RANGE"), } + // Batch rules + UpgradeBatchTime = cli.Uint64Flag{ + Name: "upgrade.batchTime", + Usage: "Batch index at which the sequencers start to upgrade the batch format", + EnvVar: prefixEnvVar("UPGRADE_BATCH_TIME"), + } + MainnetFlag = cli.BoolFlag{ + Name: "mainnet", + Usage: "Morph mainnet", + } + HoleskyFlag = cli.BoolFlag{ + Name: "holesky", + Usage: "Morph Holesky", + } + DerivationConfirmations = cli.Int64Flag{ Name: "derivation.confirmations", Usage: "The number of confirmations needed on L1 for finalization. If not set, the default value is l1.confirmations", @@ -313,6 +328,11 @@ var Flags = []cli.Flag{ DerivationConfirmations, L1BeaconAddr, + // batch rules + UpgradeBatchTime, + MainnetFlag, + HoleskyFlag, + // logger LogLevel, LogFormat, diff --git a/node/go.mod b/node/go.mod index 2ffdd7572..dae5dc141 100644 --- a/node/go.mod +++ b/node/go.mod @@ -10,7 +10,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/golang-lru v1.0.2 github.com/klauspost/compress v1.17.9 - github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 + github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e github.com/prometheus/client_golang v1.17.0 github.com/spf13/viper v1.13.0 github.com/stretchr/testify v1.9.0 diff --git a/node/go.sum b/node/go.sum index 452bdc251..2a6ffdcda 100644 --- a/node/go.sum +++ b/node/go.sum @@ -360,8 +360,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 h1:4+cbRSS4lacSIC81RXxvA04UHhGVC4SHVn+bKeqhPSM= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/node/types/batch.go b/node/types/batch.go index 19058cefd..12b95cd96 100644 --- a/node/types/batch.go +++ b/node/types/batch.go @@ -6,12 +6,18 @@ import ( "morph-l2/node/zstd" + "github.com/morph-l2/go-ethereum/accounts/abi/bind" "github.com/morph-l2/go-ethereum/common" "github.com/morph-l2/go-ethereum/common/hexutil" "github.com/morph-l2/go-ethereum/crypto" ) -var EmptyVersionedHash = common.HexToHash("0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014") +var ( + EmptyVersionedHash = common.HexToHash("0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014") + LegacyRollupMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIncorrectBatchLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNoBlockInBatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blockContexts\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"skippedL1MessageBitmap\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + } +) type BatchHeader struct { // Encoded in BatchHeaderV0Codec diff --git a/node/types/consensus_message.go b/node/types/consensus_message.go index c29985bb3..29a25df1d 100644 --- a/node/types/consensus_message.go +++ b/node/types/consensus_message.go @@ -5,9 +5,8 @@ import ( "encoding/binary" "math/big" - "github.com/morph-l2/go-ethereum/core/types" - "github.com/morph-l2/go-ethereum/common" + "github.com/morph-l2/go-ethereum/core/types" "github.com/morph-l2/go-ethereum/rlp" ) @@ -89,7 +88,7 @@ type WrappedBlock struct { Hash common.Hash `json:"hash"` CollectedL1TxHashes []common.Hash `json:"l1TxHashes" rlp:"optional"` - SkippedL1Txs []*types.SkippedTransaction `json:"skippedL1Txs" rlp:"optional"` + _ []*types.SkippedTransaction `json:"-" rlp:"optional"` BaseFee *big.Int `json:"baseFeePerGas" rlp:"optional"` } diff --git a/node/types/derivation.go b/node/types/derivation.go deleted file mode 100644 index c0304688a..000000000 --- a/node/types/derivation.go +++ /dev/null @@ -1,6 +0,0 @@ -package types - -type BatchBls struct { - //BlsData *eth.BLSData - BlockNumber uint64 // last blockNumber of batch -} diff --git a/ops/docker/.env b/ops/docker/.env index 98dff2a0f..238f50195 100644 --- a/ops/docker/.env +++ b/ops/docker/.env @@ -4,9 +4,10 @@ JWT_SECRET_PATH=/jwt-secret.txt NODE_DATA_DIR=/data L1_ETH_RPC=http://l1:8545 L1_BEACON_CHAIN_RPC=http://beacon-chain:3500 -L1_CROSS_DOMAIN_MESSENGER=0x5fc8d32690cc91d4c39d9d3abcbd16989f875707 -MORPH_PORTAL=0x0165878a594ca255338adfa4d48449f69242eb8f -MORPH_ROLLUP=0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6 +L1_CROSS_DOMAIN_MESSENGER=0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9 +MORPH_PORTAL=0xdc64a140aa3e981100a9beca4e685f962f0cf6c9 +MORPH_ROLLUP=0x0165878a594ca255338adfa4d48449f69242eb8f BUILD_GETH=l2-geth RUST_LOG=info -Proxy__L1Staking=0xa513e6e4b8f2a923d98304ec87f64353c4d5c853 +Proxy__L1Staking=0x5fc8d32690cc91d4c39d9d3abcbd16989f875707 +BATCH_UPGRADE_TIME=0 diff --git a/ops/docker/docker-compose-4nodes.yml b/ops/docker/docker-compose-4nodes.yml index 03cfe1579..27b39f40e 100644 --- a/ops/docker/docker-compose-4nodes.yml +++ b/ops/docker/docker-compose-4nodes.yml @@ -244,6 +244,7 @@ services: - MORPH_NODE_SYNC_DEPOSIT_CONTRACT_ADDRESS=${MORPH_PORTAL:-0x6900000000000000000000000000000000000001} - MORPH_NODE_L1_CONFIRMATIONS=0 - MORPH_NODE_SYNC_START_HEIGHT=${MORPH_NODE_SYNC_START_HEIGHT:-1} + - MORPH_NODE_UPGRADE_BATCH_TIME=${BATCH_UPGRADE_TIME} volumes: - "node_data_0:${NODE_DATA_DIR}" - "${PWD}/jwt-secret.txt:${JWT_SECRET_PATH}" @@ -277,6 +278,7 @@ services: - MORPH_NODE_SYNC_DEPOSIT_CONTRACT_ADDRESS=${MORPH_PORTAL:-0x6900000000000000000000000000000000000001} - MORPH_NODE_L1_CONFIRMATIONS=0 - MORPH_NODE_SYNC_START_HEIGHT=${MORPH_NODE_SYNC_START_HEIGHT:-1} + - MORPH_NODE_UPGRADE_BATCH_TIME=${BATCH_UPGRADE_TIME} volumes: - "node_data_1:${NODE_DATA_DIR}" - "${PWD}/jwt-secret.txt:${JWT_SECRET_PATH}" @@ -311,6 +313,7 @@ services: - MORPH_NODE_SYNC_DEPOSIT_CONTRACT_ADDRESS=${MORPH_PORTAL:-0x6900000000000000000000000000000000000001} - MORPH_NODE_L1_CONFIRMATIONS=0 - MORPH_NODE_SYNC_START_HEIGHT=${MORPH_NODE_SYNC_START_HEIGHT:-1} + - MORPH_NODE_UPGRADE_BATCH_TIME=${BATCH_UPGRADE_TIME} volumes: - "node_data_2:${NODE_DATA_DIR}" - "${PWD}/jwt-secret.txt:${JWT_SECRET_PATH}" @@ -345,6 +348,7 @@ services: - MORPH_NODE_SYNC_DEPOSIT_CONTRACT_ADDRESS=${MORPH_PORTAL:-0x6900000000000000000000000000000000000001} - MORPH_NODE_L1_CONFIRMATIONS=0 - MORPH_NODE_SYNC_START_HEIGHT=${MORPH_NODE_SYNC_START_HEIGHT:-1} + - MORPH_NODE_UPGRADE_BATCH_TIME=${BATCH_UPGRADE_TIME} volumes: - "node_data_3:${NODE_DATA_DIR}" - "${PWD}/jwt-secret.txt:${JWT_SECRET_PATH}" diff --git a/ops/l2-genesis/go.mod b/ops/l2-genesis/go.mod index a950d67b7..277d2c777 100644 --- a/ops/l2-genesis/go.mod +++ b/ops/l2-genesis/go.mod @@ -6,7 +6,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/holiman/uint256 v1.2.4 - github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 + github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e github.com/stretchr/testify v1.9.0 github.com/urfave/cli v1.22.14 ) diff --git a/ops/l2-genesis/go.sum b/ops/l2-genesis/go.sum index 0a1a50c87..e073c4429 100644 --- a/ops/l2-genesis/go.sum +++ b/ops/l2-genesis/go.sum @@ -143,8 +143,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 h1:4+cbRSS4lacSIC81RXxvA04UHhGVC4SHVn+bKeqhPSM= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= diff --git a/ops/tools/go.mod b/ops/tools/go.mod index 887f69114..865fcdb43 100644 --- a/ops/tools/go.mod +++ b/ops/tools/go.mod @@ -5,7 +5,7 @@ go 1.22 replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.1 require ( - github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 + github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e github.com/tendermint/tendermint v0.35.9 ) diff --git a/ops/tools/go.sum b/ops/tools/go.sum index 95dd6436f..a45f366e7 100644 --- a/ops/tools/go.sum +++ b/ops/tools/go.sum @@ -163,8 +163,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 h1:4+cbRSS4lacSIC81RXxvA04UHhGVC4SHVn+bKeqhPSM= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/oracle/go.mod b/oracle/go.mod index 8d86dcb74..074df471e 100644 --- a/oracle/go.mod +++ b/oracle/go.mod @@ -7,7 +7,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/go-kit/kit v0.12.0 github.com/morph-l2/externalsign v0.3.1 - github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 + github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e github.com/prometheus/client_golang v1.17.0 github.com/stretchr/testify v1.9.0 github.com/tendermint/tendermint v0.35.9 diff --git a/oracle/go.sum b/oracle/go.sum index 7d0b42448..a08b1aef8 100644 --- a/oracle/go.sum +++ b/oracle/go.sum @@ -173,12 +173,10 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/externalsign v0.3.0 h1:eVGON//ofO5eJSZvJQW+8HUeaGlg4seaS99SzS8GQc4= -github.com/morph-l2/externalsign v0.3.0/go.mod h1:b6NJ4GUiiG/gcSJsp3p8ExsIs4ZdphlrVALASnVoGJE= github.com/morph-l2/externalsign v0.3.1 h1:UYFDZFB0L85A4rDvuwLNBiGEi0kSmg9AZ2v8Q5O4dQo= github.com/morph-l2/externalsign v0.3.1/go.mod h1:b6NJ4GUiiG/gcSJsp3p8ExsIs4ZdphlrVALASnVoGJE= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 h1:4+cbRSS4lacSIC81RXxvA04UHhGVC4SHVn+bKeqhPSM= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/tx-submitter/go.mod b/tx-submitter/go.mod index 3ad0de4ce..1fada601d 100644 --- a/tx-submitter/go.mod +++ b/tx-submitter/go.mod @@ -7,7 +7,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/holiman/uint256 v1.2.4 github.com/morph-l2/externalsign v0.3.1 - github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 + github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e github.com/prometheus/client_golang v1.17.0 github.com/stretchr/testify v1.9.0 github.com/tendermint/tendermint v0.35.9 diff --git a/tx-submitter/go.sum b/tx-submitter/go.sum index b44394540..c6d21f1ad 100644 --- a/tx-submitter/go.sum +++ b/tx-submitter/go.sum @@ -162,12 +162,10 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/externalsign v0.3.0 h1:eVGON//ofO5eJSZvJQW+8HUeaGlg4seaS99SzS8GQc4= -github.com/morph-l2/externalsign v0.3.0/go.mod h1:b6NJ4GUiiG/gcSJsp3p8ExsIs4ZdphlrVALASnVoGJE= github.com/morph-l2/externalsign v0.3.1 h1:UYFDZFB0L85A4rDvuwLNBiGEi0kSmg9AZ2v8Q5O4dQo= github.com/morph-l2/externalsign v0.3.1/go.mod h1:b6NJ4GUiiG/gcSJsp3p8ExsIs4ZdphlrVALASnVoGJE= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625 h1:4+cbRSS4lacSIC81RXxvA04UHhGVC4SHVn+bKeqhPSM= -github.com/morph-l2/go-ethereum v1.10.14-0.20241021080617-0ff2a10a9625/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= +github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index d944b5bd4..7bf168f88 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -675,13 +675,12 @@ func (r *Rollup) rollup() error { return err } rollupBatch := bindings.IRollupBatchDataInput{ - Version: uint8(batch.Version), - ParentBatchHeader: batch.ParentBatchHeader, - BlockContexts: batch.BlockContexts, - SkippedL1MessageBitmap: batch.SkippedL1MessageBitmap, - PrevStateRoot: batch.PrevStateRoot, - PostStateRoot: batch.PostStateRoot, - WithdrawalRoot: batch.WithdrawRoot, + Version: uint8(batch.Version), + ParentBatchHeader: batch.ParentBatchHeader, + BlockContexts: batch.BlockContexts, + PrevStateRoot: batch.PrevStateRoot, + PostStateRoot: batch.PostStateRoot, + WithdrawalRoot: batch.WithdrawRoot, } // tip and cap From 55f2252aae5ef083f6822f5fb32c3d1adce2e737 Mon Sep 17 00:00:00 2001 From: Segue Date: Thu, 14 Nov 2024 13:03:06 +0800 Subject: [PATCH 034/106] clean test --- contracts/contracts/test/L1Staking.t.sol | 6 ------ 1 file changed, 6 deletions(-) diff --git a/contracts/contracts/test/L1Staking.t.sol b/contracts/contracts/test/L1Staking.t.sol index 825e5040f..3324aa578 100644 --- a/contracts/contracts/test/L1Staking.t.sol +++ b/contracts/contracts/test/L1Staking.t.sol @@ -387,12 +387,6 @@ contract StakingTest is L1MessageBaseTest { assertEq(stakersAddr.length, stakersConvert.length); assertEq(stakersAddr[0], stakersConvert[0]); assertEq(stakersAddr[stakersAddr.length - 1], stakersConvert[stakersConvert.length - 1]); - - // console.logString("......................"); - // console.logUint(bitmap); - // console.logUint(stakersAddr.length); - // console.logUint(stakersConvert.length); - // console.logString("......................"); } function test_slash_succeeds() external { From 9474c172462e43939d4b8f6da4828c66006573b3 Mon Sep 17 00:00:00 2001 From: Segue Date: Thu, 14 Nov 2024 13:04:59 +0800 Subject: [PATCH 035/106] clean test --- contracts/contracts/test/L2Staking.t.sol | 130 +---------------------- 1 file changed, 5 insertions(+), 125 deletions(-) diff --git a/contracts/contracts/test/L2Staking.t.sol b/contracts/contracts/test/L2Staking.t.sol index b59943107..48a8a9a89 100644 --- a/contracts/contracts/test/L2Staking.t.sol +++ b/contracts/contracts/test/L2Staking.t.sol @@ -1270,12 +1270,6 @@ contract L2StakingTest is L2StakingBaseTest { assertEq(aliceRewards[1], aliceReward2); assertEq(aliceRewards[2], aliceReward3); - // console.logString("......................"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); - // console.logString("......................"); - // *************** epoch = 4 ******************** // time = REWARD_EPOCH * 5; hevm.roll(blocksCountOfEpoch * 5); @@ -1286,22 +1280,11 @@ contract L2StakingTest is L2StakingBaseTest { aliceReward2 = distribute.queryUnclaimed(secondStaker, alice); aliceReward3 = distribute.queryUnclaimed(thirdStaker, alice); - // console.logString("......................"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); - // console.logString("......................"); - hevm.startPrank(alice); uint256 balanceBefore = morphToken.balanceOf(alice); l2Staking.claimReward(address(0), 0); uint256 balanceAfter = morphToken.balanceOf(alice); - // console.logString("......................"); - // console.logUint(balanceBefore); - // console.logUint(balanceAfter); - // console.logString("......................"); - assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); hevm.stopPrank(); } @@ -1374,12 +1357,7 @@ contract L2StakingTest is L2StakingBaseTest { assertTrue(aliceReward1 > 0); assertTrue(aliceReward2 > 0); assertTrue(aliceReward3 > 0); - // console.logString("......................"); - // console.logString("reward before claim"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); - // console.logString("......................"); + assertEq(delegetees[0], firstStaker); assertEq(delegetees[1], secondStaker); assertEq(delegetees[2], thirdStaker); @@ -1392,11 +1370,6 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.claimReward(address(0), 0); uint256 balanceAfter = morphToken.balanceOf(alice); assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); - // console.logString("......................"); - // console.logString("claim all result"); - // console.logUint(balanceBefore); - // console.logUint(balanceAfter); - // console.logString("......................"); hevm.stopPrank(); (delegetees, aliceRewards) = distribute.queryAllUnclaimed(alice); @@ -1406,12 +1379,7 @@ contract L2StakingTest is L2StakingBaseTest { assertTrue(aliceReward1 == 0); assertTrue(aliceReward2 == 0); assertTrue(aliceReward3 == 0); - // console.logString("......................"); - // console.logString("query 0 epoch later"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); - // console.logString("......................"); + assertEq(delegetees[0], firstStaker); assertEq(delegetees[1], secondStaker); assertEq(delegetees[2], thirdStaker); @@ -1432,12 +1400,7 @@ contract L2StakingTest is L2StakingBaseTest { assertTrue(aliceReward1 > 0); assertTrue(aliceReward2 > 0); assertTrue(aliceReward3 > 0); - // console.logString("......................"); - // console.logString("query 1 epoch later"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); - // console.logString("......................"); + assertEq(delegetees[0], firstStaker); assertEq(delegetees[1], secondStaker); assertEq(delegetees[2], thirdStaker); @@ -1458,12 +1421,7 @@ contract L2StakingTest is L2StakingBaseTest { assertTrue(aliceReward1 > 0); assertTrue(aliceReward2 > 0); assertTrue(aliceReward3 > 0); - // console.logString("......................"); - // console.logString("query 2 epoch later"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); - // console.logString("......................"); + assertEq(delegetees[0], firstStaker); assertEq(delegetees[1], secondStaker); assertEq(delegetees[2], thirdStaker); @@ -1476,8 +1434,6 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.claimReward(address(0), 0); balanceAfter = morphToken.balanceOf(alice); assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); - // console.logUint(balanceBefore); - // console.logUint(balanceAfter); hevm.stopPrank(); // *************** epoch = 4 ******************** // @@ -1499,9 +1455,7 @@ contract L2StakingTest is L2StakingBaseTest { assertTrue(aliceReward1 > 0); assertTrue(aliceReward2 > 0); assertTrue(aliceReward3 > 0); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); + assertEq(delegetees[0], firstStaker); assertEq(delegetees[1], secondStaker); assertEq(delegetees[2], thirdStaker); @@ -1514,8 +1468,6 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.claimReward(address(0), 0); balanceAfter = morphToken.balanceOf(alice); assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); - // console.logUint(balanceBefore); - // console.logUint(balanceAfter); hevm.stopPrank(); } @@ -1573,7 +1525,6 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (3)); hevm.warp(time); _updateDistribute(1); - // console.logUint(morphToken.inflationMintedEpochs()); // *********************************** // uint256 aliceReward1 = distribute.queryUnclaimed(firstStaker, alice); @@ -1581,11 +1532,6 @@ contract L2StakingTest is L2StakingBaseTest { uint256 aliceReward3 = distribute.queryUnclaimed(thirdStaker, alice); hevm.startPrank(alice); uint256 balanceBefore = morphToken.balanceOf(alice); - // console.logString("......................"); - // console.logUint(balanceBefore); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); l2Staking.claimReward(address(0), 0); hevm.expectRevert("all reward claimed"); @@ -1596,8 +1542,6 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.claimReward(thirdStaker, 0); uint256 balanceAfter = morphToken.balanceOf(alice); - // console.logUint(balanceAfter); - // console.logString("......................"); assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); hevm.stopPrank(); @@ -1606,7 +1550,6 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (4)); hevm.warp(time); _updateDistribute(2); - // console.logUint(morphToken.inflationMintedEpochs()); // *********************************** // hevm.startPrank(alice); @@ -1615,23 +1558,15 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.undelegateStake(thirdStaker); hevm.stopPrank(); - // console.logString("......................"); - // console.logString("......................"); aliceReward1 = distribute.queryUnclaimed(firstStaker, alice); aliceReward2 = distribute.queryUnclaimed(secondStaker, alice); aliceReward3 = distribute.queryUnclaimed(thirdStaker, alice); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); - // console.logString("......................"); - // console.logString("......................"); // *********************************** // time = REWARD_EPOCH * (5); hevm.roll(blocksCountOfEpoch * (5)); hevm.warp(time); _updateDistribute(3); - // console.logUint(morphToken.inflationMintedEpochs()); // *********************************** // // *********************************** // @@ -1639,7 +1574,6 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (6)); hevm.warp(time); _updateDistribute(4); - // console.logUint(morphToken.inflationMintedEpochs()); // *********************************** // // *********************************** // @@ -1647,7 +1581,6 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (7)); hevm.warp(time); _updateDistribute(5); - // console.logUint(morphToken.inflationMintedEpochs()); // *********************************** // // *********************************** // @@ -1655,7 +1588,6 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (8)); hevm.warp(time); _updateDistribute(6); - // console.logUint(morphToken.inflationMintedEpochs()); // *********************************** // uint256 aliceRewardNew1 = distribute.queryUnclaimed(firstStaker, alice); @@ -1663,49 +1595,30 @@ contract L2StakingTest is L2StakingBaseTest { uint256 aliceRewardNew3 = distribute.queryUnclaimed(thirdStaker, alice); hevm.startPrank(alice); - // console.logString("......................"); balanceBefore = morphToken.balanceOf(alice); uint256 balanceBeforeTmp = balanceBefore; - // console.logUint(balanceBefore); - // console.logString("......................"); - - // l2Staking.claimReward(address(0), 0); - // console.logString("......................"); - - // console.logUint(aliceRewardNew1); balanceBeforeTmp = morphToken.balanceOf(alice); l2Staking.claimReward(firstStaker, 0); hevm.expectRevert("no remaining reward"); l2Staking.claimReward(firstStaker, 0); balanceAfter = morphToken.balanceOf(alice); - // console.logUint(balanceAfter); assertEq(balanceAfter, balanceBeforeTmp + aliceRewardNew1); - // console.logString("......................"); - - // console.logUint(aliceRewardNew2); balanceBeforeTmp = morphToken.balanceOf(alice); l2Staking.claimReward(secondStaker, 0); hevm.expectRevert("no remaining reward"); l2Staking.claimReward(secondStaker, 0); balanceAfter = morphToken.balanceOf(alice); - // console.logUint(balanceAfter); assertEq(balanceAfter, balanceBeforeTmp + aliceRewardNew2); - // console.logString("......................"); - - // console.logUint(aliceRewardNew3); balanceBeforeTmp = morphToken.balanceOf(alice); l2Staking.claimReward(thirdStaker, 0); hevm.expectRevert("no remaining reward"); l2Staking.claimReward(thirdStaker, 0); balanceAfter = morphToken.balanceOf(alice); - // console.logUint(balanceAfter); assertEq(balanceAfter, balanceBeforeTmp + aliceRewardNew3); - // console.logString("......................"); - assertEq(balanceAfter, balanceBefore + aliceRewardNew1 + aliceRewardNew2 + aliceRewardNew3); hevm.expectRevert("invalid delegator or no remaining reward"); @@ -1771,7 +1684,6 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (3)); hevm.warp(time); _updateDistribute(1); - // console.logUint(morphToken.inflationMintedEpochs()); // *********************************** // // *********************************** // @@ -1779,7 +1691,6 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (4)); hevm.warp(time); _updateDistribute(2); - // console.logUint(morphToken.inflationMintedEpochs()); // *********************************** // hevm.startPrank(alice); @@ -1793,18 +1704,12 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (5)); hevm.warp(time); _updateDistribute(3); - // console.logUint(morphToken.inflationMintedEpochs()); // *********************************** // uint256 aliceReward1 = distribute.queryUnclaimed(firstStaker, alice); uint256 aliceReward2 = distribute.queryUnclaimed(secondStaker, alice); uint256 aliceReward3 = distribute.queryUnclaimed(thirdStaker, alice); uint256 balanceBefore = morphToken.balanceOf(alice); - console.logString("......................"); - console.logUint(balanceBefore); - console.logUint(aliceReward1); - console.logUint(aliceReward2); - console.logUint(aliceReward3); hevm.startPrank(alice); l2Staking.claimReward(address(0), 0); @@ -1824,8 +1729,6 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.claimReward(thirdStaker, 0); uint256 balanceAfter = morphToken.balanceOf(alice); - console.logUint(balanceAfter); - console.logString("......................"); assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); hevm.stopPrank(); } @@ -1934,13 +1837,10 @@ contract L2StakingTest is L2StakingBaseTest { hevm.stopPrank(); uint256 alice2Reward = distribute.queryUnclaimed(firstStaker, alice2); - console.log("alice2Reward: ", alice2Reward); hevm.startPrank(alice2); uint256 alice2BalanceBefore = morphToken.balanceOf(alice2); - // console.log("alice2BalanceBefore: ", alice2BalanceBefore); l2Staking.claimReward(firstStaker, 0); uint256 alice2BalanceAfter = morphToken.balanceOf(alice2); - // console.log("alice2BalanceAfter: ", alice2BalanceAfter); assertEq(alice2BalanceAfter, alice2BalanceBefore + alice2Reward); hevm.stopPrank(); @@ -2013,11 +1913,6 @@ contract L2StakingTest is L2StakingBaseTest { assertEq(aliceRewards[0], aliceReward1); assertEq(aliceRewards[1], aliceReward2); - // console.logString("......................"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logString("......................"); - // *************** epoch = 4 ******************** // time = REWARD_EPOCH * 5; hevm.roll(blocksCountOfEpoch * 5); @@ -2033,11 +1928,6 @@ contract L2StakingTest is L2StakingBaseTest { IL2Staking.Undelegation[] memory undelegations = l2Staking.getUndelegations(alice); assertEq(undelegations.length, 2); - // console.logString("......................"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logString("......................"); - // *************** epoch = 5 ******************** // time = REWARD_EPOCH * 6; hevm.roll(blocksCountOfEpoch * 6); @@ -2047,22 +1937,12 @@ contract L2StakingTest is L2StakingBaseTest { aliceReward1 = distribute.queryUnclaimed(firstStaker, alice); aliceReward2 = distribute.queryUnclaimed(secondStaker, alice); - // console.logString("......................"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logString("......................"); - hevm.startPrank(alice); uint256 balanceBefore = morphToken.balanceOf(alice); l2Staking.claimReward(firstStaker, 0); l2Staking.claimReward(secondStaker, 0); uint256 balanceAfter = morphToken.balanceOf(alice); - // console.logString("......................"); - // console.logUint(balanceBefore); - // console.logUint(balanceAfter); - // console.logString("......................"); - assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2); hevm.stopPrank(); } From 62fa3513445528019295098307dd95e7948a6e6d Mon Sep 17 00:00:00 2001 From: Segue Date: Thu, 14 Nov 2024 13:10:15 +0800 Subject: [PATCH 036/106] clean test --- contracts/contracts/test/Gov.t.sol | 45 ------------------------------ 1 file changed, 45 deletions(-) diff --git a/contracts/contracts/test/Gov.t.sol b/contracts/contracts/test/Gov.t.sol index 09c26418d..17bd2ba14 100644 --- a/contracts/contracts/test/Gov.t.sol +++ b/contracts/contracts/test/Gov.t.sol @@ -93,11 +93,6 @@ contract GovTest is L2StakingBaseTest { uint256 proposalID = gov.createProposal(proposal); hevm.stopPrank(); - // console.logString("......................"); - // console.logUint(proposalID); - // console.logUint(gov.latestExecutedProposalID()); - // console.logString("......................"); - uint256 voteCnt = 0; for (uint256 i = 0; i < SEQUENCER_SIZE; i++) { user = address(uint160(beginSeq + i)); @@ -122,11 +117,6 @@ contract GovTest is L2StakingBaseTest { assertTrue(executed); assertEq(block.timestamp + VOTING_DURATION, expirationTime); - // console.logString("......................"); - // console.logUint(proposalID); - // console.logUint(gov.latestExecutedProposalID()); - // console.logString("......................"); - (finished, passed, executed) = gov.proposalStatus(proposalID); assertTrue(finished); assertTrue(passed); @@ -489,13 +479,6 @@ contract GovTest is L2StakingBaseTest { assertEq(gov.rollupEpoch(), ROLLUP_EPOCH); assertEq(gov.undeletedProposalStart(), 0); - console.logString("......................"); - console.logString("first proposal executed"); - console.logUint(gov.currentProposalID()); - console.logUint(gov.undeletedProposalStart()); - console.logUint(gov.latestExecutedProposalID()); - console.logString("......................"); - hevm.prank(address(user)); uint256 latestExecutedProposalID = gov.latestExecutedProposalID(); hevm.expectRevert("only allow to delete the proposal befor latest passed proposal"); @@ -546,24 +529,10 @@ contract GovTest is L2StakingBaseTest { assertEq(gov.rollupEpoch(), ROLLUP_EPOCH); assertEq(gov.undeletedProposalStart(), 0); - // console.logString("......................"); - // console.logString("first proposal executed"); - // console.logUint(gov.currentProposalID()); - // console.logUint(gov.undeletedProposalStart()); - // console.logUint(gov.latestExecutedProposalID()); - // console.logString("......................"); - hevm.prank(address(user)); gov.cleanUpExpiredProposals(gov.latestExecutedProposalID() - 1); hevm.stopPrank(); - // console.logString("......................"); - // console.logString("cleared"); - // console.logUint(gov.currentProposalID()); - // console.logUint(gov.undeletedProposalStart()); - // console.logUint(gov.latestExecutedProposalID()); - // console.logString("......................"); - assertEq(gov.undeletedProposalStart(), 1); IGov.ProposalData memory proposal1 = IGov.ProposalData( @@ -595,24 +564,10 @@ contract GovTest is L2StakingBaseTest { assertTrue(passed); assertTrue(executed); - // console.logString("......................"); - // console.logString("second proposal executed"); - // console.logUint(gov.currentProposalID()); - // console.logUint(gov.undeletedProposalStart()); - // console.logUint(gov.latestExecutedProposalID()); - // console.logString("......................"); - hevm.prank(address(user)); gov.cleanUpExpiredProposals(gov.latestExecutedProposalID() - 1); hevm.stopPrank(); - // console.logString("......................"); - // console.logString("cleared"); - // console.logUint(gov.currentProposalID()); - // console.logUint(gov.undeletedProposalStart()); - // console.logUint(gov.latestExecutedProposalID()); - // console.logString("......................"); - assertEq(gov.undeletedProposalStart(), gov.currentProposalID()); assertEq(gov.undeletedProposalStart(), 2); From 1beb8124378bb9f648d5485aa615077364d5e10a Mon Sep 17 00:00:00 2001 From: Segue Date: Thu, 14 Nov 2024 13:12:12 +0800 Subject: [PATCH 037/106] clean test --- contracts/contracts/test/L1Staking.t.sol | 6 -- contracts/contracts/test/L2Staking.t.sol | 108 ++++------------------- 2 files changed, 16 insertions(+), 98 deletions(-) diff --git a/contracts/contracts/test/L1Staking.t.sol b/contracts/contracts/test/L1Staking.t.sol index 825e5040f..3324aa578 100644 --- a/contracts/contracts/test/L1Staking.t.sol +++ b/contracts/contracts/test/L1Staking.t.sol @@ -387,12 +387,6 @@ contract StakingTest is L1MessageBaseTest { assertEq(stakersAddr.length, stakersConvert.length); assertEq(stakersAddr[0], stakersConvert[0]); assertEq(stakersAddr[stakersAddr.length - 1], stakersConvert[stakersConvert.length - 1]); - - // console.logString("......................"); - // console.logUint(bitmap); - // console.logUint(stakersAddr.length); - // console.logUint(stakersConvert.length); - // console.logString("......................"); } function test_slash_succeeds() external { diff --git a/contracts/contracts/test/L2Staking.t.sol b/contracts/contracts/test/L2Staking.t.sol index 2bd3ebd53..7e5fb6458 100644 --- a/contracts/contracts/test/L2Staking.t.sol +++ b/contracts/contracts/test/L2Staking.t.sol @@ -1331,12 +1331,6 @@ contract L2StakingTest is L2StakingBaseTest { assertEq(aliceRewards[1], aliceReward2); assertEq(aliceRewards[2], aliceReward3); - // console.logString("......................"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); - // console.logString("......................"); - // *************** epoch = 4 ******************** // time = REWARD_EPOCH * 5; hevm.roll(blocksCountOfEpoch * 5); @@ -1347,22 +1341,11 @@ contract L2StakingTest is L2StakingBaseTest { aliceReward2 = distribute.queryUnclaimed(secondStaker, alice); aliceReward3 = distribute.queryUnclaimed(thirdStaker, alice); - // console.logString("......................"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); - // console.logString("......................"); - hevm.startPrank(alice); uint256 balanceBefore = morphToken.balanceOf(alice); l2Staking.claimReward(address(0), 0); uint256 balanceAfter = morphToken.balanceOf(alice); - // console.logString("......................"); - // console.logUint(balanceBefore); - // console.logUint(balanceAfter); - // console.logString("......................"); - assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); hevm.stopPrank(); } @@ -1435,9 +1418,6 @@ contract L2StakingTest is L2StakingBaseTest { assertTrue(aliceReward1 > 0); assertTrue(aliceReward2 > 0); assertTrue(aliceReward3 > 0); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); assertEq(delegetees[0], firstStaker); assertEq(delegetees[1], secondStaker); assertEq(delegetees[2], thirdStaker); @@ -1450,8 +1430,6 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.claimReward(address(0), 0); uint256 balanceAfter = morphToken.balanceOf(alice); assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); - // console.logUint(balanceBefore); - // console.logUint(balanceAfter); hevm.stopPrank(); // *************** epoch = 4 ******************** // @@ -1473,9 +1451,7 @@ contract L2StakingTest is L2StakingBaseTest { assertTrue(aliceReward1 > 0); assertTrue(aliceReward2 > 0); assertTrue(aliceReward3 > 0); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); + assertEq(delegetees[0], firstStaker); assertEq(delegetees[1], secondStaker); assertEq(delegetees[2], thirdStaker); @@ -1488,8 +1464,7 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.claimReward(address(0), 0); balanceAfter = morphToken.balanceOf(alice); assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); - // console.logUint(balanceBefore); - // console.logUint(balanceAfter); + hevm.stopPrank(); // *************** epoch = 4 ******************** // @@ -1511,9 +1486,7 @@ contract L2StakingTest is L2StakingBaseTest { assertTrue(aliceReward1 > 0); assertTrue(aliceReward2 > 0); assertTrue(aliceReward3 > 0); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); + assertEq(delegetees[0], firstStaker); assertEq(delegetees[1], secondStaker); assertEq(delegetees[2], thirdStaker); @@ -1526,8 +1499,7 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.claimReward(address(0), 0); balanceAfter = morphToken.balanceOf(alice); assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); - // console.logUint(balanceBefore); - // console.logUint(balanceAfter); + hevm.stopPrank(); } @@ -1585,7 +1557,7 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (3)); hevm.warp(time); _updateDistribute(1); - // console.logUint(morphToken.inflationMintedEpochs()); + // *********************************** // uint256 aliceReward1 = distribute.queryUnclaimed(firstStaker, alice); @@ -1593,11 +1565,6 @@ contract L2StakingTest is L2StakingBaseTest { uint256 aliceReward3 = distribute.queryUnclaimed(thirdStaker, alice); hevm.startPrank(alice); uint256 balanceBefore = morphToken.balanceOf(alice); - // console.logString("......................"); - // console.logUint(balanceBefore); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); l2Staking.claimReward(address(0), 0); hevm.expectRevert("all reward claimed"); @@ -1608,8 +1575,6 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.claimReward(thirdStaker, 0); uint256 balanceAfter = morphToken.balanceOf(alice); - // console.logUint(balanceAfter); - // console.logString("......................"); assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2 + aliceReward3); hevm.stopPrank(); @@ -1618,7 +1583,7 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (4)); hevm.warp(time); _updateDistribute(2); - // console.logUint(morphToken.inflationMintedEpochs()); + // *********************************** // hevm.startPrank(alice); @@ -1627,23 +1592,16 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.undelegateStake(thirdStaker); hevm.stopPrank(); - // console.logString("......................"); - // console.logString("......................"); aliceReward1 = distribute.queryUnclaimed(firstStaker, alice); aliceReward2 = distribute.queryUnclaimed(secondStaker, alice); aliceReward3 = distribute.queryUnclaimed(thirdStaker, alice); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logUint(aliceReward3); - // console.logString("......................"); - // console.logString("......................"); // *********************************** // time = REWARD_EPOCH * (5); hevm.roll(blocksCountOfEpoch * (5)); hevm.warp(time); _updateDistribute(3); - // console.logUint(morphToken.inflationMintedEpochs()); + // *********************************** // // *********************************** // @@ -1651,7 +1609,7 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (6)); hevm.warp(time); _updateDistribute(4); - // console.logUint(morphToken.inflationMintedEpochs()); + // *********************************** // // *********************************** // @@ -1659,7 +1617,7 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (7)); hevm.warp(time); _updateDistribute(5); - // console.logUint(morphToken.inflationMintedEpochs()); + // *********************************** // // *********************************** // @@ -1667,7 +1625,7 @@ contract L2StakingTest is L2StakingBaseTest { hevm.roll(blocksCountOfEpoch * (8)); hevm.warp(time); _updateDistribute(6); - // console.logUint(morphToken.inflationMintedEpochs()); + // *********************************** // uint256 aliceRewardNew1 = distribute.queryUnclaimed(firstStaker, alice); @@ -1675,48 +1633,35 @@ contract L2StakingTest is L2StakingBaseTest { uint256 aliceRewardNew3 = distribute.queryUnclaimed(thirdStaker, alice); hevm.startPrank(alice); - // console.logString("......................"); + balanceBefore = morphToken.balanceOf(alice); uint256 balanceBeforeTmp = balanceBefore; - // console.logUint(balanceBefore); - // console.logString("......................"); // l2Staking.claimReward(address(0), 0); - // console.logString("......................"); - - // console.logUint(aliceRewardNew1); balanceBeforeTmp = morphToken.balanceOf(alice); l2Staking.claimReward(firstStaker, 0); hevm.expectRevert("no remaining reward"); l2Staking.claimReward(firstStaker, 0); balanceAfter = morphToken.balanceOf(alice); - // console.logUint(balanceAfter); - assertEq(balanceAfter, balanceBeforeTmp + aliceRewardNew1); - // console.logString("......................"); + assertEq(balanceAfter, balanceBeforeTmp + aliceRewardNew1); - // console.logUint(aliceRewardNew2); balanceBeforeTmp = morphToken.balanceOf(alice); l2Staking.claimReward(secondStaker, 0); hevm.expectRevert("no remaining reward"); l2Staking.claimReward(secondStaker, 0); balanceAfter = morphToken.balanceOf(alice); - // console.logUint(balanceAfter); - assertEq(balanceAfter, balanceBeforeTmp + aliceRewardNew2); - // console.logString("......................"); + assertEq(balanceAfter, balanceBeforeTmp + aliceRewardNew2); - // console.logUint(aliceRewardNew3); balanceBeforeTmp = morphToken.balanceOf(alice); l2Staking.claimReward(thirdStaker, 0); hevm.expectRevert("no remaining reward"); l2Staking.claimReward(thirdStaker, 0); balanceAfter = morphToken.balanceOf(alice); - // console.logUint(balanceAfter); - assertEq(balanceAfter, balanceBeforeTmp + aliceRewardNew3); - // console.logString("......................"); + assertEq(balanceAfter, balanceBeforeTmp + aliceRewardNew3); assertEq(balanceAfter, balanceBefore + aliceRewardNew1 + aliceRewardNew2 + aliceRewardNew3); @@ -1833,13 +1778,12 @@ contract L2StakingTest is L2StakingBaseTest { hevm.stopPrank(); uint256 alice2Reward = distribute.queryUnclaimed(firstStaker, alice2); - console.log("alice2Reward: ", alice2Reward); hevm.startPrank(alice2); uint256 alice2BalanceBefore = morphToken.balanceOf(alice2); - // console.log("alice2BalanceBefore: ", alice2BalanceBefore); + l2Staking.claimReward(firstStaker, 0); uint256 alice2BalanceAfter = morphToken.balanceOf(alice2); - // console.log("alice2BalanceAfter: ", alice2BalanceAfter); + assertEq(alice2BalanceAfter, alice2BalanceBefore + alice2Reward); hevm.stopPrank(); @@ -1912,11 +1856,6 @@ contract L2StakingTest is L2StakingBaseTest { assertEq(aliceRewards[0], aliceReward1); assertEq(aliceRewards[1], aliceReward2); - // console.logString("......................"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logString("......................"); - // *************** epoch = 4 ******************** // time = REWARD_EPOCH * 5; hevm.roll(blocksCountOfEpoch * 5); @@ -1932,11 +1871,6 @@ contract L2StakingTest is L2StakingBaseTest { IL2Staking.Undelegation[] memory undelegations = l2Staking.getUndelegations(alice); assertEq(undelegations.length, 2); - // console.logString("......................"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logString("......................"); - // *************** epoch = 5 ******************** // time = REWARD_EPOCH * 6; hevm.roll(blocksCountOfEpoch * 6); @@ -1946,22 +1880,12 @@ contract L2StakingTest is L2StakingBaseTest { aliceReward1 = distribute.queryUnclaimed(firstStaker, alice); aliceReward2 = distribute.queryUnclaimed(secondStaker, alice); - // console.logString("......................"); - // console.logUint(aliceReward1); - // console.logUint(aliceReward2); - // console.logString("......................"); - hevm.startPrank(alice); uint256 balanceBefore = morphToken.balanceOf(alice); l2Staking.claimReward(firstStaker, 0); l2Staking.claimReward(secondStaker, 0); uint256 balanceAfter = morphToken.balanceOf(alice); - // console.logString("......................"); - // console.logUint(balanceBefore); - // console.logUint(balanceAfter); - // console.logString("......................"); - assertEq(balanceAfter, balanceBefore + aliceReward1 + aliceReward2); hevm.stopPrank(); } From 61e1cf3db1f93658b6a365d8a4c4cbe122573957 Mon Sep 17 00:00:00 2001 From: Segue Date: Fri, 15 Nov 2024 15:08:07 +0800 Subject: [PATCH 038/106] clean test --- contracts/contracts/test/L2Staking.t.sol | 44 ------------------------ 1 file changed, 44 deletions(-) diff --git a/contracts/contracts/test/L2Staking.t.sol b/contracts/contracts/test/L2Staking.t.sol index aa28e17da..f09d465a3 100644 --- a/contracts/contracts/test/L2Staking.t.sol +++ b/contracts/contracts/test/L2Staking.t.sol @@ -2221,10 +2221,6 @@ contract L2StakingTest is L2StakingBaseTest { // check firstStaker { (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(firstStaker, 10, 0); - // console.logString("......................"); - // console.logUint(total); - // console.logUint(delegators.length); - // console.logString("......................"); assertEq(total, 5); assertEq(delegators.length, 10); assertEq(delegators[0], alice); @@ -2237,10 +2233,6 @@ contract L2StakingTest is L2StakingBaseTest { { (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(firstStaker, 1, 0); - // console.logString("......................"); - // console.logUint(total); - // console.logUint(delegators.length); - // console.logString("......................"); assertEq(total, 5); assertEq(delegators.length, 1); assertEq(delegators[0], alice); @@ -2248,10 +2240,6 @@ contract L2StakingTest is L2StakingBaseTest { { (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(firstStaker, 1, 1); - // console.logString("......................"); - // console.logUint(total); - // console.logUint(delegators.length); - // console.logString("......................"); assertEq(total, 5); assertEq(delegators.length, 1); assertEq(delegators[0], alice1); @@ -2259,10 +2247,6 @@ contract L2StakingTest is L2StakingBaseTest { { (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(firstStaker, 2, 2); - // console.logString("......................"); - // console.logUint(total); - // console.logUint(delegators.length); - // console.logString("......................"); assertEq(total, 5); assertEq(delegators.length, 2); assertEq(delegators[0], alice4); @@ -2271,10 +2255,6 @@ contract L2StakingTest is L2StakingBaseTest { { (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(firstStaker, 10, 3); - // console.logString("......................"); - // console.logUint(total); - // console.logUint(delegators.length); - // console.logString("......................"); assertEq(total, 5); assertEq(delegators.length, 10); assertEq(delegators[0], address(0)); @@ -2284,10 +2264,6 @@ contract L2StakingTest is L2StakingBaseTest { // check secondStaker { (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(secondStaker, 10, 0); - // console.logString("......................"); - // console.logUint(total); - // console.logUint(delegators.length); - // console.logString("......................"); assertEq(total, 3); assertEq(delegators.length, 10); assertEq(delegators[0], alice); @@ -2298,10 +2274,6 @@ contract L2StakingTest is L2StakingBaseTest { { (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(secondStaker, 2, 1); - // console.logString("......................"); - // console.logUint(total); - // console.logUint(delegators.length); - // console.logString("......................"); assertEq(total, 3); assertEq(delegators.length, 2); assertEq(delegators[0], alice2); @@ -2310,10 +2282,6 @@ contract L2StakingTest is L2StakingBaseTest { { (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(secondStaker, 2, 2); - // console.logString("......................"); - // console.logUint(total); - // console.logUint(delegators.length); - // console.logString("......................"); assertEq(total, 3); assertEq(delegators.length, 2); assertEq(delegators[0], address(0)); @@ -2323,10 +2291,6 @@ contract L2StakingTest is L2StakingBaseTest { // check thirdStaker { (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(thirdStaker, 10, 0); - // console.logString("......................"); - // console.logUint(total); - // console.logUint(delegators.length); - // console.logString("......................"); assertEq(total, 1); assertEq(delegators.length, 10); assertEq(delegators[0], alice); @@ -2335,10 +2299,6 @@ contract L2StakingTest is L2StakingBaseTest { { (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(thirdStaker, 1, 0); - // console.logString("......................"); - // console.logUint(total); - // console.logUint(delegators.length); - // console.logString("......................"); assertEq(total, 1); assertEq(delegators.length, 1); assertEq(delegators[0], alice); @@ -2346,10 +2306,6 @@ contract L2StakingTest is L2StakingBaseTest { { (uint256 total, address[] memory delegators) = l2Staking.getAllDelegatorsInPagination(thirdStaker, 1, 1); - // console.logString("......................"); - // console.logUint(total); - // console.logUint(delegators.length); - // console.logString("......................"); assertEq(total, 1); assertEq(delegators.length, 1); assertEq(delegators[0], address(0)); From 3e19f696dac57f99729a07b2d11456eec0dad6b7 Mon Sep 17 00:00:00 2001 From: Segue Date: Fri, 15 Nov 2024 15:09:45 +0800 Subject: [PATCH 039/106] update bindings --- bindings/bin/l2staking_deployed.hex | 2 +- bindings/bindings/l2staking.go | 2 +- bindings/bindings/l2staking_more.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bindings/bin/l2staking_deployed.hex b/bindings/bin/l2staking_deployed.hex index 60ec31b3a..d748c0f81 100644 --- a/bindings/bin/l2staking_deployed.hex +++ b/bindings/bin/l2staking_deployed.hex @@ -1 +1 @@ -0x608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106cf578063fad99f98146106e2578063fc6facc6146106ea575f80fd5b8063e10911b11461069e578063ed70b343146106a6578063f0261bc2146106c6575f80fd5b8063cce6cf9f116100c3578063cce6cf9f14610643578063d31d83d914610656578063d557714114610677575f80fd5b8063affed0e0146105f1578063b5d2e0dc146105fa578063c64814dd14610619575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a41461059e578063927ede2d146105bd57806396ab994d146105e4575f80fd5b80638da5cb5b146105445780638e21d5fb146105555780639168ae721461057c575f80fd5b80637b05afb5116101785780637b05afb5146104db578063831cfb58146104fa57806384d7d1d414610521575f80fd5b8063746c8ae1146104cb57806376671808146104d3575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104a85780637046529b146104b0578063715018a6146104c3575f80fd5b806343352d611461047a578063439162b514610482578063459598a214610495575f80fd5b80633cb747bf1161022d5780633cb747bf146104065780633d9353fe1461044057806340b5c83714610467575f80fd5b80633b802421146103ea5780633c323a1b146103f3575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103ae57806330158eea146103b75780633385ccc2146103d7575f80fd5b8063174e31c41461037f57806319fac8fd146103925780632cc138be146103a5575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610376575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe3660046145b1565b6106fd565b6040519081526020015b60405180910390f35b6103296103243660046145cc565b610723565b005b610329610339366004614616565b610901565b61035161034c36600461462d565b610a14565b604080516001600160a01b03909416845260208401929092529082015260600161030d565b610303609a5481565b61032961038d36600461462d565b610a5c565b6103296103a0366004614616565b610bd4565b61030360985481565b61030360995481565b6103ca6103c536600461469f565b610cf6565b60405161030d919061473f565b6103296103e53660046145b1565b610f1d565b610303609c5481565b61032961040136600461462d565b611557565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161030d565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329610475366004614616565b611be6565b6103ca611cf9565b6103296104903660046147e5565b611f15565b6104286104a3366004614616565b612446565b609d54610303565b6103296104be3660046145cc565b61246e565b6103296125c8565b6103296125db565b6103036128cb565b6103036104e93660046145b1565b60a06020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61053461052f3660046145b1565b61293f565b604051901515815260200161030d565b6033546001600160a01b0316610428565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61058f61058a3660046145b1565b612969565b60405161030d93929190614853565b6103036105ac3660046145b1565b60a16020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b6097546105349060ff1681565b61030360a55481565b6103036106083660046145b1565b609e6020525f908152604090205481565b610303610627366004614883565b60a360209081525f928352604080842090915290825290205481565b6103296106513660046148af565b612a1b565b6106696106643660046148f7565b612f87565b60405161030d92919061496c565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329613101565b6106b96106b43660046145b1565b613485565b60405161030d919061498c565b610303609b5481565b6103296106dd3660046145b1565b61351b565b6103296135a8565b6103296106f83660046148af565b613656565b6001600160a01b0381165f90815260a26020526040812061071d90613a21565b92915050565b61072b613a2a565b8160a55481146107825760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b61078d836001614a1a565b60a555609e5f6107a060208501856145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f0361084257609d6107d560208401846145b1565b81546001810183555f9283526020808420909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155609d5491609e91610828908601866145b1565b6001600160a01b0316815260208101919091526040015f20555b81609f5f61085360208401846145b1565b6001600160a01b0316815260208101919091526040015f206108758282614b4a565b50610885905060208301836145b1565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208401356108c16040860186614a2d565b6040516108d093929190614cb1565b60405180910390a260975460ff161580156108ef5750609954609d5411155b156108fc576108fc613a84565b505050565b610909613a2a565b5f8111801561091a57506099548114155b61098c5760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a650000000000000000000000000000000000000000000000000000000000006064820152608401610779565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff166109e157609d546109e5565b609c545b90505f60995482106109f9576099546109fb565b815b9050609b548114610a0e57610a0e613a84565b50505050565b60a4602052815f5260405f208181548110610a2d575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610a64613c04565b6001600160a01b038216610b1a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610aff575f80fd5b505af1158015610b11573d5f803e3d5ffd5b50505050610bc6565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610baf575f80fd5b505af1158015610bc1573d5f803e3d5ffd5b505050505b610bd06001606555565b5050565b335f908152609e6020526040902054610c2f5760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f776564000000000000000000000000006044820152606401610779565b6014811115610c805760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e00000000000000000000000000006044820152606401610779565b335f90815260a06020526040812082905560975460ff16610ca1575f610cb4565b610ca96128cb565b610cb4906001614a1a565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610d1257610d12614a8e565b604051908082528060200260200182016040528015610d5e57816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610d305790505b5090505f5b83811015610f15576040518060600160405280609f5f888886818110610d8b57610d8b614d04565b9050602002016020810190610da091906145b1565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610ddd57610ddd614d04565b9050602002016020810190610df291906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f888886818110610e2f57610e2f614d04565b9050602002016020810190610e4491906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f206002018054610e7190614abb565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9d90614abb565b8015610ee85780601f10610ebf57610100808354040283529160200191610ee8565b820191905f5260205f20905b815481529060010190602001808311610ecb57829003601f168201915b5050505050815250828281518110610f0257610f02614d04565b6020908102919091010152600101610d63565b509392505050565b610f25613c04565b6001600160a01b0381165f90815260a360209081526040808320338452909152902054610f945760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f000000000000000000006044820152606401610779565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff16610fc0575f610fd3565b610fc86128cb565b610fd3906001614a1a565b6097549091505f9060ff168015610fe8575082155b610ff25781610fff565b609a54610fff9083614a1a565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c51600390920201805473ffffffffffffffffffffffffffffffffffffffff191691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936110b6908490614d31565b90915550506001600160a01b0385165f90815260a2602052604090206110dc9033613c64565b506001600160a01b0385165f908152609e602052604090205484158015611105575060975460ff165b80156111125750609c5481105b15611373576001600160a01b0386165f908152609e602052604081205461113b90600190614d31565b90505b6001609c5461114d9190614d31565b8110156113715760a15f609d838154811061116a5761116a614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d61119f856001614a1a565b815481106111af576111af614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611369575f609d82815481106111ed576111ed614d04565b5f918252602090912001546001600160a01b03169050609d611210836001614a1a565b8154811061122057611220614d04565b5f91825260209091200154609d80546001600160a01b03909216918490811061124b5761124b614d04565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905580609d61128e846001614a1a565b8154811061129e5761129e614d04565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556112de826001614a1a565b609e5f609d85815481106112f4576112f4614d04565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611323826002614a1a565b609e5f609d611333866001614a1a565b8154811061134357611343614d04565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b60010161113e565b505b8415801561139657506001600160a01b0386165f90815260a16020526040902054155b156113b3576001609c5f8282546113ad9190614d31565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611454575f80fd5b505af1158015611466573d5f803e3d5ffd5b505050506114713390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516114cc939291909283526020830191909152604082015260600190565b60405180910390a3841580156114e4575060975460ff165b80156114f25750609b548111155b80156115385750609b546001600160a01b0387165f908152609e602052604090205411806115385750609c546001600160a01b0387165f908152609e6020526040902054115b1561154557611545613a84565b50505050506115546001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906115bd5760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6572000000000000000000000000000000000000000000006044820152606401610779565b6115c5613c04565b5f82116116145760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e740000000000000000000000006044820152606401610779565b61161e3384613c7f565b1561166b5760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d6564000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a3602090815260408083203384529091529020546116e95761169c3384613d08565b156116e95760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d6564000000000000000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a1602052604081208054849290611710908490614a1a565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611747908490614a1a565b90915550506001600160a01b0383165f90815260a26020526040902061176d9033613dbd565b506001600160a01b0383165f90815260a160205260409020548290036117a5576001609c5f82825461179f9190614a1a565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff1680156117cf5750600181115b15611a15575f6117e0600183614d31565b90505b8015611a135760a15f609d6117f9600185614d31565b8154811061180957611809614d04565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d848154811061185a5761185a614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611a01575f609d611892600184614d31565b815481106118a2576118a2614d04565b5f91825260209091200154609d80546001600160a01b03909216925090839081106118cf576118cf614d04565b5f918252602090912001546001600160a01b0316609d6118f0600185614d31565b8154811061190057611900614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d838154811061193f5761193f614d04565b5f9182526020822001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0393909316929092179091558290609e90609d611986600185614d31565b8154811061199657611996614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020556119c5826001614a1a565b609e5f609d85815481106119db576119db614d04565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611a0b81614d44565b9150506117e3565b505b6097545f9060ff16611a27575f611a3a565b611a2f6128cb565b611a3a906001614a1a565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611b6e575f80fd5b505af1158015611b80573d5f803e3d5ffd5b50505050611b95611b8e3390565b3086613dd1565b60975460ff168015611ba85750609b5482115b8015611bcd57506099546001600160a01b0386165f908152609e602052604090205411155b15611bda57611bda613a84565b50506108fc6001606555565b611bee613a2a565b60975460ff1615611c415760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c72656164792073746172746564000000000000000000006044820152606401610779565b4281118015611c5a5750611c586201518082614d86565b155b8015611c6857506098548114155b611cb45760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff811115611d1957611d19614a8e565b604051908082528060200260200182016040528015611d6557816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081611d375790505b5090505f5b609d54811015611f0f576040518060600160405280609f5f609d8581548110611d9557611d95614d04565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110611de157611de1614d04565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d8581548110611e3a57611e3a614d04565b5f9182526020808320909101546001600160a01b0316835282019290925260400190206002018054611e6b90614abb565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9790614abb565b8015611ee25780601f10611eb957610100808354040283529160200191611ee2565b820191905f5260205f20905b815481529060010190602001808311611ec557829003601f168201915b5050505050815250828281518110611efc57611efc614d04565b6020908102919091010152600101611d6a565b50919050565b5f54610100900460ff1615808015611f3357505f54600160ff909116105b80611f4c5750303b158015611f4c57505f5460ff166001145b611fbe5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610779565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561201a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166120705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610779565b5f86116120e55760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f20300000000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f85116121345760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f636873000000006044820152606401610779565b428411801561214d575061214b6201518085614d86565b155b6121995760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b816121e65760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b6572730000000000000000006044820152606401610779565b6121ef87614037565b6121f7614095565b6099869055609a8590556098849055609b8290555f5b609b548110156123685783838281811061222957612229614d04565b905060200281019061223b9190614d99565b609f5f86868581811061225057612250614d04565b90506020028101906122629190614d99565b6122709060208101906145b1565b6001600160a01b0316815260208101919091526040015f206122928282614b4a565b905050609d8484838181106122a9576122a9614d04565b90506020028101906122bb9190614d99565b6122c99060208101906145b1565b8154600180820184555f938452602090932001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612312908290614a1a565b609e5f86868581811061232757612327614d04565b90506020028101906123399190614d99565b6123479060208101906145b1565b6001600160a01b0316815260208101919091526040015f205560010161220d565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561243d575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612455575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561255657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061254b9190614dd5565b6001600160a01b0316145b61072b5760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b6125d0613a2a565b6125d95f614037565b565b6125e3613a2a565b60985442101561265a5760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d65000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f609c54116126ab5760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e6469646174650000000000000000000000000000000000006044820152606401610779565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612868575f5b8181101561285f5760a15f609d838154811061270457612704614d04565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d858154811061275557612755614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612857575f609d828154811061279357612793614d04565b5f91825260209091200154609d80546001600160a01b03909216925090849081106127c0576127c0614d04565b5f91825260209091200154609d80546001600160a01b0390921691849081106127eb576127eb614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d848154811061282a5761282a614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b6001016126e6565b506001016126da565b505f5b609d548110156128c257612880816001614a1a565b609e5f609d848154811061289657612896614d04565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205560010161286b565b506125d9613a84565b5f60985442101561291e5760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f74207374617274656420796574000000000000006044820152606401610779565b62015180609854426129309190614d31565b61293a9190614df0565b905090565b6001600160a01b0381165f90815260a360209081526040808320338452909152812054151561071d565b609f6020525f90815260409020805460018201546002830180546001600160a01b0390931693919261299a90614abb565b80601f01602080910402602001604051908101604052809291908181526020018280546129c690614abb565b8015612a115780601f106129e857610100808354040283529160200191612a11565b820191905f5260205f20905b8154815290600101906020018083116129f457829003601f168201915b5050505050905083565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612b0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af89190614dd5565b6001600160a01b0316145b612b755760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b8260a5548114612bc75760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b612bd2846001614a1a565b60a5555f805b83811015612f3857609b54609e5f878785818110612bf857612bf8614d04565b9050602002016020810190612c0d91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205411612c3757600191505b5f609e5f878785818110612c4d57612c4d614d04565b9050602002016020810190612c6291906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba575f6001609e5f888886818110612ca057612ca0614d04565b9050602002016020810190612cb591906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f2054612cdf9190614d31565b90505b609d54612cf190600190614d31565b811015612dc357609d612d05826001614a1a565b81548110612d1557612d15614d04565b5f91825260209091200154609d80546001600160a01b039092169183908110612d4057612d40614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d8481548110612d8357612d83614d04565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190612db6908490614d31565b9091555050600101612ce2565b50609d805480612dd557612dd5614e03565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e90868684818110612e1a57612e1a614d04565b9050602002016020810190612e2f91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f878785818110612e6757612e67614d04565b9050602002016020810190612e7c91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba576001609c5f828254612eb49190614d31565b90915550505b609f5f868684818110612ecf57612ecf614d04565b9050602002016020810190612ee491906145b1565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590612f2e6002830182614553565b5050600101612bd8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618484604051612f6a929190614e30565b60405180910390a18015612f8057612f80613a84565b5050505050565b5f60605f8411612fd95760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a650000000000000000000000000000006044820152606401610779565b6001600160a01b0385165f90815260a260205260409020612ff990613a21565b91508367ffffffffffffffff81111561301457613014614a8e565b60405190808252806020026020018201604052801561303d578160200160208202803683370190505b5090505f61304b8486614e7d565b90505f600161305a8682614a1a565b6130649088614e7d565b61306e9190614d31565b905061307b600185614d31565b8111156130905761308d600185614d31565b90505b815b8181116130f6576001600160a01b0388165f90815260a2602052604090206130ba9082614119565b8482815181106130cc576130cc614d04565b6001600160a01b0390921660209283029190910190910152806130ee81614e94565b915050613092565b505050935093915050565b613109613c04565b335f90815260a46020526040812054815b8181101561341f5760975460ff16158061316a57506131376128cb565b335f90815260a46020526040902080548390811061315757613157614d04565b905f5260205f2090600302016002015411155b1561340d57335f90815260a46020526040902080548290811061318f5761318f614d04565b905f5260205f20906003020160010154836131aa9190614a1a565b335f90815260a46020526040812080549295509091839081106131cf576131cf614d04565b5f91825260208220600390910201546001600160a01b0316915060a4816131f33390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061322357613223614d04565b905f5260205f2090600302016002015490505f60a45f6132403390565b6001600160a01b03166001600160a01b031681526020019081526020015f20848154811061327057613270614d04565b905f5260205f20906003020160010154905060018561328f9190614d31565b84101561335457335f90815260a4602052604090206132af600187614d31565b815481106132bf576132bf614d04565b905f5260205f20906003020160a45f6132d53390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061330557613305614d04565b5f91825260209091208254600390920201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a46020526040902080548061337157613371614e03565b5f8281526020812060035f1990930192830201805473ffffffffffffffffffffffffffffffffffffffff19168155600181810183905560029091019190915591556133bc9086614d31565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a350505061311a565b613418816001614a1a565b905061311a565b505f821161346f5760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d0000000000000000006044820152606401610779565b6134793383614124565b50506125d96001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613510575f848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016134bc565b505050509050919050565b613523613a2a565b6001600160a01b03811661359f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610779565b61155481614037565b6135b0613c04565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015613636575f80fd5b505af1158015613648573d5f803e3d5ffd5b505050506125d96001606555565b61365e613a2a565b8260a55481146136b05760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b6136bb846001614a1a565b60a5555f805b83811015612f3857609b54609e5f8787858181106136e1576136e1614d04565b90506020020160208101906136f691906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161372057600191505b5f609e5f87878581811061373657613736614d04565b905060200201602081019061374b91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139a3575f6001609e5f88888681811061378957613789614d04565b905060200201602081019061379e91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20546137c89190614d31565b90505b609d546137da90600190614d31565b8110156138ac57609d6137ee826001614a1a565b815481106137fe576137fe614d04565b5f91825260209091200154609d80546001600160a01b03909216918390811061382957613829614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d848154811061386c5761386c614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040018120805490919061389f908490614d31565b90915550506001016137cb565b50609d8054806138be576138be614e03565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e9086868481811061390357613903614d04565b905060200201602081019061391891906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f87878581811061395057613950614d04565b905060200201602081019061396591906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139a3576001609c5f82825461399d9190614d31565b90915550505b609f5f8686848181106139b8576139b8614d04565b90506020020160208101906139cd91906145b1565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590613a176002830182614553565b50506001016136c1565b5f61071d825490565b6033546001600160a01b031633146125d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610779565b60995460975460ff1615613aa857609954609c541015613aa35750609c545b613ab9565b609954609d541015613ab95750609d545b5f8167ffffffffffffffff811115613ad357613ad3614a8e565b604051908082528060200260200182016040528015613afc578160200160208202803683370190505b5090505f5b82811015613b6957609d8181548110613b1c57613b1c614d04565b905f5260205f20015f9054906101000a90046001600160a01b0316828281518110613b4957613b49614d04565b6001600160a01b0390921660209283029190910190910152600101613b01565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490613bcf908490600401614eac565b5f604051808303815f87803b158015613be6575f80fd5b505af1158015613bf8573d5f803e3d5ffd5b50509151609b55505050565b600260655403613c565760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610779565b6002606555565b6001606555565b5f613c78836001600160a01b038416614382565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613cff576001600160a01b038481165f90815260a46020526040902080549185169183908110613ccf57613ccf614d04565b5f9182526020909120600390910201546001600160a01b031603613cf757600191505061071d565b600101613c82565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613db59190614ebe565b159392505050565b5f613c78836001600160a01b038416614465565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e769190614edd565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613f08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f2c9190614ebe565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613fae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fd29190614edd565b90505f83118015613feb575082613fe98383614d31565b145b612f805760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166141115760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b6125d96144b1565b5f613c78838361452d565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156141a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141c99190614edd565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614253573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142779190614ebe565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156142f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061431d9190614edd565b90505f831180156143365750826143348383614d31565b145b610a0e5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b5f818152600183016020526040812054801561445c575f6143a4600183614d31565b85549091505f906143b790600190614d31565b9050818114614416575f865f0182815481106143d5576143d5614d04565b905f5260205f200154905080875f0184815481106143f5576143f5614d04565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061442757614427614e03565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061071d565b5f91505061071d565b5f8181526001830160205260408120546144aa57508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561071d565b505f61071d565b5f54610100900460ff16613c5d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b5f825f01828154811061454257614542614d04565b905f5260205f200154905092915050565b50805461455f90614abb565b5f825580601f1061456e575050565b601f0160209004905f5260205f209081019061155491905b80821115614599575f8155600101614586565b5090565b6001600160a01b0381168114611554575f80fd5b5f602082840312156145c1575f80fd5b8135613c788161459d565b5f80604083850312156145dd575f80fd5b82359150602083013567ffffffffffffffff8111156145fa575f80fd5b83016060818603121561460b575f80fd5b809150509250929050565b5f60208284031215614626575f80fd5b5035919050565b5f806040838503121561463e575f80fd5b82356146498161459d565b946020939093013593505050565b5f8083601f840112614667575f80fd5b50813567ffffffffffffffff81111561467e575f80fd5b6020830191508360208260051b8501011115614698575f80fd5b9250929050565b5f80602083850312156146b0575f80fd5b823567ffffffffffffffff8111156146c6575f80fd5b6146d285828601614657565b90969095509350505050565b5f81518084525f5b81811015614702576020818501810151868301820152016146e6565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156147d7578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526147c3818601836146de565b968901969450505090860190600101614766565b509098975050505050505050565b5f805f805f8060a087890312156147fa575f80fd5b86356148058161459d565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614835575f80fd5b61484189828a01614657565b979a9699509497509295939492505050565b6001600160a01b0384168152826020820152606060408201525f61487a60608301846146de565b95945050505050565b5f8060408385031215614894575f80fd5b823561489f8161459d565b9150602083013561460b8161459d565b5f805f604084860312156148c1575f80fd5b83359250602084013567ffffffffffffffff8111156148de575f80fd5b6148ea86828701614657565b9497909650939450505050565b5f805f60608486031215614909575f80fd5b83356149148161459d565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156149615781516001600160a01b03168752958201959082019060010161493c565b509495945050505050565b828152604060208201525f6149846040830184614929565b949350505050565b602080825282518282018190525f919060409081850190868401855b828110156149e057815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016149a8565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561071d5761071d6149ed565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a60575f80fd5b83018035915067ffffffffffffffff821115614a7a575f80fd5b602001915036819003821315614698575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680614acf57607f821691505b602082108103611f0f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156108fc57805f5260205f20601f840160051c81016020851015614b2b5750805b601f840160051c820191505b81811015612f80575f8155600101614b37565b8135614b558161459d565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614bc1575f80fd5b8501803567ffffffffffffffff811115614bd9575f80fd5b8036038483011315614be9575f80fd5b614bfd81614bf78554614abb565b85614b06565b5f601f821160018114614c30575f8315614c1957508382018601355b5f19600385901b1c1916600184901b178555614ca6565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614c7c57868501890135825593880193908901908801614c5d565b5084821015614c9a575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8181038181111561071d5761071d6149ed565b5f81614d5257614d526149ed565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614d9457614d94614d59565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614dcb575f80fd5b9190910192915050565b5f60208284031215614de5575f80fd5b8151613c788161459d565b5f82614dfe57614dfe614d59565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015614e72578235614e578161459d565b6001600160a01b031682529183019190830190600101614e44565b509695505050505050565b808202811582820484141761071d5761071d6149ed565b5f5f198203614ea557614ea56149ed565b5060010190565b602081525f613c786020830184614929565b5f60208284031215614ece575f80fd5b81518015158114613c78575f80fd5b5f60208284031215614eed575f80fd5b505191905056fea164736f6c6343000818000a +0x608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106cf578063fad99f98146106e2578063fc6facc6146106ea575f80fd5b8063e10911b11461069e578063ed70b343146106a6578063f0261bc2146106c6575f80fd5b8063cce6cf9f116100c3578063cce6cf9f14610643578063d31d83d914610656578063d557714114610677575f80fd5b8063affed0e0146105f1578063b5d2e0dc146105fa578063c64814dd14610619575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a41461059e578063927ede2d146105bd57806396ab994d146105e4575f80fd5b80638da5cb5b146105445780638e21d5fb146105555780639168ae721461057c575f80fd5b80637b05afb5116101785780637b05afb5146104db578063831cfb58146104fa57806384d7d1d414610521575f80fd5b8063746c8ae1146104cb57806376671808146104d3575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104a85780637046529b146104b0578063715018a6146104c3575f80fd5b806343352d611461047a578063439162b514610482578063459598a214610495575f80fd5b80633cb747bf1161022d5780633cb747bf146104065780633d9353fe1461044057806340b5c83714610467575f80fd5b80633b802421146103ea5780633c323a1b146103f3575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103ae57806330158eea146103b75780633385ccc2146103d7575f80fd5b8063174e31c41461037f57806319fac8fd146103925780632cc138be146103a5575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610376575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe3660046145c5565b6106fd565b6040519081526020015b60405180910390f35b6103296103243660046145e0565b610723565b005b61032961033936600461462a565b610901565b61035161034c366004614641565b610a14565b604080516001600160a01b03909416845260208401929092529082015260600161030d565b610303609a5481565b61032961038d366004614641565b610a5c565b6103296103a036600461462a565b610bd4565b61030360985481565b61030360995481565b6103ca6103c53660046146b3565b610cf6565b60405161030d9190614753565b6103296103e53660046145c5565b610f1d565b610303609c5481565b610329610401366004614641565b611557565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161030d565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61032961047536600461462a565b611be6565b6103ca611cf9565b6103296104903660046147f9565b611f15565b6104286104a336600461462a565b612446565b609d54610303565b6103296104be3660046145e0565b61246e565b6103296125c8565b6103296125db565b6103036128cb565b6103036104e93660046145c5565b60a06020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61053461052f3660046145c5565b61293f565b604051901515815260200161030d565b6033546001600160a01b0316610428565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61058f61058a3660046145c5565b612969565b60405161030d93929190614867565b6103036105ac3660046145c5565b60a16020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b6097546105349060ff1681565b61030360a55481565b6103036106083660046145c5565b609e6020525f908152604090205481565b610303610627366004614897565b60a360209081525f928352604080842090915290825290205481565b6103296106513660046148c3565b612a1b565b61066961066436600461490b565b612f87565b60405161030d929190614980565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329613115565b6106b96106b43660046145c5565b613499565b60405161030d91906149a0565b610303609b5481565b6103296106dd3660046145c5565b61352f565b6103296135bc565b6103296106f83660046148c3565b61366a565b6001600160a01b0381165f90815260a26020526040812061071d90613a35565b92915050565b61072b613a3e565b8160a55481146107825760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b61078d836001614a2e565b60a555609e5f6107a060208501856145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f0361084257609d6107d560208401846145c5565b81546001810183555f9283526020808420909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155609d5491609e91610828908601866145c5565b6001600160a01b0316815260208101919091526040015f20555b81609f5f61085360208401846145c5565b6001600160a01b0316815260208101919091526040015f206108758282614b5e565b50610885905060208301836145c5565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208401356108c16040860186614a41565b6040516108d093929190614cc5565b60405180910390a260975460ff161580156108ef5750609954609d5411155b156108fc576108fc613a98565b505050565b610909613a3e565b5f8111801561091a57506099548114155b61098c5760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a650000000000000000000000000000000000000000000000000000000000006064820152608401610779565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff166109e157609d546109e5565b609c545b90505f60995482106109f9576099546109fb565b815b9050609b548114610a0e57610a0e613a98565b50505050565b60a4602052815f5260405f208181548110610a2d575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610a64613c18565b6001600160a01b038216610b1a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610aff575f80fd5b505af1158015610b11573d5f803e3d5ffd5b50505050610bc6565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610baf575f80fd5b505af1158015610bc1573d5f803e3d5ffd5b505050505b610bd06001606555565b5050565b335f908152609e6020526040902054610c2f5760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f776564000000000000000000000000006044820152606401610779565b6014811115610c805760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e00000000000000000000000000006044820152606401610779565b335f90815260a06020526040812082905560975460ff16610ca1575f610cb4565b610ca96128cb565b610cb4906001614a2e565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610d1257610d12614aa2565b604051908082528060200260200182016040528015610d5e57816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610d305790505b5090505f5b83811015610f15576040518060600160405280609f5f888886818110610d8b57610d8b614d18565b9050602002016020810190610da091906145c5565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610ddd57610ddd614d18565b9050602002016020810190610df291906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f888886818110610e2f57610e2f614d18565b9050602002016020810190610e4491906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f206002018054610e7190614acf565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9d90614acf565b8015610ee85780601f10610ebf57610100808354040283529160200191610ee8565b820191905f5260205f20905b815481529060010190602001808311610ecb57829003601f168201915b5050505050815250828281518110610f0257610f02614d18565b6020908102919091010152600101610d63565b509392505050565b610f25613c18565b6001600160a01b0381165f90815260a360209081526040808320338452909152902054610f945760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f000000000000000000006044820152606401610779565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff16610fc0575f610fd3565b610fc86128cb565b610fd3906001614a2e565b6097549091505f9060ff168015610fe8575082155b610ff25781610fff565b609a54610fff9083614a2e565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c51600390920201805473ffffffffffffffffffffffffffffffffffffffff191691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936110b6908490614d45565b90915550506001600160a01b0385165f90815260a2602052604090206110dc9033613c78565b506001600160a01b0385165f908152609e602052604090205484158015611105575060975460ff165b80156111125750609c5481105b15611373576001600160a01b0386165f908152609e602052604081205461113b90600190614d45565b90505b6001609c5461114d9190614d45565b8110156113715760a15f609d838154811061116a5761116a614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d61119f856001614a2e565b815481106111af576111af614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611369575f609d82815481106111ed576111ed614d18565b5f918252602090912001546001600160a01b03169050609d611210836001614a2e565b8154811061122057611220614d18565b5f91825260209091200154609d80546001600160a01b03909216918490811061124b5761124b614d18565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905580609d61128e846001614a2e565b8154811061129e5761129e614d18565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556112de826001614a2e565b609e5f609d85815481106112f4576112f4614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611323826002614a2e565b609e5f609d611333866001614a2e565b8154811061134357611343614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b60010161113e565b505b8415801561139657506001600160a01b0386165f90815260a16020526040902054155b156113b3576001609c5f8282546113ad9190614d45565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611454575f80fd5b505af1158015611466573d5f803e3d5ffd5b505050506114713390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516114cc939291909283526020830191909152604082015260600190565b60405180910390a3841580156114e4575060975460ff165b80156114f25750609b548111155b80156115385750609b546001600160a01b0387165f908152609e602052604090205411806115385750609c546001600160a01b0387165f908152609e6020526040902054115b1561154557611545613a98565b50505050506115546001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906115bd5760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6572000000000000000000000000000000000000000000006044820152606401610779565b6115c5613c18565b5f82116116145760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e740000000000000000000000006044820152606401610779565b61161e3384613c93565b1561166b5760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d6564000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a3602090815260408083203384529091529020546116e95761169c3384613d1c565b156116e95760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d6564000000000000000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a1602052604081208054849290611710908490614a2e565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611747908490614a2e565b90915550506001600160a01b0383165f90815260a26020526040902061176d9033613dd1565b506001600160a01b0383165f90815260a160205260409020548290036117a5576001609c5f82825461179f9190614a2e565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff1680156117cf5750600181115b15611a15575f6117e0600183614d45565b90505b8015611a135760a15f609d6117f9600185614d45565b8154811061180957611809614d18565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d848154811061185a5761185a614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611a01575f609d611892600184614d45565b815481106118a2576118a2614d18565b5f91825260209091200154609d80546001600160a01b03909216925090839081106118cf576118cf614d18565b5f918252602090912001546001600160a01b0316609d6118f0600185614d45565b8154811061190057611900614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d838154811061193f5761193f614d18565b5f9182526020822001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0393909316929092179091558290609e90609d611986600185614d45565b8154811061199657611996614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020556119c5826001614a2e565b609e5f609d85815481106119db576119db614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611a0b81614d58565b9150506117e3565b505b6097545f9060ff16611a27575f611a3a565b611a2f6128cb565b611a3a906001614a2e565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611b6e575f80fd5b505af1158015611b80573d5f803e3d5ffd5b50505050611b95611b8e3390565b3086613de5565b60975460ff168015611ba85750609b5482115b8015611bcd57506099546001600160a01b0386165f908152609e602052604090205411155b15611bda57611bda613a98565b50506108fc6001606555565b611bee613a3e565b60975460ff1615611c415760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c72656164792073746172746564000000000000000000006044820152606401610779565b4281118015611c5a5750611c586201518082614d9a565b155b8015611c6857506098548114155b611cb45760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff811115611d1957611d19614aa2565b604051908082528060200260200182016040528015611d6557816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081611d375790505b5090505f5b609d54811015611f0f576040518060600160405280609f5f609d8581548110611d9557611d95614d18565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110611de157611de1614d18565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d8581548110611e3a57611e3a614d18565b5f9182526020808320909101546001600160a01b0316835282019290925260400190206002018054611e6b90614acf565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9790614acf565b8015611ee25780601f10611eb957610100808354040283529160200191611ee2565b820191905f5260205f20905b815481529060010190602001808311611ec557829003601f168201915b5050505050815250828281518110611efc57611efc614d18565b6020908102919091010152600101611d6a565b50919050565b5f54610100900460ff1615808015611f3357505f54600160ff909116105b80611f4c5750303b158015611f4c57505f5460ff166001145b611fbe5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610779565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561201a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166120705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610779565b5f86116120e55760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f20300000000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f85116121345760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f636873000000006044820152606401610779565b428411801561214d575061214b6201518085614d9a565b155b6121995760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b816121e65760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b6572730000000000000000006044820152606401610779565b6121ef8761404b565b6121f76140a9565b6099869055609a8590556098849055609b8290555f5b609b548110156123685783838281811061222957612229614d18565b905060200281019061223b9190614dad565b609f5f86868581811061225057612250614d18565b90506020028101906122629190614dad565b6122709060208101906145c5565b6001600160a01b0316815260208101919091526040015f206122928282614b5e565b905050609d8484838181106122a9576122a9614d18565b90506020028101906122bb9190614dad565b6122c99060208101906145c5565b8154600180820184555f938452602090932001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612312908290614a2e565b609e5f86868581811061232757612327614d18565b90506020028101906123399190614dad565b6123479060208101906145c5565b6001600160a01b0316815260208101919091526040015f205560010161220d565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561243d575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612455575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561255657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061254b9190614de9565b6001600160a01b0316145b61072b5760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b6125d0613a3e565b6125d95f61404b565b565b6125e3613a3e565b60985442101561265a5760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d65000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f609c54116126ab5760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e6469646174650000000000000000000000000000000000006044820152606401610779565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612868575f5b8181101561285f5760a15f609d838154811061270457612704614d18565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d858154811061275557612755614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612857575f609d828154811061279357612793614d18565b5f91825260209091200154609d80546001600160a01b03909216925090849081106127c0576127c0614d18565b5f91825260209091200154609d80546001600160a01b0390921691849081106127eb576127eb614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d848154811061282a5761282a614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b6001016126e6565b506001016126da565b505f5b609d548110156128c257612880816001614a2e565b609e5f609d848154811061289657612896614d18565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205560010161286b565b506125d9613a98565b5f60985442101561291e5760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f74207374617274656420796574000000000000006044820152606401610779565b62015180609854426129309190614d45565b61293a9190614e04565b905090565b6001600160a01b0381165f90815260a360209081526040808320338452909152812054151561071d565b609f6020525f90815260409020805460018201546002830180546001600160a01b0390931693919261299a90614acf565b80601f01602080910402602001604051908101604052809291908181526020018280546129c690614acf565b8015612a115780601f106129e857610100808354040283529160200191612a11565b820191905f5260205f20905b8154815290600101906020018083116129f457829003601f168201915b5050505050905083565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612b0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af89190614de9565b6001600160a01b0316145b612b755760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b8260a5548114612bc75760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b612bd2846001614a2e565b60a5555f805b83811015612f3857609b54609e5f878785818110612bf857612bf8614d18565b9050602002016020810190612c0d91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205411612c3757600191505b5f609e5f878785818110612c4d57612c4d614d18565b9050602002016020810190612c6291906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba575f6001609e5f888886818110612ca057612ca0614d18565b9050602002016020810190612cb591906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f2054612cdf9190614d45565b90505b609d54612cf190600190614d45565b811015612dc357609d612d05826001614a2e565b81548110612d1557612d15614d18565b5f91825260209091200154609d80546001600160a01b039092169183908110612d4057612d40614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d8481548110612d8357612d83614d18565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190612db6908490614d45565b9091555050600101612ce2565b50609d805480612dd557612dd5614e17565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e90868684818110612e1a57612e1a614d18565b9050602002016020810190612e2f91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f878785818110612e6757612e67614d18565b9050602002016020810190612e7c91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba576001609c5f828254612eb49190614d45565b90915550505b609f5f868684818110612ecf57612ecf614d18565b9050602002016020810190612ee491906145c5565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590612f2e6002830182614567565b5050600101612bd8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618484604051612f6a929190614e44565b60405180910390a18015612f8057612f80613a98565b5050505050565b5f60605f8411612fd95760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a650000000000000000000000000000006044820152606401610779565b6001600160a01b0385165f90815260a260205260409020612ff990613a35565b91508367ffffffffffffffff81111561301457613014614aa2565b60405190808252806020026020018201604052801561303d578160200160208202803683370190505b5090505f61304b8486614e91565b90505f600161305a8682614a2e565b6130649088614e91565b61306e9190614d45565b905061307b600185614d45565b8111156130905761308d600185614d45565b90505b815f5b828211613109576130c7826130a781614ea8565b6001600160a01b038c165f90815260a2602052604090209094509061412d565b85826130d281614ea8565b9350815181106130e4576130e4614d18565b60200260200101906001600160a01b031690816001600160a01b031681525050613093565b50505050935093915050565b61311d613c18565b335f90815260a46020526040812054815b818110156134335760975460ff16158061317e575061314b6128cb565b335f90815260a46020526040902080548390811061316b5761316b614d18565b905f5260205f2090600302016002015411155b1561342157335f90815260a4602052604090208054829081106131a3576131a3614d18565b905f5260205f20906003020160010154836131be9190614a2e565b335f90815260a46020526040812080549295509091839081106131e3576131e3614d18565b5f91825260208220600390910201546001600160a01b0316915060a4816132073390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061323757613237614d18565b905f5260205f2090600302016002015490505f60a45f6132543390565b6001600160a01b03166001600160a01b031681526020019081526020015f20848154811061328457613284614d18565b905f5260205f2090600302016001015490506001856132a39190614d45565b84101561336857335f90815260a4602052604090206132c3600187614d45565b815481106132d3576132d3614d18565b905f5260205f20906003020160a45f6132e93390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061331957613319614d18565b5f91825260209091208254600390920201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a46020526040902080548061338557613385614e17565b5f8281526020812060035f1990930192830201805473ffffffffffffffffffffffffffffffffffffffff19168155600181810183905560029091019190915591556133d09086614d45565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a350505061312e565b61342c816001614a2e565b905061312e565b505f82116134835760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d0000000000000000006044820152606401610779565b61348d3383614138565b50506125d96001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613524575f848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016134d0565b505050509050919050565b613537613a3e565b6001600160a01b0381166135b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610779565b6115548161404b565b6135c4613c18565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b15801561364a575f80fd5b505af115801561365c573d5f803e3d5ffd5b505050506125d96001606555565b613672613a3e565b8260a55481146136c45760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b6136cf846001614a2e565b60a5555f805b83811015612f3857609b54609e5f8787858181106136f5576136f5614d18565b905060200201602081019061370a91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161373457600191505b5f609e5f87878581811061374a5761374a614d18565b905060200201602081019061375f91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139b7575f6001609e5f88888681811061379d5761379d614d18565b90506020020160208101906137b291906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20546137dc9190614d45565b90505b609d546137ee90600190614d45565b8110156138c057609d613802826001614a2e565b8154811061381257613812614d18565b5f91825260209091200154609d80546001600160a01b03909216918390811061383d5761383d614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d848154811061388057613880614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080549091906138b3908490614d45565b90915550506001016137df565b50609d8054806138d2576138d2614e17565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e9086868481811061391757613917614d18565b905060200201602081019061392c91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f87878581811061396457613964614d18565b905060200201602081019061397991906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139b7576001609c5f8282546139b19190614d45565b90915550505b609f5f8686848181106139cc576139cc614d18565b90506020020160208101906139e191906145c5565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590613a2b6002830182614567565b50506001016136d5565b5f61071d825490565b6033546001600160a01b031633146125d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610779565b60995460975460ff1615613abc57609954609c541015613ab75750609c545b613acd565b609954609d541015613acd5750609d545b5f8167ffffffffffffffff811115613ae757613ae7614aa2565b604051908082528060200260200182016040528015613b10578160200160208202803683370190505b5090505f5b82811015613b7d57609d8181548110613b3057613b30614d18565b905f5260205f20015f9054906101000a90046001600160a01b0316828281518110613b5d57613b5d614d18565b6001600160a01b0390921660209283029190910190910152600101613b15565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490613be3908490600401614ec0565b5f604051808303815f87803b158015613bfa575f80fd5b505af1158015613c0c573d5f803e3d5ffd5b50509151609b55505050565b600260655403613c6a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610779565b6002606555565b6001606555565b5f613c8c836001600160a01b038416614396565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613d13576001600160a01b038481165f90815260a46020526040902080549185169183908110613ce357613ce3614d18565b5f9182526020909120600390910201546001600160a01b031603613d0b57600191505061071d565b600101613c96565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613dc99190614ed2565b159392505050565b5f613c8c836001600160a01b038416614479565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e8a9190614ef1565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f409190614ed2565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613fc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fe69190614ef1565b90505f83118015613fff575082613ffd8383614d45565b145b612f805760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166141255760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b6125d96144c5565b5f613c8c8383614541565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156141b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141dd9190614ef1565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614267573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061428b9190614ed2565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa15801561430d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143319190614ef1565b90505f8311801561434a5750826143488383614d45565b145b610a0e5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b5f8181526001830160205260408120548015614470575f6143b8600183614d45565b85549091505f906143cb90600190614d45565b905081811461442a575f865f0182815481106143e9576143e9614d18565b905f5260205f200154905080875f01848154811061440957614409614d18565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061443b5761443b614e17565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061071d565b5f91505061071d565b5f8181526001830160205260408120546144be57508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561071d565b505f61071d565b5f54610100900460ff16613c715760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b5f825f01828154811061455657614556614d18565b905f5260205f200154905092915050565b50805461457390614acf565b5f825580601f10614582575050565b601f0160209004905f5260205f209081019061155491905b808211156145ad575f815560010161459a565b5090565b6001600160a01b0381168114611554575f80fd5b5f602082840312156145d5575f80fd5b8135613c8c816145b1565b5f80604083850312156145f1575f80fd5b82359150602083013567ffffffffffffffff81111561460e575f80fd5b83016060818603121561461f575f80fd5b809150509250929050565b5f6020828403121561463a575f80fd5b5035919050565b5f8060408385031215614652575f80fd5b823561465d816145b1565b946020939093013593505050565b5f8083601f84011261467b575f80fd5b50813567ffffffffffffffff811115614692575f80fd5b6020830191508360208260051b85010111156146ac575f80fd5b9250929050565b5f80602083850312156146c4575f80fd5b823567ffffffffffffffff8111156146da575f80fd5b6146e68582860161466b565b90969095509350505050565b5f81518084525f5b81811015614716576020818501810151868301820152016146fa565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156147eb578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526147d7818601836146f2565b96890196945050509086019060010161477a565b509098975050505050505050565b5f805f805f8060a0878903121561480e575f80fd5b8635614819816145b1565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614849575f80fd5b61485589828a0161466b565b979a9699509497509295939492505050565b6001600160a01b0384168152826020820152606060408201525f61488e60608301846146f2565b95945050505050565b5f80604083850312156148a8575f80fd5b82356148b3816145b1565b9150602083013561461f816145b1565b5f805f604084860312156148d5575f80fd5b83359250602084013567ffffffffffffffff8111156148f2575f80fd5b6148fe8682870161466b565b9497909650939450505050565b5f805f6060848603121561491d575f80fd5b8335614928816145b1565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156149755781516001600160a01b031687529582019590820190600101614950565b509495945050505050565b828152604060208201525f614998604083018461493d565b949350505050565b602080825282518282018190525f919060409081850190868401855b828110156149f457815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016149bc565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561071d5761071d614a01565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a74575f80fd5b83018035915067ffffffffffffffff821115614a8e575f80fd5b6020019150368190038213156146ac575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680614ae357607f821691505b602082108103611f0f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156108fc57805f5260205f20601f840160051c81016020851015614b3f5750805b601f840160051c820191505b81811015612f80575f8155600101614b4b565b8135614b69816145b1565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614bd5575f80fd5b8501803567ffffffffffffffff811115614bed575f80fd5b8036038483011315614bfd575f80fd5b614c1181614c0b8554614acf565b85614b1a565b5f601f821160018114614c44575f8315614c2d57508382018601355b5f19600385901b1c1916600184901b178555614cba565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614c9057868501890135825593880193908901908801614c71565b5084821015614cae575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8181038181111561071d5761071d614a01565b5f81614d6657614d66614a01565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614da857614da8614d6d565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614ddf575f80fd5b9190910192915050565b5f60208284031215614df9575f80fd5b8151613c8c816145b1565b5f82614e1257614e12614d6d565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015614e86578235614e6b816145b1565b6001600160a01b031682529183019190830190600101614e58565b509695505050505050565b808202811582820484141761071d5761071d614a01565b5f5f198203614eb957614eb9614a01565b5060010190565b602081525f613c8c602083018461493d565b5f60208284031215614ee2575f80fd5b81518015158114613c8c575f80fd5b5f60208284031215614f01575f80fd5b505191905056fea164736f6c6343000818000a diff --git a/bindings/bindings/l2staking.go b/bindings/bindings/l2staking.go index 6d3b4d552..759e66a57 100644 --- a/bindings/bindings/l2staking.go +++ b/bindings/bindings/l2staking.go @@ -46,7 +46,7 @@ type TypesStakerInfo struct { // L2StakingMetaData contains all meta data concerning the L2Staking contract. var L2StakingMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_otherStaking\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochEffective\",\"type\":\"uint256\"}],\"name\":\"CommissionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"effectiveEpoch\",\"type\":\"uint256\"}],\"name\":\"Delegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"uint256\",\"name\":\"oldTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTime\",\"type\":\"uint256\"}],\"name\":\"RewardStartTimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldSize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSize\",\"type\":\"uint256\"}],\"name\":\"SequencerSetMaxSizeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"name\":\"StakerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"stakerAddresses\",\"type\":\"address[]\"}],\"name\":\"StakerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"effectiveEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"name\":\"Undelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UndelegationClaimed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DISTRIBUTE_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contractICrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MORPH_TOKEN_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_STAKING\",\"outputs\":[{\"internalType\":\"contractStaking\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEQUENCER_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo\",\"name\":\"add\",\"type\":\"tuple\"}],\"name\":\"addStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"candidateNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimCommission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"targetEpochIndex\",\"type\":\"uint256\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimUndelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"commissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"delegateStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"delegations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo\",\"name\":\"add\",\"type\":\"tuple\"}],\"name\":\"emergencyAddStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"emergencyRemoveStakers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pageSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pageIndex\",\"type\":\"uint256\"}],\"name\":\"getAllDelegatorsInPagination\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"delegatorsTotalNumber\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"delegatorsInPage\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getDelegatorsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakerAddressesLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakers\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_stakerAddresses\",\"type\":\"address[]\"}],\"name\":\"getStakesInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getUndelegations\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"internalType\":\"structIL2Staking.Undelegation[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_sequencersMaxSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_undelegateLockEpochs\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rewardStartTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"_stakers\",\"type\":\"tuple[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isStakingTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestSequencerSetSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"removeStakers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardStarted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerSetMaxSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"setCommissionRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakerAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakerDelegations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalDelegationAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakerRankings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"undelegateLockEpochs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"undelegateStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"undelegations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardStartTime\",\"type\":\"uint256\"}],\"name\":\"updateRewardStartTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_sequencerSetMaxSize\",\"type\":\"uint256\"}],\"name\":\"updateSequencerSetMaxSize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x61012060405234801562000011575f80fd5b50604051620050a1380380620050a18339810160408190526200003491620000a7565b7353000000000000000000000000000000000000076080526001600160a01b031660a05273530000000000000000000000000000000000001360c05273530000000000000000000000000000000000001760e05273530000000000000000000000000000000000001461010052620000d6565b5f60208284031215620000b8575f80fd5b81516001600160a01b0381168114620000cf575f80fd5b9392505050565b60805160a05160c05160e05161010051614f01620001a05f395f818161044501528181610a7c01528181610b240152818161140f01528181611b29015281816135ba0152613d4a01525f818161055a0152613b9a01525f818161067c01528181613e0b01528181613ec001528181613f670152818161415e0152818161420b01526142b201525f81816104ff015281816124a30152612a5001525f8181610408015281816105c201528181612479015281816124cd01528181612a260152612a7a0152614f015ff3fe608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106cf578063fad99f98146106e2578063fc6facc6146106ea575f80fd5b8063e10911b11461069e578063ed70b343146106a6578063f0261bc2146106c6575f80fd5b8063cce6cf9f116100c3578063cce6cf9f14610643578063d31d83d914610656578063d557714114610677575f80fd5b8063affed0e0146105f1578063b5d2e0dc146105fa578063c64814dd14610619575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a41461059e578063927ede2d146105bd57806396ab994d146105e4575f80fd5b80638da5cb5b146105445780638e21d5fb146105555780639168ae721461057c575f80fd5b80637b05afb5116101785780637b05afb5146104db578063831cfb58146104fa57806384d7d1d414610521575f80fd5b8063746c8ae1146104cb57806376671808146104d3575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104a85780637046529b146104b0578063715018a6146104c3575f80fd5b806343352d611461047a578063439162b514610482578063459598a214610495575f80fd5b80633cb747bf1161022d5780633cb747bf146104065780633d9353fe1461044057806340b5c83714610467575f80fd5b80633b802421146103ea5780633c323a1b146103f3575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103ae57806330158eea146103b75780633385ccc2146103d7575f80fd5b8063174e31c41461037f57806319fac8fd146103925780632cc138be146103a5575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610376575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe3660046145b1565b6106fd565b6040519081526020015b60405180910390f35b6103296103243660046145cc565b610723565b005b610329610339366004614616565b610901565b61035161034c36600461462d565b610a14565b604080516001600160a01b03909416845260208401929092529082015260600161030d565b610303609a5481565b61032961038d36600461462d565b610a5c565b6103296103a0366004614616565b610bd4565b61030360985481565b61030360995481565b6103ca6103c536600461469f565b610cf6565b60405161030d919061473f565b6103296103e53660046145b1565b610f1d565b610303609c5481565b61032961040136600461462d565b611557565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161030d565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329610475366004614616565b611be6565b6103ca611cf9565b6103296104903660046147e5565b611f15565b6104286104a3366004614616565b612446565b609d54610303565b6103296104be3660046145cc565b61246e565b6103296125c8565b6103296125db565b6103036128cb565b6103036104e93660046145b1565b60a06020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61053461052f3660046145b1565b61293f565b604051901515815260200161030d565b6033546001600160a01b0316610428565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61058f61058a3660046145b1565b612969565b60405161030d93929190614853565b6103036105ac3660046145b1565b60a16020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b6097546105349060ff1681565b61030360a55481565b6103036106083660046145b1565b609e6020525f908152604090205481565b610303610627366004614883565b60a360209081525f928352604080842090915290825290205481565b6103296106513660046148af565b612a1b565b6106696106643660046148f7565b612f87565b60405161030d92919061496c565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329613101565b6106b96106b43660046145b1565b613485565b60405161030d919061498c565b610303609b5481565b6103296106dd3660046145b1565b61351b565b6103296135a8565b6103296106f83660046148af565b613656565b6001600160a01b0381165f90815260a26020526040812061071d90613a21565b92915050565b61072b613a2a565b8160a55481146107825760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b61078d836001614a1a565b60a555609e5f6107a060208501856145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f0361084257609d6107d560208401846145b1565b81546001810183555f9283526020808420909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155609d5491609e91610828908601866145b1565b6001600160a01b0316815260208101919091526040015f20555b81609f5f61085360208401846145b1565b6001600160a01b0316815260208101919091526040015f206108758282614b4a565b50610885905060208301836145b1565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208401356108c16040860186614a2d565b6040516108d093929190614cb1565b60405180910390a260975460ff161580156108ef5750609954609d5411155b156108fc576108fc613a84565b505050565b610909613a2a565b5f8111801561091a57506099548114155b61098c5760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a650000000000000000000000000000000000000000000000000000000000006064820152608401610779565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff166109e157609d546109e5565b609c545b90505f60995482106109f9576099546109fb565b815b9050609b548114610a0e57610a0e613a84565b50505050565b60a4602052815f5260405f208181548110610a2d575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610a64613c04565b6001600160a01b038216610b1a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610aff575f80fd5b505af1158015610b11573d5f803e3d5ffd5b50505050610bc6565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610baf575f80fd5b505af1158015610bc1573d5f803e3d5ffd5b505050505b610bd06001606555565b5050565b335f908152609e6020526040902054610c2f5760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f776564000000000000000000000000006044820152606401610779565b6014811115610c805760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e00000000000000000000000000006044820152606401610779565b335f90815260a06020526040812082905560975460ff16610ca1575f610cb4565b610ca96128cb565b610cb4906001614a1a565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610d1257610d12614a8e565b604051908082528060200260200182016040528015610d5e57816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610d305790505b5090505f5b83811015610f15576040518060600160405280609f5f888886818110610d8b57610d8b614d04565b9050602002016020810190610da091906145b1565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610ddd57610ddd614d04565b9050602002016020810190610df291906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f888886818110610e2f57610e2f614d04565b9050602002016020810190610e4491906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f206002018054610e7190614abb565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9d90614abb565b8015610ee85780601f10610ebf57610100808354040283529160200191610ee8565b820191905f5260205f20905b815481529060010190602001808311610ecb57829003601f168201915b5050505050815250828281518110610f0257610f02614d04565b6020908102919091010152600101610d63565b509392505050565b610f25613c04565b6001600160a01b0381165f90815260a360209081526040808320338452909152902054610f945760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f000000000000000000006044820152606401610779565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff16610fc0575f610fd3565b610fc86128cb565b610fd3906001614a1a565b6097549091505f9060ff168015610fe8575082155b610ff25781610fff565b609a54610fff9083614a1a565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c51600390920201805473ffffffffffffffffffffffffffffffffffffffff191691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936110b6908490614d31565b90915550506001600160a01b0385165f90815260a2602052604090206110dc9033613c64565b506001600160a01b0385165f908152609e602052604090205484158015611105575060975460ff165b80156111125750609c5481105b15611373576001600160a01b0386165f908152609e602052604081205461113b90600190614d31565b90505b6001609c5461114d9190614d31565b8110156113715760a15f609d838154811061116a5761116a614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d61119f856001614a1a565b815481106111af576111af614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611369575f609d82815481106111ed576111ed614d04565b5f918252602090912001546001600160a01b03169050609d611210836001614a1a565b8154811061122057611220614d04565b5f91825260209091200154609d80546001600160a01b03909216918490811061124b5761124b614d04565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905580609d61128e846001614a1a565b8154811061129e5761129e614d04565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556112de826001614a1a565b609e5f609d85815481106112f4576112f4614d04565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611323826002614a1a565b609e5f609d611333866001614a1a565b8154811061134357611343614d04565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b60010161113e565b505b8415801561139657506001600160a01b0386165f90815260a16020526040902054155b156113b3576001609c5f8282546113ad9190614d31565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611454575f80fd5b505af1158015611466573d5f803e3d5ffd5b505050506114713390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516114cc939291909283526020830191909152604082015260600190565b60405180910390a3841580156114e4575060975460ff165b80156114f25750609b548111155b80156115385750609b546001600160a01b0387165f908152609e602052604090205411806115385750609c546001600160a01b0387165f908152609e6020526040902054115b1561154557611545613a84565b50505050506115546001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906115bd5760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6572000000000000000000000000000000000000000000006044820152606401610779565b6115c5613c04565b5f82116116145760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e740000000000000000000000006044820152606401610779565b61161e3384613c7f565b1561166b5760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d6564000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a3602090815260408083203384529091529020546116e95761169c3384613d08565b156116e95760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d6564000000000000000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a1602052604081208054849290611710908490614a1a565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611747908490614a1a565b90915550506001600160a01b0383165f90815260a26020526040902061176d9033613dbd565b506001600160a01b0383165f90815260a160205260409020548290036117a5576001609c5f82825461179f9190614a1a565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff1680156117cf5750600181115b15611a15575f6117e0600183614d31565b90505b8015611a135760a15f609d6117f9600185614d31565b8154811061180957611809614d04565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d848154811061185a5761185a614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611a01575f609d611892600184614d31565b815481106118a2576118a2614d04565b5f91825260209091200154609d80546001600160a01b03909216925090839081106118cf576118cf614d04565b5f918252602090912001546001600160a01b0316609d6118f0600185614d31565b8154811061190057611900614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d838154811061193f5761193f614d04565b5f9182526020822001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0393909316929092179091558290609e90609d611986600185614d31565b8154811061199657611996614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020556119c5826001614a1a565b609e5f609d85815481106119db576119db614d04565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611a0b81614d44565b9150506117e3565b505b6097545f9060ff16611a27575f611a3a565b611a2f6128cb565b611a3a906001614a1a565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611b6e575f80fd5b505af1158015611b80573d5f803e3d5ffd5b50505050611b95611b8e3390565b3086613dd1565b60975460ff168015611ba85750609b5482115b8015611bcd57506099546001600160a01b0386165f908152609e602052604090205411155b15611bda57611bda613a84565b50506108fc6001606555565b611bee613a2a565b60975460ff1615611c415760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c72656164792073746172746564000000000000000000006044820152606401610779565b4281118015611c5a5750611c586201518082614d86565b155b8015611c6857506098548114155b611cb45760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff811115611d1957611d19614a8e565b604051908082528060200260200182016040528015611d6557816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081611d375790505b5090505f5b609d54811015611f0f576040518060600160405280609f5f609d8581548110611d9557611d95614d04565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110611de157611de1614d04565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d8581548110611e3a57611e3a614d04565b5f9182526020808320909101546001600160a01b0316835282019290925260400190206002018054611e6b90614abb565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9790614abb565b8015611ee25780601f10611eb957610100808354040283529160200191611ee2565b820191905f5260205f20905b815481529060010190602001808311611ec557829003601f168201915b5050505050815250828281518110611efc57611efc614d04565b6020908102919091010152600101611d6a565b50919050565b5f54610100900460ff1615808015611f3357505f54600160ff909116105b80611f4c5750303b158015611f4c57505f5460ff166001145b611fbe5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610779565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561201a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166120705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610779565b5f86116120e55760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f20300000000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f85116121345760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f636873000000006044820152606401610779565b428411801561214d575061214b6201518085614d86565b155b6121995760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b816121e65760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b6572730000000000000000006044820152606401610779565b6121ef87614037565b6121f7614095565b6099869055609a8590556098849055609b8290555f5b609b548110156123685783838281811061222957612229614d04565b905060200281019061223b9190614d99565b609f5f86868581811061225057612250614d04565b90506020028101906122629190614d99565b6122709060208101906145b1565b6001600160a01b0316815260208101919091526040015f206122928282614b4a565b905050609d8484838181106122a9576122a9614d04565b90506020028101906122bb9190614d99565b6122c99060208101906145b1565b8154600180820184555f938452602090932001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612312908290614a1a565b609e5f86868581811061232757612327614d04565b90506020028101906123399190614d99565b6123479060208101906145b1565b6001600160a01b0316815260208101919091526040015f205560010161220d565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561243d575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612455575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561255657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061254b9190614dd5565b6001600160a01b0316145b61072b5760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b6125d0613a2a565b6125d95f614037565b565b6125e3613a2a565b60985442101561265a5760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d65000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f609c54116126ab5760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e6469646174650000000000000000000000000000000000006044820152606401610779565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612868575f5b8181101561285f5760a15f609d838154811061270457612704614d04565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d858154811061275557612755614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612857575f609d828154811061279357612793614d04565b5f91825260209091200154609d80546001600160a01b03909216925090849081106127c0576127c0614d04565b5f91825260209091200154609d80546001600160a01b0390921691849081106127eb576127eb614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d848154811061282a5761282a614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b6001016126e6565b506001016126da565b505f5b609d548110156128c257612880816001614a1a565b609e5f609d848154811061289657612896614d04565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205560010161286b565b506125d9613a84565b5f60985442101561291e5760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f74207374617274656420796574000000000000006044820152606401610779565b62015180609854426129309190614d31565b61293a9190614df0565b905090565b6001600160a01b0381165f90815260a360209081526040808320338452909152812054151561071d565b609f6020525f90815260409020805460018201546002830180546001600160a01b0390931693919261299a90614abb565b80601f01602080910402602001604051908101604052809291908181526020018280546129c690614abb565b8015612a115780601f106129e857610100808354040283529160200191612a11565b820191905f5260205f20905b8154815290600101906020018083116129f457829003601f168201915b5050505050905083565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612b0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af89190614dd5565b6001600160a01b0316145b612b755760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b8260a5548114612bc75760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b612bd2846001614a1a565b60a5555f805b83811015612f3857609b54609e5f878785818110612bf857612bf8614d04565b9050602002016020810190612c0d91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205411612c3757600191505b5f609e5f878785818110612c4d57612c4d614d04565b9050602002016020810190612c6291906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba575f6001609e5f888886818110612ca057612ca0614d04565b9050602002016020810190612cb591906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f2054612cdf9190614d31565b90505b609d54612cf190600190614d31565b811015612dc357609d612d05826001614a1a565b81548110612d1557612d15614d04565b5f91825260209091200154609d80546001600160a01b039092169183908110612d4057612d40614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d8481548110612d8357612d83614d04565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190612db6908490614d31565b9091555050600101612ce2565b50609d805480612dd557612dd5614e03565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e90868684818110612e1a57612e1a614d04565b9050602002016020810190612e2f91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f878785818110612e6757612e67614d04565b9050602002016020810190612e7c91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba576001609c5f828254612eb49190614d31565b90915550505b609f5f868684818110612ecf57612ecf614d04565b9050602002016020810190612ee491906145b1565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590612f2e6002830182614553565b5050600101612bd8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618484604051612f6a929190614e30565b60405180910390a18015612f8057612f80613a84565b5050505050565b5f60605f8411612fd95760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a650000000000000000000000000000006044820152606401610779565b6001600160a01b0385165f90815260a260205260409020612ff990613a21565b91508367ffffffffffffffff81111561301457613014614a8e565b60405190808252806020026020018201604052801561303d578160200160208202803683370190505b5090505f61304b8486614e7d565b90505f600161305a8682614a1a565b6130649088614e7d565b61306e9190614d31565b905061307b600185614d31565b8111156130905761308d600185614d31565b90505b815b8181116130f6576001600160a01b0388165f90815260a2602052604090206130ba9082614119565b8482815181106130cc576130cc614d04565b6001600160a01b0390921660209283029190910190910152806130ee81614e94565b915050613092565b505050935093915050565b613109613c04565b335f90815260a46020526040812054815b8181101561341f5760975460ff16158061316a57506131376128cb565b335f90815260a46020526040902080548390811061315757613157614d04565b905f5260205f2090600302016002015411155b1561340d57335f90815260a46020526040902080548290811061318f5761318f614d04565b905f5260205f20906003020160010154836131aa9190614a1a565b335f90815260a46020526040812080549295509091839081106131cf576131cf614d04565b5f91825260208220600390910201546001600160a01b0316915060a4816131f33390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061322357613223614d04565b905f5260205f2090600302016002015490505f60a45f6132403390565b6001600160a01b03166001600160a01b031681526020019081526020015f20848154811061327057613270614d04565b905f5260205f20906003020160010154905060018561328f9190614d31565b84101561335457335f90815260a4602052604090206132af600187614d31565b815481106132bf576132bf614d04565b905f5260205f20906003020160a45f6132d53390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061330557613305614d04565b5f91825260209091208254600390920201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a46020526040902080548061337157613371614e03565b5f8281526020812060035f1990930192830201805473ffffffffffffffffffffffffffffffffffffffff19168155600181810183905560029091019190915591556133bc9086614d31565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a350505061311a565b613418816001614a1a565b905061311a565b505f821161346f5760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d0000000000000000006044820152606401610779565b6134793383614124565b50506125d96001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613510575f848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016134bc565b505050509050919050565b613523613a2a565b6001600160a01b03811661359f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610779565b61155481614037565b6135b0613c04565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015613636575f80fd5b505af1158015613648573d5f803e3d5ffd5b505050506125d96001606555565b61365e613a2a565b8260a55481146136b05760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b6136bb846001614a1a565b60a5555f805b83811015612f3857609b54609e5f8787858181106136e1576136e1614d04565b90506020020160208101906136f691906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161372057600191505b5f609e5f87878581811061373657613736614d04565b905060200201602081019061374b91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139a3575f6001609e5f88888681811061378957613789614d04565b905060200201602081019061379e91906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f20546137c89190614d31565b90505b609d546137da90600190614d31565b8110156138ac57609d6137ee826001614a1a565b815481106137fe576137fe614d04565b5f91825260209091200154609d80546001600160a01b03909216918390811061382957613829614d04565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d848154811061386c5761386c614d04565b5f9182526020808320909101546001600160a01b031683528201929092526040018120805490919061389f908490614d31565b90915550506001016137cb565b50609d8054806138be576138be614e03565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e9086868481811061390357613903614d04565b905060200201602081019061391891906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f87878581811061395057613950614d04565b905060200201602081019061396591906145b1565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139a3576001609c5f82825461399d9190614d31565b90915550505b609f5f8686848181106139b8576139b8614d04565b90506020020160208101906139cd91906145b1565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590613a176002830182614553565b50506001016136c1565b5f61071d825490565b6033546001600160a01b031633146125d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610779565b60995460975460ff1615613aa857609954609c541015613aa35750609c545b613ab9565b609954609d541015613ab95750609d545b5f8167ffffffffffffffff811115613ad357613ad3614a8e565b604051908082528060200260200182016040528015613afc578160200160208202803683370190505b5090505f5b82811015613b6957609d8181548110613b1c57613b1c614d04565b905f5260205f20015f9054906101000a90046001600160a01b0316828281518110613b4957613b49614d04565b6001600160a01b0390921660209283029190910190910152600101613b01565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490613bcf908490600401614eac565b5f604051808303815f87803b158015613be6575f80fd5b505af1158015613bf8573d5f803e3d5ffd5b50509151609b55505050565b600260655403613c565760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610779565b6002606555565b6001606555565b5f613c78836001600160a01b038416614382565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613cff576001600160a01b038481165f90815260a46020526040902080549185169183908110613ccf57613ccf614d04565b5f9182526020909120600390910201546001600160a01b031603613cf757600191505061071d565b600101613c82565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613db59190614ebe565b159392505050565b5f613c78836001600160a01b038416614465565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e769190614edd565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613f08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f2c9190614ebe565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613fae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fd29190614edd565b90505f83118015613feb575082613fe98383614d31565b145b612f805760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166141115760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b6125d96144b1565b5f613c78838361452d565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156141a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141c99190614edd565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614253573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142779190614ebe565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156142f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061431d9190614edd565b90505f831180156143365750826143348383614d31565b145b610a0e5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b5f818152600183016020526040812054801561445c575f6143a4600183614d31565b85549091505f906143b790600190614d31565b9050818114614416575f865f0182815481106143d5576143d5614d04565b905f5260205f200154905080875f0184815481106143f5576143f5614d04565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061442757614427614e03565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061071d565b5f91505061071d565b5f8181526001830160205260408120546144aa57508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561071d565b505f61071d565b5f54610100900460ff16613c5d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b5f825f01828154811061454257614542614d04565b905f5260205f200154905092915050565b50805461455f90614abb565b5f825580601f1061456e575050565b601f0160209004905f5260205f209081019061155491905b80821115614599575f8155600101614586565b5090565b6001600160a01b0381168114611554575f80fd5b5f602082840312156145c1575f80fd5b8135613c788161459d565b5f80604083850312156145dd575f80fd5b82359150602083013567ffffffffffffffff8111156145fa575f80fd5b83016060818603121561460b575f80fd5b809150509250929050565b5f60208284031215614626575f80fd5b5035919050565b5f806040838503121561463e575f80fd5b82356146498161459d565b946020939093013593505050565b5f8083601f840112614667575f80fd5b50813567ffffffffffffffff81111561467e575f80fd5b6020830191508360208260051b8501011115614698575f80fd5b9250929050565b5f80602083850312156146b0575f80fd5b823567ffffffffffffffff8111156146c6575f80fd5b6146d285828601614657565b90969095509350505050565b5f81518084525f5b81811015614702576020818501810151868301820152016146e6565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156147d7578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526147c3818601836146de565b968901969450505090860190600101614766565b509098975050505050505050565b5f805f805f8060a087890312156147fa575f80fd5b86356148058161459d565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614835575f80fd5b61484189828a01614657565b979a9699509497509295939492505050565b6001600160a01b0384168152826020820152606060408201525f61487a60608301846146de565b95945050505050565b5f8060408385031215614894575f80fd5b823561489f8161459d565b9150602083013561460b8161459d565b5f805f604084860312156148c1575f80fd5b83359250602084013567ffffffffffffffff8111156148de575f80fd5b6148ea86828701614657565b9497909650939450505050565b5f805f60608486031215614909575f80fd5b83356149148161459d565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156149615781516001600160a01b03168752958201959082019060010161493c565b509495945050505050565b828152604060208201525f6149846040830184614929565b949350505050565b602080825282518282018190525f919060409081850190868401855b828110156149e057815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016149a8565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561071d5761071d6149ed565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a60575f80fd5b83018035915067ffffffffffffffff821115614a7a575f80fd5b602001915036819003821315614698575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680614acf57607f821691505b602082108103611f0f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156108fc57805f5260205f20601f840160051c81016020851015614b2b5750805b601f840160051c820191505b81811015612f80575f8155600101614b37565b8135614b558161459d565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614bc1575f80fd5b8501803567ffffffffffffffff811115614bd9575f80fd5b8036038483011315614be9575f80fd5b614bfd81614bf78554614abb565b85614b06565b5f601f821160018114614c30575f8315614c1957508382018601355b5f19600385901b1c1916600184901b178555614ca6565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614c7c57868501890135825593880193908901908801614c5d565b5084821015614c9a575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8181038181111561071d5761071d6149ed565b5f81614d5257614d526149ed565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614d9457614d94614d59565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614dcb575f80fd5b9190910192915050565b5f60208284031215614de5575f80fd5b8151613c788161459d565b5f82614dfe57614dfe614d59565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015614e72578235614e578161459d565b6001600160a01b031682529183019190830190600101614e44565b509695505050505050565b808202811582820484141761071d5761071d6149ed565b5f5f198203614ea557614ea56149ed565b5060010190565b602081525f613c786020830184614929565b5f60208284031215614ece575f80fd5b81518015158114613c78575f80fd5b5f60208284031215614eed575f80fd5b505191905056fea164736f6c6343000818000a", + Bin: "0x61012060405234801562000011575f80fd5b50604051620050b5380380620050b58339810160408190526200003491620000a7565b7353000000000000000000000000000000000000076080526001600160a01b031660a05273530000000000000000000000000000000000001360c05273530000000000000000000000000000000000001760e05273530000000000000000000000000000000000001461010052620000d6565b5f60208284031215620000b8575f80fd5b81516001600160a01b0381168114620000cf575f80fd5b9392505050565b60805160a05160c05160e05161010051614f15620001a05f395f818161044501528181610a7c01528181610b240152818161140f01528181611b29015281816135ce0152613d5e01525f818161055a0152613bae01525f818161067c01528181613e1f01528181613ed401528181613f7b015281816141720152818161421f01526142c601525f81816104ff015281816124a30152612a5001525f8181610408015281816105c201528181612479015281816124cd01528181612a260152612a7a0152614f155ff3fe608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106cf578063fad99f98146106e2578063fc6facc6146106ea575f80fd5b8063e10911b11461069e578063ed70b343146106a6578063f0261bc2146106c6575f80fd5b8063cce6cf9f116100c3578063cce6cf9f14610643578063d31d83d914610656578063d557714114610677575f80fd5b8063affed0e0146105f1578063b5d2e0dc146105fa578063c64814dd14610619575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a41461059e578063927ede2d146105bd57806396ab994d146105e4575f80fd5b80638da5cb5b146105445780638e21d5fb146105555780639168ae721461057c575f80fd5b80637b05afb5116101785780637b05afb5146104db578063831cfb58146104fa57806384d7d1d414610521575f80fd5b8063746c8ae1146104cb57806376671808146104d3575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104a85780637046529b146104b0578063715018a6146104c3575f80fd5b806343352d611461047a578063439162b514610482578063459598a214610495575f80fd5b80633cb747bf1161022d5780633cb747bf146104065780633d9353fe1461044057806340b5c83714610467575f80fd5b80633b802421146103ea5780633c323a1b146103f3575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103ae57806330158eea146103b75780633385ccc2146103d7575f80fd5b8063174e31c41461037f57806319fac8fd146103925780632cc138be146103a5575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610376575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe3660046145c5565b6106fd565b6040519081526020015b60405180910390f35b6103296103243660046145e0565b610723565b005b61032961033936600461462a565b610901565b61035161034c366004614641565b610a14565b604080516001600160a01b03909416845260208401929092529082015260600161030d565b610303609a5481565b61032961038d366004614641565b610a5c565b6103296103a036600461462a565b610bd4565b61030360985481565b61030360995481565b6103ca6103c53660046146b3565b610cf6565b60405161030d9190614753565b6103296103e53660046145c5565b610f1d565b610303609c5481565b610329610401366004614641565b611557565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161030d565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61032961047536600461462a565b611be6565b6103ca611cf9565b6103296104903660046147f9565b611f15565b6104286104a336600461462a565b612446565b609d54610303565b6103296104be3660046145e0565b61246e565b6103296125c8565b6103296125db565b6103036128cb565b6103036104e93660046145c5565b60a06020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61053461052f3660046145c5565b61293f565b604051901515815260200161030d565b6033546001600160a01b0316610428565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61058f61058a3660046145c5565b612969565b60405161030d93929190614867565b6103036105ac3660046145c5565b60a16020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b6097546105349060ff1681565b61030360a55481565b6103036106083660046145c5565b609e6020525f908152604090205481565b610303610627366004614897565b60a360209081525f928352604080842090915290825290205481565b6103296106513660046148c3565b612a1b565b61066961066436600461490b565b612f87565b60405161030d929190614980565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329613115565b6106b96106b43660046145c5565b613499565b60405161030d91906149a0565b610303609b5481565b6103296106dd3660046145c5565b61352f565b6103296135bc565b6103296106f83660046148c3565b61366a565b6001600160a01b0381165f90815260a26020526040812061071d90613a35565b92915050565b61072b613a3e565b8160a55481146107825760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b61078d836001614a2e565b60a555609e5f6107a060208501856145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f0361084257609d6107d560208401846145c5565b81546001810183555f9283526020808420909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155609d5491609e91610828908601866145c5565b6001600160a01b0316815260208101919091526040015f20555b81609f5f61085360208401846145c5565b6001600160a01b0316815260208101919091526040015f206108758282614b5e565b50610885905060208301836145c5565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208401356108c16040860186614a41565b6040516108d093929190614cc5565b60405180910390a260975460ff161580156108ef5750609954609d5411155b156108fc576108fc613a98565b505050565b610909613a3e565b5f8111801561091a57506099548114155b61098c5760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a650000000000000000000000000000000000000000000000000000000000006064820152608401610779565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff166109e157609d546109e5565b609c545b90505f60995482106109f9576099546109fb565b815b9050609b548114610a0e57610a0e613a98565b50505050565b60a4602052815f5260405f208181548110610a2d575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610a64613c18565b6001600160a01b038216610b1a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610aff575f80fd5b505af1158015610b11573d5f803e3d5ffd5b50505050610bc6565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610baf575f80fd5b505af1158015610bc1573d5f803e3d5ffd5b505050505b610bd06001606555565b5050565b335f908152609e6020526040902054610c2f5760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f776564000000000000000000000000006044820152606401610779565b6014811115610c805760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e00000000000000000000000000006044820152606401610779565b335f90815260a06020526040812082905560975460ff16610ca1575f610cb4565b610ca96128cb565b610cb4906001614a2e565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610d1257610d12614aa2565b604051908082528060200260200182016040528015610d5e57816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610d305790505b5090505f5b83811015610f15576040518060600160405280609f5f888886818110610d8b57610d8b614d18565b9050602002016020810190610da091906145c5565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610ddd57610ddd614d18565b9050602002016020810190610df291906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f888886818110610e2f57610e2f614d18565b9050602002016020810190610e4491906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f206002018054610e7190614acf565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9d90614acf565b8015610ee85780601f10610ebf57610100808354040283529160200191610ee8565b820191905f5260205f20905b815481529060010190602001808311610ecb57829003601f168201915b5050505050815250828281518110610f0257610f02614d18565b6020908102919091010152600101610d63565b509392505050565b610f25613c18565b6001600160a01b0381165f90815260a360209081526040808320338452909152902054610f945760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f000000000000000000006044820152606401610779565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff16610fc0575f610fd3565b610fc86128cb565b610fd3906001614a2e565b6097549091505f9060ff168015610fe8575082155b610ff25781610fff565b609a54610fff9083614a2e565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c51600390920201805473ffffffffffffffffffffffffffffffffffffffff191691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936110b6908490614d45565b90915550506001600160a01b0385165f90815260a2602052604090206110dc9033613c78565b506001600160a01b0385165f908152609e602052604090205484158015611105575060975460ff165b80156111125750609c5481105b15611373576001600160a01b0386165f908152609e602052604081205461113b90600190614d45565b90505b6001609c5461114d9190614d45565b8110156113715760a15f609d838154811061116a5761116a614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d61119f856001614a2e565b815481106111af576111af614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611369575f609d82815481106111ed576111ed614d18565b5f918252602090912001546001600160a01b03169050609d611210836001614a2e565b8154811061122057611220614d18565b5f91825260209091200154609d80546001600160a01b03909216918490811061124b5761124b614d18565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905580609d61128e846001614a2e565b8154811061129e5761129e614d18565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556112de826001614a2e565b609e5f609d85815481106112f4576112f4614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611323826002614a2e565b609e5f609d611333866001614a2e565b8154811061134357611343614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b60010161113e565b505b8415801561139657506001600160a01b0386165f90815260a16020526040902054155b156113b3576001609c5f8282546113ad9190614d45565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611454575f80fd5b505af1158015611466573d5f803e3d5ffd5b505050506114713390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516114cc939291909283526020830191909152604082015260600190565b60405180910390a3841580156114e4575060975460ff165b80156114f25750609b548111155b80156115385750609b546001600160a01b0387165f908152609e602052604090205411806115385750609c546001600160a01b0387165f908152609e6020526040902054115b1561154557611545613a98565b50505050506115546001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906115bd5760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6572000000000000000000000000000000000000000000006044820152606401610779565b6115c5613c18565b5f82116116145760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e740000000000000000000000006044820152606401610779565b61161e3384613c93565b1561166b5760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d6564000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a3602090815260408083203384529091529020546116e95761169c3384613d1c565b156116e95760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d6564000000000000000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a1602052604081208054849290611710908490614a2e565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611747908490614a2e565b90915550506001600160a01b0383165f90815260a26020526040902061176d9033613dd1565b506001600160a01b0383165f90815260a160205260409020548290036117a5576001609c5f82825461179f9190614a2e565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff1680156117cf5750600181115b15611a15575f6117e0600183614d45565b90505b8015611a135760a15f609d6117f9600185614d45565b8154811061180957611809614d18565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d848154811061185a5761185a614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611a01575f609d611892600184614d45565b815481106118a2576118a2614d18565b5f91825260209091200154609d80546001600160a01b03909216925090839081106118cf576118cf614d18565b5f918252602090912001546001600160a01b0316609d6118f0600185614d45565b8154811061190057611900614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d838154811061193f5761193f614d18565b5f9182526020822001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0393909316929092179091558290609e90609d611986600185614d45565b8154811061199657611996614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020556119c5826001614a2e565b609e5f609d85815481106119db576119db614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611a0b81614d58565b9150506117e3565b505b6097545f9060ff16611a27575f611a3a565b611a2f6128cb565b611a3a906001614a2e565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611b6e575f80fd5b505af1158015611b80573d5f803e3d5ffd5b50505050611b95611b8e3390565b3086613de5565b60975460ff168015611ba85750609b5482115b8015611bcd57506099546001600160a01b0386165f908152609e602052604090205411155b15611bda57611bda613a98565b50506108fc6001606555565b611bee613a3e565b60975460ff1615611c415760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c72656164792073746172746564000000000000000000006044820152606401610779565b4281118015611c5a5750611c586201518082614d9a565b155b8015611c6857506098548114155b611cb45760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff811115611d1957611d19614aa2565b604051908082528060200260200182016040528015611d6557816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081611d375790505b5090505f5b609d54811015611f0f576040518060600160405280609f5f609d8581548110611d9557611d95614d18565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110611de157611de1614d18565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d8581548110611e3a57611e3a614d18565b5f9182526020808320909101546001600160a01b0316835282019290925260400190206002018054611e6b90614acf565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9790614acf565b8015611ee25780601f10611eb957610100808354040283529160200191611ee2565b820191905f5260205f20905b815481529060010190602001808311611ec557829003601f168201915b5050505050815250828281518110611efc57611efc614d18565b6020908102919091010152600101611d6a565b50919050565b5f54610100900460ff1615808015611f3357505f54600160ff909116105b80611f4c5750303b158015611f4c57505f5460ff166001145b611fbe5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610779565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561201a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166120705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610779565b5f86116120e55760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f20300000000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f85116121345760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f636873000000006044820152606401610779565b428411801561214d575061214b6201518085614d9a565b155b6121995760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b816121e65760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b6572730000000000000000006044820152606401610779565b6121ef8761404b565b6121f76140a9565b6099869055609a8590556098849055609b8290555f5b609b548110156123685783838281811061222957612229614d18565b905060200281019061223b9190614dad565b609f5f86868581811061225057612250614d18565b90506020028101906122629190614dad565b6122709060208101906145c5565b6001600160a01b0316815260208101919091526040015f206122928282614b5e565b905050609d8484838181106122a9576122a9614d18565b90506020028101906122bb9190614dad565b6122c99060208101906145c5565b8154600180820184555f938452602090932001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612312908290614a2e565b609e5f86868581811061232757612327614d18565b90506020028101906123399190614dad565b6123479060208101906145c5565b6001600160a01b0316815260208101919091526040015f205560010161220d565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561243d575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612455575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561255657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061254b9190614de9565b6001600160a01b0316145b61072b5760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b6125d0613a3e565b6125d95f61404b565b565b6125e3613a3e565b60985442101561265a5760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d65000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f609c54116126ab5760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e6469646174650000000000000000000000000000000000006044820152606401610779565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612868575f5b8181101561285f5760a15f609d838154811061270457612704614d18565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d858154811061275557612755614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612857575f609d828154811061279357612793614d18565b5f91825260209091200154609d80546001600160a01b03909216925090849081106127c0576127c0614d18565b5f91825260209091200154609d80546001600160a01b0390921691849081106127eb576127eb614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d848154811061282a5761282a614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b6001016126e6565b506001016126da565b505f5b609d548110156128c257612880816001614a2e565b609e5f609d848154811061289657612896614d18565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205560010161286b565b506125d9613a98565b5f60985442101561291e5760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f74207374617274656420796574000000000000006044820152606401610779565b62015180609854426129309190614d45565b61293a9190614e04565b905090565b6001600160a01b0381165f90815260a360209081526040808320338452909152812054151561071d565b609f6020525f90815260409020805460018201546002830180546001600160a01b0390931693919261299a90614acf565b80601f01602080910402602001604051908101604052809291908181526020018280546129c690614acf565b8015612a115780601f106129e857610100808354040283529160200191612a11565b820191905f5260205f20905b8154815290600101906020018083116129f457829003601f168201915b5050505050905083565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612b0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af89190614de9565b6001600160a01b0316145b612b755760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b8260a5548114612bc75760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b612bd2846001614a2e565b60a5555f805b83811015612f3857609b54609e5f878785818110612bf857612bf8614d18565b9050602002016020810190612c0d91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205411612c3757600191505b5f609e5f878785818110612c4d57612c4d614d18565b9050602002016020810190612c6291906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba575f6001609e5f888886818110612ca057612ca0614d18565b9050602002016020810190612cb591906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f2054612cdf9190614d45565b90505b609d54612cf190600190614d45565b811015612dc357609d612d05826001614a2e565b81548110612d1557612d15614d18565b5f91825260209091200154609d80546001600160a01b039092169183908110612d4057612d40614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d8481548110612d8357612d83614d18565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190612db6908490614d45565b9091555050600101612ce2565b50609d805480612dd557612dd5614e17565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e90868684818110612e1a57612e1a614d18565b9050602002016020810190612e2f91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f878785818110612e6757612e67614d18565b9050602002016020810190612e7c91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba576001609c5f828254612eb49190614d45565b90915550505b609f5f868684818110612ecf57612ecf614d18565b9050602002016020810190612ee491906145c5565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590612f2e6002830182614567565b5050600101612bd8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618484604051612f6a929190614e44565b60405180910390a18015612f8057612f80613a98565b5050505050565b5f60605f8411612fd95760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a650000000000000000000000000000006044820152606401610779565b6001600160a01b0385165f90815260a260205260409020612ff990613a35565b91508367ffffffffffffffff81111561301457613014614aa2565b60405190808252806020026020018201604052801561303d578160200160208202803683370190505b5090505f61304b8486614e91565b90505f600161305a8682614a2e565b6130649088614e91565b61306e9190614d45565b905061307b600185614d45565b8111156130905761308d600185614d45565b90505b815f5b828211613109576130c7826130a781614ea8565b6001600160a01b038c165f90815260a2602052604090209094509061412d565b85826130d281614ea8565b9350815181106130e4576130e4614d18565b60200260200101906001600160a01b031690816001600160a01b031681525050613093565b50505050935093915050565b61311d613c18565b335f90815260a46020526040812054815b818110156134335760975460ff16158061317e575061314b6128cb565b335f90815260a46020526040902080548390811061316b5761316b614d18565b905f5260205f2090600302016002015411155b1561342157335f90815260a4602052604090208054829081106131a3576131a3614d18565b905f5260205f20906003020160010154836131be9190614a2e565b335f90815260a46020526040812080549295509091839081106131e3576131e3614d18565b5f91825260208220600390910201546001600160a01b0316915060a4816132073390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061323757613237614d18565b905f5260205f2090600302016002015490505f60a45f6132543390565b6001600160a01b03166001600160a01b031681526020019081526020015f20848154811061328457613284614d18565b905f5260205f2090600302016001015490506001856132a39190614d45565b84101561336857335f90815260a4602052604090206132c3600187614d45565b815481106132d3576132d3614d18565b905f5260205f20906003020160a45f6132e93390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061331957613319614d18565b5f91825260209091208254600390920201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a46020526040902080548061338557613385614e17565b5f8281526020812060035f1990930192830201805473ffffffffffffffffffffffffffffffffffffffff19168155600181810183905560029091019190915591556133d09086614d45565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a350505061312e565b61342c816001614a2e565b905061312e565b505f82116134835760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d0000000000000000006044820152606401610779565b61348d3383614138565b50506125d96001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613524575f848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016134d0565b505050509050919050565b613537613a3e565b6001600160a01b0381166135b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610779565b6115548161404b565b6135c4613c18565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b15801561364a575f80fd5b505af115801561365c573d5f803e3d5ffd5b505050506125d96001606555565b613672613a3e565b8260a55481146136c45760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b6136cf846001614a2e565b60a5555f805b83811015612f3857609b54609e5f8787858181106136f5576136f5614d18565b905060200201602081019061370a91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161373457600191505b5f609e5f87878581811061374a5761374a614d18565b905060200201602081019061375f91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139b7575f6001609e5f88888681811061379d5761379d614d18565b90506020020160208101906137b291906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20546137dc9190614d45565b90505b609d546137ee90600190614d45565b8110156138c057609d613802826001614a2e565b8154811061381257613812614d18565b5f91825260209091200154609d80546001600160a01b03909216918390811061383d5761383d614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d848154811061388057613880614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080549091906138b3908490614d45565b90915550506001016137df565b50609d8054806138d2576138d2614e17565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e9086868481811061391757613917614d18565b905060200201602081019061392c91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f87878581811061396457613964614d18565b905060200201602081019061397991906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139b7576001609c5f8282546139b19190614d45565b90915550505b609f5f8686848181106139cc576139cc614d18565b90506020020160208101906139e191906145c5565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590613a2b6002830182614567565b50506001016136d5565b5f61071d825490565b6033546001600160a01b031633146125d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610779565b60995460975460ff1615613abc57609954609c541015613ab75750609c545b613acd565b609954609d541015613acd5750609d545b5f8167ffffffffffffffff811115613ae757613ae7614aa2565b604051908082528060200260200182016040528015613b10578160200160208202803683370190505b5090505f5b82811015613b7d57609d8181548110613b3057613b30614d18565b905f5260205f20015f9054906101000a90046001600160a01b0316828281518110613b5d57613b5d614d18565b6001600160a01b0390921660209283029190910190910152600101613b15565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490613be3908490600401614ec0565b5f604051808303815f87803b158015613bfa575f80fd5b505af1158015613c0c573d5f803e3d5ffd5b50509151609b55505050565b600260655403613c6a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610779565b6002606555565b6001606555565b5f613c8c836001600160a01b038416614396565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613d13576001600160a01b038481165f90815260a46020526040902080549185169183908110613ce357613ce3614d18565b5f9182526020909120600390910201546001600160a01b031603613d0b57600191505061071d565b600101613c96565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613dc99190614ed2565b159392505050565b5f613c8c836001600160a01b038416614479565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e8a9190614ef1565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f409190614ed2565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613fc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fe69190614ef1565b90505f83118015613fff575082613ffd8383614d45565b145b612f805760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166141255760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b6125d96144c5565b5f613c8c8383614541565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156141b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141dd9190614ef1565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614267573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061428b9190614ed2565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa15801561430d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143319190614ef1565b90505f8311801561434a5750826143488383614d45565b145b610a0e5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b5f8181526001830160205260408120548015614470575f6143b8600183614d45565b85549091505f906143cb90600190614d45565b905081811461442a575f865f0182815481106143e9576143e9614d18565b905f5260205f200154905080875f01848154811061440957614409614d18565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061443b5761443b614e17565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061071d565b5f91505061071d565b5f8181526001830160205260408120546144be57508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561071d565b505f61071d565b5f54610100900460ff16613c715760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b5f825f01828154811061455657614556614d18565b905f5260205f200154905092915050565b50805461457390614acf565b5f825580601f10614582575050565b601f0160209004905f5260205f209081019061155491905b808211156145ad575f815560010161459a565b5090565b6001600160a01b0381168114611554575f80fd5b5f602082840312156145d5575f80fd5b8135613c8c816145b1565b5f80604083850312156145f1575f80fd5b82359150602083013567ffffffffffffffff81111561460e575f80fd5b83016060818603121561461f575f80fd5b809150509250929050565b5f6020828403121561463a575f80fd5b5035919050565b5f8060408385031215614652575f80fd5b823561465d816145b1565b946020939093013593505050565b5f8083601f84011261467b575f80fd5b50813567ffffffffffffffff811115614692575f80fd5b6020830191508360208260051b85010111156146ac575f80fd5b9250929050565b5f80602083850312156146c4575f80fd5b823567ffffffffffffffff8111156146da575f80fd5b6146e68582860161466b565b90969095509350505050565b5f81518084525f5b81811015614716576020818501810151868301820152016146fa565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156147eb578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526147d7818601836146f2565b96890196945050509086019060010161477a565b509098975050505050505050565b5f805f805f8060a0878903121561480e575f80fd5b8635614819816145b1565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614849575f80fd5b61485589828a0161466b565b979a9699509497509295939492505050565b6001600160a01b0384168152826020820152606060408201525f61488e60608301846146f2565b95945050505050565b5f80604083850312156148a8575f80fd5b82356148b3816145b1565b9150602083013561461f816145b1565b5f805f604084860312156148d5575f80fd5b83359250602084013567ffffffffffffffff8111156148f2575f80fd5b6148fe8682870161466b565b9497909650939450505050565b5f805f6060848603121561491d575f80fd5b8335614928816145b1565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156149755781516001600160a01b031687529582019590820190600101614950565b509495945050505050565b828152604060208201525f614998604083018461493d565b949350505050565b602080825282518282018190525f919060409081850190868401855b828110156149f457815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016149bc565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561071d5761071d614a01565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a74575f80fd5b83018035915067ffffffffffffffff821115614a8e575f80fd5b6020019150368190038213156146ac575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680614ae357607f821691505b602082108103611f0f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156108fc57805f5260205f20601f840160051c81016020851015614b3f5750805b601f840160051c820191505b81811015612f80575f8155600101614b4b565b8135614b69816145b1565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614bd5575f80fd5b8501803567ffffffffffffffff811115614bed575f80fd5b8036038483011315614bfd575f80fd5b614c1181614c0b8554614acf565b85614b1a565b5f601f821160018114614c44575f8315614c2d57508382018601355b5f19600385901b1c1916600184901b178555614cba565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614c9057868501890135825593880193908901908801614c71565b5084821015614cae575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8181038181111561071d5761071d614a01565b5f81614d6657614d66614a01565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614da857614da8614d6d565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614ddf575f80fd5b9190910192915050565b5f60208284031215614df9575f80fd5b8151613c8c816145b1565b5f82614e1257614e12614d6d565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015614e86578235614e6b816145b1565b6001600160a01b031682529183019190830190600101614e58565b509695505050505050565b808202811582820484141761071d5761071d614a01565b5f5f198203614eb957614eb9614a01565b5060010190565b602081525f613c8c602083018461493d565b5f60208284031215614ee2575f80fd5b81518015158114613c8c575f80fd5b5f60208284031215614f01575f80fd5b505191905056fea164736f6c6343000818000a", } // L2StakingABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/l2staking_more.go b/bindings/bindings/l2staking_more.go index 828c89dfc..c2af631bf 100644 --- a/bindings/bindings/l2staking_more.go +++ b/bindings/bindings/l2staking_more.go @@ -13,7 +13,7 @@ const L2StakingStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\ var L2StakingStorageLayout = new(solc.StorageLayout) -var L2StakingDeployedBin = "0x608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106f6578063fad99f9814610709578063fc6facc614610711575f80fd5b8063e10911b1146106c5578063ed70b343146106cd578063f0261bc2146106ed575f80fd5b8063cce6cf9f116100c3578063cce6cf9f1461066a578063d31d83d91461067d578063d55771411461069e575f80fd5b8063affed0e014610618578063b5d2e0dc14610621578063c64814dd14610640575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a4146105c5578063927ede2d146105e457806396ab994d1461060b575f80fd5b80638da5cb5b1461055e5780638e21d5fb1461057c5780639168ae72146105a3575f80fd5b80637b05afb5116101785780637b05afb5146104f5578063831cfb581461051457806384d7d1d41461053b575f80fd5b8063746c8ae1146104e557806376671808146104ed575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104c25780637046529b146104ca578063715018a6146104dd575f80fd5b806343352d6114610494578063439162b51461049c578063459598a2146104af575f80fd5b80633cb747bf1161022d5780633cb747bf146104135780633d9353fe1461045a57806340b5c83714610481575f80fd5b80633b802421146103f75780633c323a1b14610400575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103bb57806330158eea146103c45780633385ccc2146103e4575f80fd5b8063174e31c41461038c57806319fac8fd1461039f5780632cc138be146103b2575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610383575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe3660046151fd565b610724565b6040519081526020015b60405180910390f35b610329610324366004615218565b610757565b005b610329610339366004615262565b6109a8565b61035161034c366004615279565b610ad5565b6040805173ffffffffffffffffffffffffffffffffffffffff909416845260208401929092529082015260600161030d565b610303609a5481565b61032961039a366004615279565b610b2a565b6103296103ad366004615262565b610ce3565b61030360985481565b61030360995481565b6103d76103d23660046152eb565b610e39565b60405161030d919061538b565b6103296103f23660046151fd565b6110a1565b610303609c5481565b61032961040e366004615279565b61181a565b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161030d565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b61032961048f366004615262565b61202d565b6103d7612174565b6103296104aa36600461543e565b6123d1565b6104356104bd366004615262565b6129dd565b609d54610303565b6103296104d8366004615218565b612a12565b610329612bba565b610329612bcd565b610303612f80565b6103036105033660046151fd565b60a06020525f908152604090205481565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b61054e6105493660046151fd565b61300e565b604051901515815260200161030d565b60335473ffffffffffffffffffffffffffffffffffffffff16610435565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b6105b66105b13660046151fd565b613045565b60405161030d939291906154ac565b6103036105d33660046151fd565b60a16020525f908152604090205481565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b60975461054e9060ff1681565b61030360a55481565b61030361062f3660046151fd565b609e6020525f908152604090205481565b61030361064e3660046154e9565b60a360209081525f928352604080842090915290825290205481565b610329610678366004615515565b613104565b61069061068b36600461555d565b6137d0565b60405161030d9291906155df565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b61032961398b565b6106e06106db3660046151fd565b613dd3565b60405161030d91906155ff565b610303609b5481565b6103296107043660046151fd565b613e83565b610329613f37565b61032961071f366004615515565b613fff565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a260205260408120610751906144dc565b92915050565b61075f6144e5565b8160a55481146107d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b6107db83600161569a565b60a555609e5f6107ee60208501856151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f036108cf57609d61083d60208401846151fd565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155609d5491609e916108a8908601866151fd565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f20555b81609f5f6108e060208401846151fd565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2061090f82826157ca565b5061091f905060208301836151fd565b73ffffffffffffffffffffffffffffffffffffffff167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d602084013561096860408601866156ad565b60405161097793929190615987565b60405180910390a260975460ff161580156109965750609954609d5411155b156109a3576109a3614566565b505050565b6109b06144e5565b5f811180156109c157506099548114155b610a4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a6500000000000000000000000000000000000000000000000000000000000060648201526084016107c7565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610aa257609d54610aa6565b609c545b90505f6099548210610aba57609954610abc565b815b9050609b548114610acf57610acf614566565b50505050565b60a4602052815f5260405f208181548110610aee575f80fd5b5f91825260209091206003909102018054600182015460029092015473ffffffffffffffffffffffffffffffffffffffff909116935090915083565b610b3261470d565b73ffffffffffffffffffffffffffffffffffffffff8216610c0f5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490526044015f604051808303815f87803b158015610bf4575f80fd5b505af1158015610c06573d5f803e3d5ffd5b50505050610cd5565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610cbe575f80fd5b505af1158015610cd0573d5f803e3d5ffd5b505050505b610cdf6001606555565b5050565b335f908152609e6020526040902054610d58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f7765640000000000000000000000000060448201526064016107c7565b6014811115610dc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e000000000000000000000000000060448201526064016107c7565b335f90815260a06020526040812082905560975460ff16610de4575f610df7565b610dec612f80565b610df790600161569a565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610e5557610e5561570e565b604051908082528060200260200182016040528015610ea157816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610e735790505b5090505f5b83811015611099576040518060600160405280609f5f888886818110610ece57610ece6159da565b9050602002016020810190610ee391906151fd565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610f2d57610f2d6159da565b9050602002016020810190610f4291906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f888886818110610f9957610f996159da565b9050602002016020810190610fae91906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002018054610ff59061573b565b80601f01602080910402602001604051908101604052809291908181526020018280546110219061573b565b801561106c5780601f106110435761010080835404028352916020019161106c565b820191905f5260205f20905b81548152906001019060200180831161104f57829003601f168201915b5050505050815250828281518110611086576110866159da565b6020908102919091010152600101610ea6565b509392505050565b6110a961470d565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a36020908152604080832033845290915290205461113f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f0000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609e60205260408120546097549015919060ff16611178575f61118b565b611180612f80565b61118b90600161569a565b6097549091505f9060ff1680156111a0575082155b6111aa57816111b7565b609a546111b7908361569a565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff8781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a190925292812080549495509193611286908490615a07565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260a2602052604090206112b99033614787565b5073ffffffffffffffffffffffffffffffffffffffff85165f908152609e6020526040902054841580156112ef575060975460ff165b80156112fc5750609c5481105b156115e85773ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604081205461133290600190615a07565b90505b6001609c546113449190615a07565b8110156115e65760a15f609d8381548110611361576113616159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120549060a190609d6113a385600161569a565b815481106113b3576113b36159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205411156115de575f609d82815481106113fe576113fe6159da565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff169050609d61142e83600161569a565b8154811061143e5761143e6159da565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169184908110611476576114766159da565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905580609d6114d184600161569a565b815481106114e1576114e16159da565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905561153982600161569a565b609e5f609d858154811061154f5761154f6159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205561158b82600261569a565b609e5f609d61159b86600161569a565b815481106115ab576115ab6159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b600101611335565b505b84158015611618575073ffffffffffffffffffffffffffffffffffffffff86165f90815260a16020526040902054155b15611635576001609c5f82825461162f9190615a07565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b1580156116e3575f80fd5b505af11580156116f5573d5f803e3d5ffd5b505050506117003390565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c84602001518787604051611775939291909283526020830191909152604082015260600190565b60405180910390a38415801561178d575060975460ff165b801561179b5750609b548111155b80156117fb5750609b5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e602052604090205411806117fb5750609c5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e6020526040902054115b1561180857611808614566565b50505050506118176001606555565b50565b73ffffffffffffffffffffffffffffffffffffffff82165f908152609e602052604090205482906118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b65720000000000000000000000000000000000000000000060448201526064016107c7565b6118af61470d565b5f8211611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e7400000000000000000000000060448201526064016107c7565b61192233846147af565b15611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d65640000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a360209081526040808320338452909152902054611a2e576119c7338461485f565b15611a2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f72657761726420756e636c61696d65640000000000000000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a1602052604081208054849290611a6290849061569a565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a36020908152604080832033845290915281208054849290611aa690849061569a565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a260205260409020611ad99033614921565b5073ffffffffffffffffffffffffffffffffffffffff83165f90815260a16020526040902054829003611b1e576001609c5f828254611b18919061569a565b90915550505b73ffffffffffffffffffffffffffffffffffffffff83165f908152609e602052604090205460975460ff168015611b555750600181115b15611e35575f611b66600183615a07565b90505b8015611e335760a15f609d611b7f600185615a07565b81548110611b8f57611b8f6159da565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8481548110611c0757611c076159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115611e21575f609d611c4c600184615a07565b81548110611c5c57611c5c6159da565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921692509083908110611c9657611c966159da565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16609d611cc4600185615a07565b81548110611cd457611cd46159da565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d8381548110611d2d57611d2d6159da565b5f918252602082200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93909316929092179091558290609e90609d611d8c600185615a07565b81548110611d9c57611d9c6159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055611dd882600161569a565b609e5f609d8581548110611dee57611dee6159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b80611e2b81615a1a565b915050611b69565b505b6097545f9060ff16611e47575f611e5a565b611e4f612f80565b611e5a90600161569a565b73ffffffffffffffffffffffffffffffffffffffff86165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a373ffffffffffffffffffffffffffffffffffffffff8581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611fa8575f80fd5b505af1158015611fba573d5f803e3d5ffd5b50505050611fcf611fc83390565b3086614942565b60975460ff168015611fe25750609b5482115b8015612014575060995473ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604090205411155b1561202157612021614566565b50506109a36001606555565b6120356144e5565b60975460ff16156120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f72657761726420616c726561647920737461727465640000000000000000000060448201526064016107c7565b42811180156120bb57506120b96201518082615a7b565b155b80156120c957506098548114155b61212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016107c7565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff8111156121945761219461570e565b6040519080825280602002602001820160405280156121e057816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816121b25790505b5090505f5b609d548110156123cb576040518060600160405280609f5f609d8581548110612210576122106159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff90811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110612269576122696159da565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f609d85815481106122e9576122e96159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902060020180546123279061573b565b80601f01602080910402602001604051908101604052809291908181526020018280546123539061573b565b801561239e5780601f106123755761010080835404028352916020019161239e565b820191905f5260205f20905b81548152906001019060200180831161238157829003601f168201915b50505050508152508282815181106123b8576123b86159da565b60209081029190910101526001016121e5565b50919050565b5f54610100900460ff16158080156123ef57505f54600160ff909116105b806124085750303b15801561240857505f5460ff166001145b612494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107c7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156124f0575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff871661256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016107c7565b5f86116125fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016107c7565b5f8511612665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f6368730000000060448201526064016107c7565b428411801561267e575061267c6201518085615a7b565b155b6126e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016107c7565b8161274b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420696e697469616c207374616b65727300000000000000000060448201526064016107c7565b61275487614be9565b61275c614c5f565b6099869055609a8590556098849055609b8290555f5b609b548110156128ff5783838281811061278e5761278e6159da565b90506020028101906127a09190615a8e565b609f5f8686858181106127b5576127b56159da565b90506020028101906127c79190615a8e565b6127d59060208101906151fd565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2061280482826157ca565b905050609d84848381811061281b5761281b6159da565b905060200281019061282d9190615a8e565b61283b9060208101906151fd565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905561289c90829061569a565b609e5f8686858181106128b1576128b16159da565b90506020028101906128c39190615a8e565b6128d19060208101906151fd565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2055600101612772565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a180156129d4575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d81815481106129ec575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015612b2e57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612af2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b169190615aca565b73ffffffffffffffffffffffffffffffffffffffff16145b61075f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016107c7565b612bc26144e5565b612bcb5f614be9565b565b612bd56144e5565b609854421015612c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d650000000000000000000000000000000000000000000000000000000060648201526084016107c7565b5f609c5411612cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f6e652063616e64696461746500000000000000000000000000000000000060448201526064016107c7565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612f10575f5b81811015612f075760a15f609d8381548110612d2a57612d2a6159da565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8581548110612da257612da26159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115612eff575f609d8281548110612ded57612ded6159da565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921692509084908110612e2757612e276159da565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169184908110612e5f57612e5f6159da565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d8481548110612eb857612eb86159da565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b600101612d0c565b50600101612d00565b505f5b609d54811015612f7757612f2881600161569a565b609e5f609d8481548110612f3e57612f3e6159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055600101612f13565b50612bcb614566565b5f609854421015612fed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f726577617264206973206e6f742073746172746564207965740000000000000060448201526064016107c7565b6201518060985442612fff9190615a07565b6130099190615ae5565b905090565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a3602090815260408083203384529091528120541515610751565b609f6020525f908152604090208054600182015460028301805473ffffffffffffffffffffffffffffffffffffffff9093169391926130839061573b565b80601f01602080910402602001604051908101604052809291908181526020018280546130af9061573b565b80156130fa5780601f106130d1576101008083540402835291602001916130fa565b820191905f5260205f20905b8154815290600101906020018083116130dd57829003601f168201915b5050505050905083565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561322057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132089190615aca565b73ffffffffffffffffffffffffffffffffffffffff16145b6132ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016107c7565b8260a5548114613318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064016107c7565b61332384600161569a565b60a5555f805b8381101561378157609b54609e5f878785818110613349576133496159da565b905060200201602081019061335e91906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116133a257600191505b5f609e5f8787858181106133b8576133b86159da565b90506020020160208101906133cd91906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156136eb575f6001609e5f888886818110613425576134256159da565b905060200201602081019061343a91906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461347e9190615a07565b90505b609d5461349090600190615a07565b81101561359657609d6134a482600161569a565b815481106134b4576134b46159da565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921691839081106134ec576134ec6159da565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d8481548110613549576135496159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400181208054909190613589908490615a07565b9091555050600101613481565b50609d8054806135a8576135a8615af8565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90868684818110613617576136176159da565b905060200201602081019061362c91906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f87878581811061367e5761367e6159da565b905060200201602081019061369391906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156136eb576001609c5f8282546136e59190615a07565b90915550505b609f5f868684818110613700576137006159da565b905060200201602081019061371591906151fd565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018101829055906137776002830182615192565b5050600101613329565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f6184846040516137b3929190615b25565b60405180910390a180156137c9576137c9614566565b5050505050565b5f60605f841161383c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f696e76616c696420706167652073697a6500000000000000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260a260205260409020613869906144dc565b91508367ffffffffffffffff8111156138845761388461570e565b6040519080825280602002602001820160405280156138ad578160200160208202803683370190505b5090505f6138bb8486615b7f565b90505f60016138ca868261569a565b6138d49088615b7f565b6138de9190615a07565b90506138eb600185615a07565b811115613900576138fd600185615a07565b90505b815b8181116139805773ffffffffffffffffffffffffffffffffffffffff88165f90815260a2602052604090206139379082614cfd565b848281518110613949576139496159da565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101528061397881615b96565b915050613902565b505050935093915050565b61399361470d565b335f90815260a46020526040812054815b81811015613d535760975460ff1615806139f457506139c1612f80565b335f90815260a4602052604090208054839081106139e1576139e16159da565b905f5260205f2090600302016002015411155b15613d4157335f90815260a460205260409020805482908110613a1957613a196159da565b905f5260205f2090600302016001015483613a34919061569a565b335f90815260a4602052604081208054929550909183908110613a5957613a596159da565b5f918252602082206003909102015473ffffffffffffffffffffffffffffffffffffffff16915060a481613a8a3390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208381548110613ad457613ad46159da565b905f5260205f2090600302016002015490505f60a45f613af13390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208481548110613b3b57613b3b6159da565b905f5260205f209060030201600101549050600185613b5a9190615a07565b841015613c5157335f90815260a460205260409020613b7a600187615a07565b81548110613b8a57613b8a6159da565b905f5260205f20906003020160a45f613ba03390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208581548110613bea57613bea6159da565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091178155600180830154908201556002918201549101555b335f90815260a460205260409020805480613c6e57613c6e615af8565b5f8281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018181018390556002909101919091559155613ce39086615a07565b6040805184815260208101849052919650339173ffffffffffffffffffffffffffffffffffffffff8616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a35050506139a4565b613d4c81600161569a565b90506139a4565b505f8211613dbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d00000000000000000060448201526064016107c7565b613dc73383614d08565b5050612bcb6001606555565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613e78575f8481526020908190206040805160608101825260038602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018082015484860152600290910154918301919091529083529092019101613e17565b505050509050919050565b613e8b6144e5565b73ffffffffffffffffffffffffffffffffffffffff8116613f2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107c7565b61181781614be9565b613f3f61470d565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015f604051808303815f87803b158015613fdf575f80fd5b505af1158015613ff1573d5f803e3d5ffd5b50505050612bcb6001606555565b6140076144e5565b8260a5548114614073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064016107c7565b61407e84600161569a565b60a5555f805b8381101561378157609b54609e5f8787858181106140a4576140a46159da565b90506020020160208101906140b991906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116140fd57600191505b5f609e5f878785818110614113576141136159da565b905060200201602081019061412891906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115614446575f6001609e5f888886818110614180576141806159da565b905060200201602081019061419591906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546141d99190615a07565b90505b609d546141eb90600190615a07565b8110156142f157609d6141ff82600161569a565b8154811061420f5761420f6159da565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169183908110614247576142476159da565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d84815481106142a4576142a46159da565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812080549091906142e4908490615a07565b90915550506001016141dc565b50609d80548061430357614303615af8565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90868684818110614372576143726159da565b905060200201602081019061438791906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f8787858181106143d9576143d96159da565b90506020020160208101906143ee91906151fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115614446576001609c5f8282546144409190615a07565b90915550505b609f5f86868481811061445b5761445b6159da565b905060200201602081019061447091906151fd565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018101829055906144d26002830182615192565b5050600101614084565b5f610751825490565b60335473ffffffffffffffffffffffffffffffffffffffff163314612bcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107c7565b60995460975460ff161561458a57609954609c5410156145855750609c545b61459b565b609954609d54101561459b5750609d545b5f8167ffffffffffffffff8111156145b5576145b561570e565b6040519080825280602002602001820160405280156145de578160200160208202803683370190505b5090505f5b8281101561466557609d81815481106145fe576145fe6159da565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110614638576146386159da565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526001016145e3565b506040517f9b8201a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690639b8201a4906146d8908490600401615bcd565b5f604051808303815f87803b1580156146ef575f80fd5b505af1158015614701573d5f803e3d5ffd5b50509151609b55505050565b600260655403614779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107c7565b6002606555565b6001606555565b5f6147a88373ffffffffffffffffffffffffffffffffffffffff8416614fa7565b9392505050565b5f805b73ffffffffffffffffffffffffffffffffffffffff84165f90815260a460205260409020548110156148565773ffffffffffffffffffffffffffffffffffffffff8481165f90815260a46020526040902080549185169183908110614819576148196159da565b5f91825260209091206003909102015473ffffffffffffffffffffffffffffffffffffffff160361484e576001915050610751565b6001016147b2565b505f9392505050565b6040517fde6ac93300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa1580156148f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149199190615bdf565b159392505050565b5f6147a88373ffffffffffffffffffffffffffffffffffffffff841661508a565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156149d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149f49190615bfe565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015614a93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ab79190615bdf565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614b46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614b6a9190615bfe565b90505f83118015614b83575082614b818383615a07565b145b6137c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016107c7565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16614cf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107c7565b612bcb6150d6565b5f6147a8838361516c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614d96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614dba9190615bfe565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614e51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614e759190615bdf565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614f04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614f289190615bfe565b90505f83118015614f41575082614f3f8383615a07565b145b610acf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016107c7565b5f8181526001830160205260408120548015615081575f614fc9600183615a07565b85549091505f90614fdc90600190615a07565b905081811461503b575f865f018281548110614ffa57614ffa6159da565b905f5260205f200154905080875f01848154811061501a5761501a6159da565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061504c5761504c615af8565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610751565b5f915050610751565b5f8181526001830160205260408120546150cf57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610751565b505f610751565b5f54610100900460ff16614780576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107c7565b5f825f018281548110615181576151816159da565b905f5260205f200154905092915050565b50805461519e9061573b565b5f825580601f106151ad575050565b601f0160209004905f5260205f209081019061181791905b808211156151d8575f81556001016151c5565b5090565b73ffffffffffffffffffffffffffffffffffffffff81168114611817575f80fd5b5f6020828403121561520d575f80fd5b81356147a8816151dc565b5f8060408385031215615229575f80fd5b82359150602083013567ffffffffffffffff811115615246575f80fd5b830160608186031215615257575f80fd5b809150509250929050565b5f60208284031215615272575f80fd5b5035919050565b5f806040838503121561528a575f80fd5b8235615295816151dc565b946020939093013593505050565b5f8083601f8401126152b3575f80fd5b50813567ffffffffffffffff8111156152ca575f80fd5b6020830191508360208260051b85010111156152e4575f80fd5b9250929050565b5f80602083850312156152fc575f80fd5b823567ffffffffffffffff811115615312575f80fd5b61531e858286016152a3565b90969095509350505050565b5f81518084525f5b8181101561534e57602081850181015186830182015201615332565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015615430578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff1684528781015188850152860151606087850181905261541c8186018361532a565b9689019694505050908601906001016153b2565b509098975050505050505050565b5f805f805f8060a08789031215615453575f80fd5b863561545e816151dc565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff81111561548e575f80fd5b61549a89828a016152a3565b979a9699509497509295939492505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f6154e0606083018461532a565b95945050505050565b5f80604083850312156154fa575f80fd5b8235615505816151dc565b91506020830135615257816151dc565b5f805f60408486031215615527575f80fd5b83359250602084013567ffffffffffffffff811115615544575f80fd5b615550868287016152a3565b9497909650939450505050565b5f805f6060848603121561556f575f80fd5b833561557a816151dc565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156155d457815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016155a2565b509495945050505050565b828152604060208201525f6155f7604083018461558f565b949350505050565b602080825282518282018190525f919060409081850190868401855b82811015615660578151805173ffffffffffffffffffffffffffffffffffffffff1685528681015187860152850151858501526060909301929085019060010161561b565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156107515761075161566d565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126156e0575f80fd5b83018035915067ffffffffffffffff8211156156fa575f80fd5b6020019150368190038213156152e4575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061574f57607f821691505b6020821081036123cb577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156109a357805f5260205f20601f840160051c810160208510156157ab5750805b601f840160051c820191505b818110156137c9575f81556001016157b7565b81356157d5816151dc565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112615859575f80fd5b8501803567ffffffffffffffff811115615871575f80fd5b8036038483011315615881575f80fd5b6158958161588f855461573b565b85615786565b5f601f8211600181146158e7575f83156158b157508382018601355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b17855561597c565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561593357868501890135825593880193908901908801615914565b5084821015615970577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b818103818111156107515761075161566d565b5f81615a2857615a2861566d565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82615a8957615a89615a4e565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112615ac0575f80fd5b9190910192915050565b5f60208284031215615ada575f80fd5b81516147a8816151dc565b5f82615af357615af3615a4e565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015615b74578235615b4c816151dc565b73ffffffffffffffffffffffffffffffffffffffff1682529183019190830190600101615b39565b509695505050505050565b80820281158282048414176107515761075161566d565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615bc657615bc661566d565b5060010190565b602081525f6147a8602083018461558f565b5f60208284031215615bef575f80fd5b815180151581146147a8575f80fd5b5f60208284031215615c0e575f80fd5b505191905056fea164736f6c6343000818000a" +var L2StakingDeployedBin = "0x608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106f6578063fad99f9814610709578063fc6facc614610711575f80fd5b8063e10911b1146106c5578063ed70b343146106cd578063f0261bc2146106ed575f80fd5b8063cce6cf9f116100c3578063cce6cf9f1461066a578063d31d83d91461067d578063d55771411461069e575f80fd5b8063affed0e014610618578063b5d2e0dc14610621578063c64814dd14610640575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a4146105c5578063927ede2d146105e457806396ab994d1461060b575f80fd5b80638da5cb5b1461055e5780638e21d5fb1461057c5780639168ae72146105a3575f80fd5b80637b05afb5116101785780637b05afb5146104f5578063831cfb581461051457806384d7d1d41461053b575f80fd5b8063746c8ae1146104e557806376671808146104ed575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104c25780637046529b146104ca578063715018a6146104dd575f80fd5b806343352d6114610494578063439162b51461049c578063459598a2146104af575f80fd5b80633cb747bf1161022d5780633cb747bf146104135780633d9353fe1461045a57806340b5c83714610481575f80fd5b80633b802421146103f75780633c323a1b14610400575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103bb57806330158eea146103c45780633385ccc2146103e4575f80fd5b8063174e31c41461038c57806319fac8fd1461039f5780632cc138be146103b2575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610383575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe36600461521e565b610724565b6040519081526020015b60405180910390f35b610329610324366004615239565b610757565b005b610329610339366004615283565b6109a8565b61035161034c36600461529a565b610ad5565b6040805173ffffffffffffffffffffffffffffffffffffffff909416845260208401929092529082015260600161030d565b610303609a5481565b61032961039a36600461529a565b610b2a565b6103296103ad366004615283565b610ce3565b61030360985481565b61030360995481565b6103d76103d236600461530c565b610e39565b60405161030d91906153ac565b6103296103f236600461521e565b6110a1565b610303609c5481565b61032961040e36600461529a565b61181a565b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161030d565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b61032961048f366004615283565b61202d565b6103d7612174565b6103296104aa36600461545f565b6123d1565b6104356104bd366004615283565b6129dd565b609d54610303565b6103296104d8366004615239565b612a12565b610329612bba565b610329612bcd565b610303612f80565b61030361050336600461521e565b60a06020525f908152604090205481565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b61054e61054936600461521e565b61300e565b604051901515815260200161030d565b60335473ffffffffffffffffffffffffffffffffffffffff16610435565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b6105b66105b136600461521e565b613045565b60405161030d939291906154cd565b6103036105d336600461521e565b60a16020525f908152604090205481565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b60975461054e9060ff1681565b61030360a55481565b61030361062f36600461521e565b609e6020525f908152604090205481565b61030361064e36600461550a565b60a360209081525f928352604080842090915290825290205481565b610329610678366004615536565b613104565b61069061068b36600461557e565b6137d0565b60405161030d929190615600565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b6103296139ac565b6106e06106db36600461521e565b613df4565b60405161030d9190615620565b610303609b5481565b61032961070436600461521e565b613ea4565b610329613f58565b61032961071f366004615536565b614020565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a260205260408120610751906144fd565b92915050565b61075f614506565b8160a55481146107d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b6107db8360016156bb565b60a555609e5f6107ee602085018561521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f036108cf57609d61083d602084018461521e565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155609d5491609e916108a89086018661521e565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f20555b81609f5f6108e0602084018461521e565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2061090f82826157eb565b5061091f9050602083018361521e565b73ffffffffffffffffffffffffffffffffffffffff167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d602084013561096860408601866156ce565b604051610977939291906159a8565b60405180910390a260975460ff161580156109965750609954609d5411155b156109a3576109a3614587565b505050565b6109b0614506565b5f811180156109c157506099548114155b610a4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a6500000000000000000000000000000000000000000000000000000000000060648201526084016107c7565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610aa257609d54610aa6565b609c545b90505f6099548210610aba57609954610abc565b815b9050609b548114610acf57610acf614587565b50505050565b60a4602052815f5260405f208181548110610aee575f80fd5b5f91825260209091206003909102018054600182015460029092015473ffffffffffffffffffffffffffffffffffffffff909116935090915083565b610b3261472e565b73ffffffffffffffffffffffffffffffffffffffff8216610c0f5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490526044015f604051808303815f87803b158015610bf4575f80fd5b505af1158015610c06573d5f803e3d5ffd5b50505050610cd5565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610cbe575f80fd5b505af1158015610cd0573d5f803e3d5ffd5b505050505b610cdf6001606555565b5050565b335f908152609e6020526040902054610d58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f7765640000000000000000000000000060448201526064016107c7565b6014811115610dc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e000000000000000000000000000060448201526064016107c7565b335f90815260a06020526040812082905560975460ff16610de4575f610df7565b610dec612f80565b610df79060016156bb565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610e5557610e5561572f565b604051908082528060200260200182016040528015610ea157816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610e735790505b5090505f5b83811015611099576040518060600160405280609f5f888886818110610ece57610ece6159fb565b9050602002016020810190610ee3919061521e565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610f2d57610f2d6159fb565b9050602002016020810190610f42919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f888886818110610f9957610f996159fb565b9050602002016020810190610fae919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002018054610ff59061575c565b80601f01602080910402602001604051908101604052809291908181526020018280546110219061575c565b801561106c5780601f106110435761010080835404028352916020019161106c565b820191905f5260205f20905b81548152906001019060200180831161104f57829003601f168201915b5050505050815250828281518110611086576110866159fb565b6020908102919091010152600101610ea6565b509392505050565b6110a961472e565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a36020908152604080832033845290915290205461113f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f0000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609e60205260408120546097549015919060ff16611178575f61118b565b611180612f80565b61118b9060016156bb565b6097549091505f9060ff1680156111a0575082155b6111aa57816111b7565b609a546111b790836156bb565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff8781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a190925292812080549495509193611286908490615a28565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260a2602052604090206112b990336147a8565b5073ffffffffffffffffffffffffffffffffffffffff85165f908152609e6020526040902054841580156112ef575060975460ff165b80156112fc5750609c5481105b156115e85773ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604081205461133290600190615a28565b90505b6001609c546113449190615a28565b8110156115e65760a15f609d8381548110611361576113616159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120549060a190609d6113a38560016156bb565b815481106113b3576113b36159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205411156115de575f609d82815481106113fe576113fe6159fb565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff169050609d61142e8360016156bb565b8154811061143e5761143e6159fb565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169184908110611476576114766159fb565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905580609d6114d18460016156bb565b815481106114e1576114e16159fb565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556115398260016156bb565b609e5f609d858154811061154f5761154f6159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205561158b8260026156bb565b609e5f609d61159b8660016156bb565b815481106115ab576115ab6159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b600101611335565b505b84158015611618575073ffffffffffffffffffffffffffffffffffffffff86165f90815260a16020526040902054155b15611635576001609c5f82825461162f9190615a28565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b1580156116e3575f80fd5b505af11580156116f5573d5f803e3d5ffd5b505050506117003390565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c84602001518787604051611775939291909283526020830191909152604082015260600190565b60405180910390a38415801561178d575060975460ff165b801561179b5750609b548111155b80156117fb5750609b5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e602052604090205411806117fb5750609c5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e6020526040902054115b1561180857611808614587565b50505050506118176001606555565b50565b73ffffffffffffffffffffffffffffffffffffffff82165f908152609e602052604090205482906118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b65720000000000000000000000000000000000000000000060448201526064016107c7565b6118af61472e565b5f8211611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e7400000000000000000000000060448201526064016107c7565b61192233846147d0565b15611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d65640000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a360209081526040808320338452909152902054611a2e576119c73384614880565b15611a2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f72657761726420756e636c61696d65640000000000000000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a1602052604081208054849290611a629084906156bb565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a36020908152604080832033845290915281208054849290611aa69084906156bb565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a260205260409020611ad99033614942565b5073ffffffffffffffffffffffffffffffffffffffff83165f90815260a16020526040902054829003611b1e576001609c5f828254611b1891906156bb565b90915550505b73ffffffffffffffffffffffffffffffffffffffff83165f908152609e602052604090205460975460ff168015611b555750600181115b15611e35575f611b66600183615a28565b90505b8015611e335760a15f609d611b7f600185615a28565b81548110611b8f57611b8f6159fb565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8481548110611c0757611c076159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115611e21575f609d611c4c600184615a28565b81548110611c5c57611c5c6159fb565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921692509083908110611c9657611c966159fb565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16609d611cc4600185615a28565b81548110611cd457611cd46159fb565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d8381548110611d2d57611d2d6159fb565b5f918252602082200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93909316929092179091558290609e90609d611d8c600185615a28565b81548110611d9c57611d9c6159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055611dd88260016156bb565b609e5f609d8581548110611dee57611dee6159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b80611e2b81615a3b565b915050611b69565b505b6097545f9060ff16611e47575f611e5a565b611e4f612f80565b611e5a9060016156bb565b73ffffffffffffffffffffffffffffffffffffffff86165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a373ffffffffffffffffffffffffffffffffffffffff8581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611fa8575f80fd5b505af1158015611fba573d5f803e3d5ffd5b50505050611fcf611fc83390565b3086614963565b60975460ff168015611fe25750609b5482115b8015612014575060995473ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604090205411155b1561202157612021614587565b50506109a36001606555565b612035614506565b60975460ff16156120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f72657761726420616c726561647920737461727465640000000000000000000060448201526064016107c7565b42811180156120bb57506120b96201518082615a9c565b155b80156120c957506098548114155b61212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016107c7565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff8111156121945761219461572f565b6040519080825280602002602001820160405280156121e057816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816121b25790505b5090505f5b609d548110156123cb576040518060600160405280609f5f609d8581548110612210576122106159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff90811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110612269576122696159fb565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f609d85815481106122e9576122e96159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902060020180546123279061575c565b80601f01602080910402602001604051908101604052809291908181526020018280546123539061575c565b801561239e5780601f106123755761010080835404028352916020019161239e565b820191905f5260205f20905b81548152906001019060200180831161238157829003601f168201915b50505050508152508282815181106123b8576123b86159fb565b60209081029190910101526001016121e5565b50919050565b5f54610100900460ff16158080156123ef57505f54600160ff909116105b806124085750303b15801561240857505f5460ff166001145b612494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107c7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156124f0575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff871661256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016107c7565b5f86116125fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016107c7565b5f8511612665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f6368730000000060448201526064016107c7565b428411801561267e575061267c6201518085615a9c565b155b6126e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016107c7565b8161274b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420696e697469616c207374616b65727300000000000000000060448201526064016107c7565b61275487614c0a565b61275c614c80565b6099869055609a8590556098849055609b8290555f5b609b548110156128ff5783838281811061278e5761278e6159fb565b90506020028101906127a09190615aaf565b609f5f8686858181106127b5576127b56159fb565b90506020028101906127c79190615aaf565b6127d590602081019061521e565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2061280482826157eb565b905050609d84848381811061281b5761281b6159fb565b905060200281019061282d9190615aaf565b61283b90602081019061521e565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905561289c9082906156bb565b609e5f8686858181106128b1576128b16159fb565b90506020028101906128c39190615aaf565b6128d190602081019061521e565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2055600101612772565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a180156129d4575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d81815481106129ec575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015612b2e57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612af2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b169190615aeb565b73ffffffffffffffffffffffffffffffffffffffff16145b61075f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016107c7565b612bc2614506565b612bcb5f614c0a565b565b612bd5614506565b609854421015612c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d650000000000000000000000000000000000000000000000000000000060648201526084016107c7565b5f609c5411612cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f6e652063616e64696461746500000000000000000000000000000000000060448201526064016107c7565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612f10575f5b81811015612f075760a15f609d8381548110612d2a57612d2a6159fb565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8581548110612da257612da26159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115612eff575f609d8281548110612ded57612ded6159fb565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921692509084908110612e2757612e276159fb565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169184908110612e5f57612e5f6159fb565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d8481548110612eb857612eb86159fb565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b600101612d0c565b50600101612d00565b505f5b609d54811015612f7757612f288160016156bb565b609e5f609d8481548110612f3e57612f3e6159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055600101612f13565b50612bcb614587565b5f609854421015612fed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f726577617264206973206e6f742073746172746564207965740000000000000060448201526064016107c7565b6201518060985442612fff9190615a28565b6130099190615b06565b905090565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a3602090815260408083203384529091528120541515610751565b609f6020525f908152604090208054600182015460028301805473ffffffffffffffffffffffffffffffffffffffff9093169391926130839061575c565b80601f01602080910402602001604051908101604052809291908181526020018280546130af9061575c565b80156130fa5780601f106130d1576101008083540402835291602001916130fa565b820191905f5260205f20905b8154815290600101906020018083116130dd57829003601f168201915b5050505050905083565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561322057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132089190615aeb565b73ffffffffffffffffffffffffffffffffffffffff16145b6132ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016107c7565b8260a5548114613318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064016107c7565b6133238460016156bb565b60a5555f805b8381101561378157609b54609e5f878785818110613349576133496159fb565b905060200201602081019061335e919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116133a257600191505b5f609e5f8787858181106133b8576133b86159fb565b90506020020160208101906133cd919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156136eb575f6001609e5f888886818110613425576134256159fb565b905060200201602081019061343a919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461347e9190615a28565b90505b609d5461349090600190615a28565b81101561359657609d6134a48260016156bb565b815481106134b4576134b46159fb565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921691839081106134ec576134ec6159fb565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d8481548110613549576135496159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400181208054909190613589908490615a28565b9091555050600101613481565b50609d8054806135a8576135a8615b19565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90868684818110613617576136176159fb565b905060200201602081019061362c919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f87878581811061367e5761367e6159fb565b9050602002016020810190613693919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156136eb576001609c5f8282546136e59190615a28565b90915550505b609f5f868684818110613700576137006159fb565b9050602002016020810190613715919061521e565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600181018290559061377760028301826151b3565b5050600101613329565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f6184846040516137b3929190615b46565b60405180910390a180156137c9576137c9614587565b5050505050565b5f60605f841161383c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f696e76616c696420706167652073697a6500000000000000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260a260205260409020613869906144fd565b91508367ffffffffffffffff8111156138845761388461572f565b6040519080825280602002602001820160405280156138ad578160200160208202803683370190505b5090505f6138bb8486615ba0565b90505f60016138ca86826156bb565b6138d49088615ba0565b6138de9190615a28565b90506138eb600185615a28565b811115613900576138fd600185615a28565b90505b815f5b8282116139a0576139448261391781615bb7565b73ffffffffffffffffffffffffffffffffffffffff8c165f90815260a26020526040902090945090614d1e565b858261394f81615bb7565b935081518110613961576139616159fb565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613903565b50505050935093915050565b6139b461472e565b335f90815260a46020526040812054815b81811015613d745760975460ff161580613a1557506139e2612f80565b335f90815260a460205260409020805483908110613a0257613a026159fb565b905f5260205f2090600302016002015411155b15613d6257335f90815260a460205260409020805482908110613a3a57613a3a6159fb565b905f5260205f2090600302016001015483613a5591906156bb565b335f90815260a4602052604081208054929550909183908110613a7a57613a7a6159fb565b5f918252602082206003909102015473ffffffffffffffffffffffffffffffffffffffff16915060a481613aab3390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208381548110613af557613af56159fb565b905f5260205f2090600302016002015490505f60a45f613b123390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208481548110613b5c57613b5c6159fb565b905f5260205f209060030201600101549050600185613b7b9190615a28565b841015613c7257335f90815260a460205260409020613b9b600187615a28565b81548110613bab57613bab6159fb565b905f5260205f20906003020160a45f613bc13390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208581548110613c0b57613c0b6159fb565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091178155600180830154908201556002918201549101555b335f90815260a460205260409020805480613c8f57613c8f615b19565b5f8281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018181018390556002909101919091559155613d049086615a28565b6040805184815260208101849052919650339173ffffffffffffffffffffffffffffffffffffffff8616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a35050506139c5565b613d6d8160016156bb565b90506139c5565b505f8211613dde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d00000000000000000060448201526064016107c7565b613de83383614d29565b5050612bcb6001606555565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613e99575f8481526020908190206040805160608101825260038602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018082015484860152600290910154918301919091529083529092019101613e38565b505050509050919050565b613eac614506565b73ffffffffffffffffffffffffffffffffffffffff8116613f4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107c7565b61181781614c0a565b613f6061472e565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015f604051808303815f87803b158015614000575f80fd5b505af1158015614012573d5f803e3d5ffd5b50505050612bcb6001606555565b614028614506565b8260a5548114614094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064016107c7565b61409f8460016156bb565b60a5555f805b8381101561378157609b54609e5f8787858181106140c5576140c56159fb565b90506020020160208101906140da919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541161411e57600191505b5f609e5f878785818110614134576141346159fb565b9050602002016020810190614149919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115614467575f6001609e5f8888868181106141a1576141a16159fb565b90506020020160208101906141b6919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546141fa9190615a28565b90505b609d5461420c90600190615a28565b81101561431257609d6142208260016156bb565b81548110614230576142306159fb565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169183908110614268576142686159fb565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d84815481106142c5576142c56159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400181208054909190614305908490615a28565b90915550506001016141fd565b50609d80548061432457614324615b19565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90868684818110614393576143936159fb565b90506020020160208101906143a8919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f8787858181106143fa576143fa6159fb565b905060200201602081019061440f919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115614467576001609c5f8282546144619190615a28565b90915550505b609f5f86868481811061447c5761447c6159fb565b9050602002016020810190614491919061521e565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018101829055906144f360028301826151b3565b50506001016140a5565b5f610751825490565b60335473ffffffffffffffffffffffffffffffffffffffff163314612bcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107c7565b60995460975460ff16156145ab57609954609c5410156145a65750609c545b6145bc565b609954609d5410156145bc5750609d545b5f8167ffffffffffffffff8111156145d6576145d661572f565b6040519080825280602002602001820160405280156145ff578160200160208202803683370190505b5090505f5b8281101561468657609d818154811061461f5761461f6159fb565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110614659576146596159fb565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101614604565b506040517f9b8201a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690639b8201a4906146f9908490600401615bee565b5f604051808303815f87803b158015614710575f80fd5b505af1158015614722573d5f803e3d5ffd5b50509151609b55505050565b60026065540361479a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107c7565b6002606555565b6001606555565b5f6147c98373ffffffffffffffffffffffffffffffffffffffff8416614fc8565b9392505050565b5f805b73ffffffffffffffffffffffffffffffffffffffff84165f90815260a460205260409020548110156148775773ffffffffffffffffffffffffffffffffffffffff8481165f90815260a4602052604090208054918516918390811061483a5761483a6159fb565b5f91825260209091206003909102015473ffffffffffffffffffffffffffffffffffffffff160361486f576001915050610751565b6001016147d3565b505f9392505050565b6040517fde6ac93300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015614916573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061493a9190615c00565b159392505050565b5f6147c98373ffffffffffffffffffffffffffffffffffffffff84166150ab565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156149f1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a159190615c1f565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015614ab4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ad89190615c00565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614b67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614b8b9190615c1f565b90505f83118015614ba4575082614ba28383615a28565b145b6137c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016107c7565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16614d16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107c7565b612bcb6150f7565b5f6147c9838361518d565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614db7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ddb9190615c1f565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614e72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614e969190615c00565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614f25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614f499190615c1f565b90505f83118015614f62575082614f608383615a28565b145b610acf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016107c7565b5f81815260018301602052604081205480156150a2575f614fea600183615a28565b85549091505f90614ffd90600190615a28565b905081811461505c575f865f01828154811061501b5761501b6159fb565b905f5260205f200154905080875f01848154811061503b5761503b6159fb565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061506d5761506d615b19565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610751565b5f915050610751565b5f8181526001830160205260408120546150f057508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610751565b505f610751565b5f54610100900460ff166147a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107c7565b5f825f0182815481106151a2576151a26159fb565b905f5260205f200154905092915050565b5080546151bf9061575c565b5f825580601f106151ce575050565b601f0160209004905f5260205f209081019061181791905b808211156151f9575f81556001016151e6565b5090565b73ffffffffffffffffffffffffffffffffffffffff81168114611817575f80fd5b5f6020828403121561522e575f80fd5b81356147c9816151fd565b5f806040838503121561524a575f80fd5b82359150602083013567ffffffffffffffff811115615267575f80fd5b830160608186031215615278575f80fd5b809150509250929050565b5f60208284031215615293575f80fd5b5035919050565b5f80604083850312156152ab575f80fd5b82356152b6816151fd565b946020939093013593505050565b5f8083601f8401126152d4575f80fd5b50813567ffffffffffffffff8111156152eb575f80fd5b6020830191508360208260051b8501011115615305575f80fd5b9250929050565b5f806020838503121561531d575f80fd5b823567ffffffffffffffff811115615333575f80fd5b61533f858286016152c4565b90969095509350505050565b5f81518084525f5b8181101561536f57602081850181015186830182015201615353565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015615451578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff1684528781015188850152860151606087850181905261543d8186018361534b565b9689019694505050908601906001016153d3565b509098975050505050505050565b5f805f805f8060a08789031215615474575f80fd5b863561547f816151fd565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff8111156154af575f80fd5b6154bb89828a016152c4565b979a9699509497509295939492505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f615501606083018461534b565b95945050505050565b5f806040838503121561551b575f80fd5b8235615526816151fd565b91506020830135615278816151fd565b5f805f60408486031215615548575f80fd5b83359250602084013567ffffffffffffffff811115615565575f80fd5b615571868287016152c4565b9497909650939450505050565b5f805f60608486031215615590575f80fd5b833561559b816151fd565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156155f557815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016155c3565b509495945050505050565b828152604060208201525f61561860408301846155b0565b949350505050565b602080825282518282018190525f919060409081850190868401855b82811015615681578151805173ffffffffffffffffffffffffffffffffffffffff1685528681015187860152850151858501526060909301929085019060010161563c565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156107515761075161568e565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615701575f80fd5b83018035915067ffffffffffffffff82111561571b575f80fd5b602001915036819003821315615305575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061577057607f821691505b6020821081036123cb577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156109a357805f5260205f20601f840160051c810160208510156157cc5750805b601f840160051c820191505b818110156137c9575f81556001016157d8565b81356157f6816151fd565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe186360301811261587a575f80fd5b8501803567ffffffffffffffff811115615892575f80fd5b80360384830113156158a2575f80fd5b6158b6816158b0855461575c565b856157a7565b5f601f821160018114615908575f83156158d257508382018601355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b17855561599d565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561595457868501890135825593880193908901908801615935565b5084821015615991577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b818103818111156107515761075161568e565b5f81615a4957615a4961568e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82615aaa57615aaa615a6f565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112615ae1575f80fd5b9190910192915050565b5f60208284031215615afb575f80fd5b81516147c9816151fd565b5f82615b1457615b14615a6f565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015615b95578235615b6d816151fd565b73ffffffffffffffffffffffffffffffffffffffff1682529183019190830190600101615b5a565b509695505050505050565b80820281158282048414176107515761075161568e565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615be757615be761568e565b5060010190565b602081525f6147c960208301846155b0565b5f60208284031215615c10575f80fd5b815180151581146147c9575f80fd5b5f60208284031215615c2f575f80fd5b505191905056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L2StakingStorageLayoutJSON), L2StakingStorageLayout); err != nil { From 5eafefe63f38d132c9324e8625c9d9ce6d77d858 Mon Sep 17 00:00:00 2001 From: kukoo Date: Wed, 20 Nov 2024 16:24:34 +0800 Subject: [PATCH 040/106] Add initialize2 for rollup to set state root (#641) Co-authored-by: Agnar Song --- bindings/bin/rollup_deployed.hex | 2 +- bindings/bindings/rollup.go | 25 ++++++++++++++++++++++-- bindings/bindings/rollup_more.go | 2 +- contracts/contracts/l1/rollup/Rollup.sol | 9 +++++++++ 4 files changed, 34 insertions(+), 4 deletions(-) diff --git a/bindings/bin/rollup_deployed.hex b/bindings/bin/rollup_deployed.hex index 663d65ec6..9f980dea0 100644 --- a/bindings/bin/rollup_deployed.hex +++ b/bindings/bin/rollup_deployed.hex @@ -1 +1 @@ -0x6080604052600436106102fb575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610987578063f2fde38b146109a6578063fb1e8b04146109c5575f80fd5b8063ddd8a3dc14610934578063de8b303514610953578063dff7827e14610972575f80fd5b8063cd4edc69116100b7578063cd4edc69146108ed578063ce5db8d614610900578063d279c19114610915575f80fd5b8063b35dac4e14610890578063b3e0a509146108af578063bedb86fb146108ce575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d14610831578063b31a77d31461085c578063b348442514610871575f80fd5b8063a415d8dc146107cf578063a479265d146107fd578063a4f209b014610812575f80fd5b80638f1d37761161016c5780638f1d3776146106cf578063910129d41461077f57806397fc007c146107b0575f80fd5b8063728cdbca1461067a57806388b1ea09146106995780638da5cb5b146106b2575f80fd5b80632571098d116102515780635c975abb116101fc57806368589dfa116101d757806368589dfa1461061c5780636c578c1d14610647578063715018a614610666575f80fd5b80635c975abb146105595780635ef7a94a146105705780635f77cf1d146105d0575f80fd5b80633e001b661161022c5780633e001b66146105125780634a8d544f1461052757806357e0af6c1461053a575f80fd5b80632571098d146104915780632b7ac3f3146104bc5780633b70c18a146104f3575f80fd5b8063121dcd50116102b157806318af3b2b1161028c57806318af3b2b1461041757806321e2f9e0146104475780632362f03e14610466575f80fd5b8063121dcd50146103ce57806313361101146103e357806318463fb014610402575f80fd5b80630ceb6780116102e15780630ceb67801461036c57806310d445831461038d578063116a1f42146103ac575f80fd5b806304d7721514610306578063059def6114610349575f80fd5b3661030257005b5f80fd5b348015610311575f80fd5b50610334610320366004613e66565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610354575f80fd5b5061035e609d5481565b604051908152602001610340565b348015610377575f80fd5b5061038b610386366004613e98565b6109da565b005b348015610398575f80fd5b5061038b6103a7366004613ef6565b610aac565b3480156103b7575f80fd5b506103346103c6366004613e66565b609d54101590565b3480156103d9575f80fd5b5061035e609e5481565b3480156103ee575f80fd5b5061038b6103fd366004613f3e565b610e05565b34801561040d575f80fd5b5061035e60a75481565b348015610422575f80fd5b50610334610431366004613e66565b5f90815260a26020526040902060010154421090565b348015610452575f80fd5b50610334610461366004613e66565b6112fc565b348015610471575f80fd5b5061035e610480366004613e66565b60a16020525f908152604090205481565b34801561049c575f80fd5b5061035e6104ab366004613e66565b60a06020525f908152604090205481565b3480156104c7575f80fd5b50609c546104db906001600160a01b031681565b6040516001600160a01b039091168152602001610340565b3480156104fe575f80fd5b50609b546104db906001600160a01b031681565b34801561051d575f80fd5b5061035e60aa5481565b61038b610535366004613f7d565b61132a565b348015610545575f80fd5b5061038b610554366004613e66565b611bad565b348015610564575f80fd5b5060655460ff16610334565b34801561057b575f80fd5b506105b061058a366004613e66565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610340565b3480156105db575f80fd5b506106037f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610340565b348015610627575f80fd5b5061035e610636366004613e66565b60ab6020525f908152604090205481565b348015610652575f80fd5b5061038b610661366004613e98565b611c58565b348015610671575f80fd5b5061038b611d15565b348015610685575f80fd5b5061038b610694366004613fea565b611d28565b3480156106a4575f80fd5b5060a6546103349060ff1681565b3480156106bd575f80fd5b506033546001600160a01b03166104db565b3480156106da575f80fd5b5061073b6106e9366004613e66565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c001610340565b34801561078a575f80fd5b50610334610799366004613e66565b5f90815260a4602052604090206003015460ff1690565b3480156107bb575f80fd5b5061038b6107ca366004613e98565b61206b565b3480156107da575f80fd5b506103346107e9366004613e98565b609f6020525f908152604090205460ff1681565b348015610808575f80fd5b5061035e60995481565b34801561081d575f80fd5b5061038b61082c366004613e66565b61214e565b34801561083c575f80fd5b5061035e61084b366004613e98565b60a56020525f908152604090205481565b348015610867575f80fd5b5061035e60a85481565b34801561087c575f80fd5b5061038b61088b366004614045565b6121fe565b34801561089b575f80fd5b5061038b6108aa366004613e98565b612443565b3480156108ba575f80fd5b5061038b6108c9366004613f3e565b61249c565b3480156108d9575f80fd5b5061038b6108e83660046140b9565b61279e565b61038b6108fb3660046140d4565b6128f9565b34801561090b575f80fd5b5061035e60985481565b348015610920575f80fd5b5061038b61092f366004613e98565b612ec5565b34801561093f575f80fd5b506097546104db906001600160a01b031681565b34801561095e575f80fd5b5061033461096d366004613e66565b612f84565b34801561097d575f80fd5b5061035e609a5481565b348015610992575f80fd5b5061038b6109a1366004613e66565b612fce565b3480156109b1575f80fd5b5061038b6109c0366004613e98565b613071565b3480156109d0575f80fd5b5061035e60a95481565b6109e26130fe565b6001600160a01b0381165f908152609f602052604090205460ff1615610a4f5760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ab46130fe565b5f8111610b035760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a46565b5f80610b0f8585613158565b915091505f610b22836001015160c01c90565b5f81815260a160205260409020549091508214610b815760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b5f60a181610b8f8785614137565b81526020019081526020015f205414610c0f5760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a46565b609d548111610c865760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b610c9160018261414a565b609e555b8315610dfd57604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610cdd81612f84565b15610d38575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d28908490614137565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610db5575060a85481145b15610dbf575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610c95575b505050505050565b60a85415610e555760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b610e5d613173565b5f80610e698484613158565b915091505f610e7c836001015160c01c90565b5f81815260a160205260409020549091508214610edb5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b610ee4816112fc565b610f305760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b610f3981612f84565b15610f865760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003015460ff1615610fe75760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a46565b5f81815260a260205260409020600101544210156110475760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a46565b605983015160a05f61105a60018561414a565b81526020019081526020015f2054146110b55760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f81815260a06020526040902054156111105760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a46565b80609d54600101146111645760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b609d819055600160a35f611179866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111c86111bb846011015160c01c90565b600985015160c01c6131c6565b60a25f6111d660018461414a565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061120f908461414a565b81526020019081526020015f205f905560a45f60018361122f919061414a565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d6112d8866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061132457505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ba919061415d565b6114065760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a46565b60a854156114565760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b61145e613173565b61146b6020830183614178565b60ff16156114bb5760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a46565b5f6114c96040840184614198565b915050806115195760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a46565b606083013561156a5760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a46565b60808301356115bb5760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a46565b5f806115d26115cd6020870187614198565b613158565b915091505f6115e5836001015160c01c90565b90505f60a1816115f6846001614137565b81526020019081526020015f2054146116515760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a46565b609e5481146116a25760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b5f81815260a1602052604090205482146116fe5760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a46565b5f81815260ab602052604090205460608701351461175e5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f61176d846011015160c01c90565b90505f80806117bf61178260408c018c614198565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792508891506132839050565b600196909601959485019493840193925090505f8049156117e1575f49611803565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f961182e8961182660208f018f614178565b60ff16613400565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a015261189d8961187e60208e018e614198565b60405161188c9291906141f9565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff161561190a5760a7545f90815260a4602052604090206002015460995442916118fd91614137565b611907919061414a565b90505b6040518060800160405280428152602001826098544261192a9190614137565b6119349190614137565b81526020016119858f806040019061194c9190614198565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061340792505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156119f9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1d9190614208565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590611a8590611a7f908f018f614198565b5f61345e565b5f8e8060400190611a969190614198565b6040518663ffffffff1660e01b8152600401611ab6959493929190614266565b602060405180830381865afa158015611ad1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611af5919061415d565b611b675760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611bb56130fe565b5f81118015611bc657506099548114155b611c125760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a46565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b611c606130fe565b6001600160a01b0381165f908152609f602052604090205460ff16611cc75760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a46565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610aa1565b611d1d6130fe565b611d265f6134b2565b565b5f54610100900460ff1615808015611d4657505f54600160ff909116105b80611d5f5750303b158015611d5f57505f5460ff166001145b611dd15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a46565b5f805460ff191660011790558015611e0f575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0386161580611e2c57506001600160a01b038516155b15611e63576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038716611eb95760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a46565b611ec161351b565b611ec961359f565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015612062575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6120736130fe565b6001600160a01b038116158015906120995750609c546001600160a01b03828116911614155b6120e55760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a46565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b6121566130fe565b5f81118015612166575060648111155b8015612174575060a9548114155b6121c05760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a46565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c4c565b60a8541561224e5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b612256613173565b5f806122628686613158565b915091505f612275836001015160c01c90565b5f81815260a1602052604090205490915082146122d45760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b6122dd81612f84565b6123295760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff19169055609954600290910154429161238291614137565b116123f8575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f757400000000000000000000000000000000000000000000000000918301919091526123f391839190613623565b612062565b61240383868661377f565b61206281336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613932565b61244b6130fe565b60aa80545f90915561245d82826139fe565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c4c565b6124a46130fe565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561251b5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a46565b5f806125278484613158565b915091505f61253a836001015160c01c90565b90505f612548846079015190565b9050806125975760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a46565b600984015160c01c156125ec5760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a46565b5f6125f8856019015190565b036126455760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a46565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014612671856039015190565b146126be5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a46565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b6127a66130fe565b80156128c7576127b4613aa9565b60a65460ff16156128865760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612808908490614137565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b6128cf613b03565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336128a9565b50565b335f908152609f602052604090205460ff166129575760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a46565b60a854156129a75760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b6129af613173565b60a65460ff1615612a025760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a46565b8167ffffffffffffffff16609d5410612a5d5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a160205260409020548114612ac45760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b612ad78267ffffffffffffffff166112fc565b612b235760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612b9e5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a260205260409020600101544210612c2e5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a46565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ca29190614208565b341015612cf15760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b997634604051612e4391815260200190565b60405180910390a35f609d546001612e5b9190614137565b90505b609e548111612eb3578267ffffffffffffffff168114612ea1576099545f82815260a2602052604081206001018054909190612e9b908490614137565b90915550505b80612eab816142d9565b915050612e5e565b505060a6805460ff1916600117905550565b335f90815260a5602052604081205490819003612f245760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a46565b335f90815260a56020526040812055612f3d82826139fe565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a82604051612f7891815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b0316158015906113245750505f90815260a46020526040902060030154610100900460ff161590565b612fd66130fe565b5f81118015612fe757506098548114155b6130335760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a46565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c4c565b6130796130fe565b6001600160a01b0381166130f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a46565b6128f6816134b2565b6033546001600160a01b03163314611d265760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a46565b5f805f6131658585613b3c565b812090969095509350505050565b60655460ff1615611d265760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a46565b805f036131d1575050565b8082035f5b8281101561327d576101008184038111156131f057508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b158015613253575f80fd5b505af1158015613265573d5f803e3d5ffd5b505050506101008301925050610100810190506131d6565b50505050565b60405183515f918291602087019190819084906132a1908590613ba4565b90506002840193505f5b8181101561332557603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f6132fb603c83614310565b6133059087614137565b90505f61331682603a015160f01c90565b979097019650506001016132ab565b506020850282016040525b80156133ee575f61334585603a015160f01c90565b905061335383828b8b613c39565b92505f613364866038015160f01c90565b9050818110156133b65760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a46565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613330565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613422828651613ba4565b90505f5b61343160018361414a565b81101561344757603c9390930192600101613426565b505f613454845160c01c90565b9695505050505050565b60605f80808080613471888a018a614414565b955095509550955095505081871061348f5794506134ab9350505050565b8387106134a35782955050505050506134ab565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166135975760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b611d26613d07565b5f54610100900460ff1661361b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b611d26613d8f565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af11580156136a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136cb9190614208565b5f86815260a460205260409020600101549091506136ea908290614137565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a590915281208054909190613729908490614137565b909155505060405161373c9084906144b1565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b806137cc5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a46565b5f6137db846001015160c01c90565b90505f6137e9856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613818876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a8486138da885160f81c90565b858888866040518663ffffffff1660e01b81526004016138fe9594939291906144dd565b5f6040518083038186803b158015613914575f80fd5b505afa158015613926573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906139569084614310565b613960919061450e565b905061396c818361414a565b60aa5f82825461397c9190614137565b90915550506001600160a01b0384165f90815260a56020526040812080548392906139a8908490614137565b90915550506040516139bb9084906144b1565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613aa5575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613a4d576040519150601f19603f3d011682016040523d82523d5f602084013e613a52565b606091505b5050905080613aa35760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a46565b505b5050565b613ab1613173565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613ae63390565b6040516001600160a01b03909116815260200160405180910390a1565b613b0b613e14565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613ae6565b5f8160f98114613b8e5760405162461bcd60e51b815260206004820152601f60248201527f626174636820686561646572206c656e677468206d75737420626520323439006044820152606401610a46565b6040519150808483378082016040529250929050565b5f613bb0835160f01c90565b9050805f03613beb576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613bf6603c82614310565b613c01906002614137565b8214611324576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03613c48575083613cff565b609b546001600160a01b03165f5b85811015613cf9576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613cbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ce09190614208565b8852506020909601956001948501949384019301613c56565b50859150505b949350505050565b5f54610100900460ff16613d835760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6065805460ff19169055565b5f54610100900460ff16613e0b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b611d26336134b2565b60655460ff16611d265760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a46565b5f60208284031215613e76575f80fd5b5035919050565b80356001600160a01b0381168114613e93575f80fd5b919050565b5f60208284031215613ea8575f80fd5b6134ab82613e7d565b5f8083601f840112613ec1575f80fd5b50813567ffffffffffffffff811115613ed8575f80fd5b602083019150836020828501011115613eef575f80fd5b9250929050565b5f805f60408486031215613f08575f80fd5b833567ffffffffffffffff811115613f1e575f80fd5b613f2a86828701613eb1565b909790965060209590950135949350505050565b5f8060208385031215613f4f575f80fd5b823567ffffffffffffffff811115613f65575f80fd5b613f7185828601613eb1565b90969095509350505050565b5f8060408385031215613f8e575f80fd5b823567ffffffffffffffff80821115613fa5575f80fd5b9084019060c08287031215613fb8575f80fd5b90925060208401359080821115613fcd575f80fd5b50830160608186031215613fdf575f80fd5b809150509250929050565b5f805f805f8060c08789031215613fff575f80fd5b61400887613e7d565b955061401660208801613e7d565b945061402460408801613e7d565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614058575f80fd5b843567ffffffffffffffff8082111561406f575f80fd5b61407b88838901613eb1565b90965094506020870135915080821115614093575f80fd5b506140a087828801613eb1565b95989497509550505050565b80151581146128f6575f80fd5b5f602082840312156140c9575f80fd5b81356134ab816140ac565b5f80604083850312156140e5575f80fd5b823567ffffffffffffffff811681146140fc575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156113245761132461410a565b818103818111156113245761132461410a565b5f6020828403121561416d575f80fd5b81516134ab816140ac565b5f60208284031215614188575f80fd5b813560ff811681146134ab575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126141cb575f80fd5b83018035915067ffffffffffffffff8211156141e5575f80fd5b602001915036819003821315613eef575f80fd5b818382375f9101908152919050565b5f60208284031215614218575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156142b05784516001600160a01b03168352938301939183019160010161428b565b505087604086015284810360608601526142cb81878961421f565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036143095761430961410a565b5060010190565b80820281158282048414176113245761132461410a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112614363575f80fd5b8135602067ffffffffffffffff8083111561438057614380614327565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156143c3576143c3614327565b60405293845260208187018101949081019250878511156143e2575f80fd5b6020870191505b84821015614409576143fa82613e7d565b835291830191908301906143e9565b979650505050505050565b5f805f805f8060c08789031215614429575f80fd5b86359550602087013567ffffffffffffffff80821115614447575f80fd5b6144538a838b01614354565b965060408901359550606089013591508082111561446f575f80fd5b61447b8a838b01614354565b94506080890135935060a0890135915080821115614497575f80fd5b506144a489828a01614354565b9150509295509295509295565b5f82515f5b818110156144d057602081860181015185830152016144b6565b505f920191825250919050565b858152846020820152608060408201525f6144fc60808301858761421f565b90508260608301529695505050505050565b5f82614541577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a +0x608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109b1578063f2fde38b146109d0578063fb1e8b04146109ef575f80fd5b8063ddd8a3dc1461095e578063de8b30351461097d578063dff7827e1461099c575f80fd5b8063cd4edc69116100b7578063cd4edc6914610917578063ce5db8d61461092a578063d279c1911461093f575f80fd5b8063b35dac4e146108ba578063b3e0a509146108d9578063bedb86fb146108f8575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d1461085b578063b31a77d314610886578063b34844251461089b575f80fd5b8063a415d8dc146107f9578063a479265d14610827578063a4f209b01461083c575f80fd5b80638f1d37761161016c5780638f1d3776146106f9578063910129d4146107a957806397fc007c146107da575f80fd5b8063728cdbca146106a457806388b1ea09146106c35780638da5cb5b146106dc575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa146106465780636c578c1d14610671578063715018a614610690575f80fd5b80635ef7a94a1461057b5780635f77cf1d146105db5780636126729014610627575f80fd5b80634a8d544f1161022c5780634a8d544f1461053257806357e0af6c146105455780635c975abb14610564575f80fd5b80632b7ac3f3146104c75780633b70c18a146104fe5780633e001b661461051d575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b3660046140a5565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b506103966103913660046140d7565b610a04565b005b3480156103a3575f80fd5b506103966103b2366004614135565b610ad6565b3480156103c2575f80fd5b5061033f6103d13660046140a5565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b5061039661040836600461417d565b610e2f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c3660046140a5565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c3660046140a5565b611326565b34801561047c575f80fd5b5061036961048b3660046140a5565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b63660046140a5565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104e6906001600160a01b031681565b6040516001600160a01b03909116815260200161034b565b348015610509575f80fd5b50609b546104e6906001600160a01b031681565b348015610528575f80fd5b5061036960aa5481565b6103966105403660046141bc565b611354565b348015610550575f80fd5b5061039661055f3660046140a5565b611bd7565b34801561056f575f80fd5b5060655460ff1661033f565b348015610586575f80fd5b506105bb6105953660046140a5565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b3480156105e6575f80fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610632575f80fd5b506103966106413660046140a5565b611c82565b348015610651575f80fd5b506103696106603660046140a5565b60ab6020525f908152604090205481565b34801561067c575f80fd5b5061039661068b3660046140d7565b611e97565b34801561069b575f80fd5b50610396611f54565b3480156106af575f80fd5b506103966106be366004614229565b611f67565b3480156106ce575f80fd5b5060a65461033f9060ff1681565b3480156106e7575f80fd5b506033546001600160a01b03166104e6565b348015610704575f80fd5b506107656107133660046140a5565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b3480156107b4575f80fd5b5061033f6107c33660046140a5565b5f90815260a4602052604090206003015460ff1690565b3480156107e5575f80fd5b506103966107f43660046140d7565b6122aa565b348015610804575f80fd5b5061033f6108133660046140d7565b609f6020525f908152604090205460ff1681565b348015610832575f80fd5b5061036960995481565b348015610847575f80fd5b506103966108563660046140a5565b61238d565b348015610866575f80fd5b506103696108753660046140d7565b60a56020525f908152604090205481565b348015610891575f80fd5b5061036960a85481565b3480156108a6575f80fd5b506103966108b5366004614284565b61243d565b3480156108c5575f80fd5b506103966108d43660046140d7565b612682565b3480156108e4575f80fd5b506103966108f336600461417d565b6126db565b348015610903575f80fd5b506103966109123660046142f8565b6129dd565b610396610925366004614313565b612b38565b348015610935575f80fd5b5061036960985481565b34801561094a575f80fd5b506103966109593660046140d7565b613104565b348015610969575f80fd5b506097546104e6906001600160a01b031681565b348015610988575f80fd5b5061033f6109973660046140a5565b6131c3565b3480156109a7575f80fd5b50610369609a5481565b3480156109bc575f80fd5b506103966109cb3660046140a5565b61320d565b3480156109db575f80fd5b506103966109ea3660046140d7565b6132b0565b3480156109fa575f80fd5b5061036960a95481565b610a0c61333d565b6001600160a01b0381165f908152609f602052604090205460ff1615610a795760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ade61333d565b5f8111610b2d5760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a70565b5f80610b398585613397565b915091505f610b4c836001015160c01c90565b5f81815260a160205260409020549091508214610bab5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b5f60a181610bb98785614376565b81526020019081526020015f205414610c395760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a70565b609d548111610cb05760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b610cbb600182614389565b609e555b8315610e2757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610d07816131c3565b15610d62575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d52908490614376565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ddf575060a85481145b15610de9575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610cbf575b505050505050565b60a85415610e7f5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b610e876133b2565b5f80610e938484613397565b915091505f610ea6836001015160c01c90565b5f81815260a160205260409020549091508214610f055760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b610f0e81611326565b610f5a5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b610f63816131c3565b15610fb05760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003015460ff16156110115760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a70565b5f81815260a260205260409020600101544210156110715760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a70565b605983015160a05f611084600185614389565b81526020019081526020015f2054146110df5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f81815260a060205260409020541561113a5760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a70565b80609d546001011461118e5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b609d819055600160a35f6111a3866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111f26111e5846011015160c01c90565b600985015160c01c613405565b60a25f611200600184614389565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906112399084614389565b81526020019081526020015f205f905560a45f6001836112599190614389565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611302866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061134e57505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156113c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e4919061439c565b6114305760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a70565b60a854156114805760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b6114886133b2565b61149560208301836143b7565b60ff16156114e55760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a70565b5f6114f360408401846143d7565b915050806115435760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a70565b60608301356115945760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a70565b60808301356115e55760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a70565b5f806115fc6115f760208701876143d7565b613397565b915091505f61160f836001015160c01c90565b90505f60a181611620846001614376565b81526020019081526020015f20541461167b5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a70565b609e5481146116cc5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b5f81815260a1602052604090205482146117285760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a70565b5f81815260ab60205260409020546060870135146117885760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f611797846011015160c01c90565b90505f80806117e96117ac60408c018c6143d7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792508891506134c29050565b600196909601959485019493840193925090505f80491561180b575f4961182d565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f96118588961185060208f018f6143b7565b60ff1661363f565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a01526118c7896118a860208e018e6143d7565b6040516118b6929190614438565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff16156119345760a7545f90815260a46020526040902060020154609954429161192791614376565b6119319190614389565b90505b604051806080016040528042815260200182609854426119549190614376565b61195e9190614376565b81526020016119af8f806040019061197691906143d7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061364692505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a479190614447565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590611aaf90611aa9908f018f6143d7565b5f61369d565b5f8e8060400190611ac091906143d7565b6040518663ffffffff1660e01b8152600401611ae09594939291906144a5565b602060405180830381865afa158015611afb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1f919061439c565b611b915760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611bdf61333d565b5f81118015611bf057506099548114155b611c3c5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a70565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff16158015611ca257505f5460ff8083169116105b611d145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611d4f5f5460ff1690565b60ff16600214611da15760405162461bcd60e51b815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610a70565b81611e145760405162461bcd60e51b815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610a70565b609e545f90815260ab6020526040902054611e3d57609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611c76565b611e9f61333d565b6001600160a01b0381165f908152609f602052604090205460ff16611f065760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a70565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610acb565b611f5c61333d565b611f655f6136f1565b565b5f54610100900460ff1615808015611f8557505f54600160ff909116105b80611f9e5750303b158015611f9e57505f5460ff166001145b6120105760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f805460ff19166001179055801561204e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038616158061206b57506001600160a01b038516155b156120a2576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166120f85760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a70565b61210061375a565b6121086137de565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156122a1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6122b261333d565b6001600160a01b038116158015906122d85750609c546001600160a01b03828116911614155b6123245760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a70565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b61239561333d565b5f811180156123a5575060648111155b80156123b3575060a9548114155b6123ff5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a70565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c76565b60a8541561248d5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b6124956133b2565b5f806124a18686613397565b915091505f6124b4836001015160c01c90565b5f81815260a1602052604090205490915082146125135760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b61251c816131c3565b6125685760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff1916905560995460029091015442916125c191614376565b11612637575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f7574000000000000000000000000000000000000000000000000009183019190915261263291839190613862565b6122a1565b6126428386866139be565b6122a181336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613b71565b61268a61333d565b60aa80545f90915561269c8282613c3d565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c76565b6126e361333d565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561275a5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a70565b5f806127668484613397565b915091505f612779836001015160c01c90565b90505f612787846079015190565b9050806127d65760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a70565b600984015160c01c1561282b5760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a70565b5f612837856019015190565b036128845760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a70565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440146128b0856039015190565b146128fd5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a70565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b6129e561333d565b8015612b06576129f3613ce8565b60a65460ff1615612ac55760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612a47908490614376565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b612b0e613d42565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612ae8565b50565b335f908152609f602052604090205460ff16612b965760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a70565b60a85415612be65760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612bee6133b2565b60a65460ff1615612c415760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a70565b8167ffffffffffffffff16609d5410612c9c5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a160205260409020548114612d035760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b612d168267ffffffffffffffff16611326565b612d625760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612ddd5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a260205260409020600101544210612e6d5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a70565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ebd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ee19190614447565b341015612f305760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b99763460405161308291815260200190565b60405180910390a35f609d54600161309a9190614376565b90505b609e5481116130f2578267ffffffffffffffff1681146130e0576099545f82815260a26020526040812060010180549091906130da908490614376565b90915550505b806130ea81614518565b91505061309d565b505060a6805460ff1916600117905550565b335f90815260a56020526040812054908190036131635760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a70565b335f90815260a5602052604081205561317c8282613c3d565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a826040516131b791815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b03161580159061134e5750505f90815260a46020526040902060030154610100900460ff161590565b61321561333d565b5f8111801561322657506098548114155b6132725760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a70565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c76565b6132b861333d565b6001600160a01b0381166133345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a70565b612b35816136f1565b6033546001600160a01b03163314611f655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a70565b5f805f6133a48585613d7b565b812090969095509350505050565b60655460ff1615611f655760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a70565b805f03613410575050565b8082035f5b828110156134bc5761010081840381111561342f57508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b158015613492575f80fd5b505af11580156134a4573d5f803e3d5ffd5b50505050610100830192505061010081019050613415565b50505050565b60405183515f918291602087019190819084906134e0908590613de3565b90506002840193505f5b8181101561356457603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f61353a603c8361454f565b6135449087614376565b90505f61355582603a015160f01c90565b979097019650506001016134ea565b506020850282016040525b801561362d575f61358485603a015160f01c90565b905061359283828b8b613e78565b92505f6135a3866038015160f01c90565b9050818110156135f55760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a70565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161356f565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613661828651613de3565b90505f5b613670600183614389565b81101561368657603c9390930192600101613665565b505f613693845160c01c90565b9695505050505050565b60605f808080806136b0888a018a614653565b95509550955095509550508187106136ce5794506136ea9350505050565b8387106136e25782955050505050506136ea565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166137d65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65613f46565b5f54610100900460ff1661385a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65613fce565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af11580156138e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061390a9190614447565b5f86815260a46020526040902060010154909150613929908290614376565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a590915281208054909190613968908490614376565b909155505060405161397b9084906146f0565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613a0b5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a70565b5f613a1a846001015160c01c90565b90505f613a28856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613a57876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a848613b19885160f81c90565b858888866040518663ffffffff1660e01b8152600401613b3d95949392919061471c565b5f6040518083038186803b158015613b53575f80fd5b505afa158015613b65573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613b95908461454f565b613b9f919061474d565b9050613bab8183614389565b60aa5f828254613bbb9190614376565b90915550506001600160a01b0384165f90815260a5602052604081208054839290613be7908490614376565b9091555050604051613bfa9084906146f0565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613ce4575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613c8c576040519150601f19603f3d011682016040523d82523d5f602084013e613c91565b606091505b5050905080613ce25760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a70565b505b5050565b613cf06133b2565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613d253390565b6040516001600160a01b03909116815260200160405180910390a1565b613d4a614053565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613d25565b5f8160f98114613dcd5760405162461bcd60e51b815260206004820152601f60248201527f626174636820686561646572206c656e677468206d75737420626520323439006044820152606401610a70565b6040519150808483378082016040529250929050565b5f613def835160f01c90565b9050805f03613e2a576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e35603c8261454f565b613e40906002614376565b821461134e576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03613e87575083613f3e565b609b546001600160a01b03165f5b85811015613f38576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613efb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f1f9190614447565b8852506020909601956001948501949384019301613e95565b50859150505b949350505050565b5f54610100900460ff16613fc25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b6065805460ff19169055565b5f54610100900460ff1661404a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65336136f1565b60655460ff16611f655760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a70565b5f602082840312156140b5575f80fd5b5035919050565b80356001600160a01b03811681146140d2575f80fd5b919050565b5f602082840312156140e7575f80fd5b6136ea826140bc565b5f8083601f840112614100575f80fd5b50813567ffffffffffffffff811115614117575f80fd5b60208301915083602082850101111561412e575f80fd5b9250929050565b5f805f60408486031215614147575f80fd5b833567ffffffffffffffff81111561415d575f80fd5b614169868287016140f0565b909790965060209590950135949350505050565b5f806020838503121561418e575f80fd5b823567ffffffffffffffff8111156141a4575f80fd5b6141b0858286016140f0565b90969095509350505050565b5f80604083850312156141cd575f80fd5b823567ffffffffffffffff808211156141e4575f80fd5b9084019060c082870312156141f7575f80fd5b9092506020840135908082111561420c575f80fd5b5083016060818603121561421e575f80fd5b809150509250929050565b5f805f805f8060c0878903121561423e575f80fd5b614247876140bc565b9550614255602088016140bc565b9450614263604088016140bc565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614297575f80fd5b843567ffffffffffffffff808211156142ae575f80fd5b6142ba888389016140f0565b909650945060208701359150808211156142d2575f80fd5b506142df878288016140f0565b95989497509550505050565b8015158114612b35575f80fd5b5f60208284031215614308575f80fd5b81356136ea816142eb565b5f8060408385031215614324575f80fd5b823567ffffffffffffffff8116811461433b575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561134e5761134e614349565b8181038181111561134e5761134e614349565b5f602082840312156143ac575f80fd5b81516136ea816142eb565b5f602082840312156143c7575f80fd5b813560ff811681146136ea575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261440a575f80fd5b83018035915067ffffffffffffffff821115614424575f80fd5b60200191503681900382131561412e575f80fd5b818382375f9101908152919050565b5f60208284031215614457575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156144ef5784516001600160a01b0316835293830193918301916001016144ca565b5050876040860152848103606086015261450a81878961445e565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361454857614548614349565b5060010190565b808202811582820484141761134e5761134e614349565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145a2575f80fd5b8135602067ffffffffffffffff808311156145bf576145bf614566565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110848211171561460257614602614566565b6040529384526020818701810194908101925087851115614621575f80fd5b6020870191505b8482101561464857614639826140bc565b83529183019190830190614628565b979650505050505050565b5f805f805f8060c08789031215614668575f80fd5b86359550602087013567ffffffffffffffff80821115614686575f80fd5b6146928a838b01614593565b96506040890135955060608901359150808211156146ae575f80fd5b6146ba8a838b01614593565b94506080890135935060a08901359150808211156146d6575f80fd5b506146e389828a01614593565b9150509295509295509295565b5f82515f5b8181101561470f57602081860181015185830152016146f5565b505f920191825250919050565b858152846020820152608060408201525f61473b60808301858761445e565b90508260608301529695505050505050565b5f82614780577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a diff --git a/bindings/bindings/rollup.go b/bindings/bindings/rollup.go index 41e21beda..683595a89 100644 --- a/bindings/bindings/rollup.go +++ b/bindings/bindings/rollup.go @@ -48,8 +48,8 @@ type IRollupBatchSignatureInput struct { // RollupMetaData contains all meta data concerning the Rollup contract. var RollupMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIncorrectBatchLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNoBlockInBatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blockContexts\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60a060405234801562000010575f80fd5b50604051620046b1380380620046b183398101604081905262000033916200010f565b6001600160401b0381166080526200004a62000051565b506200013e565b5f54610100900460ff1615620000bd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200010d575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000120575f80fd5b81516001600160401b038116811462000137575f80fd5b9392505050565b6080516145536200015e5f395f81816105e101526137ee01526145535ff3fe6080604052600436106102fb575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610987578063f2fde38b146109a6578063fb1e8b04146109c5575f80fd5b8063ddd8a3dc14610934578063de8b303514610953578063dff7827e14610972575f80fd5b8063cd4edc69116100b7578063cd4edc69146108ed578063ce5db8d614610900578063d279c19114610915575f80fd5b8063b35dac4e14610890578063b3e0a509146108af578063bedb86fb146108ce575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d14610831578063b31a77d31461085c578063b348442514610871575f80fd5b8063a415d8dc146107cf578063a479265d146107fd578063a4f209b014610812575f80fd5b80638f1d37761161016c5780638f1d3776146106cf578063910129d41461077f57806397fc007c146107b0575f80fd5b8063728cdbca1461067a57806388b1ea09146106995780638da5cb5b146106b2575f80fd5b80632571098d116102515780635c975abb116101fc57806368589dfa116101d757806368589dfa1461061c5780636c578c1d14610647578063715018a614610666575f80fd5b80635c975abb146105595780635ef7a94a146105705780635f77cf1d146105d0575f80fd5b80633e001b661161022c5780633e001b66146105125780634a8d544f1461052757806357e0af6c1461053a575f80fd5b80632571098d146104915780632b7ac3f3146104bc5780633b70c18a146104f3575f80fd5b8063121dcd50116102b157806318af3b2b1161028c57806318af3b2b1461041757806321e2f9e0146104475780632362f03e14610466575f80fd5b8063121dcd50146103ce57806313361101146103e357806318463fb014610402575f80fd5b80630ceb6780116102e15780630ceb67801461036c57806310d445831461038d578063116a1f42146103ac575f80fd5b806304d7721514610306578063059def6114610349575f80fd5b3661030257005b5f80fd5b348015610311575f80fd5b50610334610320366004613e66565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610354575f80fd5b5061035e609d5481565b604051908152602001610340565b348015610377575f80fd5b5061038b610386366004613e98565b6109da565b005b348015610398575f80fd5b5061038b6103a7366004613ef6565b610aac565b3480156103b7575f80fd5b506103346103c6366004613e66565b609d54101590565b3480156103d9575f80fd5b5061035e609e5481565b3480156103ee575f80fd5b5061038b6103fd366004613f3e565b610e05565b34801561040d575f80fd5b5061035e60a75481565b348015610422575f80fd5b50610334610431366004613e66565b5f90815260a26020526040902060010154421090565b348015610452575f80fd5b50610334610461366004613e66565b6112fc565b348015610471575f80fd5b5061035e610480366004613e66565b60a16020525f908152604090205481565b34801561049c575f80fd5b5061035e6104ab366004613e66565b60a06020525f908152604090205481565b3480156104c7575f80fd5b50609c546104db906001600160a01b031681565b6040516001600160a01b039091168152602001610340565b3480156104fe575f80fd5b50609b546104db906001600160a01b031681565b34801561051d575f80fd5b5061035e60aa5481565b61038b610535366004613f7d565b61132a565b348015610545575f80fd5b5061038b610554366004613e66565b611bad565b348015610564575f80fd5b5060655460ff16610334565b34801561057b575f80fd5b506105b061058a366004613e66565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610340565b3480156105db575f80fd5b506106037f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610340565b348015610627575f80fd5b5061035e610636366004613e66565b60ab6020525f908152604090205481565b348015610652575f80fd5b5061038b610661366004613e98565b611c58565b348015610671575f80fd5b5061038b611d15565b348015610685575f80fd5b5061038b610694366004613fea565b611d28565b3480156106a4575f80fd5b5060a6546103349060ff1681565b3480156106bd575f80fd5b506033546001600160a01b03166104db565b3480156106da575f80fd5b5061073b6106e9366004613e66565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c001610340565b34801561078a575f80fd5b50610334610799366004613e66565b5f90815260a4602052604090206003015460ff1690565b3480156107bb575f80fd5b5061038b6107ca366004613e98565b61206b565b3480156107da575f80fd5b506103346107e9366004613e98565b609f6020525f908152604090205460ff1681565b348015610808575f80fd5b5061035e60995481565b34801561081d575f80fd5b5061038b61082c366004613e66565b61214e565b34801561083c575f80fd5b5061035e61084b366004613e98565b60a56020525f908152604090205481565b348015610867575f80fd5b5061035e60a85481565b34801561087c575f80fd5b5061038b61088b366004614045565b6121fe565b34801561089b575f80fd5b5061038b6108aa366004613e98565b612443565b3480156108ba575f80fd5b5061038b6108c9366004613f3e565b61249c565b3480156108d9575f80fd5b5061038b6108e83660046140b9565b61279e565b61038b6108fb3660046140d4565b6128f9565b34801561090b575f80fd5b5061035e60985481565b348015610920575f80fd5b5061038b61092f366004613e98565b612ec5565b34801561093f575f80fd5b506097546104db906001600160a01b031681565b34801561095e575f80fd5b5061033461096d366004613e66565b612f84565b34801561097d575f80fd5b5061035e609a5481565b348015610992575f80fd5b5061038b6109a1366004613e66565b612fce565b3480156109b1575f80fd5b5061038b6109c0366004613e98565b613071565b3480156109d0575f80fd5b5061035e60a95481565b6109e26130fe565b6001600160a01b0381165f908152609f602052604090205460ff1615610a4f5760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ab46130fe565b5f8111610b035760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a46565b5f80610b0f8585613158565b915091505f610b22836001015160c01c90565b5f81815260a160205260409020549091508214610b815760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b5f60a181610b8f8785614137565b81526020019081526020015f205414610c0f5760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a46565b609d548111610c865760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b610c9160018261414a565b609e555b8315610dfd57604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610cdd81612f84565b15610d38575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d28908490614137565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610db5575060a85481145b15610dbf575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610c95575b505050505050565b60a85415610e555760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b610e5d613173565b5f80610e698484613158565b915091505f610e7c836001015160c01c90565b5f81815260a160205260409020549091508214610edb5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b610ee4816112fc565b610f305760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b610f3981612f84565b15610f865760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003015460ff1615610fe75760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a46565b5f81815260a260205260409020600101544210156110475760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a46565b605983015160a05f61105a60018561414a565b81526020019081526020015f2054146110b55760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f81815260a06020526040902054156111105760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a46565b80609d54600101146111645760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b609d819055600160a35f611179866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111c86111bb846011015160c01c90565b600985015160c01c6131c6565b60a25f6111d660018461414a565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061120f908461414a565b81526020019081526020015f205f905560a45f60018361122f919061414a565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d6112d8866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061132457505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ba919061415d565b6114065760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a46565b60a854156114565760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b61145e613173565b61146b6020830183614178565b60ff16156114bb5760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a46565b5f6114c96040840184614198565b915050806115195760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a46565b606083013561156a5760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a46565b60808301356115bb5760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a46565b5f806115d26115cd6020870187614198565b613158565b915091505f6115e5836001015160c01c90565b90505f60a1816115f6846001614137565b81526020019081526020015f2054146116515760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a46565b609e5481146116a25760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a46565b5f81815260a1602052604090205482146116fe5760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a46565b5f81815260ab602052604090205460608701351461175e5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a46565b5f61176d846011015160c01c90565b90505f80806117bf61178260408c018c614198565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792508891506132839050565b600196909601959485019493840193925090505f8049156117e1575f49611803565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f961182e8961182660208f018f614178565b60ff16613400565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a015261189d8961187e60208e018e614198565b60405161188c9291906141f9565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff161561190a5760a7545f90815260a4602052604090206002015460995442916118fd91614137565b611907919061414a565b90505b6040518060800160405280428152602001826098544261192a9190614137565b6119349190614137565b81526020016119858f806040019061194c9190614198565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061340792505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156119f9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1d9190614208565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590611a8590611a7f908f018f614198565b5f61345e565b5f8e8060400190611a969190614198565b6040518663ffffffff1660e01b8152600401611ab6959493929190614266565b602060405180830381865afa158015611ad1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611af5919061415d565b611b675760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a46565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611bb56130fe565b5f81118015611bc657506099548114155b611c125760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a46565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b611c606130fe565b6001600160a01b0381165f908152609f602052604090205460ff16611cc75760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a46565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610aa1565b611d1d6130fe565b611d265f6134b2565b565b5f54610100900460ff1615808015611d4657505f54600160ff909116105b80611d5f5750303b158015611d5f57505f5460ff166001145b611dd15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a46565b5f805460ff191660011790558015611e0f575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0386161580611e2c57506001600160a01b038516155b15611e63576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038716611eb95760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a46565b611ec161351b565b611ec961359f565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015612062575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6120736130fe565b6001600160a01b038116158015906120995750609c546001600160a01b03828116911614155b6120e55760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a46565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b6121566130fe565b5f81118015612166575060648111155b8015612174575060a9548114155b6121c05760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a46565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c4c565b60a8541561224e5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b612256613173565b5f806122628686613158565b915091505f612275836001015160c01c90565b5f81815260a1602052604090205490915082146122d45760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b6122dd81612f84565b6123295760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a46565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff19169055609954600290910154429161238291614137565b116123f8575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f757400000000000000000000000000000000000000000000000000918301919091526123f391839190613623565b612062565b61240383868661377f565b61206281336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613932565b61244b6130fe565b60aa80545f90915561245d82826139fe565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c4c565b6124a46130fe565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561251b5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a46565b5f806125278484613158565b915091505f61253a836001015160c01c90565b90505f612548846079015190565b9050806125975760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a46565b600984015160c01c156125ec5760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a46565b5f6125f8856019015190565b036126455760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a46565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014612671856039015190565b146126be5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a46565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b6127a66130fe565b80156128c7576127b4613aa9565b60a65460ff16156128865760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612808908490614137565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b6128cf613b03565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336128a9565b50565b335f908152609f602052604090205460ff166129575760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a46565b60a854156129a75760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a46565b6129af613173565b60a65460ff1615612a025760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a46565b8167ffffffffffffffff16609d5410612a5d5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a160205260409020548114612ac45760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a46565b612ad78267ffffffffffffffff166112fc565b612b235760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612b9e5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a46565b67ffffffffffffffff82165f90815260a260205260409020600101544210612c2e5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a46565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ca29190614208565b341015612cf15760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a46565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b997634604051612e4391815260200190565b60405180910390a35f609d546001612e5b9190614137565b90505b609e548111612eb3578267ffffffffffffffff168114612ea1576099545f82815260a2602052604081206001018054909190612e9b908490614137565b90915550505b80612eab816142d9565b915050612e5e565b505060a6805460ff1916600117905550565b335f90815260a5602052604081205490819003612f245760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a46565b335f90815260a56020526040812055612f3d82826139fe565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a82604051612f7891815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b0316158015906113245750505f90815260a46020526040902060030154610100900460ff161590565b612fd66130fe565b5f81118015612fe757506098548114155b6130335760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a46565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c4c565b6130796130fe565b6001600160a01b0381166130f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a46565b6128f6816134b2565b6033546001600160a01b03163314611d265760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a46565b5f805f6131658585613b3c565b812090969095509350505050565b60655460ff1615611d265760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a46565b805f036131d1575050565b8082035f5b8281101561327d576101008184038111156131f057508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b158015613253575f80fd5b505af1158015613265573d5f803e3d5ffd5b505050506101008301925050610100810190506131d6565b50505050565b60405183515f918291602087019190819084906132a1908590613ba4565b90506002840193505f5b8181101561332557603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f6132fb603c83614310565b6133059087614137565b90505f61331682603a015160f01c90565b979097019650506001016132ab565b506020850282016040525b80156133ee575f61334585603a015160f01c90565b905061335383828b8b613c39565b92505f613364866038015160f01c90565b9050818110156133b65760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a46565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613330565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613422828651613ba4565b90505f5b61343160018361414a565b81101561344757603c9390930192600101613426565b505f613454845160c01c90565b9695505050505050565b60605f80808080613471888a018a614414565b955095509550955095505081871061348f5794506134ab9350505050565b8387106134a35782955050505050506134ab565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166135975760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b611d26613d07565b5f54610100900460ff1661361b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b611d26613d8f565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af11580156136a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136cb9190614208565b5f86815260a460205260409020600101549091506136ea908290614137565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a590915281208054909190613729908490614137565b909155505060405161373c9084906144b1565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b806137cc5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a46565b5f6137db846001015160c01c90565b90505f6137e9856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613818876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a8486138da885160f81c90565b858888866040518663ffffffff1660e01b81526004016138fe9594939291906144dd565b5f6040518083038186803b158015613914575f80fd5b505afa158015613926573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906139569084614310565b613960919061450e565b905061396c818361414a565b60aa5f82825461397c9190614137565b90915550506001600160a01b0384165f90815260a56020526040812080548392906139a8908490614137565b90915550506040516139bb9084906144b1565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613aa5575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613a4d576040519150601f19603f3d011682016040523d82523d5f602084013e613a52565b606091505b5050905080613aa35760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a46565b505b5050565b613ab1613173565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613ae63390565b6040516001600160a01b03909116815260200160405180910390a1565b613b0b613e14565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613ae6565b5f8160f98114613b8e5760405162461bcd60e51b815260206004820152601f60248201527f626174636820686561646572206c656e677468206d75737420626520323439006044820152606401610a46565b6040519150808483378082016040529250929050565b5f613bb0835160f01c90565b9050805f03613beb576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613bf6603c82614310565b613c01906002614137565b8214611324576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03613c48575083613cff565b609b546001600160a01b03165f5b85811015613cf9576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613cbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ce09190614208565b8852506020909601956001948501949384019301613c56565b50859150505b949350505050565b5f54610100900460ff16613d835760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b6065805460ff19169055565b5f54610100900460ff16613e0b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a46565b611d26336134b2565b60655460ff16611d265760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a46565b5f60208284031215613e76575f80fd5b5035919050565b80356001600160a01b0381168114613e93575f80fd5b919050565b5f60208284031215613ea8575f80fd5b6134ab82613e7d565b5f8083601f840112613ec1575f80fd5b50813567ffffffffffffffff811115613ed8575f80fd5b602083019150836020828501011115613eef575f80fd5b9250929050565b5f805f60408486031215613f08575f80fd5b833567ffffffffffffffff811115613f1e575f80fd5b613f2a86828701613eb1565b909790965060209590950135949350505050565b5f8060208385031215613f4f575f80fd5b823567ffffffffffffffff811115613f65575f80fd5b613f7185828601613eb1565b90969095509350505050565b5f8060408385031215613f8e575f80fd5b823567ffffffffffffffff80821115613fa5575f80fd5b9084019060c08287031215613fb8575f80fd5b90925060208401359080821115613fcd575f80fd5b50830160608186031215613fdf575f80fd5b809150509250929050565b5f805f805f8060c08789031215613fff575f80fd5b61400887613e7d565b955061401660208801613e7d565b945061402460408801613e7d565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614058575f80fd5b843567ffffffffffffffff8082111561406f575f80fd5b61407b88838901613eb1565b90965094506020870135915080821115614093575f80fd5b506140a087828801613eb1565b95989497509550505050565b80151581146128f6575f80fd5b5f602082840312156140c9575f80fd5b81356134ab816140ac565b5f80604083850312156140e5575f80fd5b823567ffffffffffffffff811681146140fc575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156113245761132461410a565b818103818111156113245761132461410a565b5f6020828403121561416d575f80fd5b81516134ab816140ac565b5f60208284031215614188575f80fd5b813560ff811681146134ab575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126141cb575f80fd5b83018035915067ffffffffffffffff8211156141e5575f80fd5b602001915036819003821315613eef575f80fd5b818382375f9101908152919050565b5f60208284031215614218575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156142b05784516001600160a01b03168352938301939183019160010161428b565b505087604086015284810360608601526142cb81878961421f565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036143095761430961410a565b5060010190565b80820281158282048414176113245761132461410a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112614363575f80fd5b8135602067ffffffffffffffff8083111561438057614380614327565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156143c3576143c3614327565b60405293845260208187018101949081019250878511156143e2575f80fd5b6020870191505b84821015614409576143fa82613e7d565b835291830191908301906143e9565b979650505050505050565b5f805f805f8060c08789031215614429575f80fd5b86359550602087013567ffffffffffffffff80821115614447575f80fd5b6144538a838b01614354565b965060408901359550606089013591508082111561446f575f80fd5b61447b8a838b01614354565b94506080890135935060a0890135915080821115614497575f80fd5b506144a489828a01614354565b9150509295509295509295565b5f82515f5b818110156144d057602081860181015185830152016144b6565b505f920191825250919050565b858152846020820152608060408201525f6144fc60808301858761421f565b90508260608301529695505050505050565b5f82614541577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIncorrectBatchLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNoBlockInBatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blockContexts\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_prevStateRoot\",\"type\":\"bytes32\"}],\"name\":\"initialize2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x60a060405234801562000010575f80fd5b50604051620048f0380380620048f083398101604081905262000033916200010f565b6001600160401b0381166080526200004a62000051565b506200013e565b5f54610100900460ff1615620000bd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200010d575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000120575f80fd5b81516001600160401b038116811462000137575f80fd5b9392505050565b6080516147926200015e5f395f81816105ec0152613a2d01526147925ff3fe608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109b1578063f2fde38b146109d0578063fb1e8b04146109ef575f80fd5b8063ddd8a3dc1461095e578063de8b30351461097d578063dff7827e1461099c575f80fd5b8063cd4edc69116100b7578063cd4edc6914610917578063ce5db8d61461092a578063d279c1911461093f575f80fd5b8063b35dac4e146108ba578063b3e0a509146108d9578063bedb86fb146108f8575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d1461085b578063b31a77d314610886578063b34844251461089b575f80fd5b8063a415d8dc146107f9578063a479265d14610827578063a4f209b01461083c575f80fd5b80638f1d37761161016c5780638f1d3776146106f9578063910129d4146107a957806397fc007c146107da575f80fd5b8063728cdbca146106a457806388b1ea09146106c35780638da5cb5b146106dc575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa146106465780636c578c1d14610671578063715018a614610690575f80fd5b80635ef7a94a1461057b5780635f77cf1d146105db5780636126729014610627575f80fd5b80634a8d544f1161022c5780634a8d544f1461053257806357e0af6c146105455780635c975abb14610564575f80fd5b80632b7ac3f3146104c75780633b70c18a146104fe5780633e001b661461051d575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b3660046140a5565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b506103966103913660046140d7565b610a04565b005b3480156103a3575f80fd5b506103966103b2366004614135565b610ad6565b3480156103c2575f80fd5b5061033f6103d13660046140a5565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b5061039661040836600461417d565b610e2f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c3660046140a5565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c3660046140a5565b611326565b34801561047c575f80fd5b5061036961048b3660046140a5565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b63660046140a5565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104e6906001600160a01b031681565b6040516001600160a01b03909116815260200161034b565b348015610509575f80fd5b50609b546104e6906001600160a01b031681565b348015610528575f80fd5b5061036960aa5481565b6103966105403660046141bc565b611354565b348015610550575f80fd5b5061039661055f3660046140a5565b611bd7565b34801561056f575f80fd5b5060655460ff1661033f565b348015610586575f80fd5b506105bb6105953660046140a5565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b3480156105e6575f80fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610632575f80fd5b506103966106413660046140a5565b611c82565b348015610651575f80fd5b506103696106603660046140a5565b60ab6020525f908152604090205481565b34801561067c575f80fd5b5061039661068b3660046140d7565b611e97565b34801561069b575f80fd5b50610396611f54565b3480156106af575f80fd5b506103966106be366004614229565b611f67565b3480156106ce575f80fd5b5060a65461033f9060ff1681565b3480156106e7575f80fd5b506033546001600160a01b03166104e6565b348015610704575f80fd5b506107656107133660046140a5565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b3480156107b4575f80fd5b5061033f6107c33660046140a5565b5f90815260a4602052604090206003015460ff1690565b3480156107e5575f80fd5b506103966107f43660046140d7565b6122aa565b348015610804575f80fd5b5061033f6108133660046140d7565b609f6020525f908152604090205460ff1681565b348015610832575f80fd5b5061036960995481565b348015610847575f80fd5b506103966108563660046140a5565b61238d565b348015610866575f80fd5b506103696108753660046140d7565b60a56020525f908152604090205481565b348015610891575f80fd5b5061036960a85481565b3480156108a6575f80fd5b506103966108b5366004614284565b61243d565b3480156108c5575f80fd5b506103966108d43660046140d7565b612682565b3480156108e4575f80fd5b506103966108f336600461417d565b6126db565b348015610903575f80fd5b506103966109123660046142f8565b6129dd565b610396610925366004614313565b612b38565b348015610935575f80fd5b5061036960985481565b34801561094a575f80fd5b506103966109593660046140d7565b613104565b348015610969575f80fd5b506097546104e6906001600160a01b031681565b348015610988575f80fd5b5061033f6109973660046140a5565b6131c3565b3480156109a7575f80fd5b50610369609a5481565b3480156109bc575f80fd5b506103966109cb3660046140a5565b61320d565b3480156109db575f80fd5b506103966109ea3660046140d7565b6132b0565b3480156109fa575f80fd5b5061036960a95481565b610a0c61333d565b6001600160a01b0381165f908152609f602052604090205460ff1615610a795760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ade61333d565b5f8111610b2d5760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a70565b5f80610b398585613397565b915091505f610b4c836001015160c01c90565b5f81815260a160205260409020549091508214610bab5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b5f60a181610bb98785614376565b81526020019081526020015f205414610c395760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a70565b609d548111610cb05760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b610cbb600182614389565b609e555b8315610e2757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610d07816131c3565b15610d62575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d52908490614376565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ddf575060a85481145b15610de9575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610cbf575b505050505050565b60a85415610e7f5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b610e876133b2565b5f80610e938484613397565b915091505f610ea6836001015160c01c90565b5f81815260a160205260409020549091508214610f055760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b610f0e81611326565b610f5a5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b610f63816131c3565b15610fb05760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003015460ff16156110115760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a70565b5f81815260a260205260409020600101544210156110715760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a70565b605983015160a05f611084600185614389565b81526020019081526020015f2054146110df5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f81815260a060205260409020541561113a5760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a70565b80609d546001011461118e5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b609d819055600160a35f6111a3866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111f26111e5846011015160c01c90565b600985015160c01c613405565b60a25f611200600184614389565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906112399084614389565b81526020019081526020015f205f905560a45f6001836112599190614389565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611302866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061134e57505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156113c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e4919061439c565b6114305760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a70565b60a854156114805760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b6114886133b2565b61149560208301836143b7565b60ff16156114e55760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a70565b5f6114f360408401846143d7565b915050806115435760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a70565b60608301356115945760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a70565b60808301356115e55760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a70565b5f806115fc6115f760208701876143d7565b613397565b915091505f61160f836001015160c01c90565b90505f60a181611620846001614376565b81526020019081526020015f20541461167b5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a70565b609e5481146116cc5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b5f81815260a1602052604090205482146117285760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a70565b5f81815260ab60205260409020546060870135146117885760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f611797846011015160c01c90565b90505f80806117e96117ac60408c018c6143d7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792508891506134c29050565b600196909601959485019493840193925090505f80491561180b575f4961182d565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f96118588961185060208f018f6143b7565b60ff1661363f565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a01526118c7896118a860208e018e6143d7565b6040516118b6929190614438565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff16156119345760a7545f90815260a46020526040902060020154609954429161192791614376565b6119319190614389565b90505b604051806080016040528042815260200182609854426119549190614376565b61195e9190614376565b81526020016119af8f806040019061197691906143d7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061364692505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a479190614447565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590611aaf90611aa9908f018f6143d7565b5f61369d565b5f8e8060400190611ac091906143d7565b6040518663ffffffff1660e01b8152600401611ae09594939291906144a5565b602060405180830381865afa158015611afb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1f919061439c565b611b915760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611bdf61333d565b5f81118015611bf057506099548114155b611c3c5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a70565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff16158015611ca257505f5460ff8083169116105b611d145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611d4f5f5460ff1690565b60ff16600214611da15760405162461bcd60e51b815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610a70565b81611e145760405162461bcd60e51b815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610a70565b609e545f90815260ab6020526040902054611e3d57609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611c76565b611e9f61333d565b6001600160a01b0381165f908152609f602052604090205460ff16611f065760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a70565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610acb565b611f5c61333d565b611f655f6136f1565b565b5f54610100900460ff1615808015611f8557505f54600160ff909116105b80611f9e5750303b158015611f9e57505f5460ff166001145b6120105760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f805460ff19166001179055801561204e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038616158061206b57506001600160a01b038516155b156120a2576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166120f85760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a70565b61210061375a565b6121086137de565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156122a1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6122b261333d565b6001600160a01b038116158015906122d85750609c546001600160a01b03828116911614155b6123245760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a70565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b61239561333d565b5f811180156123a5575060648111155b80156123b3575060a9548114155b6123ff5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a70565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c76565b60a8541561248d5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b6124956133b2565b5f806124a18686613397565b915091505f6124b4836001015160c01c90565b5f81815260a1602052604090205490915082146125135760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b61251c816131c3565b6125685760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff1916905560995460029091015442916125c191614376565b11612637575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f7574000000000000000000000000000000000000000000000000009183019190915261263291839190613862565b6122a1565b6126428386866139be565b6122a181336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613b71565b61268a61333d565b60aa80545f90915561269c8282613c3d565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c76565b6126e361333d565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561275a5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a70565b5f806127668484613397565b915091505f612779836001015160c01c90565b90505f612787846079015190565b9050806127d65760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a70565b600984015160c01c1561282b5760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a70565b5f612837856019015190565b036128845760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a70565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440146128b0856039015190565b146128fd5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a70565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b6129e561333d565b8015612b06576129f3613ce8565b60a65460ff1615612ac55760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612a47908490614376565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b612b0e613d42565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612ae8565b50565b335f908152609f602052604090205460ff16612b965760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a70565b60a85415612be65760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612bee6133b2565b60a65460ff1615612c415760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a70565b8167ffffffffffffffff16609d5410612c9c5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a160205260409020548114612d035760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b612d168267ffffffffffffffff16611326565b612d625760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612ddd5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a260205260409020600101544210612e6d5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a70565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ebd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ee19190614447565b341015612f305760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b99763460405161308291815260200190565b60405180910390a35f609d54600161309a9190614376565b90505b609e5481116130f2578267ffffffffffffffff1681146130e0576099545f82815260a26020526040812060010180549091906130da908490614376565b90915550505b806130ea81614518565b91505061309d565b505060a6805460ff1916600117905550565b335f90815260a56020526040812054908190036131635760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a70565b335f90815260a5602052604081205561317c8282613c3d565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a826040516131b791815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b03161580159061134e5750505f90815260a46020526040902060030154610100900460ff161590565b61321561333d565b5f8111801561322657506098548114155b6132725760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a70565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c76565b6132b861333d565b6001600160a01b0381166133345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a70565b612b35816136f1565b6033546001600160a01b03163314611f655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a70565b5f805f6133a48585613d7b565b812090969095509350505050565b60655460ff1615611f655760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a70565b805f03613410575050565b8082035f5b828110156134bc5761010081840381111561342f57508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b158015613492575f80fd5b505af11580156134a4573d5f803e3d5ffd5b50505050610100830192505061010081019050613415565b50505050565b60405183515f918291602087019190819084906134e0908590613de3565b90506002840193505f5b8181101561356457603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f61353a603c8361454f565b6135449087614376565b90505f61355582603a015160f01c90565b979097019650506001016134ea565b506020850282016040525b801561362d575f61358485603a015160f01c90565b905061359283828b8b613e78565b92505f6135a3866038015160f01c90565b9050818110156135f55760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a70565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161356f565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613661828651613de3565b90505f5b613670600183614389565b81101561368657603c9390930192600101613665565b505f613693845160c01c90565b9695505050505050565b60605f808080806136b0888a018a614653565b95509550955095509550508187106136ce5794506136ea9350505050565b8387106136e25782955050505050506136ea565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166137d65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65613f46565b5f54610100900460ff1661385a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65613fce565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af11580156138e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061390a9190614447565b5f86815260a46020526040902060010154909150613929908290614376565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a590915281208054909190613968908490614376565b909155505060405161397b9084906146f0565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613a0b5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a70565b5f613a1a846001015160c01c90565b90505f613a28856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613a57876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a848613b19885160f81c90565b858888866040518663ffffffff1660e01b8152600401613b3d95949392919061471c565b5f6040518083038186803b158015613b53575f80fd5b505afa158015613b65573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613b95908461454f565b613b9f919061474d565b9050613bab8183614389565b60aa5f828254613bbb9190614376565b90915550506001600160a01b0384165f90815260a5602052604081208054839290613be7908490614376565b9091555050604051613bfa9084906146f0565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613ce4575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613c8c576040519150601f19603f3d011682016040523d82523d5f602084013e613c91565b606091505b5050905080613ce25760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a70565b505b5050565b613cf06133b2565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613d253390565b6040516001600160a01b03909116815260200160405180910390a1565b613d4a614053565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613d25565b5f8160f98114613dcd5760405162461bcd60e51b815260206004820152601f60248201527f626174636820686561646572206c656e677468206d75737420626520323439006044820152606401610a70565b6040519150808483378082016040529250929050565b5f613def835160f01c90565b9050805f03613e2a576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e35603c8261454f565b613e40906002614376565b821461134e576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03613e87575083613f3e565b609b546001600160a01b03165f5b85811015613f38576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613efb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f1f9190614447565b8852506020909601956001948501949384019301613e95565b50859150505b949350505050565b5f54610100900460ff16613fc25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b6065805460ff19169055565b5f54610100900460ff1661404a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65336136f1565b60655460ff16611f655760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a70565b5f602082840312156140b5575f80fd5b5035919050565b80356001600160a01b03811681146140d2575f80fd5b919050565b5f602082840312156140e7575f80fd5b6136ea826140bc565b5f8083601f840112614100575f80fd5b50813567ffffffffffffffff811115614117575f80fd5b60208301915083602082850101111561412e575f80fd5b9250929050565b5f805f60408486031215614147575f80fd5b833567ffffffffffffffff81111561415d575f80fd5b614169868287016140f0565b909790965060209590950135949350505050565b5f806020838503121561418e575f80fd5b823567ffffffffffffffff8111156141a4575f80fd5b6141b0858286016140f0565b90969095509350505050565b5f80604083850312156141cd575f80fd5b823567ffffffffffffffff808211156141e4575f80fd5b9084019060c082870312156141f7575f80fd5b9092506020840135908082111561420c575f80fd5b5083016060818603121561421e575f80fd5b809150509250929050565b5f805f805f8060c0878903121561423e575f80fd5b614247876140bc565b9550614255602088016140bc565b9450614263604088016140bc565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614297575f80fd5b843567ffffffffffffffff808211156142ae575f80fd5b6142ba888389016140f0565b909650945060208701359150808211156142d2575f80fd5b506142df878288016140f0565b95989497509550505050565b8015158114612b35575f80fd5b5f60208284031215614308575f80fd5b81356136ea816142eb565b5f8060408385031215614324575f80fd5b823567ffffffffffffffff8116811461433b575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561134e5761134e614349565b8181038181111561134e5761134e614349565b5f602082840312156143ac575f80fd5b81516136ea816142eb565b5f602082840312156143c7575f80fd5b813560ff811681146136ea575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261440a575f80fd5b83018035915067ffffffffffffffff821115614424575f80fd5b60200191503681900382131561412e575f80fd5b818382375f9101908152919050565b5f60208284031215614457575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156144ef5784516001600160a01b0316835293830193918301916001016144ca565b5050876040860152848103606086015261450a81878961445e565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361454857614548614349565b5060010190565b808202811582820484141761134e5761134e614349565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145a2575f80fd5b8135602067ffffffffffffffff808311156145bf576145bf614566565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110848211171561460257614602614566565b6040529384526020818701810194908101925087851115614621575f80fd5b6020870191505b8482101561464857614639826140bc565b83529183019190830190614628565b979650505050505050565b5f805f805f8060c08789031215614668575f80fd5b86359550602087013567ffffffffffffffff80821115614686575f80fd5b6146928a838b01614593565b96506040890135955060608901359150808211156146ae575f80fd5b6146ba8a838b01614593565b94506080890135935060a08901359150808211156146d6575f80fd5b506146e389828a01614593565b9150509295509295509295565b5f82515f5b8181101561470f57602081860181015185830152016146f5565b505f920191825250919050565b858152846020820152608060408201525f61473b60808301858761445e565b90508260608301529695505050505050565b5f82614780577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a", } // RollupABI is the input ABI used to generate the binding from. @@ -1344,6 +1344,27 @@ func (_Rollup *RollupTransactorSession) Initialize(_l1StakingContract common.Add return _Rollup.Contract.Initialize(&_Rollup.TransactOpts, _l1StakingContract, _messageQueue, _verifier, _finalizationPeriodSeconds, _proofWindow, _proofRewardPercent) } +// Initialize2 is a paid mutator transaction binding the contract method 0x61267290. +// +// Solidity: function initialize2(bytes32 _prevStateRoot) returns() +func (_Rollup *RollupTransactor) Initialize2(opts *bind.TransactOpts, _prevStateRoot [32]byte) (*types.Transaction, error) { + return _Rollup.contract.Transact(opts, "initialize2", _prevStateRoot) +} + +// Initialize2 is a paid mutator transaction binding the contract method 0x61267290. +// +// Solidity: function initialize2(bytes32 _prevStateRoot) returns() +func (_Rollup *RollupSession) Initialize2(_prevStateRoot [32]byte) (*types.Transaction, error) { + return _Rollup.Contract.Initialize2(&_Rollup.TransactOpts, _prevStateRoot) +} + +// Initialize2 is a paid mutator transaction binding the contract method 0x61267290. +// +// Solidity: function initialize2(bytes32 _prevStateRoot) returns() +func (_Rollup *RollupTransactorSession) Initialize2(_prevStateRoot [32]byte) (*types.Transaction, error) { + return _Rollup.Contract.Initialize2(&_Rollup.TransactOpts, _prevStateRoot) +} + // ProveState is a paid mutator transaction binding the contract method 0xb3484425. // // Solidity: function proveState(bytes _batchHeader, bytes _batchProof) returns() diff --git a/bindings/bindings/rollup_more.go b/bindings/bindings/rollup_more.go index df9c64775..3543f43d6 100644 --- a/bindings/bindings/rollup_more.go +++ b/bindings/bindings/rollup_more.go @@ -13,7 +13,7 @@ const RollupStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"co var RollupStorageLayout = new(solc.StorageLayout) -var RollupDeployedBin = "0x6080604052600436106102fb575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109e2578063f2fde38b14610a01578063fb1e8b0414610a20575f80fd5b8063ddd8a3dc14610982578063de8b3035146109ae578063dff7827e146109cd575f80fd5b8063cd4edc69116100b7578063cd4edc691461093b578063ce5db8d61461094e578063d279c19114610963575f80fd5b8063b35dac4e146108de578063b3e0a509146108fd578063bedb86fb1461091c575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d1461087f578063b31a77d3146108aa578063b3484425146108bf575f80fd5b8063a415d8dc1461081d578063a479265d1461084b578063a4f209b014610860575f80fd5b80638f1d37761161016c5780638f1d377614610703578063910129d4146107cd57806397fc007c146107fe575f80fd5b8063728cdbca146106a157806388b1ea09146106c05780638da5cb5b146106d9575f80fd5b80632571098d116102515780635c975abb116101fc57806368589dfa116101d757806368589dfa146106435780636c578c1d1461066e578063715018a61461068d575f80fd5b80635c975abb146105805780635ef7a94a146105975780635f77cf1d146105f7575f80fd5b80633e001b661161022c5780633e001b66146105395780634a8d544f1461054e57806357e0af6c14610561575f80fd5b80632571098d146104915780632b7ac3f3146104bc5780633b70c18a1461050d575f80fd5b8063121dcd50116102b157806318af3b2b1161028c57806318af3b2b1461041757806321e2f9e0146104475780632362f03e14610466575f80fd5b8063121dcd50146103ce57806313361101146103e357806318463fb014610402575f80fd5b80630ceb6780116102e15780630ceb67801461036c57806310d445831461038d578063116a1f42146103ac575f80fd5b806304d7721514610306578063059def6114610349575f80fd5b3661030257005b5f80fd5b348015610311575f80fd5b5061033461032036600461488a565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610354575f80fd5b5061035e609d5481565b604051908152602001610340565b348015610377575f80fd5b5061038b6103863660046148c9565b610a35565b005b348015610398575f80fd5b5061038b6103a7366004614927565b610b59565b3480156103b7575f80fd5b506103346103c636600461488a565b609d54101590565b3480156103d9575f80fd5b5061035e609e5481565b3480156103ee575f80fd5b5061038b6103fd36600461496f565b610f45565b34801561040d575f80fd5b5061035e60a75481565b348015610422575f80fd5b5061033461043136600461488a565b5f90815260a26020526040902060010154421090565b348015610452575f80fd5b5061033461046136600461488a565b611544565b348015610471575f80fd5b5061035e61048036600461488a565b60a16020525f908152604090205481565b34801561049c575f80fd5b5061035e6104ab36600461488a565b60a06020525f908152604090205481565b3480156104c7575f80fd5b50609c546104e89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610340565b348015610518575f80fd5b50609b546104e89073ffffffffffffffffffffffffffffffffffffffff1681565b348015610544575f80fd5b5061035e60aa5481565b61038b61055c3660046149ae565b611572565b34801561056c575f80fd5b5061038b61057b36600461488a565b611f54565b34801561058b575f80fd5b5060655460ff16610334565b3480156105a2575f80fd5b506105d76105b136600461488a565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610340565b348015610602575f80fd5b5061062a7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610340565b34801561064e575f80fd5b5061035e61065d36600461488a565b60ab6020525f908152604090205481565b348015610679575f80fd5b5061038b6106883660046148c9565b612019565b348015610698575f80fd5b5061038b612128565b3480156106ac575f80fd5b5061038b6106bb366004614a1b565b61213b565b3480156106cb575f80fd5b5060a6546103349060ff1681565b3480156106e4575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166104e8565b34801561070e575f80fd5b5061077c61071d36600461488a565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff8316936801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16929060ff8082169161010090041686565b6040805167ffffffffffffffff909716875273ffffffffffffffffffffffffffffffffffffffff909516602087015293850192909252606084015215156080830152151560a082015260c001610340565b3480156107d8575f80fd5b506103346107e736600461488a565b5f90815260a4602052604090206003015460ff1690565b348015610809575f80fd5b5061038b6108183660046148c9565b612504565b348015610828575f80fd5b506103346108373660046148c9565b609f6020525f908152604090205460ff1681565b348015610856575f80fd5b5061035e60995481565b34801561086b575f80fd5b5061038b61087a36600461488a565b612628565b34801561088a575f80fd5b5061035e6108993660046148c9565b60a56020525f908152604090205481565b3480156108b5575f80fd5b5061035e60a85481565b3480156108ca575f80fd5b5061038b6108d9366004614a76565b6126f2565b3480156108e9575f80fd5b5061038b6108f83660046148c9565b6129c1565b348015610908575f80fd5b5061038b61091736600461496f565b612a27565b348015610927575f80fd5b5061038b610936366004614aea565b612dab565b61038b610949366004614b05565b612f3e565b348015610959575f80fd5b5061035e60985481565b34801561096e575f80fd5b5061038b61097d3660046148c9565b613653565b34801561098d575f80fd5b506097546104e89073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109b9575f80fd5b506103346109c836600461488a565b613739565b3480156109d8575f80fd5b5061035e609a5481565b3480156109ed575f80fd5b5061038b6109fc36600461488a565b613790565b348015610a0c575f80fd5b5061038b610a1b3660046148c9565b61384d565b348015610a2b575f80fd5b5061035e60a95481565b610a3d613901565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1615610ad1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610b61613901565b5f8111610bca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610ac8565b5f80610bd68585613982565b915091505f610be9836001015160c01c90565b5f81815260a160205260409020549091508214610c62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b5f60a181610c708785614b68565b81526020019081526020015f205414610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610ac8565b609d548111610d9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610ac8565b610da6600182614b7b565b609e555b8315610f3d57604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610df281613739565b15610e78575f81815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091610e4a908490614b68565b909155505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ef5575060a85481145b15610eff575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610daa575b505050505050565b60a85415610faf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b610fb761399d565b5f80610fc38484613982565b915091505f610fd6836001015160c01c90565b5f81815260a16020526040902054909150821461104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b61105881611544565b6110be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610ac8565b6110c781613739565b1561112e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610ac8565b5f81815260a4602052604090206003015460ff16156111a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610ac8565b5f81815260a26020526040902060010154421015611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610ac8565b605983015160a05f611236600185614b7b565b81526020019081526020015f2054146112ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610ac8565b5f81815260a0602052604090205415611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610ac8565b80609d546001011461138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610ac8565b609d819055600160a35f6113a3866099015190565b815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905560798301515f82815260a06020526040902055611410611403846011015160c01c90565b600985015160c01c613a0a565b60a25f61141e600184614b7b565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906114579084614b7b565b81526020019081526020015f205f905560a45f6001836114779190614b7b565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611520866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061156c57505f82815260a1602052604090205415155b92915050565b60975473ffffffffffffffffffffffffffffffffffffffff166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa1580156115f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161c9190614b8e565b611682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610ac8565b60a854156116ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b6116f461399d565b6117016020830183614ba9565b60ff161561176b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610ac8565b5f6117796040840184614bc9565b915050806117e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610ac8565b606083013561184e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610ac8565b60808301356118b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610ac8565b5f806118d06118cb6020870187614bc9565b613982565b915091505f6118e3836001015160c01c90565b90505f60a1816118f4846001614b68565b81526020019081526020015f205414611969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610ac8565b609e5481146119d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610ac8565b5f81815260a160205260409020548214611a4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610ac8565b5f81815260ab6020526040902054606087013514611ac4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610ac8565b5f611ad3846011015160c01c90565b90505f8080611b25611ae860408c018c614bc9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150613ad49050565b600196909601959485019493840193925090505f804915611b47575f49611b69565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f9611b9489611b8c60208f018f614ba9565b60ff16613c6b565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a0152611c0389611be460208e018e614bc9565b604051611bf2929190614c2a565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff1615611c705760a7545f90815260a460205260409020600201546099544291611c6391614b68565b611c6d9190614b7b565b90505b60405180608001604052804281526020018260985442611c909190614b68565b611c9a9190614b68565b8152602001611ceb8f8060400190611cb29190614bc9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613c7292505050565b815260975460209091019073ffffffffffffffffffffffffffffffffffffffff1663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015611d79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d9d9190614c39565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e89905560975473ffffffffffffffffffffffffffffffffffffffff1692506374fe27b791508c3590611e1290611e0c908f018f614bc9565b5f613cc9565b5f8e8060400190611e239190614bc9565b6040518663ffffffff1660e01b8152600401611e43959493929190614c97565b602060405180830381865afa158015611e5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e829190614b8e565b611f0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610ac8565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611f5c613901565b5f81118015611f6d57506099548114155b611fd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610ac8565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b612021613901565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff166120af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610ac8565b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610b4e565b612130613901565b6121395f613d1d565b565b5f54610100900460ff161580801561215957505f54600160ff909116105b806121725750303b15801561217257505f5460ff166001145b6121fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ac8565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561225a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff86161580612291575073ffffffffffffffffffffffffffffffffffffffff8516155b156122c8576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8716612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610ac8565b61234d613d93565b612355613e31565b6097805473ffffffffffffffffffffffffffffffffffffffff808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156124fb575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b61250c613901565b73ffffffffffffffffffffffffffffffffffffffff81161580159061254c5750609c5473ffffffffffffffffffffffffffffffffffffffff828116911614155b6125b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610ac8565b609c805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b612630613901565b5f81118015612640575060648111155b801561264e575060a9548114155b6126b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610ac8565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910161200d565b60a8541561275c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b61276461399d565b5f806127708686613982565b915091505f612783836001015160c01c90565b5f81815260a1602052604090205490915082146127fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b61280581613739565b61286b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610ac8565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560995460029091015442916128e291614b68565b11612976575f81815260a460209081526040808320600390810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560a2835292819020909201548251808401909352600783527f54696d656f7574000000000000000000000000000000000000000000000000009183019190915261297191839190613ecf565b6124fb565b612981838686614052565b6124fb81336040518060400160405280600d81526020017f50726f6f6620737563636573730000000000000000000000000000000000000081525061422c565b6129c9613901565b60aa80545f9091556129db8282614312565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d87910161200d565b612a2f613901565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415612ac0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610ac8565b5f80612acc8484613982565b915091505f612adf836001015160c01c90565b90505f612aed846079015190565b905080612b56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610ac8565b600984015160c01c15612bc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610ac8565b5f612bd1856019015190565b03612c38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610ac8565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014612c64856039015190565b14612ccb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610ac8565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b612db3613901565b8015612f0c57612dc16143e4565b60a65460ff1615612ebe5760a7545f90815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091612e22908490614b68565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a150565b612f14614469565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612ee1565b50565b335f908152609f602052604090205460ff16612fb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610ac8565b60a85415613020576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610ac8565b61302861399d565b60a65460ff1615613095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610ac8565b8167ffffffffffffffff16609d541061310a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610ac8565b67ffffffffffffffff82165f90815260a16020526040902054811461318b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610ac8565b61319e8267ffffffffffffffff16611544565b613204576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610ac8565b67ffffffffffffffff82165f90815260a4602052604090205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16156132a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610ac8565b67ffffffffffffffff82165f90815260a260205260409020600101544210613350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610ac8565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133de9190614c39565b341015613447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610ac8565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a49095529690962094518554925173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009093169290921792909217905573ffffffffffffffffffffffffffffffffffffffff168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b9976346040516135b391815260200190565b60405180910390a35f609d5460016135cb9190614b68565b90505b609e548111613623578267ffffffffffffffff168114613611576099545f82815260a260205260408120600101805490919061360b908490614b68565b90915550505b8061361b81614d17565b9150506135ce565b505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b335f90815260a56020526040812054908190036136cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610ac8565b335f90815260a560205260408120556136e58282614312565b8173ffffffffffffffffffffffffffffffffffffffff167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a8260405161372d91815260200190565b60405180910390a25050565b5f81815260a4602052604081205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff161580159061156c5750505f90815260a46020526040902060030154610100900460ff161590565b613798613901565b5f811180156137a957506098548114155b61380f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610ac8565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910161200d565b613855613901565b73ffffffffffffffffffffffffffffffffffffffff81166138f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610ac8565b612f3b81613d1d565b60335473ffffffffffffffffffffffffffffffffffffffff163314612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ac8565b5f805f61398f85856144c0565b812090969095509350505050565b60655460ff1615612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610ac8565b805f03613a15575050565b8082035f5b82811015613ace57610100818403811115613a3457508083035b609b546040517f3c7f5283000000000000000000000000000000000000000000000000000000008152600481018590526024810183905273ffffffffffffffffffffffffffffffffffffffff90911690633c7f5283906044015f604051808303815f87803b158015613aa4575f80fd5b505af1158015613ab6573d5f803e3d5ffd5b50505050610100830192505061010081019050613a1a565b50505050565b60405183515f91829160208701919081908490613af2908590614542565b90506002840193505f5b81811015613b7657603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613b4c603c83614d4e565b613b569087614b68565b90505f613b6782603a015160f01c90565b97909701965050600101613afc565b506020850282016040525b8015613c59575f613b9685603a015160f01c90565b9050613ba483828b8b6145d7565b92505f613bb5866038015160f01c90565b905081811015613c21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610ac8565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613b81565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613c8d828651614542565b90505f5b613c9c600183614b7b565b811015613cb257603c9390930192600101613c91565b505f613cbf845160c01c90565b9695505050505050565b60605f80808080613cdc888a018a614e52565b9550955095509550955050818710613cfa579450613d169350505050565b838710613d0e578295505050505050613d16565b509293505050505b9392505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16613e29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b6121396146bf565b5f54610100900460ff16613ec7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b61213961477f565b60a88390555f83815260a460205260408082205460975491517f45bc4d10000000000000000000000000000000000000000000000000000000008152600481018690526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff908116939216906345bc4d10906024016020604051808303815f875af1158015613f60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f849190614c39565b5f86815260a46020526040902060010154909150613fa3908290614b68565b5f86815260a4602090815260408083205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16835260a590915281208054909190613fef908490614b68565b9091555050604051614002908490614eef565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff84169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b806140b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610ac8565b5f6140c8846001015160c01c90565b90505f6140d6856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000614105876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c5490915073ffffffffffffffffffffffffffffffffffffffff16632c09a8486141d4885160f81c90565b858888866040518663ffffffff1660e01b81526004016141f8959493929190614f1b565b5f6040518083038186803b15801561420e575f80fd5b505afa158015614220573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906142509084614d4e565b61425a9190614f4c565b90506142668183614b7b565b60aa5f8282546142769190614b68565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f90815260a56020526040812080548392906142af908490614b68565b90915550506040516142c2908490614eef565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff86169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80156143e0575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f811461436e576040519150601f19603f3d011682016040523d82523d5f602084013e614373565b606091505b50509050806143de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610ac8565b505b5050565b6143ec61399d565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861443f3390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61447161481e565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361443f565b5f8160f9811461452c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f626174636820686561646572206c656e677468206d75737420626520323439006044820152606401610ac8565b6040519150808483378082016040529250929050565b5f61454e835160f01c90565b9050805f03614589576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614594603c82614d4e565b61459f906002614b68565b821461156c576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f036145e65750836146b7565b609b5473ffffffffffffffffffffffffffffffffffffffff165f5b858110156146b1576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f9073ffffffffffffffffffffffffffffffffffffffff84169063ae453cd590602401602060405180830381865afa158015614674573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906146989190614c39565b8852506020909601956001948501949384019301614601565b50859150505b949350505050565b5f54610100900460ff16614755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff16614815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ac8565b61213933613d1d565b60655460ff16612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610ac8565b5f6020828403121561489a575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146148c4575f80fd5b919050565b5f602082840312156148d9575f80fd5b613d16826148a1565b5f8083601f8401126148f2575f80fd5b50813567ffffffffffffffff811115614909575f80fd5b602083019150836020828501011115614920575f80fd5b9250929050565b5f805f60408486031215614939575f80fd5b833567ffffffffffffffff81111561494f575f80fd5b61495b868287016148e2565b909790965060209590950135949350505050565b5f8060208385031215614980575f80fd5b823567ffffffffffffffff811115614996575f80fd5b6149a2858286016148e2565b90969095509350505050565b5f80604083850312156149bf575f80fd5b823567ffffffffffffffff808211156149d6575f80fd5b9084019060c082870312156149e9575f80fd5b909250602084013590808211156149fe575f80fd5b50830160608186031215614a10575f80fd5b809150509250929050565b5f805f805f8060c08789031215614a30575f80fd5b614a39876148a1565b9550614a47602088016148a1565b9450614a55604088016148a1565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614a89575f80fd5b843567ffffffffffffffff80821115614aa0575f80fd5b614aac888389016148e2565b90965094506020870135915080821115614ac4575f80fd5b50614ad1878288016148e2565b95989497509550505050565b8015158114612f3b575f80fd5b5f60208284031215614afa575f80fd5b8135613d1681614add565b5f8060408385031215614b16575f80fd5b823567ffffffffffffffff81168114614b2d575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561156c5761156c614b3b565b8181038181111561156c5761156c614b3b565b5f60208284031215614b9e575f80fd5b8151613d1681614add565b5f60208284031215614bb9575f80fd5b813560ff81168114613d16575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614bfc575f80fd5b83018035915067ffffffffffffffff821115614c16575f80fd5b602001915036819003821315614920575f80fd5b818382375f9101908152919050565b5f60208284031215614c49575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b81811015614cee57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101614cbc565b50508760408601528481036060860152614d09818789614c50565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614d4757614d47614b3b565b5060010190565b808202811582820484141761156c5761156c614b3b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112614da1575f80fd5b8135602067ffffffffffffffff80831115614dbe57614dbe614d65565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614e0157614e01614d65565b6040529384526020818701810194908101925087851115614e20575f80fd5b6020870191505b84821015614e4757614e38826148a1565b83529183019190830190614e27565b979650505050505050565b5f805f805f8060c08789031215614e67575f80fd5b86359550602087013567ffffffffffffffff80821115614e85575f80fd5b614e918a838b01614d92565b9650604089013595506060890135915080821115614ead575f80fd5b614eb98a838b01614d92565b94506080890135935060a0890135915080821115614ed5575f80fd5b50614ee289828a01614d92565b9150509295509295509295565b5f82515f5b81811015614f0e5760208186018101518583015201614ef4565b505f920191825250919050565b858152846020820152608060408201525f614f3a608083018587614c50565b90508260608301529695505050505050565b5f82614f7f577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a" +var RollupDeployedBin = "0x608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610a0c578063f2fde38b14610a2b578063fb1e8b0414610a4a575f80fd5b8063ddd8a3dc146109ac578063de8b3035146109d8578063dff7827e146109f7575f80fd5b8063cd4edc69116100b7578063cd4edc6914610965578063ce5db8d614610978578063d279c1911461098d575f80fd5b8063b35dac4e14610908578063b3e0a50914610927578063bedb86fb14610946575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d146108a9578063b31a77d3146108d4578063b3484425146108e9575f80fd5b8063a415d8dc14610847578063a479265d14610875578063a4f209b01461088a575f80fd5b80638f1d37761161016c5780638f1d37761461072d578063910129d4146107f757806397fc007c14610828575f80fd5b8063728cdbca146106cb57806388b1ea09146106ea5780638da5cb5b14610703575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa1461066d5780636c578c1d14610698578063715018a6146106b7575f80fd5b80635ef7a94a146105a25780635f77cf1d14610602578063612672901461064e575f80fd5b80634a8d544f1161022c5780634a8d544f1461055957806357e0af6c1461056c5780635c975abb1461058b575f80fd5b80632b7ac3f3146104c75780633b70c18a146105185780633e001b6614610544575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b366004614b17565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b50610396610391366004614b56565b610a5f565b005b3480156103a3575f80fd5b506103966103b2366004614bb4565b610b83565b3480156103c2575f80fd5b5061033f6103d1366004614b17565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b50610396610408366004614bfc565b610f6f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c366004614b17565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c366004614b17565b61156e565b34801561047c575f80fd5b5061036961048b366004614b17565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b6366004614b17565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161034b565b348015610523575f80fd5b50609b546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b34801561054f575f80fd5b5061036960aa5481565b610396610567366004614c3b565b61159c565b348015610577575f80fd5b50610396610586366004614b17565b611f7e565b348015610596575f80fd5b5060655460ff1661033f565b3480156105ad575f80fd5b506105e26105bc366004614b17565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b34801561060d575f80fd5b506106357f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610659575f80fd5b50610396610668366004614b17565b612043565b348015610678575f80fd5b50610369610687366004614b17565b60ab6020525f908152604090205481565b3480156106a3575f80fd5b506103966106b2366004614b56565b6122a6565b3480156106c2575f80fd5b506103966123b5565b3480156106d6575f80fd5b506103966106e5366004614ca8565b6123c8565b3480156106f5575f80fd5b5060a65461033f9060ff1681565b34801561070e575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166104f3565b348015610738575f80fd5b506107a6610747366004614b17565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff8316936801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16929060ff8082169161010090041686565b6040805167ffffffffffffffff909716875273ffffffffffffffffffffffffffffffffffffffff909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b348015610802575f80fd5b5061033f610811366004614b17565b5f90815260a4602052604090206003015460ff1690565b348015610833575f80fd5b50610396610842366004614b56565b612791565b348015610852575f80fd5b5061033f610861366004614b56565b609f6020525f908152604090205460ff1681565b348015610880575f80fd5b5061036960995481565b348015610895575f80fd5b506103966108a4366004614b17565b6128b5565b3480156108b4575f80fd5b506103696108c3366004614b56565b60a56020525f908152604090205481565b3480156108df575f80fd5b5061036960a85481565b3480156108f4575f80fd5b50610396610903366004614d03565b61297f565b348015610913575f80fd5b50610396610922366004614b56565b612c4e565b348015610932575f80fd5b50610396610941366004614bfc565b612cb4565b348015610951575f80fd5b50610396610960366004614d77565b613038565b610396610973366004614d92565b6131cb565b348015610983575f80fd5b5061036960985481565b348015610998575f80fd5b506103966109a7366004614b56565b6138e0565b3480156109b7575f80fd5b506097546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109e3575f80fd5b5061033f6109f2366004614b17565b6139c6565b348015610a02575f80fd5b50610369609a5481565b348015610a17575f80fd5b50610396610a26366004614b17565b613a1d565b348015610a36575f80fd5b50610396610a45366004614b56565b613ada565b348015610a55575f80fd5b5061036960a95481565b610a67613b8e565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1615610afb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610b8b613b8e565b5f8111610bf4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610af2565b5f80610c008585613c0f565b915091505f610c13836001015160c01c90565b5f81815260a160205260409020549091508214610c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b5f60a181610c9a8785614df5565b81526020019081526020015f205414610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610af2565b609d548111610dc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610af2565b610dd0600182614e08565b609e555b8315610f6757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610e1c816139c6565b15610ea2575f81815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091610e74908490614df5565b909155505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610f1f575060a85481145b15610f29575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610dd4575b505050505050565b60a85415610fd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b610fe1613c2a565b5f80610fed8484613c0f565b915091505f611000836001015160c01c90565b5f81815260a160205260409020549091508214611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b6110828161156e565b6110e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610af2565b6110f1816139c6565b15611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610af2565b5f81815260a4602052604090206003015460ff16156111d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610af2565b5f81815260a2602052604090206001015442101561124d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610af2565b605983015160a05f611260600185614e08565b81526020019081526020015f2054146112d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610af2565b5f81815260a060205260409020541561134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610af2565b80609d54600101146113b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610af2565b609d819055600160a35f6113cd866099015190565b815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905560798301515f82815260a0602052604090205561143a61142d846011015160c01c90565b600985015160c01c613c97565b60a25f611448600184614e08565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906114819084614e08565b81526020019081526020015f205f905560a45f6001836114a19190614e08565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d61154a866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061159657505f82815260a1602052604090205415155b92915050565b60975473ffffffffffffffffffffffffffffffffffffffff166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116469190614e1b565b6116ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610af2565b60a85415611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b61171e613c2a565b61172b6020830183614e36565b60ff1615611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610af2565b5f6117a36040840184614e56565b9150508061180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610af2565b6060830135611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610af2565b60808301356118e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610af2565b5f806118fa6118f56020870187614e56565b613c0f565b915091505f61190d836001015160c01c90565b90505f60a18161191e846001614df5565b81526020019081526020015f205414611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610af2565b609e5481146119fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610af2565b5f81815260a160205260409020548214611a74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610af2565b5f81815260ab6020526040902054606087013514611aee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610af2565b5f611afd846011015160c01c90565b90505f8080611b4f611b1260408c018c614e56565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150613d619050565b600196909601959485019493840193925090505f804915611b71575f49611b93565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f9611bbe89611bb660208f018f614e36565b60ff16613ef8565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a0152611c2d89611c0e60208e018e614e56565b604051611c1c929190614eb7565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff1615611c9a5760a7545f90815260a460205260409020600201546099544291611c8d91614df5565b611c979190614e08565b90505b60405180608001604052804281526020018260985442611cba9190614df5565b611cc49190614df5565b8152602001611d158f8060400190611cdc9190614e56565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613eff92505050565b815260975460209091019073ffffffffffffffffffffffffffffffffffffffff1663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015611da3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dc79190614ec6565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e89905560975473ffffffffffffffffffffffffffffffffffffffff1692506374fe27b791508c3590611e3c90611e36908f018f614e56565b5f613f56565b5f8e8060400190611e4d9190614e56565b6040518663ffffffff1660e01b8152600401611e6d959493929190614f24565b602060405180830381865afa158015611e88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eac9190614e1b565b611f38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610af2565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611f86613b8e565b5f81118015611f9757506099548114155b611ffd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610af2565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff1615801561206357505f5460ff8083169116105b6120ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610af2565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff83161761010017905561212a5f5460ff1690565b60ff16600214612196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610af2565b81612223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610af2565b609e545f90815260ab602052604090205461224c57609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001612037565b6122ae613b8e565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1661233c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610af2565b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610b78565b6123bd613b8e565b6123c65f613faa565b565b5f54610100900460ff16158080156123e657505f54600160ff909116105b806123ff5750303b1580156123ff57505f5460ff166001145b61248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610af2565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156124e7575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8616158061251e575073ffffffffffffffffffffffffffffffffffffffff8516155b15612555576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166125d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610af2565b6125da614020565b6125e26140be565b6097805473ffffffffffffffffffffffffffffffffffffffff808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015612788575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b612799613b8e565b73ffffffffffffffffffffffffffffffffffffffff8116158015906127d95750609c5473ffffffffffffffffffffffffffffffffffffffff828116911614155b61283f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610af2565b609c805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b6128bd613b8e565b5f811180156128cd575060648111155b80156128db575060a9548114155b612941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610af2565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101612037565b60a854156129e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b6129f1613c2a565b5f806129fd8686613c0f565b915091505f612a10836001015160c01c90565b5f81815260a160205260409020549091508214612a89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b612a92816139c6565b612af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610af2565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556099546002909101544291612b6f91614df5565b11612c03575f81815260a460209081526040808320600390810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152612bfe9183919061415c565b612788565b612c0e8386866142df565b61278881336040518060400160405280600d81526020017f50726f6f662073756363657373000000000000000000000000000000000000008152506144b9565b612c56613b8e565b60aa80545f909155612c68828261459f565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101612037565b612cbc613b8e565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415612d4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610af2565b5f80612d598484613c0f565b915091505f612d6c836001015160c01c90565b90505f612d7a846079015190565b905080612de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610af2565b600984015160c01c15612e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610af2565b5f612e5e856019015190565b03612ec5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610af2565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014612ef1856039015190565b14612f58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610af2565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b613040613b8e565b80156131995761304e614671565b60a65460ff161561314b5760a7545f90815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a590925282208054919290916130af908490614df5565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a150565b6131a16146f6565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361316e565b50565b335f908152609f602052604090205460ff16613243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610af2565b60a854156132ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b6132b5613c2a565b60a65460ff1615613322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610af2565b8167ffffffffffffffff16609d5410613397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a160205260409020548114613418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b61342b8267ffffffffffffffff1661156e565b613491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a4602052604090205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1615613533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a2602052604090206001015442106135dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610af2565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613647573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061366b9190614ec6565b3410156136d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610af2565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a49095529690962094518554925173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009093169290921792909217905573ffffffffffffffffffffffffffffffffffffffff168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b99763460405161384091815260200190565b60405180910390a35f609d5460016138589190614df5565b90505b609e5481116138b0578267ffffffffffffffff16811461389e576099545f82815260a2602052604081206001018054909190613898908490614df5565b90915550505b806138a881614fa4565b91505061385b565b505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b335f90815260a5602052604081205490819003613959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610af2565b335f90815260a56020526040812055613972828261459f565b8173ffffffffffffffffffffffffffffffffffffffff167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a826040516139ba91815260200190565b60405180910390a25050565b5f81815260a4602052604081205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16158015906115965750505f90815260a46020526040902060030154610100900460ff161590565b613a25613b8e565b5f81118015613a3657506098548114155b613a9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610af2565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101612037565b613ae2613b8e565b73ffffffffffffffffffffffffffffffffffffffff8116613b85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610af2565b6131c881613faa565b60335473ffffffffffffffffffffffffffffffffffffffff1633146123c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610af2565b5f805f613c1c858561474d565b812090969095509350505050565b60655460ff16156123c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610af2565b805f03613ca2575050565b8082035f5b82811015613d5b57610100818403811115613cc157508083035b609b546040517f3c7f5283000000000000000000000000000000000000000000000000000000008152600481018590526024810183905273ffffffffffffffffffffffffffffffffffffffff90911690633c7f5283906044015f604051808303815f87803b158015613d31575f80fd5b505af1158015613d43573d5f803e3d5ffd5b50505050610100830192505061010081019050613ca7565b50505050565b60405183515f91829160208701919081908490613d7f9085906147cf565b90506002840193505f5b81811015613e0357603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613dd9603c83614fdb565b613de39087614df5565b90505f613df482603a015160f01c90565b97909701965050600101613d89565b506020850282016040525b8015613ee6575f613e2385603a015160f01c90565b9050613e3183828b8b614864565b92505f613e42866038015160f01c90565b905081811015613eae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610af2565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613e0e565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613f1a8286516147cf565b90505f5b613f29600183614e08565b811015613f3f57603c9390930192600101613f1e565b505f613f4c845160c01c90565b9695505050505050565b60605f80808080613f69888a018a6150df565b9550955095509550955050818710613f87579450613fa39350505050565b838710613f9b578295505050505050613fa3565b509293505050505b9392505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166140b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123c661494c565b5f54610100900460ff16614154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123c6614a0c565b60a88390555f83815260a460205260408082205460975491517f45bc4d10000000000000000000000000000000000000000000000000000000008152600481018690526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff908116939216906345bc4d10906024016020604051808303815f875af11580156141ed573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142119190614ec6565b5f86815260a46020526040902060010154909150614230908290614df5565b5f86815260a4602090815260408083205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16835260a59091528120805490919061427c908490614df5565b909155505060405161428f90849061517c565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff84169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80614346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610af2565b5f614355846001015160c01c90565b90505f614363856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000614392876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c5490915073ffffffffffffffffffffffffffffffffffffffff16632c09a848614461885160f81c90565b858888866040518663ffffffff1660e01b81526004016144859594939291906151a8565b5f6040518083038186803b15801561449b575f80fd5b505afa1580156144ad573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906144dd9084614fdb565b6144e791906151d9565b90506144f38183614e08565b60aa5f8282546145039190614df5565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f90815260a560205260408120805483929061453c908490614df5565b909155505060405161454f90849061517c565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff86169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b801561466d575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f81146145fb576040519150601f19603f3d011682016040523d82523d5f602084013e614600565b606091505b505090508061466b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610af2565b505b5050565b614679613c2a565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586146cc3390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6146fe614aab565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336146cc565b5f8160f981146147b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f626174636820686561646572206c656e677468206d75737420626520323439006044820152606401610af2565b6040519150808483378082016040529250929050565b5f6147db835160f01c90565b9050805f03614816576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614821603c82614fdb565b61482c906002614df5565b8214611596576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03614873575083614944565b609b5473ffffffffffffffffffffffffffffffffffffffff165f5b8581101561493e576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f9073ffffffffffffffffffffffffffffffffffffffff84169063ae453cd590602401602060405180830381865afa158015614901573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149259190614ec6565b885250602090960195600194850194938401930161488e565b50859150505b949350505050565b5f54610100900460ff166149e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff16614aa2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123c633613faa565b60655460ff166123c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610af2565b5f60208284031215614b27575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114614b51575f80fd5b919050565b5f60208284031215614b66575f80fd5b613fa382614b2e565b5f8083601f840112614b7f575f80fd5b50813567ffffffffffffffff811115614b96575f80fd5b602083019150836020828501011115614bad575f80fd5b9250929050565b5f805f60408486031215614bc6575f80fd5b833567ffffffffffffffff811115614bdc575f80fd5b614be886828701614b6f565b909790965060209590950135949350505050565b5f8060208385031215614c0d575f80fd5b823567ffffffffffffffff811115614c23575f80fd5b614c2f85828601614b6f565b90969095509350505050565b5f8060408385031215614c4c575f80fd5b823567ffffffffffffffff80821115614c63575f80fd5b9084019060c08287031215614c76575f80fd5b90925060208401359080821115614c8b575f80fd5b50830160608186031215614c9d575f80fd5b809150509250929050565b5f805f805f8060c08789031215614cbd575f80fd5b614cc687614b2e565b9550614cd460208801614b2e565b9450614ce260408801614b2e565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614d16575f80fd5b843567ffffffffffffffff80821115614d2d575f80fd5b614d3988838901614b6f565b90965094506020870135915080821115614d51575f80fd5b50614d5e87828801614b6f565b95989497509550505050565b80151581146131c8575f80fd5b5f60208284031215614d87575f80fd5b8135613fa381614d6a565b5f8060408385031215614da3575f80fd5b823567ffffffffffffffff81168114614dba575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561159657611596614dc8565b8181038181111561159657611596614dc8565b5f60208284031215614e2b575f80fd5b8151613fa381614d6a565b5f60208284031215614e46575f80fd5b813560ff81168114613fa3575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614e89575f80fd5b83018035915067ffffffffffffffff821115614ea3575f80fd5b602001915036819003821315614bad575f80fd5b818382375f9101908152919050565b5f60208284031215614ed6575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b81811015614f7b57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101614f49565b50508760408601528481036060860152614f96818789614edd565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614fd457614fd4614dc8565b5060010190565b808202811582820484141761159657611596614dc8565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261502e575f80fd5b8135602067ffffffffffffffff8083111561504b5761504b614ff2565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110848211171561508e5761508e614ff2565b60405293845260208187018101949081019250878511156150ad575f80fd5b6020870191505b848210156150d4576150c582614b2e565b835291830191908301906150b4565b979650505050505050565b5f805f805f8060c087890312156150f4575f80fd5b86359550602087013567ffffffffffffffff80821115615112575f80fd5b61511e8a838b0161501f565b965060408901359550606089013591508082111561513a575f80fd5b6151468a838b0161501f565b94506080890135935060a0890135915080821115615162575f80fd5b5061516f89828a0161501f565b9150509295509295509295565b5f82515f5b8181101561519b5760208186018101518583015201615181565b505f920191825250919050565b858152846020820152608060408201525f6151c7608083018587614edd565b90508260608301529695505050505050565b5f8261520c577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(RollupStorageLayoutJSON), RollupStorageLayout); err != nil { diff --git a/contracts/contracts/l1/rollup/Rollup.sol b/contracts/contracts/l1/rollup/Rollup.sol index c9f932418..4a6567619 100644 --- a/contracts/contracts/l1/rollup/Rollup.sol +++ b/contracts/contracts/l1/rollup/Rollup.sol @@ -174,6 +174,15 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { emit UpdateProofRewardPercent(0, _proofRewardPercent); } + function initialize2(bytes32 _prevStateRoot) external reinitializer(2) { + require(_getInitializedVersion() == 2, "must have initialized!"); + require(_prevStateRoot != bytes32(0), "can not set state root with bytes32(0)!"); + + if (committedStateRoots[lastCommittedBatchIndex] == bytes32(0)) { + committedStateRoots[lastCommittedBatchIndex] = _prevStateRoot; + } + } + /************************ * Restricted Functions * ************************/ From 0c5e025c3b4c89123b833b28f6839ac9bdd4f43d Mon Sep 17 00:00:00 2001 From: songyaoshun Date: Wed, 20 Nov 2024 18:31:19 +0800 Subject: [PATCH 041/106] mainnet upgrade rollup (#644) Co-authored-by: Agnar Song Co-authored-by: kukoomomo --- contracts/hardhat.config.ts | 1 + contracts/tasks/mainnet_upgrade.ts | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 contracts/tasks/mainnet_upgrade.ts diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index 0255a5981..51e3875fa 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -17,6 +17,7 @@ import "./tasks/proxy_upgrade" import "./tasks/staking_upgrade" import "./tasks/verifier_upgrade" import "./tasks/token_deploy" +import "./tasks/mainnet_upgrade" import "./src/plugin" import * as process from "process"; diff --git a/contracts/tasks/mainnet_upgrade.ts b/contracts/tasks/mainnet_upgrade.ts new file mode 100644 index 000000000..bd5af77f1 --- /dev/null +++ b/contracts/tasks/mainnet_upgrade.ts @@ -0,0 +1,25 @@ +import "@nomiclabs/hardhat-web3"; +import "@nomiclabs/hardhat-ethers"; +import "@nomiclabs/hardhat-waffle"; + +import { task } from "hardhat/config"; +import { ContractFactoryName } from "../src/types"; + +task("rollup-upgrade-hc") + .addParam("l2cid") + .addParam("prevStateRoot") + .setAction(async (taskArgs, hre) => { + const chainId = taskArgs.l2cid + + const RollupFactoryName = ContractFactoryName.Rollup + + const RollupFactory = await hre.ethers.getContractFactory(RollupFactoryName) + const rollupNewImpl = await RollupFactory.deploy(chainId) + await rollupNewImpl.deployed() + let blockNumber = await hre.ethers.provider.getBlockNumber() + console.log(`Rollup new impl deploy at ${rollupNewImpl.address} and height ${blockNumber}`) + + console.log("initialize2 abi code: ", RollupFactory.interface.encodeFunctionData('initialize2', [ + taskArgs.prevStateRoot, + ])) + }) From c95ba438e9b41333da82d7def82012dc911bd65a Mon Sep 17 00:00:00 2001 From: vincent Date: Thu, 21 Nov 2024 15:15:47 +0800 Subject: [PATCH 042/106] Check genesis batch is zero (#646) Co-authored-by: chengwenxi <22697326+chengwenxi@users.noreply.github.com> --- contracts/contracts/l1/rollup/Rollup.sol | 2 ++ contracts/contracts/test/Rollup.t.sol | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/contracts/contracts/l1/rollup/Rollup.sol b/contracts/contracts/l1/rollup/Rollup.sol index 4a6567619..905913f94 100644 --- a/contracts/contracts/l1/rollup/Rollup.sol +++ b/contracts/contracts/l1/rollup/Rollup.sol @@ -194,6 +194,8 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { (uint256 memPtr, bytes32 _batchHash) = _loadBatchHeader(_batchHeader); uint256 _batchIndex = BatchHeaderCodecV0.getBatchIndex(memPtr); + // check batch index is 0 + require(_batchIndex == 0, "invalid batch index"); bytes32 _postStateRoot = BatchHeaderCodecV0.getPostStateHash(memPtr); require(_postStateRoot != bytes32(0), "zero state root"); // check all fields except `dataHash` and `lastBlockHash` are zero diff --git a/contracts/contracts/test/Rollup.t.sol b/contracts/contracts/test/Rollup.t.sol index 95d49eda1..d29606ad9 100644 --- a/contracts/contracts/test/Rollup.t.sol +++ b/contracts/contracts/test/Rollup.t.sol @@ -546,6 +546,15 @@ contract RollupTest is L1MessageBaseTest { function test_importGenesisBlock_succeeds() public { bytes memory batchHeader; bytes32 bytesData1 = bytes32(uint256(1)); + // invalid batch index, revert + batchHeader = new bytes(249); + assembly { + mstore(add(batchHeader, add(0x20, 1)), shl(192, 1)) // batchIndex = 1 + } + hevm.expectRevert("invalid batch index"); + hevm.prank(multisig); + rollup.importGenesisBatch(batchHeader); + // zero state root, revert batchHeader = new bytes(249); hevm.expectRevert("zero state root"); From c34ea51b2a5da0ddbc18b47a94f59cec036db700 Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:46:58 +0800 Subject: [PATCH 043/106] feat(tx-submitter): add rollup loss control functionality - Implement batch cache to store and retrieve rollup batches - Add logic to calculate and compare transaction fees with collected L1 fees - Introduce new configuration options for rollup loss control - Update transaction submission process to include fee checks - Add unit tests for new functionality --- tx-submitter/entry.go | 3 + tx-submitter/flags/flags.go | 41 +++++---- tx-submitter/services/batch_cache.go | 39 +++++++++ tx-submitter/services/batch_calche_test.go | 21 +++++ tx-submitter/services/rollup.go | 68 +++++++++++---- tx-submitter/services/utils.go | 15 ++++ tx-submitter/utils/config.go | 18 ++-- tx-submitter/utils/utils.go | 53 +++++++++--- tx-submitter/utils/utils_test.go | 98 ++++++++++++++++++++++ 9 files changed, 309 insertions(+), 47 deletions(-) create mode 100644 tx-submitter/services/batch_cache.go create mode 100644 tx-submitter/services/batch_calche_test.go diff --git a/tx-submitter/entry.go b/tx-submitter/entry.go index 2687ed8e3..1cc6ea433 100644 --- a/tx-submitter/entry.go +++ b/tx-submitter/entry.go @@ -69,6 +69,9 @@ func Main() func(ctx *cli.Context) error { "rough_estimate_per_l1_msg", cfg.RollupTxGasPerL1Msg, "log_level", cfg.LogLevel, "leveldb_pathname", cfg.LeveldbPathName, + "l1_stop_in_blocks", cfg.BlockNotIncreasedThreshold, + "rollup_loss_control", cfg.RollupLossControl, + "rolluo_loss_buffer", cfg.MaxRollupLossBuffer, ) ctx, cancel := context.WithCancel(context.Background()) diff --git a/tx-submitter/flags/flags.go b/tx-submitter/flags/flags.go index 041cf2db5..8e8d1b143 100644 --- a/tx-submitter/flags/flags.go +++ b/tx-submitter/flags/flags.go @@ -229,37 +229,37 @@ var ( } // external sign - ExternalSign = cli.BoolFlag{ + ExternalSignFlag = cli.BoolFlag{ Name: "external_sign", Usage: "Enable external sign", EnvVar: prefixEnvVar("EXTERNAL_SIGN"), } // address - ExternalSignAddress = cli.StringFlag{ + ExternalSignAddressFlag = cli.StringFlag{ Name: "external_sign_address", Usage: "The address of the external sign", EnvVar: prefixEnvVar("EXTERNAL_SIGN_ADDRESS"), } // appid - ExternalSignAppid = cli.StringFlag{ + ExternalSignAppidFlag = cli.StringFlag{ Name: "external_sign_appid", Usage: "The appid of the external sign", EnvVar: prefixEnvVar("EXTERNAL_SIGN_APPID"), } // chain - ExternalSignChain = cli.StringFlag{ + ExternalSignChainFlag = cli.StringFlag{ Name: "external_sign_chain", Usage: "The chain of the external sign", EnvVar: prefixEnvVar("EXTERNAL_SIGN_CHAIN"), } // url - ExternalSignUrl = cli.StringFlag{ + ExternalSignUrlFlag = cli.StringFlag{ Name: "external_sign_url", Usage: "The url of the external sign", EnvVar: prefixEnvVar("EXTERNAL_SIGN_URL"), } - ExternalSignRsaPriv = cli.StringFlag{ + ExternalSignRsaPrivFlag = cli.StringFlag{ Name: "external_rsa_priv", Usage: "The rsa private key of the external sign", EnvVar: "SEQUENCER_EXTERNAL_SIGN_RSA_PRIV", // use sequencer rsa from xxx @@ -300,12 +300,24 @@ var ( } // l1 block not incremented threshold - BlockNotIncreasedThreshold = cli.Int64Flag{ + BlockNotIncreasedThresholdFlag = cli.Int64Flag{ Name: "block_not_increased_threshold", Usage: "The threshold for block not incremented", Value: 5, EnvVar: prefixEnvVar("BLOCK_NOT_INCREASED_THRESHOLD"), } + RollupLossControlFlag = cli.BoolFlag{ + Name: "rollup_loss_control", + Usage: "Enable rollup loss control", + EnvVar: prefixEnvVar("ROLLUP_LOSS_CONTROL"), + } + // max rollup loss buffer + MaxRollupLossBufferFlag = cli.Int64Flag{ + Name: "max_rollup_loss_buffer", + Usage: "single transaction rollup maximum allowable loss buff", + Value: 50, // default 50% percent + EnvVar: prefixEnvVar("MAX_ROLLUP_LOSS_BUFFER"), + } ) var requiredFlags = []cli.Flag{ @@ -349,18 +361,19 @@ var optionalFlags = []cli.Flag{ MaxTxsInPendingPoolFlag, // external sign - ExternalSign, - ExternalSignAddress, - ExternalSignAppid, - ExternalSignChain, - ExternalSignUrl, - ExternalSignRsaPriv, + ExternalSignFlag, + ExternalSignAddressFlag, + ExternalSignAppidFlag, + ExternalSignChainFlag, + ExternalSignUrlFlag, + ExternalSignRsaPrivFlag, RoughEstimateGasFlag, RotatorBufferFlag, StakingEventStoreFileFlag, EventIndexStepFlag, LeveldbPathNameFlag, - BlockNotIncreasedThreshold, + BlockNotIncreasedThresholdFlag, + MaxRollupLossBufferFlag, } // Flags contains the list of configuration options available to the binary. diff --git a/tx-submitter/services/batch_cache.go b/tx-submitter/services/batch_cache.go new file mode 100644 index 000000000..5cb8443a9 --- /dev/null +++ b/tx-submitter/services/batch_cache.go @@ -0,0 +1,39 @@ +package services + +import ( + "sync" + + "github.com/morph-l2/go-ethereum/eth" +) + +type BatchCache struct { + batchCache map[uint64]*eth.RPCRollupBatch + m sync.Mutex +} + +func NewBatchCache() *BatchCache { + return &BatchCache{ + batchCache: make(map[uint64]*eth.RPCRollupBatch), + } +} + +func (b *BatchCache) Get(batchIndex uint64) (*eth.RPCRollupBatch, bool) { + b.m.Lock() + defer b.m.Unlock() + + batch, ok := b.batchCache[batchIndex] + return batch, ok +} +func (b *BatchCache) Set(batchIndex uint64, batch *eth.RPCRollupBatch) { + b.m.Lock() + defer b.m.Unlock() + + b.batchCache[batchIndex] = batch +} + +func (b *BatchCache) Delete(batchIndex uint64) { + b.m.Lock() + defer b.m.Unlock() + + delete(b.batchCache, batchIndex) +} diff --git a/tx-submitter/services/batch_calche_test.go b/tx-submitter/services/batch_calche_test.go new file mode 100644 index 000000000..03529eb2d --- /dev/null +++ b/tx-submitter/services/batch_calche_test.go @@ -0,0 +1,21 @@ +package services + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestBatchCache(t *testing.T) { + + cache := NewBatchCache() + cache.Set(1, nil) + _, ok := cache.Get(1) + require.True(t, ok) + cache.Delete(1) + _, ok = cache.Get(1) + require.False(t, ok) + _, ok = cache.Get(2) + require.False(t, ok) + +} diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 7bf168f88..33a65bb66 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -75,7 +75,7 @@ type Rollup struct { // collectedL1FeeSum collectedL1FeeSum float64 // batchcache - batchCache map[uint64]*eth.RPCRollupBatch + batchCache *BatchCache bm *l1checker.BlockMonitor } @@ -114,7 +114,7 @@ func NewRollup( cfg: cfg, signer: types.LatestSignerForChainID(chainId), externalRsaPriv: rsaPriv, - batchCache: make(map[uint64]*eth.RPCRollupBatch), + batchCache: NewBatchCache(), ldb: ldb, bm: bm, } @@ -256,7 +256,7 @@ func (r *Rollup) ProcessTx() error { if ispending { if txRecord.sendTime+uint64(r.cfg.TxTimeout.Seconds()) < uint64(time.Now().Unix()) { log.Info("tx timeout", "tx", rtx.Hash().Hex(), "nonce", rtx.Nonce(), "method", method) - newtx, err := r.ReSubmitTx(false, rtx) + newtx, err := r.ReSubmitTx(false, rtx, r.GetReSubmitBatchIndex(method, rtx.Data())) if err != nil { log.Error("resubmit tx", "error", err, "tx", rtx.Hash().Hex(), "nonce", rtx.Nonce()) return fmt.Errorf("resubmit tx error:%w", err) @@ -281,7 +281,8 @@ func (r *Rollup) ProcessTx() error { "nonce", rtx.Nonce(), "query_times", txRecord.queryTimes, ) - replacedtx, err := r.ReSubmitTx(true, rtx) + + replacedtx, err := r.ReSubmitTx(true, rtx, r.GetReSubmitBatchIndex(method, rtx.Data())) if err != nil { log.Error("resend discarded tx", "old_tx", rtx.Hash().String(), "nonce", rtx.Nonce(), "error", err) if utils.ErrStringMatch(err, core.ErrNonceTooLow) { @@ -358,7 +359,7 @@ func (r *Rollup) ProcessTx() error { } r.metrics.SetRollupCost(fee) index := utils.ParseParentBatchIndex(rtx.Data()) + 1 - batch, ok := r.batchCache[index] + batch, ok := r.batchCache.Get(index) if ok { collectedL1FeeFloat := ToEtherFloat((*big.Int)(batch.CollectedL1Fee)) r.collectedL1FeeSum += collectedL1FeeFloat @@ -368,7 +369,7 @@ func (r *Rollup) ProcessTx() error { } r.metrics.SetCollectedL1Fee(ToEtherFloat((*big.Int)(batch.CollectedL1Fee))) // remove batch from cache - delete(r.batchCache, index) + r.batchCache.Delete(index) } else { log.Warn("batch not found in batchCache while set collect fee metrics", "index", index, @@ -527,7 +528,7 @@ func (r *Rollup) finalize() error { "size", signedTx.Size(), ) - err = r.SendTx(signedTx) + err = r.SendTx(signedTx, 0) if err != nil { log.Error("send finalize tx to mempool", "error", err.Error()) if utils.ErrStringMatch(err, core.ErrNonceTooLow) { @@ -650,9 +651,13 @@ func (r *Rollup) rollup() error { return nil } - batch, err := GetRollupBatchByIndex(batchIndex, r.L2Clients) - if err != nil { - return fmt.Errorf("get rollup batch by index err:%v", err) + var batch *eth.RPCRollupBatch + batch, ok := r.batchCache.Get(batchIndex) + if !ok { + batch, err = GetRollupBatchByIndex(batchIndex, r.L2Clients) + if err != nil { + return fmt.Errorf("get rollup batch by index err:%v", err) + } } // check if the batch is valid @@ -668,7 +673,7 @@ func (r *Rollup) rollup() error { // set batch cache // it shoud be removed after the batch is committed - r.batchCache[batchIndex] = batch + r.batchCache.Set(batchIndex, batch) signature, err := r.buildSignatureInput(batch) if err != nil { @@ -708,7 +713,7 @@ func (r *Rollup) rollup() error { } if r.cfg.RoughEstimateGas { - msgcnt := utils.ParseL1MessageCnt(batch.BlockContexts) + msgcnt := r.ParseL1MessageCnt(batch.BlockContexts) gas = r.RoughRollupGasEstimate(msgcnt) log.Info("rough estimate rollup tx gas", "gas", gas, "msgcnt", msgcnt) } else { @@ -786,7 +791,7 @@ func (r *Rollup) rollup() error { "blob_len", len(signedTx.BlobHashes()), ) - err = r.SendTx(signedTx) + err = r.SendTx(signedTx, batchIndex) if err != nil { log.Error("send tx to mempool", "error", err.Error()) if utils.ErrStringMatch(err, core.ErrNonceTooLow) { @@ -1091,7 +1096,7 @@ func UpdateGasLimit(tx *types.Transaction) (*types.Transaction, error) { } // send tx to l1 with business logic check -func (r *Rollup) SendTx(tx *types.Transaction) error { +func (r *Rollup) SendTx(tx *types.Transaction, batchIndex uint64) error { // judge tx info is valid if tx == nil { @@ -1101,7 +1106,30 @@ func (r *Rollup) SendTx(tx *types.Transaction) error { if !r.bm.IsGrowth() { return fmt.Errorf("block not growth in %d blocks time", r.cfg.BlockNotIncreasedThreshold) } + // check batch loss + if r.cfg.RollupLossControl { + // calc fee + fee := utils.CalcFeeForTx(tx) + // get batch + var collectedL1Fee *big.Int + batch, ok := r.batchCache.Get(batchIndex) + if ok { + collectedL1Fee = batch.CollectedL1Fee.ToInt() + if collectedL1Fee == nil { + collectedL1Fee = big.NewInt(0) + } + } else { + log.Warn("batch not found in cache when calc fee before SendTx", "batchIndex", batchIndex) + collectedL1Fee = big.NewInt(0) + } + // targetFee = fee * (100 + cfg.RotatorBuffer)/100 + targetFee := new(big.Int).Mul(fee, big.NewInt(100+r.cfg.RotatorBuffer)) + targetFee.Div(targetFee, big.NewInt(100)) + if collectedL1Fee.Cmp(targetFee) < 0 { + return fmt.Errorf("tx fee exceed collectedL1Fee: targetFee=%v,fee=%v,collectedL1Fee:=%v", targetFee, fee, collectedL1Fee) + } + } err := sendTx(r.L1Client, r.cfg.TxFeeLimit, tx) if err != nil { return err @@ -1138,7 +1166,7 @@ func sendTx(client iface.Client, txFeeLimit uint64, tx *types.Transaction) error return client.SendTransaction(context.Background(), tx) } -func (r *Rollup) ReSubmitTx(resend bool, tx *types.Transaction) (*types.Transaction, error) { +func (r *Rollup) ReSubmitTx(resend bool, tx *types.Transaction, batchIndex uint64) (*types.Transaction, error) { if tx == nil { return nil, errors.New("nil tx") } @@ -1229,7 +1257,7 @@ func (r *Rollup) ReSubmitTx(resend bool, tx *types.Transaction) (*types.Transact return nil, fmt.Errorf("sign tx error:%w", err) } // send tx - err = r.SendTx(newTx) + err = r.SendTx(newTx, batchIndex) if err != nil { return nil, fmt.Errorf("send tx error:%w", err) } @@ -1335,3 +1363,11 @@ func (r *Rollup) InitFeeMetricsSum() error { r.metrics.CollectedL1FeeSum.Add(r.collectedL1FeeSum) return nil } + +func (r *Rollup) GetReSubmitBatchIndex(method string, calldta []byte) uint64 { + if method == "commitBatch" { + return utils.ParseBatchIndex(method, calldta) + } else { + return 0 + } +} diff --git a/tx-submitter/services/utils.go b/tx-submitter/services/utils.go index e8e185b42..d5909d752 100644 --- a/tx-submitter/services/utils.go +++ b/tx-submitter/services/utils.go @@ -2,9 +2,11 @@ package services import ( "crypto/sha256" + "encoding/binary" "math/big" "github.com/morph-l2/go-ethereum/common" + "github.com/morph-l2/go-ethereum/common/hexutil" "github.com/morph-l2/go-ethereum/core/types" "github.com/morph-l2/go-ethereum/crypto/kzg4844" "github.com/morph-l2/go-ethereum/params" @@ -73,3 +75,16 @@ func ToEtherFloat(weiAmt *big.Int) float64 { return fEtherAmt } + +func (r *Rollup) ParseL1MessageCnt(blockContexts hexutil.Bytes) uint64 { + + var l1msgcnt uint64 + blockNum := binary.BigEndian.Uint16(blockContexts[:2]) + remainingBz := blockContexts[2:] + for i := 0; i < int(blockNum); i++ { + l1msgcnt += uint64(binary.BigEndian.Uint16(remainingBz[58:60])) + remainingBz = remainingBz[60:] + } + + return l1msgcnt +} diff --git a/tx-submitter/utils/config.go b/tx-submitter/utils/config.go index 30decb206..cf7c95517 100644 --- a/tx-submitter/utils/config.go +++ b/tx-submitter/utils/config.go @@ -107,6 +107,8 @@ type Config struct { // leveldb path name LeveldbPathName string BlockNotIncreasedThreshold int64 + RollupLossControl bool + MaxRollupLossBuffer int64 } // NewConfig parses the DriverConfig from the provided flags or environment variables. @@ -157,12 +159,12 @@ func NewConfig(ctx *cli.Context) (Config, error) { MaxTxsInPendingPool: ctx.GlobalUint64(flags.MaxTxsInPendingPoolFlag.Name), // external sign - ExternalSign: ctx.GlobalBool(flags.ExternalSign.Name), - ExternalSignAppid: ctx.GlobalString(flags.ExternalSignAppid.Name), - ExternalSignAddress: ctx.GlobalString(flags.ExternalSignAddress.Name), - ExternalSignChain: ctx.GlobalString(flags.ExternalSignChain.Name), - ExternalSignUrl: ctx.GlobalString(flags.ExternalSignUrl.Name), - ExternalSignRsaPriv: ctx.GlobalString(flags.ExternalSignRsaPriv.Name), + ExternalSign: ctx.GlobalBool(flags.ExternalSignFlag.Name), + ExternalSignAppid: ctx.GlobalString(flags.ExternalSignAppidFlag.Name), + ExternalSignAddress: ctx.GlobalString(flags.ExternalSignAddressFlag.Name), + ExternalSignChain: ctx.GlobalString(flags.ExternalSignChainFlag.Name), + ExternalSignUrl: ctx.GlobalString(flags.ExternalSignUrlFlag.Name), + ExternalSignRsaPriv: ctx.GlobalString(flags.ExternalSignRsaPrivFlag.Name), // rough estimate gas switch RoughEstimateGas: ctx.GlobalBool(flags.RoughEstimateGasFlag.Name), // rotator interval buffer @@ -177,7 +179,9 @@ func NewConfig(ctx *cli.Context) (Config, error) { // leveldb path name LeveldbPathName: ctx.GlobalString(flags.LeveldbPathNameFlag.Name), // BlockNotIncreasedThreshold - BlockNotIncreasedThreshold: ctx.GlobalInt64(flags.BlockNotIncreasedThreshold.Name), + BlockNotIncreasedThreshold: ctx.GlobalInt64(flags.BlockNotIncreasedThresholdFlag.Name), + RollupLossControl: ctx.GlobalBool(flags.RollupLossControlFlag.Name), + MaxRollupLossBuffer: ctx.GlobalInt64(flags.MaxRollupLossBufferFlag.Name), } return cfg, nil diff --git a/tx-submitter/utils/utils.go b/tx-submitter/utils/utils.go index bcfc02051..01ed34de0 100644 --- a/tx-submitter/utils/utils.go +++ b/tx-submitter/utils/utils.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "math/big" "reflect" "regexp" "strconv" @@ -15,7 +16,6 @@ import ( "github.com/morph-l2/go-ethereum/accounts/abi" "github.com/morph-l2/go-ethereum/common" - "github.com/morph-l2/go-ethereum/common/hexutil" "github.com/morph-l2/go-ethereum/core/types" "github.com/morph-l2/go-ethereum/log" "github.com/morph-l2/go-ethereum/rpc" @@ -35,6 +35,17 @@ func Loop(ctx context.Context, period time.Duration, f func()) { } } +func ParseBatchIndex(method string, calldata []byte) uint64 { + switch method { + case "commitBatch": + return ParseParentBatchIndex(calldata) + 1 + case "finalizeBatch": + return ParseFBatchIndex(calldata) + default: + return 0 + } +} + func ParseFBatchIndex(calldata []byte) uint64 { abi, _ := bindings.RollupMetaData.GetAbi() parms, _ := abi.Methods["finalizeBatch"].Inputs.Unpack(calldata[4:]) @@ -173,15 +184,37 @@ func ParseNonce(s string) (uint64, uint64, error) { } } -func ParseL1MessageCnt(blockContexts hexutil.Bytes) uint64 { - - var l1msgcnt uint64 - blockNum := binary.BigEndian.Uint16(blockContexts[:2]) - remainingBz := blockContexts[2:] - for i := 0; i < int(blockNum); i++ { - l1msgcnt += uint64(binary.BigEndian.Uint16(remainingBz[58:60])) - remainingBz = remainingBz[60:] +func CalcFeeForTx(tx *types.Transaction) *big.Int { + if tx == nil { + return big.NewInt(0) } + switch tx.Type() { + case types.DynamicFeeTxType: + if tx.GasFeeCap() == nil { + return big.NewInt(0) + } + fee := new(big.Int).Mul( + tx.GasFeeCap(), + big.NewInt(int64(tx.Gas())), + ) + return fee + case types.BlobTxType: + var blobfee *big.Int + if tx.BlobGasFeeCap() == nil { + blobfee = big.NewInt(0) + } else { + blobfee = new(big.Int).Mul(tx.BlobGasFeeCap(), big.NewInt(int64(tx.BlobGas()))) + } + var calldatafee *big.Int + if tx.GasFeeCap() == nil { + calldatafee = big.NewInt(0) + } else { + calldatafee = new(big.Int).Mul(tx.GasFeeCap(), big.NewInt(int64(tx.Gas()))) + } + return new(big.Int).Add(blobfee, calldatafee) - return l1msgcnt + default: + log.Warn("unknown tx type to calc fee", "type", tx.Type()) + return big.NewInt(0) + } } diff --git a/tx-submitter/utils/utils_test.go b/tx-submitter/utils/utils_test.go index 71cf61114..245957104 100644 --- a/tx-submitter/utils/utils_test.go +++ b/tx-submitter/utils/utils_test.go @@ -2,8 +2,13 @@ package utils import ( "encoding/hex" + "math/big" "testing" + "github.com/holiman/uint256" + "github.com/morph-l2/go-ethereum/common" + "github.com/morph-l2/go-ethereum/core/types" + "github.com/morph-l2/go-ethereum/params" "github.com/stretchr/testify/require" ) @@ -14,3 +19,96 @@ func TestParseBatchIndex(t *testing.T) { require.NoError(t, err) require.EqualValues(t, ParseParentBatchIndex(bs), 16) } + +func TestCalcFeeForTx(t *testing.T) { + singleBlobHash := make([]common.Hash, 1) + tests := []struct { + name string + tx *types.Transaction + expected *big.Int + }{ + { + name: "nil transaction", + tx: nil, + expected: big.NewInt(0), + }, + { + name: "DynamicFeeTxType with nil GasFeeCap", + tx: types.NewTx(&types.DynamicFeeTx{ + ChainID: big.NewInt(1), + GasTipCap: big.NewInt(100), + GasFeeCap: nil, + Gas: 21000, + }), + expected: big.NewInt(0), + }, + { + name: "DynamicFeeTxType with non-nil GasFeeCap", + tx: types.NewTx(&types.DynamicFeeTx{ + ChainID: big.NewInt(1), + GasTipCap: big.NewInt(100), + GasFeeCap: big.NewInt(200), + Gas: 21000, + }), + expected: new(big.Int).Mul(big.NewInt(200), big.NewInt(21000)), + }, + { + name: "BlobTxType with nil BlobFeeCap and GasFeeCap", + tx: types.NewTx(&types.BlobTx{ + BlobFeeCap: nil, + BlobHashes: make([]common.Hash, 1), + GasFeeCap: nil, + Gas: 21000, + }), + expected: big.NewInt(0), + }, + { + name: "BlobTxType with nil BlobFeeCap and non-nil GasFeeCap", + tx: types.NewTx(&types.BlobTx{ + BlobFeeCap: nil, + BlobHashes: singleBlobHash, + GasFeeCap: uint256.NewInt(200), + Gas: 21000, + }), + expected: new(big.Int).Mul(big.NewInt(200), big.NewInt(21000)), + }, + { + name: "BlobTxType with non-nil BlobFeeCap and nil GasFeeCap", + tx: types.NewTx(&types.BlobTx{ + BlobFeeCap: uint256.NewInt(150), + BlobHashes: singleBlobHash, + GasFeeCap: nil, + Gas: 21000, + }), + expected: new(big.Int).Mul(big.NewInt(150), big.NewInt(params.BlobTxBlobGasPerBlob)), + }, + { + name: "BlobTxType with non-nil BlobFeeCap and non-nil GasFeeCap", + tx: types.NewTx(&types.BlobTx{ + BlobFeeCap: uint256.NewInt(150), + BlobHashes: singleBlobHash, + GasFeeCap: uint256.NewInt(200), + Gas: 21000, + }), + expected: new(big.Int).Add( + new(big.Int).Mul(big.NewInt(150), big.NewInt(params.BlobTxBlobGasPerBlob)), + new(big.Int).Mul(big.NewInt(200), big.NewInt(21000)), + ), + }, + { + name: "Unknown tx type", + tx: types.NewTx(&types.LegacyTx{ + Gas: 21000, + GasPrice: big.NewInt(200), + }), + expected: big.NewInt(0), + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result := CalcFeeForTx(tt.tx) + require.Equal(t, tt.expected, result) + }) + } +} From 83f701ed0b9de14c81109ca83a95bda4bc1ca0cb Mon Sep 17 00:00:00 2001 From: FletcherMan Date: Mon, 25 Nov 2024 11:32:53 +0800 Subject: [PATCH 044/106] update block size config (#648) --- ops/l2-genesis/deploy-config/qanet-deploy-config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ops/l2-genesis/deploy-config/qanet-deploy-config.json b/ops/l2-genesis/deploy-config/qanet-deploy-config.json index 0f573d0e1..82ea5fcbf 100644 --- a/ops/l2-genesis/deploy-config/qanet-deploy-config.json +++ b/ops/l2-genesis/deploy-config/qanet-deploy-config.json @@ -14,8 +14,8 @@ "fundDevAccounts": false, "l1StartingBlockTag": "earliest", - "maxTxPerBlock": 10000, - "maxTxPayloadBytesPerBlock": 345000, + "maxTxPerBlock": 1000, + "maxTxPayloadBytesPerBlock": 122880, "gasPriceOracleOverhead": 2500, "gasPriceOracleScalar": 1000000000, From 8d921dd09138d8893e7221617e3474b03fd52320 Mon Sep 17 00:00:00 2001 From: corey Date: Thu, 28 Nov 2024 14:59:15 +0800 Subject: [PATCH 045/106] Add base height for derivation node (#650) --- node/derivation/config.go | 5 +++++ node/derivation/derivation.go | 5 +++++ node/flags/flags.go | 14 ++++++++++++++ node/validator/config.go | 16 +++++++++------- node/validator/validator.go | 18 ++++++------------ 5 files changed, 39 insertions(+), 19 deletions(-) diff --git a/node/derivation/config.go b/node/derivation/config.go index d29dd1fef..439acbc42 100644 --- a/node/derivation/config.go +++ b/node/derivation/config.go @@ -37,6 +37,7 @@ type Config struct { BeaconRpc string `json:"beacon_rpc"` RollupContractAddress common.Address `json:"rollup_contract_address"` StartHeight uint64 `json:"start_height"` + BaseHeight uint64 `json:"base_height"` PollInterval time.Duration `json:"poll_interval"` LogProgressInterval time.Duration `json:"log_progress_interval"` FetchBlockRange uint64 `json:"fetch_block_range"` @@ -86,6 +87,10 @@ func (c *Config) SetCliContext(ctx *cli.Context) error { } } + if ctx.GlobalIsSet(flags.DerivationBaseHeight.Name) { + c.BaseHeight = ctx.GlobalUint64(flags.DerivationBaseHeight.Name) + } + if ctx.GlobalIsSet(flags.DerivationPollInterval.Name) { c.PollInterval = ctx.GlobalDuration(flags.DerivationPollInterval.Name) if c.PollInterval == 0 { diff --git a/node/derivation/derivation.go b/node/derivation/derivation.go index 6db69e881..cd0c7c4af 100644 --- a/node/derivation/derivation.go +++ b/node/derivation/derivation.go @@ -56,6 +56,7 @@ type Derivation struct { cancel context.CancelFunc startHeight uint64 + baseHeight uint64 fetchBlockRange uint64 pollInterval time.Duration logProgressInterval time.Duration @@ -124,6 +125,7 @@ func NewDerivationClient(ctx context.Context, cfg *Config, syncer *sync.Syncer, cancel: cancel, stop: make(chan struct{}), startHeight: cfg.StartHeight, + baseHeight: cfg.BaseHeight, fetchBlockRange: cfg.FetchBlockRange, pollInterval: cfg.PollInterval, logProgressInterval: cfg.LogProgressInterval, @@ -226,6 +228,9 @@ func (d *Derivation) derivationBlock(ctx context.Context) { d.logger.Info("batch derivation complete", "batch_index", batchInfo.batchIndex, "currentBatchEndBlock", lastHeader.Number.Uint64()) d.metrics.SetL2DeriveHeight(lastHeader.Number.Uint64()) d.metrics.SetSyncedBatchIndex(batchInfo.batchIndex) + if lastHeader.Number.Uint64() <= d.baseHeight { + continue + } withdrawalRoot, err := d.L2ToL1MessagePasser.MessageRoot(&bind.CallOpts{ BlockNumber: lastHeader.Number, }) diff --git a/node/flags/flags.go b/node/flags/flags.go index c28f27b39..7ea7c21b2 100644 --- a/node/flags/flags.go +++ b/node/flags/flags.go @@ -170,6 +170,12 @@ var ( EnvVar: prefixEnvVar("VALIDATOR"), } + ChallengeEnable = cli.BoolFlag{ + Name: "validator.challengeEnable", + Usage: "Enable the validator challenge", + EnvVar: prefixEnvVar("VALIDATOR_CHALLENGE_ENABLE"), + } + // validator ValidatorPrivateKey = cli.StringFlag{ Name: "validator.privateKey", @@ -190,6 +196,12 @@ var ( EnvVar: prefixEnvVar("DERIVATION_START_HEIGHT"), } + DerivationBaseHeight = cli.Uint64Flag{ + Name: "derivation.baseHeight", + Usage: "The starting height of l2 derive, usually the node snapshot or other trusted starting height, before which stateRoot will not be checked", + EnvVar: prefixEnvVar("DERIVATION_BASE_HEIGHT"), + } + DerivationPollInterval = cli.DurationFlag{ Name: "derivation.pollInterval", Usage: "Frequency at which we query for rollup data", @@ -315,6 +327,7 @@ var Flags = []cli.Flag{ TendermintConfigPath, MockEnabled, ValidatorEnable, + ChallengeEnable, // validator ValidatorPrivateKey, @@ -322,6 +335,7 @@ var Flags = []cli.Flag{ // derivation RollupContractAddress, DerivationStartHeight, + DerivationBaseHeight, DerivationPollInterval, DerivationLogProgressInterval, DerivationFetchBlockRange, diff --git a/node/validator/config.go b/node/validator/config.go index 3d36fe9af..986fd16d5 100644 --- a/node/validator/config.go +++ b/node/validator/config.go @@ -27,18 +27,20 @@ func NewConfig() *Config { func (c *Config) SetCliContext(ctx *cli.Context) error { l1NodeAddr := ctx.GlobalString(flags.L1NodeAddr.Name) l1ChainID := ctx.GlobalUint64(flags.L1ChainID.Name) - hexPrvKey := ctx.GlobalString(flags.ValidatorPrivateKey.Name) - hex := strings.TrimPrefix(hexPrvKey, "0x") - privateKey, err := crypto.HexToECDSA(hex) - if err != nil { - return err + c.challengeEnable = ctx.GlobalBool(flags.ChallengeEnable.Name) + if c.challengeEnable { + hexPrvKey := ctx.GlobalString(flags.ValidatorPrivateKey.Name) + hex := strings.TrimPrefix(hexPrvKey, "0x") + privateKey, err := crypto.HexToECDSA(hex) + if err != nil { + return err + } + c.PrivateKey = privateKey } - c.challengeEnable = ctx.GlobalIsSet(flags.ValidatorEnable.Name) addrHex := ctx.GlobalString(flags.RollupContractAddress.Name) rollupContract := common.HexToAddress(addrHex) c.l1RPC = l1NodeAddr c.L1ChainID = big.NewInt(int64(l1ChainID)) - c.PrivateKey = privateKey c.rollupContract = rollupContract return nil } diff --git a/node/validator/validator.go b/node/validator/validator.go index 627123c4e..224c8c3d8 100644 --- a/node/validator/validator.go +++ b/node/validator/validator.go @@ -38,11 +38,12 @@ func NewValidator(cfg *Config, rollup *bindings.Rollup, logger tmlog.Logger) (*V return nil, fmt.Errorf("dial l1 node error:%v", err) } return &Validator{ - cli: cli, - contract: rollup, - privateKey: cfg.PrivateKey, - l1ChainID: cfg.L1ChainID, - logger: logger, + cli: cli, + contract: rollup, + privateKey: cfg.PrivateKey, + l1ChainID: cfg.L1ChainID, + challengeEnable: cfg.challengeEnable, + logger: logger, }, nil } @@ -68,13 +69,6 @@ func (v *Validator) ChallengeState(batchIndex uint64) error { } opts.GasPrice = gasPrice opts.NoSend = true - //publicKey := v.privateKey.Public() - // publicKeyECDSA, ok := publicKey.(*ecdsa.PublicKey) - // if !ok { - // log.Error("cannot assert type: publicKey is not of type *ecdsa.PublicKey") - // } - - //receiver := crypto.PubkeyToAddress(*publicKeyECDSA) batchHash, err := v.contract.CommittedBatches( &bind.CallOpts{ Pending: false, From 6f1854b295032bb8a246daf4b9e34d4a22138830 Mon Sep 17 00:00:00 2001 From: FletcherMan Date: Thu, 28 Nov 2024 15:55:38 +0800 Subject: [PATCH 046/106] recover SkippedL1Txs name --- node/types/consensus_message.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/types/consensus_message.go b/node/types/consensus_message.go index 29a25df1d..1fdbe491d 100644 --- a/node/types/consensus_message.go +++ b/node/types/consensus_message.go @@ -88,7 +88,7 @@ type WrappedBlock struct { Hash common.Hash `json:"hash"` CollectedL1TxHashes []common.Hash `json:"l1TxHashes" rlp:"optional"` - _ []*types.SkippedTransaction `json:"-" rlp:"optional"` + SkippedL1Txs []*types.SkippedTransaction `json:"-" rlp:"optional"` BaseFee *big.Int `json:"baseFeePerGas" rlp:"optional"` } From 36e160df390017ba14da493067ab7a6fcfdaa9a4 Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Fri, 29 Nov 2024 17:00:47 +0800 Subject: [PATCH 047/106] Fix set failed index failed (#654) Co-authored-by: WorldDogs --- tx-submitter/services/pendingtx.go | 10 ++------ tx-submitter/services/pendingtx_test.go | 31 +++++++++++++++++++++++++ tx-submitter/services/rollup.go | 17 ++++++++++---- 3 files changed, 46 insertions(+), 12 deletions(-) create mode 100644 tx-submitter/services/pendingtx_test.go diff --git a/tx-submitter/services/pendingtx.go b/tx-submitter/services/pendingtx.go index d0f706c95..53276fb7a 100644 --- a/tx-submitter/services/pendingtx.go +++ b/tx-submitter/services/pendingtx.go @@ -169,12 +169,12 @@ func (pt *PendingTxs) IncQueryTimes(txHash common.Hash) { pt.txinfos[txHash] = TxInfo{tx: pt.txinfos[txHash].tx, queryTimes: pt.txinfos[txHash].queryTimes + 1, sendTime: pt.txinfos[txHash].sendTime} } -func (pt *PendingTxs) SetFailedStatus(index uint64) { +func (pt *PendingTxs) TrySetFailedBatchIndex(index uint64) { pt.mu.Lock() defer pt.mu.Unlock() // failed index must be less than pindex - if pt.failedIndex != nil || index >= pt.pindex { + if index > pt.pindex { return } @@ -231,9 +231,3 @@ func (pt *PendingTxs) ExistedIndex(index uint64) bool { return false } - -func (pt *PendingTxs) ResetFailedIndex(index uint64) { - pt.mu.Lock() - defer pt.mu.Unlock() - pt.failedIndex = &index -} diff --git a/tx-submitter/services/pendingtx_test.go b/tx-submitter/services/pendingtx_test.go new file mode 100644 index 000000000..71cb9ab76 --- /dev/null +++ b/tx-submitter/services/pendingtx_test.go @@ -0,0 +1,31 @@ +package services + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestSetFailedStatus(t *testing.T) { + // index 2 failed -> set failed index 2 success + pt := NewPendingTxs(nil, nil, nil) + pt.SetPindex(2) + require.Nil(t, pt.failedIndex) + pt.TrySetFailedBatchIndex(2) + require.NotNil(t, pt.failedIndex) + require.EqualValues(t, 2, *pt.failedIndex) + + // failed index =2 + // new failed index = 3 + // set failed index failed + pt = NewPendingTxs(nil, nil, nil) + failedIndex := uint64(2) + pt.failedIndex = &failedIndex + pt.TrySetFailedBatchIndex(3) + require.EqualValues(t, 2, *pt.failedIndex) + + // set failed index without pindex -> failed + pt = NewPendingTxs(nil, nil, nil) + pt.TrySetFailedBatchIndex(2) + require.Nil(t, pt.failedIndex) +} diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 33a65bb66..2ca77a031 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -333,7 +333,7 @@ func (r *Rollup) ProcessTx() error { // happening between RemoveRollupRestriction // and SetPindex in the rollup function r.rollupFinalizeMu.Lock() - r.pendingTxs.SetFailedStatus(index) + r.pendingTxs.TrySetFailedBatchIndex(index) r.rollupFinalizeMu.Unlock() } @@ -640,7 +640,16 @@ func (r *Rollup) rollup() error { } } - log.Info("batch info", "last_commit_batch", batchIndex-1, "batch_will_get", batchIndex) + var failedIndex uint64 + if r.pendingTxs.failedIndex != nil { + failedIndex = *r.pendingTxs.failedIndex + } + log.Info("batch index info", + "last_committed_batch_index", cindex, + "batch_index_will_get", batchIndex, + "pending_index", r.pendingTxs.pindex, + "failed_index", failedIndex, + ) if r.pendingTxs.ExistedIndex(batchIndex) { log.Info("batch index already committed", "index", batchIndex) return nil @@ -706,9 +715,9 @@ func (r *Rollup) rollup() error { if r.pendingTxs.HaveFailed() { log.Warn("estimate gas err, wait failed tx fixed", "err", err, - "update_pooled_pending_index", cindex+1, + "try_update_pooled_pending_index", cindex+1, ) - r.pendingTxs.ResetFailedIndex(cindex + 1) + r.pendingTxs.TrySetFailedBatchIndex(cindex + 1) return nil } From d5000214e8188aee131a6ae9ba19392dcf862926 Mon Sep 17 00:00:00 2001 From: vincent Date: Fri, 29 Nov 2024 17:14:58 +0800 Subject: [PATCH 048/106] Fix upgrade batch (#655) Co-authored-by: chengwenxi <22697326+chengwenxi@users.noreply.github.com> --- .../contracts/libraries/codec/BatchHeaderCodecV0.sol | 2 +- contracts/contracts/test/Rollup.t.sol | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol b/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol index fc3d35534..1c80a4b25 100644 --- a/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol +++ b/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol @@ -29,7 +29,7 @@ library BatchHeaderCodecV0 { /// @return length The length in bytes of the batch header. function loadAndValidate(bytes calldata _batchHeader) internal pure returns (uint256 batchPtr, uint256 length) { length = _batchHeader.length; - require(length == BATCH_HEADER_LENGTH, "batch header length must be 249"); + require(length >= BATCH_HEADER_LENGTH, "batch header length too small"); // copy batch header to memory. assembly { batchPtr := mload(0x40) diff --git a/contracts/contracts/test/Rollup.t.sol b/contracts/contracts/test/Rollup.t.sol index d29606ad9..8f093c673 100644 --- a/contracts/contracts/test/Rollup.t.sol +++ b/contracts/contracts/test/Rollup.t.sol @@ -290,7 +290,7 @@ contract RollupTest is L1MessageBaseTest { // batch header length incorrect, revert hevm.startPrank(alice); - hevm.expectRevert("batch header length must be 249"); + hevm.expectRevert("batch header length too small"); batchDataInput = IRollup.BatchDataInput(0, new bytes(120), new bytes(1), stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); @@ -338,8 +338,8 @@ contract RollupTest is L1MessageBaseTest { // incorrect batch header length, revert hevm.startPrank(alice); - hevm.expectRevert("batch header length must be 249"); - batchDataInput = IRollup.BatchDataInput(0, new bytes(250), new bytes(1), stateRoot, stateRoot, getTreeRoot()); + hevm.expectRevert("batch header length too small"); + batchDataInput = IRollup.BatchDataInput(0, new bytes(248), new bytes(1), stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); @@ -566,7 +566,7 @@ contract RollupTest is L1MessageBaseTest { assembly { mstore(add(batchHeader, add(0x20, 121)), bytesData1) // stateRootHsash } - hevm.expectRevert("batch header length must be 249"); + hevm.expectRevert("batch header length too small"); hevm.prank(multisig); rollup.importGenesisBatch(batchHeader); From 4b52f1dd96241d12f5ff5149edd4c01e5f9a9336 Mon Sep 17 00:00:00 2001 From: "marvel.yu" Date: Tue, 3 Dec 2024 14:31:32 +0800 Subject: [PATCH 049/106] update for holesky build rule --- MakefileEc2.mk | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/MakefileEc2.mk b/MakefileEc2.mk index 39cf56334..8fa53be8f 100644 --- a/MakefileEc2.mk +++ b/MakefileEc2.mk @@ -21,3 +21,19 @@ build-bk-prod-morph-prod-mainnet-to-morph-tx-submitter: cp tx-submitter/tx-submitter dist/ tar -czvf tx-submitter.tar.gz dist aws s3 cp tx-submitter.tar.gz s3://morph-0582-morph-technical-department-mainnet-data/morph-setup/tx-submitter.tar.gz + +# build for holesky +build-bk-prod-morph-prod-testnet-to-morph-node-holesky: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/node && make build + cp node/build/bin/morphnode dist/ + cp node/build/bin/tendermint dist/ + tar -czvf morph-node.tar.gz dist + aws s3 cp morph-node.tar.gz s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/morph-node.tar.gz + +build-bk-prod-morph-prod-testnet-to-morph-tx-submitter-holesky: + if [ ! -d dist ]; then mkdir -p dist; fi + env GO111MODULE=on CGO_LDFLAGS="-ldl" CGO_ENABLED=1 go build -v $(LDFLAGS) -o tx-submitter/tx-submitter ./tx-submitter/cmd + cp tx-submitter/tx-submitter dist/ + tar -czvf tx-submitter.tar.gz dist + aws s3 cp tx-submitter.tar.gz s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/tx-submitter.tar.gz From 231e9b2992ce3feaede235963088292edbd5a4ce Mon Sep 17 00:00:00 2001 From: FletcherMan Date: Thu, 5 Dec 2024 17:52:58 +0800 Subject: [PATCH 050/106] Setup devnet nodes (#663) --- .gitignore | 1 + Makefile | 1 + node/Makefile | 6 ++ ops/devnet-morph/devnet/setup_nodes.py | 121 +++++++++++++++++++++++++ ops/devnet-morph/main.py | 2 + ops/docker/Dockerfile.l2-node | 25 +++++ ops/docker/docker-compose-4nodes.yml | 52 +++-------- 7 files changed, 170 insertions(+), 38 deletions(-) create mode 100644 ops/devnet-morph/devnet/setup_nodes.py create mode 100644 ops/docker/Dockerfile.l2-node diff --git a/.gitignore b/.gitignore index 778eac070..d267e053d 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ contracts/yarn.lock build/bin cache out +ops/docker/.devnet ops/l2-genesis/.devnet ops/l2-genesis/.qanet ops/l2-genesis/.testnet diff --git a/Makefile b/Makefile index 92026b225..86c3263b4 100644 --- a/Makefile +++ b/Makefile @@ -143,6 +143,7 @@ devnet-down: devnet-clean-build: devnet-down docker volume ls --filter name=docker-* --format='{{.Name}}' | xargs -r docker volume rm rm -rf ops/l2-genesis/.devnet + rm -rf ops/docker/.devnet rm -rf ops/docker/consensus/beacondata ops/docker/consensus/validatordata ops/docker/consensus/genesis.ssz rm -rf ops/docker/execution/geth .PHONY: devnet-clean-build diff --git a/node/Makefile b/node/Makefile index ee464b9d3..1ab1e3091 100644 --- a/node/Makefile +++ b/node/Makefile @@ -87,6 +87,12 @@ testnet-clean: testnet-down rm -rf ./mytestnet .PHONY: testnet-clean +install-tendermint: + if [ ! -d build/bin ]; then mkdir -p build/bin; fi + go mod download + env GO111MODULE=on CGO_ENABLED=1 go install -v $(LDFLAGS) ./cmd/tendermint +.PHONY: tendermint + diff --git a/ops/devnet-morph/devnet/setup_nodes.py b/ops/devnet-morph/devnet/setup_nodes.py new file mode 100644 index 000000000..d47a6c61f --- /dev/null +++ b/ops/devnet-morph/devnet/setup_nodes.py @@ -0,0 +1,121 @@ +import os +import shutil +import subprocess +import sys +import re + +def setup_devnet_nodes(): + """ + Set up the devnet nodes, modify configuration files using toml library, and copy key files. + """ + root_dir = subprocess.check_output(["git", "rev-parse", "--show-toplevel"], text=True).strip() + # Check if Tendermint is installed + if shutil.which("tendermint") is None: + print("Tendermint is not installed. Starting the build process...") + node_dir = os.path.join(root_dir, "node") + ops_dir = os.path.join(root_dir, "ops", "docker") + + if not os.path.isdir(node_dir): + print(f"Error: Node directory not found at {node_dir}. Exiting.") + sys.exit(1) + + os.chdir(node_dir) + print(f"Building Tendermint in {node_dir}...") + if subprocess.call(["make", "install-tendermint"]) != 0: + print("Error: Failed to build Tendermint. Exiting.") + sys.exit(1) + + os.chdir(ops_dir) + print("Tendermint build process completed.") + + # Check if .devnet directory already exists + docker_dir = os.path.join(root_dir, "ops", "docker") + devnet_dir = os.path.join(docker_dir, ".devnet") + if os.path.exists(devnet_dir): + print(".devnet directory already exists. Devnet nodes setup has already been completed. Exiting.") + return + + # Run the Tendermint testnet command + print("Setting up the devnet...") + command = [ + "tendermint", "testnet", "--v", "4", "--n", "1", "--o", devnet_dir, + "--populate-persistent-peers", + "--hostname", "node-0", + "--hostname", "node-1", + "--hostname", "node-2", + "--hostname", "node-3", + "--hostname", "sentry-node-0" + ] + + if subprocess.call(command) != 0: + print("Failed to set up devnet.") + sys.exit(1) + + # Modify config.toml files using toml library + print("Modifying config.toml files...") + config_files = [ + os.path.join(devnet_dir, f"node{i}/config/config.toml") for i in range(5) + ] + + persistent_peers_value = ( + "93e27ea2306e158a8146d5f44caaab97496797d2@node-0:26656," + "7f78b7d7a7e6bad4faf68d5731d437f4288d96d0@node-1:26656," + "06c699be2f9aeb9f7ec79f508a95ff80576deb12@node-2:26656," + "b1a131f40d5d3abefe0dd787513c936ef62ac2d6@node-3:26656," + "dae813274913aaf39e7cd3226a0aa8bce00644e1@sentry-node-0:26656" + ) + + for i, config_file in enumerate(config_files): + if not os.path.isfile(config_file): + print(f"Error: {config_file} not found. Exiting.") + sys.exit(1) + + with open(config_file, "r") as f: + content = f.read() + + # Replace the required fields + content = content.replace('create_empty_blocks_interval = "0s"', 'create_empty_blocks_interval = "5s"') + content = content.replace('peer_gossip_sleep_duration = "100ms"', 'peer_gossip_sleep_duration = "10ms"') + content = content.replace('flush_throttle_timeout = "100ms"', 'flush_throttle_timeout = "10ms"') + content = content.replace('max_packet_msg_payload_size = 1024', 'max_packet_msg_payload_size = 10485760') + content = content.replace('send_rate = 5120000', 'send_rate = 52428800') + content = content.replace('recv_rate = 5120000', 'recv_rate = 102428800') + content = content.replace('block_sync = false', 'block_sync = true') + content = re.sub(r'persistent_peers\s*=\s*".*?"', f'persistent_peers = "{persistent_peers_value}"', content) + + # Modify pex for nodes 0 to 3 + if i < 4: + content = content.replace('pex = true', 'pex = false') + + with open(config_file, "w") as f: + f.write(content) + + print("All config.toml files have been updated successfully.") + + # Copy key files to devnet node directories + print("Copying key files...") + node_dirs = [f"node{i}" for i in range(5)] + + for node in node_dirs: + source_dir = os.path.join(docker_dir, node) + dest_dir = os.path.join(devnet_dir, node, "config") + + if not os.path.isdir(source_dir) or not os.path.isdir(dest_dir): + print(f"Error: Missing source or destination directory for {node}. Exiting.") + sys.exit(1) + + # Copy specific files + shutil.copyfile(os.path.join(source_dir, "node_key.json"), os.path.join(dest_dir, "node_key.json")) + + # Skip copying for node4 bls_key.json and priv_validator_key.json + if node != "node4": + shutil.copyfile(os.path.join(source_dir, "bls_key.json"), os.path.join(dest_dir, "bls_key.json")) + shutil.copyfile(os.path.join(source_dir, "priv_validator_key.json"), os.path.join(dest_dir, "priv_validator_key.json")) + + # Copy and rename genesis file + shutil.copyfile(os.path.join(docker_dir, "tendermint-devnet-genesis.json"), os.path.join(dest_dir, "genesis.json")) + + print(f"Files copied successfully for {node}.") + + print("All key files have been copied successfully.") + print("Devnet nodes setup completed successfully.") diff --git a/ops/devnet-morph/main.py b/ops/devnet-morph/main.py index 20cc1cb6d..b773b50eb 100644 --- a/ops/devnet-morph/main.py +++ b/ops/devnet-morph/main.py @@ -1,7 +1,9 @@ import devnet +from devnet.setup_nodes import setup_devnet_nodes def main(): + setup_devnet_nodes() devnet.main() diff --git a/ops/docker/Dockerfile.l2-node b/ops/docker/Dockerfile.l2-node new file mode 100644 index 000000000..940ca9dfd --- /dev/null +++ b/ops/docker/Dockerfile.l2-node @@ -0,0 +1,25 @@ +# Build Stage +FROM morph/go-ubuntu-builder:go-1.22-ubuntu as builder + +# Set working directory and copy necessary files +COPY . /morph +WORKDIR /morph/node + +# Run build command +RUN make build + +# Final Stage +FROM morph/go-ubuntu-builder:go-1.22-ubuntu + +# Update and install dependencies, then clean up unnecessary files +RUN apt-get -qq update \ + && apt-get -qq install -y --no-install-recommends ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +# Copy the built binaries from the builder image to the final image +COPY --from=builder /morph/node/build/bin/tendermint /usr/local/bin/ +COPY --from=builder /morph/node/build/bin/morphnode /usr/local/bin/ + +# Set the default command +CMD ["morphnode", "--home", "/data"] + diff --git a/ops/docker/docker-compose-4nodes.yml b/ops/docker/docker-compose-4nodes.yml index 27b39f40e..7353ee639 100644 --- a/ops/docker/docker-compose-4nodes.yml +++ b/ops/docker/docker-compose-4nodes.yml @@ -225,11 +225,10 @@ services: depends_on: morph-geth-0: condition: service_started - image: morph-node-0:latest + image: morph-node:latest build: context: ../.. - dockerfile: ops/docker/Dockerfile.l2-node-4 - target: node0 + dockerfile: ops/docker/Dockerfile.l2-node restart: unless-stopped ports: - "26656" @@ -246,7 +245,7 @@ services: - MORPH_NODE_SYNC_START_HEIGHT=${MORPH_NODE_SYNC_START_HEIGHT:-1} - MORPH_NODE_UPGRADE_BATCH_TIME=${BATCH_UPGRADE_TIME} volumes: - - "node_data_0:${NODE_DATA_DIR}" + - ".devnet/node0:${NODE_DATA_DIR}" - "${PWD}/jwt-secret.txt:${JWT_SECRET_PATH}" command: > morphnode @@ -255,15 +254,9 @@ services: node-1: container_name: node-1 depends_on: - morph-geth-1: - condition: service_started node-0: condition: service_started - image: morph-node-1:latest - build: - context: ../.. - dockerfile: ops/docker/Dockerfile.l2-node-4 - target: node1 + image: morph-node:latest restart: unless-stopped ports: - "26656" @@ -280,7 +273,7 @@ services: - MORPH_NODE_SYNC_START_HEIGHT=${MORPH_NODE_SYNC_START_HEIGHT:-1} - MORPH_NODE_UPGRADE_BATCH_TIME=${BATCH_UPGRADE_TIME} volumes: - - "node_data_1:${NODE_DATA_DIR}" + - ".devnet/node1:${NODE_DATA_DIR}" - "${PWD}/jwt-secret.txt:${JWT_SECRET_PATH}" command: > morphnode @@ -289,15 +282,9 @@ services: node-2: container_name: node-2 depends_on: - morph-geth-2: - condition: service_started node-0: condition: service_started - image: morph-node-2:latest - build: - context: ../.. - dockerfile: ops/docker/Dockerfile.l2-node-4 - target: node2 + image: morph-node:latest restart: unless-stopped ports: - "26656" @@ -315,7 +302,7 @@ services: - MORPH_NODE_SYNC_START_HEIGHT=${MORPH_NODE_SYNC_START_HEIGHT:-1} - MORPH_NODE_UPGRADE_BATCH_TIME=${BATCH_UPGRADE_TIME} volumes: - - "node_data_2:${NODE_DATA_DIR}" + - ".devnet/node2:${NODE_DATA_DIR}" - "${PWD}/jwt-secret.txt:${JWT_SECRET_PATH}" command: > morphnode @@ -324,15 +311,9 @@ services: node-3: container_name: node-3 depends_on: - morph-geth-3: - condition: service_started node-0: condition: service_started - image: morph-node-3:latest - build: - context: ../.. - dockerfile: ops/docker/Dockerfile.l2-node-4 - target: node3 + image: morph-node:latest restart: unless-stopped ports: - "26656" @@ -350,7 +331,7 @@ services: - MORPH_NODE_SYNC_START_HEIGHT=${MORPH_NODE_SYNC_START_HEIGHT:-1} - MORPH_NODE_UPGRADE_BATCH_TIME=${BATCH_UPGRADE_TIME} volumes: - - "node_data_3:${NODE_DATA_DIR}" + - ".devnet/node3:${NODE_DATA_DIR}" - "${PWD}/jwt-secret.txt:${JWT_SECRET_PATH}" command: > morphnode @@ -384,13 +365,9 @@ services: sentry-node-0: container_name: sentry-node-0 depends_on: - sentry-geth-0: + node-0: condition: service_started - image: sentry-node-0:latest - build: - context: ../.. - dockerfile: ops/docker/Dockerfile.l2-node-4 - target: sentry0 + image: morph-node:latest restart: unless-stopped ports: - "26656" @@ -407,7 +384,7 @@ services: - MORPH_NODE_L1_CONFIRMATIONS=0 - MORPH_NODE_SYNC_START_HEIGHT=${MORPH_NODE_SYNC_START_HEIGHT:-1} volumes: - - "sentry_node_data:${NODE_DATA_DIR}" + - ".devnet/node4:${NODE_DATA_DIR}" - "${PWD}/jwt-secret.txt:${JWT_SECRET_PATH}" command: > morphnode @@ -442,9 +419,8 @@ services: depends_on: validator_geth: condition: service_started - build: - context: ../.. - dockerfile: ops/docker/Dockerfile.l2-node-1 + node-0: + condition: service_started image: morph-node:latest ports: - "26660" From 6902660386615b4208f40ac2ad49f4efc9ad9177 Mon Sep 17 00:00:00 2001 From: FletcherMan Date: Fri, 6 Dec 2024 12:09:31 +0800 Subject: [PATCH 051/106] fix devnet up (#666) --- ops/devnet-morph/devnet/setup_nodes.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ops/devnet-morph/devnet/setup_nodes.py b/ops/devnet-morph/devnet/setup_nodes.py index d47a6c61f..7e72c730d 100644 --- a/ops/devnet-morph/devnet/setup_nodes.py +++ b/ops/devnet-morph/devnet/setup_nodes.py @@ -25,7 +25,8 @@ def setup_devnet_nodes(): print("Error: Failed to build Tendermint. Exiting.") sys.exit(1) - os.chdir(ops_dir) + # back to the root directory + os.chdir(root_dir) print("Tendermint build process completed.") # Check if .devnet directory already exists From a3035006b0edb26612853380942d5e72c51321ca Mon Sep 17 00:00:00 2001 From: corey Date: Fri, 6 Dec 2024 13:53:36 +0800 Subject: [PATCH 052/106] Oracle compatible with skip map version (#667) --- oracle/oracle/batch.go | 97 ++++++++++++++++++++++++++++-------------- 1 file changed, 66 insertions(+), 31 deletions(-) diff --git a/oracle/oracle/batch.go b/oracle/oracle/batch.go index 7f29d2023..231549d3b 100644 --- a/oracle/oracle/batch.go +++ b/oracle/oracle/batch.go @@ -19,6 +19,10 @@ import ( "github.com/morph-l2/go-ethereum/log" ) +var BeforeRemoveSkipMapMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIncorrectBatchLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNoBlockInBatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blockContexts\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"skippedL1MessageBitmap\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", +} + type BatchInfoMap map[common.Hash][]BatchInfo type RollupBatch struct { TxCount uint64 @@ -63,7 +67,7 @@ func (o *Oracle) GetBatchSubmission(ctx context.Context, startBlock, nextBatchSu if err != nil { return nil, fmt.Errorf("fetch rollupLog error:%v", err) } - if len(rLogs) > 1 { + if len(rLogs) >= 1 { break } startBlock = endBlock + 1 @@ -88,20 +92,71 @@ func (o *Oracle) GetBatchSubmission(ctx context.Context, startBlock, nextBatchSu if pending { return nil, errors.New("pending transaction") } + beforeRemoveSkipMapAbi, err := BeforeRemoveSkipMapMetaData.GetAbi() + if err != nil { + return nil, err + } abi, err := bindings.RollupMetaData.GetAbi() if err != nil { return nil, err } + var batch eth.RPCRollupBatch + if bytes.Equal(tx.Data()[0:4], abi.Methods["commitBatch"].ID) { + args, err := abi.Methods["commitBatch"].Inputs.Unpack(tx.Data()[4:]) + if err != nil { + log.Error("fetch batch info failed", "txHash", lg.TxHash, "blockNumber", lg.BlockNumber, "error", err) + return nil, fmt.Errorf("unpack commitBatch error:%v", err) + } + rollupBatchData := args[0].(struct { + Version uint8 "json:\"version\"" + ParentBatchHeader []uint8 "json:\"parentBatchHeader\"" + BlockContexts []uint8 "json:\"blockContexts\"" + PrevStateRoot [32]uint8 "json:\"prevStateRoot\"" + PostStateRoot [32]uint8 "json:\"postStateRoot\"" + WithdrawalRoot [32]uint8 "json:\"withdrawalRoot\"" + }) + batch = eth.RPCRollupBatch{ + Version: uint(rollupBatchData.Version), + ParentBatchHeader: rollupBatchData.ParentBatchHeader, + BlockContexts: rollupBatchData.BlockContexts, + PrevStateRoot: common.BytesToHash(rollupBatchData.PrevStateRoot[:]), + PostStateRoot: common.BytesToHash(rollupBatchData.PostStateRoot[:]), + WithdrawRoot: common.BytesToHash(rollupBatchData.WithdrawalRoot[:]), + } + } else if bytes.Equal(tx.Data()[0:4], beforeRemoveSkipMapAbi.Methods["commitBatch"].ID) { + args, err := beforeRemoveSkipMapAbi.Methods["commitBatch"].Inputs.Unpack(tx.Data()[4:]) + if err != nil { + log.Error("fetch batch info failed", "txHash", lg.TxHash, "blockNumber", lg.BlockNumber, "error", err) + return nil, fmt.Errorf("unpack commitBatch error:%v", err) + } + + rollupBatchData := args[0].(struct { + Version uint8 "json:\"version\"" + ParentBatchHeader []uint8 "json:\"parentBatchHeader\"" + BlockContexts []uint8 "json:\"blockContexts\"" + SkippedL1MessageBitmap []uint8 "json:\"skippedL1MessageBitmap\"" + PrevStateRoot [32]uint8 "json:\"prevStateRoot\"" + PostStateRoot [32]uint8 "json:\"postStateRoot\"" + WithdrawalRoot [32]uint8 "json:\"withdrawalRoot\"" + }) + batch = eth.RPCRollupBatch{ + Version: uint(rollupBatchData.Version), + ParentBatchHeader: rollupBatchData.ParentBatchHeader, + BlockContexts: rollupBatchData.BlockContexts, + SkippedL1MessageBitmap: rollupBatchData.SkippedL1MessageBitmap, + PrevStateRoot: common.BytesToHash(rollupBatchData.PrevStateRoot[:]), + PostStateRoot: common.BytesToHash(rollupBatchData.PostStateRoot[:]), + WithdrawRoot: common.BytesToHash(rollupBatchData.WithdrawalRoot[:]), + } + } else { + continue + } rollupCommitBatch, parseErr := o.rollup.ParseCommitBatch(lg) if parseErr != nil { log.Error("get l2 BlockNumber", "err", err) return nil, parseErr } - - if !bytes.Equal(abi.Methods["commitBatch"].ID, tx.Data()[:4]) { - continue - } if rollupCommitBatch.BatchIndex.Uint64() < batchIndex { continue } @@ -110,30 +165,6 @@ func (o *Oracle) GetBatchSubmission(ctx context.Context, startBlock, nextBatchSu } // set batchIndex to new batch index + 1 batchIndex = rollupCommitBatch.BatchIndex.Uint64() + 1 - args, err := abi.Methods["commitBatch"].Inputs.Unpack(tx.Data()[4:]) - if err != nil { - log.Error("fetch batch info failed", "txHash", lg.TxHash, "blockNumber", lg.BlockNumber, "error", err) - return nil, err - } - rollupBatchData := args[0].(struct { - Version uint8 "json:\"version\"" - ParentBatchHeader []uint8 "json:\"parentBatchHeader\"" - BlockContexts []uint8 "json:\"blockContexts\"" - SkippedL1MessageBitmap []uint8 "json:\"skippedL1MessageBitmap\"" - PrevStateRoot [32]uint8 "json:\"prevStateRoot\"" - PostStateRoot [32]uint8 "json:\"postStateRoot\"" - WithdrawalRoot [32]uint8 "json:\"withdrawalRoot\"" - }) - - batch := eth.RPCRollupBatch{ - Version: uint(rollupBatchData.Version), - ParentBatchHeader: rollupBatchData.ParentBatchHeader, - BlockContexts: rollupBatchData.BlockContexts, - SkippedL1MessageBitmap: rollupBatchData.SkippedL1MessageBitmap, - PrevStateRoot: common.BytesToHash(rollupBatchData.PrevStateRoot[:]), - PostStateRoot: common.BytesToHash(rollupBatchData.PostStateRoot[:]), - WithdrawRoot: common.BytesToHash(rollupBatchData.WithdrawalRoot[:]), - } var batchData derivation.BatchInfo if err = batchData.ParseBatch(batch); err != nil { return nil, fmt.Errorf("parse batch error:%v", err) @@ -221,9 +252,13 @@ func (o *Oracle) submitRecord() error { if err != nil { return fmt.Errorf("record finalized batch error:%v,batchLength:%v", err, len(batchSubmissions)) } - log.Info("record finalized batch success", "txHash", tx.Hash(), "batchLength", len(batchSubmissions)) + err = o.l2Client.SendTransaction(o.ctx, tx) + if err != nil { + return fmt.Errorf("send transaction error:%v", err) + } + log.Info("record finalized batch success", "txHash", tx.Hash(), "batchLength", len(batchSubmissions), "nonce", tx.Nonce()) var receipt *types.Receipt - err = backoff.Do(30, backoff.Exponential(), func() error { + err = backoff.Do(3, backoff.Exponential(), func() error { var err error receipt, err = o.waitReceiptWithCtx(o.ctx, tx.Hash()) return err From 184defcd36f3c447a661865179ff97d3869b150b Mon Sep 17 00:00:00 2001 From: FletcherMan Date: Fri, 6 Dec 2024 14:36:37 +0800 Subject: [PATCH 053/106] Concurrent contract deployment & Dockerfile optimization (#665) --- .dockerignore | 1 + contracts/deploy/013-DeployProxys.ts | 131 +++++++++++++++++++++++++- contracts/deploy/014-DeployImpls.ts | 124 ++++++++++++++++++++++++ contracts/deploy/019-AdminTransfer.ts | 100 +++++++++++++++++++- contracts/deploy/index.ts | 9 +- contracts/package.json | 3 +- contracts/tasks/deploy.ts | 30 +++++- contracts/yarn.lock | 12 +++ ops/devnet-morph/devnet/__init__.py | 8 +- ops/docker/Dockerfile.staking-oracle | 16 ++-- 10 files changed, 413 insertions(+), 21 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..70e570883 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +prover/ diff --git a/contracts/deploy/013-DeployProxys.ts b/contracts/deploy/013-DeployProxys.ts index 334cfe82d..24545613a 100644 --- a/contracts/deploy/013-DeployProxys.ts +++ b/contracts/deploy/013-DeployProxys.ts @@ -1,6 +1,7 @@ import "@nomiclabs/hardhat-web3" import "@nomiclabs/hardhat-ethers" import "@nomiclabs/hardhat-waffle" +import { Mutex } from 'async-mutex'; import { HardhatRuntimeEnvironment } from "hardhat/types" import { storage, getContractAddressByName, assertContractVariableWithSigner } from "../src/deploy-utils" @@ -188,4 +189,132 @@ export const deployContractProxies = async ( return "" } -export default deployContractProxies +export const deployContractProxyByStorageNameWithNonce = async ( + hre: HardhatRuntimeEnvironment, + path: string, + deployer: any, + storageName: string, + nonce: number +): Promise => { + try { + const emptyContractImplAddr = getContractAddressByName(path, ImplStorageName.EmptyContract); + const ProxyFactoryName = ContractFactoryName.DefaultProxy; + + const ProxyFactory = await hre.ethers.getContractFactory(ProxyFactoryName); + // TransparentUpgradeableProxy deploy with emptyContract as impl, deployer as admin + const proxy = await ProxyFactory.deploy(emptyContractImplAddr, await deployer.getAddress(), "0x", { + nonce: nonce, + }); + await proxy.deployed() + console.log( + `%s=%s ; TX_HASH: %s`, + storageName, + proxy.address.toLocaleLowerCase(), + proxy.deployTransaction.hash + ); + + // check params + const IProxyContract = await hre.ethers.getContractAt(ContractFactoryName.DefaultProxyInterface, proxy.address); + + console.log(await IProxyContract.admin()); + await assertContractVariableWithSigner(IProxyContract, "admin", await deployer.getAddress()); + const blockNumber = await hre.ethers.provider.getBlockNumber(); + console.log("BLOCK_NUMBER: %s", blockNumber); + const err = await storage(path, storageName, proxy.address.toLocaleLowerCase(), blockNumber || 0); + if (err !== "") { + throw new Error(err); + } + + return ""; + } catch (error) { + console.error(`Error deploying ${storageName}:`, error); + return error.message || "Unknown error"; + } +}; + +export const deployContractProxiesConcurrently = async ( + hre: HardhatRuntimeEnvironment, + path: string, + deployer: any, + config: any +): Promise => { + const WETHFactoryName = ContractFactoryName.WETH; + const WETHImplStorageName = ImplStorageName.WETH; + + try { + if (config.l1WETHAddress == "") { + const Factory = await hre.ethers.getContractFactory(WETHFactoryName); + const contract = await Factory.deploy(); + await contract.deployed(); + console.log( + "%s=%s ; TX_HASH: %s", + WETHImplStorageName, + contract.address.toLocaleLowerCase(), + contract.deployTransaction.hash + ); + + const blockNumber = await hre.ethers.provider.getBlockNumber(); + console.log("BLOCK_NUMBER: %s", blockNumber); + + const err = await storage(path, WETHImplStorageName, contract.address.toLocaleLowerCase(), blockNumber || 0); + if (err != "") { + return err; + } + } else { + const blockNumber = await hre.ethers.provider.getBlockNumber(); + const err = await storage(path, WETHImplStorageName, config.l1WETHAddress.toLocaleLowerCase(), blockNumber || 0); + if (err != "") { + return err; + } + } + + console.log("Start to deploy proxies concurrently...") + + const proxyStorageNames = [ + ProxyStorageName.L1CrossDomainMessengerProxyStorageName, + ProxyStorageName.L1MessageQueueWithGasPriceOracleProxyStorageName, + ProxyStorageName.L1StakingProxyStorageName, + ProxyStorageName.RollupProxyStorageName, + ProxyStorageName.L1GatewayRouterProxyStorageName, + ProxyStorageName.L1ETHGatewayProxyStorageName, + ProxyStorageName.L1StandardERC20GatewayProxyStorageName, + ProxyStorageName.L1CustomERC20GatewayProxyStorageName, + ProxyStorageName.L1WithdrawLockERC20GatewayProxyStorageName, + ProxyStorageName.L1ReverseCustomGatewayProxyStorageName, + ProxyStorageName.L1ERC721GatewayProxyStorageName, + ProxyStorageName.L1ERC1155GatewayProxyStorageName, + ProxyStorageName.EnforcedTxGatewayProxyStorageName, + ProxyStorageName.L1WETHGatewayProxyStorageName, + ProxyStorageName.L1USDCGatewayProxyStorageName, + ]; + + let nonce = await hre.ethers.provider.getTransactionCount(deployer.getAddress()) + const mutex = new Mutex(); + const results = await Promise.all( + proxyStorageNames.map(async (storageName) => { + console.log(`Starting deployment for: ${storageName}`); + const release = await mutex.acquire(); // Acquire lock for getting nonce + const nonceToUse = nonce + nonce++; // Increment nonce for each deployment + release(); // Release the lock + + const result = await deployContractProxyByStorageNameWithNonce(hre, path, deployer, storageName, nonceToUse); + console.log(`Deployment completed for: ${storageName}`); + return result; + }) + ); + + const errors = results.filter((err) => err !== ""); + if (errors.length > 0) { + return `Deployment failed with errors: ${errors.join(", ")}`; + } + } catch (error) { + console.error("Error during deployment:", error); + return `Deployment failed with error: ${error.message}`; + } + + return ""; +}; + + +export default deployContractProxies \ No newline at end of file diff --git a/contracts/deploy/014-DeployImpls.ts b/contracts/deploy/014-DeployImpls.ts index 06a58ef1d..ed0653706 100644 --- a/contracts/deploy/014-DeployImpls.ts +++ b/contracts/deploy/014-DeployImpls.ts @@ -7,6 +7,7 @@ import { } from 'hardhat/types'; import { assertContractVariable, storage, getContractAddressByName } from "../src/deploy-utils"; import { predeploys } from '../src/constants' +import { Mutex } from 'async-mutex'; import { ImplStorageName, @@ -14,6 +15,129 @@ import { ContractFactoryName, } from "../src/types" +export const deployContractImplsConcurrently = async ( + hre: HardhatRuntimeEnvironment, + path: string, + deployer: any, + config: any +): Promise => { + // factory name + const L1CrossDomainMessengerFactoryName = ContractFactoryName.L1CrossDomainMessenger + const L1StakingFactoryName = ContractFactoryName.L1Staking + const L1MessageQueueWithGasPriceOracleFactoryName = ContractFactoryName.L1MessageQueueWithGasPriceOracle + const RollupFactoryName = ContractFactoryName.Rollup + const WhitelistFactoryName = ContractFactoryName.Whitelist + + const L1GatewayRouterFactoryName = ContractFactoryName.L1GatewayRouter + const L1ETHGatewayFactoryName = ContractFactoryName.L1ETHGateway + const L1StandardERC20GatewayFactoryName = ContractFactoryName.L1StandardERC20Gateway + const L1CustomERC20GatewayFactoryName = ContractFactoryName.L1CustomERC20Gateway + const L1WithdrawLockERC20GatewayFactoryName = ContractFactoryName.L1WithdrawLockERC20Gateway + const L1ReverseCustomGatewayFactoryName = ContractFactoryName.L1ReverseCustomGateway + const L1ERC721GatewayFactoryName = ContractFactoryName.L1ERC721Gateway + const L1ERC1155GatewayFactoryName = ContractFactoryName.L1ERC1155Gateway + const L1WETHGatewayFactoryName = ContractFactoryName.L1WETHGateway + const EnforcedTxGatewayFactoryName = ContractFactoryName.EnforcedTxGateway + + // implement storage name + const L1CrossDomainMessengerImplStorageName = ImplStorageName.L1CrossDomainMessengerStorageName + const StakingImplStorageName = ImplStorageName.L1StakingStorageName + const L1MessageQueueWithGasPriceOracleImplStorageName = ImplStorageName.L1MessageQueueWithGasPriceOracle + const RollupImplStorageName = ImplStorageName.RollupStorageName + const L1GatewayRouterImplStorageName = ImplStorageName.L1GatewayRouterStorageName + const L1ETHGatewayImplStorageName = ImplStorageName.L1ETHGatewayStorageName + const L1StandardERC20GatewayImplStorageName = ImplStorageName.L1StandardERC20GatewayStorageName + const L1CustomERC20GatewayImplStorageName = ImplStorageName.L1CustomERC20GatewayStorageName + const L1WithdrawLockERC20GatewayImplStorageName = ImplStorageName.L1WithdrawLockERC20GatewayStorageName + const L1ReverseCustomGatewayImplStorageName = ImplStorageName.L1ReverseCustomGatewayStorageName + const L1WETHGatewayImplStorageName = ImplStorageName.L1WETHGatewayStorageName + const L1ERC721GatewayImplStorageName = ImplStorageName.L1ERC721GatewayStorageName + const L1ERC1155GatewayImplStorageName = ImplStorageName.L1ERC1155GatewayStorageName + const WhitelistImplStorageName = ImplStorageName.Whitelist + const EnforcedTxGatewayStorageName = ImplStorageName.EnforcedTxGatewayStorageName + + // proxy contract address + const L1CrossDomainMessengerProxyAddress = getContractAddressByName(path, ProxyStorageName.L1CrossDomainMessengerProxyStorageName) + const RollupProxyAddress = getContractAddressByName(path, ProxyStorageName.RollupProxyStorageName) + const EnforcedTxGatewayAddress = getContractAddressByName(path, ProxyStorageName.EnforcedTxGatewayProxyStorageName) + + console.log("start to deploy contract implementations concurrently...") + let nonce = await hre.ethers.provider.getTransactionCount(deployer.getAddress()) + const mutex = new Mutex(); + const deployContract = async (factoryName: string, storageName: string, args: any[] = []) => { + const release = await mutex.acquire(); + const nonceToUse = nonce + nonce++; // Increment nonce for each deployment + release(); // Release the lock + + console.log(`Starting deployment for: ${storageName}, args: ${args}, nonce: `, nonceToUse); + const Factory = await hre.ethers.getContractFactory(factoryName) + const contract = await Factory.deploy(...args, { + nonce: nonceToUse, + }) + + + await contract.deployed() + console.log("%s=%s ; TX_HASH: %s", storageName, contract.address.toLocaleLowerCase(), contract.deployTransaction.hash); + + if (factoryName == L1StakingFactoryName) { + await assertContractVariable( + contract, + 'MESSENGER', + L1CrossDomainMessengerProxyAddress + ) + await assertContractVariable( + contract, + 'OTHER_STAKING', + predeploys.L2Staking.toLowerCase() + ) + } + const blockNumber = await hre.ethers.provider.getBlockNumber() + console.log("BLOCK_NUMBER: %s", blockNumber) + console.log(`Deployment completed for: ${storageName}`); + const err = await storage(path, storageName, contract.address.toLocaleLowerCase(), blockNumber || 0) + return err + } + + try { + const deployPromises = [] + + deployPromises.push(deployContract(WhitelistFactoryName, WhitelistImplStorageName, [config.contractAdmin])) + deployPromises.push(deployContract(L1CrossDomainMessengerFactoryName, L1CrossDomainMessengerImplStorageName)) + deployPromises.push(deployContract(L1MessageQueueWithGasPriceOracleFactoryName, L1MessageQueueWithGasPriceOracleImplStorageName, [L1CrossDomainMessengerProxyAddress, RollupProxyAddress, EnforcedTxGatewayAddress])) + deployPromises.push(deployContract(RollupFactoryName, RollupImplStorageName, [config.l2ChainID])) + deployPromises.push(deployContract(L1GatewayRouterFactoryName, L1GatewayRouterImplStorageName)) + deployPromises.push(deployContract(L1StandardERC20GatewayFactoryName, L1StandardERC20GatewayImplStorageName)) + deployPromises.push(deployContract(L1CustomERC20GatewayFactoryName, L1CustomERC20GatewayImplStorageName)) + deployPromises.push(deployContract(L1WithdrawLockERC20GatewayFactoryName, L1WithdrawLockERC20GatewayImplStorageName)) + deployPromises.push(deployContract(L1ReverseCustomGatewayFactoryName, L1ReverseCustomGatewayImplStorageName)) + deployPromises.push(deployContract(L1ETHGatewayFactoryName, L1ETHGatewayImplStorageName)) + + const WETHAddress = getContractAddressByName(path, ImplStorageName.WETH) + deployPromises.push(deployContract(L1WETHGatewayFactoryName, L1WETHGatewayImplStorageName, [WETHAddress, predeploys.L2WETH])) + + deployPromises.push(deployContract(EnforcedTxGatewayFactoryName, EnforcedTxGatewayStorageName)) + deployPromises.push(deployContract(L1ERC721GatewayFactoryName, L1ERC721GatewayImplStorageName)) + deployPromises.push(deployContract(L1ERC1155GatewayFactoryName, L1ERC1155GatewayImplStorageName)) + + deployPromises.push(deployContract(L1StakingFactoryName, StakingImplStorageName, [L1CrossDomainMessengerProxyAddress])) + + const results = await Promise.all(deployPromises) + + for (const result of results) { + if (result != '') { + return result + } + } + + console.log("Complete contract implementations deployment...") + return '' + } catch (err) { + console.error("Error during deployment:", err) + return "Deployment failed" + } +} + export const deployContractImpls = async ( hre: HardhatRuntimeEnvironment, path: string, diff --git a/contracts/deploy/019-AdminTransfer.ts b/contracts/deploy/019-AdminTransfer.ts index bc36b11f8..566396b90 100644 --- a/contracts/deploy/019-AdminTransfer.ts +++ b/contracts/deploy/019-AdminTransfer.ts @@ -13,6 +13,8 @@ import { ContractFactoryName, } from "../src/types" +import { Mutex } from 'async-mutex'; + export const AdminTransferByProxyStorageName = async ( hre: HardhatRuntimeEnvironment, path: string, @@ -50,6 +52,102 @@ export const AdminTransferByProxyStorageName = async ( return '' } +export const AdminTransferByProxyStorageNameConcurrently = async ( + hre: HardhatRuntimeEnvironment, + path: string, + deployer: any, + storageName: string, + nonce: number +): Promise => { + const EmptyContractImplAddr = getContractAddressByName(path, ImplStorageName.EmptyContract) + const ProxyAdminImplAddr = getContractAddressByName(path, ImplStorageName.ProxyAdmin) + const ProxyAddr = getContractAddressByName(path, storageName) + const deployerAddr = (await deployer.getAddress()).toLocaleLowerCase() + + const IProxyContract = await hre.ethers.getContractAt(ContractFactoryName.DefaultProxyInterface, ProxyAddr, deployer) + { + if (storageName != ProxyStorageName.L1USDCGatewayProxyStorageName) { + const implAddr = (await IProxyContract.implementation()).toLocaleLowerCase() + const admin = (await IProxyContract.admin()).toLocaleLowerCase() + if (implAddr === EmptyContractImplAddr.toLocaleLowerCase()) { + return `Proxy implementation address ${implAddr} should not be empty contract address ${EmptyContractImplAddr}` + } + if (admin !== deployerAddr) { + return `Proxy admin address ${admin} should deployer address ${deployerAddr}` + } + } + } + console.log(`change ${storageName} admin transfer from ${deployerAddr} to ProxyAdmin ${ProxyAdminImplAddr} `) + // Set the transaction object, including specifying nonce + const tx = await IProxyContract.populateTransaction.changeAdmin(ProxyAdminImplAddr) + // Manually specify nonce + const txWithNonce = { + ...tx, + nonce: nonce, + } + // Send transaction + const res = await deployer.sendTransaction(txWithNonce) + await res.wait() + await assertContractVariable( + IProxyContract, + 'admin', + ProxyAdminImplAddr, + ProxyAdminImplAddr // caller + ) + console.log(`admin transfer successful `) + return '' +} + +export const AdminTransferConcurrently = async ( + hre: HardhatRuntimeEnvironment, + path: string, + deployer: any, + configTmp: any +): Promise => { + console.log("Start to transfer admin concurrrently...") + const contractsToChange = [ + ProxyStorageName.L1CrossDomainMessengerProxyStorageName, + ProxyStorageName.L1MessageQueueWithGasPriceOracleProxyStorageName, + ProxyStorageName.L1StakingProxyStorageName, + ProxyStorageName.RollupProxyStorageName, + ProxyStorageName.L1GatewayRouterProxyStorageName, + ProxyStorageName.L1ETHGatewayProxyStorageName, + ProxyStorageName.L1StandardERC20GatewayProxyStorageName, + ProxyStorageName.L1CustomERC20GatewayProxyStorageName, + ProxyStorageName.L1WithdrawLockERC20GatewayProxyStorageName, + ProxyStorageName.L1ReverseCustomGatewayProxyStorageName, + ProxyStorageName.L1ERC721GatewayProxyStorageName, + ProxyStorageName.L1ERC1155GatewayProxyStorageName, + ProxyStorageName.EnforcedTxGatewayProxyStorageName, + ProxyStorageName.L1WETHGatewayProxyStorageName, + ProxyStorageName.L1USDCGatewayProxyStorageName + ]; + + let nonce = await hre.ethers.provider.getTransactionCount(deployer.getAddress()) + const mutex = new Mutex(); + const results = await Promise.all(contractsToChange.map(async (storageName) => { + const release = await mutex.acquire(); // Acquire lock for getting nonce + const nonceToUse = nonce + nonce++; // Increment nonce for each deployment + release(); // Release the lock + + const err = await AdminTransferByProxyStorageNameConcurrently(hre, path, deployer, storageName, nonceToUse); + if (err !== '') { + return { storageName, error: err }; + } + return { storageName, error: '' }; + })); + + // Check for errors + for (const result of results) { + if (result.error !== '') { + return `Error occurred during admin transfer for ${result.storageName}: ${result.error}`; + } + } + + return ''; +} + export const AdminTransfer = async ( hre: HardhatRuntimeEnvironment, path: string, @@ -170,4 +268,4 @@ export const AdminTransfer = async ( return '' } -module.exports = { AdminTransfer, AdminTransferByProxyStorageName } \ No newline at end of file +module.exports = { AdminTransfer, AdminTransferByProxyStorageName, AdminTransferConcurrently, AdminTransferByProxyStorageNameConcurrently } \ No newline at end of file diff --git a/contracts/deploy/index.ts b/contracts/deploy/index.ts index 4611d3cd4..16f69f20b 100644 --- a/contracts/deploy/index.ts +++ b/contracts/deploy/index.ts @@ -1,13 +1,13 @@ import deployProxyAdmin from './010-ProxyAdmin' import deployEmptyContract from './011-EmptyContract' -import deployContractProxies from './013-DeployProxys' +import {deployContractProxies,deployContractProxiesConcurrently} from './013-DeployProxys' import deployZkEvmVerifierV1 from './012-Verifier' -import deployContractImpls from './014-DeployImpls' +import {deployContractImpls, deployContractImplsConcurrently} from './014-DeployImpls' import MessengerInit from './015-MessengerInit' import RollupInit from './016-RollupInit' import GatewayInit from './017-GatewayInit' import StakingInit from './018-StakingInit' -import {AdminTransfer,AdminTransferByProxyStorageName} from './019-AdminTransfer' +import {AdminTransfer,AdminTransferByProxyStorageName, AdminTransferConcurrently} from './019-AdminTransfer' import ContractInit from './020-ContractInit' import StakingRegister from './021-StakingRegister' @@ -17,13 +17,16 @@ export { deployEmptyContract, deployZkEvmVerifierV1, deployContractProxies, + deployContractProxiesConcurrently, deployContractImpls, + deployContractImplsConcurrently, MessengerInit, RollupInit, GatewayInit, StakingInit, AdminTransfer, AdminTransferByProxyStorageName, + AdminTransferConcurrently, ContractInit, StakingRegister } \ No newline at end of file diff --git a/contracts/package.json b/contracts/package.json index e85fd3f36..706dcc87a 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -87,7 +87,8 @@ }, "dependencies": { "@morph-l2/core-utils": "0.0.1", + "async-mutex": "^0.5.0", "axios": "^1.4.0", "yarn": "^1.22.21" } -} \ No newline at end of file +} diff --git a/contracts/tasks/deploy.ts b/contracts/tasks/deploy.ts index 5dc9df47f..9ee6739a9 100644 --- a/contracts/tasks/deploy.ts +++ b/contracts/tasks/deploy.ts @@ -10,12 +10,15 @@ import { deployEmptyContract, deployZkEvmVerifierV1, deployContractProxies, + deployContractProxiesConcurrently, deployContractImpls, + deployContractImplsConcurrently, MessengerInit, RollupInit, GatewayInit, StakingInit, AdminTransfer, + AdminTransferConcurrently, ContractInit, StakingRegister, } from '../deploy/index' @@ -23,9 +26,11 @@ import { ethers } from "ethers"; task("deploy") .addParam('storagepath') + .addOptionalParam('concurrent', 'Use concurrent deployment', 'false') .setAction(async (taskArgs, hre) => { // Initialization parameters const storagePath = taskArgs.storagepath + const concurrent = taskArgs.concurrent const deployer = await hre.ethers.provider.getSigner(); const config = hre.deployConfig @@ -48,7 +53,11 @@ task("deploy") } console.log('\n---------------------------------- deploy Proxys ----------------------------------') - err = await deployContractProxies(hre, storagePath, deployer,config) + if (concurrent === 'true') { + err = await deployContractProxiesConcurrently(hre, storagePath, deployer,config) + } else { + err = await deployContractProxies(hre, storagePath, deployer,config) + } if (err != '') { console.log('Deploy Proxys failed, err: ', err) return @@ -64,9 +73,11 @@ task("deploy") task("initialize") .addParam('storagepath') + .addOptionalParam('concurrent', 'Use concurrent deployment', 'false') .setAction(async (taskArgs, hre) => { // Initialization parameters const storagePath = taskArgs.storagepath + const concurrent = taskArgs.concurrent const config = hre.deployConfig const deployer = await hre.ethers.provider.getSigner(); @@ -74,7 +85,12 @@ task("initialize") console.log('deployer :', await deployer.getAddress()) console.log('\n---------------------------------- deploy Impls ----------------------------------') - let err = await deployContractImpls(hre, storagePath, deployer, config) + let err: any + if (concurrent === 'true') { + err = await deployContractImplsConcurrently(hre, storagePath, deployer, config) + } else { + err = await deployContractImpls(hre, storagePath, deployer, config) + } if (err != '') { console.log('Deploy deploy Impls failed, err: ', err) return @@ -105,11 +121,19 @@ task("initialize") return } console.log('\n---------------------------------- Admin Transfer ----------------------------------') - err = await AdminTransfer(hre, storagePath, deployer, config) + if (concurrent === 'true') { + err = await AdminTransferConcurrently(hre, storagePath, deployer, config) + } else { + err = await AdminTransfer(hre, storagePath, deployer, config) + } + if (err != '') { console.log('OwnerTransfer failed, err: ', err) return } + + + console.log('\n---------------------------------- Contract Init ----------------------------------') err = await ContractInit(hre, storagePath, deployer, config) if (err != '') { diff --git a/contracts/yarn.lock b/contracts/yarn.lock index c1d28d9b8..4a0d9483b 100644 --- a/contracts/yarn.lock +++ b/contracts/yarn.lock @@ -2440,6 +2440,13 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +async-mutex@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.5.0.tgz#353c69a0b9e75250971a64ac203b0ebfddd75482" + integrity sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA== + dependencies: + tslib "^2.4.0" + async@1.x, async@^1.4.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -10630,6 +10637,11 @@ tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +tslib@^2.4.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + tsort@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" diff --git a/ops/devnet-morph/devnet/__init__.py b/ops/devnet-morph/devnet/__init__.py index 62e5504f7..ba151512b 100644 --- a/ops/devnet-morph/devnet/__init__.py +++ b/ops/devnet-morph/devnet/__init__.py @@ -83,8 +83,8 @@ def devnet_l1(paths, result=None): }) wait_up(9545) wait_for_rpc_server('127.0.0.1:9545') - log.info('Sleep another 20s...') - time.sleep(20) + log.info('Sleep another 10s...') + time.sleep(10) res = eth_accounts('127.0.0.1:9545') response = json.loads(res) account = response['result'][0] @@ -135,7 +135,7 @@ def devnet_deploy(paths, args): 'yarn', 'build' ], env={}, cwd=paths.contracts_dir) run_command([ - 'npx', 'hardhat', 'deploy', '--network', 'l1', '--storagepath', paths.deployment_dir + 'npx', 'hardhat', 'deploy', '--network', 'l1', '--storagepath', paths.deployment_dir, '--concurrent', 'true' ], env={}, cwd=paths.contracts_dir) log.info('Generating L2 genesis and rollup configs.') @@ -171,7 +171,7 @@ def devnet_deploy(paths, args): modified_line = re.sub(pattern3, f"batchHeader: '{genesis_batch_header}'", line) print(modified_line, end='') run_command([ - 'npx', 'hardhat', 'initialize', '--network', 'l1', '--storagepath', paths.deployment_dir + 'npx', 'hardhat', 'initialize', '--network', 'l1', '--storagepath', paths.deployment_dir, '--concurrent', 'true' ], env={}, cwd=paths.contracts_dir) # run_command([ diff --git a/ops/docker/Dockerfile.staking-oracle b/ops/docker/Dockerfile.staking-oracle index 4354c5687..eadeaa28e 100644 --- a/ops/docker/Dockerfile.staking-oracle +++ b/ops/docker/Dockerfile.staking-oracle @@ -1,18 +1,18 @@ -# Build Geth in a stock Go builder container FROM morph/go-ubuntu-builder:go-1.22-ubuntu as builder -# RUN apk add --no-cache gcc musl-dev linux-headers git make - +# Copy source code and build application COPY . /morph - WORKDIR /morph/oracle - RUN make build -# Pull Geth into a second stage deploy alpine container -FROM builder +# Deploy stage using the same base image (morph/go-ubuntu-builder:go-1.22-ubuntu) +FROM morph/go-ubuntu-builder:go-1.22-ubuntu + +# Install only necessary dependencies (e.g., ca-certificates for networking) +RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && rm -rf /var/lib/apt/lists/* -# RUN apk add --no-cache ca-certificates +# Copy the built binary from the builder stage COPY --from=builder /morph/oracle/build/bin/staking-oracle /usr/local/bin/ +# Set the default command to run the staking oracle CMD ["staking-oracle"] \ No newline at end of file From 1381d457c04453a9a00f61f12a39f8a6328ae0b2 Mon Sep 17 00:00:00 2001 From: Kathy <22675649+anylots@users.noreply.github.com> Date: Fri, 6 Dec 2024 14:58:57 +0800 Subject: [PATCH 054/106] remove skip map (#664) --- gas-oracle/app/src/abi/Rollup.json | 39 ++++++++++++++++++++---- prover/bin/challenge/src/abi/Rollup.json | 39 ++++++++++++++++++++---- prover/bin/challenge/src/handler.rs | 4 --- prover/bin/shadow-prove/abi/Rollup.json | 39 ++++++++++++++++++++---- 4 files changed, 99 insertions(+), 22 deletions(-) diff --git a/gas-oracle/app/src/abi/Rollup.json b/gas-oracle/app/src/abi/Rollup.json index 10b61fb3f..dc4c9bba6 100644 --- a/gas-oracle/app/src/abi/Rollup.json +++ b/gas-oracle/app/src/abi/Rollup.json @@ -623,11 +623,6 @@ "name": "blockContexts", "type": "bytes" }, - { - "internalType": "bytes", - "name": "skippedL1MessageBitmap", - "type": "bytes" - }, { "internalType": "bytes32", "name": "prevStateRoot", @@ -695,6 +690,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "batchIndex", + "type": "uint256" + } + ], + "name": "committedStateRoots", + "outputs": [ + { + "internalType": "bytes32", + "name": "stateRoot", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "finalizationPeriodSeconds", @@ -804,6 +818,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_prevStateRoot", + "type": "bytes32" + } + ], + "name": "initialize2", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -1142,4 +1169,4 @@ "stateMutability": "payable", "type": "receive" } -] \ No newline at end of file +] diff --git a/prover/bin/challenge/src/abi/Rollup.json b/prover/bin/challenge/src/abi/Rollup.json index 10b61fb3f..dc4c9bba6 100644 --- a/prover/bin/challenge/src/abi/Rollup.json +++ b/prover/bin/challenge/src/abi/Rollup.json @@ -623,11 +623,6 @@ "name": "blockContexts", "type": "bytes" }, - { - "internalType": "bytes", - "name": "skippedL1MessageBitmap", - "type": "bytes" - }, { "internalType": "bytes32", "name": "prevStateRoot", @@ -695,6 +690,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "batchIndex", + "type": "uint256" + } + ], + "name": "committedStateRoots", + "outputs": [ + { + "internalType": "bytes32", + "name": "stateRoot", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "finalizationPeriodSeconds", @@ -804,6 +818,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_prevStateRoot", + "type": "bytes32" + } + ], + "name": "initialize2", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -1142,4 +1169,4 @@ "stateMutability": "payable", "type": "receive" } -] \ No newline at end of file +] diff --git a/prover/bin/challenge/src/handler.rs b/prover/bin/challenge/src/handler.rs index 58429344e..dc40a1407 100644 --- a/prover/bin/challenge/src/handler.rs +++ b/prover/bin/challenge/src/handler.rs @@ -418,7 +418,6 @@ struct BatchInfo { withdrawal_root: [u8; 32], sequencer_set_verify_hash: [u8; 32], parent_batch_hash: [u8; 32], - skipped_l1_message_bitmap: Bytes, } async fn batch_inspect(l1_provider: &Provider, hash: TxHash) -> Option { @@ -450,7 +449,6 @@ async fn batch_inspect(l1_provider: &Provider, hash: TxHash) -> Option, hash: TxHash) -> Option Date: Fri, 6 Dec 2024 17:17:48 +0800 Subject: [PATCH 055/106] feat(event): replace file storage with leveldb for event info (#657) Co-authored-by: WorldDogs --- tx-submitter/db/db.go | 20 +++++++++++ tx-submitter/entry.go | 14 ++++---- tx-submitter/event/indexer.go | 41 +++++++++++---------- tx-submitter/event/storage.go | 51 +++++++++++++------------- tx-submitter/event/storage_test.go | 11 +++--- tx-submitter/params/leveldb_keys.go | 5 +++ tx-submitter/services/rollup.go | 56 ++++++++++++++++------------- tx-submitter/services/rotator.go | 12 ++++++- 8 files changed, 128 insertions(+), 82 deletions(-) create mode 100644 tx-submitter/params/leveldb_keys.go diff --git a/tx-submitter/db/db.go b/tx-submitter/db/db.go index 4a5914c49..d6913390b 100644 --- a/tx-submitter/db/db.go +++ b/tx-submitter/db/db.go @@ -3,6 +3,7 @@ package db import ( "fmt" "strconv" + "sync" "morph-l2/tx-submitter/utils" @@ -15,6 +16,7 @@ var ( type Db struct { db *leveldb.Database + m sync.Mutex } func New(pathname string) (*Db, error) { @@ -26,6 +28,8 @@ func New(pathname string) (*Db, error) { return &Db{db: ldb}, nil } func (d *Db) GetFloat(key string) (float64, error) { + d.m.Lock() + defer d.m.Unlock() v, err := d.db.Get([]byte(key)) if err != nil { return 0, fmt.Errorf("failed get key from leveldb %s: %w", key, err) @@ -37,6 +41,8 @@ func (d *Db) GetFloat(key string) (float64, error) { return res, nil } func (d *Db) PutFloat(key string, val float64) error { + d.m.Lock() + defer d.m.Unlock() valStr := strconv.FormatFloat(val, 'f', -1, 64) err := d.db.Put([]byte(key), []byte(valStr)) if err != nil { @@ -44,6 +50,20 @@ func (d *Db) PutFloat(key string, val float64) error { } return nil } +func (d *Db) GetString(key string) (string, error) { + d.m.Lock() + defer d.m.Unlock() + v, err := d.db.Get([]byte(key)) + if err != nil { + return "", fmt.Errorf("failed to get key from leveldb %w", err) + } + return string(v), nil +} +func (d *Db) PutString(key, val string) error { + d.m.Lock() + defer d.m.Unlock() + return d.db.Put([]byte(key), []byte(val)) +} func (d *Db) Close() error { return d.db.Close() } diff --git a/tx-submitter/entry.go b/tx-submitter/entry.go index 1cc6ea433..545a2056c 100644 --- a/tx-submitter/entry.go +++ b/tx-submitter/entry.go @@ -186,17 +186,16 @@ func Main() func(ctx *cli.Context) error { }, } - eventIndexer := event.NewEventIndexer(cfg.StakingEventStoreFilename, l1Client, new(big.Int).SetUint64(cfg.L1StakingDeployedBlockNumber), filter, cfg.EventIndexStep) - - // new rotator - rotator := services.NewRotator(common.HexToAddress(cfg.L2SequencerAddress), common.HexToAddress(cfg.L2GovAddress), eventIndexer) - // start rorator event indexer - rotator.StartEventIndexer() - ldb, err := db.New(cfg.LeveldbPathName) if err != nil { return fmt.Errorf("failed to connect leveldb: %w", err) } + eventInfoStorage := event.NewEventInfoStorage(ldb) + eventIndexer := event.NewEventIndexer(l1Client, new(big.Int).SetUint64(cfg.L1StakingDeployedBlockNumber), filter, cfg.EventIndexStep, eventInfoStorage) + // new rotator + rotator := services.NewRotator(common.HexToAddress(cfg.L2SequencerAddress), common.HexToAddress(cfg.L2GovAddress), eventIndexer) + // start rorator event indexer + rotator.StartEventIndexer() // blockmonitor bm := l1checker.NewBlockMonitor(cfg.BlockNotIncreasedThreshold, l1Client) @@ -219,6 +218,7 @@ func Main() func(ctx *cli.Context) error { rotator, ldb, bm, + eventInfoStorage, ) // metrics diff --git a/tx-submitter/event/indexer.go b/tx-submitter/event/indexer.go index f666c6b26..0ba87ab5b 100644 --- a/tx-submitter/event/indexer.go +++ b/tx-submitter/event/indexer.go @@ -13,31 +13,31 @@ import ( type EventIndexer struct { client *ethclient.Client - storePath string // store path deployBlock *big.Int // Block number of contract deployment filterQuery ethereum.FilterQuery indexStep uint64 // index step + storage *EventInfoStorage } -func NewEventIndexer(storePath string, client *ethclient.Client, deployedBlock *big.Int, filter ethereum.FilterQuery, indexStep uint64) *EventIndexer { +func NewEventIndexer(client *ethclient.Client, deployedBlock *big.Int, filter ethereum.FilterQuery, indexStep uint64, storage *EventInfoStorage) *EventIndexer { return &EventIndexer{ - storePath: storePath, client: client, deployBlock: deployedBlock, filterQuery: filter, indexStep: indexStep, + storage: storage, } } func (l *EventIndexer) Index() { log.Info("event indexer started") - storage := NewEventInfoStorage(l.storePath) - err := storage.Load() - if err != nil { - log.Crit("failed to load storage", "error", err, "file_name", storage.Filename) - } - if storage.BlockProcessed == 0 { - storage.BlockProcessed = l.deployBlock.Uint64() + + if l.storage.BlockProcessed == 0 { + l.storage.BlockProcessed = l.deployBlock.Uint64() + err := l.storage.Store() + if err != nil { + log.Error("failed to store initial block number", "error", err) + } } // Create a ticker that triggers every minute @@ -53,31 +53,31 @@ func (l *EventIndexer) Index() { continue } - if currentBlock <= storage.BlockProcessed { - log.Info("no new block to index", "current_block", currentBlock, "last_processed_block", storage.BlockProcessed) + if currentBlock <= l.storage.BlockProcessed { + log.Info("no new block to index", "current_block", currentBlock, "last_processed_block", l.storage.BlockProcessed) continue } // Perform indexing operation - indexedEventInfo, err := l.index(l.client, big.NewInt(int64(storage.BlockProcessed)), big.NewInt(int64(currentBlock))) + indexedEventInfo, err := l.index(l.client, big.NewInt(int64(l.storage.BlockProcessed)), big.NewInt(int64(currentBlock))) if err != nil { log.Error("indexing operation failed", "error", err) continue } if indexedEventInfo != nil { - storage.EventInfo = *indexedEventInfo + l.storage.EventInfo = *indexedEventInfo } else { - storage.EventInfo = EventInfo{ + l.storage.EventInfo = EventInfo{ BlockProcessed: currentBlock, } } // Update storage - err = storage.Store() + err = l.storage.Store() if err != nil { - log.Error("event index complete, failed to update storage", "error", err, "file_name", storage.Filename) + log.Error("event index complete, failed to update storage", "error", err) } else { - log.Info("event index complete storage updated", "processed_block", storage.EventInfo.BlockProcessed, "block_time", storage.EventInfo.BlockTime) + log.Info("event index complete, storage updated", "processed_block", l.storage.EventInfo.BlockProcessed, "block_time", l.storage.EventInfo.BlockTime) } } @@ -139,7 +139,6 @@ func (ei *EventIndexer) index(client *ethclient.Client, fromBlock, toBlock *big. func (l *EventIndexer) GetFilter() ethereum.FilterQuery { return l.filterQuery } - -func (l *EventIndexer) GetStorePath() string { - return l.storePath +func (l *EventIndexer) GetStorage() *EventInfoStorage { + return l.storage } diff --git a/tx-submitter/event/storage.go b/tx-submitter/event/storage.go index 7e2062731..d77f857f7 100644 --- a/tx-submitter/event/storage.go +++ b/tx-submitter/event/storage.go @@ -3,8 +3,11 @@ package event import ( "encoding/json" "fmt" - "os" "sync" + + "morph-l2/tx-submitter/db" + "morph-l2/tx-submitter/params" + "morph-l2/tx-submitter/utils" ) type IEventStorage interface { @@ -12,10 +15,6 @@ type IEventStorage interface { Load() error } -var ( - defaultFilename = "event_info.json" -) - type EventInfo struct { BlockTime uint64 `json:"block_time"` // event emit time BlockProcessed uint64 `json:"block_processed"` // block processed @@ -23,51 +22,55 @@ type EventInfo struct { type EventInfoStorage struct { EventInfo - Filename string `json:"filename"` // filename - lock sync.Mutex + db *db.Db + mu sync.Mutex } -func NewEventInfoStorage(filename string) *EventInfoStorage { - if filename == "" { - filename = defaultFilename - } +func NewEventInfoStorage(db *db.Db) *EventInfoStorage { return &EventInfoStorage{ - Filename: filename, + db: db, } } func (e *EventInfoStorage) Store() error { // Convert struct to JSON string - jsonData, err := json.Marshal(e) + jsonData, err := json.Marshal(e.EventInfo) if err != nil { return fmt.Errorf("failed to convert struct to JSON: %w", err) } - e.lock.Lock() - defer e.lock.Unlock() + e.mu.Lock() + defer e.mu.Unlock() // Write JSON data to file - err = os.WriteFile(e.Filename, jsonData, 0600) + err = e.db.PutString(params.EventInfoKey, string(jsonData)) if err != nil { - return fmt.Errorf("failed to write to file: %w", err) + return fmt.Errorf("failed to write to db: err=%w, data=%v", err, jsonData) } - return nil } func (e *EventInfoStorage) Load() error { - e.lock.Lock() - defer e.lock.Unlock() - jsonData, err := os.ReadFile(e.Filename) + e.mu.Lock() + defer e.mu.Unlock() + evnetInfo, err := e.db.GetString(params.EventInfoKey) if err != nil { - if os.IsNotExist(err) { + if utils.ErrStringMatch(err, db.ErrKeyNotFound) { e.EventInfo = EventInfo{} + jsonData, err := json.Marshal(e.EventInfo) + if err != nil { + return fmt.Errorf("failed to marshal json: %w", err) + } + err = e.db.PutString(params.EventInfoKey, string(jsonData)) + if err != nil { + return fmt.Errorf("failed to init eventinfo to db: %w", err) + } return nil } - return fmt.Errorf("failed to read file: %w", err) + return fmt.Errorf("failed to load eventinfo from db: %w", err) } // parse json data to struct - err = json.Unmarshal(jsonData, e) + err = json.Unmarshal([]byte(evnetInfo), &e.EventInfo) if err != nil { return fmt.Errorf("failed to unmarshal JSON: %w", err) } diff --git a/tx-submitter/event/storage_test.go b/tx-submitter/event/storage_test.go index 7ba32dbb2..74e78b094 100644 --- a/tx-submitter/event/storage_test.go +++ b/tx-submitter/event/storage_test.go @@ -1,15 +1,18 @@ package event import ( + "morph-l2/tx-submitter/db" "testing" "github.com/stretchr/testify/require" ) func TestEventInfoStorage(t *testing.T) { - filename := "hello.json" - storage := NewEventInfoStorage(filename) - err := storage.Load() + + db, err := db.New("./testleveldb") + require.NoError(t, err) + storage := NewEventInfoStorage(db) + err = storage.Load() require.NoError(t, err) storage.BlockTime = 100 @@ -17,7 +20,7 @@ func TestEventInfoStorage(t *testing.T) { err = storage.Store() require.NoError(t, err) - storage2 := NewEventInfoStorage(filename) + storage2 := NewEventInfoStorage(db) err = storage2.Load() require.NoError(t, err) require.Equal(t, storage.BlockTime, storage2.BlockTime) diff --git a/tx-submitter/params/leveldb_keys.go b/tx-submitter/params/leveldb_keys.go new file mode 100644 index 000000000..b998e6de9 --- /dev/null +++ b/tx-submitter/params/leveldb_keys.go @@ -0,0 +1,5 @@ +package params + +const ( + EventInfoKey = "event_info" +) diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 2ca77a031..508243252 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -75,8 +75,9 @@ type Rollup struct { // collectedL1FeeSum collectedL1FeeSum float64 // batchcache - batchCache *BatchCache - bm *l1checker.BlockMonitor + batchCache *BatchCache + bm *l1checker.BlockMonitor + eventInfoStorage *event.EventInfoStorage } func NewRollup( @@ -96,27 +97,29 @@ func NewRollup( rotator *Rotator, ldb *db.Db, bm *l1checker.BlockMonitor, + eventInfoStorage *event.EventInfoStorage, ) *Rollup { return &Rollup{ - ctx: ctx, - metrics: metrics, - l1RpcClient: l1RpcClient, - L1Client: l1, - Rollup: rollup, - Staking: staking, - L2Clients: l2Clients, - privKey: priKey, - chainId: chainId, - rollupAddr: rollupAddr, - abi: abi, - rotator: rotator, - cfg: cfg, - signer: types.LatestSignerForChainID(chainId), - externalRsaPriv: rsaPriv, - batchCache: NewBatchCache(), - ldb: ldb, - bm: bm, + ctx: ctx, + metrics: metrics, + l1RpcClient: l1RpcClient, + L1Client: l1, + Rollup: rollup, + Staking: staking, + L2Clients: l2Clients, + privKey: priKey, + chainId: chainId, + rollupAddr: rollupAddr, + abi: abi, + rotator: rotator, + cfg: cfg, + signer: types.LatestSignerForChainID(chainId), + externalRsaPriv: rsaPriv, + batchCache: NewBatchCache(), + ldb: ldb, + bm: bm, + eventInfoStorage: eventInfoStorage, } } @@ -561,24 +564,27 @@ func (r *Rollup) rollup() error { return fmt.Errorf("rollup: get current submitter err, %w", err) } - storage := event.NewEventInfoStorage(r.rotator.indexer.GetStorePath()) - err = storage.Load() + err = r.eventInfoStorage.Load() if err != nil { return fmt.Errorf("failed to load storage in rollup: %w", err) } + log.Info("indexer info", + "block_processed", r.eventInfoStorage.EventInfo.BlockProcessed, + "event_latest_emit_time", r.eventInfoStorage.EventInfo.BlockTime, + ) // get current blocknumber blockNumber, err := r.L1Client.BlockNumber(context.Background()) if err != nil { return fmt.Errorf("failed to get block number in rollup: %w", err) } // set metrics - r.metrics.SetIndexerBlockProcessed(storage.EventInfo.BlockProcessed) + r.metrics.SetIndexerBlockProcessed(r.eventInfoStorage.EventInfo.BlockProcessed) // check if indexed block number is too old - if blockNumber > storage.EventInfo.BlockProcessed+100 { + if blockNumber > r.eventInfoStorage.EventInfo.BlockProcessed+100 { log.Info("indexed block number is too old, wait indexer to catch up", "module", r.GetModuleName(), "block_number", blockNumber, - "processed_block", storage.EventInfo.BlockProcessed) + "processed_block", r.eventInfoStorage.EventInfo.BlockProcessed) return nil } diff --git a/tx-submitter/services/rotator.go b/tx-submitter/services/rotator.go index 913fff482..c99884049 100644 --- a/tx-submitter/services/rotator.go +++ b/tx-submitter/services/rotator.go @@ -56,7 +56,7 @@ func (r *Rotator) UpdateState(clients []iface.L2Client, l1Staking iface.IL1Staki return fmt.Errorf("GetCurrentSubmitter: failed to get sequencer set update time: %w", err) } - storage := event.NewEventInfoStorage(r.indexer.GetStorePath()) + storage := r.indexer.GetStorage() err = storage.Load() if err != nil { log.Error("failed to load storage", "err", err) @@ -92,6 +92,16 @@ func (r *Rotator) UpdateState(clients []iface.L2Client, l1Staking iface.IL1Staki } submitterSet := utils.IntersectionOfAddresses(r.GetSequencerSet(), stakers) r.SetSubmitterSet(submitterSet) + // rotator info + log.Info( + "rotator state updated", + "epoch", r.epoch, + "start", r.startTime, + "epoch_update_time", epochUpdateTime, + "seq_update_time", sequcerUpdateTime, + "indexed_latest_block", storage.BlockProcessed, + "indexed_event_emit_time", storage.BlockTime, + ) return nil } From e28101d75625d1f45719ca5b9628acd3c5093010 Mon Sep 17 00:00:00 2001 From: corey Date: Fri, 6 Dec 2024 18:03:26 +0800 Subject: [PATCH 056/106] Fix fetch batch operation dispatching (#668) --- oracle/oracle/batch.go | 56 ++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/oracle/oracle/batch.go b/oracle/oracle/batch.go index 231549d3b..b8e9c3ce7 100644 --- a/oracle/oracle/batch.go +++ b/oracle/oracle/batch.go @@ -39,7 +39,7 @@ type BatchInfo struct { func (o *Oracle) GetStartBlock(nextBatchSubmissionIndex *big.Int) (uint64, error) { if nextBatchSubmissionIndex.Uint64() == 1 { - return o.cfg.StartBlock, nil + return o.cfg.StartBlock + 1, nil } bs, err := o.record.BatchSubmissions(nil, new(big.Int).Sub(nextBatchSubmissionIndex, big.NewInt(1))) if err != nil { @@ -49,8 +49,19 @@ func (o *Oracle) GetStartBlock(nextBatchSubmissionIndex *big.Int) (uint64, error } func (o *Oracle) GetBatchSubmission(ctx context.Context, startBlock, nextBatchSubmissionIndex uint64) ([]bindings.IRecordBatchSubmission, error) { - var rLogs []types.Log + var recordBatchSubmissions []bindings.IRecordBatchSubmission + lastLogs, err := o.fetchRollupLog(ctx, startBlock-1, startBlock-1) + if err != nil { + return nil, fmt.Errorf("fetch rollupLog error:%v", err) + } + if err = o.getBatchSubmissionByLogs(lastLogs, recordBatchSubmissions, nextBatchSubmissionIndex); err != nil { + return nil, fmt.Errorf("GetBatchSubmissionByLogs error:%v", err) + } + if len(recordBatchSubmissions) == maxBatchSize { + return recordBatchSubmissions, nil + } for { + batchIndex := nextBatchSubmissionIndex + uint64(len(recordBatchSubmissions)) endBlock := startBlock + o.cfg.MaxSize header, err := o.l1Client.HeaderByNumber(o.ctx, nil) if err != nil { @@ -63,49 +74,52 @@ func (o *Oracle) GetBatchSubmission(ctx context.Context, startBlock, nextBatchSu if endBlock >= header.Number.Uint64() { endBlock = header.Number.Uint64() } - rLogs, err = o.fetchRollupLog(ctx, startBlock, endBlock) + fetchLogs, err := o.fetchRollupLog(ctx, startBlock, endBlock) if err != nil { return nil, fmt.Errorf("fetch rollupLog error:%v", err) } - if len(rLogs) >= 1 { - break + if err = o.getBatchSubmissionByLogs(fetchLogs, recordBatchSubmissions, batchIndex); err != nil { + return nil, fmt.Errorf("GetBatchSubmissionByLogs error:%v", err) + } + if len(recordBatchSubmissions) == maxBatchSize { + return recordBatchSubmissions, nil } startBlock = endBlock + 1 } +} - var recordBatchSubmissions []bindings.IRecordBatchSubmission - batchIndex := nextBatchSubmissionIndex +func (o *Oracle) getBatchSubmissionByLogs(rLogs []types.Log, recordBatchSubmissions []bindings.IRecordBatchSubmission, batchIndex uint64) error { for _, lg := range rLogs { - tx, pending, err := o.l1Client.TransactionByHash(ctx, lg.TxHash) + tx, pending, err := o.l1Client.TransactionByHash(o.ctx, lg.TxHash) if err != nil { - return nil, fmt.Errorf("get transaction by hash error:%v", err) + return fmt.Errorf("get transaction by hash error:%v", err) } signer := types.NewLondonSignerWithEIP4844(tx.ChainId()) msg, err := tx.AsMessage(signer, tx.GasFeeCap()) if err != nil { - return nil, err + return err } header, err := o.l1Client.HeaderByNumber(context.Background(), big.NewInt(int64(lg.BlockNumber))) if err != nil { - return nil, fmt.Errorf("get header by number error:%v", err) + return fmt.Errorf("get header by number error:%v", err) } if pending { - return nil, errors.New("pending transaction") + return errors.New("pending transaction") } beforeRemoveSkipMapAbi, err := BeforeRemoveSkipMapMetaData.GetAbi() if err != nil { - return nil, err + return err } abi, err := bindings.RollupMetaData.GetAbi() if err != nil { - return nil, err + return err } var batch eth.RPCRollupBatch if bytes.Equal(tx.Data()[0:4], abi.Methods["commitBatch"].ID) { args, err := abi.Methods["commitBatch"].Inputs.Unpack(tx.Data()[4:]) if err != nil { log.Error("fetch batch info failed", "txHash", lg.TxHash, "blockNumber", lg.BlockNumber, "error", err) - return nil, fmt.Errorf("unpack commitBatch error:%v", err) + return fmt.Errorf("unpack commitBatch error:%v", err) } rollupBatchData := args[0].(struct { Version uint8 "json:\"version\"" @@ -127,7 +141,7 @@ func (o *Oracle) GetBatchSubmission(ctx context.Context, startBlock, nextBatchSu args, err := beforeRemoveSkipMapAbi.Methods["commitBatch"].Inputs.Unpack(tx.Data()[4:]) if err != nil { log.Error("fetch batch info failed", "txHash", lg.TxHash, "blockNumber", lg.BlockNumber, "error", err) - return nil, fmt.Errorf("unpack commitBatch error:%v", err) + return fmt.Errorf("unpack commitBatch error:%v", err) } rollupBatchData := args[0].(struct { @@ -155,19 +169,19 @@ func (o *Oracle) GetBatchSubmission(ctx context.Context, startBlock, nextBatchSu rollupCommitBatch, parseErr := o.rollup.ParseCommitBatch(lg) if parseErr != nil { log.Error("get l2 BlockNumber", "err", err) - return nil, parseErr + return parseErr } if rollupCommitBatch.BatchIndex.Uint64() < batchIndex { continue } if rollupCommitBatch.BatchIndex.Uint64() > batchIndex { - return nil, fmt.Errorf(fmt.Sprintf("batch is incontinuity,expect %v,have %v", batchIndex, rollupCommitBatch.BatchIndex.Uint64())) + return fmt.Errorf(fmt.Sprintf("batch is incontinuity,expect %v,have %v", batchIndex, rollupCommitBatch.BatchIndex.Uint64())) } // set batchIndex to new batch index + 1 batchIndex = rollupCommitBatch.BatchIndex.Uint64() + 1 var batchData derivation.BatchInfo if err = batchData.ParseBatch(batch); err != nil { - return nil, fmt.Errorf("parse batch error:%v", err) + return fmt.Errorf("parse batch error:%v", err) } log.Info("received new batch", "batch_index", rollupCommitBatch.BatchIndex.Uint64()) recordBatchSubmission := bindings.IRecordBatchSubmission{ @@ -180,10 +194,10 @@ func (o *Oracle) GetBatchSubmission(ctx context.Context, startBlock, nextBatchSu } recordBatchSubmissions = append(recordBatchSubmissions, recordBatchSubmission) if len(recordBatchSubmissions) == maxBatchSize { - return recordBatchSubmissions, nil + return nil } } - return recordBatchSubmissions, nil + return nil } func (o *Oracle) fetchRollupLog(ctx context.Context, start, end uint64) ([]types.Log, error) { From 7d286fb953831fc3d952f3266d414401d922c53e Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Mon, 9 Dec 2024 16:10:21 +0800 Subject: [PATCH 057/106] Revert rollup control batch income (#670) --- tx-submitter/entry.go | 3 - tx-submitter/flags/flags.go | 41 +++----- tx-submitter/services/batch_cache.go | 39 -------- tx-submitter/services/batch_calche_test.go | 21 ----- tx-submitter/services/rollup.go | 103 +++++++-------------- tx-submitter/services/utils.go | 15 --- tx-submitter/utils/config.go | 18 ++-- tx-submitter/utils/utils.go | 53 ++--------- tx-submitter/utils/utils_test.go | 98 -------------------- 9 files changed, 64 insertions(+), 327 deletions(-) delete mode 100644 tx-submitter/services/batch_cache.go delete mode 100644 tx-submitter/services/batch_calche_test.go diff --git a/tx-submitter/entry.go b/tx-submitter/entry.go index 545a2056c..5355def1b 100644 --- a/tx-submitter/entry.go +++ b/tx-submitter/entry.go @@ -69,9 +69,6 @@ func Main() func(ctx *cli.Context) error { "rough_estimate_per_l1_msg", cfg.RollupTxGasPerL1Msg, "log_level", cfg.LogLevel, "leveldb_pathname", cfg.LeveldbPathName, - "l1_stop_in_blocks", cfg.BlockNotIncreasedThreshold, - "rollup_loss_control", cfg.RollupLossControl, - "rolluo_loss_buffer", cfg.MaxRollupLossBuffer, ) ctx, cancel := context.WithCancel(context.Background()) diff --git a/tx-submitter/flags/flags.go b/tx-submitter/flags/flags.go index 8e8d1b143..041cf2db5 100644 --- a/tx-submitter/flags/flags.go +++ b/tx-submitter/flags/flags.go @@ -229,37 +229,37 @@ var ( } // external sign - ExternalSignFlag = cli.BoolFlag{ + ExternalSign = cli.BoolFlag{ Name: "external_sign", Usage: "Enable external sign", EnvVar: prefixEnvVar("EXTERNAL_SIGN"), } // address - ExternalSignAddressFlag = cli.StringFlag{ + ExternalSignAddress = cli.StringFlag{ Name: "external_sign_address", Usage: "The address of the external sign", EnvVar: prefixEnvVar("EXTERNAL_SIGN_ADDRESS"), } // appid - ExternalSignAppidFlag = cli.StringFlag{ + ExternalSignAppid = cli.StringFlag{ Name: "external_sign_appid", Usage: "The appid of the external sign", EnvVar: prefixEnvVar("EXTERNAL_SIGN_APPID"), } // chain - ExternalSignChainFlag = cli.StringFlag{ + ExternalSignChain = cli.StringFlag{ Name: "external_sign_chain", Usage: "The chain of the external sign", EnvVar: prefixEnvVar("EXTERNAL_SIGN_CHAIN"), } // url - ExternalSignUrlFlag = cli.StringFlag{ + ExternalSignUrl = cli.StringFlag{ Name: "external_sign_url", Usage: "The url of the external sign", EnvVar: prefixEnvVar("EXTERNAL_SIGN_URL"), } - ExternalSignRsaPrivFlag = cli.StringFlag{ + ExternalSignRsaPriv = cli.StringFlag{ Name: "external_rsa_priv", Usage: "The rsa private key of the external sign", EnvVar: "SEQUENCER_EXTERNAL_SIGN_RSA_PRIV", // use sequencer rsa from xxx @@ -300,24 +300,12 @@ var ( } // l1 block not incremented threshold - BlockNotIncreasedThresholdFlag = cli.Int64Flag{ + BlockNotIncreasedThreshold = cli.Int64Flag{ Name: "block_not_increased_threshold", Usage: "The threshold for block not incremented", Value: 5, EnvVar: prefixEnvVar("BLOCK_NOT_INCREASED_THRESHOLD"), } - RollupLossControlFlag = cli.BoolFlag{ - Name: "rollup_loss_control", - Usage: "Enable rollup loss control", - EnvVar: prefixEnvVar("ROLLUP_LOSS_CONTROL"), - } - // max rollup loss buffer - MaxRollupLossBufferFlag = cli.Int64Flag{ - Name: "max_rollup_loss_buffer", - Usage: "single transaction rollup maximum allowable loss buff", - Value: 50, // default 50% percent - EnvVar: prefixEnvVar("MAX_ROLLUP_LOSS_BUFFER"), - } ) var requiredFlags = []cli.Flag{ @@ -361,19 +349,18 @@ var optionalFlags = []cli.Flag{ MaxTxsInPendingPoolFlag, // external sign - ExternalSignFlag, - ExternalSignAddressFlag, - ExternalSignAppidFlag, - ExternalSignChainFlag, - ExternalSignUrlFlag, - ExternalSignRsaPrivFlag, + ExternalSign, + ExternalSignAddress, + ExternalSignAppid, + ExternalSignChain, + ExternalSignUrl, + ExternalSignRsaPriv, RoughEstimateGasFlag, RotatorBufferFlag, StakingEventStoreFileFlag, EventIndexStepFlag, LeveldbPathNameFlag, - BlockNotIncreasedThresholdFlag, - MaxRollupLossBufferFlag, + BlockNotIncreasedThreshold, } // Flags contains the list of configuration options available to the binary. diff --git a/tx-submitter/services/batch_cache.go b/tx-submitter/services/batch_cache.go deleted file mode 100644 index 5cb8443a9..000000000 --- a/tx-submitter/services/batch_cache.go +++ /dev/null @@ -1,39 +0,0 @@ -package services - -import ( - "sync" - - "github.com/morph-l2/go-ethereum/eth" -) - -type BatchCache struct { - batchCache map[uint64]*eth.RPCRollupBatch - m sync.Mutex -} - -func NewBatchCache() *BatchCache { - return &BatchCache{ - batchCache: make(map[uint64]*eth.RPCRollupBatch), - } -} - -func (b *BatchCache) Get(batchIndex uint64) (*eth.RPCRollupBatch, bool) { - b.m.Lock() - defer b.m.Unlock() - - batch, ok := b.batchCache[batchIndex] - return batch, ok -} -func (b *BatchCache) Set(batchIndex uint64, batch *eth.RPCRollupBatch) { - b.m.Lock() - defer b.m.Unlock() - - b.batchCache[batchIndex] = batch -} - -func (b *BatchCache) Delete(batchIndex uint64) { - b.m.Lock() - defer b.m.Unlock() - - delete(b.batchCache, batchIndex) -} diff --git a/tx-submitter/services/batch_calche_test.go b/tx-submitter/services/batch_calche_test.go deleted file mode 100644 index 03529eb2d..000000000 --- a/tx-submitter/services/batch_calche_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package services - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func TestBatchCache(t *testing.T) { - - cache := NewBatchCache() - cache.Set(1, nil) - _, ok := cache.Get(1) - require.True(t, ok) - cache.Delete(1) - _, ok = cache.Get(1) - require.False(t, ok) - _, ok = cache.Get(2) - require.False(t, ok) - -} diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 508243252..2ae0e3220 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -75,7 +75,7 @@ type Rollup struct { // collectedL1FeeSum collectedL1FeeSum float64 // batchcache - batchCache *BatchCache + batchCache map[uint64]*eth.RPCRollupBatch bm *l1checker.BlockMonitor eventInfoStorage *event.EventInfoStorage } @@ -101,25 +101,24 @@ func NewRollup( ) *Rollup { return &Rollup{ - ctx: ctx, - metrics: metrics, - l1RpcClient: l1RpcClient, - L1Client: l1, - Rollup: rollup, - Staking: staking, - L2Clients: l2Clients, - privKey: priKey, - chainId: chainId, - rollupAddr: rollupAddr, - abi: abi, - rotator: rotator, - cfg: cfg, - signer: types.LatestSignerForChainID(chainId), - externalRsaPriv: rsaPriv, - batchCache: NewBatchCache(), - ldb: ldb, - bm: bm, - eventInfoStorage: eventInfoStorage, + ctx: ctx, + metrics: metrics, + l1RpcClient: l1RpcClient, + L1Client: l1, + Rollup: rollup, + Staking: staking, + L2Clients: l2Clients, + privKey: priKey, + chainId: chainId, + rollupAddr: rollupAddr, + abi: abi, + rotator: rotator, + cfg: cfg, + signer: types.LatestSignerForChainID(chainId), + externalRsaPriv: rsaPriv, + batchCache: make(map[uint64]*eth.RPCRollupBatch), + ldb: ldb, + bm: bm, } } @@ -259,7 +258,7 @@ func (r *Rollup) ProcessTx() error { if ispending { if txRecord.sendTime+uint64(r.cfg.TxTimeout.Seconds()) < uint64(time.Now().Unix()) { log.Info("tx timeout", "tx", rtx.Hash().Hex(), "nonce", rtx.Nonce(), "method", method) - newtx, err := r.ReSubmitTx(false, rtx, r.GetReSubmitBatchIndex(method, rtx.Data())) + newtx, err := r.ReSubmitTx(false, rtx) if err != nil { log.Error("resubmit tx", "error", err, "tx", rtx.Hash().Hex(), "nonce", rtx.Nonce()) return fmt.Errorf("resubmit tx error:%w", err) @@ -284,8 +283,7 @@ func (r *Rollup) ProcessTx() error { "nonce", rtx.Nonce(), "query_times", txRecord.queryTimes, ) - - replacedtx, err := r.ReSubmitTx(true, rtx, r.GetReSubmitBatchIndex(method, rtx.Data())) + replacedtx, err := r.ReSubmitTx(true, rtx) if err != nil { log.Error("resend discarded tx", "old_tx", rtx.Hash().String(), "nonce", rtx.Nonce(), "error", err) if utils.ErrStringMatch(err, core.ErrNonceTooLow) { @@ -362,7 +360,7 @@ func (r *Rollup) ProcessTx() error { } r.metrics.SetRollupCost(fee) index := utils.ParseParentBatchIndex(rtx.Data()) + 1 - batch, ok := r.batchCache.Get(index) + batch, ok := r.batchCache[index] if ok { collectedL1FeeFloat := ToEtherFloat((*big.Int)(batch.CollectedL1Fee)) r.collectedL1FeeSum += collectedL1FeeFloat @@ -372,7 +370,7 @@ func (r *Rollup) ProcessTx() error { } r.metrics.SetCollectedL1Fee(ToEtherFloat((*big.Int)(batch.CollectedL1Fee))) // remove batch from cache - r.batchCache.Delete(index) + delete(r.batchCache, index) } else { log.Warn("batch not found in batchCache while set collect fee metrics", "index", index, @@ -531,7 +529,7 @@ func (r *Rollup) finalize() error { "size", signedTx.Size(), ) - err = r.SendTx(signedTx, 0) + err = r.SendTx(signedTx) if err != nil { log.Error("send finalize tx to mempool", "error", err.Error()) if utils.ErrStringMatch(err, core.ErrNonceTooLow) { @@ -666,13 +664,9 @@ func (r *Rollup) rollup() error { return nil } - var batch *eth.RPCRollupBatch - batch, ok := r.batchCache.Get(batchIndex) - if !ok { - batch, err = GetRollupBatchByIndex(batchIndex, r.L2Clients) - if err != nil { - return fmt.Errorf("get rollup batch by index err:%v", err) - } + batch, err := GetRollupBatchByIndex(batchIndex, r.L2Clients) + if err != nil { + return fmt.Errorf("get rollup batch by index err:%v", err) } // check if the batch is valid @@ -688,7 +682,7 @@ func (r *Rollup) rollup() error { // set batch cache // it shoud be removed after the batch is committed - r.batchCache.Set(batchIndex, batch) + r.batchCache[batchIndex] = batch signature, err := r.buildSignatureInput(batch) if err != nil { @@ -728,7 +722,7 @@ func (r *Rollup) rollup() error { } if r.cfg.RoughEstimateGas { - msgcnt := r.ParseL1MessageCnt(batch.BlockContexts) + msgcnt := utils.ParseL1MessageCnt(batch.BlockContexts) gas = r.RoughRollupGasEstimate(msgcnt) log.Info("rough estimate rollup tx gas", "gas", gas, "msgcnt", msgcnt) } else { @@ -806,7 +800,7 @@ func (r *Rollup) rollup() error { "blob_len", len(signedTx.BlobHashes()), ) - err = r.SendTx(signedTx, batchIndex) + err = r.SendTx(signedTx) if err != nil { log.Error("send tx to mempool", "error", err.Error()) if utils.ErrStringMatch(err, core.ErrNonceTooLow) { @@ -1111,7 +1105,7 @@ func UpdateGasLimit(tx *types.Transaction) (*types.Transaction, error) { } // send tx to l1 with business logic check -func (r *Rollup) SendTx(tx *types.Transaction, batchIndex uint64) error { +func (r *Rollup) SendTx(tx *types.Transaction) error { // judge tx info is valid if tx == nil { @@ -1121,30 +1115,7 @@ func (r *Rollup) SendTx(tx *types.Transaction, batchIndex uint64) error { if !r.bm.IsGrowth() { return fmt.Errorf("block not growth in %d blocks time", r.cfg.BlockNotIncreasedThreshold) } - // check batch loss - if r.cfg.RollupLossControl { - // calc fee - fee := utils.CalcFeeForTx(tx) - // get batch - var collectedL1Fee *big.Int - batch, ok := r.batchCache.Get(batchIndex) - if ok { - collectedL1Fee = batch.CollectedL1Fee.ToInt() - if collectedL1Fee == nil { - collectedL1Fee = big.NewInt(0) - } - } else { - log.Warn("batch not found in cache when calc fee before SendTx", "batchIndex", batchIndex) - collectedL1Fee = big.NewInt(0) - } - // targetFee = fee * (100 + cfg.RotatorBuffer)/100 - targetFee := new(big.Int).Mul(fee, big.NewInt(100+r.cfg.RotatorBuffer)) - targetFee.Div(targetFee, big.NewInt(100)) - if collectedL1Fee.Cmp(targetFee) < 0 { - return fmt.Errorf("tx fee exceed collectedL1Fee: targetFee=%v,fee=%v,collectedL1Fee:=%v", targetFee, fee, collectedL1Fee) - } - } err := sendTx(r.L1Client, r.cfg.TxFeeLimit, tx) if err != nil { return err @@ -1181,7 +1152,7 @@ func sendTx(client iface.Client, txFeeLimit uint64, tx *types.Transaction) error return client.SendTransaction(context.Background(), tx) } -func (r *Rollup) ReSubmitTx(resend bool, tx *types.Transaction, batchIndex uint64) (*types.Transaction, error) { +func (r *Rollup) ReSubmitTx(resend bool, tx *types.Transaction) (*types.Transaction, error) { if tx == nil { return nil, errors.New("nil tx") } @@ -1272,7 +1243,7 @@ func (r *Rollup) ReSubmitTx(resend bool, tx *types.Transaction, batchIndex uint6 return nil, fmt.Errorf("sign tx error:%w", err) } // send tx - err = r.SendTx(newTx, batchIndex) + err = r.SendTx(newTx) if err != nil { return nil, fmt.Errorf("send tx error:%w", err) } @@ -1378,11 +1349,3 @@ func (r *Rollup) InitFeeMetricsSum() error { r.metrics.CollectedL1FeeSum.Add(r.collectedL1FeeSum) return nil } - -func (r *Rollup) GetReSubmitBatchIndex(method string, calldta []byte) uint64 { - if method == "commitBatch" { - return utils.ParseBatchIndex(method, calldta) - } else { - return 0 - } -} diff --git a/tx-submitter/services/utils.go b/tx-submitter/services/utils.go index d5909d752..e8e185b42 100644 --- a/tx-submitter/services/utils.go +++ b/tx-submitter/services/utils.go @@ -2,11 +2,9 @@ package services import ( "crypto/sha256" - "encoding/binary" "math/big" "github.com/morph-l2/go-ethereum/common" - "github.com/morph-l2/go-ethereum/common/hexutil" "github.com/morph-l2/go-ethereum/core/types" "github.com/morph-l2/go-ethereum/crypto/kzg4844" "github.com/morph-l2/go-ethereum/params" @@ -75,16 +73,3 @@ func ToEtherFloat(weiAmt *big.Int) float64 { return fEtherAmt } - -func (r *Rollup) ParseL1MessageCnt(blockContexts hexutil.Bytes) uint64 { - - var l1msgcnt uint64 - blockNum := binary.BigEndian.Uint16(blockContexts[:2]) - remainingBz := blockContexts[2:] - for i := 0; i < int(blockNum); i++ { - l1msgcnt += uint64(binary.BigEndian.Uint16(remainingBz[58:60])) - remainingBz = remainingBz[60:] - } - - return l1msgcnt -} diff --git a/tx-submitter/utils/config.go b/tx-submitter/utils/config.go index cf7c95517..30decb206 100644 --- a/tx-submitter/utils/config.go +++ b/tx-submitter/utils/config.go @@ -107,8 +107,6 @@ type Config struct { // leveldb path name LeveldbPathName string BlockNotIncreasedThreshold int64 - RollupLossControl bool - MaxRollupLossBuffer int64 } // NewConfig parses the DriverConfig from the provided flags or environment variables. @@ -159,12 +157,12 @@ func NewConfig(ctx *cli.Context) (Config, error) { MaxTxsInPendingPool: ctx.GlobalUint64(flags.MaxTxsInPendingPoolFlag.Name), // external sign - ExternalSign: ctx.GlobalBool(flags.ExternalSignFlag.Name), - ExternalSignAppid: ctx.GlobalString(flags.ExternalSignAppidFlag.Name), - ExternalSignAddress: ctx.GlobalString(flags.ExternalSignAddressFlag.Name), - ExternalSignChain: ctx.GlobalString(flags.ExternalSignChainFlag.Name), - ExternalSignUrl: ctx.GlobalString(flags.ExternalSignUrlFlag.Name), - ExternalSignRsaPriv: ctx.GlobalString(flags.ExternalSignRsaPrivFlag.Name), + ExternalSign: ctx.GlobalBool(flags.ExternalSign.Name), + ExternalSignAppid: ctx.GlobalString(flags.ExternalSignAppid.Name), + ExternalSignAddress: ctx.GlobalString(flags.ExternalSignAddress.Name), + ExternalSignChain: ctx.GlobalString(flags.ExternalSignChain.Name), + ExternalSignUrl: ctx.GlobalString(flags.ExternalSignUrl.Name), + ExternalSignRsaPriv: ctx.GlobalString(flags.ExternalSignRsaPriv.Name), // rough estimate gas switch RoughEstimateGas: ctx.GlobalBool(flags.RoughEstimateGasFlag.Name), // rotator interval buffer @@ -179,9 +177,7 @@ func NewConfig(ctx *cli.Context) (Config, error) { // leveldb path name LeveldbPathName: ctx.GlobalString(flags.LeveldbPathNameFlag.Name), // BlockNotIncreasedThreshold - BlockNotIncreasedThreshold: ctx.GlobalInt64(flags.BlockNotIncreasedThresholdFlag.Name), - RollupLossControl: ctx.GlobalBool(flags.RollupLossControlFlag.Name), - MaxRollupLossBuffer: ctx.GlobalInt64(flags.MaxRollupLossBufferFlag.Name), + BlockNotIncreasedThreshold: ctx.GlobalInt64(flags.BlockNotIncreasedThreshold.Name), } return cfg, nil diff --git a/tx-submitter/utils/utils.go b/tx-submitter/utils/utils.go index 01ed34de0..bcfc02051 100644 --- a/tx-submitter/utils/utils.go +++ b/tx-submitter/utils/utils.go @@ -5,7 +5,6 @@ import ( "context" "encoding/binary" "fmt" - "math/big" "reflect" "regexp" "strconv" @@ -16,6 +15,7 @@ import ( "github.com/morph-l2/go-ethereum/accounts/abi" "github.com/morph-l2/go-ethereum/common" + "github.com/morph-l2/go-ethereum/common/hexutil" "github.com/morph-l2/go-ethereum/core/types" "github.com/morph-l2/go-ethereum/log" "github.com/morph-l2/go-ethereum/rpc" @@ -35,17 +35,6 @@ func Loop(ctx context.Context, period time.Duration, f func()) { } } -func ParseBatchIndex(method string, calldata []byte) uint64 { - switch method { - case "commitBatch": - return ParseParentBatchIndex(calldata) + 1 - case "finalizeBatch": - return ParseFBatchIndex(calldata) - default: - return 0 - } -} - func ParseFBatchIndex(calldata []byte) uint64 { abi, _ := bindings.RollupMetaData.GetAbi() parms, _ := abi.Methods["finalizeBatch"].Inputs.Unpack(calldata[4:]) @@ -184,37 +173,15 @@ func ParseNonce(s string) (uint64, uint64, error) { } } -func CalcFeeForTx(tx *types.Transaction) *big.Int { - if tx == nil { - return big.NewInt(0) - } - switch tx.Type() { - case types.DynamicFeeTxType: - if tx.GasFeeCap() == nil { - return big.NewInt(0) - } - fee := new(big.Int).Mul( - tx.GasFeeCap(), - big.NewInt(int64(tx.Gas())), - ) - return fee - case types.BlobTxType: - var blobfee *big.Int - if tx.BlobGasFeeCap() == nil { - blobfee = big.NewInt(0) - } else { - blobfee = new(big.Int).Mul(tx.BlobGasFeeCap(), big.NewInt(int64(tx.BlobGas()))) - } - var calldatafee *big.Int - if tx.GasFeeCap() == nil { - calldatafee = big.NewInt(0) - } else { - calldatafee = new(big.Int).Mul(tx.GasFeeCap(), big.NewInt(int64(tx.Gas()))) - } - return new(big.Int).Add(blobfee, calldatafee) +func ParseL1MessageCnt(blockContexts hexutil.Bytes) uint64 { - default: - log.Warn("unknown tx type to calc fee", "type", tx.Type()) - return big.NewInt(0) + var l1msgcnt uint64 + blockNum := binary.BigEndian.Uint16(blockContexts[:2]) + remainingBz := blockContexts[2:] + for i := 0; i < int(blockNum); i++ { + l1msgcnt += uint64(binary.BigEndian.Uint16(remainingBz[58:60])) + remainingBz = remainingBz[60:] } + + return l1msgcnt } diff --git a/tx-submitter/utils/utils_test.go b/tx-submitter/utils/utils_test.go index 245957104..71cf61114 100644 --- a/tx-submitter/utils/utils_test.go +++ b/tx-submitter/utils/utils_test.go @@ -2,13 +2,8 @@ package utils import ( "encoding/hex" - "math/big" "testing" - "github.com/holiman/uint256" - "github.com/morph-l2/go-ethereum/common" - "github.com/morph-l2/go-ethereum/core/types" - "github.com/morph-l2/go-ethereum/params" "github.com/stretchr/testify/require" ) @@ -19,96 +14,3 @@ func TestParseBatchIndex(t *testing.T) { require.NoError(t, err) require.EqualValues(t, ParseParentBatchIndex(bs), 16) } - -func TestCalcFeeForTx(t *testing.T) { - singleBlobHash := make([]common.Hash, 1) - tests := []struct { - name string - tx *types.Transaction - expected *big.Int - }{ - { - name: "nil transaction", - tx: nil, - expected: big.NewInt(0), - }, - { - name: "DynamicFeeTxType with nil GasFeeCap", - tx: types.NewTx(&types.DynamicFeeTx{ - ChainID: big.NewInt(1), - GasTipCap: big.NewInt(100), - GasFeeCap: nil, - Gas: 21000, - }), - expected: big.NewInt(0), - }, - { - name: "DynamicFeeTxType with non-nil GasFeeCap", - tx: types.NewTx(&types.DynamicFeeTx{ - ChainID: big.NewInt(1), - GasTipCap: big.NewInt(100), - GasFeeCap: big.NewInt(200), - Gas: 21000, - }), - expected: new(big.Int).Mul(big.NewInt(200), big.NewInt(21000)), - }, - { - name: "BlobTxType with nil BlobFeeCap and GasFeeCap", - tx: types.NewTx(&types.BlobTx{ - BlobFeeCap: nil, - BlobHashes: make([]common.Hash, 1), - GasFeeCap: nil, - Gas: 21000, - }), - expected: big.NewInt(0), - }, - { - name: "BlobTxType with nil BlobFeeCap and non-nil GasFeeCap", - tx: types.NewTx(&types.BlobTx{ - BlobFeeCap: nil, - BlobHashes: singleBlobHash, - GasFeeCap: uint256.NewInt(200), - Gas: 21000, - }), - expected: new(big.Int).Mul(big.NewInt(200), big.NewInt(21000)), - }, - { - name: "BlobTxType with non-nil BlobFeeCap and nil GasFeeCap", - tx: types.NewTx(&types.BlobTx{ - BlobFeeCap: uint256.NewInt(150), - BlobHashes: singleBlobHash, - GasFeeCap: nil, - Gas: 21000, - }), - expected: new(big.Int).Mul(big.NewInt(150), big.NewInt(params.BlobTxBlobGasPerBlob)), - }, - { - name: "BlobTxType with non-nil BlobFeeCap and non-nil GasFeeCap", - tx: types.NewTx(&types.BlobTx{ - BlobFeeCap: uint256.NewInt(150), - BlobHashes: singleBlobHash, - GasFeeCap: uint256.NewInt(200), - Gas: 21000, - }), - expected: new(big.Int).Add( - new(big.Int).Mul(big.NewInt(150), big.NewInt(params.BlobTxBlobGasPerBlob)), - new(big.Int).Mul(big.NewInt(200), big.NewInt(21000)), - ), - }, - { - name: "Unknown tx type", - tx: types.NewTx(&types.LegacyTx{ - Gas: 21000, - GasPrice: big.NewInt(200), - }), - expected: big.NewInt(0), - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - result := CalcFeeForTx(tt.tx) - require.Equal(t, tt.expected, result) - }) - } -} From ddd115fdc8a6fb4aab025983b3845b2fe97a34bb Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Mon, 9 Dec 2024 16:35:12 +0800 Subject: [PATCH 058/106] refactor(tx-submitter): improve batch cache management (#671) --- tx-submitter/entry.go | 1 + tx-submitter/services/rollup.go | 71 +++++++++++++------------- tx-submitter/types/batch_cache.go | 39 ++++++++++++++ tx-submitter/types/batch_cache_test.go | 21 ++++++++ 4 files changed, 97 insertions(+), 35 deletions(-) create mode 100644 tx-submitter/types/batch_cache.go create mode 100644 tx-submitter/types/batch_cache_test.go diff --git a/tx-submitter/entry.go b/tx-submitter/entry.go index 5355def1b..8849a4e1e 100644 --- a/tx-submitter/entry.go +++ b/tx-submitter/entry.go @@ -69,6 +69,7 @@ func Main() func(ctx *cli.Context) error { "rough_estimate_per_l1_msg", cfg.RollupTxGasPerL1Msg, "log_level", cfg.LogLevel, "leveldb_pathname", cfg.LeveldbPathName, + "l1_stop_in_blocks", cfg.BlockNotIncreasedThreshold, ) ctx, cancel := context.WithCancel(context.Background()) diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 2ae0e3220..275dac839 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -17,7 +17,7 @@ import ( "github.com/morph-l2/go-ethereum/common" "github.com/morph-l2/go-ethereum/consensus/misc/eip4844" "github.com/morph-l2/go-ethereum/core" - "github.com/morph-l2/go-ethereum/core/types" + ethtypes "github.com/morph-l2/go-ethereum/core/types" "github.com/morph-l2/go-ethereum/crypto" "github.com/morph-l2/go-ethereum/crypto/bls12381" "github.com/morph-l2/go-ethereum/eth" @@ -33,6 +33,7 @@ import ( "morph-l2/tx-submitter/l1checker" "morph-l2/tx-submitter/localpool" "morph-l2/tx-submitter/metrics" + "morph-l2/tx-submitter/types" "morph-l2/tx-submitter/utils" ) @@ -65,7 +66,7 @@ type Rollup struct { // cfg cfg utils.Config // signer - signer types.Signer + signer ethtypes.Signer // leveldb ldb *db.Db // rollupFeeSum @@ -75,7 +76,7 @@ type Rollup struct { // collectedL1FeeSum collectedL1FeeSum float64 // batchcache - batchCache map[uint64]*eth.RPCRollupBatch + batchCache *types.BatchCache bm *l1checker.BlockMonitor eventInfoStorage *event.EventInfoStorage } @@ -114,9 +115,9 @@ func NewRollup( abi: abi, rotator: rotator, cfg: cfg, - signer: types.LatestSignerForChainID(chainId), + signer: ethtypes.LatestSignerForChainID(chainId), externalRsaPriv: rsaPriv, - batchCache: make(map[uint64]*eth.RPCRollupBatch), + batchCache: types.NewBatchCache(), ldb: ldb, bm: bm, } @@ -324,7 +325,7 @@ func (r *Rollup) ProcessTx() error { logs..., ) - if receipt.Status != types.ReceiptStatusSuccessful { + if receipt.Status != ethtypes.ReceiptStatusSuccessful { // if tx is commitBatch if method == "commitBatch" { parentindex := utils.ParseParentBatchIndex(rtx.Data()) @@ -360,7 +361,7 @@ func (r *Rollup) ProcessTx() error { } r.metrics.SetRollupCost(fee) index := utils.ParseParentBatchIndex(rtx.Data()) + 1 - batch, ok := r.batchCache[index] + batch, ok := r.batchCache.Get(index) if ok { collectedL1FeeFloat := ToEtherFloat((*big.Int)(batch.CollectedL1Fee)) r.collectedL1FeeSum += collectedL1FeeFloat @@ -370,7 +371,7 @@ func (r *Rollup) ProcessTx() error { } r.metrics.SetCollectedL1Fee(ToEtherFloat((*big.Int)(batch.CollectedL1Fee))) // remove batch from cache - delete(r.batchCache, index) + r.batchCache.Delete(index) } else { log.Warn("batch not found in batchCache while set collect fee metrics", "index", index, @@ -497,7 +498,7 @@ func (r *Rollup) finalize() error { } } - tx := types.NewTx(&types.DynamicFeeTx{ + tx := ethtypes.NewTx(ðtypes.DynamicFeeTx{ ChainID: r.chainId, Nonce: nonce, GasTipCap: tip, @@ -682,7 +683,7 @@ func (r *Rollup) rollup() error { // set batch cache // it shoud be removed after the batch is committed - r.batchCache[batchIndex] = batch + r.batchCache.Set(batchIndex, batch) signature, err := r.buildSignatureInput(batch) if err != nil { @@ -745,14 +746,14 @@ func (r *Rollup) rollup() error { } } - var tx *types.Transaction + var tx *ethtypes.Transaction if len(batch.Sidecar.Blobs) > 0 { versionedHashes := make([]common.Hash, 0) for _, commit := range batch.Sidecar.Commitments { versionedHashes = append(versionedHashes, kZGToVersionedHash(commit)) } // blob tx - tx = types.NewTx(&types.BlobTx{ + tx = ethtypes.NewTx(ðtypes.BlobTx{ ChainID: uint256.MustFromBig(r.chainId), Nonce: nonce, GasTipCap: uint256.MustFromBig(big.NewInt(tip.Int64())), @@ -762,7 +763,7 @@ func (r *Rollup) rollup() error { Data: calldata, BlobFeeCap: uint256.MustFromBig(blobFee), BlobHashes: versionedHashes, - Sidecar: &types.BlobTxSidecar{ + Sidecar: ðtypes.BlobTxSidecar{ Blobs: batch.Sidecar.Blobs, Commitments: batch.Sidecar.Commitments, Proofs: batch.Sidecar.Proofs, @@ -770,7 +771,7 @@ func (r *Rollup) rollup() error { }) } else { - tx = types.NewTx(&types.DynamicFeeTx{ + tx = ethtypes.NewTx(ðtypes.DynamicFeeTx{ ChainID: r.chainId, Nonce: nonce, GasTipCap: tip, @@ -1058,14 +1059,14 @@ func GetEpochUpdateTime(addr common.Address, clients []iface.L2Client) (*big.Int } -func UpdateGasLimit(tx *types.Transaction) (*types.Transaction, error) { +func UpdateGasLimit(tx *ethtypes.Transaction) (*ethtypes.Transaction, error) { // add buffer to gas limit (*1.2) newGasLimit := tx.Gas() * 12 / 10 - var newTx *types.Transaction - if tx.Type() == types.LegacyTxType { + var newTx *ethtypes.Transaction + if tx.Type() == ethtypes.LegacyTxType { - newTx = types.NewTx(&types.LegacyTx{ + newTx = ethtypes.NewTx(ðtypes.LegacyTx{ Nonce: tx.Nonce(), GasPrice: big.NewInt(tx.GasPrice().Int64()), Gas: newGasLimit, @@ -1073,8 +1074,8 @@ func UpdateGasLimit(tx *types.Transaction) (*types.Transaction, error) { Value: tx.Value(), Data: tx.Data(), }) - } else if tx.Type() == types.DynamicFeeTxType { - newTx = types.NewTx(&types.DynamicFeeTx{ + } else if tx.Type() == ethtypes.DynamicFeeTxType { + newTx = ethtypes.NewTx(ðtypes.DynamicFeeTx{ Nonce: tx.Nonce(), GasTipCap: big.NewInt(tx.GasTipCap().Int64()), GasFeeCap: big.NewInt(tx.GasFeeCap().Int64()), @@ -1083,8 +1084,8 @@ func UpdateGasLimit(tx *types.Transaction) (*types.Transaction, error) { Value: tx.Value(), Data: tx.Data(), }) - } else if tx.Type() == types.BlobTxType { - newTx = types.NewTx(&types.BlobTx{ + } else if tx.Type() == ethtypes.BlobTxType { + newTx = ethtypes.NewTx(ðtypes.BlobTx{ ChainID: uint256.MustFromBig(tx.ChainId()), Nonce: tx.Nonce(), GasTipCap: uint256.MustFromBig(big.NewInt(tx.GasTipCap().Int64())), @@ -1105,7 +1106,7 @@ func UpdateGasLimit(tx *types.Transaction) (*types.Transaction, error) { } // send tx to l1 with business logic check -func (r *Rollup) SendTx(tx *types.Transaction) error { +func (r *Rollup) SendTx(tx *ethtypes.Transaction) error { // judge tx info is valid if tx == nil { @@ -1130,12 +1131,12 @@ func (r *Rollup) SendTx(tx *types.Transaction) error { } // send tx to l1 with business logic check -func sendTx(client iface.Client, txFeeLimit uint64, tx *types.Transaction) error { +func sendTx(client iface.Client, txFeeLimit uint64, tx *ethtypes.Transaction) error { // fee limit if txFeeLimit > 0 { var fee uint64 // calc tx gas fee - if tx.Type() == types.BlobTxType { + if tx.Type() == ethtypes.BlobTxType { // blob fee fee = tx.BlobGasFeeCap().Uint64() * tx.BlobGas() // tx fee @@ -1152,7 +1153,7 @@ func sendTx(client iface.Client, txFeeLimit uint64, tx *types.Transaction) error return client.SendTransaction(context.Background(), tx) } -func (r *Rollup) ReSubmitTx(resend bool, tx *types.Transaction) (*types.Transaction, error) { +func (r *Rollup) ReSubmitTx(resend bool, tx *ethtypes.Transaction) (*ethtypes.Transaction, error) { if tx == nil { return nil, errors.New("nil tx") } @@ -1178,8 +1179,8 @@ func (r *Rollup) ReSubmitTx(resend bool, tx *types.Transaction) (*types.Transact } if !resend { // bump tip & feeCap - bumpedFeeCap := calcThresholdValue(tx.GasFeeCap(), tx.Type() == types.BlobTxType) - bumpedTip := calcThresholdValue(tx.GasTipCap(), tx.Type() == types.BlobTxType) + bumpedFeeCap := calcThresholdValue(tx.GasFeeCap(), tx.Type() == ethtypes.BlobTxType) + bumpedTip := calcThresholdValue(tx.GasTipCap(), tx.Type() == ethtypes.BlobTxType) // if bumpedTip > tip if bumpedTip.Cmp(tip) > 0 { @@ -1190,18 +1191,18 @@ func (r *Rollup) ReSubmitTx(resend bool, tx *types.Transaction) (*types.Transact gasFeeCap = bumpedFeeCap } - if tx.Type() == types.BlobTxType { - bumpedBlobFeeCap := calcThresholdValue(tx.BlobGasFeeCap(), tx.Type() == types.BlobTxType) + if tx.Type() == ethtypes.BlobTxType { + bumpedBlobFeeCap := calcThresholdValue(tx.BlobGasFeeCap(), tx.Type() == ethtypes.BlobTxType) if bumpedBlobFeeCap.Cmp(blobFeeCap) > 0 { blobFeeCap = bumpedBlobFeeCap } } } - var newTx *types.Transaction + var newTx *ethtypes.Transaction switch tx.Type() { - case types.DynamicFeeTxType: - newTx = types.NewTx(&types.DynamicFeeTx{ + case ethtypes.DynamicFeeTxType: + newTx = ethtypes.NewTx(ðtypes.DynamicFeeTx{ To: tx.To(), Nonce: tx.Nonce(), GasFeeCap: gasFeeCap, @@ -1210,9 +1211,9 @@ func (r *Rollup) ReSubmitTx(resend bool, tx *types.Transaction) (*types.Transact Value: tx.Value(), Data: tx.Data(), }) - case types.BlobTxType: + case ethtypes.BlobTxType: - newTx = types.NewTx(&types.BlobTx{ + newTx = ethtypes.NewTx(ðtypes.BlobTx{ ChainID: uint256.MustFromBig(tx.ChainId()), Nonce: tx.Nonce(), GasTipCap: uint256.MustFromBig(tip), diff --git a/tx-submitter/types/batch_cache.go b/tx-submitter/types/batch_cache.go new file mode 100644 index 000000000..7e6794f1d --- /dev/null +++ b/tx-submitter/types/batch_cache.go @@ -0,0 +1,39 @@ +package types + +import ( + "sync" + + "github.com/morph-l2/go-ethereum/eth" +) + +type BatchCache struct { + batchCache map[uint64]*eth.RPCRollupBatch + m sync.Mutex +} + +func NewBatchCache() *BatchCache { + return &BatchCache{ + batchCache: make(map[uint64]*eth.RPCRollupBatch), + } +} + +func (b *BatchCache) Get(batchIndex uint64) (*eth.RPCRollupBatch, bool) { + b.m.Lock() + defer b.m.Unlock() + + batch, ok := b.batchCache[batchIndex] + return batch, ok +} +func (b *BatchCache) Set(batchIndex uint64, batch *eth.RPCRollupBatch) { + b.m.Lock() + defer b.m.Unlock() + + b.batchCache[batchIndex] = batch +} + +func (b *BatchCache) Delete(batchIndex uint64) { + b.m.Lock() + defer b.m.Unlock() + + delete(b.batchCache, batchIndex) +} diff --git a/tx-submitter/types/batch_cache_test.go b/tx-submitter/types/batch_cache_test.go new file mode 100644 index 000000000..f07d6411e --- /dev/null +++ b/tx-submitter/types/batch_cache_test.go @@ -0,0 +1,21 @@ +package types + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestBatchCache(t *testing.T) { + + cache := NewBatchCache() + cache.Set(1, nil) + _, ok := cache.Get(1) + require.True(t, ok) + cache.Delete(1) + _, ok = cache.Get(1) + require.False(t, ok) + _, ok = cache.Get(2) + require.False(t, ok) + +} From 1137e3adac521f7b7204bb9c9388e05a0e2d4354 Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Fri, 13 Dec 2024 12:33:48 +0800 Subject: [PATCH 059/106] fix(tx-submitter): eventInfoStorage not init (#677) --- tx-submitter/services/rollup.go | 37 +++++++++++++++++---------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 275dac839..c7180d3ae 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -102,24 +102,25 @@ func NewRollup( ) *Rollup { return &Rollup{ - ctx: ctx, - metrics: metrics, - l1RpcClient: l1RpcClient, - L1Client: l1, - Rollup: rollup, - Staking: staking, - L2Clients: l2Clients, - privKey: priKey, - chainId: chainId, - rollupAddr: rollupAddr, - abi: abi, - rotator: rotator, - cfg: cfg, - signer: ethtypes.LatestSignerForChainID(chainId), - externalRsaPriv: rsaPriv, - batchCache: types.NewBatchCache(), - ldb: ldb, - bm: bm, + ctx: ctx, + metrics: metrics, + l1RpcClient: l1RpcClient, + L1Client: l1, + Rollup: rollup, + Staking: staking, + L2Clients: l2Clients, + privKey: priKey, + chainId: chainId, + rollupAddr: rollupAddr, + abi: abi, + rotator: rotator, + cfg: cfg, + signer: ethtypes.LatestSignerForChainID(chainId), + externalRsaPriv: rsaPriv, + batchCache: types.NewBatchCache(), + ldb: ldb, + bm: bm, + eventInfoStorage: eventInfoStorage, } } From 25acbfdb16042a63f9451775699b0ec18d2d7b25 Mon Sep 17 00:00:00 2001 From: corey Date: Mon, 16 Dec 2024 11:21:42 +0800 Subject: [PATCH 060/106] Fix oracle getBatches (#676) --- oracle/oracle/batch.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/oracle/oracle/batch.go b/oracle/oracle/batch.go index b8e9c3ce7..4270bc117 100644 --- a/oracle/oracle/batch.go +++ b/oracle/oracle/batch.go @@ -54,7 +54,7 @@ func (o *Oracle) GetBatchSubmission(ctx context.Context, startBlock, nextBatchSu if err != nil { return nil, fmt.Errorf("fetch rollupLog error:%v", err) } - if err = o.getBatchSubmissionByLogs(lastLogs, recordBatchSubmissions, nextBatchSubmissionIndex); err != nil { + if err = o.getBatchSubmissionByLogs(lastLogs, &recordBatchSubmissions, nextBatchSubmissionIndex); err != nil { return nil, fmt.Errorf("GetBatchSubmissionByLogs error:%v", err) } if len(recordBatchSubmissions) == maxBatchSize { @@ -78,7 +78,7 @@ func (o *Oracle) GetBatchSubmission(ctx context.Context, startBlock, nextBatchSu if err != nil { return nil, fmt.Errorf("fetch rollupLog error:%v", err) } - if err = o.getBatchSubmissionByLogs(fetchLogs, recordBatchSubmissions, batchIndex); err != nil { + if err = o.getBatchSubmissionByLogs(fetchLogs, &recordBatchSubmissions, batchIndex); err != nil { return nil, fmt.Errorf("GetBatchSubmissionByLogs error:%v", err) } if len(recordBatchSubmissions) == maxBatchSize { @@ -88,7 +88,7 @@ func (o *Oracle) GetBatchSubmission(ctx context.Context, startBlock, nextBatchSu } } -func (o *Oracle) getBatchSubmissionByLogs(rLogs []types.Log, recordBatchSubmissions []bindings.IRecordBatchSubmission, batchIndex uint64) error { +func (o *Oracle) getBatchSubmissionByLogs(rLogs []types.Log, recordBatchSubmissions *[]bindings.IRecordBatchSubmission, batchIndex uint64) error { for _, lg := range rLogs { tx, pending, err := o.l1Client.TransactionByHash(o.ctx, lg.TxHash) if err != nil { @@ -192,8 +192,8 @@ func (o *Oracle) getBatchSubmissionByLogs(rLogs []types.Log, recordBatchSubmissi RollupTime: big.NewInt(int64(header.Time)), RollupBlock: big.NewInt(int64(lg.BlockNumber)), } - recordBatchSubmissions = append(recordBatchSubmissions, recordBatchSubmission) - if len(recordBatchSubmissions) == maxBatchSize { + *recordBatchSubmissions = append(*recordBatchSubmissions, recordBatchSubmission) + if len(*recordBatchSubmissions) == maxBatchSize { return nil } } From ae2ea5a318f43d2f7978b5118ed816e332759ace Mon Sep 17 00:00:00 2001 From: corey Date: Mon, 16 Dec 2024 15:45:42 +0800 Subject: [PATCH 061/106] Skip processing l1 msg that has already been processed by snapshot (#678) --- node/derivation/derivation.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/node/derivation/derivation.go b/node/derivation/derivation.go index cd0c7c4af..0b4eeb137 100644 --- a/node/derivation/derivation.go +++ b/node/derivation/derivation.go @@ -311,7 +311,11 @@ func (d *Derivation) fetchRollupDataByTxHash(txHash common.Hash, blockNumber uin } } batch.Sidecar = bts - rollupData, err := d.parseBatch(batch) + l2Height, err := d.l2Client.BlockNumber(d.ctx) + if err != nil { + return nil, fmt.Errorf("query l2 block number error:%v", err) + } + rollupData, err := d.parseBatch(batch, l2Height) if err != nil { d.logger.Error("parse batch failed", "txNonce", tx.Nonce(), "txHash", txHash, "l1BlockNumber", blockNumber) @@ -375,7 +379,7 @@ func (d *Derivation) UnPackData(data []byte) (geth.RPCRollupBatch, error) { return batch, nil } -func (d *Derivation) parseBatch(batch geth.RPCRollupBatch) (*BatchInfo, error) { +func (d *Derivation) parseBatch(batch geth.RPCRollupBatch, l2Height uint64) (*BatchInfo, error) { parentBatchHeader, err := types.DecodeBatchHeader(batch.ParentBatchHeader) if err != nil { return nil, fmt.Errorf("decode batch header error:%v", err) @@ -384,16 +388,20 @@ func (d *Derivation) parseBatch(batch geth.RPCRollupBatch) (*BatchInfo, error) { if err := batchInfo.ParseBatch(batch); err != nil { return nil, fmt.Errorf("parse batch error:%v", err) } - if err := d.handleL1Message(batchInfo, parentBatchHeader.TotalL1MessagePopped); err != nil { + if err := d.handleL1Message(batchInfo, parentBatchHeader.TotalL1MessagePopped, l2Height); err != nil { return nil, fmt.Errorf("handle l1 message error:%v", err) } batchInfo.batchIndex = parentBatchHeader.BatchIndex + 1 return batchInfo, nil } -func (d *Derivation) handleL1Message(rollupData *BatchInfo, parentTotalL1MessagePopped uint64) error { +func (d *Derivation) handleL1Message(rollupData *BatchInfo, parentTotalL1MessagePopped, l2Height uint64) error { totalL1MessagePopped := parentTotalL1MessagePopped for bIndex, block := range rollupData.blockContexts { + // This may happen to nodes started from sanpshot, in which case we will no longer handle L1Msg + if block.Number <= l2Height { + continue + } var l1Transactions []*eth.Transaction l1Messages, err := d.getL1Message(totalL1MessagePopped, uint64(block.l1MsgNum)) if err != nil { From e4739abaf617062566ac6d82751e1554c5b54c91 Mon Sep 17 00:00:00 2001 From: "marvel.yu" Date: Wed, 18 Dec 2024 12:35:39 +0800 Subject: [PATCH 062/106] add make target for qanet (#679) --- MakefileEc2.mk | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/MakefileEc2.mk b/MakefileEc2.mk index 8fa53be8f..f52581388 100644 --- a/MakefileEc2.mk +++ b/MakefileEc2.mk @@ -37,3 +37,19 @@ build-bk-prod-morph-prod-testnet-to-morph-tx-submitter-holesky: cp tx-submitter/tx-submitter dist/ tar -czvf tx-submitter.tar.gz dist aws s3 cp tx-submitter.tar.gz s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/tx-submitter.tar.gz + + +build-bk-test-morph-test-qanet-to-morph-node-qanet: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/node && make build + cp node/build/bin/morphnode dist/ + cp node/build/bin/tendermint dist/ + tar -czvf morph-node.tar.gz dist + aws s3 cp morph-node.tar.gz s3://morph-7637-morph-technical-department-qanet-data/morph-setup/morph-node.tar.gz + +build-bk-test-morph-test-qanet-to-morph-tx-submitter-qanet: + if [ ! -d dist ]; then mkdir -p dist; fi + env GO111MODULE=on CGO_LDFLAGS="-ldl" CGO_ENABLED=1 go build -v $(LDFLAGS) -o tx-submitter/tx-submitter ./tx-submitter/cmd + cp tx-submitter/tx-submitter dist/ + tar -czvf tx-submitter.tar.gz dist + aws s3 cp tx-submitter.tar.gz s3://morph-7637-morph-technical-department-qanet-data/morph-setup/tx-submitter.tar.gz From ee637157d7eb520aae22e8ba247de19000e43563 Mon Sep 17 00:00:00 2001 From: kukoo Date: Wed, 18 Dec 2024 17:06:16 +0800 Subject: [PATCH 063/106] Remove drop messages function (#681) --- .../bin/l1crossdomainmessenger_deployed.hex | 2 +- ...essagequeuewithgaspriceoracle_deployed.hex | 2 +- bindings/bin/rollup_deployed.hex | 2 +- bindings/bindings/l1crossdomainmessenger.go | 231 +++--------------- .../bindings/l1crossdomainmessenger_more.go | 4 +- .../l1messagequeuewithgaspriceoracle.go | 190 +------------- .../l1messagequeuewithgaspriceoracle_more.go | 4 +- bindings/bindings/rollup.go | 2 +- bindings/bindings/rollup_more.go | 2 +- .../contracts/l1/IL1CrossDomainMessenger.sol | 12 - .../contracts/l1/L1CrossDomainMessenger.sol | 59 +---- .../contracts/l1/rollup/IL1MessageQueue.sol | 11 - .../L1MessageQueueWithGasPriceOracle.sol | 19 +- .../test/L1CrossDomainMessenger.t.sol | 65 ----- .../contracts/test/L1CustomERC20Gateway.t.sol | 25 -- .../contracts/test/L1ERC1155Gateway.t.sol | 64 ----- .../contracts/test/L1ERC721Gateway.t.sol | 59 ----- contracts/contracts/test/L1ETHGateway.t.sol | 29 --- contracts/contracts/test/L1MessageQueue.t.sol | 72 ------ .../test/L1StandardERC20Gateway.t.sol | 34 --- contracts/contracts/test/L1WETHGateway.t.sol | 23 -- 21 files changed, 48 insertions(+), 863 deletions(-) diff --git a/bindings/bin/l1crossdomainmessenger_deployed.hex b/bindings/bin/l1crossdomainmessenger_deployed.hex index d7e24332e..a401e8da3 100644 --- a/bindings/bin/l1crossdomainmessenger_deployed.hex +++ b/bindings/bin/l1crossdomainmessenger_deployed.hex @@ -1 +1 @@ -0x6080604052600436106101a7575f3560e01c806386fa4b73116100e7578063c0c53b8b11610087578063e70fc93b11610062578063e70fc93b146104f9578063ea7ec51414610524578063ecc7042814610550578063f2fde38b14610564575f80fd5b8063c0c53b8b1461049c578063cb23bcb5146104bb578063d87e7df1146104da575f80fd5b8063a14238e7116100c2578063a14238e71461040e578063b2267a7b1461043c578063b604bf4c1461044f578063bedb86fb1461047d575f80fd5b806386fa4b73146103af5780638da5cb5b146103ce578063946130d8146103eb575f80fd5b806355004105116101525780636e296e451161012d5780636e296e45146102de578063715018a6146102fd578063797594b014610311578063846d4d7a14610330575f80fd5b806355004105146102a15780635c975abb146102b45780635f7b1577146102cb575f80fd5b80633b70c18a116101825780633b70c18a1461022c578063407c195514610263578063478222c214610282575f80fd5b806329907acd146101ba5780632a6cccb2146101d9578063340735f7146101f8575f80fd5b366101b6576101b4610583565b005b5f80fd5b3480156101c5575f80fd5b506101b46101d436600461283a565b6105e4565b3480156101e4575f80fd5b506101b46101f33660046128a7565b610966565b348015610203575f80fd5b506102176102123660046128de565b610a2d565b60405190151581526020015b60405180910390f35b348015610237575f80fd5b5060fe5461024b906001600160a01b031681565b6040516001600160a01b039091168152602001610223565b34801561026e575f80fd5b506101b461027d36600461291a565b610af6565b34801561028d575f80fd5b5060cb5461024b906001600160a01b031681565b6101b46102af366004612931565b610bb9565b3480156102bf575f80fd5b5060655460ff16610217565b6101b46102d93660046129c8565b611201565b3480156102e9575f80fd5b5060c95461024b906001600160a01b031681565b348015610308575f80fd5b506101b4611255565b34801561031c575f80fd5b5060ca5461024b906001600160a01b031681565b34801561033b575f80fd5b5061038661034a36600461291a565b6101006020525f90815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b604080516fffffffffffffffffffffffffffffffff938416815292909116602083015201610223565b3480156103ba575f80fd5b506101b46103c9366004612a66565b611266565b3480156103d9575f80fd5b506033546001600160a01b031661024b565b3480156103f6575f80fd5b5061040060ff5481565b604051908152602001610223565b348015610419575f80fd5b5061021761042836600461291a565b60fa6020525f908152604090205460ff1681565b6101b461044a366004612aef565b611732565b34801561045a575f80fd5b5061021761046936600461291a565b60fc6020525f908152604090205460ff1681565b348015610488575f80fd5b506101b4610497366004612b57565b61174d565b3480156104a7575f80fd5b506101b46104b6366004612b72565b61176e565b3480156104c6575f80fd5b5060fd5461024b906001600160a01b031681565b3480156104e5575f80fd5b506101b46104f43660046128a7565b6119d1565b348015610504575f80fd5b5061040061051336600461291a565b60fb6020525f908152604090205481565b34801561052f575f80fd5b5061040061053e36600461291a565b6101016020525f908152604090205481565b34801561055b575f80fd5b50610400611ac7565b34801561056f575f80fd5b506101b461057e3660046128a7565b611b50565b6033546001600160a01b031633146105e25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b565b6105ec611bdd565b60c9546001600160a01b031661dead146106485760405162461bcd60e51b815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e0060448201526064016105d9565b60fe546001600160a01b03165f6106628787878787611c30565b90505f818051906020012090505f60fb5f8381526020019081526020015f2054116106f55760405162461bcd60e51b815260206004820152602660248201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e60448201527f717565756564000000000000000000000000000000000000000000000000000060648201526084016105d9565b5f81815260fc602052604090205460ff16156107535760405162461bcd60e51b815260206004820152601760248201527f4d65737361676520616c72656164792064726f7070656400000000000000000060448201526064016105d9565b5f818152610100602052604081205470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16908190036107935750845b6040517f91652461000000000000000000000000000000000000000000000000000000008152600481018290526001600160a01b038516906391652461906024015f604051808303815f87803b1580156107eb575f80fd5b505af11580156107fd573d5f803e3d5ffd5b5050505f918252506101016020526040902054801561083d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01610793565b5f82815260fc6020526040808220805460ff191660011790555187917fbd05aabbf548001ebdd6ac80c02f1cfb3b39165f2fae1d420075f22e781ef63b91a260c980547fffffffffffffffffffffffff000000000000000000000000000000000000000016736f297c61b5c92ef107ffd30cd56affe5a273e8411790556040517f14298c510000000000000000000000000000000000000000000000000000000081526001600160a01b038a16906314298c51908990610901908990600401612c1d565b5f604051808303818588803b158015610918575f80fd5b505af115801561092a573d5f803e3d5ffd5b505060c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055505050505050505050505050565b61096e610583565b6001600160a01b0381166109c45760405162461bcd60e51b815260206004820152601d60248201527f6665655661756c742063616e6e6f74206265206164647265737328302900000060448201526064016105d9565b60cb80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f4aadc32827849f797733838c61302f7f56d2b6db28caa175eb3f7f8e5aba25f5905f90a35050565b5f84815b6020811015610aea578085901c600116600103610a9757858160208110610a5a57610a5a612c2f565b602002013582604051602001610a7a929190918252602082015260400190565b604051602081830303815290604052805190602001209150610ae2565b81868260208110610aaa57610aaa612c2f565b6020020135604051602001610ac9929190918252602082015260400190565b6040516020818303038152906040528051906020012091505b600101610a31565b50909114949350505050565b610afe610583565b5f8111610b735760405162461bcd60e51b815260206004820152602360248201527f7265706c61792074696d6573206d75737420626520677265617465722074686160448201527f6e2030000000000000000000000000000000000000000000000000000000000060648201526084016105d9565b60ff80549082905560408051828152602081018490527fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b91015b60405180910390a15050565b610bc1611bdd565b60c9546001600160a01b031661dead14610c1d5760405162461bcd60e51b815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e0060448201526064016105d9565b60fe5460ca546001600160a01b0391821691165f610c3e8a8a8a8a8a611c30565b90505f818051906020012090505f60fb5f8381526020019081526020015f205411610cd15760405162461bcd60e51b815260206004820152602660248201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e60448201527f717565756564000000000000000000000000000000000000000000000000000060648201526084016105d9565b5f81815260fc602052604090205460ff1615610d2f5760405162461bcd60e51b815260206004820152601760248201527f4d65737361676520616c72656164792064726f7070656400000000000000000060448201526064016105d9565b6040517f3e4cbbe60000000000000000000000000000000000000000000000000000000081526001600160a01b038c8116600483015263ffffffff881660248301525f9190861690633e4cbbe690604401602060405180830381865afa158015610d9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dbf9190612c5c565b905080341015610e115760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e74206d73672e76616c756520666f7220666565000060448201526064016105d9565b8015610eb95760cb546040515f916001600160a01b03169083908381818185875af1925050503d805f8114610e61576040519150601f19603f3d011682016040523d82523d5f602084013e610e66565b606091505b5050905080610eb75760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f206465647563742074686520666565000000000000000060448201526064016105d9565b505b5f856001600160a01b031663fd0ad31e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1a9190612c5c565b6040517f9b1597820000000000000000000000000000000000000000000000000000000081529091506001600160a01b03871690639b15978290610f669088908c908990600401612c73565b5f604051808303815f87803b158015610f7d575f80fd5b505af1158015610f8f573d5f803e3d5ffd5b5050505f848152610100602090815260408083208151808301909252546fffffffffffffffffffffffffffffffff80821683527001000000000000000000000000000000009091041691810182905292509003610fff575f8281526101016020526040902060018c019055611030565b80602001516001016fffffffffffffffffffffffffffffffff166101015f8481526020019081526020015f20819055505b6fffffffffffffffffffffffffffffffff808316602083015260ff5482519091161061109e5760405162461bcd60e51b815260206004820152601b60248201527f457863656564206d6178696d756d207265706c61792074696d6573000000000060448201526064016105d9565b80516fffffffffffffffffffffffffffffffff600191909101811682525f858152610100602090815260409091208351919093015182167001000000000000000000000000000000000291161790556001600160a01b038c166110fe3390565b6001600160a01b03168b7fa3a1251805b1fc7915884575b42e1fb862e814f0f5c9d670d08bf84697053d618e858d8f60405161113d9493929190612ca9565b60405180910390a4348281039083146111f1575f886001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611199576040519150601f19603f3d011682016040523d82523d5f602084013e61119e565b606091505b50509050806111ef5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f20726566756e642074686520666565000000000000000060448201526064016105d9565b505b5050505050505050505050505050565b611209611bdd565b61124d868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250879150611ccc9050565b505050505050565b61125d610583565b6105e25f612118565b61126e611bdd565b60c9546001600160a01b031661dead146112ca5760405162461bcd60e51b815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e0060448201526064016105d9565b60fe546001600160a01b039081169087160361134e5760405162461bcd60e51b815260206004820152602760248201527f4d657373656e6765723a20466f7262696420746f2063616c6c206d657373616760448201527f652071756575650000000000000000000000000000000000000000000000000060648201526084016105d9565b61135786612181565b60c9546001600160a01b03908116908816036113db5760405162461bcd60e51b815260206004820152602160248201527f4d657373656e6765723a20496e76616c6964206d6573736167652073656e646560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016105d9565b5f6113e98888888888611c30565b80516020918201205f81815260fa90925260409091205490915060ff16156114795760405162461bcd60e51b815260206004820152603060248201527f4d657373656e6765723a207769746864726177616c2068617320616c7265616460448201527f79206265656e2066696e616c697a65640000000000000000000000000000000060648201526084016105d9565b60fd546040517f04d77215000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03909116905f9082906304d7721590602401602060405180830381865afa1580156114dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115019190612cdd565b9050806115765760405162461bcd60e51b815260206004820152602760248201527f4d657373656e6765723a207769746864726177616c526f6f74206e6f7420666960448201527f6e616c697a65640000000000000000000000000000000000000000000000000060648201526084016105d9565b61158283868987610a2d565b6115f45760405162461bcd60e51b815260206004820152602d60248201527f4d657373656e6765723a20696e76616c6964207769746864726177616c20696e60448201527f636c7573696f6e2070726f6f660000000000000000000000000000000000000060648201526084016105d9565b5060c980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038b8116919091179091556040515f918a16908990611642908990612cf8565b5f6040518083038185875af1925050503d805f811461167c576040519150601f19603f3d011682016040523d82523d5f602084013e611681565b606091505b505060c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156116fb575f83815260fa6020526040808220805460ff191660011790555184917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2611726565b60405183907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f905f90a25b50505050505050505050565b61173a611bdd565b6117478484848433611ccc565b50505050565b611755610583565b8015611766576117636121d9565b50565b611763612233565b5f54610100900460ff161580801561178c57505f54600160ff909116105b806117a55750303b1580156117a557505f5460ff166001145b6118175760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105d9565b5f805460ff191660011790558015611855575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038316158061187257506001600160a01b038216155b8061188457506001600160a01b038416155b156118bb576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118d97353000000000000000000000000000000000000078561226c565b60fd80546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fe805492851692909116919091179055600360ff8190556040517fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b91611962915f9190918252602082015260400190565b60405180910390a18015611747575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6119d9610583565b6001600160a01b038116611a555760405162461bcd60e51b815260206004820152602360248201527f726f6c6c757020616464726573732063616e6e6f74206265206164647265737360448201527f283029000000000000000000000000000000000000000000000000000000000060648201526084016105d9565b60fd80546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f5272c8ad4bd643b1130291ea29bebd9b3bc583057a6e4d047eb7077039a956309101610bad565b60fe54604080517ffd0ad31e00000000000000000000000000000000000000000000000000000000815290515f926001600160a01b03169163fd0ad31e9160048083019260209291908290030181865afa158015611b27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b4b9190612c5c565b905090565b611b58610583565b6001600160a01b038116611bd45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105d9565b61176381612118565b60655460ff16156105e25760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105d9565b60608585858585604051602401611c4b959493929190612d13565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8ef1332e00000000000000000000000000000000000000000000000000000000179052905095945050505050565b611cd4612384565b60fe5460ca54604080517ffd0ad31e00000000000000000000000000000000000000000000000000000000815290516001600160a01b0393841693909216915f91849163fd0ad31e916004808201926020929091908290030181865afa158015611d40573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d649190612c5c565b90505f611d74338a8a858b611c30565b90505f6001600160a01b038516633e4cbbe6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018a9052604401602060405180830381865afa158015611de8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e0c9190612c5c565b9050611e188982612d55565b341015611e675760405162461bcd60e51b815260206004820152601660248201527f496e73756666696369656e74206d73672e76616c75650000000000000000000060448201526064016105d9565b8015611f0f5760cb546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611eb7576040519150601f19603f3d011682016040523d82523d5f602084013e611ebc565b606091505b5050905080611f0d5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f206465647563742074686520666565000000000000000060448201526064016105d9565b505b6040517f9b1597820000000000000000000000000000000000000000000000000000000081526001600160a01b03861690639b15978290611f589087908b908790600401612d8d565b5f604051808303815f87803b158015611f6f575f80fd5b505af1158015611f81573d5f803e3d5ffd5b505050505f8280519060200120905060fb5f8281526020019081526020015f20545f14611ff05760405162461bcd60e51b815260206004820152601260248201527f4475706c696361746564206d657373616765000000000000000000000000000060448201526064016105d9565b5f81815260fb602052604090204290556001600160a01b038b16336001600160a01b03167f104371f3b442861a2a7b82a070afbbaab748bb13757bf47769e170e37809ec1e8c878c8e6040516120499493929190612db4565b60405180910390a3348290038a8103908b14612100575f886001600160a01b0316826040515f6040518083038185875af1925050503d805f81146120a8576040519150601f19603f3d011682016040523d82523d5f602084013e6120ad565b606091505b50509050806120fe5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f20726566756e642074686520666565000000000000000060448201526064016105d9565b505b505050505050506121116001609755565b5050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b306001600160a01b038216036117635760405162461bcd60e51b815260206004820152601e60248201527f4d657373656e6765723a20466f7262696420746f2063616c6c2073656c66000060448201526064016105d9565b6121e1611bdd565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586122163390565b6040516001600160a01b03909116815260200160405180910390a1565b61223b6123e4565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612216565b5f54610100900460ff166122e85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b6122f0612436565b6122f86124ba565b61230061253e565b60c980547fffffffffffffffffffffffff000000000000000000000000000000000000000090811661dead1790915560ca80546001600160a01b03858116919093161790558116156123805760cb80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790555b5050565b6002609754036123d65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105d9565b6002609755565b6001609755565b60655460ff166105e25760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105d9565b5f54610100900460ff166124b25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b6105e26125c2565b5f54610100900460ff166125365760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b6105e2612647565b5f54610100900460ff166125ba5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b6105e26126cf565b5f54610100900460ff1661263e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b6105e233612118565b5f54610100900460ff166126c35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b6065805460ff19169055565b5f54610100900460ff166123dd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b80356001600160a01b0381168114612761575f80fd5b919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126127a2575f80fd5b813567ffffffffffffffff808211156127bd576127bd612766565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561280357612803612766565b8160405283815286602085880101111561281b575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f805f60a0868803121561284e575f80fd5b6128578661274b565b94506128656020870161274b565b93506040860135925060608601359150608086013567ffffffffffffffff81111561288e575f80fd5b61289a88828901612793565b9150509295509295909350565b5f602082840312156128b7575f80fd5b6128c08261274b565b9392505050565b8061040081018310156128d8575f80fd5b92915050565b5f805f8061046085870312156128f2575f80fd5b8435935061290386602087016128c7565b939693955050505061042082013591610440013590565b5f6020828403121561292a575f80fd5b5035919050565b5f805f805f805f60e0888a031215612947575f80fd5b6129508861274b565b965061295e6020890161274b565b95506040880135945060608801359350608088013567ffffffffffffffff811115612987575f80fd5b6129938a828b01612793565b93505060a088013563ffffffff811681146129ac575f80fd5b91506129ba60c0890161274b565b905092959891949750929550565b5f805f805f8060a087890312156129dd575f80fd5b6129e68761274b565b955060208701359450604087013567ffffffffffffffff80821115612a09575f80fd5b818901915089601f830112612a1c575f80fd5b813581811115612a2a575f80fd5b8a6020828501011115612a3b575f80fd5b60208301965080955050505060608701359150612a5a6080880161274b565b90509295509295509295565b5f805f805f805f6104c0888a031215612a7d575f80fd5b612a868861274b565b9650612a946020890161274b565b95506040880135945060608801359350608088013567ffffffffffffffff811115612abd575f80fd5b612ac98a828b01612793565b935050612ad98960a08a016128c7565b91506104a0880135905092959891949750929550565b5f805f8060808587031215612b02575f80fd5b612b0b8561274b565b935060208501359250604085013567ffffffffffffffff811115612b2d575f80fd5b612b3987828801612793565b949793965093946060013593505050565b8015158114611763575f80fd5b5f60208284031215612b67575f80fd5b81356128c081612b4a565b5f805f60608486031215612b84575f80fd5b612b8d8461274b565b9250612b9b6020850161274b565b9150612ba96040850161274b565b90509250925092565b5f5b83811015612bcc578181015183820152602001612bb4565b50505f910152565b5f8151808452612beb816020860160208601612bb2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f6128c06020830184612bd4565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215612c6c575f80fd5b5051919050565b6001600160a01b038416815263ffffffff83166020820152606060408201525f612ca06060830184612bd4565b95945050505050565b84815283602082015263ffffffff83166040820152608060608201525f612cd36080830184612bd4565b9695505050505050565b5f60208284031215612ced575f80fd5b81516128c081612b4a565b5f8251612d09818460208701612bb2565b9190910192915050565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a06080830152612d4a60a0830184612bd4565b979650505050505050565b808201808211156128d8577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6001600160a01b0384168152826020820152606060408201525f612ca06060830184612bd4565b848152836020820152826040820152608060608201525f612cd36080830184612bd456fea164736f6c6343000818000a +0x60806040526004361061019c575f3560e01c806386fa4b73116100dc578063c0c53b8b11610087578063e70fc93b11610062578063e70fc93b146104cf578063ea7ec514146104fa578063ecc7042814610526578063f2fde38b1461053a575f80fd5b8063c0c53b8b14610472578063cb23bcb514610491578063d87e7df1146104b0575f80fd5b8063a14238e7116100b7578063a14238e714610412578063b2267a7b14610440578063bedb86fb14610453575f80fd5b806386fa4b73146103b35780638da5cb5b146103d2578063946130d8146103ef575f80fd5b806355004105116101475780636e296e45116101225780636e296e45146102e2578063715018a614610301578063797594b014610315578063846d4d7a14610334575f80fd5b806355004105146102a55780635c975abb146102b85780635f7b1577146102cf575f80fd5b80633b70c18a116101775780633b70c18a14610230578063407c195514610267578063478222c214610286575f80fd5b806305804dd7146101af5780632a6cccb2146101f2578063340735f714610211575f80fd5b366101ab576101a9610559565b005b5f80fd5b3480156101ba575f80fd5b506101dd6101c9366004612435565b60fc6020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156101fd575f80fd5b506101a961020c366004612467565b6105ba565b34801561021c575f80fd5b506101dd61022b36600461249e565b610681565b34801561023b575f80fd5b5060fe5461024f906001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b348015610272575f80fd5b506101a9610281366004612435565b61074a565b348015610291575f80fd5b5060cb5461024f906001600160a01b031681565b6101a96102b33660046125ae565b61080d565b3480156102c3575f80fd5b5060655460ff166101dd565b6101a96102dd366004612645565b610e55565b3480156102ed575f80fd5b5060c95461024f906001600160a01b031681565b34801561030c575f80fd5b506101a9610ea9565b348015610320575f80fd5b5060ca5461024f906001600160a01b031681565b34801561033f575f80fd5b5061038a61034e366004612435565b6101006020525f90815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b604080516fffffffffffffffffffffffffffffffff9384168152929091166020830152016101e9565b3480156103be575f80fd5b506101a96103cd3660046126e3565b610eba565b3480156103dd575f80fd5b506033546001600160a01b031661024f565b3480156103fa575f80fd5b5061040460ff5481565b6040519081526020016101e9565b34801561041d575f80fd5b506101dd61042c366004612435565b60fa6020525f908152604090205460ff1681565b6101a961044e36600461276c565b6113a4565b34801561045e575f80fd5b506101a961046d3660046127d4565b6113bf565b34801561047d575f80fd5b506101a961048c3660046127ef565b6113e0565b34801561049c575f80fd5b5060fd5461024f906001600160a01b031681565b3480156104bb575f80fd5b506101a96104ca366004612467565b611661565b3480156104da575f80fd5b506104046104e9366004612435565b60fb6020525f908152604090205481565b348015610505575f80fd5b50610404610514366004612435565b6101016020525f908152604090205481565b348015610531575f80fd5b50610404611757565b348015610545575f80fd5b506101a9610554366004612467565b6117e0565b6033546001600160a01b031633146105b85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b565b6105c2610559565b6001600160a01b0381166106185760405162461bcd60e51b815260206004820152601d60248201527f6665655661756c742063616e6e6f74206265206164647265737328302900000060448201526064016105af565b60cb80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f4aadc32827849f797733838c61302f7f56d2b6db28caa175eb3f7f8e5aba25f5905f90a35050565b5f84815b602081101561073e578085901c6001166001036106eb578581602081106106ae576106ae61282f565b6020020135826040516020016106ce929190918252602082015260400190565b604051602081830303815290604052805190602001209150610736565b818682602081106106fe576106fe61282f565b602002013560405160200161071d929190918252602082015260400190565b6040516020818303038152906040528051906020012091505b600101610685565b50909114949350505050565b610752610559565b5f81116107c75760405162461bcd60e51b815260206004820152602360248201527f7265706c61792074696d6573206d75737420626520677265617465722074686160448201527f6e2030000000000000000000000000000000000000000000000000000000000060648201526084016105af565b60ff80549082905560408051828152602081018490527fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b91015b60405180910390a15050565b61081561186d565b60c9546001600160a01b031661dead146108715760405162461bcd60e51b815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e0060448201526064016105af565b60fe5460ca546001600160a01b0391821691165f6108928a8a8a8a8a6118c0565b90505f818051906020012090505f60fb5f8381526020019081526020015f2054116109255760405162461bcd60e51b815260206004820152602660248201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e60448201527f717565756564000000000000000000000000000000000000000000000000000060648201526084016105af565b5f81815260fc602052604090205460ff16156109835760405162461bcd60e51b815260206004820152601760248201527f4d65737361676520616c72656164792064726f7070656400000000000000000060448201526064016105af565b6040517f3e4cbbe60000000000000000000000000000000000000000000000000000000081526001600160a01b038c8116600483015263ffffffff881660248301525f9190861690633e4cbbe690604401602060405180830381865afa1580156109ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a13919061285c565b905080341015610a655760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e74206d73672e76616c756520666f7220666565000060448201526064016105af565b8015610b0d5760cb546040515f916001600160a01b03169083908381818185875af1925050503d805f8114610ab5576040519150601f19603f3d011682016040523d82523d5f602084013e610aba565b606091505b5050905080610b0b5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f206465647563742074686520666565000000000000000060448201526064016105af565b505b5f856001600160a01b031663fd0ad31e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6e919061285c565b6040517f9b1597820000000000000000000000000000000000000000000000000000000081529091506001600160a01b03871690639b15978290610bba9088908c9089906004016128de565b5f604051808303815f87803b158015610bd1575f80fd5b505af1158015610be3573d5f803e3d5ffd5b5050505f848152610100602090815260408083208151808301909252546fffffffffffffffffffffffffffffffff80821683527001000000000000000000000000000000009091041691810182905292509003610c53575f8281526101016020526040902060018c019055610c84565b80602001516001016fffffffffffffffffffffffffffffffff166101015f8481526020019081526020015f20819055505b6fffffffffffffffffffffffffffffffff808316602083015260ff54825190911610610cf25760405162461bcd60e51b815260206004820152601b60248201527f457863656564206d6178696d756d207265706c61792074696d6573000000000060448201526064016105af565b80516fffffffffffffffffffffffffffffffff600191909101811682525f858152610100602090815260409091208351919093015182167001000000000000000000000000000000000291161790556001600160a01b038c16610d523390565b6001600160a01b03168b7fa3a1251805b1fc7915884575b42e1fb862e814f0f5c9d670d08bf84697053d618e858d8f604051610d919493929190612914565b60405180910390a434828103908314610e45575f886001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610ded576040519150601f19603f3d011682016040523d82523d5f602084013e610df2565b606091505b5050905080610e435760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f20726566756e642074686520666565000000000000000060448201526064016105af565b505b5050505050505050505050505050565b610e5d61186d565b610ea1868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525088925087915061195c9050565b505050505050565b610eb1610559565b6105b85f611da8565b610ec261186d565b60c9546001600160a01b031661dead14610f1e5760405162461bcd60e51b815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e0060448201526064016105af565b60fe546001600160a01b0390811690871603610fa25760405162461bcd60e51b815260206004820152602760248201527f4d657373656e6765723a20466f7262696420746f2063616c6c206d657373616760448201527f652071756575650000000000000000000000000000000000000000000000000060648201526084016105af565b610fab86611e11565b60c9546001600160a01b039081169088160361102f5760405162461bcd60e51b815260206004820152602160248201527f4d657373656e6765723a20496e76616c6964206d6573736167652073656e646560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016105af565b5f61103d88888888886118c0565b80516020918201205f81815260fa90925260409091205490915060ff16156110cd5760405162461bcd60e51b815260206004820152603060248201527f4d657373656e6765723a207769746864726177616c2068617320616c7265616460448201527f79206265656e2066696e616c697a65640000000000000000000000000000000060648201526084016105af565b60fd546040517f04d77215000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03909116905f9082906304d7721590602401602060405180830381865afa158015611131573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111559190612948565b9050806111ca5760405162461bcd60e51b815260206004820152602760248201527f4d657373656e6765723a207769746864726177616c526f6f74206e6f7420666960448201527f6e616c697a65640000000000000000000000000000000000000000000000000060648201526084016105af565b6111d683868987610681565b6112485760405162461bcd60e51b815260206004820152602d60248201527f4d657373656e6765723a20696e76616c6964207769746864726177616c20696e60448201527f636c7573696f6e2070726f6f660000000000000000000000000000000000000060648201526084016105af565b5060c980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038b8116919091179091556040515f918a16908990611296908990612963565b5f6040518083038185875af1925050503d805f81146112d0576040519150601f19603f3d011682016040523d82523d5f602084013e6112d5565b606091505b505060c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790559050801561136d575f83815260fa602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555184917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2611398565b60405183907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f905f90a25b50505050505050505050565b6113ac61186d565b6113b9848484843361195c565b50505050565b6113c7610559565b80156113d8576113d5611e69565b50565b6113d5611ee1565b5f54610100900460ff16158080156113fe57505f54600160ff909116105b806114175750303b15801561141757505f5460ff166001145b6114895760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105af565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156114e5575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038316158061150257506001600160a01b038216155b8061151457506001600160a01b038416155b1561154b576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61156973530000000000000000000000000000000000000785611f38565b60fd80546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fe805492851692909116919091179055600360ff8190556040517fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b916115f2915f9190918252602082015260400190565b60405180910390a180156113b9575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b611669610559565b6001600160a01b0381166116e55760405162461bcd60e51b815260206004820152602360248201527f726f6c6c757020616464726573732063616e6e6f74206265206164647265737360448201527f283029000000000000000000000000000000000000000000000000000000000060648201526084016105af565b60fd80546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f5272c8ad4bd643b1130291ea29bebd9b3bc583057a6e4d047eb7077039a956309101610801565b60fe54604080517ffd0ad31e00000000000000000000000000000000000000000000000000000000815290515f926001600160a01b03169163fd0ad31e9160048083019260209291908290030181865afa1580156117b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117db919061285c565b905090565b6117e8610559565b6001600160a01b0381166118645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105af565b6113d581611da8565b60655460ff16156105b85760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105af565b606085858585856040516024016118db95949392919061297e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8ef1332e00000000000000000000000000000000000000000000000000000000179052905095945050505050565b611964612050565b60fe5460ca54604080517ffd0ad31e00000000000000000000000000000000000000000000000000000000815290516001600160a01b0393841693909216915f91849163fd0ad31e916004808201926020929091908290030181865afa1580156119d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f4919061285c565b90505f611a04338a8a858b6118c0565b90505f6001600160a01b038516633e4cbbe6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018a9052604401602060405180830381865afa158015611a78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9c919061285c565b9050611aa889826129c0565b341015611af75760405162461bcd60e51b815260206004820152601660248201527f496e73756666696369656e74206d73672e76616c75650000000000000000000060448201526064016105af565b8015611b9f5760cb546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611b47576040519150601f19603f3d011682016040523d82523d5f602084013e611b4c565b606091505b5050905080611b9d5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f206465647563742074686520666565000000000000000060448201526064016105af565b505b6040517f9b1597820000000000000000000000000000000000000000000000000000000081526001600160a01b03861690639b15978290611be89087908b9087906004016129f8565b5f604051808303815f87803b158015611bff575f80fd5b505af1158015611c11573d5f803e3d5ffd5b505050505f8280519060200120905060fb5f8281526020019081526020015f20545f14611c805760405162461bcd60e51b815260206004820152601260248201527f4475706c696361746564206d657373616765000000000000000000000000000060448201526064016105af565b5f81815260fb602052604090204290556001600160a01b038b16336001600160a01b03167f104371f3b442861a2a7b82a070afbbaab748bb13757bf47769e170e37809ec1e8c878c8e604051611cd99493929190612a1f565b60405180910390a3348290038a8103908b14611d90575f886001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611d38576040519150601f19603f3d011682016040523d82523d5f602084013e611d3d565b606091505b5050905080611d8e5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f20726566756e642074686520666565000000000000000060448201526064016105af565b505b50505050505050611da16001609755565b5050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b306001600160a01b038216036113d55760405162461bcd60e51b815260206004820152601e60248201527f4d657373656e6765723a20466f7262696420746f2063616c6c2073656c66000060448201526064016105af565b611e7161186d565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611ec43390565b6040516001600160a01b03909116815260200160405180910390a1565b611ee96120b0565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ec4565b5f54610100900460ff16611fb45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b611fbc612102565b611fc4612186565b611fcc61220a565b60c980547fffffffffffffffffffffffff000000000000000000000000000000000000000090811661dead1790915560ca80546001600160a01b038581169190931617905581161561204c5760cb80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790555b5050565b6002609754036120a25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105af565b6002609755565b6001609755565b60655460ff166105b85760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105af565b5f54610100900460ff1661217e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b6105b861228e565b5f54610100900460ff166122025760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b6105b8612313565b5f54610100900460ff166122865760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b6105b86123b9565b5f54610100900460ff1661230a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b6105b833611da8565b5f54610100900460ff1661238f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff166120a95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b5f60208284031215612445575f80fd5b5035919050565b80356001600160a01b0381168114612462575f80fd5b919050565b5f60208284031215612477575f80fd5b6124808261244c565b9392505050565b806104008101831015612498575f80fd5b92915050565b5f805f8061046085870312156124b2575f80fd5b843593506124c38660208701612487565b939693955050505061042082013591610440013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112612516575f80fd5b813567ffffffffffffffff80821115612531576125316124da565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612577576125776124da565b8160405283815286602085880101111561258f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f805f805f60e0888a0312156125c4575f80fd5b6125cd8861244c565b96506125db6020890161244c565b95506040880135945060608801359350608088013567ffffffffffffffff811115612604575f80fd5b6126108a828b01612507565b93505060a088013563ffffffff81168114612629575f80fd5b915061263760c0890161244c565b905092959891949750929550565b5f805f805f8060a0878903121561265a575f80fd5b6126638761244c565b955060208701359450604087013567ffffffffffffffff80821115612686575f80fd5b818901915089601f830112612699575f80fd5b8135818111156126a7575f80fd5b8a60208285010111156126b8575f80fd5b602083019650809550505050606087013591506126d76080880161244c565b90509295509295509295565b5f805f805f805f6104c0888a0312156126fa575f80fd5b6127038861244c565b96506127116020890161244c565b95506040880135945060608801359350608088013567ffffffffffffffff81111561273a575f80fd5b6127468a828b01612507565b9350506127568960a08a01612487565b91506104a0880135905092959891949750929550565b5f805f806080858703121561277f575f80fd5b6127888561244c565b935060208501359250604085013567ffffffffffffffff8111156127aa575f80fd5b6127b687828801612507565b949793965093946060013593505050565b80151581146113d5575f80fd5b5f602082840312156127e4575f80fd5b8135612480816127c7565b5f805f60608486031215612801575f80fd5b61280a8461244c565b92506128186020850161244c565b91506128266040850161244c565b90509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020828403121561286c575f80fd5b5051919050565b5f5b8381101561288d578181015183820152602001612875565b50505f910152565b5f81518084526128ac816020860160208601612873565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6001600160a01b038416815263ffffffff83166020820152606060408201525f61290b6060830184612895565b95945050505050565b84815283602082015263ffffffff83166040820152608060608201525f61293e6080830184612895565b9695505050505050565b5f60208284031215612958575f80fd5b8151612480816127c7565b5f8251612974818460208701612873565b9190910192915050565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526129b560a0830184612895565b979650505050505050565b80820180821115612498577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61290b6060830184612895565b848152836020820152826040820152608060608201525f61293e608083018461289556fea164736f6c6343000818000a diff --git a/bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex b/bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex index 704b62314..a0cd87ec7 100644 --- a/bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex +++ b/bindings/bin/l1messagequeuewithgaspriceoracle_deployed.hex @@ -1 +1 @@ -0x608060405234801561000f575f80fd5b506004361061019a575f3560e01c80639b159782116100e8578063d5ad4a9711610093578063e172d3a11161006e578063e172d3a1146103ac578063e3176bd5146103c6578063f2fde38b146103cf578063fd0ad31e146103e2575f80fd5b8063d5ad4a9714610373578063d99bc80e14610386578063da35a26f14610399575f80fd5b8063bb7862ca116100c3578063bb7862ca14610319578063bdc6f0a014610339578063c27606771461034c575f80fd5b80639b159782146102ea578063a85006ca146102fd578063ae453cd514610306575f80fd5b80635f9cd92e116101485780638da5cb5b116101235780638da5cb5b1461029257806391652461146102b0578063927ede2d146102c3575f80fd5b80635f9cd92e1461022b578063715018a61461023e5780638770d70714610246575f80fd5b80633e6dada1116101785780633e6dada1146101ec5780635ad9945a1461020f5780635e45da2314610222575f80fd5b806329aa604b1461019e5780633c7f5283146101c45780633e4cbbe6146101d9575b5f80fd5b6101b16101ac366004611399565b6103ea565b6040519081526020015b60405180910390f35b6101d76101d23660046113b0565b610409565b005b6101b16101e73660046113f3565b61057a565b6101ff6101fa366004611399565b61062e565b60405190151581526020016101bb565b6101b161021d366004611460565b610650565b6101b160685481565b6101d76102393660046114dc565b610840565b6101d76108d5565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bb565b60335473ffffffffffffffffffffffffffffffffffffffff1661026d565b6101d76102be366004611399565b6108e8565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6101d76102f83660046114f5565b610aa0565b6101b160675481565b6101b1610314366004611399565b610b82565b606b5461026d9073ffffffffffffffffffffffffffffffffffffffff1681565b6101d761034736600461154b565b610bf8565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6101d7610381366004611399565b610d29565b6101d7610394366004611399565b610d6f565b6101d76103a73660046115be565b610db5565b6101b16103ba3660046115e8565b60100261520801919050565b6101b160655481565b6101d76103dd3660046114dc565b610f6e565b6066546101b1565b606681815481106103f9575f80fd5b5f91825260209091200154905081565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146104935760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b6101008111156104e55760405162461bcd60e51b815260206004820152601560248201527f706f7020746f6f206d616e79206d657373616765730000000000000000000000604482015260640161048a565b81606754146105365760405162461bcd60e51b815260206004820152601460248201527f737461727420696e646578206d69736d61746368000000000000000000000000604482015260640161048a565b80820160675560408051838152602081018390527f3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f2691015b60405180910390a15050565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa1580156105e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060c9190611627565b1561061857505f610628565b606554610625908361164d565b90505b92915050565b600881901c5f90815260696020526040812054600160ff84161b161515610628565b5f607e816106fa565b5f8161066757506001919050565b5b811561067d5760089190911c90600101610668565b919050565b8060808310600181146106ba5761069884610659565b60808101835360018301925084816020036008021b83528083019250506106db565b84841516600181146106ce578483536106d3565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b6005604051018061070d60018c83610682565b905061071b60018983610682565b905061072789826106e3565b905061073560018b83610682565b9050600186146001811461079d5760388710600181146107825761075888610659565b8060b701845360018401935088816020036008021b84528084019350508789843791870191610797565b87608001835360018301925087898437918701915b506107ae565b6107ab5f89355f1a84610682565b91505b506107b98c826106e3565b90508181035f8060388310600181146107ec576107d584610659565b60f78101600882021b8517935060010191506107f7565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b61084861100b565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108dd61100b565b6108e65f611072565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146109935760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e676572000000000000000000000000000000000000000000606482015260840161048a565b60675481106109e45760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742064726f702070656e64696e67206d6573736167650000000000604482015260640161048a565b600881901c5f90815260696020526040902054600160ff83161b1615610a4c5760405162461bcd60e51b815260206004820152601760248201527f6d65737361676520616c72656164792064726f70706564000000000000000000604482015260640161048a565b600881901c5f9081526069602052604090208054600160ff84161b1790556040518181527f43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf9060200160405180910390a150565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610b4b5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e676572000000000000000000000000000000000000000000606482015260840161048a565b610b568383836110e8565b3373111100000000000000000000000000000000111101610b7b81865f8787876111e4565b5050505050565b6066545f908210610bd55760405162461bcd60e51b815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e6765000000000000604482015260640161048a565b60668281548110610be857610be8611689565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610ca35760405162461bcd60e51b815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f6174657761790000000000000000000000000000000000000000000000000000606482015260840161048a565b73ffffffffffffffffffffffffffffffffffffffff86163b15610d085760405162461bcd60e51b815260206004820152600860248201527f6f6e6c7920454f41000000000000000000000000000000000000000000000000604482015260640161048a565b610d138383836110e8565b610d218686868686866111e4565b505050505050565b610d3161100b565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c5910161056e565b610d7761100b565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead366329910161056e565b5f54610100900460ff1615808015610dd357505f54600160ff909116105b80610dec5750303b158015610dec57505f5460ff166001145b610e5e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161048a565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610eba575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610ec2611295565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015610f69575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610f7661100b565b73ffffffffffffffffffffffffffffffffffffffff8116610fff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161048a565b61100881611072565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108e65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048a565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6068548311156111605760405162461bcd60e51b815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d6974000000000000000000000000000000000000000000000000000000606482015260840161048a565b6010810261520801808410156111de5760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e7369632067617300000000000000000000000000606482015260840161048a565b50505050565b6066545f6111f78883888a898989610650565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e90611283908a9087908b908b908b906116b6565b60405180910390a35050505050505050565b5f54610100900460ff166113115760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161048a565b6108e65f54610100900460ff166113905760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161048a565b6108e633611072565b5f602082840312156113a9575f80fd5b5035919050565b5f80604083850312156113c1575f80fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461067d575f80fd5b5f8060408385031215611404575f80fd5b61140d836113d0565b946020939093013593505050565b5f8083601f84011261142b575f80fd5b50813567ffffffffffffffff811115611442575f80fd5b602083019150836020828501011115611459575f80fd5b9250929050565b5f805f805f805f60c0888a031215611476575f80fd5b61147f886113d0565b9650602088013595506040880135945061149b606089016113d0565b93506080880135925060a088013567ffffffffffffffff8111156114bd575f80fd5b6114c98a828b0161141b565b989b979a50959850939692959293505050565b5f602082840312156114ec575f80fd5b610625826113d0565b5f805f8060608587031215611508575f80fd5b611511856113d0565b935060208501359250604085013567ffffffffffffffff811115611533575f80fd5b61153f8782880161141b565b95989497509550505050565b5f805f805f8060a08789031215611560575f80fd5b611569876113d0565b9550611577602088016113d0565b94506040870135935060608701359250608087013567ffffffffffffffff8111156115a0575f80fd5b6115ac89828a0161141b565b979a9699509497509295939492505050565b5f80604083850312156115cf575f80fd5b823591506115df602084016113d0565b90509250929050565b5f80602083850312156115f9575f80fd5b823567ffffffffffffffff81111561160f575f80fd5b61161b8582860161141b565b90969095509350505050565b5f60208284031215611637575f80fd5b81518015158114611646575f80fd5b9392505050565b8082028115828204841417610628577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a +0x608060405234801561000f575f80fd5b5060043610610184575f3560e01c8063a85006ca116100dd578063d99bc80e11610088578063e3176bd511610063578063e3176bd51461037a578063f2fde38b14610383578063fd0ad31e14610396575f80fd5b8063d99bc80e1461033a578063da35a26f1461034d578063e172d3a114610360575f80fd5b8063bdc6f0a0116100b8578063bdc6f0a0146102ed578063c276067714610300578063d5ad4a9714610327575f80fd5b8063a85006ca146102b1578063ae453cd5146102ba578063bb7862ca146102cd575f80fd5b80635f9cd92e1161013d5780638da5cb5b116101185780638da5cb5b14610259578063927ede2d146102775780639b1597821461029e575f80fd5b80635f9cd92e146101f2578063715018a6146102055780638770d7071461020d575f80fd5b80633e4cbbe61161016d5780633e4cbbe6146101c35780635ad9945a146101d65780635e45da23146101e9575f80fd5b806329aa604b146101885780633c7f5283146101ae575b5f80fd5b61019b610196366004611173565b61039e565b6040519081526020015b60405180910390f35b6101c16101bc36600461118a565b6103bd565b005b61019b6101d13660046111cd565b61052e565b61019b6101e436600461123a565b6105e2565b61019b60685481565b6101c16102003660046112b6565b6107d2565b6101c1610867565b6102347f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a5565b60335473ffffffffffffffffffffffffffffffffffffffff16610234565b6102347f000000000000000000000000000000000000000000000000000000000000000081565b6101c16102ac3660046112cf565b61087a565b61019b60675481565b61019b6102c8366004611173565b61095c565b606b546102349073ffffffffffffffffffffffffffffffffffffffff1681565b6101c16102fb366004611325565b6109d2565b6102347f000000000000000000000000000000000000000000000000000000000000000081565b6101c1610335366004611173565b610b03565b6101c1610348366004611173565b610b49565b6101c161035b366004611398565b610b8f565b61019b61036e3660046113c2565b60100261520801919050565b61019b60655481565b6101c16103913660046112b6565b610d48565b60665461019b565b606681815481106103ad575f80fd5b5f91825260209091200154905081565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146104475760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b6101008111156104995760405162461bcd60e51b815260206004820152601560248201527f706f7020746f6f206d616e79206d657373616765730000000000000000000000604482015260640161043e565b81606754146104ea5760405162461bcd60e51b815260206004820152601460248201527f737461727420696e646578206d69736d61746368000000000000000000000000604482015260640161043e565b80820160675560408051838152602081018390527f3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f2691015b60405180910390a15050565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa15801561059c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c09190611401565b156105cc57505f6105dc565b6065546105d99083611427565b90505b92915050565b5f607e8161068c565b5f816105f957506001919050565b5b811561060f5760089190911c906001016105fa565b919050565b80608083106001811461064c5761062a846105eb565b60808101835360018301925084816020036008021b835280830192505061066d565b848415166001811461066057848353610665565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b6005604051018061069f60018c83610614565b90506106ad60018983610614565b90506106b98982610675565b90506106c760018b83610614565b9050600186146001811461072f576038871060018114610714576106ea886105eb565b8060b701845360018401935088816020036008021b84528084019350508789843791870191610729565b87608001835360018301925087898437918701915b50610740565b61073d5f89355f1a84610614565b91505b5061074b8c82610675565b90508181035f80603883106001811461077e57610767846105eb565b60f78101600882021b851793506001019150610789565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b6107da610de5565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61086f610de5565b6108785f610e4c565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146109255760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e676572000000000000000000000000000000000000000000606482015260840161043e565b610930838383610ec2565b337311110000000000000000000000000000000011110161095581865f878787610fbe565b5050505050565b6066545f9082106109af5760405162461bcd60e51b815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e6765000000000000604482015260640161043e565b606682815481106109c2576109c2611463565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610a7d5760405162461bcd60e51b815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f6174657761790000000000000000000000000000000000000000000000000000606482015260840161043e565b73ffffffffffffffffffffffffffffffffffffffff86163b15610ae25760405162461bcd60e51b815260206004820152600860248201527f6f6e6c7920454f41000000000000000000000000000000000000000000000000604482015260640161043e565b610aed838383610ec2565b610afb868686868686610fbe565b505050505050565b610b0b610de5565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c59101610522565b610b51610de5565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead3663299101610522565b5f54610100900460ff1615808015610bad57505f54600160ff909116105b80610bc65750303b158015610bc657505f5460ff166001145b610c385760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161043e565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610c94575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610c9c61106f565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015610d43575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610d50610de5565b73ffffffffffffffffffffffffffffffffffffffff8116610dd95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161043e565b610de281610e4c565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606854831115610f3a5760405162461bcd60e51b815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d6974000000000000000000000000000000000000000000000000000000606482015260840161043e565b601081026152080180841015610fb85760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e7369632067617300000000000000000000000000606482015260840161043e565b50505050565b6066545f610fd18883888a8989896105e2565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e9061105d908a9087908b908b908b90611490565b60405180910390a35050505050505050565b5f54610100900460ff166110eb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161043e565b6108785f54610100900460ff1661116a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161043e565b61087833610e4c565b5f60208284031215611183575f80fd5b5035919050565b5f806040838503121561119b575f80fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461060f575f80fd5b5f80604083850312156111de575f80fd5b6111e7836111aa565b946020939093013593505050565b5f8083601f840112611205575f80fd5b50813567ffffffffffffffff81111561121c575f80fd5b602083019150836020828501011115611233575f80fd5b9250929050565b5f805f805f805f60c0888a031215611250575f80fd5b611259886111aa565b96506020880135955060408801359450611275606089016111aa565b93506080880135925060a088013567ffffffffffffffff811115611297575f80fd5b6112a38a828b016111f5565b989b979a50959850939692959293505050565b5f602082840312156112c6575f80fd5b6105d9826111aa565b5f805f80606085870312156112e2575f80fd5b6112eb856111aa565b935060208501359250604085013567ffffffffffffffff81111561130d575f80fd5b611319878288016111f5565b95989497509550505050565b5f805f805f8060a0878903121561133a575f80fd5b611343876111aa565b9550611351602088016111aa565b94506040870135935060608701359250608087013567ffffffffffffffff81111561137a575f80fd5b61138689828a016111f5565b979a9699509497509295939492505050565b5f80604083850312156113a9575f80fd5b823591506113b9602084016111aa565b90509250929050565b5f80602083850312156113d3575f80fd5b823567ffffffffffffffff8111156113e9575f80fd5b6113f5858286016111f5565b90969095509350505050565b5f60208284031215611411575f80fd5b81518015158114611420575f80fd5b9392505050565b80820281158282048414176105dc577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a diff --git a/bindings/bin/rollup_deployed.hex b/bindings/bin/rollup_deployed.hex index 9f980dea0..b23011457 100644 --- a/bindings/bin/rollup_deployed.hex +++ b/bindings/bin/rollup_deployed.hex @@ -1 +1 @@ -0x608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109b1578063f2fde38b146109d0578063fb1e8b04146109ef575f80fd5b8063ddd8a3dc1461095e578063de8b30351461097d578063dff7827e1461099c575f80fd5b8063cd4edc69116100b7578063cd4edc6914610917578063ce5db8d61461092a578063d279c1911461093f575f80fd5b8063b35dac4e146108ba578063b3e0a509146108d9578063bedb86fb146108f8575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d1461085b578063b31a77d314610886578063b34844251461089b575f80fd5b8063a415d8dc146107f9578063a479265d14610827578063a4f209b01461083c575f80fd5b80638f1d37761161016c5780638f1d3776146106f9578063910129d4146107a957806397fc007c146107da575f80fd5b8063728cdbca146106a457806388b1ea09146106c35780638da5cb5b146106dc575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa146106465780636c578c1d14610671578063715018a614610690575f80fd5b80635ef7a94a1461057b5780635f77cf1d146105db5780636126729014610627575f80fd5b80634a8d544f1161022c5780634a8d544f1461053257806357e0af6c146105455780635c975abb14610564575f80fd5b80632b7ac3f3146104c75780633b70c18a146104fe5780633e001b661461051d575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b3660046140a5565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b506103966103913660046140d7565b610a04565b005b3480156103a3575f80fd5b506103966103b2366004614135565b610ad6565b3480156103c2575f80fd5b5061033f6103d13660046140a5565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b5061039661040836600461417d565b610e2f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c3660046140a5565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c3660046140a5565b611326565b34801561047c575f80fd5b5061036961048b3660046140a5565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b63660046140a5565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104e6906001600160a01b031681565b6040516001600160a01b03909116815260200161034b565b348015610509575f80fd5b50609b546104e6906001600160a01b031681565b348015610528575f80fd5b5061036960aa5481565b6103966105403660046141bc565b611354565b348015610550575f80fd5b5061039661055f3660046140a5565b611bd7565b34801561056f575f80fd5b5060655460ff1661033f565b348015610586575f80fd5b506105bb6105953660046140a5565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b3480156105e6575f80fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610632575f80fd5b506103966106413660046140a5565b611c82565b348015610651575f80fd5b506103696106603660046140a5565b60ab6020525f908152604090205481565b34801561067c575f80fd5b5061039661068b3660046140d7565b611e97565b34801561069b575f80fd5b50610396611f54565b3480156106af575f80fd5b506103966106be366004614229565b611f67565b3480156106ce575f80fd5b5060a65461033f9060ff1681565b3480156106e7575f80fd5b506033546001600160a01b03166104e6565b348015610704575f80fd5b506107656107133660046140a5565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b3480156107b4575f80fd5b5061033f6107c33660046140a5565b5f90815260a4602052604090206003015460ff1690565b3480156107e5575f80fd5b506103966107f43660046140d7565b6122aa565b348015610804575f80fd5b5061033f6108133660046140d7565b609f6020525f908152604090205460ff1681565b348015610832575f80fd5b5061036960995481565b348015610847575f80fd5b506103966108563660046140a5565b61238d565b348015610866575f80fd5b506103696108753660046140d7565b60a56020525f908152604090205481565b348015610891575f80fd5b5061036960a85481565b3480156108a6575f80fd5b506103966108b5366004614284565b61243d565b3480156108c5575f80fd5b506103966108d43660046140d7565b612682565b3480156108e4575f80fd5b506103966108f336600461417d565b6126db565b348015610903575f80fd5b506103966109123660046142f8565b6129dd565b610396610925366004614313565b612b38565b348015610935575f80fd5b5061036960985481565b34801561094a575f80fd5b506103966109593660046140d7565b613104565b348015610969575f80fd5b506097546104e6906001600160a01b031681565b348015610988575f80fd5b5061033f6109973660046140a5565b6131c3565b3480156109a7575f80fd5b50610369609a5481565b3480156109bc575f80fd5b506103966109cb3660046140a5565b61320d565b3480156109db575f80fd5b506103966109ea3660046140d7565b6132b0565b3480156109fa575f80fd5b5061036960a95481565b610a0c61333d565b6001600160a01b0381165f908152609f602052604090205460ff1615610a795760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ade61333d565b5f8111610b2d5760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a70565b5f80610b398585613397565b915091505f610b4c836001015160c01c90565b5f81815260a160205260409020549091508214610bab5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b5f60a181610bb98785614376565b81526020019081526020015f205414610c395760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a70565b609d548111610cb05760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b610cbb600182614389565b609e555b8315610e2757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610d07816131c3565b15610d62575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d52908490614376565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ddf575060a85481145b15610de9575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610cbf575b505050505050565b60a85415610e7f5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b610e876133b2565b5f80610e938484613397565b915091505f610ea6836001015160c01c90565b5f81815260a160205260409020549091508214610f055760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b610f0e81611326565b610f5a5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b610f63816131c3565b15610fb05760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003015460ff16156110115760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a70565b5f81815260a260205260409020600101544210156110715760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a70565b605983015160a05f611084600185614389565b81526020019081526020015f2054146110df5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f81815260a060205260409020541561113a5760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a70565b80609d546001011461118e5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b609d819055600160a35f6111a3866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111f26111e5846011015160c01c90565b600985015160c01c613405565b60a25f611200600184614389565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906112399084614389565b81526020019081526020015f205f905560a45f6001836112599190614389565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611302866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061134e57505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156113c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e4919061439c565b6114305760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a70565b60a854156114805760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b6114886133b2565b61149560208301836143b7565b60ff16156114e55760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a70565b5f6114f360408401846143d7565b915050806115435760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a70565b60608301356115945760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a70565b60808301356115e55760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a70565b5f806115fc6115f760208701876143d7565b613397565b915091505f61160f836001015160c01c90565b90505f60a181611620846001614376565b81526020019081526020015f20541461167b5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a70565b609e5481146116cc5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b5f81815260a1602052604090205482146117285760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a70565b5f81815260ab60205260409020546060870135146117885760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f611797846011015160c01c90565b90505f80806117e96117ac60408c018c6143d7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792508891506134c29050565b600196909601959485019493840193925090505f80491561180b575f4961182d565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f96118588961185060208f018f6143b7565b60ff1661363f565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a01526118c7896118a860208e018e6143d7565b6040516118b6929190614438565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff16156119345760a7545f90815260a46020526040902060020154609954429161192791614376565b6119319190614389565b90505b604051806080016040528042815260200182609854426119549190614376565b61195e9190614376565b81526020016119af8f806040019061197691906143d7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061364692505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a479190614447565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590611aaf90611aa9908f018f6143d7565b5f61369d565b5f8e8060400190611ac091906143d7565b6040518663ffffffff1660e01b8152600401611ae09594939291906144a5565b602060405180830381865afa158015611afb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1f919061439c565b611b915760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611bdf61333d565b5f81118015611bf057506099548114155b611c3c5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a70565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff16158015611ca257505f5460ff8083169116105b611d145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611d4f5f5460ff1690565b60ff16600214611da15760405162461bcd60e51b815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610a70565b81611e145760405162461bcd60e51b815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610a70565b609e545f90815260ab6020526040902054611e3d57609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611c76565b611e9f61333d565b6001600160a01b0381165f908152609f602052604090205460ff16611f065760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a70565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610acb565b611f5c61333d565b611f655f6136f1565b565b5f54610100900460ff1615808015611f8557505f54600160ff909116105b80611f9e5750303b158015611f9e57505f5460ff166001145b6120105760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f805460ff19166001179055801561204e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038616158061206b57506001600160a01b038516155b156120a2576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166120f85760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a70565b61210061375a565b6121086137de565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156122a1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6122b261333d565b6001600160a01b038116158015906122d85750609c546001600160a01b03828116911614155b6123245760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a70565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b61239561333d565b5f811180156123a5575060648111155b80156123b3575060a9548114155b6123ff5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a70565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c76565b60a8541561248d5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b6124956133b2565b5f806124a18686613397565b915091505f6124b4836001015160c01c90565b5f81815260a1602052604090205490915082146125135760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b61251c816131c3565b6125685760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff1916905560995460029091015442916125c191614376565b11612637575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f7574000000000000000000000000000000000000000000000000009183019190915261263291839190613862565b6122a1565b6126428386866139be565b6122a181336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613b71565b61268a61333d565b60aa80545f90915561269c8282613c3d565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c76565b6126e361333d565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561275a5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a70565b5f806127668484613397565b915091505f612779836001015160c01c90565b90505f612787846079015190565b9050806127d65760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a70565b600984015160c01c1561282b5760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a70565b5f612837856019015190565b036128845760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a70565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440146128b0856039015190565b146128fd5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a70565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b6129e561333d565b8015612b06576129f3613ce8565b60a65460ff1615612ac55760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612a47908490614376565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b612b0e613d42565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612ae8565b50565b335f908152609f602052604090205460ff16612b965760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a70565b60a85415612be65760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612bee6133b2565b60a65460ff1615612c415760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a70565b8167ffffffffffffffff16609d5410612c9c5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a160205260409020548114612d035760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b612d168267ffffffffffffffff16611326565b612d625760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612ddd5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a260205260409020600101544210612e6d5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a70565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ebd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ee19190614447565b341015612f305760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b99763460405161308291815260200190565b60405180910390a35f609d54600161309a9190614376565b90505b609e5481116130f2578267ffffffffffffffff1681146130e0576099545f82815260a26020526040812060010180549091906130da908490614376565b90915550505b806130ea81614518565b91505061309d565b505060a6805460ff1916600117905550565b335f90815260a56020526040812054908190036131635760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a70565b335f90815260a5602052604081205561317c8282613c3d565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a826040516131b791815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b03161580159061134e5750505f90815260a46020526040902060030154610100900460ff161590565b61321561333d565b5f8111801561322657506098548114155b6132725760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a70565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c76565b6132b861333d565b6001600160a01b0381166133345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a70565b612b35816136f1565b6033546001600160a01b03163314611f655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a70565b5f805f6133a48585613d7b565b812090969095509350505050565b60655460ff1615611f655760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a70565b805f03613410575050565b8082035f5b828110156134bc5761010081840381111561342f57508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b158015613492575f80fd5b505af11580156134a4573d5f803e3d5ffd5b50505050610100830192505061010081019050613415565b50505050565b60405183515f918291602087019190819084906134e0908590613de3565b90506002840193505f5b8181101561356457603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f61353a603c8361454f565b6135449087614376565b90505f61355582603a015160f01c90565b979097019650506001016134ea565b506020850282016040525b801561362d575f61358485603a015160f01c90565b905061359283828b8b613e78565b92505f6135a3866038015160f01c90565b9050818110156135f55760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a70565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161356f565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613661828651613de3565b90505f5b613670600183614389565b81101561368657603c9390930192600101613665565b505f613693845160c01c90565b9695505050505050565b60605f808080806136b0888a018a614653565b95509550955095509550508187106136ce5794506136ea9350505050565b8387106136e25782955050505050506136ea565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166137d65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65613f46565b5f54610100900460ff1661385a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65613fce565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af11580156138e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061390a9190614447565b5f86815260a46020526040902060010154909150613929908290614376565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a590915281208054909190613968908490614376565b909155505060405161397b9084906146f0565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613a0b5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a70565b5f613a1a846001015160c01c90565b90505f613a28856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613a57876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a848613b19885160f81c90565b858888866040518663ffffffff1660e01b8152600401613b3d95949392919061471c565b5f6040518083038186803b158015613b53575f80fd5b505afa158015613b65573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613b95908461454f565b613b9f919061474d565b9050613bab8183614389565b60aa5f828254613bbb9190614376565b90915550506001600160a01b0384165f90815260a5602052604081208054839290613be7908490614376565b9091555050604051613bfa9084906146f0565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613ce4575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613c8c576040519150601f19603f3d011682016040523d82523d5f602084013e613c91565b606091505b5050905080613ce25760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a70565b505b5050565b613cf06133b2565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613d253390565b6040516001600160a01b03909116815260200160405180910390a1565b613d4a614053565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613d25565b5f8160f98114613dcd5760405162461bcd60e51b815260206004820152601f60248201527f626174636820686561646572206c656e677468206d75737420626520323439006044820152606401610a70565b6040519150808483378082016040529250929050565b5f613def835160f01c90565b9050805f03613e2a576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e35603c8261454f565b613e40906002614376565b821461134e576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03613e87575083613f3e565b609b546001600160a01b03165f5b85811015613f38576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613efb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f1f9190614447565b8852506020909601956001948501949384019301613e95565b50859150505b949350505050565b5f54610100900460ff16613fc25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b6065805460ff19169055565b5f54610100900460ff1661404a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65336136f1565b60655460ff16611f655760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a70565b5f602082840312156140b5575f80fd5b5035919050565b80356001600160a01b03811681146140d2575f80fd5b919050565b5f602082840312156140e7575f80fd5b6136ea826140bc565b5f8083601f840112614100575f80fd5b50813567ffffffffffffffff811115614117575f80fd5b60208301915083602082850101111561412e575f80fd5b9250929050565b5f805f60408486031215614147575f80fd5b833567ffffffffffffffff81111561415d575f80fd5b614169868287016140f0565b909790965060209590950135949350505050565b5f806020838503121561418e575f80fd5b823567ffffffffffffffff8111156141a4575f80fd5b6141b0858286016140f0565b90969095509350505050565b5f80604083850312156141cd575f80fd5b823567ffffffffffffffff808211156141e4575f80fd5b9084019060c082870312156141f7575f80fd5b9092506020840135908082111561420c575f80fd5b5083016060818603121561421e575f80fd5b809150509250929050565b5f805f805f8060c0878903121561423e575f80fd5b614247876140bc565b9550614255602088016140bc565b9450614263604088016140bc565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614297575f80fd5b843567ffffffffffffffff808211156142ae575f80fd5b6142ba888389016140f0565b909650945060208701359150808211156142d2575f80fd5b506142df878288016140f0565b95989497509550505050565b8015158114612b35575f80fd5b5f60208284031215614308575f80fd5b81356136ea816142eb565b5f8060408385031215614324575f80fd5b823567ffffffffffffffff8116811461433b575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561134e5761134e614349565b8181038181111561134e5761134e614349565b5f602082840312156143ac575f80fd5b81516136ea816142eb565b5f602082840312156143c7575f80fd5b813560ff811681146136ea575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261440a575f80fd5b83018035915067ffffffffffffffff821115614424575f80fd5b60200191503681900382131561412e575f80fd5b818382375f9101908152919050565b5f60208284031215614457575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156144ef5784516001600160a01b0316835293830193918301916001016144ca565b5050876040860152848103606086015261450a81878961445e565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361454857614548614349565b5060010190565b808202811582820484141761134e5761134e614349565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145a2575f80fd5b8135602067ffffffffffffffff808311156145bf576145bf614566565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110848211171561460257614602614566565b6040529384526020818701810194908101925087851115614621575f80fd5b6020870191505b8482101561464857614639826140bc565b83529183019190830190614628565b979650505050505050565b5f805f805f8060c08789031215614668575f80fd5b86359550602087013567ffffffffffffffff80821115614686575f80fd5b6146928a838b01614593565b96506040890135955060608901359150808211156146ae575f80fd5b6146ba8a838b01614593565b94506080890135935060a08901359150808211156146d6575f80fd5b506146e389828a01614593565b9150509295509295509295565b5f82515f5b8181101561470f57602081860181015185830152016146f5565b505f920191825250919050565b858152846020820152608060408201525f61473b60808301858761445e565b90508260608301529695505050505050565b5f82614780577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a +0x608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109b1578063f2fde38b146109d0578063fb1e8b04146109ef575f80fd5b8063ddd8a3dc1461095e578063de8b30351461097d578063dff7827e1461099c575f80fd5b8063cd4edc69116100b7578063cd4edc6914610917578063ce5db8d61461092a578063d279c1911461093f575f80fd5b8063b35dac4e146108ba578063b3e0a509146108d9578063bedb86fb146108f8575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d1461085b578063b31a77d314610886578063b34844251461089b575f80fd5b8063a415d8dc146107f9578063a479265d14610827578063a4f209b01461083c575f80fd5b80638f1d37761161016c5780638f1d3776146106f9578063910129d4146107a957806397fc007c146107da575f80fd5b8063728cdbca146106a457806388b1ea09146106c35780638da5cb5b146106dc575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa146106465780636c578c1d14610671578063715018a614610690575f80fd5b80635ef7a94a1461057b5780635f77cf1d146105db5780636126729014610627575f80fd5b80634a8d544f1161022c5780634a8d544f1461053257806357e0af6c146105455780635c975abb14610564575f80fd5b80632b7ac3f3146104c75780633b70c18a146104fe5780633e001b661461051d575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b3660046140f4565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b50610396610391366004614126565b610a04565b005b3480156103a3575f80fd5b506103966103b2366004614184565b610ad6565b3480156103c2575f80fd5b5061033f6103d13660046140f4565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b506103966104083660046141cc565b610e2f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c3660046140f4565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c3660046140f4565b611326565b34801561047c575f80fd5b5061036961048b3660046140f4565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b63660046140f4565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104e6906001600160a01b031681565b6040516001600160a01b03909116815260200161034b565b348015610509575f80fd5b50609b546104e6906001600160a01b031681565b348015610528575f80fd5b5061036960aa5481565b61039661054036600461420b565b611354565b348015610550575f80fd5b5061039661055f3660046140f4565b611bd7565b34801561056f575f80fd5b5060655460ff1661033f565b348015610586575f80fd5b506105bb6105953660046140f4565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b3480156105e6575f80fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610632575f80fd5b506103966106413660046140f4565b611c82565b348015610651575f80fd5b506103696106603660046140f4565b60ab6020525f908152604090205481565b34801561067c575f80fd5b5061039661068b366004614126565b611e97565b34801561069b575f80fd5b50610396611f54565b3480156106af575f80fd5b506103966106be366004614278565b611f67565b3480156106ce575f80fd5b5060a65461033f9060ff1681565b3480156106e7575f80fd5b506033546001600160a01b03166104e6565b348015610704575f80fd5b506107656107133660046140f4565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b3480156107b4575f80fd5b5061033f6107c33660046140f4565b5f90815260a4602052604090206003015460ff1690565b3480156107e5575f80fd5b506103966107f4366004614126565b6122aa565b348015610804575f80fd5b5061033f610813366004614126565b609f6020525f908152604090205460ff1681565b348015610832575f80fd5b5061036960995481565b348015610847575f80fd5b506103966108563660046140f4565b61238d565b348015610866575f80fd5b50610369610875366004614126565b60a56020525f908152604090205481565b348015610891575f80fd5b5061036960a85481565b3480156108a6575f80fd5b506103966108b53660046142d3565b61243d565b3480156108c5575f80fd5b506103966108d4366004614126565b612682565b3480156108e4575f80fd5b506103966108f33660046141cc565b6126db565b348015610903575f80fd5b50610396610912366004614347565b612a2b565b610396610925366004614362565b612b86565b348015610935575f80fd5b5061036960985481565b34801561094a575f80fd5b50610396610959366004614126565b613152565b348015610969575f80fd5b506097546104e6906001600160a01b031681565b348015610988575f80fd5b5061033f6109973660046140f4565b613211565b3480156109a7575f80fd5b50610369609a5481565b3480156109bc575f80fd5b506103966109cb3660046140f4565b61325b565b3480156109db575f80fd5b506103966109ea366004614126565b6132fe565b3480156109fa575f80fd5b5061036960a95481565b610a0c61338b565b6001600160a01b0381165f908152609f602052604090205460ff1615610a795760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ade61338b565b5f8111610b2d5760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a70565b5f80610b3985856133e5565b915091505f610b4c836001015160c01c90565b5f81815260a160205260409020549091508214610bab5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b5f60a181610bb987856143c5565b81526020019081526020015f205414610c395760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a70565b609d548111610cb05760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b610cbb6001826143d8565b609e555b8315610e2757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610d0781613211565b15610d62575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d529084906143c5565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ddf575060a85481145b15610de9575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610cbf575b505050505050565b60a85415610e7f5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b610e87613400565b5f80610e9384846133e5565b915091505f610ea6836001015160c01c90565b5f81815260a160205260409020549091508214610f055760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b610f0e81611326565b610f5a5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b610f6381613211565b15610fb05760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003015460ff16156110115760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a70565b5f81815260a260205260409020600101544210156110715760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a70565b605983015160a05f6110846001856143d8565b81526020019081526020015f2054146110df5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f81815260a060205260409020541561113a5760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a70565b80609d546001011461118e5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b609d819055600160a35f6111a3866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111f26111e5846011015160c01c90565b600985015160c01c613453565b60a25f6112006001846143d8565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061123990846143d8565b81526020019081526020015f205f905560a45f60018361125991906143d8565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611302866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061134e57505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156113c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e491906143eb565b6114305760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a70565b60a854156114805760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b611488613400565b6114956020830183614406565b60ff16156114e55760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a70565b5f6114f36040840184614426565b915050806115435760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a70565b60608301356115945760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a70565b60808301356115e55760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a70565b5f806115fc6115f76020870187614426565b6133e5565b915091505f61160f836001015160c01c90565b90505f60a1816116208460016143c5565b81526020019081526020015f20541461167b5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a70565b609e5481146116cc5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b5f81815260a1602052604090205482146117285760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a70565b5f81815260ab60205260409020546060870135146117885760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f611797846011015160c01c90565b90505f80806117e96117ac60408c018c614426565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792508891506135109050565b600196909601959485019493840193925090505f80491561180b575f4961182d565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f96118588961185060208f018f614406565b60ff1661368d565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a01526118c7896118a860208e018e614426565b6040516118b6929190614487565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff16156119345760a7545f90815260a460205260409020600201546099544291611927916143c5565b61193191906143d8565b90505b6040518060800160405280428152602001826098544261195491906143c5565b61195e91906143c5565b81526020016119af8f80604001906119769190614426565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061369492505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a479190614496565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590611aaf90611aa9908f018f614426565b5f6136eb565b5f8e8060400190611ac09190614426565b6040518663ffffffff1660e01b8152600401611ae09594939291906144f4565b602060405180830381865afa158015611afb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1f91906143eb565b611b915760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611bdf61338b565b5f81118015611bf057506099548114155b611c3c5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a70565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff16158015611ca257505f5460ff8083169116105b611d145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611d4f5f5460ff1690565b60ff16600214611da15760405162461bcd60e51b815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610a70565b81611e145760405162461bcd60e51b815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610a70565b609e545f90815260ab6020526040902054611e3d57609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611c76565b611e9f61338b565b6001600160a01b0381165f908152609f602052604090205460ff16611f065760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a70565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610acb565b611f5c61338b565b611f655f61373f565b565b5f54610100900460ff1615808015611f8557505f54600160ff909116105b80611f9e5750303b158015611f9e57505f5460ff166001145b6120105760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f805460ff19166001179055801561204e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038616158061206b57506001600160a01b038516155b156120a2576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166120f85760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a70565b6121006137a8565b61210861382c565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156122a1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6122b261338b565b6001600160a01b038116158015906122d85750609c546001600160a01b03828116911614155b6123245760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a70565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b61239561338b565b5f811180156123a5575060648111155b80156123b3575060a9548114155b6123ff5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a70565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c76565b60a8541561248d5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612495613400565b5f806124a186866133e5565b915091505f6124b4836001015160c01c90565b5f81815260a1602052604090205490915082146125135760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b61251c81613211565b6125685760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff1916905560995460029091015442916125c1916143c5565b11612637575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152612632918391906138b0565b6122a1565b612642838686613a0c565b6122a181336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613bbf565b61268a61338b565b60aa80545f90915561269c8282613c8b565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c76565b6126e361338b565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561275a5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a70565b5f8061276684846133e5565b915091505f612779836001015160c01c90565b905080156127c95760405162461bcd60e51b815260206004820152601360248201527f696e76616c696420626174636820696e646578000000000000000000000000006044820152606401610a70565b5f6127d5846079015190565b9050806128245760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a70565b600984015160c01c156128795760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a70565b5f612885856019015190565b036128d25760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a70565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440146128fe856039015190565b1461294b5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a70565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b612a3361338b565b8015612b5457612a41613d36565b60a65460ff1615612b135760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612a959084906143c5565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b612b5c613d90565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612b36565b50565b335f908152609f602052604090205460ff16612be45760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a70565b60a85415612c345760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612c3c613400565b60a65460ff1615612c8f5760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a70565b8167ffffffffffffffff16609d5410612cea5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a160205260409020548114612d515760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b612d648267ffffffffffffffff16611326565b612db05760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612e2b5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a260205260409020600101544210612ebb5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a70565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2f9190614496565b341015612f7e5760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b9976346040516130d091815260200190565b60405180910390a35f609d5460016130e891906143c5565b90505b609e548111613140578267ffffffffffffffff16811461312e576099545f82815260a26020526040812060010180549091906131289084906143c5565b90915550505b8061313881614567565b9150506130eb565b505060a6805460ff1916600117905550565b335f90815260a56020526040812054908190036131b15760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a70565b335f90815260a560205260408120556131ca8282613c8b565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a8260405161320591815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b03161580159061134e5750505f90815260a46020526040902060030154610100900460ff161590565b61326361338b565b5f8111801561327457506098548114155b6132c05760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a70565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c76565b61330661338b565b6001600160a01b0381166133825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a70565b612b838161373f565b6033546001600160a01b03163314611f655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a70565b5f805f6133f28585613dc9565b812090969095509350505050565b60655460ff1615611f655760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a70565b805f0361345e575050565b8082035f5b8281101561350a5761010081840381111561347d57508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b1580156134e0575f80fd5b505af11580156134f2573d5f803e3d5ffd5b50505050610100830192505061010081019050613463565b50505050565b60405183515f9182916020870191908190849061352e908590613e32565b90506002840193505f5b818110156135b257603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613588603c8361459e565b61359290876143c5565b90505f6135a382603a015160f01c90565b97909701965050600101613538565b506020850282016040525b801561367b575f6135d285603a015160f01c90565b90506135e083828b8b613ec7565b92505f6135f1866038015160f01c90565b9050818110156136435760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a70565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016135bd565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f6136af828651613e32565b90505f5b6136be6001836143d8565b8110156136d457603c93909301926001016136b3565b505f6136e1845160c01c90565b9695505050505050565b60605f808080806136fe888a018a6146a2565b955095509550955095505081871061371c5794506137389350505050565b838710613730578295505050505050613738565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166138245760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65613f95565b5f54610100900460ff166138a85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f6561401d565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af1158015613934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139589190614496565b5f86815260a460205260409020600101549091506139779082906143c5565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a5909152812080549091906139b69084906143c5565b90915550506040516139c990849061473f565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613a595760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a70565b5f613a68846001015160c01c90565b90505f613a76856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613aa5876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a848613b67885160f81c90565b858888866040518663ffffffff1660e01b8152600401613b8b95949392919061476b565b5f6040518083038186803b158015613ba1575f80fd5b505afa158015613bb3573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613be3908461459e565b613bed919061479c565b9050613bf981836143d8565b60aa5f828254613c0991906143c5565b90915550506001600160a01b0384165f90815260a5602052604081208054839290613c359084906143c5565b9091555050604051613c4890849061473f565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613d32575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613cda576040519150601f19603f3d011682016040523d82523d5f602084013e613cdf565b606091505b5050905080613d305760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a70565b505b5050565b613d3e613400565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613d733390565b6040516001600160a01b03909116815260200160405180910390a1565b613d986140a2565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613d73565b5f8160f9811015613e1c5760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a70565b6040519150808483378082016040529250929050565b5f613e3e835160f01c90565b9050805f03613e79576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e84603c8261459e565b613e8f9060026143c5565b821461134e576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03613ed6575083613f8d565b609b546001600160a01b03165f5b85811015613f87576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613f4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f6e9190614496565b8852506020909601956001948501949384019301613ee4565b50859150505b949350505050565b5f54610100900460ff166140115760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b6065805460ff19169055565b5f54610100900460ff166140995760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f653361373f565b60655460ff16611f655760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a70565b5f60208284031215614104575f80fd5b5035919050565b80356001600160a01b0381168114614121575f80fd5b919050565b5f60208284031215614136575f80fd5b6137388261410b565b5f8083601f84011261414f575f80fd5b50813567ffffffffffffffff811115614166575f80fd5b60208301915083602082850101111561417d575f80fd5b9250929050565b5f805f60408486031215614196575f80fd5b833567ffffffffffffffff8111156141ac575f80fd5b6141b88682870161413f565b909790965060209590950135949350505050565b5f80602083850312156141dd575f80fd5b823567ffffffffffffffff8111156141f3575f80fd5b6141ff8582860161413f565b90969095509350505050565b5f806040838503121561421c575f80fd5b823567ffffffffffffffff80821115614233575f80fd5b9084019060c08287031215614246575f80fd5b9092506020840135908082111561425b575f80fd5b5083016060818603121561426d575f80fd5b809150509250929050565b5f805f805f8060c0878903121561428d575f80fd5b6142968761410b565b95506142a46020880161410b565b94506142b26040880161410b565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f80604085870312156142e6575f80fd5b843567ffffffffffffffff808211156142fd575f80fd5b6143098883890161413f565b90965094506020870135915080821115614321575f80fd5b5061432e8782880161413f565b95989497509550505050565b8015158114612b83575f80fd5b5f60208284031215614357575f80fd5b81356137388161433a565b5f8060408385031215614373575f80fd5b823567ffffffffffffffff8116811461438a575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561134e5761134e614398565b8181038181111561134e5761134e614398565b5f602082840312156143fb575f80fd5b81516137388161433a565b5f60208284031215614416575f80fd5b813560ff81168114613738575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614459575f80fd5b83018035915067ffffffffffffffff821115614473575f80fd5b60200191503681900382131561417d575f80fd5b818382375f9101908152919050565b5f602082840312156144a6575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b8181101561453e5784516001600160a01b031683529383019391830191600101614519565b505087604086015284810360608601526145598187896144ad565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361459757614597614398565b5060010190565b808202811582820484141761134e5761134e614398565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145f1575f80fd5b8135602067ffffffffffffffff8083111561460e5761460e6145b5565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614651576146516145b5565b6040529384526020818701810194908101925087851115614670575f80fd5b6020870191505b84821015614697576146888261410b565b83529183019190830190614677565b979650505050505050565b5f805f805f8060c087890312156146b7575f80fd5b86359550602087013567ffffffffffffffff808211156146d5575f80fd5b6146e18a838b016145e2565b96506040890135955060608901359150808211156146fd575f80fd5b6147098a838b016145e2565b94506080890135935060a0890135915080821115614725575f80fd5b5061473289828a016145e2565b9150509295509295509295565b5f82515f5b8181101561475e5760208186018101518583015201614744565b505f920191825250919050565b858152846020820152608060408201525f61478a6080830185876144ad565b90508260608301529695505050505050565b5f826147cf577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a diff --git a/bindings/bindings/l1crossdomainmessenger.go b/bindings/bindings/l1crossdomainmessenger.go index 87775ad2d..2f47f0b20 100644 --- a/bindings/bindings/l1crossdomainmessenger.go +++ b/bindings/bindings/l1crossdomainmessenger.go @@ -31,8 +31,8 @@ var ( // L1CrossDomainMessengerMetaData contains all meta data concerning the L1CrossDomainMessenger contract. var L1CrossDomainMessengerMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"DropMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"name\":\"FailedRelayedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"name\":\"RelayedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldNonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"messageNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ReplayMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"messageNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"SentMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldFeeVault\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newFeeVault\",\"type\":\"address\"}],\"name\":\"UpdateFeeVault\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxReplayTimes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxReplayTimes\",\"type\":\"uint256\"}],\"name\":\"UpdateMaxReplayTimes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldRollup\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newRollup\",\"type\":\"address\"}],\"name\":\"UpdateRollup\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_messageNonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"dropMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeVault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"finalizedWithdrawals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeVault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"isL1MessageDropped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxReplayTimes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"messageSendTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"prevReplayIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[32]\",\"name\":\"_withdrawalProof\",\"type\":\"bytes32[32]\"},{\"internalType\":\"bytes32\",\"name\":\"_withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"proveAndRelayMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_messageNonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_newGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"replayMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"replayStates\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"times\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"lastIndex\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newFeeVault\",\"type\":\"address\"}],\"name\":\"updateFeeVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newMaxReplayTimes\",\"type\":\"uint256\"}],\"name\":\"updateMaxReplayTimes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newRollup\",\"type\":\"address\"}],\"name\":\"updateRollup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"leafHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[32]\",\"name\":\"smtProof\",\"type\":\"bytes32[32]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"verifyMerkleProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x608060405234801562000010575f80fd5b506200001b62000021565b620000df565b5f54610100900460ff16156200008d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614620000dd575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612de580620000ed5f395ff3fe6080604052600436106101a7575f3560e01c806386fa4b73116100e7578063c0c53b8b11610087578063e70fc93b11610062578063e70fc93b146104f9578063ea7ec51414610524578063ecc7042814610550578063f2fde38b14610564575f80fd5b8063c0c53b8b1461049c578063cb23bcb5146104bb578063d87e7df1146104da575f80fd5b8063a14238e7116100c2578063a14238e71461040e578063b2267a7b1461043c578063b604bf4c1461044f578063bedb86fb1461047d575f80fd5b806386fa4b73146103af5780638da5cb5b146103ce578063946130d8146103eb575f80fd5b806355004105116101525780636e296e451161012d5780636e296e45146102de578063715018a6146102fd578063797594b014610311578063846d4d7a14610330575f80fd5b806355004105146102a15780635c975abb146102b45780635f7b1577146102cb575f80fd5b80633b70c18a116101825780633b70c18a1461022c578063407c195514610263578063478222c214610282575f80fd5b806329907acd146101ba5780632a6cccb2146101d9578063340735f7146101f8575f80fd5b366101b6576101b4610583565b005b5f80fd5b3480156101c5575f80fd5b506101b46101d436600461283a565b6105e4565b3480156101e4575f80fd5b506101b46101f33660046128a7565b610966565b348015610203575f80fd5b506102176102123660046128de565b610a2d565b60405190151581526020015b60405180910390f35b348015610237575f80fd5b5060fe5461024b906001600160a01b031681565b6040516001600160a01b039091168152602001610223565b34801561026e575f80fd5b506101b461027d36600461291a565b610af6565b34801561028d575f80fd5b5060cb5461024b906001600160a01b031681565b6101b46102af366004612931565b610bb9565b3480156102bf575f80fd5b5060655460ff16610217565b6101b46102d93660046129c8565b611201565b3480156102e9575f80fd5b5060c95461024b906001600160a01b031681565b348015610308575f80fd5b506101b4611255565b34801561031c575f80fd5b5060ca5461024b906001600160a01b031681565b34801561033b575f80fd5b5061038661034a36600461291a565b6101006020525f90815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b604080516fffffffffffffffffffffffffffffffff938416815292909116602083015201610223565b3480156103ba575f80fd5b506101b46103c9366004612a66565b611266565b3480156103d9575f80fd5b506033546001600160a01b031661024b565b3480156103f6575f80fd5b5061040060ff5481565b604051908152602001610223565b348015610419575f80fd5b5061021761042836600461291a565b60fa6020525f908152604090205460ff1681565b6101b461044a366004612aef565b611732565b34801561045a575f80fd5b5061021761046936600461291a565b60fc6020525f908152604090205460ff1681565b348015610488575f80fd5b506101b4610497366004612b57565b61174d565b3480156104a7575f80fd5b506101b46104b6366004612b72565b61176e565b3480156104c6575f80fd5b5060fd5461024b906001600160a01b031681565b3480156104e5575f80fd5b506101b46104f43660046128a7565b6119d1565b348015610504575f80fd5b5061040061051336600461291a565b60fb6020525f908152604090205481565b34801561052f575f80fd5b5061040061053e36600461291a565b6101016020525f908152604090205481565b34801561055b575f80fd5b50610400611ac7565b34801561056f575f80fd5b506101b461057e3660046128a7565b611b50565b6033546001600160a01b031633146105e25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b565b6105ec611bdd565b60c9546001600160a01b031661dead146106485760405162461bcd60e51b815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e0060448201526064016105d9565b60fe546001600160a01b03165f6106628787878787611c30565b90505f818051906020012090505f60fb5f8381526020019081526020015f2054116106f55760405162461bcd60e51b815260206004820152602660248201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e60448201527f717565756564000000000000000000000000000000000000000000000000000060648201526084016105d9565b5f81815260fc602052604090205460ff16156107535760405162461bcd60e51b815260206004820152601760248201527f4d65737361676520616c72656164792064726f7070656400000000000000000060448201526064016105d9565b5f818152610100602052604081205470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16908190036107935750845b6040517f91652461000000000000000000000000000000000000000000000000000000008152600481018290526001600160a01b038516906391652461906024015f604051808303815f87803b1580156107eb575f80fd5b505af11580156107fd573d5f803e3d5ffd5b5050505f918252506101016020526040902054801561083d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01610793565b5f82815260fc6020526040808220805460ff191660011790555187917fbd05aabbf548001ebdd6ac80c02f1cfb3b39165f2fae1d420075f22e781ef63b91a260c980547fffffffffffffffffffffffff000000000000000000000000000000000000000016736f297c61b5c92ef107ffd30cd56affe5a273e8411790556040517f14298c510000000000000000000000000000000000000000000000000000000081526001600160a01b038a16906314298c51908990610901908990600401612c1d565b5f604051808303818588803b158015610918575f80fd5b505af115801561092a573d5f803e3d5ffd5b505060c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055505050505050505050505050565b61096e610583565b6001600160a01b0381166109c45760405162461bcd60e51b815260206004820152601d60248201527f6665655661756c742063616e6e6f74206265206164647265737328302900000060448201526064016105d9565b60cb80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f4aadc32827849f797733838c61302f7f56d2b6db28caa175eb3f7f8e5aba25f5905f90a35050565b5f84815b6020811015610aea578085901c600116600103610a9757858160208110610a5a57610a5a612c2f565b602002013582604051602001610a7a929190918252602082015260400190565b604051602081830303815290604052805190602001209150610ae2565b81868260208110610aaa57610aaa612c2f565b6020020135604051602001610ac9929190918252602082015260400190565b6040516020818303038152906040528051906020012091505b600101610a31565b50909114949350505050565b610afe610583565b5f8111610b735760405162461bcd60e51b815260206004820152602360248201527f7265706c61792074696d6573206d75737420626520677265617465722074686160448201527f6e2030000000000000000000000000000000000000000000000000000000000060648201526084016105d9565b60ff80549082905560408051828152602081018490527fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b91015b60405180910390a15050565b610bc1611bdd565b60c9546001600160a01b031661dead14610c1d5760405162461bcd60e51b815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e0060448201526064016105d9565b60fe5460ca546001600160a01b0391821691165f610c3e8a8a8a8a8a611c30565b90505f818051906020012090505f60fb5f8381526020019081526020015f205411610cd15760405162461bcd60e51b815260206004820152602660248201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e60448201527f717565756564000000000000000000000000000000000000000000000000000060648201526084016105d9565b5f81815260fc602052604090205460ff1615610d2f5760405162461bcd60e51b815260206004820152601760248201527f4d65737361676520616c72656164792064726f7070656400000000000000000060448201526064016105d9565b6040517f3e4cbbe60000000000000000000000000000000000000000000000000000000081526001600160a01b038c8116600483015263ffffffff881660248301525f9190861690633e4cbbe690604401602060405180830381865afa158015610d9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dbf9190612c5c565b905080341015610e115760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e74206d73672e76616c756520666f7220666565000060448201526064016105d9565b8015610eb95760cb546040515f916001600160a01b03169083908381818185875af1925050503d805f8114610e61576040519150601f19603f3d011682016040523d82523d5f602084013e610e66565b606091505b5050905080610eb75760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f206465647563742074686520666565000000000000000060448201526064016105d9565b505b5f856001600160a01b031663fd0ad31e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1a9190612c5c565b6040517f9b1597820000000000000000000000000000000000000000000000000000000081529091506001600160a01b03871690639b15978290610f669088908c908990600401612c73565b5f604051808303815f87803b158015610f7d575f80fd5b505af1158015610f8f573d5f803e3d5ffd5b5050505f848152610100602090815260408083208151808301909252546fffffffffffffffffffffffffffffffff80821683527001000000000000000000000000000000009091041691810182905292509003610fff575f8281526101016020526040902060018c019055611030565b80602001516001016fffffffffffffffffffffffffffffffff166101015f8481526020019081526020015f20819055505b6fffffffffffffffffffffffffffffffff808316602083015260ff5482519091161061109e5760405162461bcd60e51b815260206004820152601b60248201527f457863656564206d6178696d756d207265706c61792074696d6573000000000060448201526064016105d9565b80516fffffffffffffffffffffffffffffffff600191909101811682525f858152610100602090815260409091208351919093015182167001000000000000000000000000000000000291161790556001600160a01b038c166110fe3390565b6001600160a01b03168b7fa3a1251805b1fc7915884575b42e1fb862e814f0f5c9d670d08bf84697053d618e858d8f60405161113d9493929190612ca9565b60405180910390a4348281039083146111f1575f886001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611199576040519150601f19603f3d011682016040523d82523d5f602084013e61119e565b606091505b50509050806111ef5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f20726566756e642074686520666565000000000000000060448201526064016105d9565b505b5050505050505050505050505050565b611209611bdd565b61124d868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250879150611ccc9050565b505050505050565b61125d610583565b6105e25f612118565b61126e611bdd565b60c9546001600160a01b031661dead146112ca5760405162461bcd60e51b815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e0060448201526064016105d9565b60fe546001600160a01b039081169087160361134e5760405162461bcd60e51b815260206004820152602760248201527f4d657373656e6765723a20466f7262696420746f2063616c6c206d657373616760448201527f652071756575650000000000000000000000000000000000000000000000000060648201526084016105d9565b61135786612181565b60c9546001600160a01b03908116908816036113db5760405162461bcd60e51b815260206004820152602160248201527f4d657373656e6765723a20496e76616c6964206d6573736167652073656e646560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016105d9565b5f6113e98888888888611c30565b80516020918201205f81815260fa90925260409091205490915060ff16156114795760405162461bcd60e51b815260206004820152603060248201527f4d657373656e6765723a207769746864726177616c2068617320616c7265616460448201527f79206265656e2066696e616c697a65640000000000000000000000000000000060648201526084016105d9565b60fd546040517f04d77215000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03909116905f9082906304d7721590602401602060405180830381865afa1580156114dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115019190612cdd565b9050806115765760405162461bcd60e51b815260206004820152602760248201527f4d657373656e6765723a207769746864726177616c526f6f74206e6f7420666960448201527f6e616c697a65640000000000000000000000000000000000000000000000000060648201526084016105d9565b61158283868987610a2d565b6115f45760405162461bcd60e51b815260206004820152602d60248201527f4d657373656e6765723a20696e76616c6964207769746864726177616c20696e60448201527f636c7573696f6e2070726f6f660000000000000000000000000000000000000060648201526084016105d9565b5060c980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038b8116919091179091556040515f918a16908990611642908990612cf8565b5f6040518083038185875af1925050503d805f811461167c576040519150601f19603f3d011682016040523d82523d5f602084013e611681565b606091505b505060c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156116fb575f83815260fa6020526040808220805460ff191660011790555184917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2611726565b60405183907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f905f90a25b50505050505050505050565b61173a611bdd565b6117478484848433611ccc565b50505050565b611755610583565b8015611766576117636121d9565b50565b611763612233565b5f54610100900460ff161580801561178c57505f54600160ff909116105b806117a55750303b1580156117a557505f5460ff166001145b6118175760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105d9565b5f805460ff191660011790558015611855575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038316158061187257506001600160a01b038216155b8061188457506001600160a01b038416155b156118bb576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118d97353000000000000000000000000000000000000078561226c565b60fd80546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fe805492851692909116919091179055600360ff8190556040517fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b91611962915f9190918252602082015260400190565b60405180910390a18015611747575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6119d9610583565b6001600160a01b038116611a555760405162461bcd60e51b815260206004820152602360248201527f726f6c6c757020616464726573732063616e6e6f74206265206164647265737360448201527f283029000000000000000000000000000000000000000000000000000000000060648201526084016105d9565b60fd80546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f5272c8ad4bd643b1130291ea29bebd9b3bc583057a6e4d047eb7077039a956309101610bad565b60fe54604080517ffd0ad31e00000000000000000000000000000000000000000000000000000000815290515f926001600160a01b03169163fd0ad31e9160048083019260209291908290030181865afa158015611b27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b4b9190612c5c565b905090565b611b58610583565b6001600160a01b038116611bd45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105d9565b61176381612118565b60655460ff16156105e25760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105d9565b60608585858585604051602401611c4b959493929190612d13565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8ef1332e00000000000000000000000000000000000000000000000000000000179052905095945050505050565b611cd4612384565b60fe5460ca54604080517ffd0ad31e00000000000000000000000000000000000000000000000000000000815290516001600160a01b0393841693909216915f91849163fd0ad31e916004808201926020929091908290030181865afa158015611d40573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d649190612c5c565b90505f611d74338a8a858b611c30565b90505f6001600160a01b038516633e4cbbe6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018a9052604401602060405180830381865afa158015611de8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e0c9190612c5c565b9050611e188982612d55565b341015611e675760405162461bcd60e51b815260206004820152601660248201527f496e73756666696369656e74206d73672e76616c75650000000000000000000060448201526064016105d9565b8015611f0f5760cb546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611eb7576040519150601f19603f3d011682016040523d82523d5f602084013e611ebc565b606091505b5050905080611f0d5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f206465647563742074686520666565000000000000000060448201526064016105d9565b505b6040517f9b1597820000000000000000000000000000000000000000000000000000000081526001600160a01b03861690639b15978290611f589087908b908790600401612d8d565b5f604051808303815f87803b158015611f6f575f80fd5b505af1158015611f81573d5f803e3d5ffd5b505050505f8280519060200120905060fb5f8281526020019081526020015f20545f14611ff05760405162461bcd60e51b815260206004820152601260248201527f4475706c696361746564206d657373616765000000000000000000000000000060448201526064016105d9565b5f81815260fb602052604090204290556001600160a01b038b16336001600160a01b03167f104371f3b442861a2a7b82a070afbbaab748bb13757bf47769e170e37809ec1e8c878c8e6040516120499493929190612db4565b60405180910390a3348290038a8103908b14612100575f886001600160a01b0316826040515f6040518083038185875af1925050503d805f81146120a8576040519150601f19603f3d011682016040523d82523d5f602084013e6120ad565b606091505b50509050806120fe5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f20726566756e642074686520666565000000000000000060448201526064016105d9565b505b505050505050506121116001609755565b5050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b306001600160a01b038216036117635760405162461bcd60e51b815260206004820152601e60248201527f4d657373656e6765723a20466f7262696420746f2063616c6c2073656c66000060448201526064016105d9565b6121e1611bdd565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586122163390565b6040516001600160a01b03909116815260200160405180910390a1565b61223b6123e4565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612216565b5f54610100900460ff166122e85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b6122f0612436565b6122f86124ba565b61230061253e565b60c980547fffffffffffffffffffffffff000000000000000000000000000000000000000090811661dead1790915560ca80546001600160a01b03858116919093161790558116156123805760cb80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790555b5050565b6002609754036123d65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105d9565b6002609755565b6001609755565b60655460ff166105e25760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105d9565b5f54610100900460ff166124b25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b6105e26125c2565b5f54610100900460ff166125365760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b6105e2612647565b5f54610100900460ff166125ba5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b6105e26126cf565b5f54610100900460ff1661263e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b6105e233612118565b5f54610100900460ff166126c35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b6065805460ff19169055565b5f54610100900460ff166123dd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105d9565b80356001600160a01b0381168114612761575f80fd5b919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126127a2575f80fd5b813567ffffffffffffffff808211156127bd576127bd612766565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561280357612803612766565b8160405283815286602085880101111561281b575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f805f60a0868803121561284e575f80fd5b6128578661274b565b94506128656020870161274b565b93506040860135925060608601359150608086013567ffffffffffffffff81111561288e575f80fd5b61289a88828901612793565b9150509295509295909350565b5f602082840312156128b7575f80fd5b6128c08261274b565b9392505050565b8061040081018310156128d8575f80fd5b92915050565b5f805f8061046085870312156128f2575f80fd5b8435935061290386602087016128c7565b939693955050505061042082013591610440013590565b5f6020828403121561292a575f80fd5b5035919050565b5f805f805f805f60e0888a031215612947575f80fd5b6129508861274b565b965061295e6020890161274b565b95506040880135945060608801359350608088013567ffffffffffffffff811115612987575f80fd5b6129938a828b01612793565b93505060a088013563ffffffff811681146129ac575f80fd5b91506129ba60c0890161274b565b905092959891949750929550565b5f805f805f8060a087890312156129dd575f80fd5b6129e68761274b565b955060208701359450604087013567ffffffffffffffff80821115612a09575f80fd5b818901915089601f830112612a1c575f80fd5b813581811115612a2a575f80fd5b8a6020828501011115612a3b575f80fd5b60208301965080955050505060608701359150612a5a6080880161274b565b90509295509295509295565b5f805f805f805f6104c0888a031215612a7d575f80fd5b612a868861274b565b9650612a946020890161274b565b95506040880135945060608801359350608088013567ffffffffffffffff811115612abd575f80fd5b612ac98a828b01612793565b935050612ad98960a08a016128c7565b91506104a0880135905092959891949750929550565b5f805f8060808587031215612b02575f80fd5b612b0b8561274b565b935060208501359250604085013567ffffffffffffffff811115612b2d575f80fd5b612b3987828801612793565b949793965093946060013593505050565b8015158114611763575f80fd5b5f60208284031215612b67575f80fd5b81356128c081612b4a565b5f805f60608486031215612b84575f80fd5b612b8d8461274b565b9250612b9b6020850161274b565b9150612ba96040850161274b565b90509250925092565b5f5b83811015612bcc578181015183820152602001612bb4565b50505f910152565b5f8151808452612beb816020860160208601612bb2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f6128c06020830184612bd4565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215612c6c575f80fd5b5051919050565b6001600160a01b038416815263ffffffff83166020820152606060408201525f612ca06060830184612bd4565b95945050505050565b84815283602082015263ffffffff83166040820152608060608201525f612cd36080830184612bd4565b9695505050505050565b5f60208284031215612ced575f80fd5b81516128c081612b4a565b5f8251612d09818460208701612bb2565b9190910192915050565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a06080830152612d4a60a0830184612bd4565b979650505050505050565b808201808211156128d8577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6001600160a01b0384168152826020820152606060408201525f612ca06060830184612bd4565b848152836020820152826040820152608060608201525f612cd36080830184612bd456fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"name\":\"FailedRelayedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"name\":\"RelayedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldNonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"messageNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ReplayMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"messageNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"SentMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldFeeVault\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newFeeVault\",\"type\":\"address\"}],\"name\":\"UpdateFeeVault\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxReplayTimes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxReplayTimes\",\"type\":\"uint256\"}],\"name\":\"UpdateMaxReplayTimes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldRollup\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newRollup\",\"type\":\"address\"}],\"name\":\"UpdateRollup\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"__isL1MessageDropped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeVault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"finalizedWithdrawals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeVault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxReplayTimes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"messageSendTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"prevReplayIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[32]\",\"name\":\"_withdrawalProof\",\"type\":\"bytes32[32]\"},{\"internalType\":\"bytes32\",\"name\":\"_withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"proveAndRelayMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_messageNonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_newGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"replayMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"replayStates\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"times\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"lastIndex\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newFeeVault\",\"type\":\"address\"}],\"name\":\"updateFeeVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newMaxReplayTimes\",\"type\":\"uint256\"}],\"name\":\"updateMaxReplayTimes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newRollup\",\"type\":\"address\"}],\"name\":\"updateRollup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"leafHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[32]\",\"name\":\"smtProof\",\"type\":\"bytes32[32]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"verifyMerkleProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x608060405234801562000010575f80fd5b506200001b62000021565b620000df565b5f54610100900460ff16156200008d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614620000dd575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612a5080620000ed5f395ff3fe60806040526004361061019c575f3560e01c806386fa4b73116100dc578063c0c53b8b11610087578063e70fc93b11610062578063e70fc93b146104cf578063ea7ec514146104fa578063ecc7042814610526578063f2fde38b1461053a575f80fd5b8063c0c53b8b14610472578063cb23bcb514610491578063d87e7df1146104b0575f80fd5b8063a14238e7116100b7578063a14238e714610412578063b2267a7b14610440578063bedb86fb14610453575f80fd5b806386fa4b73146103b35780638da5cb5b146103d2578063946130d8146103ef575f80fd5b806355004105116101475780636e296e45116101225780636e296e45146102e2578063715018a614610301578063797594b014610315578063846d4d7a14610334575f80fd5b806355004105146102a55780635c975abb146102b85780635f7b1577146102cf575f80fd5b80633b70c18a116101775780633b70c18a14610230578063407c195514610267578063478222c214610286575f80fd5b806305804dd7146101af5780632a6cccb2146101f2578063340735f714610211575f80fd5b366101ab576101a9610559565b005b5f80fd5b3480156101ba575f80fd5b506101dd6101c9366004612435565b60fc6020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156101fd575f80fd5b506101a961020c366004612467565b6105ba565b34801561021c575f80fd5b506101dd61022b36600461249e565b610681565b34801561023b575f80fd5b5060fe5461024f906001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b348015610272575f80fd5b506101a9610281366004612435565b61074a565b348015610291575f80fd5b5060cb5461024f906001600160a01b031681565b6101a96102b33660046125ae565b61080d565b3480156102c3575f80fd5b5060655460ff166101dd565b6101a96102dd366004612645565b610e55565b3480156102ed575f80fd5b5060c95461024f906001600160a01b031681565b34801561030c575f80fd5b506101a9610ea9565b348015610320575f80fd5b5060ca5461024f906001600160a01b031681565b34801561033f575f80fd5b5061038a61034e366004612435565b6101006020525f90815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b604080516fffffffffffffffffffffffffffffffff9384168152929091166020830152016101e9565b3480156103be575f80fd5b506101a96103cd3660046126e3565b610eba565b3480156103dd575f80fd5b506033546001600160a01b031661024f565b3480156103fa575f80fd5b5061040460ff5481565b6040519081526020016101e9565b34801561041d575f80fd5b506101dd61042c366004612435565b60fa6020525f908152604090205460ff1681565b6101a961044e36600461276c565b6113a4565b34801561045e575f80fd5b506101a961046d3660046127d4565b6113bf565b34801561047d575f80fd5b506101a961048c3660046127ef565b6113e0565b34801561049c575f80fd5b5060fd5461024f906001600160a01b031681565b3480156104bb575f80fd5b506101a96104ca366004612467565b611661565b3480156104da575f80fd5b506104046104e9366004612435565b60fb6020525f908152604090205481565b348015610505575f80fd5b50610404610514366004612435565b6101016020525f908152604090205481565b348015610531575f80fd5b50610404611757565b348015610545575f80fd5b506101a9610554366004612467565b6117e0565b6033546001600160a01b031633146105b85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b565b6105c2610559565b6001600160a01b0381166106185760405162461bcd60e51b815260206004820152601d60248201527f6665655661756c742063616e6e6f74206265206164647265737328302900000060448201526064016105af565b60cb80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f4aadc32827849f797733838c61302f7f56d2b6db28caa175eb3f7f8e5aba25f5905f90a35050565b5f84815b602081101561073e578085901c6001166001036106eb578581602081106106ae576106ae61282f565b6020020135826040516020016106ce929190918252602082015260400190565b604051602081830303815290604052805190602001209150610736565b818682602081106106fe576106fe61282f565b602002013560405160200161071d929190918252602082015260400190565b6040516020818303038152906040528051906020012091505b600101610685565b50909114949350505050565b610752610559565b5f81116107c75760405162461bcd60e51b815260206004820152602360248201527f7265706c61792074696d6573206d75737420626520677265617465722074686160448201527f6e2030000000000000000000000000000000000000000000000000000000000060648201526084016105af565b60ff80549082905560408051828152602081018490527fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b91015b60405180910390a15050565b61081561186d565b60c9546001600160a01b031661dead146108715760405162461bcd60e51b815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e0060448201526064016105af565b60fe5460ca546001600160a01b0391821691165f6108928a8a8a8a8a6118c0565b90505f818051906020012090505f60fb5f8381526020019081526020015f2054116109255760405162461bcd60e51b815260206004820152602660248201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e60448201527f717565756564000000000000000000000000000000000000000000000000000060648201526084016105af565b5f81815260fc602052604090205460ff16156109835760405162461bcd60e51b815260206004820152601760248201527f4d65737361676520616c72656164792064726f7070656400000000000000000060448201526064016105af565b6040517f3e4cbbe60000000000000000000000000000000000000000000000000000000081526001600160a01b038c8116600483015263ffffffff881660248301525f9190861690633e4cbbe690604401602060405180830381865afa1580156109ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a13919061285c565b905080341015610a655760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e74206d73672e76616c756520666f7220666565000060448201526064016105af565b8015610b0d5760cb546040515f916001600160a01b03169083908381818185875af1925050503d805f8114610ab5576040519150601f19603f3d011682016040523d82523d5f602084013e610aba565b606091505b5050905080610b0b5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f206465647563742074686520666565000000000000000060448201526064016105af565b505b5f856001600160a01b031663fd0ad31e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6e919061285c565b6040517f9b1597820000000000000000000000000000000000000000000000000000000081529091506001600160a01b03871690639b15978290610bba9088908c9089906004016128de565b5f604051808303815f87803b158015610bd1575f80fd5b505af1158015610be3573d5f803e3d5ffd5b5050505f848152610100602090815260408083208151808301909252546fffffffffffffffffffffffffffffffff80821683527001000000000000000000000000000000009091041691810182905292509003610c53575f8281526101016020526040902060018c019055610c84565b80602001516001016fffffffffffffffffffffffffffffffff166101015f8481526020019081526020015f20819055505b6fffffffffffffffffffffffffffffffff808316602083015260ff54825190911610610cf25760405162461bcd60e51b815260206004820152601b60248201527f457863656564206d6178696d756d207265706c61792074696d6573000000000060448201526064016105af565b80516fffffffffffffffffffffffffffffffff600191909101811682525f858152610100602090815260409091208351919093015182167001000000000000000000000000000000000291161790556001600160a01b038c16610d523390565b6001600160a01b03168b7fa3a1251805b1fc7915884575b42e1fb862e814f0f5c9d670d08bf84697053d618e858d8f604051610d919493929190612914565b60405180910390a434828103908314610e45575f886001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610ded576040519150601f19603f3d011682016040523d82523d5f602084013e610df2565b606091505b5050905080610e435760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f20726566756e642074686520666565000000000000000060448201526064016105af565b505b5050505050505050505050505050565b610e5d61186d565b610ea1868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525088925087915061195c9050565b505050505050565b610eb1610559565b6105b85f611da8565b610ec261186d565b60c9546001600160a01b031661dead14610f1e5760405162461bcd60e51b815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e0060448201526064016105af565b60fe546001600160a01b0390811690871603610fa25760405162461bcd60e51b815260206004820152602760248201527f4d657373656e6765723a20466f7262696420746f2063616c6c206d657373616760448201527f652071756575650000000000000000000000000000000000000000000000000060648201526084016105af565b610fab86611e11565b60c9546001600160a01b039081169088160361102f5760405162461bcd60e51b815260206004820152602160248201527f4d657373656e6765723a20496e76616c6964206d6573736167652073656e646560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016105af565b5f61103d88888888886118c0565b80516020918201205f81815260fa90925260409091205490915060ff16156110cd5760405162461bcd60e51b815260206004820152603060248201527f4d657373656e6765723a207769746864726177616c2068617320616c7265616460448201527f79206265656e2066696e616c697a65640000000000000000000000000000000060648201526084016105af565b60fd546040517f04d77215000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03909116905f9082906304d7721590602401602060405180830381865afa158015611131573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111559190612948565b9050806111ca5760405162461bcd60e51b815260206004820152602760248201527f4d657373656e6765723a207769746864726177616c526f6f74206e6f7420666960448201527f6e616c697a65640000000000000000000000000000000000000000000000000060648201526084016105af565b6111d683868987610681565b6112485760405162461bcd60e51b815260206004820152602d60248201527f4d657373656e6765723a20696e76616c6964207769746864726177616c20696e60448201527f636c7573696f6e2070726f6f660000000000000000000000000000000000000060648201526084016105af565b5060c980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038b8116919091179091556040515f918a16908990611296908990612963565b5f6040518083038185875af1925050503d805f81146112d0576040519150601f19603f3d011682016040523d82523d5f602084013e6112d5565b606091505b505060c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790559050801561136d575f83815260fa602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555184917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2611398565b60405183907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f905f90a25b50505050505050505050565b6113ac61186d565b6113b9848484843361195c565b50505050565b6113c7610559565b80156113d8576113d5611e69565b50565b6113d5611ee1565b5f54610100900460ff16158080156113fe57505f54600160ff909116105b806114175750303b15801561141757505f5460ff166001145b6114895760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105af565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156114e5575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038316158061150257506001600160a01b038216155b8061151457506001600160a01b038416155b1561154b576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61156973530000000000000000000000000000000000000785611f38565b60fd80546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fe805492851692909116919091179055600360ff8190556040517fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b916115f2915f9190918252602082015260400190565b60405180910390a180156113b9575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b611669610559565b6001600160a01b0381166116e55760405162461bcd60e51b815260206004820152602360248201527f726f6c6c757020616464726573732063616e6e6f74206265206164647265737360448201527f283029000000000000000000000000000000000000000000000000000000000060648201526084016105af565b60fd80546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f5272c8ad4bd643b1130291ea29bebd9b3bc583057a6e4d047eb7077039a956309101610801565b60fe54604080517ffd0ad31e00000000000000000000000000000000000000000000000000000000815290515f926001600160a01b03169163fd0ad31e9160048083019260209291908290030181865afa1580156117b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117db919061285c565b905090565b6117e8610559565b6001600160a01b0381166118645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105af565b6113d581611da8565b60655460ff16156105b85760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105af565b606085858585856040516024016118db95949392919061297e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8ef1332e00000000000000000000000000000000000000000000000000000000179052905095945050505050565b611964612050565b60fe5460ca54604080517ffd0ad31e00000000000000000000000000000000000000000000000000000000815290516001600160a01b0393841693909216915f91849163fd0ad31e916004808201926020929091908290030181865afa1580156119d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f4919061285c565b90505f611a04338a8a858b6118c0565b90505f6001600160a01b038516633e4cbbe6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018a9052604401602060405180830381865afa158015611a78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9c919061285c565b9050611aa889826129c0565b341015611af75760405162461bcd60e51b815260206004820152601660248201527f496e73756666696369656e74206d73672e76616c75650000000000000000000060448201526064016105af565b8015611b9f5760cb546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611b47576040519150601f19603f3d011682016040523d82523d5f602084013e611b4c565b606091505b5050905080611b9d5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f206465647563742074686520666565000000000000000060448201526064016105af565b505b6040517f9b1597820000000000000000000000000000000000000000000000000000000081526001600160a01b03861690639b15978290611be89087908b9087906004016129f8565b5f604051808303815f87803b158015611bff575f80fd5b505af1158015611c11573d5f803e3d5ffd5b505050505f8280519060200120905060fb5f8281526020019081526020015f20545f14611c805760405162461bcd60e51b815260206004820152601260248201527f4475706c696361746564206d657373616765000000000000000000000000000060448201526064016105af565b5f81815260fb602052604090204290556001600160a01b038b16336001600160a01b03167f104371f3b442861a2a7b82a070afbbaab748bb13757bf47769e170e37809ec1e8c878c8e604051611cd99493929190612a1f565b60405180910390a3348290038a8103908b14611d90575f886001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611d38576040519150601f19603f3d011682016040523d82523d5f602084013e611d3d565b606091505b5050905080611d8e5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f20726566756e642074686520666565000000000000000060448201526064016105af565b505b50505050505050611da16001609755565b5050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b306001600160a01b038216036113d55760405162461bcd60e51b815260206004820152601e60248201527f4d657373656e6765723a20466f7262696420746f2063616c6c2073656c66000060448201526064016105af565b611e7161186d565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611ec43390565b6040516001600160a01b03909116815260200160405180910390a1565b611ee96120b0565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ec4565b5f54610100900460ff16611fb45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b611fbc612102565b611fc4612186565b611fcc61220a565b60c980547fffffffffffffffffffffffff000000000000000000000000000000000000000090811661dead1790915560ca80546001600160a01b038581169190931617905581161561204c5760cb80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790555b5050565b6002609754036120a25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105af565b6002609755565b6001609755565b60655460ff166105b85760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105af565b5f54610100900460ff1661217e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b6105b861228e565b5f54610100900460ff166122025760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b6105b8612313565b5f54610100900460ff166122865760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b6105b86123b9565b5f54610100900460ff1661230a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b6105b833611da8565b5f54610100900460ff1661238f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff166120a95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105af565b5f60208284031215612445575f80fd5b5035919050565b80356001600160a01b0381168114612462575f80fd5b919050565b5f60208284031215612477575f80fd5b6124808261244c565b9392505050565b806104008101831015612498575f80fd5b92915050565b5f805f8061046085870312156124b2575f80fd5b843593506124c38660208701612487565b939693955050505061042082013591610440013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112612516575f80fd5b813567ffffffffffffffff80821115612531576125316124da565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612577576125776124da565b8160405283815286602085880101111561258f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f805f805f60e0888a0312156125c4575f80fd5b6125cd8861244c565b96506125db6020890161244c565b95506040880135945060608801359350608088013567ffffffffffffffff811115612604575f80fd5b6126108a828b01612507565b93505060a088013563ffffffff81168114612629575f80fd5b915061263760c0890161244c565b905092959891949750929550565b5f805f805f8060a0878903121561265a575f80fd5b6126638761244c565b955060208701359450604087013567ffffffffffffffff80821115612686575f80fd5b818901915089601f830112612699575f80fd5b8135818111156126a7575f80fd5b8a60208285010111156126b8575f80fd5b602083019650809550505050606087013591506126d76080880161244c565b90509295509295509295565b5f805f805f805f6104c0888a0312156126fa575f80fd5b6127038861244c565b96506127116020890161244c565b95506040880135945060608801359350608088013567ffffffffffffffff81111561273a575f80fd5b6127468a828b01612507565b9350506127568960a08a01612487565b91506104a0880135905092959891949750929550565b5f805f806080858703121561277f575f80fd5b6127888561244c565b935060208501359250604085013567ffffffffffffffff8111156127aa575f80fd5b6127b687828801612507565b949793965093946060013593505050565b80151581146113d5575f80fd5b5f602082840312156127e4575f80fd5b8135612480816127c7565b5f805f60608486031215612801575f80fd5b61280a8461244c565b92506128186020850161244c565b91506128266040850161244c565b90509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020828403121561286c575f80fd5b5051919050565b5f5b8381101561288d578181015183820152602001612875565b50505f910152565b5f81518084526128ac816020860160208601612873565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6001600160a01b038416815263ffffffff83166020820152606060408201525f61290b6060830184612895565b95945050505050565b84815283602082015263ffffffff83166040820152608060608201525f61293e6080830184612895565b9695505050505050565b5f60208284031215612958575f80fd5b8151612480816127c7565b5f8251612974818460208701612873565b9190910192915050565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526129b560a0830184612895565b979650505050505050565b80820180821115612498577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61290b6060830184612895565b848152836020820152826040820152608060608201525f61293e608083018461289556fea164736f6c6343000818000a", } // L1CrossDomainMessengerABI is the input ABI used to generate the binding from. @@ -202,6 +202,37 @@ func (_L1CrossDomainMessenger *L1CrossDomainMessengerTransactorRaw) Transact(opt return _L1CrossDomainMessenger.Contract.contract.Transact(opts, method, params...) } +// IsL1MessageDropped is a free data retrieval call binding the contract method 0x05804dd7. +// +// Solidity: function __isL1MessageDropped(bytes32 ) view returns(bool) +func (_L1CrossDomainMessenger *L1CrossDomainMessengerCaller) IsL1MessageDropped(opts *bind.CallOpts, arg0 [32]byte) (bool, error) { + var out []interface{} + err := _L1CrossDomainMessenger.contract.Call(opts, &out, "__isL1MessageDropped", arg0) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsL1MessageDropped is a free data retrieval call binding the contract method 0x05804dd7. +// +// Solidity: function __isL1MessageDropped(bytes32 ) view returns(bool) +func (_L1CrossDomainMessenger *L1CrossDomainMessengerSession) IsL1MessageDropped(arg0 [32]byte) (bool, error) { + return _L1CrossDomainMessenger.Contract.IsL1MessageDropped(&_L1CrossDomainMessenger.CallOpts, arg0) +} + +// IsL1MessageDropped is a free data retrieval call binding the contract method 0x05804dd7. +// +// Solidity: function __isL1MessageDropped(bytes32 ) view returns(bool) +func (_L1CrossDomainMessenger *L1CrossDomainMessengerCallerSession) IsL1MessageDropped(arg0 [32]byte) (bool, error) { + return _L1CrossDomainMessenger.Contract.IsL1MessageDropped(&_L1CrossDomainMessenger.CallOpts, arg0) +} + // Counterpart is a free data retrieval call binding the contract method 0x797594b0. // // Solidity: function counterpart() view returns(address) @@ -295,37 +326,6 @@ func (_L1CrossDomainMessenger *L1CrossDomainMessengerCallerSession) FinalizedWit return _L1CrossDomainMessenger.Contract.FinalizedWithdrawals(&_L1CrossDomainMessenger.CallOpts, arg0) } -// IsL1MessageDropped is a free data retrieval call binding the contract method 0xb604bf4c. -// -// Solidity: function isL1MessageDropped(bytes32 ) view returns(bool) -func (_L1CrossDomainMessenger *L1CrossDomainMessengerCaller) IsL1MessageDropped(opts *bind.CallOpts, arg0 [32]byte) (bool, error) { - var out []interface{} - err := _L1CrossDomainMessenger.contract.Call(opts, &out, "isL1MessageDropped", arg0) - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// IsL1MessageDropped is a free data retrieval call binding the contract method 0xb604bf4c. -// -// Solidity: function isL1MessageDropped(bytes32 ) view returns(bool) -func (_L1CrossDomainMessenger *L1CrossDomainMessengerSession) IsL1MessageDropped(arg0 [32]byte) (bool, error) { - return _L1CrossDomainMessenger.Contract.IsL1MessageDropped(&_L1CrossDomainMessenger.CallOpts, arg0) -} - -// IsL1MessageDropped is a free data retrieval call binding the contract method 0xb604bf4c. -// -// Solidity: function isL1MessageDropped(bytes32 ) view returns(bool) -func (_L1CrossDomainMessenger *L1CrossDomainMessengerCallerSession) IsL1MessageDropped(arg0 [32]byte) (bool, error) { - return _L1CrossDomainMessenger.Contract.IsL1MessageDropped(&_L1CrossDomainMessenger.CallOpts, arg0) -} - // MaxReplayTimes is a free data retrieval call binding the contract method 0x946130d8. // // Solidity: function maxReplayTimes() view returns(uint256) @@ -681,27 +681,6 @@ func (_L1CrossDomainMessenger *L1CrossDomainMessengerCallerSession) XDomainMessa return _L1CrossDomainMessenger.Contract.XDomainMessageSender(&_L1CrossDomainMessenger.CallOpts) } -// DropMessage is a paid mutator transaction binding the contract method 0x29907acd. -// -// Solidity: function dropMessage(address _from, address _to, uint256 _value, uint256 _messageNonce, bytes _message) returns() -func (_L1CrossDomainMessenger *L1CrossDomainMessengerTransactor) DropMessage(opts *bind.TransactOpts, _from common.Address, _to common.Address, _value *big.Int, _messageNonce *big.Int, _message []byte) (*types.Transaction, error) { - return _L1CrossDomainMessenger.contract.Transact(opts, "dropMessage", _from, _to, _value, _messageNonce, _message) -} - -// DropMessage is a paid mutator transaction binding the contract method 0x29907acd. -// -// Solidity: function dropMessage(address _from, address _to, uint256 _value, uint256 _messageNonce, bytes _message) returns() -func (_L1CrossDomainMessenger *L1CrossDomainMessengerSession) DropMessage(_from common.Address, _to common.Address, _value *big.Int, _messageNonce *big.Int, _message []byte) (*types.Transaction, error) { - return _L1CrossDomainMessenger.Contract.DropMessage(&_L1CrossDomainMessenger.TransactOpts, _from, _to, _value, _messageNonce, _message) -} - -// DropMessage is a paid mutator transaction binding the contract method 0x29907acd. -// -// Solidity: function dropMessage(address _from, address _to, uint256 _value, uint256 _messageNonce, bytes _message) returns() -func (_L1CrossDomainMessenger *L1CrossDomainMessengerTransactorSession) DropMessage(_from common.Address, _to common.Address, _value *big.Int, _messageNonce *big.Int, _message []byte) (*types.Transaction, error) { - return _L1CrossDomainMessenger.Contract.DropMessage(&_L1CrossDomainMessenger.TransactOpts, _from, _to, _value, _messageNonce, _message) -} - // Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. // // Solidity: function initialize(address _feeVault, address _rollup, address _messageQueue) returns() @@ -954,150 +933,6 @@ func (_L1CrossDomainMessenger *L1CrossDomainMessengerTransactorSession) Receive( return _L1CrossDomainMessenger.Contract.Receive(&_L1CrossDomainMessenger.TransactOpts) } -// L1CrossDomainMessengerDropMessageIterator is returned from FilterDropMessage and is used to iterate over the raw logs and unpacked data for DropMessage events raised by the L1CrossDomainMessenger contract. -type L1CrossDomainMessengerDropMessageIterator struct { - Event *L1CrossDomainMessengerDropMessage // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *L1CrossDomainMessengerDropMessageIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(L1CrossDomainMessengerDropMessage) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(L1CrossDomainMessengerDropMessage) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *L1CrossDomainMessengerDropMessageIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *L1CrossDomainMessengerDropMessageIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// L1CrossDomainMessengerDropMessage represents a DropMessage event raised by the L1CrossDomainMessenger contract. -type L1CrossDomainMessengerDropMessage struct { - Nonce *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterDropMessage is a free log retrieval operation binding the contract event 0xbd05aabbf548001ebdd6ac80c02f1cfb3b39165f2fae1d420075f22e781ef63b. -// -// Solidity: event DropMessage(uint256 indexed nonce) -func (_L1CrossDomainMessenger *L1CrossDomainMessengerFilterer) FilterDropMessage(opts *bind.FilterOpts, nonce []*big.Int) (*L1CrossDomainMessengerDropMessageIterator, error) { - - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _L1CrossDomainMessenger.contract.FilterLogs(opts, "DropMessage", nonceRule) - if err != nil { - return nil, err - } - return &L1CrossDomainMessengerDropMessageIterator{contract: _L1CrossDomainMessenger.contract, event: "DropMessage", logs: logs, sub: sub}, nil -} - -// WatchDropMessage is a free log subscription operation binding the contract event 0xbd05aabbf548001ebdd6ac80c02f1cfb3b39165f2fae1d420075f22e781ef63b. -// -// Solidity: event DropMessage(uint256 indexed nonce) -func (_L1CrossDomainMessenger *L1CrossDomainMessengerFilterer) WatchDropMessage(opts *bind.WatchOpts, sink chan<- *L1CrossDomainMessengerDropMessage, nonce []*big.Int) (event.Subscription, error) { - - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _L1CrossDomainMessenger.contract.WatchLogs(opts, "DropMessage", nonceRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(L1CrossDomainMessengerDropMessage) - if err := _L1CrossDomainMessenger.contract.UnpackLog(event, "DropMessage", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseDropMessage is a log parse operation binding the contract event 0xbd05aabbf548001ebdd6ac80c02f1cfb3b39165f2fae1d420075f22e781ef63b. -// -// Solidity: event DropMessage(uint256 indexed nonce) -func (_L1CrossDomainMessenger *L1CrossDomainMessengerFilterer) ParseDropMessage(log types.Log) (*L1CrossDomainMessengerDropMessage, error) { - event := new(L1CrossDomainMessengerDropMessage) - if err := _L1CrossDomainMessenger.contract.UnpackLog(event, "DropMessage", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - // L1CrossDomainMessengerFailedRelayedMessageIterator is returned from FilterFailedRelayedMessage and is used to iterate over the raw logs and unpacked data for FailedRelayedMessage events raised by the L1CrossDomainMessenger contract. type L1CrossDomainMessengerFailedRelayedMessageIterator struct { Event *L1CrossDomainMessengerFailedRelayedMessage // Event containing the contract specifics and raw log diff --git a/bindings/bindings/l1crossdomainmessenger_more.go b/bindings/bindings/l1crossdomainmessenger_more.go index 558c5cf37..2cd2a6c10 100644 --- a/bindings/bindings/l1crossdomainmessenger_more.go +++ b/bindings/bindings/l1crossdomainmessenger_more.go @@ -9,11 +9,11 @@ import ( "morph-l2/bindings/solc" ) -const L1CrossDomainMessengerStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1023_storage\"},{\"astId\":1003,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1022_storage\"},{\"astId\":1005,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"_paused\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_bool\"},{\"astId\":1006,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_uint256)1022_storage\"},{\"astId\":1007,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"_status\",\"offset\":0,\"slot\":\"151\",\"type\":\"t_uint256\"},{\"astId\":1008,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"152\",\"type\":\"t_array(t_uint256)1022_storage\"},{\"astId\":1009,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"xDomainMessageSender\",\"offset\":0,\"slot\":\"201\",\"type\":\"t_address\"},{\"astId\":1010,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"counterpart\",\"offset\":0,\"slot\":\"202\",\"type\":\"t_address\"},{\"astId\":1011,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"feeVault\",\"offset\":0,\"slot\":\"203\",\"type\":\"t_address\"},{\"astId\":1012,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"204\",\"type\":\"t_array(t_uint256)1021_storage\"},{\"astId\":1013,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"finalizedWithdrawals\",\"offset\":0,\"slot\":\"250\",\"type\":\"t_mapping(t_bytes32,t_bool)\"},{\"astId\":1014,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"messageSendTimestamp\",\"offset\":0,\"slot\":\"251\",\"type\":\"t_mapping(t_bytes32,t_uint256)\"},{\"astId\":1015,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"isL1MessageDropped\",\"offset\":0,\"slot\":\"252\",\"type\":\"t_mapping(t_bytes32,t_bool)\"},{\"astId\":1016,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"rollup\",\"offset\":0,\"slot\":\"253\",\"type\":\"t_address\"},{\"astId\":1017,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"messageQueue\",\"offset\":0,\"slot\":\"254\",\"type\":\"t_address\"},{\"astId\":1018,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"maxReplayTimes\",\"offset\":0,\"slot\":\"255\",\"type\":\"t_uint256\"},{\"astId\":1019,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"replayStates\",\"offset\":0,\"slot\":\"256\",\"type\":\"t_mapping(t_bytes32,t_struct(ReplayState)1024_storage)\"},{\"astId\":1020,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"prevReplayIndex\",\"offset\":0,\"slot\":\"257\",\"type\":\"t_mapping(t_uint256,t_uint256)\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_uint256)1021_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[46]\",\"numberOfBytes\":\"1472\"},\"t_array(t_uint256)1022_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1023_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_bytes32,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_bool\"},\"t_mapping(t_bytes32,t_struct(ReplayState)1024_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e struct L1CrossDomainMessenger.ReplayState)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_struct(ReplayState)1024_storage\"},\"t_mapping(t_bytes32,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_uint256\"},\"t_mapping(t_uint256,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_uint256\"},\"t_struct(ReplayState)1024_storage\":{\"encoding\":\"inplace\",\"label\":\"struct L1CrossDomainMessenger.ReplayState\",\"numberOfBytes\":\"32\"},\"t_uint128\":{\"encoding\":\"inplace\",\"label\":\"uint128\",\"numberOfBytes\":\"16\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" +const L1CrossDomainMessengerStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1023_storage\"},{\"astId\":1003,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1022_storage\"},{\"astId\":1005,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"_paused\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_bool\"},{\"astId\":1006,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_uint256)1022_storage\"},{\"astId\":1007,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"_status\",\"offset\":0,\"slot\":\"151\",\"type\":\"t_uint256\"},{\"astId\":1008,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"152\",\"type\":\"t_array(t_uint256)1022_storage\"},{\"astId\":1009,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"xDomainMessageSender\",\"offset\":0,\"slot\":\"201\",\"type\":\"t_address\"},{\"astId\":1010,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"counterpart\",\"offset\":0,\"slot\":\"202\",\"type\":\"t_address\"},{\"astId\":1011,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"feeVault\",\"offset\":0,\"slot\":\"203\",\"type\":\"t_address\"},{\"astId\":1012,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"204\",\"type\":\"t_array(t_uint256)1021_storage\"},{\"astId\":1013,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"finalizedWithdrawals\",\"offset\":0,\"slot\":\"250\",\"type\":\"t_mapping(t_bytes32,t_bool)\"},{\"astId\":1014,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"messageSendTimestamp\",\"offset\":0,\"slot\":\"251\",\"type\":\"t_mapping(t_bytes32,t_uint256)\"},{\"astId\":1015,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"__isL1MessageDropped\",\"offset\":0,\"slot\":\"252\",\"type\":\"t_mapping(t_bytes32,t_bool)\"},{\"astId\":1016,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"rollup\",\"offset\":0,\"slot\":\"253\",\"type\":\"t_address\"},{\"astId\":1017,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"messageQueue\",\"offset\":0,\"slot\":\"254\",\"type\":\"t_address\"},{\"astId\":1018,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"maxReplayTimes\",\"offset\":0,\"slot\":\"255\",\"type\":\"t_uint256\"},{\"astId\":1019,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"replayStates\",\"offset\":0,\"slot\":\"256\",\"type\":\"t_mapping(t_bytes32,t_struct(ReplayState)1024_storage)\"},{\"astId\":1020,\"contract\":\"contracts/l1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger\",\"label\":\"prevReplayIndex\",\"offset\":0,\"slot\":\"257\",\"type\":\"t_mapping(t_uint256,t_uint256)\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_uint256)1021_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[46]\",\"numberOfBytes\":\"1472\"},\"t_array(t_uint256)1022_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1023_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_bytes32,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_bool\"},\"t_mapping(t_bytes32,t_struct(ReplayState)1024_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e struct L1CrossDomainMessenger.ReplayState)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_struct(ReplayState)1024_storage\"},\"t_mapping(t_bytes32,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_uint256\"},\"t_mapping(t_uint256,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_uint256\"},\"t_struct(ReplayState)1024_storage\":{\"encoding\":\"inplace\",\"label\":\"struct L1CrossDomainMessenger.ReplayState\",\"numberOfBytes\":\"32\"},\"t_uint128\":{\"encoding\":\"inplace\",\"label\":\"uint128\",\"numberOfBytes\":\"16\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" var L1CrossDomainMessengerStorageLayout = new(solc.StorageLayout) -var L1CrossDomainMessengerDeployedBin = "0x6080604052600436106101a7575f3560e01c806386fa4b73116100e7578063c0c53b8b11610087578063e70fc93b11610062578063e70fc93b14610554578063ea7ec5141461057f578063ecc70428146105ab578063f2fde38b146105bf575f80fd5b8063c0c53b8b146104ea578063cb23bcb514610509578063d87e7df114610535575f80fd5b8063a14238e7116100c2578063a14238e71461045c578063b2267a7b1461048a578063b604bf4c1461049d578063bedb86fb146104cb575f80fd5b806386fa4b73146103f05780638da5cb5b1461040f578063946130d814610439575f80fd5b806355004105116101525780636e296e451161012d5780636e296e4514610305578063715018a614610331578063797594b014610345578063846d4d7a14610371575f80fd5b806355004105146102c85780635c975abb146102db5780635f7b1577146102f2575f80fd5b80633b70c18a116101825780633b70c18a1461022c578063407c19551461027d578063478222c21461029c575f80fd5b806329907acd146101ba5780632a6cccb2146101d9578063340735f7146101f8575f80fd5b366101b6576101b46105de565b005b5f80fd5b3480156101c5575f80fd5b506101b46101d4366004612f3a565b610666565b3480156101e4575f80fd5b506101b46101f3366004612fa7565b610a88565b348015610203575f80fd5b50610217610212366004612fde565b610b83565b60405190151581526020015b60405180910390f35b348015610237575f80fd5b5060fe546102589073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610223565b348015610288575f80fd5b506101b461029736600461301a565b610c4c565b3480156102a7575f80fd5b5060cb546102589073ffffffffffffffffffffffffffffffffffffffff1681565b6101b46102d6366004613031565b610d29565b3480156102e6575f80fd5b5060655460ff16610217565b6101b46103003660046130c8565b61149c565b348015610310575f80fd5b5060c9546102589073ffffffffffffffffffffffffffffffffffffffff1681565b34801561033c575f80fd5b506101b46114f0565b348015610350575f80fd5b5060ca546102589073ffffffffffffffffffffffffffffffffffffffff1681565b34801561037c575f80fd5b506103c761038b36600461301a565b6101006020525f90815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b604080516fffffffffffffffffffffffffffffffff938416815292909116602083015201610223565b3480156103fb575f80fd5b506101b461040a366004613166565b611501565b34801561041a575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610258565b348015610444575f80fd5b5061044e60ff5481565b604051908152602001610223565b348015610467575f80fd5b5061021761047636600461301a565b60fa6020525f908152604090205460ff1681565b6101b46104983660046131ef565b611ac8565b3480156104a8575f80fd5b506102176104b736600461301a565b60fc6020525f908152604090205460ff1681565b3480156104d6575f80fd5b506101b46104e5366004613257565b611ae3565b3480156104f5575f80fd5b506101b4610504366004613272565b611b04565b348015610514575f80fd5b5060fd546102589073ffffffffffffffffffffffffffffffffffffffff1681565b348015610540575f80fd5b506101b461054f366004612fa7565b611dd3565b34801561055f575f80fd5b5061044e61056e36600461301a565b60fb6020525f908152604090205481565b34801561058a575f80fd5b5061044e61059936600461301a565b6101016020525f908152604090205481565b3480156105b6575f80fd5b5061044e611efd565b3480156105ca575f80fd5b506101b46105d9366004612fa7565b611f93565b60335473ffffffffffffffffffffffffffffffffffffffff163314610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b565b61066e612047565b60c95473ffffffffffffffffffffffffffffffffffffffff1661dead146106f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e00604482015260640161065b565b60fe5473ffffffffffffffffffffffffffffffffffffffff165f61071887878787876120b4565b90505f818051906020012090505f60fb5f8381526020019081526020015f2054116107c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e60448201527f7175657565640000000000000000000000000000000000000000000000000000606482015260840161065b565b5f81815260fc602052604090205460ff161561083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d65737361676520616c72656164792064726f70706564000000000000000000604482015260640161065b565b5f818152610100602052604081205470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff169081900361087d5750845b6040517f916524610000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff8516906391652461906024015f604051808303815f87803b1580156108e2575f80fd5b505af11580156108f4573d5f803e3d5ffd5b5050505f9182525061010160205260409020548015610934577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161087d565b5f82815260fc602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555187917fbd05aabbf548001ebdd6ac80c02f1cfb3b39165f2fae1d420075f22e781ef63b91a260c980547fffffffffffffffffffffffff000000000000000000000000000000000000000016736f297c61b5c92ef107ffd30cd56affe5a273e8411790556040517f14298c5100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a16906314298c51908990610a2390899060040161331d565b5f604051808303818588803b158015610a3a575f80fd5b505af1158015610a4c573d5f803e3d5ffd5b505060c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055505050505050505050505050565b610a906105de565b73ffffffffffffffffffffffffffffffffffffffff8116610b0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6665655661756c742063616e6e6f742062652061646472657373283029000000604482015260640161065b565b60cb805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f4aadc32827849f797733838c61302f7f56d2b6db28caa175eb3f7f8e5aba25f5905f90a35050565b5f84815b6020811015610c40578085901c600116600103610bed57858160208110610bb057610bb061332f565b602002013582604051602001610bd0929190918252602082015260400190565b604051602081830303815290604052805190602001209150610c38565b81868260208110610c0057610c0061332f565b6020020135604051602001610c1f929190918252602082015260400190565b6040516020818303038152906040528051906020012091505b600101610b87565b50909114949350505050565b610c546105de565b5f8111610ce3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f7265706c61792074696d6573206d75737420626520677265617465722074686160448201527f6e20300000000000000000000000000000000000000000000000000000000000606482015260840161065b565b60ff80549082905560408051828152602081018490527fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b91015b60405180910390a15050565b610d31612047565b60c95473ffffffffffffffffffffffffffffffffffffffff1661dead14610db4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e00604482015260640161065b565b60fe5460ca5473ffffffffffffffffffffffffffffffffffffffff91821691165f610de28a8a8a8a8a6120b4565b90505f818051906020012090505f60fb5f8381526020019081526020015f205411610e8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e60448201527f7175657565640000000000000000000000000000000000000000000000000000606482015260840161065b565b5f81815260fc602052604090205460ff1615610f07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d65737361676520616c72656164792064726f70706564000000000000000000604482015260640161065b565b6040517f3e4cbbe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c8116600483015263ffffffff881660248301525f9190861690633e4cbbe690604401602060405180830381865afa158015610f80573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa4919061335c565b905080341015611010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f496e73756666696369656e74206d73672e76616c756520666f72206665650000604482015260640161065b565b80156110df5760cb546040515f9173ffffffffffffffffffffffffffffffffffffffff169083908381818185875af1925050503d805f811461106d576040519150601f19603f3d011682016040523d82523d5f602084013e611072565b606091505b50509050806110dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4661696c656420746f2064656475637420746865206665650000000000000000604482015260640161065b565b505b5f8573ffffffffffffffffffffffffffffffffffffffff1663fd0ad31e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114d919061335c565b6040517f9b15978200000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff871690639b159782906111a69088908c908990600401613373565b5f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b5050505f848152610100602090815260408083208151808301909252546fffffffffffffffffffffffffffffffff8082168352700100000000000000000000000000000000909104169181018290529250900361123f575f8281526101016020526040902060018c019055611270565b80602001516001016fffffffffffffffffffffffffffffffff166101015f8481526020019081526020015f20819055505b6fffffffffffffffffffffffffffffffff808316602083015260ff548251909116106112f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f457863656564206d6178696d756d207265706c61792074696d65730000000000604482015260640161065b565b80516fffffffffffffffffffffffffffffffff600191909101811682525f8581526101006020908152604090912083519190930151821670010000000000000000000000000000000002911617905573ffffffffffffffffffffffffffffffffffffffff8c166113653390565b73ffffffffffffffffffffffffffffffffffffffff168b7fa3a1251805b1fc7915884575b42e1fb862e814f0f5c9d670d08bf84697053d618e858d8f6040516113b194939291906133b6565b60405180910390a43482810390831461148c575f8873ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f811461141a576040519150601f19603f3d011682016040523d82523d5f602084013e61141f565b606091505b505090508061148a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4661696c656420746f20726566756e6420746865206665650000000000000000604482015260640161065b565b505b5050505050505050505050505050565b6114a4612047565b6114e8868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508892508791506121509050565b505050505050565b6114f86105de565b6106645f61266c565b611509612047565b60c95473ffffffffffffffffffffffffffffffffffffffff1661dead1461158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e00604482015260640161065b565b60fe5473ffffffffffffffffffffffffffffffffffffffff90811690871603611637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d657373656e6765723a20466f7262696420746f2063616c6c206d657373616760448201527f6520717565756500000000000000000000000000000000000000000000000000606482015260840161065b565b611640866126e2565b60c95473ffffffffffffffffffffffffffffffffffffffff908116908816036116eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d657373656e6765723a20496e76616c6964206d6573736167652073656e646560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161065b565b5f6116f988888888886120b4565b80516020918201205f81815260fa90925260409091205490915060ff16156117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4d657373656e6765723a207769746864726177616c2068617320616c7265616460448201527f79206265656e2066696e616c697a656400000000000000000000000000000000606482015260840161065b565b60fd546040517f04d772150000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff909116905f9082906304d7721590602401602060405180830381865afa158015611814573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061183891906133ea565b9050806118c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d657373656e6765723a207769746864726177616c526f6f74206e6f7420666960448201527f6e616c697a656400000000000000000000000000000000000000000000000000606482015260840161065b565b6118d383868987610b83565b61195f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4d657373656e6765723a20696e76616c6964207769746864726177616c20696e60448201527f636c7573696f6e2070726f6f6600000000000000000000000000000000000000606482015260840161065b565b5060c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8b8116919091179091556040515f918a169089906119ba908990613405565b5f6040518083038185875af1925050503d805f81146119f4576040519150601f19603f3d011682016040523d82523d5f602084013e6119f9565b606091505b505060c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905590508015611a91575f83815260fa602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555184917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2611abc565b60405183907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f905f90a25b50505050505050505050565b611ad0612047565b611add8484848433612150565b50505050565b611aeb6105de565b8015611afc57611af9612761565b50565b611af96127e6565b5f54610100900460ff1615808015611b2257505f54600160ff909116105b80611b3b5750303b158015611b3b57505f5460ff166001145b611bc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161065b565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611c23575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff83161580611c5a575073ffffffffffffffffffffffffffffffffffffffff8216155b80611c79575073ffffffffffffffffffffffffffffffffffffffff8416155b15611cb0576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611cce7353000000000000000000000000000000000000078561283d565b60fd805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fe805492851692909116919091179055600360ff8190556040517fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b91611d64915f9190918252602082015260400190565b60405180910390a18015611add575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b611ddb6105de565b73ffffffffffffffffffffffffffffffffffffffff8116611e7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f726f6c6c757020616464726573732063616e6e6f74206265206164647265737360448201527f2830290000000000000000000000000000000000000000000000000000000000606482015260840161065b565b60fd805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f5272c8ad4bd643b1130291ea29bebd9b3bc583057a6e4d047eb7077039a956309101610d1d565b60fe54604080517ffd0ad31e00000000000000000000000000000000000000000000000000000000815290515f9273ffffffffffffffffffffffffffffffffffffffff169163fd0ad31e9160048083019260209291908290030181865afa158015611f6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f8e919061335c565b905090565b611f9b6105de565b73ffffffffffffffffffffffffffffffffffffffff811661203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161065b565b611af98161266c565b60655460ff1615610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161065b565b606085858585856040516024016120cf959493929190613420565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8ef1332e00000000000000000000000000000000000000000000000000000000179052905095945050505050565b612158612989565b60fe5460ca54604080517ffd0ad31e000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff93841693909216915f91849163fd0ad31e916004808201926020929091908290030181865afa1580156121d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f5919061335c565b90505f612205338a8a858b6120b4565b90505f73ffffffffffffffffffffffffffffffffffffffff8516633e4cbbe6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018a9052604401602060405180830381865afa158015612293573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122b7919061335c565b90506122c3898261346f565b34101561232c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e74206d73672e76616c756500000000000000000000604482015260640161065b565b80156123fb5760cb546040515f9173ffffffffffffffffffffffffffffffffffffffff169083908381818185875af1925050503d805f8114612389576040519150601f19603f3d011682016040523d82523d5f602084013e61238e565b606091505b50509050806123f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4661696c656420746f2064656475637420746865206665650000000000000000604482015260640161065b565b505b6040517f9b15978200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861690639b159782906124519087908b9087906004016134a7565b5f604051808303815f87803b158015612468575f80fd5b505af115801561247a573d5f803e3d5ffd5b505050505f8280519060200120905060fb5f8281526020019081526020015f20545f14612503576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4475706c696361746564206d6573736167650000000000000000000000000000604482015260640161065b565b5f81815260fb6020526040902042905573ffffffffffffffffffffffffffffffffffffffff8b163373ffffffffffffffffffffffffffffffffffffffff167f104371f3b442861a2a7b82a070afbbaab748bb13757bf47769e170e37809ec1e8c878c8e60405161257694939291906134db565b60405180910390a3348290038a8103908b14612654575f8873ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f81146125e2576040519150601f19603f3d011682016040523d82523d5f602084013e6125e7565b606091505b5050905080612652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4661696c656420746f20726566756e6420746865206665650000000000000000604482015260640161065b565b505b505050505050506126656001609755565b5050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b3073ffffffffffffffffffffffffffffffffffffffff821603611af9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4d657373656e6765723a20466f7262696420746f2063616c6c2073656c660000604482015260640161065b565b612769612047565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586127bc3390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6127ee612a03565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336127bc565b5f54610100900460ff166128d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161065b565b6128db612a6f565b6128e3612b0d565b6128eb612bab565b60c980547fffffffffffffffffffffffff000000000000000000000000000000000000000090811661dead1790915560ca805473ffffffffffffffffffffffffffffffffffffffff858116919093161790558116156129855760cb80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b5050565b6002609754036129f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161065b565b6002609755565b6001609755565b60655460ff16610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161065b565b5f54610100900460ff16612b05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161065b565b610664612c49565b5f54610100900460ff16612ba3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161065b565b610664612ce8565b5f54610100900460ff16612c41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161065b565b610664612da8565b5f54610100900460ff16612cdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161065b565b6106643361266c565b5f54610100900460ff16612d7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161065b565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff166129fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161065b565b803573ffffffffffffffffffffffffffffffffffffffff81168114612e61575f80fd5b919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112612ea2575f80fd5b813567ffffffffffffffff80821115612ebd57612ebd612e66565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612f0357612f03612e66565b81604052838152866020858801011115612f1b575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f805f60a08688031215612f4e575f80fd5b612f5786612e3e565b9450612f6560208701612e3e565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f8e575f80fd5b612f9a88828901612e93565b9150509295509295909350565b5f60208284031215612fb7575f80fd5b612fc082612e3e565b9392505050565b806104008101831015612fd8575f80fd5b92915050565b5f805f806104608587031215612ff2575f80fd5b843593506130038660208701612fc7565b939693955050505061042082013591610440013590565b5f6020828403121561302a575f80fd5b5035919050565b5f805f805f805f60e0888a031215613047575f80fd5b61305088612e3e565b965061305e60208901612e3e565b95506040880135945060608801359350608088013567ffffffffffffffff811115613087575f80fd5b6130938a828b01612e93565b93505060a088013563ffffffff811681146130ac575f80fd5b91506130ba60c08901612e3e565b905092959891949750929550565b5f805f805f8060a087890312156130dd575f80fd5b6130e687612e3e565b955060208701359450604087013567ffffffffffffffff80821115613109575f80fd5b818901915089601f83011261311c575f80fd5b81358181111561312a575f80fd5b8a602082850101111561313b575f80fd5b6020830196508095505050506060870135915061315a60808801612e3e565b90509295509295509295565b5f805f805f805f6104c0888a03121561317d575f80fd5b61318688612e3e565b965061319460208901612e3e565b95506040880135945060608801359350608088013567ffffffffffffffff8111156131bd575f80fd5b6131c98a828b01612e93565b9350506131d98960a08a01612fc7565b91506104a0880135905092959891949750929550565b5f805f8060808587031215613202575f80fd5b61320b85612e3e565b935060208501359250604085013567ffffffffffffffff81111561322d575f80fd5b61323987828801612e93565b949793965093946060013593505050565b8015158114611af9575f80fd5b5f60208284031215613267575f80fd5b8135612fc08161324a565b5f805f60608486031215613284575f80fd5b61328d84612e3e565b925061329b60208501612e3e565b91506132a960408501612e3e565b90509250925092565b5f5b838110156132cc5781810151838201526020016132b4565b50505f910152565b5f81518084526132eb8160208601602086016132b2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f612fc060208301846132d4565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020828403121561336c575f80fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff83166020820152606060408201525f6133ad60608301846132d4565b95945050505050565b84815283602082015263ffffffff83166040820152608060608201525f6133e060808301846132d4565b9695505050505050565b5f602082840312156133fa575f80fd5b8151612fc08161324a565b5f82516134168184602087016132b2565b9190910192915050565b5f73ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a0608083015261346460a08301846132d4565b979650505050505050565b80820180821115612fd8577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f6133ad60608301846132d4565b848152836020820152826040820152608060608201525f6133e060808301846132d456fea164736f6c6343000818000a" +var L1CrossDomainMessengerDeployedBin = "0x60806040526004361061019c575f3560e01c806386fa4b73116100dc578063c0c53b8b11610087578063e70fc93b11610062578063e70fc93b1461052a578063ea7ec51414610555578063ecc7042814610581578063f2fde38b14610595575f80fd5b8063c0c53b8b146104c0578063cb23bcb5146104df578063d87e7df11461050b575f80fd5b8063a14238e7116100b7578063a14238e714610460578063b2267a7b1461048e578063bedb86fb146104a1575f80fd5b806386fa4b73146103f45780638da5cb5b14610413578063946130d81461043d575f80fd5b806355004105116101475780636e296e45116101225780636e296e4514610309578063715018a614610335578063797594b014610349578063846d4d7a14610375575f80fd5b806355004105146102cc5780635c975abb146102df5780635f7b1577146102f6575f80fd5b80633b70c18a116101775780633b70c18a14610230578063407c195514610281578063478222c2146102a0575f80fd5b806305804dd7146101af5780632a6cccb2146101f2578063340735f714610211575f80fd5b366101ab576101a96105b4565b005b5f80fd5b3480156101ba575f80fd5b506101dd6101c93660046129f2565b60fc6020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156101fd575f80fd5b506101a961020c366004612a31565b61063c565b34801561021c575f80fd5b506101dd61022b366004612a68565b610737565b34801561023b575f80fd5b5060fe5461025c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e9565b34801561028c575f80fd5b506101a961029b3660046129f2565b610800565b3480156102ab575f80fd5b5060cb5461025c9073ffffffffffffffffffffffffffffffffffffffff1681565b6101a96102da366004612b78565b6108dd565b3480156102ea575f80fd5b5060655460ff166101dd565b6101a9610304366004612c0f565b611050565b348015610314575f80fd5b5060c95461025c9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610340575f80fd5b506101a96110a4565b348015610354575f80fd5b5060ca5461025c9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610380575f80fd5b506103cb61038f3660046129f2565b6101006020525f90815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b604080516fffffffffffffffffffffffffffffffff9384168152929091166020830152016101e9565b3480156103ff575f80fd5b506101a961040e366004612cad565b6110b5565b34801561041e575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661025c565b348015610448575f80fd5b5061045260ff5481565b6040519081526020016101e9565b34801561046b575f80fd5b506101dd61047a3660046129f2565b60fa6020525f908152604090205460ff1681565b6101a961049c366004612d36565b61167c565b3480156104ac575f80fd5b506101a96104bb366004612d9e565b611697565b3480156104cb575f80fd5b506101a96104da366004612db9565b6116b8565b3480156104ea575f80fd5b5060fd5461025c9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610516575f80fd5b506101a9610525366004612a31565b611987565b348015610535575f80fd5b506104526105443660046129f2565b60fb6020525f908152604090205481565b348015610560575f80fd5b5061045261056f3660046129f2565b6101016020525f908152604090205481565b34801561058c575f80fd5b50610452611ab1565b3480156105a0575f80fd5b506101a96105af366004612a31565b611b47565b60335473ffffffffffffffffffffffffffffffffffffffff16331461063a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b565b6106446105b4565b73ffffffffffffffffffffffffffffffffffffffff81166106c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6665655661756c742063616e6e6f7420626520616464726573732830290000006044820152606401610631565b60cb805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f4aadc32827849f797733838c61302f7f56d2b6db28caa175eb3f7f8e5aba25f5905f90a35050565b5f84815b60208110156107f4578085901c6001166001036107a15785816020811061076457610764612df9565b602002013582604051602001610784929190918252602082015260400190565b6040516020818303038152906040528051906020012091506107ec565b818682602081106107b4576107b4612df9565b60200201356040516020016107d3929190918252602082015260400190565b6040516020818303038152906040528051906020012091505b60010161073b565b50909114949350505050565b6108086105b4565b5f8111610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f7265706c61792074696d6573206d75737420626520677265617465722074686160448201527f6e203000000000000000000000000000000000000000000000000000000000006064820152608401610631565b60ff80549082905560408051828152602081018490527fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b91015b60405180910390a15050565b6108e5611bfb565b60c95473ffffffffffffffffffffffffffffffffffffffff1661dead14610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e006044820152606401610631565b60fe5460ca5473ffffffffffffffffffffffffffffffffffffffff91821691165f6109968a8a8a8a8a611c68565b90505f818051906020012090505f60fb5f8381526020019081526020015f205411610a43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e60448201527f71756575656400000000000000000000000000000000000000000000000000006064820152608401610631565b5f81815260fc602052604090205460ff1615610abb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d65737361676520616c72656164792064726f707065640000000000000000006044820152606401610631565b6040517f3e4cbbe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c8116600483015263ffffffff881660248301525f9190861690633e4cbbe690604401602060405180830381865afa158015610b34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b589190612e26565b905080341015610bc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f496e73756666696369656e74206d73672e76616c756520666f722066656500006044820152606401610631565b8015610c935760cb546040515f9173ffffffffffffffffffffffffffffffffffffffff169083908381818185875af1925050503d805f8114610c21576040519150601f19603f3d011682016040523d82523d5f602084013e610c26565b606091505b5050905080610c91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4661696c656420746f20646564756374207468652066656500000000000000006044820152606401610631565b505b5f8573ffffffffffffffffffffffffffffffffffffffff1663fd0ad31e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d019190612e26565b6040517f9b15978200000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff871690639b15978290610d5a9088908c908990600401612ea8565b5f604051808303815f87803b158015610d71575f80fd5b505af1158015610d83573d5f803e3d5ffd5b5050505f848152610100602090815260408083208151808301909252546fffffffffffffffffffffffffffffffff80821683527001000000000000000000000000000000009091041691810182905292509003610df3575f8281526101016020526040902060018c019055610e24565b80602001516001016fffffffffffffffffffffffffffffffff166101015f8481526020019081526020015f20819055505b6fffffffffffffffffffffffffffffffff808316602083015260ff54825190911610610eac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f457863656564206d6178696d756d207265706c61792074696d657300000000006044820152606401610631565b80516fffffffffffffffffffffffffffffffff600191909101811682525f8581526101006020908152604090912083519190930151821670010000000000000000000000000000000002911617905573ffffffffffffffffffffffffffffffffffffffff8c16610f193390565b73ffffffffffffffffffffffffffffffffffffffff168b7fa3a1251805b1fc7915884575b42e1fb862e814f0f5c9d670d08bf84697053d618e858d8f604051610f659493929190612eeb565b60405180910390a434828103908314611040575f8873ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114610fce576040519150601f19603f3d011682016040523d82523d5f602084013e610fd3565b606091505b505090508061103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4661696c656420746f20726566756e64207468652066656500000000000000006044820152606401610631565b505b5050505050505050505050505050565b611058611bfb565b61109c868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250879150611d049050565b505050505050565b6110ac6105b4565b61063a5f612220565b6110bd611bfb565b60c95473ffffffffffffffffffffffffffffffffffffffff1661dead14611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d65737361676520697320616c726561647920696e20657865637574696f6e006044820152606401610631565b60fe5473ffffffffffffffffffffffffffffffffffffffff908116908716036111eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d657373656e6765723a20466f7262696420746f2063616c6c206d657373616760448201527f65207175657565000000000000000000000000000000000000000000000000006064820152608401610631565b6111f486612296565b60c95473ffffffffffffffffffffffffffffffffffffffff9081169088160361129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d657373656e6765723a20496e76616c6964206d6573736167652073656e646560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610631565b5f6112ad8888888888611c68565b80516020918201205f81815260fa90925260409091205490915060ff1615611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4d657373656e6765723a207769746864726177616c2068617320616c7265616460448201527f79206265656e2066696e616c697a6564000000000000000000000000000000006064820152608401610631565b60fd546040517f04d772150000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff909116905f9082906304d7721590602401602060405180830381865afa1580156113c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ec9190612f1f565b90508061147b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d657373656e6765723a207769746864726177616c526f6f74206e6f7420666960448201527f6e616c697a6564000000000000000000000000000000000000000000000000006064820152608401610631565b61148783868987610737565b611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4d657373656e6765723a20696e76616c6964207769746864726177616c20696e60448201527f636c7573696f6e2070726f6f66000000000000000000000000000000000000006064820152608401610631565b5060c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8b8116919091179091556040515f918a1690899061156e908990612f3a565b5f6040518083038185875af1925050503d805f81146115a8576040519150601f19603f3d011682016040523d82523d5f602084013e6115ad565b606091505b505060c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905590508015611645575f83815260fa602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555184917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2611670565b60405183907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f905f90a25b50505050505050505050565b611684611bfb565b6116918484848433611d04565b50505050565b61169f6105b4565b80156116b0576116ad612315565b50565b6116ad61239a565b5f54610100900460ff16158080156116d657505f54600160ff909116105b806116ef5750303b1580156116ef57505f5460ff166001145b61177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610631565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156117d7575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8316158061180e575073ffffffffffffffffffffffffffffffffffffffff8216155b8061182d575073ffffffffffffffffffffffffffffffffffffffff8416155b15611864576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611882735300000000000000000000000000000000000007856123f1565b60fd805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fe805492851692909116919091179055600360ff8190556040517fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b91611918915f9190918252602082015260400190565b60405180910390a18015611691575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b61198f6105b4565b73ffffffffffffffffffffffffffffffffffffffff8116611a32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f726f6c6c757020616464726573732063616e6e6f74206265206164647265737360448201527f28302900000000000000000000000000000000000000000000000000000000006064820152608401610631565b60fd805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f5272c8ad4bd643b1130291ea29bebd9b3bc583057a6e4d047eb7077039a9563091016108d1565b60fe54604080517ffd0ad31e00000000000000000000000000000000000000000000000000000000815290515f9273ffffffffffffffffffffffffffffffffffffffff169163fd0ad31e9160048083019260209291908290030181865afa158015611b1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b429190612e26565b905090565b611b4f6105b4565b73ffffffffffffffffffffffffffffffffffffffff8116611bf2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610631565b6116ad81612220565b60655460ff161561063a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610631565b60608585858585604051602401611c83959493929190612f55565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8ef1332e00000000000000000000000000000000000000000000000000000000179052905095945050505050565b611d0c61253d565b60fe5460ca54604080517ffd0ad31e000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff93841693909216915f91849163fd0ad31e916004808201926020929091908290030181865afa158015611d85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611da99190612e26565b90505f611db9338a8a858b611c68565b90505f73ffffffffffffffffffffffffffffffffffffffff8516633e4cbbe6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018a9052604401602060405180830381865afa158015611e47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e6b9190612e26565b9050611e778982612fa4565b341015611ee0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e74206d73672e76616c7565000000000000000000006044820152606401610631565b8015611faf5760cb546040515f9173ffffffffffffffffffffffffffffffffffffffff169083908381818185875af1925050503d805f8114611f3d576040519150601f19603f3d011682016040523d82523d5f602084013e611f42565b606091505b5050905080611fad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4661696c656420746f20646564756374207468652066656500000000000000006044820152606401610631565b505b6040517f9b15978200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861690639b159782906120059087908b908790600401612fdc565b5f604051808303815f87803b15801561201c575f80fd5b505af115801561202e573d5f803e3d5ffd5b505050505f8280519060200120905060fb5f8281526020019081526020015f20545f146120b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4475706c696361746564206d65737361676500000000000000000000000000006044820152606401610631565b5f81815260fb6020526040902042905573ffffffffffffffffffffffffffffffffffffffff8b163373ffffffffffffffffffffffffffffffffffffffff167f104371f3b442861a2a7b82a070afbbaab748bb13757bf47769e170e37809ec1e8c878c8e60405161212a9493929190613010565b60405180910390a3348290038a8103908b14612208575f8873ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114612196576040519150601f19603f3d011682016040523d82523d5f602084013e61219b565b606091505b5050905080612206576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4661696c656420746f20726566756e64207468652066656500000000000000006044820152606401610631565b505b505050505050506122196001609755565b5050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b3073ffffffffffffffffffffffffffffffffffffffff8216036116ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4d657373656e6765723a20466f7262696420746f2063616c6c2073656c6600006044820152606401610631565b61231d611bfb565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123703390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6123a26125b7565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612370565b5f54610100900460ff16612487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610631565b61248f612623565b6124976126c1565b61249f61275f565b60c980547fffffffffffffffffffffffff000000000000000000000000000000000000000090811661dead1790915560ca805473ffffffffffffffffffffffffffffffffffffffff858116919093161790558116156125395760cb80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b5050565b6002609754036125a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610631565b6002609755565b6001609755565b60655460ff1661063a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610631565b5f54610100900460ff166126b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610631565b61063a6127fd565b5f54610100900460ff16612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610631565b61063a61289c565b5f54610100900460ff166127f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610631565b61063a61295c565b5f54610100900460ff16612893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610631565b61063a33612220565b5f54610100900460ff16612932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610631565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff166125b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610631565b5f60208284031215612a02575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612a2c575f80fd5b919050565b5f60208284031215612a41575f80fd5b612a4a82612a09565b9392505050565b806104008101831015612a62575f80fd5b92915050565b5f805f806104608587031215612a7c575f80fd5b84359350612a8d8660208701612a51565b939693955050505061042082013591610440013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112612ae0575f80fd5b813567ffffffffffffffff80821115612afb57612afb612aa4565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612b4157612b41612aa4565b81604052838152866020858801011115612b59575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f805f805f60e0888a031215612b8e575f80fd5b612b9788612a09565b9650612ba560208901612a09565b95506040880135945060608801359350608088013567ffffffffffffffff811115612bce575f80fd5b612bda8a828b01612ad1565b93505060a088013563ffffffff81168114612bf3575f80fd5b9150612c0160c08901612a09565b905092959891949750929550565b5f805f805f8060a08789031215612c24575f80fd5b612c2d87612a09565b955060208701359450604087013567ffffffffffffffff80821115612c50575f80fd5b818901915089601f830112612c63575f80fd5b813581811115612c71575f80fd5b8a6020828501011115612c82575f80fd5b60208301965080955050505060608701359150612ca160808801612a09565b90509295509295509295565b5f805f805f805f6104c0888a031215612cc4575f80fd5b612ccd88612a09565b9650612cdb60208901612a09565b95506040880135945060608801359350608088013567ffffffffffffffff811115612d04575f80fd5b612d108a828b01612ad1565b935050612d208960a08a01612a51565b91506104a0880135905092959891949750929550565b5f805f8060808587031215612d49575f80fd5b612d5285612a09565b935060208501359250604085013567ffffffffffffffff811115612d74575f80fd5b612d8087828801612ad1565b949793965093946060013593505050565b80151581146116ad575f80fd5b5f60208284031215612dae575f80fd5b8135612a4a81612d91565b5f805f60608486031215612dcb575f80fd5b612dd484612a09565b9250612de260208501612a09565b9150612df060408501612a09565b90509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215612e36575f80fd5b5051919050565b5f5b83811015612e57578181015183820152602001612e3f565b50505f910152565b5f8151808452612e76816020860160208601612e3d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff83166020820152606060408201525f612ee26060830184612e5f565b95945050505050565b84815283602082015263ffffffff83166040820152608060608201525f612f156080830184612e5f565b9695505050505050565b5f60208284031215612f2f575f80fd5b8151612a4a81612d91565b5f8251612f4b818460208701612e3d565b9190910192915050565b5f73ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a06080830152612f9960a0830184612e5f565b979650505050505050565b80820180821115612a62577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f612ee26060830184612e5f565b848152836020820152826040820152608060608201525f612f156080830184612e5f56fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L1CrossDomainMessengerStorageLayoutJSON), L1CrossDomainMessengerStorageLayout); err != nil { diff --git a/bindings/bindings/l1messagequeuewithgaspriceoracle.go b/bindings/bindings/l1messagequeuewithgaspriceoracle.go index 34bda65f5..fca2a8623 100644 --- a/bindings/bindings/l1messagequeuewithgaspriceoracle.go +++ b/bindings/bindings/l1messagequeuewithgaspriceoracle.go @@ -31,8 +31,8 @@ var ( // L1MessageQueueWithGasPriceOracleMetaData contains all meta data concerning the L1MessageQueueWithGasPriceOracle contract. var L1MessageQueueWithGasPriceOracleMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_enforcedTxGateway\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"DequeueTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"DropTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"queueIndex\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldGateway\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newGateway\",\"type\":\"address\"}],\"name\":\"UpdateEnforcedTxGateway\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldGasOracle\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newGasOracle\",\"type\":\"address\"}],\"name\":\"UpdateGasOracle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldL2BaseFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newL2BaseFee\",\"type\":\"uint256\"}],\"name\":\"UpdateL2BaseFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_oldMaxGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newMaxGasLimit\",\"type\":\"uint256\"}],\"name\":\"UpdateMaxGasLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldWhitelistChecker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newWhitelistChecker\",\"type\":\"address\"}],\"name\":\"UpdateWhitelistChecker\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ENFORCED_TX_GATEWAAY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROLLUP_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"appendCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"appendEnforcedTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"calculateIntrinsicGasFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"computeTransactionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"dropCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"estimateCrossDomainMessageFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"}],\"name\":\"getCrossDomainMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_whitelistChecker\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"}],\"name\":\"isMessageDropped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextCrossDomainMessageIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingQueueIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_startIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"popCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newL2BaseFee\",\"type\":\"uint256\"}],\"name\":\"setL2BaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newMaxGasLimit\",\"type\":\"uint256\"}],\"name\":\"updateMaxGasLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newWhitelistChecker\",\"type\":\"address\"}],\"name\":\"updateWhitelistChecker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"whitelistChecker\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60e060405234801562000010575f80fd5b506040516200194138038062001941833981016040819052620000339162000185565b6001600160a01b03831615806200005157506001600160a01b038216155b806200006457506001600160a01b038116155b156200008357604051630ecc6fdf60e41b815260040160405180910390fd5b6200008d620000ab565b6001600160a01b0392831660805290821660a0521660c052620001cc565b5f54610100900460ff1615620001175760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161462000167575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811462000180575f80fd5b919050565b5f805f6060848603121562000198575f80fd5b620001a38462000169565b9250620001b36020850162000169565b9150620001c36040850162000169565b90509250925092565b60805160a05160c05161172e620002135f395f81816103510152610bfb01525f818161024b015261040c01525f81816102c8015281816108eb0152610aa3015261172e5ff3fe608060405234801561000f575f80fd5b506004361061019a575f3560e01c80639b159782116100e8578063d5ad4a9711610093578063e172d3a11161006e578063e172d3a1146103ac578063e3176bd5146103c6578063f2fde38b146103cf578063fd0ad31e146103e2575f80fd5b8063d5ad4a9714610373578063d99bc80e14610386578063da35a26f14610399575f80fd5b8063bb7862ca116100c3578063bb7862ca14610319578063bdc6f0a014610339578063c27606771461034c575f80fd5b80639b159782146102ea578063a85006ca146102fd578063ae453cd514610306575f80fd5b80635f9cd92e116101485780638da5cb5b116101235780638da5cb5b1461029257806391652461146102b0578063927ede2d146102c3575f80fd5b80635f9cd92e1461022b578063715018a61461023e5780638770d70714610246575f80fd5b80633e6dada1116101785780633e6dada1146101ec5780635ad9945a1461020f5780635e45da2314610222575f80fd5b806329aa604b1461019e5780633c7f5283146101c45780633e4cbbe6146101d9575b5f80fd5b6101b16101ac366004611399565b6103ea565b6040519081526020015b60405180910390f35b6101d76101d23660046113b0565b610409565b005b6101b16101e73660046113f3565b61057a565b6101ff6101fa366004611399565b61062e565b60405190151581526020016101bb565b6101b161021d366004611460565b610650565b6101b160685481565b6101d76102393660046114dc565b610840565b6101d76108d5565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bb565b60335473ffffffffffffffffffffffffffffffffffffffff1661026d565b6101d76102be366004611399565b6108e8565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6101d76102f83660046114f5565b610aa0565b6101b160675481565b6101b1610314366004611399565b610b82565b606b5461026d9073ffffffffffffffffffffffffffffffffffffffff1681565b6101d761034736600461154b565b610bf8565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6101d7610381366004611399565b610d29565b6101d7610394366004611399565b610d6f565b6101d76103a73660046115be565b610db5565b6101b16103ba3660046115e8565b60100261520801919050565b6101b160655481565b6101d76103dd3660046114dc565b610f6e565b6066546101b1565b606681815481106103f9575f80fd5b5f91825260209091200154905081565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146104935760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b6101008111156104e55760405162461bcd60e51b815260206004820152601560248201527f706f7020746f6f206d616e79206d657373616765730000000000000000000000604482015260640161048a565b81606754146105365760405162461bcd60e51b815260206004820152601460248201527f737461727420696e646578206d69736d61746368000000000000000000000000604482015260640161048a565b80820160675560408051838152602081018390527f3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f2691015b60405180910390a15050565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa1580156105e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060c9190611627565b1561061857505f610628565b606554610625908361164d565b90505b92915050565b600881901c5f90815260696020526040812054600160ff84161b161515610628565b5f607e816106fa565b5f8161066757506001919050565b5b811561067d5760089190911c90600101610668565b919050565b8060808310600181146106ba5761069884610659565b60808101835360018301925084816020036008021b83528083019250506106db565b84841516600181146106ce578483536106d3565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b6005604051018061070d60018c83610682565b905061071b60018983610682565b905061072789826106e3565b905061073560018b83610682565b9050600186146001811461079d5760388710600181146107825761075888610659565b8060b701845360018401935088816020036008021b84528084019350508789843791870191610797565b87608001835360018301925087898437918701915b506107ae565b6107ab5f89355f1a84610682565b91505b506107b98c826106e3565b90508181035f8060388310600181146107ec576107d584610659565b60f78101600882021b8517935060010191506107f7565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b61084861100b565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108dd61100b565b6108e65f611072565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146109935760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e676572000000000000000000000000000000000000000000606482015260840161048a565b60675481106109e45760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742064726f702070656e64696e67206d6573736167650000000000604482015260640161048a565b600881901c5f90815260696020526040902054600160ff83161b1615610a4c5760405162461bcd60e51b815260206004820152601760248201527f6d65737361676520616c72656164792064726f70706564000000000000000000604482015260640161048a565b600881901c5f9081526069602052604090208054600160ff84161b1790556040518181527f43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf9060200160405180910390a150565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610b4b5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e676572000000000000000000000000000000000000000000606482015260840161048a565b610b568383836110e8565b3373111100000000000000000000000000000000111101610b7b81865f8787876111e4565b5050505050565b6066545f908210610bd55760405162461bcd60e51b815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e6765000000000000604482015260640161048a565b60668281548110610be857610be8611689565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610ca35760405162461bcd60e51b815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f6174657761790000000000000000000000000000000000000000000000000000606482015260840161048a565b73ffffffffffffffffffffffffffffffffffffffff86163b15610d085760405162461bcd60e51b815260206004820152600860248201527f6f6e6c7920454f41000000000000000000000000000000000000000000000000604482015260640161048a565b610d138383836110e8565b610d218686868686866111e4565b505050505050565b610d3161100b565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c5910161056e565b610d7761100b565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead366329910161056e565b5f54610100900460ff1615808015610dd357505f54600160ff909116105b80610dec5750303b158015610dec57505f5460ff166001145b610e5e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161048a565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610eba575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610ec2611295565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015610f69575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610f7661100b565b73ffffffffffffffffffffffffffffffffffffffff8116610fff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161048a565b61100881611072565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108e65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048a565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6068548311156111605760405162461bcd60e51b815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d6974000000000000000000000000000000000000000000000000000000606482015260840161048a565b6010810261520801808410156111de5760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e7369632067617300000000000000000000000000606482015260840161048a565b50505050565b6066545f6111f78883888a898989610650565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e90611283908a9087908b908b908b906116b6565b60405180910390a35050505050505050565b5f54610100900460ff166113115760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161048a565b6108e65f54610100900460ff166113905760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161048a565b6108e633611072565b5f602082840312156113a9575f80fd5b5035919050565b5f80604083850312156113c1575f80fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461067d575f80fd5b5f8060408385031215611404575f80fd5b61140d836113d0565b946020939093013593505050565b5f8083601f84011261142b575f80fd5b50813567ffffffffffffffff811115611442575f80fd5b602083019150836020828501011115611459575f80fd5b9250929050565b5f805f805f805f60c0888a031215611476575f80fd5b61147f886113d0565b9650602088013595506040880135945061149b606089016113d0565b93506080880135925060a088013567ffffffffffffffff8111156114bd575f80fd5b6114c98a828b0161141b565b989b979a50959850939692959293505050565b5f602082840312156114ec575f80fd5b610625826113d0565b5f805f8060608587031215611508575f80fd5b611511856113d0565b935060208501359250604085013567ffffffffffffffff811115611533575f80fd5b61153f8782880161141b565b95989497509550505050565b5f805f805f8060a08789031215611560575f80fd5b611569876113d0565b9550611577602088016113d0565b94506040870135935060608701359250608087013567ffffffffffffffff8111156115a0575f80fd5b6115ac89828a0161141b565b979a9699509497509295939492505050565b5f80604083850312156115cf575f80fd5b823591506115df602084016113d0565b90509250929050565b5f80602083850312156115f9575f80fd5b823567ffffffffffffffff81111561160f575f80fd5b61161b8582860161141b565b90969095509350505050565b5f60208284031215611637575f80fd5b81518015158114611646575f80fd5b9392505050565b8082028115828204841417610628577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_enforcedTxGateway\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"DequeueTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"queueIndex\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldGateway\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newGateway\",\"type\":\"address\"}],\"name\":\"UpdateEnforcedTxGateway\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldGasOracle\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newGasOracle\",\"type\":\"address\"}],\"name\":\"UpdateGasOracle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldL2BaseFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newL2BaseFee\",\"type\":\"uint256\"}],\"name\":\"UpdateL2BaseFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_oldMaxGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newMaxGasLimit\",\"type\":\"uint256\"}],\"name\":\"UpdateMaxGasLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldWhitelistChecker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newWhitelistChecker\",\"type\":\"address\"}],\"name\":\"UpdateWhitelistChecker\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ENFORCED_TX_GATEWAAY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROLLUP_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"appendCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"appendEnforcedTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"calculateIntrinsicGasFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"computeTransactionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"estimateCrossDomainMessageFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queueIndex\",\"type\":\"uint256\"}],\"name\":\"getCrossDomainMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_whitelistChecker\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextCrossDomainMessageIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingQueueIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_startIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"popCrossDomainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newL2BaseFee\",\"type\":\"uint256\"}],\"name\":\"setL2BaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newMaxGasLimit\",\"type\":\"uint256\"}],\"name\":\"updateMaxGasLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newWhitelistChecker\",\"type\":\"address\"}],\"name\":\"updateWhitelistChecker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"whitelistChecker\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x60e060405234801562000010575f80fd5b506040516200171438038062001714833981016040819052620000339162000185565b6001600160a01b03831615806200005157506001600160a01b038216155b806200006457506001600160a01b038116155b156200008357604051630ecc6fdf60e41b815260040160405180910390fd5b6200008d620000ab565b6001600160a01b0392831660805290821660a0521660c052620001cc565b5f54610100900460ff1615620001175760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161462000167575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811462000180575f80fd5b919050565b5f805f6060848603121562000198575f80fd5b620001a38462000169565b9250620001b36020850162000169565b9150620001c36040850162000169565b90509250925092565b60805160a05160c0516115086200020c5f395f818161030501526109d501525f818161021201526103c001525f818161027c015261087d01526115085ff3fe608060405234801561000f575f80fd5b5060043610610184575f3560e01c8063a85006ca116100dd578063d99bc80e11610088578063e3176bd511610063578063e3176bd51461037a578063f2fde38b14610383578063fd0ad31e14610396575f80fd5b8063d99bc80e1461033a578063da35a26f1461034d578063e172d3a114610360575f80fd5b8063bdc6f0a0116100b8578063bdc6f0a0146102ed578063c276067714610300578063d5ad4a9714610327575f80fd5b8063a85006ca146102b1578063ae453cd5146102ba578063bb7862ca146102cd575f80fd5b80635f9cd92e1161013d5780638da5cb5b116101185780638da5cb5b14610259578063927ede2d146102775780639b1597821461029e575f80fd5b80635f9cd92e146101f2578063715018a6146102055780638770d7071461020d575f80fd5b80633e4cbbe61161016d5780633e4cbbe6146101c35780635ad9945a146101d65780635e45da23146101e9575f80fd5b806329aa604b146101885780633c7f5283146101ae575b5f80fd5b61019b610196366004611173565b61039e565b6040519081526020015b60405180910390f35b6101c16101bc36600461118a565b6103bd565b005b61019b6101d13660046111cd565b61052e565b61019b6101e436600461123a565b6105e2565b61019b60685481565b6101c16102003660046112b6565b6107d2565b6101c1610867565b6102347f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a5565b60335473ffffffffffffffffffffffffffffffffffffffff16610234565b6102347f000000000000000000000000000000000000000000000000000000000000000081565b6101c16102ac3660046112cf565b61087a565b61019b60675481565b61019b6102c8366004611173565b61095c565b606b546102349073ffffffffffffffffffffffffffffffffffffffff1681565b6101c16102fb366004611325565b6109d2565b6102347f000000000000000000000000000000000000000000000000000000000000000081565b6101c1610335366004611173565b610b03565b6101c1610348366004611173565b610b49565b6101c161035b366004611398565b610b8f565b61019b61036e3660046113c2565b60100261520801919050565b61019b60655481565b6101c16103913660046112b6565b610d48565b60665461019b565b606681815481106103ad575f80fd5b5f91825260209091200154905081565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146104475760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b6101008111156104995760405162461bcd60e51b815260206004820152601560248201527f706f7020746f6f206d616e79206d657373616765730000000000000000000000604482015260640161043e565b81606754146104ea5760405162461bcd60e51b815260206004820152601460248201527f737461727420696e646578206d69736d61746368000000000000000000000000604482015260640161043e565b80820160675560408051838152602081018390527f3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f2691015b60405180910390a15050565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa15801561059c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c09190611401565b156105cc57505f6105dc565b6065546105d99083611427565b90505b92915050565b5f607e8161068c565b5f816105f957506001919050565b5b811561060f5760089190911c906001016105fa565b919050565b80608083106001811461064c5761062a846105eb565b60808101835360018301925084816020036008021b835280830192505061066d565b848415166001811461066057848353610665565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b6005604051018061069f60018c83610614565b90506106ad60018983610614565b90506106b98982610675565b90506106c760018b83610614565b9050600186146001811461072f576038871060018114610714576106ea886105eb565b8060b701845360018401935088816020036008021b84528084019350508789843791870191610729565b87608001835360018301925087898437918701915b50610740565b61073d5f89355f1a84610614565b91505b5061074b8c82610675565b90508181035f80603883106001811461077e57610767846105eb565b60f78101600882021b851793506001019150610789565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b6107da610de5565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61086f610de5565b6108785f610e4c565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146109255760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e676572000000000000000000000000000000000000000000606482015260840161043e565b610930838383610ec2565b337311110000000000000000000000000000000011110161095581865f878787610fbe565b5050505050565b6066545f9082106109af5760405162461bcd60e51b815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e6765000000000000604482015260640161043e565b606682815481106109c2576109c2611463565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610a7d5760405162461bcd60e51b815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f6174657761790000000000000000000000000000000000000000000000000000606482015260840161043e565b73ffffffffffffffffffffffffffffffffffffffff86163b15610ae25760405162461bcd60e51b815260206004820152600860248201527f6f6e6c7920454f41000000000000000000000000000000000000000000000000604482015260640161043e565b610aed838383610ec2565b610afb868686868686610fbe565b505050505050565b610b0b610de5565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c59101610522565b610b51610de5565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead3663299101610522565b5f54610100900460ff1615808015610bad57505f54600160ff909116105b80610bc65750303b158015610bc657505f5460ff166001145b610c385760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161043e565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610c94575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610c9c61106f565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015610d43575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610d50610de5565b73ffffffffffffffffffffffffffffffffffffffff8116610dd95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161043e565b610de281610e4c565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606854831115610f3a5760405162461bcd60e51b815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d6974000000000000000000000000000000000000000000000000000000606482015260840161043e565b601081026152080180841015610fb85760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e7369632067617300000000000000000000000000606482015260840161043e565b50505050565b6066545f610fd18883888a8989896105e2565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e9061105d908a9087908b908b908b90611490565b60405180910390a35050505050505050565b5f54610100900460ff166110eb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161043e565b6108785f54610100900460ff1661116a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161043e565b61087833610e4c565b5f60208284031215611183575f80fd5b5035919050565b5f806040838503121561119b575f80fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461060f575f80fd5b5f80604083850312156111de575f80fd5b6111e7836111aa565b946020939093013593505050565b5f8083601f840112611205575f80fd5b50813567ffffffffffffffff81111561121c575f80fd5b602083019150836020828501011115611233575f80fd5b9250929050565b5f805f805f805f60c0888a031215611250575f80fd5b611259886111aa565b96506020880135955060408801359450611275606089016111aa565b93506080880135925060a088013567ffffffffffffffff811115611297575f80fd5b6112a38a828b016111f5565b989b979a50959850939692959293505050565b5f602082840312156112c6575f80fd5b6105d9826111aa565b5f805f80606085870312156112e2575f80fd5b6112eb856111aa565b935060208501359250604085013567ffffffffffffffff81111561130d575f80fd5b611319878288016111f5565b95989497509550505050565b5f805f805f8060a0878903121561133a575f80fd5b611343876111aa565b9550611351602088016111aa565b94506040870135935060608701359250608087013567ffffffffffffffff81111561137a575f80fd5b61138689828a016111f5565b979a9699509497509295939492505050565b5f80604083850312156113a9575f80fd5b823591506113b9602084016111aa565b90509250929050565b5f80602083850312156113d3575f80fd5b823567ffffffffffffffff8111156113e9575f80fd5b6113f5858286016111f5565b90969095509350505050565b5f60208284031215611411575f80fd5b81518015158114611420575f80fd5b9392505050565b80820281158282048414176105dc577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a", } // L1MessageQueueWithGasPriceOracleABI is the input ABI used to generate the binding from. @@ -419,37 +419,6 @@ func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleCallerS return _L1MessageQueueWithGasPriceOracle.Contract.GetCrossDomainMessage(&_L1MessageQueueWithGasPriceOracle.CallOpts, _queueIndex) } -// IsMessageDropped is a free data retrieval call binding the contract method 0x3e6dada1. -// -// Solidity: function isMessageDropped(uint256 _queueIndex) view returns(bool) -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleCaller) IsMessageDropped(opts *bind.CallOpts, _queueIndex *big.Int) (bool, error) { - var out []interface{} - err := _L1MessageQueueWithGasPriceOracle.contract.Call(opts, &out, "isMessageDropped", _queueIndex) - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// IsMessageDropped is a free data retrieval call binding the contract method 0x3e6dada1. -// -// Solidity: function isMessageDropped(uint256 _queueIndex) view returns(bool) -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleSession) IsMessageDropped(_queueIndex *big.Int) (bool, error) { - return _L1MessageQueueWithGasPriceOracle.Contract.IsMessageDropped(&_L1MessageQueueWithGasPriceOracle.CallOpts, _queueIndex) -} - -// IsMessageDropped is a free data retrieval call binding the contract method 0x3e6dada1. -// -// Solidity: function isMessageDropped(uint256 _queueIndex) view returns(bool) -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleCallerSession) IsMessageDropped(_queueIndex *big.Int) (bool, error) { - return _L1MessageQueueWithGasPriceOracle.Contract.IsMessageDropped(&_L1MessageQueueWithGasPriceOracle.CallOpts, _queueIndex) -} - // L2BaseFee is a free data retrieval call binding the contract method 0xe3176bd5. // // Solidity: function l2BaseFee() view returns(uint256) @@ -709,27 +678,6 @@ func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleTransac return _L1MessageQueueWithGasPriceOracle.Contract.AppendEnforcedTransaction(&_L1MessageQueueWithGasPriceOracle.TransactOpts, _sender, _target, _value, _gasLimit, _data) } -// DropCrossDomainMessage is a paid mutator transaction binding the contract method 0x91652461. -// -// Solidity: function dropCrossDomainMessage(uint256 _index) returns() -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleTransactor) DropCrossDomainMessage(opts *bind.TransactOpts, _index *big.Int) (*types.Transaction, error) { - return _L1MessageQueueWithGasPriceOracle.contract.Transact(opts, "dropCrossDomainMessage", _index) -} - -// DropCrossDomainMessage is a paid mutator transaction binding the contract method 0x91652461. -// -// Solidity: function dropCrossDomainMessage(uint256 _index) returns() -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleSession) DropCrossDomainMessage(_index *big.Int) (*types.Transaction, error) { - return _L1MessageQueueWithGasPriceOracle.Contract.DropCrossDomainMessage(&_L1MessageQueueWithGasPriceOracle.TransactOpts, _index) -} - -// DropCrossDomainMessage is a paid mutator transaction binding the contract method 0x91652461. -// -// Solidity: function dropCrossDomainMessage(uint256 _index) returns() -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleTransactorSession) DropCrossDomainMessage(_index *big.Int) (*types.Transaction, error) { - return _L1MessageQueueWithGasPriceOracle.Contract.DropCrossDomainMessage(&_L1MessageQueueWithGasPriceOracle.TransactOpts, _index) -} - // Initialize is a paid mutator transaction binding the contract method 0xda35a26f. // // Solidity: function initialize(uint256 _maxGasLimit, address _whitelistChecker) returns() @@ -1012,140 +960,6 @@ func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleFiltere return event, nil } -// L1MessageQueueWithGasPriceOracleDropTransactionIterator is returned from FilterDropTransaction and is used to iterate over the raw logs and unpacked data for DropTransaction events raised by the L1MessageQueueWithGasPriceOracle contract. -type L1MessageQueueWithGasPriceOracleDropTransactionIterator struct { - Event *L1MessageQueueWithGasPriceOracleDropTransaction // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *L1MessageQueueWithGasPriceOracleDropTransactionIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(L1MessageQueueWithGasPriceOracleDropTransaction) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(L1MessageQueueWithGasPriceOracleDropTransaction) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *L1MessageQueueWithGasPriceOracleDropTransactionIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *L1MessageQueueWithGasPriceOracleDropTransactionIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// L1MessageQueueWithGasPriceOracleDropTransaction represents a DropTransaction event raised by the L1MessageQueueWithGasPriceOracle contract. -type L1MessageQueueWithGasPriceOracleDropTransaction struct { - Index *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterDropTransaction is a free log retrieval operation binding the contract event 0x43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf. -// -// Solidity: event DropTransaction(uint256 index) -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleFilterer) FilterDropTransaction(opts *bind.FilterOpts) (*L1MessageQueueWithGasPriceOracleDropTransactionIterator, error) { - - logs, sub, err := _L1MessageQueueWithGasPriceOracle.contract.FilterLogs(opts, "DropTransaction") - if err != nil { - return nil, err - } - return &L1MessageQueueWithGasPriceOracleDropTransactionIterator{contract: _L1MessageQueueWithGasPriceOracle.contract, event: "DropTransaction", logs: logs, sub: sub}, nil -} - -// WatchDropTransaction is a free log subscription operation binding the contract event 0x43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf. -// -// Solidity: event DropTransaction(uint256 index) -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleFilterer) WatchDropTransaction(opts *bind.WatchOpts, sink chan<- *L1MessageQueueWithGasPriceOracleDropTransaction) (event.Subscription, error) { - - logs, sub, err := _L1MessageQueueWithGasPriceOracle.contract.WatchLogs(opts, "DropTransaction") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(L1MessageQueueWithGasPriceOracleDropTransaction) - if err := _L1MessageQueueWithGasPriceOracle.contract.UnpackLog(event, "DropTransaction", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseDropTransaction is a log parse operation binding the contract event 0x43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf. -// -// Solidity: event DropTransaction(uint256 index) -func (_L1MessageQueueWithGasPriceOracle *L1MessageQueueWithGasPriceOracleFilterer) ParseDropTransaction(log types.Log) (*L1MessageQueueWithGasPriceOracleDropTransaction, error) { - event := new(L1MessageQueueWithGasPriceOracleDropTransaction) - if err := _L1MessageQueueWithGasPriceOracle.contract.UnpackLog(event, "DropTransaction", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - // L1MessageQueueWithGasPriceOracleInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the L1MessageQueueWithGasPriceOracle contract. type L1MessageQueueWithGasPriceOracleInitializedIterator struct { Event *L1MessageQueueWithGasPriceOracleInitialized // Event containing the contract specifics and raw log diff --git a/bindings/bindings/l1messagequeuewithgaspriceoracle_more.go b/bindings/bindings/l1messagequeuewithgaspriceoracle_more.go index a58058b80..95974e781 100644 --- a/bindings/bindings/l1messagequeuewithgaspriceoracle_more.go +++ b/bindings/bindings/l1messagequeuewithgaspriceoracle_more.go @@ -9,11 +9,11 @@ import ( "morph-l2/bindings/solc" ) -const L1MessageQueueWithGasPriceOracleStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1013_storage\"},{\"astId\":1003,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1012_storage\"},{\"astId\":1005,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"l2BaseFee\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_uint256\"},{\"astId\":1006,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"messageQueue\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_bytes32)dyn_storage\"},{\"astId\":1007,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"pendingQueueIndex\",\"offset\":0,\"slot\":\"103\",\"type\":\"t_uint256\"},{\"astId\":1008,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"maxGasLimit\",\"offset\":0,\"slot\":\"104\",\"type\":\"t_uint256\"},{\"astId\":1009,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"droppedMessageBitmap\",\"offset\":0,\"slot\":\"105\",\"type\":\"t_struct(BitMap)1014_storage\"},{\"astId\":1010,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"__skippedMessageBitmap\",\"offset\":0,\"slot\":\"106\",\"type\":\"t_mapping(t_uint256,t_uint256)\"},{\"astId\":1011,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"whitelistChecker\",\"offset\":0,\"slot\":\"107\",\"type\":\"t_address\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_bytes32)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"bytes32[]\",\"numberOfBytes\":\"32\"},\"t_array(t_uint256)1012_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1013_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_uint256,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_uint256\"},\"t_struct(BitMap)1014_storage\":{\"encoding\":\"inplace\",\"label\":\"struct BitMapsUpgradeable.BitMap\",\"numberOfBytes\":\"32\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" +const L1MessageQueueWithGasPriceOracleStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)1013_storage\"},{\"astId\":1003,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)1012_storage\"},{\"astId\":1005,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"l2BaseFee\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_uint256\"},{\"astId\":1006,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"messageQueue\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_bytes32)dyn_storage\"},{\"astId\":1007,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"pendingQueueIndex\",\"offset\":0,\"slot\":\"103\",\"type\":\"t_uint256\"},{\"astId\":1008,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"maxGasLimit\",\"offset\":0,\"slot\":\"104\",\"type\":\"t_uint256\"},{\"astId\":1009,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"__droppedMessageBitmap\",\"offset\":0,\"slot\":\"105\",\"type\":\"t_struct(BitMap)1014_storage\"},{\"astId\":1010,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"__skippedMessageBitmap\",\"offset\":0,\"slot\":\"106\",\"type\":\"t_mapping(t_uint256,t_uint256)\"},{\"astId\":1011,\"contract\":\"contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol:L1MessageQueueWithGasPriceOracle\",\"label\":\"whitelistChecker\",\"offset\":0,\"slot\":\"107\",\"type\":\"t_address\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_bytes32)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"bytes32[]\",\"numberOfBytes\":\"32\"},\"t_array(t_uint256)1012_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)1013_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_uint256,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(uint256 =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_uint256\",\"value\":\"t_uint256\"},\"t_struct(BitMap)1014_storage\":{\"encoding\":\"inplace\",\"label\":\"struct BitMapsUpgradeable.BitMap\",\"numberOfBytes\":\"32\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" var L1MessageQueueWithGasPriceOracleStorageLayout = new(solc.StorageLayout) -var L1MessageQueueWithGasPriceOracleDeployedBin = "0x608060405234801561000f575f80fd5b506004361061019a575f3560e01c80639b159782116100e8578063d5ad4a9711610093578063e172d3a11161006e578063e172d3a1146103ac578063e3176bd5146103c6578063f2fde38b146103cf578063fd0ad31e146103e2575f80fd5b8063d5ad4a9714610373578063d99bc80e14610386578063da35a26f14610399575f80fd5b8063bb7862ca116100c3578063bb7862ca14610319578063bdc6f0a014610339578063c27606771461034c575f80fd5b80639b159782146102ea578063a85006ca146102fd578063ae453cd514610306575f80fd5b80635f9cd92e116101485780638da5cb5b116101235780638da5cb5b1461029257806391652461146102b0578063927ede2d146102c3575f80fd5b80635f9cd92e1461022b578063715018a61461023e5780638770d70714610246575f80fd5b80633e6dada1116101785780633e6dada1146101ec5780635ad9945a1461020f5780635e45da2314610222575f80fd5b806329aa604b1461019e5780633c7f5283146101c45780633e4cbbe6146101d9575b5f80fd5b6101b16101ac366004611553565b6103ea565b6040519081526020015b60405180910390f35b6101d76101d236600461156a565b610409565b005b6101b16101e73660046115ad565b6105c8565b6101ff6101fa366004611553565b61067c565b60405190151581526020016101bb565b6101b161021d36600461161a565b61069e565b6101b160685481565b6101d7610239366004611696565b61088e565b6101d7610923565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bb565b60335473ffffffffffffffffffffffffffffffffffffffff1661026d565b6101d76102be366004611553565b610936565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6101d76102f83660046116af565b610b3c565b6101b160675481565b6101b1610314366004611553565b610c38565b606b5461026d9073ffffffffffffffffffffffffffffffffffffffff1681565b6101d7610347366004611705565b610cc8565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6101d7610381366004611553565b610e2d565b6101d7610394366004611553565b610e73565b6101d76103a7366004611778565b610eb9565b6101b16103ba3660046117a2565b60100261520801919050565b6101b160655481565b6101d76103dd366004611696565b61108c565b6066546101b1565b606681815481106103f9575f80fd5b5f91825260209091200154905081565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146104ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b610100811115610519576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f706f7020746f6f206d616e79206d65737361676573000000000000000000000060448201526064016104a4565b8160675414610584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f737461727420696e646578206d69736d6174636800000000000000000000000060448201526064016104a4565b80820160675560408051838152602081018390527f3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f2691015b60405180910390a15050565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa158015610636573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065a91906117e1565b1561066657505f610676565b6065546106739083611807565b90505b92915050565b600881901c5f90815260696020526040812054600160ff84161b161515610676565b5f607e81610748565b5f816106b557506001919050565b5b81156106cb5760089190911c906001016106b6565b919050565b806080831060018114610708576106e6846106a7565b60808101835360018301925084816020036008021b8352808301925050610729565b848415166001811461071c57848353610721565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b6005604051018061075b60018c836106d0565b9050610769600189836106d0565b90506107758982610731565b905061078360018b836106d0565b905060018614600181146107eb5760388710600181146107d0576107a6886106a7565b8060b701845360018401935088816020036008021b845280840193505087898437918701916107e5565b87608001835360018301925087898437918701915b506107fc565b6107f95f89355f1a846106d0565b91505b506108078c82610731565b90508181035f80603883106001811461083a57610823846106a7565b60f78101600882021b851793506001019150610845565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b610896611143565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61092b611143565b6109345f6111c4565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146109fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e67657200000000000000000000000000000000000000000060648201526084016104a4565b6067548110610a66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f63616e6e6f742064726f702070656e64696e67206d657373616765000000000060448201526064016104a4565b600881901c5f90815260696020526040902054600160ff83161b1615610ae8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6d65737361676520616c72656164792064726f7070656400000000000000000060448201526064016104a4565b600881901c5f9081526069602052604090208054600160ff84161b1790556040518181527f43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf9060200160405180910390a150565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e67657200000000000000000000000000000000000000000060648201526084016104a4565b610c0c83838361123a565b3373111100000000000000000000000000000000111101610c3181865f87878761136a565b5050505050565b6066545f908210610ca5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e676500000000000060448201526064016104a4565b60668281548110610cb857610cb8611843565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f617465776179000000000000000000000000000000000000000000000000000060648201526084016104a4565b73ffffffffffffffffffffffffffffffffffffffff86163b15610e0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f6f6e6c7920454f4100000000000000000000000000000000000000000000000060448201526064016104a4565b610e1783838361123a565b610e2586868686868661136a565b505050505050565b610e35611143565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c591016105bc565b610e7b611143565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead36632991016105bc565b5f54610100900460ff1615808015610ed757505f54600160ff909116105b80610ef05750303b158015610ef057505f5460ff166001145b610f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104a4565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fd8575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610fe061141b565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015611087575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b611094611143565b73ffffffffffffffffffffffffffffffffffffffff8116611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104a4565b611140816111c4565b50565b60335473ffffffffffffffffffffffffffffffffffffffff163314610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6068548311156112cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d697400000000000000000000000000000000000000000000000000000060648201526084016104a4565b601081026152080180841015611364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e736963206761730000000000000000000000000060648201526084016104a4565b50505050565b6066545f61137d8883888a89898961069e565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e90611409908a9087908b908b908b90611870565b60405180910390a35050505050505050565b5f54610100900460ff166114b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a4565b6109345f54610100900460ff1661154a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a4565b610934336111c4565b5f60208284031215611563575f80fd5b5035919050565b5f806040838503121561157b575f80fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff811681146106cb575f80fd5b5f80604083850312156115be575f80fd5b6115c78361158a565b946020939093013593505050565b5f8083601f8401126115e5575f80fd5b50813567ffffffffffffffff8111156115fc575f80fd5b602083019150836020828501011115611613575f80fd5b9250929050565b5f805f805f805f60c0888a031215611630575f80fd5b6116398861158a565b965060208801359550604088013594506116556060890161158a565b93506080880135925060a088013567ffffffffffffffff811115611677575f80fd5b6116838a828b016115d5565b989b979a50959850939692959293505050565b5f602082840312156116a6575f80fd5b6106738261158a565b5f805f80606085870312156116c2575f80fd5b6116cb8561158a565b935060208501359250604085013567ffffffffffffffff8111156116ed575f80fd5b6116f9878288016115d5565b95989497509550505050565b5f805f805f8060a0878903121561171a575f80fd5b6117238761158a565b95506117316020880161158a565b94506040870135935060608701359250608087013567ffffffffffffffff81111561175a575f80fd5b61176689828a016115d5565b979a9699509497509295939492505050565b5f8060408385031215611789575f80fd5b823591506117996020840161158a565b90509250929050565b5f80602083850312156117b3575f80fd5b823567ffffffffffffffff8111156117c9575f80fd5b6117d5858286016115d5565b90969095509350505050565b5f602082840312156117f1575f80fd5b81518015158114611800575f80fd5b9392505050565b8082028115828204841417610676577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a" +var L1MessageQueueWithGasPriceOracleDeployedBin = "0x608060405234801561000f575f80fd5b5060043610610184575f3560e01c8063a85006ca116100dd578063d99bc80e11610088578063e3176bd511610063578063e3176bd51461037a578063f2fde38b14610383578063fd0ad31e14610396575f80fd5b8063d99bc80e1461033a578063da35a26f1461034d578063e172d3a114610360575f80fd5b8063bdc6f0a0116100b8578063bdc6f0a0146102ed578063c276067714610300578063d5ad4a9714610327575f80fd5b8063a85006ca146102b1578063ae453cd5146102ba578063bb7862ca146102cd575f80fd5b80635f9cd92e1161013d5780638da5cb5b116101185780638da5cb5b14610259578063927ede2d146102775780639b1597821461029e575f80fd5b80635f9cd92e146101f2578063715018a6146102055780638770d7071461020d575f80fd5b80633e4cbbe61161016d5780633e4cbbe6146101c35780635ad9945a146101d65780635e45da23146101e9575f80fd5b806329aa604b146101885780633c7f5283146101ae575b5f80fd5b61019b6101963660046112df565b61039e565b6040519081526020015b60405180910390f35b6101c16101bc3660046112f6565b6103bd565b005b61019b6101d1366004611339565b61057c565b61019b6101e43660046113a6565b610630565b61019b60685481565b6101c1610200366004611422565b610820565b6101c16108b5565b6102347f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a5565b60335473ffffffffffffffffffffffffffffffffffffffff16610234565b6102347f000000000000000000000000000000000000000000000000000000000000000081565b6101c16102ac36600461143b565b6108c8565b61019b60675481565b61019b6102c83660046112df565b6109c4565b606b546102349073ffffffffffffffffffffffffffffffffffffffff1681565b6101c16102fb366004611491565b610a54565b6102347f000000000000000000000000000000000000000000000000000000000000000081565b6101c16103353660046112df565b610bb9565b6101c16103483660046112df565b610bff565b6101c161035b366004611504565b610c45565b61019b61036e36600461152e565b60100261520801919050565b61019b60655481565b6101c1610391366004611422565b610e18565b60665461019b565b606681815481106103ad575f80fd5b5f91825260209091200154905081565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610461576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f6e6c792063616c6c61626c652062792074686520726f6c6c7570000000000060448201526064015b60405180910390fd5b6101008111156104cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f706f7020746f6f206d616e79206d6573736167657300000000000000000000006044820152606401610458565b8160675414610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f737461727420696e646578206d69736d617463680000000000000000000000006044820152606401610458565b80820160675560408051838152602081018390527f3d48b97f20730c965868963266b0d25d8abe3f06babb60fc3b2b80c9e8907f2691015b60405180910390a15050565b606b546040517fefc7840100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f92169063efc7840190602401602060405180830381865afa1580156105ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060e919061156d565b1561061a57505f61062a565b6065546106279083611593565b90505b92915050565b5f607e816106da565b5f8161064757506001919050565b5b811561065d5760089190911c90600101610648565b919050565b80608083106001811461069a5761067884610639565b60808101835360018301925084816020036008021b83528083019250506106bb565b84841516600181146106ae578483536106b3565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b600560405101806106ed60018c83610662565b90506106fb60018983610662565b905061070789826106c3565b905061071560018b83610662565b9050600186146001811461077d5760388710600181146107625761073888610639565b8060b701845360018401935088816020036008021b84528084019350508789843791870191610777565b87608001835360018301925087898437918701915b5061078e565b61078b5f89355f1a84610662565b91505b506107998c826106c3565b90508181035f8060388310600181146107cc576107b584610639565b60f78101600882021b8517935060010191506107d7565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b610828610ecf565b606b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff91b2a410a89d46f14ee984a57e6d7892c217f116905371180998e20cef237e5905f90a3606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108bd610ecf565b6108c65f610f50565b565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4f6e6c792063616c6c61626c6520627920746865204c3143726f7373446f6d6160448201527f696e4d657373656e6765720000000000000000000000000000000000000000006064820152608401610458565b610998838383610fc6565b33731111000000000000000000000000000000001111016109bd81865f8787876110f6565b5050505050565b6066545f908210610a31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6d65737361676520696e646578206f7574206f662072616e67650000000000006044820152606401610458565b60668281548110610a4457610a446115cf565b905f5260205f2001549050919050565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201527f61746577617900000000000000000000000000000000000000000000000000006064820152608401610458565b73ffffffffffffffffffffffffffffffffffffffff86163b15610b98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f6f6e6c7920454f410000000000000000000000000000000000000000000000006044820152606401610458565b610ba3838383610fc6565b610bb18686868686866110f6565b505050505050565b610bc1610ecf565b606880549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c59101610570565b610c07610ecf565b606580549082905560408051828152602081018490527fc5271ba80b67178cc31f04a3755325121400925878dc608432b6fcaead3663299101610570565b5f54610100900460ff1615808015610c6357505f54600160ff909116105b80610c7c5750303b158015610c7c57505f5460ff166001145b610d08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610458565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610d64575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d6c6111a7565b6068839055606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015610e13575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610e20610ecf565b73ffffffffffffffffffffffffffffffffffffffff8116610ec3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610458565b610ecc81610f50565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610458565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606854831115611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d617847617360448201527f4c696d69740000000000000000000000000000000000000000000000000000006064820152608401610458565b6010810261520801808410156110f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527f61626f766520696e7472696e73696320676173000000000000000000000000006064820152608401610458565b50505050565b6066545f6111098883888a898989610630565b606680546001810182555f919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540181905560405190915073ffffffffffffffffffffffffffffffffffffffff80891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e90611195908a9087908b908b908b906115fc565b60405180910390a35050505050505050565b5f54610100900460ff1661123d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610458565b6108c65f54610100900460ff166112d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610458565b6108c633610f50565b5f602082840312156112ef575f80fd5b5035919050565b5f8060408385031215611307575f80fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461065d575f80fd5b5f806040838503121561134a575f80fd5b61135383611316565b946020939093013593505050565b5f8083601f840112611371575f80fd5b50813567ffffffffffffffff811115611388575f80fd5b60208301915083602082850101111561139f575f80fd5b9250929050565b5f805f805f805f60c0888a0312156113bc575f80fd5b6113c588611316565b965060208801359550604088013594506113e160608901611316565b93506080880135925060a088013567ffffffffffffffff811115611403575f80fd5b61140f8a828b01611361565b989b979a50959850939692959293505050565b5f60208284031215611432575f80fd5b61062782611316565b5f805f806060858703121561144e575f80fd5b61145785611316565b935060208501359250604085013567ffffffffffffffff811115611479575f80fd5b61148587828801611361565b95989497509550505050565b5f805f805f8060a087890312156114a6575f80fd5b6114af87611316565b95506114bd60208801611316565b94506040870135935060608701359250608087013567ffffffffffffffff8111156114e6575f80fd5b6114f289828a01611361565b979a9699509497509295939492505050565b5f8060408385031215611515575f80fd5b8235915061152560208401611316565b90509250929050565b5f806020838503121561153f575f80fd5b823567ffffffffffffffff811115611555575f80fd5b61156185828601611361565b90969095509350505050565b5f6020828403121561157d575f80fd5b8151801515811461158c575f80fd5b9392505050565b808202811582820484141761062a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L1MessageQueueWithGasPriceOracleStorageLayoutJSON), L1MessageQueueWithGasPriceOracleStorageLayout); err != nil { diff --git a/bindings/bindings/rollup.go b/bindings/bindings/rollup.go index 683595a89..755d06fc3 100644 --- a/bindings/bindings/rollup.go +++ b/bindings/bindings/rollup.go @@ -49,7 +49,7 @@ type IRollupBatchSignatureInput struct { // RollupMetaData contains all meta data concerning the Rollup contract. var RollupMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIncorrectBatchLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNoBlockInBatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blockContexts\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_prevStateRoot\",\"type\":\"bytes32\"}],\"name\":\"initialize2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60a060405234801562000010575f80fd5b50604051620048f0380380620048f083398101604081905262000033916200010f565b6001600160401b0381166080526200004a62000051565b506200013e565b5f54610100900460ff1615620000bd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200010d575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000120575f80fd5b81516001600160401b038116811462000137575f80fd5b9392505050565b6080516147926200015e5f395f81816105ec0152613a2d01526147925ff3fe608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109b1578063f2fde38b146109d0578063fb1e8b04146109ef575f80fd5b8063ddd8a3dc1461095e578063de8b30351461097d578063dff7827e1461099c575f80fd5b8063cd4edc69116100b7578063cd4edc6914610917578063ce5db8d61461092a578063d279c1911461093f575f80fd5b8063b35dac4e146108ba578063b3e0a509146108d9578063bedb86fb146108f8575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d1461085b578063b31a77d314610886578063b34844251461089b575f80fd5b8063a415d8dc146107f9578063a479265d14610827578063a4f209b01461083c575f80fd5b80638f1d37761161016c5780638f1d3776146106f9578063910129d4146107a957806397fc007c146107da575f80fd5b8063728cdbca146106a457806388b1ea09146106c35780638da5cb5b146106dc575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa146106465780636c578c1d14610671578063715018a614610690575f80fd5b80635ef7a94a1461057b5780635f77cf1d146105db5780636126729014610627575f80fd5b80634a8d544f1161022c5780634a8d544f1461053257806357e0af6c146105455780635c975abb14610564575f80fd5b80632b7ac3f3146104c75780633b70c18a146104fe5780633e001b661461051d575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b3660046140a5565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b506103966103913660046140d7565b610a04565b005b3480156103a3575f80fd5b506103966103b2366004614135565b610ad6565b3480156103c2575f80fd5b5061033f6103d13660046140a5565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b5061039661040836600461417d565b610e2f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c3660046140a5565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c3660046140a5565b611326565b34801561047c575f80fd5b5061036961048b3660046140a5565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b63660046140a5565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104e6906001600160a01b031681565b6040516001600160a01b03909116815260200161034b565b348015610509575f80fd5b50609b546104e6906001600160a01b031681565b348015610528575f80fd5b5061036960aa5481565b6103966105403660046141bc565b611354565b348015610550575f80fd5b5061039661055f3660046140a5565b611bd7565b34801561056f575f80fd5b5060655460ff1661033f565b348015610586575f80fd5b506105bb6105953660046140a5565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b3480156105e6575f80fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610632575f80fd5b506103966106413660046140a5565b611c82565b348015610651575f80fd5b506103696106603660046140a5565b60ab6020525f908152604090205481565b34801561067c575f80fd5b5061039661068b3660046140d7565b611e97565b34801561069b575f80fd5b50610396611f54565b3480156106af575f80fd5b506103966106be366004614229565b611f67565b3480156106ce575f80fd5b5060a65461033f9060ff1681565b3480156106e7575f80fd5b506033546001600160a01b03166104e6565b348015610704575f80fd5b506107656107133660046140a5565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b3480156107b4575f80fd5b5061033f6107c33660046140a5565b5f90815260a4602052604090206003015460ff1690565b3480156107e5575f80fd5b506103966107f43660046140d7565b6122aa565b348015610804575f80fd5b5061033f6108133660046140d7565b609f6020525f908152604090205460ff1681565b348015610832575f80fd5b5061036960995481565b348015610847575f80fd5b506103966108563660046140a5565b61238d565b348015610866575f80fd5b506103696108753660046140d7565b60a56020525f908152604090205481565b348015610891575f80fd5b5061036960a85481565b3480156108a6575f80fd5b506103966108b5366004614284565b61243d565b3480156108c5575f80fd5b506103966108d43660046140d7565b612682565b3480156108e4575f80fd5b506103966108f336600461417d565b6126db565b348015610903575f80fd5b506103966109123660046142f8565b6129dd565b610396610925366004614313565b612b38565b348015610935575f80fd5b5061036960985481565b34801561094a575f80fd5b506103966109593660046140d7565b613104565b348015610969575f80fd5b506097546104e6906001600160a01b031681565b348015610988575f80fd5b5061033f6109973660046140a5565b6131c3565b3480156109a7575f80fd5b50610369609a5481565b3480156109bc575f80fd5b506103966109cb3660046140a5565b61320d565b3480156109db575f80fd5b506103966109ea3660046140d7565b6132b0565b3480156109fa575f80fd5b5061036960a95481565b610a0c61333d565b6001600160a01b0381165f908152609f602052604090205460ff1615610a795760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ade61333d565b5f8111610b2d5760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a70565b5f80610b398585613397565b915091505f610b4c836001015160c01c90565b5f81815260a160205260409020549091508214610bab5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b5f60a181610bb98785614376565b81526020019081526020015f205414610c395760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a70565b609d548111610cb05760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b610cbb600182614389565b609e555b8315610e2757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610d07816131c3565b15610d62575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d52908490614376565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ddf575060a85481145b15610de9575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610cbf575b505050505050565b60a85415610e7f5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b610e876133b2565b5f80610e938484613397565b915091505f610ea6836001015160c01c90565b5f81815260a160205260409020549091508214610f055760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b610f0e81611326565b610f5a5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b610f63816131c3565b15610fb05760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003015460ff16156110115760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a70565b5f81815260a260205260409020600101544210156110715760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a70565b605983015160a05f611084600185614389565b81526020019081526020015f2054146110df5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f81815260a060205260409020541561113a5760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a70565b80609d546001011461118e5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b609d819055600160a35f6111a3866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111f26111e5846011015160c01c90565b600985015160c01c613405565b60a25f611200600184614389565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906112399084614389565b81526020019081526020015f205f905560a45f6001836112599190614389565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611302866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061134e57505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156113c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e4919061439c565b6114305760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a70565b60a854156114805760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b6114886133b2565b61149560208301836143b7565b60ff16156114e55760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a70565b5f6114f360408401846143d7565b915050806115435760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a70565b60608301356115945760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a70565b60808301356115e55760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a70565b5f806115fc6115f760208701876143d7565b613397565b915091505f61160f836001015160c01c90565b90505f60a181611620846001614376565b81526020019081526020015f20541461167b5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a70565b609e5481146116cc5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b5f81815260a1602052604090205482146117285760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a70565b5f81815260ab60205260409020546060870135146117885760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f611797846011015160c01c90565b90505f80806117e96117ac60408c018c6143d7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792508891506134c29050565b600196909601959485019493840193925090505f80491561180b575f4961182d565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f96118588961185060208f018f6143b7565b60ff1661363f565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a01526118c7896118a860208e018e6143d7565b6040516118b6929190614438565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff16156119345760a7545f90815260a46020526040902060020154609954429161192791614376565b6119319190614389565b90505b604051806080016040528042815260200182609854426119549190614376565b61195e9190614376565b81526020016119af8f806040019061197691906143d7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061364692505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a479190614447565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590611aaf90611aa9908f018f6143d7565b5f61369d565b5f8e8060400190611ac091906143d7565b6040518663ffffffff1660e01b8152600401611ae09594939291906144a5565b602060405180830381865afa158015611afb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1f919061439c565b611b915760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611bdf61333d565b5f81118015611bf057506099548114155b611c3c5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a70565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff16158015611ca257505f5460ff8083169116105b611d145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611d4f5f5460ff1690565b60ff16600214611da15760405162461bcd60e51b815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610a70565b81611e145760405162461bcd60e51b815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610a70565b609e545f90815260ab6020526040902054611e3d57609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611c76565b611e9f61333d565b6001600160a01b0381165f908152609f602052604090205460ff16611f065760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a70565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610acb565b611f5c61333d565b611f655f6136f1565b565b5f54610100900460ff1615808015611f8557505f54600160ff909116105b80611f9e5750303b158015611f9e57505f5460ff166001145b6120105760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f805460ff19166001179055801561204e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038616158061206b57506001600160a01b038516155b156120a2576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166120f85760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a70565b61210061375a565b6121086137de565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156122a1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6122b261333d565b6001600160a01b038116158015906122d85750609c546001600160a01b03828116911614155b6123245760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a70565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b61239561333d565b5f811180156123a5575060648111155b80156123b3575060a9548114155b6123ff5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a70565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c76565b60a8541561248d5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b6124956133b2565b5f806124a18686613397565b915091505f6124b4836001015160c01c90565b5f81815260a1602052604090205490915082146125135760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b61251c816131c3565b6125685760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff1916905560995460029091015442916125c191614376565b11612637575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f7574000000000000000000000000000000000000000000000000009183019190915261263291839190613862565b6122a1565b6126428386866139be565b6122a181336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613b71565b61268a61333d565b60aa80545f90915561269c8282613c3d565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c76565b6126e361333d565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561275a5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a70565b5f806127668484613397565b915091505f612779836001015160c01c90565b90505f612787846079015190565b9050806127d65760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a70565b600984015160c01c1561282b5760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a70565b5f612837856019015190565b036128845760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a70565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440146128b0856039015190565b146128fd5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a70565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b6129e561333d565b8015612b06576129f3613ce8565b60a65460ff1615612ac55760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612a47908490614376565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b612b0e613d42565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612ae8565b50565b335f908152609f602052604090205460ff16612b965760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a70565b60a85415612be65760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612bee6133b2565b60a65460ff1615612c415760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a70565b8167ffffffffffffffff16609d5410612c9c5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a160205260409020548114612d035760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b612d168267ffffffffffffffff16611326565b612d625760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612ddd5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a260205260409020600101544210612e6d5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a70565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ebd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ee19190614447565b341015612f305760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b99763460405161308291815260200190565b60405180910390a35f609d54600161309a9190614376565b90505b609e5481116130f2578267ffffffffffffffff1681146130e0576099545f82815260a26020526040812060010180549091906130da908490614376565b90915550505b806130ea81614518565b91505061309d565b505060a6805460ff1916600117905550565b335f90815260a56020526040812054908190036131635760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a70565b335f90815260a5602052604081205561317c8282613c3d565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a826040516131b791815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b03161580159061134e5750505f90815260a46020526040902060030154610100900460ff161590565b61321561333d565b5f8111801561322657506098548114155b6132725760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a70565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c76565b6132b861333d565b6001600160a01b0381166133345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a70565b612b35816136f1565b6033546001600160a01b03163314611f655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a70565b5f805f6133a48585613d7b565b812090969095509350505050565b60655460ff1615611f655760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a70565b805f03613410575050565b8082035f5b828110156134bc5761010081840381111561342f57508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b158015613492575f80fd5b505af11580156134a4573d5f803e3d5ffd5b50505050610100830192505061010081019050613415565b50505050565b60405183515f918291602087019190819084906134e0908590613de3565b90506002840193505f5b8181101561356457603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f61353a603c8361454f565b6135449087614376565b90505f61355582603a015160f01c90565b979097019650506001016134ea565b506020850282016040525b801561362d575f61358485603a015160f01c90565b905061359283828b8b613e78565b92505f6135a3866038015160f01c90565b9050818110156135f55760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a70565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161356f565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613661828651613de3565b90505f5b613670600183614389565b81101561368657603c9390930192600101613665565b505f613693845160c01c90565b9695505050505050565b60605f808080806136b0888a018a614653565b95509550955095509550508187106136ce5794506136ea9350505050565b8387106136e25782955050505050506136ea565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166137d65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65613f46565b5f54610100900460ff1661385a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65613fce565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af11580156138e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061390a9190614447565b5f86815260a46020526040902060010154909150613929908290614376565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a590915281208054909190613968908490614376565b909155505060405161397b9084906146f0565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613a0b5760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a70565b5f613a1a846001015160c01c90565b90505f613a28856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613a57876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a848613b19885160f81c90565b858888866040518663ffffffff1660e01b8152600401613b3d95949392919061471c565b5f6040518083038186803b158015613b53575f80fd5b505afa158015613b65573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613b95908461454f565b613b9f919061474d565b9050613bab8183614389565b60aa5f828254613bbb9190614376565b90915550506001600160a01b0384165f90815260a5602052604081208054839290613be7908490614376565b9091555050604051613bfa9084906146f0565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613ce4575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613c8c576040519150601f19603f3d011682016040523d82523d5f602084013e613c91565b606091505b5050905080613ce25760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a70565b505b5050565b613cf06133b2565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613d253390565b6040516001600160a01b03909116815260200160405180910390a1565b613d4a614053565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613d25565b5f8160f98114613dcd5760405162461bcd60e51b815260206004820152601f60248201527f626174636820686561646572206c656e677468206d75737420626520323439006044820152606401610a70565b6040519150808483378082016040529250929050565b5f613def835160f01c90565b9050805f03613e2a576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e35603c8261454f565b613e40906002614376565b821461134e576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03613e87575083613f3e565b609b546001600160a01b03165f5b85811015613f38576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613efb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f1f9190614447565b8852506020909601956001948501949384019301613e95565b50859150505b949350505050565b5f54610100900460ff16613fc25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b6065805460ff19169055565b5f54610100900460ff1661404a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65336136f1565b60655460ff16611f655760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a70565b5f602082840312156140b5575f80fd5b5035919050565b80356001600160a01b03811681146140d2575f80fd5b919050565b5f602082840312156140e7575f80fd5b6136ea826140bc565b5f8083601f840112614100575f80fd5b50813567ffffffffffffffff811115614117575f80fd5b60208301915083602082850101111561412e575f80fd5b9250929050565b5f805f60408486031215614147575f80fd5b833567ffffffffffffffff81111561415d575f80fd5b614169868287016140f0565b909790965060209590950135949350505050565b5f806020838503121561418e575f80fd5b823567ffffffffffffffff8111156141a4575f80fd5b6141b0858286016140f0565b90969095509350505050565b5f80604083850312156141cd575f80fd5b823567ffffffffffffffff808211156141e4575f80fd5b9084019060c082870312156141f7575f80fd5b9092506020840135908082111561420c575f80fd5b5083016060818603121561421e575f80fd5b809150509250929050565b5f805f805f8060c0878903121561423e575f80fd5b614247876140bc565b9550614255602088016140bc565b9450614263604088016140bc565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614297575f80fd5b843567ffffffffffffffff808211156142ae575f80fd5b6142ba888389016140f0565b909650945060208701359150808211156142d2575f80fd5b506142df878288016140f0565b95989497509550505050565b8015158114612b35575f80fd5b5f60208284031215614308575f80fd5b81356136ea816142eb565b5f8060408385031215614324575f80fd5b823567ffffffffffffffff8116811461433b575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561134e5761134e614349565b8181038181111561134e5761134e614349565b5f602082840312156143ac575f80fd5b81516136ea816142eb565b5f602082840312156143c7575f80fd5b813560ff811681146136ea575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261440a575f80fd5b83018035915067ffffffffffffffff821115614424575f80fd5b60200191503681900382131561412e575f80fd5b818382375f9101908152919050565b5f60208284031215614457575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156144ef5784516001600160a01b0316835293830193918301916001016144ca565b5050876040860152848103606086015261450a81878961445e565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361454857614548614349565b5060010190565b808202811582820484141761134e5761134e614349565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145a2575f80fd5b8135602067ffffffffffffffff808311156145bf576145bf614566565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110848211171561460257614602614566565b6040529384526020818701810194908101925087851115614621575f80fd5b6020870191505b8482101561464857614639826140bc565b83529183019190830190614628565b979650505050505050565b5f805f805f8060c08789031215614668575f80fd5b86359550602087013567ffffffffffffffff80821115614686575f80fd5b6146928a838b01614593565b96506040890135955060608901359150808211156146ae575f80fd5b6146ba8a838b01614593565b94506080890135935060a08901359150808211156146d6575f80fd5b506146e389828a01614593565b9150509295509295509295565b5f82515f5b8181101561470f57602081860181015185830152016146f5565b505f920191825250919050565b858152846020820152608060408201525f61473b60808301858761445e565b90508260608301529695505050505050565b5f82614780577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a", + Bin: "0x60a060405234801562000010575f80fd5b506040516200493f3803806200493f83398101604081905262000033916200010f565b6001600160401b0381166080526200004a62000051565b506200013e565b5f54610100900460ff1615620000bd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200010d575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000120575f80fd5b81516001600160401b038116811462000137575f80fd5b9392505050565b6080516147e16200015e5f395f81816105ec0152613a7b01526147e15ff3fe608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109b1578063f2fde38b146109d0578063fb1e8b04146109ef575f80fd5b8063ddd8a3dc1461095e578063de8b30351461097d578063dff7827e1461099c575f80fd5b8063cd4edc69116100b7578063cd4edc6914610917578063ce5db8d61461092a578063d279c1911461093f575f80fd5b8063b35dac4e146108ba578063b3e0a509146108d9578063bedb86fb146108f8575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d1461085b578063b31a77d314610886578063b34844251461089b575f80fd5b8063a415d8dc146107f9578063a479265d14610827578063a4f209b01461083c575f80fd5b80638f1d37761161016c5780638f1d3776146106f9578063910129d4146107a957806397fc007c146107da575f80fd5b8063728cdbca146106a457806388b1ea09146106c35780638da5cb5b146106dc575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa146106465780636c578c1d14610671578063715018a614610690575f80fd5b80635ef7a94a1461057b5780635f77cf1d146105db5780636126729014610627575f80fd5b80634a8d544f1161022c5780634a8d544f1461053257806357e0af6c146105455780635c975abb14610564575f80fd5b80632b7ac3f3146104c75780633b70c18a146104fe5780633e001b661461051d575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b3660046140f4565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b50610396610391366004614126565b610a04565b005b3480156103a3575f80fd5b506103966103b2366004614184565b610ad6565b3480156103c2575f80fd5b5061033f6103d13660046140f4565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b506103966104083660046141cc565b610e2f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c3660046140f4565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c3660046140f4565b611326565b34801561047c575f80fd5b5061036961048b3660046140f4565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b63660046140f4565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104e6906001600160a01b031681565b6040516001600160a01b03909116815260200161034b565b348015610509575f80fd5b50609b546104e6906001600160a01b031681565b348015610528575f80fd5b5061036960aa5481565b61039661054036600461420b565b611354565b348015610550575f80fd5b5061039661055f3660046140f4565b611bd7565b34801561056f575f80fd5b5060655460ff1661033f565b348015610586575f80fd5b506105bb6105953660046140f4565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b3480156105e6575f80fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610632575f80fd5b506103966106413660046140f4565b611c82565b348015610651575f80fd5b506103696106603660046140f4565b60ab6020525f908152604090205481565b34801561067c575f80fd5b5061039661068b366004614126565b611e97565b34801561069b575f80fd5b50610396611f54565b3480156106af575f80fd5b506103966106be366004614278565b611f67565b3480156106ce575f80fd5b5060a65461033f9060ff1681565b3480156106e7575f80fd5b506033546001600160a01b03166104e6565b348015610704575f80fd5b506107656107133660046140f4565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b3480156107b4575f80fd5b5061033f6107c33660046140f4565b5f90815260a4602052604090206003015460ff1690565b3480156107e5575f80fd5b506103966107f4366004614126565b6122aa565b348015610804575f80fd5b5061033f610813366004614126565b609f6020525f908152604090205460ff1681565b348015610832575f80fd5b5061036960995481565b348015610847575f80fd5b506103966108563660046140f4565b61238d565b348015610866575f80fd5b50610369610875366004614126565b60a56020525f908152604090205481565b348015610891575f80fd5b5061036960a85481565b3480156108a6575f80fd5b506103966108b53660046142d3565b61243d565b3480156108c5575f80fd5b506103966108d4366004614126565b612682565b3480156108e4575f80fd5b506103966108f33660046141cc565b6126db565b348015610903575f80fd5b50610396610912366004614347565b612a2b565b610396610925366004614362565b612b86565b348015610935575f80fd5b5061036960985481565b34801561094a575f80fd5b50610396610959366004614126565b613152565b348015610969575f80fd5b506097546104e6906001600160a01b031681565b348015610988575f80fd5b5061033f6109973660046140f4565b613211565b3480156109a7575f80fd5b50610369609a5481565b3480156109bc575f80fd5b506103966109cb3660046140f4565b61325b565b3480156109db575f80fd5b506103966109ea366004614126565b6132fe565b3480156109fa575f80fd5b5061036960a95481565b610a0c61338b565b6001600160a01b0381165f908152609f602052604090205460ff1615610a795760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ade61338b565b5f8111610b2d5760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a70565b5f80610b3985856133e5565b915091505f610b4c836001015160c01c90565b5f81815260a160205260409020549091508214610bab5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b5f60a181610bb987856143c5565b81526020019081526020015f205414610c395760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a70565b609d548111610cb05760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b610cbb6001826143d8565b609e555b8315610e2757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610d0781613211565b15610d62575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d529084906143c5565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ddf575060a85481145b15610de9575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610cbf575b505050505050565b60a85415610e7f5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b610e87613400565b5f80610e9384846133e5565b915091505f610ea6836001015160c01c90565b5f81815260a160205260409020549091508214610f055760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b610f0e81611326565b610f5a5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b610f6381613211565b15610fb05760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003015460ff16156110115760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a70565b5f81815260a260205260409020600101544210156110715760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a70565b605983015160a05f6110846001856143d8565b81526020019081526020015f2054146110df5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f81815260a060205260409020541561113a5760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a70565b80609d546001011461118e5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b609d819055600160a35f6111a3866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111f26111e5846011015160c01c90565b600985015160c01c613453565b60a25f6112006001846143d8565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061123990846143d8565b81526020019081526020015f205f905560a45f60018361125991906143d8565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611302866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061134e57505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156113c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e491906143eb565b6114305760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a70565b60a854156114805760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b611488613400565b6114956020830183614406565b60ff16156114e55760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a70565b5f6114f36040840184614426565b915050806115435760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a70565b60608301356115945760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a70565b60808301356115e55760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a70565b5f806115fc6115f76020870187614426565b6133e5565b915091505f61160f836001015160c01c90565b90505f60a1816116208460016143c5565b81526020019081526020015f20541461167b5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a70565b609e5481146116cc5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b5f81815260a1602052604090205482146117285760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a70565b5f81815260ab60205260409020546060870135146117885760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f611797846011015160c01c90565b90505f80806117e96117ac60408c018c614426565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792508891506135109050565b600196909601959485019493840193925090505f80491561180b575f4961182d565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f96118588961185060208f018f614406565b60ff1661368d565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a01526118c7896118a860208e018e614426565b6040516118b6929190614487565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff16156119345760a7545f90815260a460205260409020600201546099544291611927916143c5565b61193191906143d8565b90505b6040518060800160405280428152602001826098544261195491906143c5565b61195e91906143c5565b81526020016119af8f80604001906119769190614426565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061369492505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a479190614496565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590611aaf90611aa9908f018f614426565b5f6136eb565b5f8e8060400190611ac09190614426565b6040518663ffffffff1660e01b8152600401611ae09594939291906144f4565b602060405180830381865afa158015611afb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1f91906143eb565b611b915760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611bdf61338b565b5f81118015611bf057506099548114155b611c3c5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a70565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff16158015611ca257505f5460ff8083169116105b611d145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611d4f5f5460ff1690565b60ff16600214611da15760405162461bcd60e51b815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610a70565b81611e145760405162461bcd60e51b815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610a70565b609e545f90815260ab6020526040902054611e3d57609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611c76565b611e9f61338b565b6001600160a01b0381165f908152609f602052604090205460ff16611f065760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a70565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610acb565b611f5c61338b565b611f655f61373f565b565b5f54610100900460ff1615808015611f8557505f54600160ff909116105b80611f9e5750303b158015611f9e57505f5460ff166001145b6120105760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f805460ff19166001179055801561204e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038616158061206b57506001600160a01b038516155b156120a2576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166120f85760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a70565b6121006137a8565b61210861382c565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156122a1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6122b261338b565b6001600160a01b038116158015906122d85750609c546001600160a01b03828116911614155b6123245760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a70565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b61239561338b565b5f811180156123a5575060648111155b80156123b3575060a9548114155b6123ff5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a70565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c76565b60a8541561248d5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612495613400565b5f806124a186866133e5565b915091505f6124b4836001015160c01c90565b5f81815260a1602052604090205490915082146125135760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b61251c81613211565b6125685760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff1916905560995460029091015442916125c1916143c5565b11612637575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152612632918391906138b0565b6122a1565b612642838686613a0c565b6122a181336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613bbf565b61268a61338b565b60aa80545f90915561269c8282613c8b565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c76565b6126e361338b565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561275a5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a70565b5f8061276684846133e5565b915091505f612779836001015160c01c90565b905080156127c95760405162461bcd60e51b815260206004820152601360248201527f696e76616c696420626174636820696e646578000000000000000000000000006044820152606401610a70565b5f6127d5846079015190565b9050806128245760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a70565b600984015160c01c156128795760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a70565b5f612885856019015190565b036128d25760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a70565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440146128fe856039015190565b1461294b5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a70565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b612a3361338b565b8015612b5457612a41613d36565b60a65460ff1615612b135760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612a959084906143c5565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b612b5c613d90565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612b36565b50565b335f908152609f602052604090205460ff16612be45760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a70565b60a85415612c345760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612c3c613400565b60a65460ff1615612c8f5760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a70565b8167ffffffffffffffff16609d5410612cea5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a160205260409020548114612d515760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b612d648267ffffffffffffffff16611326565b612db05760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612e2b5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a260205260409020600101544210612ebb5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a70565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2f9190614496565b341015612f7e5760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b9976346040516130d091815260200190565b60405180910390a35f609d5460016130e891906143c5565b90505b609e548111613140578267ffffffffffffffff16811461312e576099545f82815260a26020526040812060010180549091906131289084906143c5565b90915550505b8061313881614567565b9150506130eb565b505060a6805460ff1916600117905550565b335f90815260a56020526040812054908190036131b15760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a70565b335f90815260a560205260408120556131ca8282613c8b565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a8260405161320591815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b03161580159061134e5750505f90815260a46020526040902060030154610100900460ff161590565b61326361338b565b5f8111801561327457506098548114155b6132c05760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a70565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c76565b61330661338b565b6001600160a01b0381166133825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a70565b612b838161373f565b6033546001600160a01b03163314611f655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a70565b5f805f6133f28585613dc9565b812090969095509350505050565b60655460ff1615611f655760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a70565b805f0361345e575050565b8082035f5b8281101561350a5761010081840381111561347d57508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b1580156134e0575f80fd5b505af11580156134f2573d5f803e3d5ffd5b50505050610100830192505061010081019050613463565b50505050565b60405183515f9182916020870191908190849061352e908590613e32565b90506002840193505f5b818110156135b257603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613588603c8361459e565b61359290876143c5565b90505f6135a382603a015160f01c90565b97909701965050600101613538565b506020850282016040525b801561367b575f6135d285603a015160f01c90565b90506135e083828b8b613ec7565b92505f6135f1866038015160f01c90565b9050818110156136435760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a70565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016135bd565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f6136af828651613e32565b90505f5b6136be6001836143d8565b8110156136d457603c93909301926001016136b3565b505f6136e1845160c01c90565b9695505050505050565b60605f808080806136fe888a018a6146a2565b955095509550955095505081871061371c5794506137389350505050565b838710613730578295505050505050613738565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166138245760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65613f95565b5f54610100900460ff166138a85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f6561401d565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af1158015613934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139589190614496565b5f86815260a460205260409020600101549091506139779082906143c5565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a5909152812080549091906139b69084906143c5565b90915550506040516139c990849061473f565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613a595760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a70565b5f613a68846001015160c01c90565b90505f613a76856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613aa5876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a848613b67885160f81c90565b858888866040518663ffffffff1660e01b8152600401613b8b95949392919061476b565b5f6040518083038186803b158015613ba1575f80fd5b505afa158015613bb3573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613be3908461459e565b613bed919061479c565b9050613bf981836143d8565b60aa5f828254613c0991906143c5565b90915550506001600160a01b0384165f90815260a5602052604081208054839290613c359084906143c5565b9091555050604051613c4890849061473f565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613d32575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613cda576040519150601f19603f3d011682016040523d82523d5f602084013e613cdf565b606091505b5050905080613d305760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a70565b505b5050565b613d3e613400565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613d733390565b6040516001600160a01b03909116815260200160405180910390a1565b613d986140a2565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613d73565b5f8160f9811015613e1c5760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a70565b6040519150808483378082016040529250929050565b5f613e3e835160f01c90565b9050805f03613e79576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e84603c8261459e565b613e8f9060026143c5565b821461134e576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03613ed6575083613f8d565b609b546001600160a01b03165f5b85811015613f87576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613f4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f6e9190614496565b8852506020909601956001948501949384019301613ee4565b50859150505b949350505050565b5f54610100900460ff166140115760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b6065805460ff19169055565b5f54610100900460ff166140995760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f653361373f565b60655460ff16611f655760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a70565b5f60208284031215614104575f80fd5b5035919050565b80356001600160a01b0381168114614121575f80fd5b919050565b5f60208284031215614136575f80fd5b6137388261410b565b5f8083601f84011261414f575f80fd5b50813567ffffffffffffffff811115614166575f80fd5b60208301915083602082850101111561417d575f80fd5b9250929050565b5f805f60408486031215614196575f80fd5b833567ffffffffffffffff8111156141ac575f80fd5b6141b88682870161413f565b909790965060209590950135949350505050565b5f80602083850312156141dd575f80fd5b823567ffffffffffffffff8111156141f3575f80fd5b6141ff8582860161413f565b90969095509350505050565b5f806040838503121561421c575f80fd5b823567ffffffffffffffff80821115614233575f80fd5b9084019060c08287031215614246575f80fd5b9092506020840135908082111561425b575f80fd5b5083016060818603121561426d575f80fd5b809150509250929050565b5f805f805f8060c0878903121561428d575f80fd5b6142968761410b565b95506142a46020880161410b565b94506142b26040880161410b565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f80604085870312156142e6575f80fd5b843567ffffffffffffffff808211156142fd575f80fd5b6143098883890161413f565b90965094506020870135915080821115614321575f80fd5b5061432e8782880161413f565b95989497509550505050565b8015158114612b83575f80fd5b5f60208284031215614357575f80fd5b81356137388161433a565b5f8060408385031215614373575f80fd5b823567ffffffffffffffff8116811461438a575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561134e5761134e614398565b8181038181111561134e5761134e614398565b5f602082840312156143fb575f80fd5b81516137388161433a565b5f60208284031215614416575f80fd5b813560ff81168114613738575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614459575f80fd5b83018035915067ffffffffffffffff821115614473575f80fd5b60200191503681900382131561417d575f80fd5b818382375f9101908152919050565b5f602082840312156144a6575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b8181101561453e5784516001600160a01b031683529383019391830191600101614519565b505087604086015284810360608601526145598187896144ad565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361459757614597614398565b5060010190565b808202811582820484141761134e5761134e614398565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145f1575f80fd5b8135602067ffffffffffffffff8083111561460e5761460e6145b5565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614651576146516145b5565b6040529384526020818701810194908101925087851115614670575f80fd5b6020870191505b84821015614697576146888261410b565b83529183019190830190614677565b979650505050505050565b5f805f805f8060c087890312156146b7575f80fd5b86359550602087013567ffffffffffffffff808211156146d5575f80fd5b6146e18a838b016145e2565b96506040890135955060608901359150808211156146fd575f80fd5b6147098a838b016145e2565b94506080890135935060a0890135915080821115614725575f80fd5b5061473289828a016145e2565b9150509295509295509295565b5f82515f5b8181101561475e5760208186018101518583015201614744565b505f920191825250919050565b858152846020820152608060408201525f61478a6080830185876144ad565b90508260608301529695505050505050565b5f826147cf577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a", } // RollupABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/rollup_more.go b/bindings/bindings/rollup_more.go index 3543f43d6..3581703c1 100644 --- a/bindings/bindings/rollup_more.go +++ b/bindings/bindings/rollup_more.go @@ -13,7 +13,7 @@ const RollupStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"co var RollupStorageLayout = new(solc.StorageLayout) -var RollupDeployedBin = "0x608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610a0c578063f2fde38b14610a2b578063fb1e8b0414610a4a575f80fd5b8063ddd8a3dc146109ac578063de8b3035146109d8578063dff7827e146109f7575f80fd5b8063cd4edc69116100b7578063cd4edc6914610965578063ce5db8d614610978578063d279c1911461098d575f80fd5b8063b35dac4e14610908578063b3e0a50914610927578063bedb86fb14610946575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d146108a9578063b31a77d3146108d4578063b3484425146108e9575f80fd5b8063a415d8dc14610847578063a479265d14610875578063a4f209b01461088a575f80fd5b80638f1d37761161016c5780638f1d37761461072d578063910129d4146107f757806397fc007c14610828575f80fd5b8063728cdbca146106cb57806388b1ea09146106ea5780638da5cb5b14610703575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa1461066d5780636c578c1d14610698578063715018a6146106b7575f80fd5b80635ef7a94a146105a25780635f77cf1d14610602578063612672901461064e575f80fd5b80634a8d544f1161022c5780634a8d544f1461055957806357e0af6c1461056c5780635c975abb1461058b575f80fd5b80632b7ac3f3146104c75780633b70c18a146105185780633e001b6614610544575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b366004614b17565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b50610396610391366004614b56565b610a5f565b005b3480156103a3575f80fd5b506103966103b2366004614bb4565b610b83565b3480156103c2575f80fd5b5061033f6103d1366004614b17565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b50610396610408366004614bfc565b610f6f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c366004614b17565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c366004614b17565b61156e565b34801561047c575f80fd5b5061036961048b366004614b17565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b6366004614b17565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161034b565b348015610523575f80fd5b50609b546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b34801561054f575f80fd5b5061036960aa5481565b610396610567366004614c3b565b61159c565b348015610577575f80fd5b50610396610586366004614b17565b611f7e565b348015610596575f80fd5b5060655460ff1661033f565b3480156105ad575f80fd5b506105e26105bc366004614b17565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b34801561060d575f80fd5b506106357f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610659575f80fd5b50610396610668366004614b17565b612043565b348015610678575f80fd5b50610369610687366004614b17565b60ab6020525f908152604090205481565b3480156106a3575f80fd5b506103966106b2366004614b56565b6122a6565b3480156106c2575f80fd5b506103966123b5565b3480156106d6575f80fd5b506103966106e5366004614ca8565b6123c8565b3480156106f5575f80fd5b5060a65461033f9060ff1681565b34801561070e575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166104f3565b348015610738575f80fd5b506107a6610747366004614b17565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff8316936801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16929060ff8082169161010090041686565b6040805167ffffffffffffffff909716875273ffffffffffffffffffffffffffffffffffffffff909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b348015610802575f80fd5b5061033f610811366004614b17565b5f90815260a4602052604090206003015460ff1690565b348015610833575f80fd5b50610396610842366004614b56565b612791565b348015610852575f80fd5b5061033f610861366004614b56565b609f6020525f908152604090205460ff1681565b348015610880575f80fd5b5061036960995481565b348015610895575f80fd5b506103966108a4366004614b17565b6128b5565b3480156108b4575f80fd5b506103696108c3366004614b56565b60a56020525f908152604090205481565b3480156108df575f80fd5b5061036960a85481565b3480156108f4575f80fd5b50610396610903366004614d03565b61297f565b348015610913575f80fd5b50610396610922366004614b56565b612c4e565b348015610932575f80fd5b50610396610941366004614bfc565b612cb4565b348015610951575f80fd5b50610396610960366004614d77565b613038565b610396610973366004614d92565b6131cb565b348015610983575f80fd5b5061036960985481565b348015610998575f80fd5b506103966109a7366004614b56565b6138e0565b3480156109b7575f80fd5b506097546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109e3575f80fd5b5061033f6109f2366004614b17565b6139c6565b348015610a02575f80fd5b50610369609a5481565b348015610a17575f80fd5b50610396610a26366004614b17565b613a1d565b348015610a36575f80fd5b50610396610a45366004614b56565b613ada565b348015610a55575f80fd5b5061036960a95481565b610a67613b8e565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1615610afb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610b8b613b8e565b5f8111610bf4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610af2565b5f80610c008585613c0f565b915091505f610c13836001015160c01c90565b5f81815260a160205260409020549091508214610c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b5f60a181610c9a8785614df5565b81526020019081526020015f205414610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610af2565b609d548111610dc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610af2565b610dd0600182614e08565b609e555b8315610f6757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610e1c816139c6565b15610ea2575f81815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091610e74908490614df5565b909155505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610f1f575060a85481145b15610f29575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610dd4575b505050505050565b60a85415610fd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b610fe1613c2a565b5f80610fed8484613c0f565b915091505f611000836001015160c01c90565b5f81815260a160205260409020549091508214611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b6110828161156e565b6110e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610af2565b6110f1816139c6565b15611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610af2565b5f81815260a4602052604090206003015460ff16156111d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610af2565b5f81815260a2602052604090206001015442101561124d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610af2565b605983015160a05f611260600185614e08565b81526020019081526020015f2054146112d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610af2565b5f81815260a060205260409020541561134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610af2565b80609d54600101146113b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610af2565b609d819055600160a35f6113cd866099015190565b815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905560798301515f82815260a0602052604090205561143a61142d846011015160c01c90565b600985015160c01c613c97565b60a25f611448600184614e08565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906114819084614e08565b81526020019081526020015f205f905560a45f6001836114a19190614e08565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d61154a866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061159657505f82815260a1602052604090205415155b92915050565b60975473ffffffffffffffffffffffffffffffffffffffff166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116469190614e1b565b6116ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610af2565b60a85415611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b61171e613c2a565b61172b6020830183614e36565b60ff1615611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610af2565b5f6117a36040840184614e56565b9150508061180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610af2565b6060830135611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610af2565b60808301356118e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610af2565b5f806118fa6118f56020870187614e56565b613c0f565b915091505f61190d836001015160c01c90565b90505f60a18161191e846001614df5565b81526020019081526020015f205414611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610af2565b609e5481146119fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610af2565b5f81815260a160205260409020548214611a74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610af2565b5f81815260ab6020526040902054606087013514611aee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610af2565b5f611afd846011015160c01c90565b90505f8080611b4f611b1260408c018c614e56565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150613d619050565b600196909601959485019493840193925090505f804915611b71575f49611b93565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f9611bbe89611bb660208f018f614e36565b60ff16613ef8565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a0152611c2d89611c0e60208e018e614e56565b604051611c1c929190614eb7565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff1615611c9a5760a7545f90815260a460205260409020600201546099544291611c8d91614df5565b611c979190614e08565b90505b60405180608001604052804281526020018260985442611cba9190614df5565b611cc49190614df5565b8152602001611d158f8060400190611cdc9190614e56565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613eff92505050565b815260975460209091019073ffffffffffffffffffffffffffffffffffffffff1663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015611da3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dc79190614ec6565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e89905560975473ffffffffffffffffffffffffffffffffffffffff1692506374fe27b791508c3590611e3c90611e36908f018f614e56565b5f613f56565b5f8e8060400190611e4d9190614e56565b6040518663ffffffff1660e01b8152600401611e6d959493929190614f24565b602060405180830381865afa158015611e88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eac9190614e1b565b611f38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610af2565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611f86613b8e565b5f81118015611f9757506099548114155b611ffd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610af2565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff1615801561206357505f5460ff8083169116105b6120ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610af2565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff83161761010017905561212a5f5460ff1690565b60ff16600214612196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610af2565b81612223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610af2565b609e545f90815260ab602052604090205461224c57609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001612037565b6122ae613b8e565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1661233c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610af2565b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610b78565b6123bd613b8e565b6123c65f613faa565b565b5f54610100900460ff16158080156123e657505f54600160ff909116105b806123ff5750303b1580156123ff57505f5460ff166001145b61248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610af2565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156124e7575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8616158061251e575073ffffffffffffffffffffffffffffffffffffffff8516155b15612555576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166125d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610af2565b6125da614020565b6125e26140be565b6097805473ffffffffffffffffffffffffffffffffffffffff808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015612788575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b612799613b8e565b73ffffffffffffffffffffffffffffffffffffffff8116158015906127d95750609c5473ffffffffffffffffffffffffffffffffffffffff828116911614155b61283f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610af2565b609c805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b6128bd613b8e565b5f811180156128cd575060648111155b80156128db575060a9548114155b612941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610af2565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101612037565b60a854156129e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b6129f1613c2a565b5f806129fd8686613c0f565b915091505f612a10836001015160c01c90565b5f81815260a160205260409020549091508214612a89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b612a92816139c6565b612af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610af2565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556099546002909101544291612b6f91614df5565b11612c03575f81815260a460209081526040808320600390810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152612bfe9183919061415c565b612788565b612c0e8386866142df565b61278881336040518060400160405280600d81526020017f50726f6f662073756363657373000000000000000000000000000000000000008152506144b9565b612c56613b8e565b60aa80545f909155612c68828261459f565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101612037565b612cbc613b8e565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415612d4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610af2565b5f80612d598484613c0f565b915091505f612d6c836001015160c01c90565b90505f612d7a846079015190565b905080612de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610af2565b600984015160c01c15612e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610af2565b5f612e5e856019015190565b03612ec5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610af2565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014612ef1856039015190565b14612f58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610af2565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b613040613b8e565b80156131995761304e614671565b60a65460ff161561314b5760a7545f90815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a590925282208054919290916130af908490614df5565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a150565b6131a16146f6565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361316e565b50565b335f908152609f602052604090205460ff16613243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610af2565b60a854156132ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b6132b5613c2a565b60a65460ff1615613322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610af2565b8167ffffffffffffffff16609d5410613397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a160205260409020548114613418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b61342b8267ffffffffffffffff1661156e565b613491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a4602052604090205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1615613533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a2602052604090206001015442106135dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610af2565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613647573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061366b9190614ec6565b3410156136d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610af2565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a49095529690962094518554925173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009093169290921792909217905573ffffffffffffffffffffffffffffffffffffffff168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b99763460405161384091815260200190565b60405180910390a35f609d5460016138589190614df5565b90505b609e5481116138b0578267ffffffffffffffff16811461389e576099545f82815260a2602052604081206001018054909190613898908490614df5565b90915550505b806138a881614fa4565b91505061385b565b505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b335f90815260a5602052604081205490819003613959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610af2565b335f90815260a56020526040812055613972828261459f565b8173ffffffffffffffffffffffffffffffffffffffff167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a826040516139ba91815260200190565b60405180910390a25050565b5f81815260a4602052604081205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16158015906115965750505f90815260a46020526040902060030154610100900460ff161590565b613a25613b8e565b5f81118015613a3657506098548114155b613a9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610af2565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101612037565b613ae2613b8e565b73ffffffffffffffffffffffffffffffffffffffff8116613b85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610af2565b6131c881613faa565b60335473ffffffffffffffffffffffffffffffffffffffff1633146123c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610af2565b5f805f613c1c858561474d565b812090969095509350505050565b60655460ff16156123c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610af2565b805f03613ca2575050565b8082035f5b82811015613d5b57610100818403811115613cc157508083035b609b546040517f3c7f5283000000000000000000000000000000000000000000000000000000008152600481018590526024810183905273ffffffffffffffffffffffffffffffffffffffff90911690633c7f5283906044015f604051808303815f87803b158015613d31575f80fd5b505af1158015613d43573d5f803e3d5ffd5b50505050610100830192505061010081019050613ca7565b50505050565b60405183515f91829160208701919081908490613d7f9085906147cf565b90506002840193505f5b81811015613e0357603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613dd9603c83614fdb565b613de39087614df5565b90505f613df482603a015160f01c90565b97909701965050600101613d89565b506020850282016040525b8015613ee6575f613e2385603a015160f01c90565b9050613e3183828b8b614864565b92505f613e42866038015160f01c90565b905081811015613eae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610af2565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613e0e565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613f1a8286516147cf565b90505f5b613f29600183614e08565b811015613f3f57603c9390930192600101613f1e565b505f613f4c845160c01c90565b9695505050505050565b60605f80808080613f69888a018a6150df565b9550955095509550955050818710613f87579450613fa39350505050565b838710613f9b578295505050505050613fa3565b509293505050505b9392505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166140b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123c661494c565b5f54610100900460ff16614154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123c6614a0c565b60a88390555f83815260a460205260408082205460975491517f45bc4d10000000000000000000000000000000000000000000000000000000008152600481018690526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff908116939216906345bc4d10906024016020604051808303815f875af11580156141ed573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142119190614ec6565b5f86815260a46020526040902060010154909150614230908290614df5565b5f86815260a4602090815260408083205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16835260a59091528120805490919061427c908490614df5565b909155505060405161428f90849061517c565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff84169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80614346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610af2565b5f614355846001015160c01c90565b90505f614363856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000614392876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c5490915073ffffffffffffffffffffffffffffffffffffffff16632c09a848614461885160f81c90565b858888866040518663ffffffff1660e01b81526004016144859594939291906151a8565b5f6040518083038186803b15801561449b575f80fd5b505afa1580156144ad573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906144dd9084614fdb565b6144e791906151d9565b90506144f38183614e08565b60aa5f8282546145039190614df5565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f90815260a560205260408120805483929061453c908490614df5565b909155505060405161454f90849061517c565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff86169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b801561466d575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f81146145fb576040519150601f19603f3d011682016040523d82523d5f602084013e614600565b606091505b505090508061466b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610af2565b505b5050565b614679613c2a565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586146cc3390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6146fe614aab565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336146cc565b5f8160f981146147b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f626174636820686561646572206c656e677468206d75737420626520323439006044820152606401610af2565b6040519150808483378082016040529250929050565b5f6147db835160f01c90565b9050805f03614816576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614821603c82614fdb565b61482c906002614df5565b8214611596576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03614873575083614944565b609b5473ffffffffffffffffffffffffffffffffffffffff165f5b8581101561493e576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f9073ffffffffffffffffffffffffffffffffffffffff84169063ae453cd590602401602060405180830381865afa158015614901573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149259190614ec6565b885250602090960195600194850194938401930161488e565b50859150505b949350505050565b5f54610100900460ff166149e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff16614aa2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123c633613faa565b60655460ff166123c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610af2565b5f60208284031215614b27575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114614b51575f80fd5b919050565b5f60208284031215614b66575f80fd5b613fa382614b2e565b5f8083601f840112614b7f575f80fd5b50813567ffffffffffffffff811115614b96575f80fd5b602083019150836020828501011115614bad575f80fd5b9250929050565b5f805f60408486031215614bc6575f80fd5b833567ffffffffffffffff811115614bdc575f80fd5b614be886828701614b6f565b909790965060209590950135949350505050565b5f8060208385031215614c0d575f80fd5b823567ffffffffffffffff811115614c23575f80fd5b614c2f85828601614b6f565b90969095509350505050565b5f8060408385031215614c4c575f80fd5b823567ffffffffffffffff80821115614c63575f80fd5b9084019060c08287031215614c76575f80fd5b90925060208401359080821115614c8b575f80fd5b50830160608186031215614c9d575f80fd5b809150509250929050565b5f805f805f8060c08789031215614cbd575f80fd5b614cc687614b2e565b9550614cd460208801614b2e565b9450614ce260408801614b2e565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614d16575f80fd5b843567ffffffffffffffff80821115614d2d575f80fd5b614d3988838901614b6f565b90965094506020870135915080821115614d51575f80fd5b50614d5e87828801614b6f565b95989497509550505050565b80151581146131c8575f80fd5b5f60208284031215614d87575f80fd5b8135613fa381614d6a565b5f8060408385031215614da3575f80fd5b823567ffffffffffffffff81168114614dba575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561159657611596614dc8565b8181038181111561159657611596614dc8565b5f60208284031215614e2b575f80fd5b8151613fa381614d6a565b5f60208284031215614e46575f80fd5b813560ff81168114613fa3575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614e89575f80fd5b83018035915067ffffffffffffffff821115614ea3575f80fd5b602001915036819003821315614bad575f80fd5b818382375f9101908152919050565b5f60208284031215614ed6575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b81811015614f7b57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101614f49565b50508760408601528481036060860152614f96818789614edd565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614fd457614fd4614dc8565b5060010190565b808202811582820484141761159657611596614dc8565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f83011261502e575f80fd5b8135602067ffffffffffffffff8083111561504b5761504b614ff2565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110848211171561508e5761508e614ff2565b60405293845260208187018101949081019250878511156150ad575f80fd5b6020870191505b848210156150d4576150c582614b2e565b835291830191908301906150b4565b979650505050505050565b5f805f805f8060c087890312156150f4575f80fd5b86359550602087013567ffffffffffffffff80821115615112575f80fd5b61511e8a838b0161501f565b965060408901359550606089013591508082111561513a575f80fd5b6151468a838b0161501f565b94506080890135935060a0890135915080821115615162575f80fd5b5061516f89828a0161501f565b9150509295509295509295565b5f82515f5b8181101561519b5760208186018101518583015201615181565b505f920191825250919050565b858152846020820152608060408201525f6151c7608083018587614edd565b90508260608301529695505050505050565b5f8261520c577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a" +var RollupDeployedBin = "0x608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610a0c578063f2fde38b14610a2b578063fb1e8b0414610a4a575f80fd5b8063ddd8a3dc146109ac578063de8b3035146109d8578063dff7827e146109f7575f80fd5b8063cd4edc69116100b7578063cd4edc6914610965578063ce5db8d614610978578063d279c1911461098d575f80fd5b8063b35dac4e14610908578063b3e0a50914610927578063bedb86fb14610946575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d146108a9578063b31a77d3146108d4578063b3484425146108e9575f80fd5b8063a415d8dc14610847578063a479265d14610875578063a4f209b01461088a575f80fd5b80638f1d37761161016c5780638f1d37761461072d578063910129d4146107f757806397fc007c14610828575f80fd5b8063728cdbca146106cb57806388b1ea09146106ea5780638da5cb5b14610703575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa1461066d5780636c578c1d14610698578063715018a6146106b7575f80fd5b80635ef7a94a146105a25780635f77cf1d14610602578063612672901461064e575f80fd5b80634a8d544f1161022c5780634a8d544f1461055957806357e0af6c1461056c5780635c975abb1461058b575f80fd5b80632b7ac3f3146104c75780633b70c18a146105185780633e001b6614610544575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b366004614b80565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b50610396610391366004614bbf565b610a5f565b005b3480156103a3575f80fd5b506103966103b2366004614c1d565b610b83565b3480156103c2575f80fd5b5061033f6103d1366004614b80565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b50610396610408366004614c65565b610f6f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c366004614b80565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c366004614b80565b61156e565b34801561047c575f80fd5b5061036961048b366004614b80565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b6366004614b80565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161034b565b348015610523575f80fd5b50609b546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b34801561054f575f80fd5b5061036960aa5481565b610396610567366004614ca4565b61159c565b348015610577575f80fd5b50610396610586366004614b80565b611f7e565b348015610596575f80fd5b5060655460ff1661033f565b3480156105ad575f80fd5b506105e26105bc366004614b80565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b34801561060d575f80fd5b506106357f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610659575f80fd5b50610396610668366004614b80565b612043565b348015610678575f80fd5b50610369610687366004614b80565b60ab6020525f908152604090205481565b3480156106a3575f80fd5b506103966106b2366004614bbf565b6122a6565b3480156106c2575f80fd5b506103966123b5565b3480156106d6575f80fd5b506103966106e5366004614d11565b6123c8565b3480156106f5575f80fd5b5060a65461033f9060ff1681565b34801561070e575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166104f3565b348015610738575f80fd5b506107a6610747366004614b80565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff8316936801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16929060ff8082169161010090041686565b6040805167ffffffffffffffff909716875273ffffffffffffffffffffffffffffffffffffffff909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b348015610802575f80fd5b5061033f610811366004614b80565b5f90815260a4602052604090206003015460ff1690565b348015610833575f80fd5b50610396610842366004614bbf565b612791565b348015610852575f80fd5b5061033f610861366004614bbf565b609f6020525f908152604090205460ff1681565b348015610880575f80fd5b5061036960995481565b348015610895575f80fd5b506103966108a4366004614b80565b6128b5565b3480156108b4575f80fd5b506103696108c3366004614bbf565b60a56020525f908152604090205481565b3480156108df575f80fd5b5061036960a85481565b3480156108f4575f80fd5b50610396610903366004614d6c565b61297f565b348015610913575f80fd5b50610396610922366004614bbf565b612c4e565b348015610932575f80fd5b50610396610941366004614c65565b612cb4565b348015610951575f80fd5b50610396610960366004614de0565b6130a0565b610396610973366004614dfb565b613233565b348015610983575f80fd5b5061036960985481565b348015610998575f80fd5b506103966109a7366004614bbf565b613948565b3480156109b7575f80fd5b506097546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109e3575f80fd5b5061033f6109f2366004614b80565b613a2e565b348015610a02575f80fd5b50610369609a5481565b348015610a17575f80fd5b50610396610a26366004614b80565b613a85565b348015610a36575f80fd5b50610396610a45366004614bbf565b613b42565b348015610a55575f80fd5b5061036960a95481565b610a67613bf6565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1615610afb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610b8b613bf6565b5f8111610bf4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610af2565b5f80610c008585613c77565b915091505f610c13836001015160c01c90565b5f81815260a160205260409020549091508214610c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b5f60a181610c9a8785614e5e565b81526020019081526020015f205414610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610af2565b609d548111610dc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610af2565b610dd0600182614e71565b609e555b8315610f6757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610e1c81613a2e565b15610ea2575f81815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091610e74908490614e5e565b909155505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610f1f575060a85481145b15610f29575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610dd4575b505050505050565b60a85415610fd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b610fe1613c92565b5f80610fed8484613c77565b915091505f611000836001015160c01c90565b5f81815260a160205260409020549091508214611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b6110828161156e565b6110e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610af2565b6110f181613a2e565b15611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610af2565b5f81815260a4602052604090206003015460ff16156111d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610af2565b5f81815260a2602052604090206001015442101561124d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610af2565b605983015160a05f611260600185614e71565b81526020019081526020015f2054146112d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610af2565b5f81815260a060205260409020541561134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610af2565b80609d54600101146113b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610af2565b609d819055600160a35f6113cd866099015190565b815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905560798301515f82815260a0602052604090205561143a61142d846011015160c01c90565b600985015160c01c613cff565b60a25f611448600184614e71565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906114819084614e71565b81526020019081526020015f205f905560a45f6001836114a19190614e71565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d61154a866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061159657505f82815260a1602052604090205415155b92915050565b60975473ffffffffffffffffffffffffffffffffffffffff166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116469190614e84565b6116ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610af2565b60a85415611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b61171e613c92565b61172b6020830183614e9f565b60ff1615611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610af2565b5f6117a36040840184614ebf565b9150508061180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610af2565b6060830135611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610af2565b60808301356118e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610af2565b5f806118fa6118f56020870187614ebf565b613c77565b915091505f61190d836001015160c01c90565b90505f60a18161191e846001614e5e565b81526020019081526020015f205414611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610af2565b609e5481146119fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610af2565b5f81815260a160205260409020548214611a74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610af2565b5f81815260ab6020526040902054606087013514611aee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610af2565b5f611afd846011015160c01c90565b90505f8080611b4f611b1260408c018c614ebf565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150613dc99050565b600196909601959485019493840193925090505f804915611b71575f49611b93565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f9611bbe89611bb660208f018f614e9f565b60ff16613f60565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a0152611c2d89611c0e60208e018e614ebf565b604051611c1c929190614f20565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff1615611c9a5760a7545f90815260a460205260409020600201546099544291611c8d91614e5e565b611c979190614e71565b90505b60405180608001604052804281526020018260985442611cba9190614e5e565b611cc49190614e5e565b8152602001611d158f8060400190611cdc9190614ebf565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613f6792505050565b815260975460209091019073ffffffffffffffffffffffffffffffffffffffff1663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015611da3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dc79190614f2f565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e89905560975473ffffffffffffffffffffffffffffffffffffffff1692506374fe27b791508c3590611e3c90611e36908f018f614ebf565b5f613fbe565b5f8e8060400190611e4d9190614ebf565b6040518663ffffffff1660e01b8152600401611e6d959493929190614f8d565b602060405180830381865afa158015611e88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eac9190614e84565b611f38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610af2565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611f86613bf6565b5f81118015611f9757506099548114155b611ffd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610af2565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff1615801561206357505f5460ff8083169116105b6120ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610af2565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff83161761010017905561212a5f5460ff1690565b60ff16600214612196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610af2565b81612223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610af2565b609e545f90815260ab602052604090205461224c57609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001612037565b6122ae613bf6565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1661233c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610af2565b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610b78565b6123bd613bf6565b6123c65f614012565b565b5f54610100900460ff16158080156123e657505f54600160ff909116105b806123ff5750303b1580156123ff57505f5460ff166001145b61248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610af2565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156124e7575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8616158061251e575073ffffffffffffffffffffffffffffffffffffffff8516155b15612555576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166125d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610af2565b6125da614088565b6125e2614126565b6097805473ffffffffffffffffffffffffffffffffffffffff808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015612788575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b612799613bf6565b73ffffffffffffffffffffffffffffffffffffffff8116158015906127d95750609c5473ffffffffffffffffffffffffffffffffffffffff828116911614155b61283f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610af2565b609c805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b6128bd613bf6565b5f811180156128cd575060648111155b80156128db575060a9548114155b612941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610af2565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101612037565b60a854156129e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b6129f1613c92565b5f806129fd8686613c77565b915091505f612a10836001015160c01c90565b5f81815260a160205260409020549091508214612a89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b612a9281613a2e565b612af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610af2565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556099546002909101544291612b6f91614e5e565b11612c03575f81815260a460209081526040808320600390810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152612bfe918391906141c4565b612788565b612c0e838686614347565b61278881336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250614521565b612c56613bf6565b60aa80545f909155612c688282614607565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101612037565b612cbc613bf6565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415612d4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610af2565b5f80612d598484613c77565b915091505f612d6c836001015160c01c90565b90508015612dd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420626174636820696e646578000000000000000000000000006044820152606401610af2565b5f612de2846079015190565b905080612e4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610af2565b600984015160c01c15612eba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610af2565b5f612ec6856019015190565b03612f2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610af2565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014612f59856039015190565b14612fc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610af2565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b6130a8613bf6565b8015613201576130b66146d9565b60a65460ff16156131b35760a7545f90815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091613117908490614e5e565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a150565b61320961475e565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336131d6565b50565b335f908152609f602052604090205460ff166132ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610af2565b60a85415613315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b61331d613c92565b60a65460ff161561338a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610af2565b8167ffffffffffffffff16609d54106133ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a160205260409020548114613480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b6134938267ffffffffffffffff1661156e565b6134f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a4602052604090205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff161561359b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a260205260409020600101544210613645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610af2565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136d39190614f2f565b34101561373c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610af2565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a49095529690962094518554925173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009093169290921792909217905573ffffffffffffffffffffffffffffffffffffffff168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b9976346040516138a891815260200190565b60405180910390a35f609d5460016138c09190614e5e565b90505b609e548111613918578267ffffffffffffffff168114613906576099545f82815260a2602052604081206001018054909190613900908490614e5e565b90915550505b806139108161500d565b9150506138c3565b505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b335f90815260a56020526040812054908190036139c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610af2565b335f90815260a560205260408120556139da8282614607565b8173ffffffffffffffffffffffffffffffffffffffff167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a82604051613a2291815260200190565b60405180910390a25050565b5f81815260a4602052604081205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16158015906115965750505f90815260a46020526040902060030154610100900460ff161590565b613a8d613bf6565b5f81118015613a9e57506098548114155b613b04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610af2565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101612037565b613b4a613bf6565b73ffffffffffffffffffffffffffffffffffffffff8116613bed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610af2565b61323081614012565b60335473ffffffffffffffffffffffffffffffffffffffff1633146123c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610af2565b5f805f613c8485856147b5565b812090969095509350505050565b60655460ff16156123c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610af2565b805f03613d0a575050565b8082035f5b82811015613dc357610100818403811115613d2957508083035b609b546040517f3c7f5283000000000000000000000000000000000000000000000000000000008152600481018590526024810183905273ffffffffffffffffffffffffffffffffffffffff90911690633c7f5283906044015f604051808303815f87803b158015613d99575f80fd5b505af1158015613dab573d5f803e3d5ffd5b50505050610100830192505061010081019050613d0f565b50505050565b60405183515f91829160208701919081908490613de7908590614838565b90506002840193505f5b81811015613e6b57603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613e41603c83615044565b613e4b9087614e5e565b90505f613e5c82603a015160f01c90565b97909701965050600101613df1565b506020850282016040525b8015613f4e575f613e8b85603a015160f01c90565b9050613e9983828b8b6148cd565b92505f613eaa866038015160f01c90565b905081811015613f16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610af2565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613e76565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613f82828651614838565b90505f5b613f91600183614e71565b811015613fa757603c9390930192600101613f86565b505f613fb4845160c01c90565b9695505050505050565b60605f80808080613fd1888a018a615148565b9550955095509550955050818710613fef57945061400b9350505050565b83871061400357829550505050505061400b565b509293505050505b9392505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff1661411e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123c66149b5565b5f54610100900460ff166141bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123c6614a75565b60a88390555f83815260a460205260408082205460975491517f45bc4d10000000000000000000000000000000000000000000000000000000008152600481018690526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff908116939216906345bc4d10906024016020604051808303815f875af1158015614255573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142799190614f2f565b5f86815260a46020526040902060010154909150614298908290614e5e565b5f86815260a4602090815260408083205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16835260a5909152812080549091906142e4908490614e5e565b90915550506040516142f79084906151e5565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff84169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b806143ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610af2565b5f6143bd846001015160c01c90565b90505f6143cb856039015190565b90505f7f00000000000000000000000000000000000000000000000000000000000000006143fa876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c5490915073ffffffffffffffffffffffffffffffffffffffff16632c09a8486144c9885160f81c90565b858888866040518663ffffffff1660e01b81526004016144ed959493929190615211565b5f6040518083038186803b158015614503575f80fd5b505afa158015614515573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906145459084615044565b61454f9190615242565b905061455b8183614e71565b60aa5f82825461456b9190614e5e565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f90815260a56020526040812080548392906145a4908490614e5e565b90915550506040516145b79084906151e5565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff86169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80156146d5575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114614663576040519150601f19603f3d011682016040523d82523d5f602084013e614668565b606091505b50509050806146d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610af2565b505b5050565b6146e1613c92565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586147343390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b614766614b14565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33614734565b5f8160f9811015614822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610af2565b6040519150808483378082016040529250929050565b5f614844835160f01c90565b9050805f0361487f576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61488a603c82615044565b614895906002614e5e565b8214611596576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f036148dc5750836149ad565b609b5473ffffffffffffffffffffffffffffffffffffffff165f5b858110156149a7576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f9073ffffffffffffffffffffffffffffffffffffffff84169063ae453cd590602401602060405180830381865afa15801561496a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061498e9190614f2f565b88525060209096019560019485019493840193016148f7565b50859150505b949350505050565b5f54610100900460ff16614a4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff16614b0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123c633614012565b60655460ff166123c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610af2565b5f60208284031215614b90575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114614bba575f80fd5b919050565b5f60208284031215614bcf575f80fd5b61400b82614b97565b5f8083601f840112614be8575f80fd5b50813567ffffffffffffffff811115614bff575f80fd5b602083019150836020828501011115614c16575f80fd5b9250929050565b5f805f60408486031215614c2f575f80fd5b833567ffffffffffffffff811115614c45575f80fd5b614c5186828701614bd8565b909790965060209590950135949350505050565b5f8060208385031215614c76575f80fd5b823567ffffffffffffffff811115614c8c575f80fd5b614c9885828601614bd8565b90969095509350505050565b5f8060408385031215614cb5575f80fd5b823567ffffffffffffffff80821115614ccc575f80fd5b9084019060c08287031215614cdf575f80fd5b90925060208401359080821115614cf4575f80fd5b50830160608186031215614d06575f80fd5b809150509250929050565b5f805f805f8060c08789031215614d26575f80fd5b614d2f87614b97565b9550614d3d60208801614b97565b9450614d4b60408801614b97565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614d7f575f80fd5b843567ffffffffffffffff80821115614d96575f80fd5b614da288838901614bd8565b90965094506020870135915080821115614dba575f80fd5b50614dc787828801614bd8565b95989497509550505050565b8015158114613230575f80fd5b5f60208284031215614df0575f80fd5b813561400b81614dd3565b5f8060408385031215614e0c575f80fd5b823567ffffffffffffffff81168114614e23575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561159657611596614e31565b8181038181111561159657611596614e31565b5f60208284031215614e94575f80fd5b815161400b81614dd3565b5f60208284031215614eaf575f80fd5b813560ff8116811461400b575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614ef2575f80fd5b83018035915067ffffffffffffffff821115614f0c575f80fd5b602001915036819003821315614c16575f80fd5b818382375f9101908152919050565b5f60208284031215614f3f575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b81811015614fe457845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101614fb2565b50508760408601528481036060860152614fff818789614f46565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361503d5761503d614e31565b5060010190565b808202811582820484141761159657611596614e31565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112615097575f80fd5b8135602067ffffffffffffffff808311156150b4576150b461505b565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156150f7576150f761505b565b6040529384526020818701810194908101925087851115615116575f80fd5b6020870191505b8482101561513d5761512e82614b97565b8352918301919083019061511d565b979650505050505050565b5f805f805f8060c0878903121561515d575f80fd5b86359550602087013567ffffffffffffffff8082111561517b575f80fd5b6151878a838b01615088565b96506040890135955060608901359150808211156151a3575f80fd5b6151af8a838b01615088565b94506080890135935060a08901359150808211156151cb575f80fd5b506151d889828a01615088565b9150509295509295509295565b5f82515f5b8181101561520457602081860181015185830152016151ea565b505f920191825250919050565b858152846020820152608060408201525f615230608083018587614f46565b90508260608301529695505050505050565b5f82615275577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(RollupStorageLayoutJSON), RollupStorageLayout); err != nil { diff --git a/contracts/contracts/l1/IL1CrossDomainMessenger.sol b/contracts/contracts/l1/IL1CrossDomainMessenger.sol index ce99bbfaf..2e190c701 100644 --- a/contracts/contracts/l1/IL1CrossDomainMessenger.sol +++ b/contracts/contracts/l1/IL1CrossDomainMessenger.sol @@ -37,10 +37,6 @@ interface IL1CrossDomainMessenger is ICrossDomainMessenger { bytes message ); - /// @notice Emitted when have message dropped. - /// @param nonce The index of the message to be dropped. - event DropMessage(uint256 indexed nonce); - /***************************** * Public Mutating Functions * *****************************/ @@ -80,12 +76,4 @@ interface IL1CrossDomainMessenger is ICrossDomainMessenger { uint32 newGasLimit, address refundAddress ) external payable; - - /// @notice Drop a skipped message. - /// @param from The address of the sender of the message. - /// @param to The address of the recipient of the message. - /// @param value The msg.value passed to the message call. - /// @param messageNonce The nonce for the message to drop. - /// @param message The content of the message. - function dropMessage(address from, address to, uint256 value, uint256 messageNonce, bytes memory message) external; } diff --git a/contracts/contracts/l1/L1CrossDomainMessenger.sol b/contracts/contracts/l1/L1CrossDomainMessenger.sol index 475e981d2..baa4b7fcf 100644 --- a/contracts/contracts/l1/L1CrossDomainMessenger.sol +++ b/contracts/contracts/l1/L1CrossDomainMessenger.sol @@ -42,7 +42,7 @@ contract L1CrossDomainMessenger is IL1CrossDomainMessenger, CrossDomainMessenger mapping(bytes32 => uint256) public messageSendTimestamp; /// @notice Mapping from L1 message hash to drop status. - mapping(bytes32 => bool) public isL1MessageDropped; + mapping(bytes32 => bool) public __isL1MessageDropped; /// @notice The address of Rollup contract. address public rollup; @@ -192,7 +192,7 @@ contract L1CrossDomainMessenger is IL1CrossDomainMessenger, CrossDomainMessenger require(messageSendTimestamp[_xDomainCalldataHash] > 0, "Provided message has not been enqueued"); // cannot replay dropped message - require(!isL1MessageDropped[_xDomainCalldataHash], "Message already dropped"); + require(!__isL1MessageDropped[_xDomainCalldataHash], "Message already dropped"); // compute and deduct the messaging fee to fee vault. uint256 _fee = IL1MessageQueue(_messageQueue).estimateCrossDomainMessageFee(_from, _newGasLimit); @@ -243,61 +243,6 @@ contract L1CrossDomainMessenger is IL1CrossDomainMessenger, CrossDomainMessenger } } - /// @inheritdoc IL1CrossDomainMessenger - function dropMessage( - address _from, - address _to, - uint256 _value, - uint256 _messageNonce, - bytes memory _message - ) external override whenNotPaused notInExecution { - // The criteria for dropping a message: - // 1. The message is a L1 message. - // 2. The message has not been dropped before. - // 3. the message and all of its replacement are finalized in L1. - // 4. the message and all of its replacement are skipped. - // - // Possible denial of service attack: - // + replayMessage is called every time someone want to drop the message. - // + replayMessage is called so many times for a skipped message, thus results a long list. - // - // We limit the number of `replayMessage` calls of each message, which may solve the above problem. - - address _messageQueue = messageQueue; - - // check message exists - bytes memory _xDomainCalldata = _encodeXDomainCalldata(_from, _to, _value, _messageNonce, _message); - bytes32 _xDomainCalldataHash = keccak256(_xDomainCalldata); - require(messageSendTimestamp[_xDomainCalldataHash] > 0, "Provided message has not been enqueued"); - - // check message not dropped - require(!isL1MessageDropped[_xDomainCalldataHash], "Message already dropped"); - - // check message is finalized - uint256 _lastIndex = replayStates[_xDomainCalldataHash].lastIndex; - if (_lastIndex == 0) _lastIndex = _messageNonce; - - // check message is skipped and drop it. - // @note If the list is very long, the message may never be dropped. - while (true) { - IL1MessageQueue(_messageQueue).dropCrossDomainMessage(_lastIndex); - _lastIndex = prevReplayIndex[_lastIndex]; - if (_lastIndex == 0) break; - unchecked { - _lastIndex = _lastIndex - 1; - } - } - - isL1MessageDropped[_xDomainCalldataHash] = true; - emit DropMessage(_messageNonce); - - // set execution context - xDomainMessageSender = Constants.DROP_XDOMAIN_MESSAGE_SENDER; - IMessageDropCallback(_from).onDropMessage{value: _value}(_message); - // clear execution context - xDomainMessageSender = Constants.DEFAULT_XDOMAIN_MESSAGE_SENDER; - } - /************************ * Restricted Functions * ************************/ diff --git a/contracts/contracts/l1/rollup/IL1MessageQueue.sol b/contracts/contracts/l1/rollup/IL1MessageQueue.sol index 3e9a4734b..8f33381f5 100644 --- a/contracts/contracts/l1/rollup/IL1MessageQueue.sol +++ b/contracts/contracts/l1/rollup/IL1MessageQueue.sol @@ -35,10 +35,6 @@ interface IL1MessageQueue { /// @param count The number of messages popped. event DequeueTransaction(uint256 startIndex, uint256 count); - /// @notice Emitted when a message is dropped from L1. - /// @param index The index of message dropped. - event DropTransaction(uint256 index); - /// @notice Emitted when owner updates gas oracle contract. /// @param _oldGasOracle The address of old gas oracle contract. /// @param _newGasOracle The address of new gas oracle contract. @@ -95,10 +91,6 @@ interface IL1MessageQueue { bytes calldata data ) external view returns (bytes32); - /// @notice Return whether the message is dropped. - /// @param queueIndex The queue index of the message to check. - function isMessageDropped(uint256 queueIndex) external view returns (bool); - /***************************** * Public Mutating Functions * *****************************/ @@ -132,7 +124,4 @@ interface IL1MessageQueue { /// @param startIndex The start index to pop. /// @param count The number of messages to pop. function popCrossDomainMessage(uint256 startIndex, uint256 count) external; - - /// @notice Drop a skipped message from the queue. - function dropCrossDomainMessage(uint256 index) external; } diff --git a/contracts/contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol b/contracts/contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol index de353fe91..3d86a753c 100644 --- a/contracts/contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol +++ b/contracts/contracts/l1/rollup/L1MessageQueueWithGasPriceOracle.sol @@ -48,8 +48,8 @@ contract L1MessageQueueWithGasPriceOracle is OwnableUpgradeable, IL1MessageQueue /// @notice The max gas limit of L1 transactions. uint256 public maxGasLimit; - /// @dev The bitmap for dropped messages, where `droppedMessageBitmap[i]` keeps the bits from `[i*256, (i+1)*256)`. - BitMapsUpgradeable.BitMap private droppedMessageBitmap; + /// @dev The bitmap for dropped messages, where `droppedMessageBitmap[i]` keeps the bits from `[i*256, (i+1)*256)`. Deprecated. + BitMapsUpgradeable.BitMap private __droppedMessageBitmap; /// @dev The bitmap for skipped messages, where `skippedMessageBitmap[i]` keeps the bits from `[i*256, (i+1)*256)`. Deprecated. mapping(uint256 => uint256) private __skippedMessageBitmap; @@ -260,11 +260,6 @@ contract L1MessageQueueWithGasPriceOracle is OwnableUpgradeable, IL1MessageQueue return hash; } - /// @inheritdoc IL1MessageQueue - function isMessageDropped(uint256 _queueIndex) external view returns (bool) { - return droppedMessageBitmap.get(_queueIndex); - } - /***************************** * Public Mutating Functions * *****************************/ @@ -325,16 +320,6 @@ contract L1MessageQueueWithGasPriceOracle is OwnableUpgradeable, IL1MessageQueue emit DequeueTransaction(_startIndex, _count); } - /// @inheritdoc IL1MessageQueue - function dropCrossDomainMessage(uint256 _index) external onlyMessenger { - require(_index < pendingQueueIndex, "cannot drop pending message"); - - require(!droppedMessageBitmap.get(_index), "message already dropped"); - droppedMessageBitmap.set(_index); - - emit DropTransaction(_index); - } - /************************ * Restricted Functions * ************************/ diff --git a/contracts/contracts/test/L1CrossDomainMessenger.t.sol b/contracts/contracts/test/L1CrossDomainMessenger.t.sol index 47af5645e..0dcb9f1fd 100644 --- a/contracts/contracts/test/L1CrossDomainMessenger.t.sol +++ b/contracts/contracts/test/L1CrossDomainMessenger.t.sol @@ -427,69 +427,6 @@ contract L1CrossDomainMessengerTest is L1GatewayBaseTest { assertEq(nonce + 2, l1CrossDomainMessenger.messageNonce()); } - function test_dropMessage_notEnqueued_reverts() external { - address sender = address(this); - address to = address(bob); - bytes memory data = "send message"; - // hevm.deal(sender, 10 ether); - - // send value zero - uint256 value = 0; - uint256 nonce = l1MessageQueueWithGasPriceOracle.nextCrossDomainMessageIndex(); - - // Expect revert when the message has not been enqueued. - hevm.expectRevert("Provided message has not been enqueued"); - l1CrossDomainMessenger.dropMessage(sender, to, value, nonce, data); - } - - function test_dropMessage_succeeds(uint256 amount, address recipient, bytes memory dataToCall) public { - amount = bound(amount, 1, address(this).balance); - bytes memory message = abi.encodeCall( - IL2ETHGateway.finalizeDepositETH, - (address(this), recipient, amount, dataToCall) - ); - - l1ETHGateway.depositETHAndCall{value: amount}(recipient, amount, dataToCall, defaultGasLimit); - - // pop message 0 - hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); - assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); - hevm.stopPrank(); - - // Drop message 0 and verify balance - revertOnReceive = false; - uint256 balance = address(this).balance; - l1CrossDomainMessenger.dropMessage(address(l1ETHGateway), address(counterpartGateway), amount, 0, message); - assertEq(balance + amount, address(this).balance); - } - - function test_dropMessage_dropAgain_reverts(uint256 amount, address recipient, bytes memory dataToCall) public { - amount = bound(amount, 1, address(this).balance); - bytes memory message = abi.encodeCall( - IL2ETHGateway.finalizeDepositETH, - (address(this), recipient, amount, dataToCall) - ); - - l1ETHGateway.depositETHAndCall{value: amount}(recipient, amount, dataToCall, defaultGasLimit); - - // pop message 0 - hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); - assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); - hevm.stopPrank(); - - // Drop message 0 and verify balance - revertOnReceive = false; - uint256 balance = address(this).balance; - l1CrossDomainMessenger.dropMessage(address(l1ETHGateway), address(counterpartGateway), amount, 0, message); - assertEq(balance + amount, address(this).balance); - - // Expect revert when trying to drop the same message again. - hevm.expectRevert("Message already dropped"); - l1CrossDomainMessenger.dropMessage(address(l1ETHGateway), address(counterpartGateway), amount, 0, message); - } - function test_updateMaxReplayTimes_succeeds(uint256 _maxReplayTimes) external { hevm.assume(_maxReplayTimes > 0); // not owner, revert @@ -529,8 +466,6 @@ contract L1CrossDomainMessengerTest is L1GatewayBaseTest { l1CrossDomainMessenger.proveAndRelayMessage(address(0), address(0), 0, 0, new bytes(0), wdProof, wdRoot); hevm.expectRevert("Pausable: paused"); l1CrossDomainMessenger.replayMessage(address(0), address(0), 0, 0, new bytes(0), 0, address(0)); - hevm.expectRevert("Pausable: paused"); - l1CrossDomainMessenger.dropMessage(address(0), address(0), 0, 0, new bytes(0)); // unpause hevm.prank(multisig); diff --git a/contracts/contracts/test/L1CustomERC20Gateway.t.sol b/contracts/contracts/test/L1CustomERC20Gateway.t.sol index 8ac88ce0c..f1a63821c 100644 --- a/contracts/contracts/test/L1CustomERC20Gateway.t.sol +++ b/contracts/contracts/test/L1CustomERC20Gateway.t.sol @@ -182,31 +182,6 @@ contract L1CustomERC20GatewayTest is L1GatewayBaseTest { _depositERC20WithRecipientAndCalldata(false, amount, recipient, dataToCall, gasLimit, feePerGas); } - function test_dropMessage_succeeds(uint256 amount, address recipient, bytes memory dataToCall) public { - gateway.updateTokenMapping(address(l1Token), address(l2Token)); - - amount = bound(amount, 1, l1Token.balanceOf(address(this))); - bytes memory message = abi.encodeCall( - IL2ERC20Gateway.finalizeDepositERC20, - (address(l1Token), address(l2Token), address(this), recipient, amount, dataToCall) - ); - gateway.depositERC20AndCall(address(l1Token), recipient, amount, dataToCall, defaultGasLimit); - - // pop message 0 - hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); - assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); - hevm.stopPrank(); - - // drop message 0 - hevm.expectEmit(true, true, false, true); - emit IL1ERC20Gateway.RefundERC20(address(l1Token), address(this), amount); - - uint256 balance = l1Token.balanceOf(address(this)); - l1CrossDomainMessenger.dropMessage(address(gateway), address(counterpartGateway), 0, 0, message); - assertEq(balance + amount, l1Token.balanceOf(address(this))); - } - function test_onDropMessage_beforeDropMessage_reverts() public { uint256 amount = 1000; diff --git a/contracts/contracts/test/L1ERC1155Gateway.t.sol b/contracts/contracts/test/L1ERC1155Gateway.t.sol index b81e92702..18fc2f8a1 100644 --- a/contracts/contracts/test/L1ERC1155Gateway.t.sol +++ b/contracts/contracts/test/L1ERC1155Gateway.t.sol @@ -157,70 +157,6 @@ contract L1ERC1155GatewayTest is L1GatewayBaseTest, ERC1155TokenReceiver { _testBatchDepositERC1155WithRecipient(tokenCount, amount, recipient, gasLimit, feePerGas); } - function test_dropMessage_succeeds(uint256 tokenId, uint256 amount) public { - gateway.updateTokenMapping(address(l1Token), address(l2Token)); - - tokenId = bound(tokenId, 0, TOKEN_COUNT - 1); - amount = bound(amount, 1, MAX_TOKEN_BALANCE); - bytes memory message = abi.encodeCall( - IL2ERC1155Gateway.finalizeDepositERC1155, - (address(l1Token), address(l2Token), address(this), address(this), tokenId, amount) - ); - gateway.depositERC1155(address(l1Token), tokenId, amount, defaultGasLimit); - - // pop message 0 - hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); - assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); - hevm.stopPrank(); - - // drop message 0 - hevm.expectEmit(true, true, false, true); - emit IL1ERC1155Gateway.RefundERC1155(address(l1Token), address(this), tokenId, amount); - - uint256 balance = l1Token.balanceOf(address(this), tokenId); - l1CrossDomainMessenger.dropMessage(address(gateway), address(counterpartGateway), 0, 0, message); - assertEq(balance + amount, l1Token.balanceOf(address(this), tokenId)); - } - - function test_dropMessageBatch_succeeds(uint256 tokenCount, uint256 amount) public { - tokenCount = bound(tokenCount, 1, TOKEN_COUNT); - amount = bound(amount, 1, MAX_TOKEN_BALANCE); - gateway.updateTokenMapping(address(l1Token), address(l2Token)); - - uint256[] memory _tokenIds = new uint256[](tokenCount); - uint256[] memory _amounts = new uint256[](tokenCount); - for (uint256 i = 0; i < tokenCount; i++) { - _tokenIds[i] = i; - _amounts[i] = amount; - } - - bytes memory message = abi.encodeCall( - IL2ERC1155Gateway.finalizeBatchDepositERC1155, - (address(l1Token), address(l2Token), address(this), address(this), _tokenIds, _amounts) - ); - gateway.batchDepositERC1155(address(l1Token), _tokenIds, _amounts, defaultGasLimit); - - // pop message 0 - hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); - assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); - hevm.stopPrank(); - - // drop message 0 - hevm.expectEmit(true, true, false, true); - emit IL1ERC1155Gateway.BatchRefundERC1155(address(l1Token), address(this), _tokenIds, _amounts); - - uint256[] memory balances = new uint256[](tokenCount); - for (uint256 i = 0; i < tokenCount; i++) { - balances[i] = l1Token.balanceOf(address(this), _tokenIds[i]); - } - l1CrossDomainMessenger.dropMessage(address(gateway), address(counterpartGateway), 0, 0, message); - for (uint256 i = 0; i < tokenCount; i++) { - assertEq(balances[i] + _amounts[i], l1Token.balanceOf(address(this), _tokenIds[i])); - } - } - function test_onDropMessage_revert(uint256 tokenId, uint256 amount) external { gateway.updateTokenMapping(address(l1Token), address(l2Token)); tokenId = bound(tokenId, 0, TOKEN_COUNT - 1); diff --git a/contracts/contracts/test/L1ERC721Gateway.t.sol b/contracts/contracts/test/L1ERC721Gateway.t.sol index 17db63c8c..b71e36b6c 100644 --- a/contracts/contracts/test/L1ERC721Gateway.t.sol +++ b/contracts/contracts/test/L1ERC721Gateway.t.sol @@ -174,65 +174,6 @@ contract L1ERC721GatewayTest is L1GatewayBaseTest, ERC721TokenReceiver { _testBatchDepositERC721WithRecipient(tokenCount, recipient, gasLimit, feePerGas); } - function test_dropMessage_succeeds(uint256 tokenId) public { - gateway.updateTokenMapping(address(l1Token), address(l2Token)); - - tokenId = bound(tokenId, 0, TOKEN_COUNT - 1); - bytes memory message = abi.encodeCall( - IL2ERC721Gateway.finalizeDepositERC721, - (address(l1Token), address(l2Token), address(this), address(this), tokenId) - ); - gateway.depositERC721(address(l1Token), tokenId, defaultGasLimit); - - // pop message 0 - hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); - assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); - hevm.stopPrank(); - - // drop message 0 - hevm.expectEmit(true, true, false, true); - emit IL1ERC721Gateway.RefundERC721(address(l1Token), address(this), tokenId); - - assertEq(l1Token.ownerOf(tokenId), address(gateway)); - l1CrossDomainMessenger.dropMessage(address(gateway), address(counterpartGateway), 0, 0, message); - assertEq(l1Token.ownerOf(tokenId), address(this)); - } - - function test_dropMessageBatch_succeeds(uint256 tokenCount) public { - tokenCount = bound(tokenCount, 1, TOKEN_COUNT); - gateway.updateTokenMapping(address(l1Token), address(l2Token)); - - uint256[] memory _tokenIds = new uint256[](tokenCount); - for (uint256 i = 0; i < tokenCount; i++) { - _tokenIds[i] = i; - } - - bytes memory message = abi.encodeCall( - IL2ERC721Gateway.finalizeBatchDepositERC721, - (address(l1Token), address(l2Token), address(this), address(this), _tokenIds) - ); - gateway.batchDepositERC721(address(l1Token), _tokenIds, defaultGasLimit); - - // pop message 0 - hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); - assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); - hevm.stopPrank(); - - // drop message 0 - hevm.expectEmit(true, true, false, true); - emit IL1ERC721Gateway.BatchRefundERC721(address(l1Token), address(this), _tokenIds); - for (uint256 i = 0; i < tokenCount; i++) { - assertEq(l1Token.ownerOf(_tokenIds[i]), address(gateway)); - } - - l1CrossDomainMessenger.dropMessage(address(gateway), address(counterpartGateway), 0, 0, message); - for (uint256 i = 0; i < tokenCount; i++) { - assertEq(l1Token.ownerOf(_tokenIds[i]), address(this)); - } - } - function test_finalizeWithdrawERC721_counterError_fails(address sender, address recipient, uint256 tokenId) public { hevm.assume(recipient != address(0)); tokenId = bound(tokenId, 0, TOKEN_COUNT - 1); diff --git a/contracts/contracts/test/L1ETHGateway.t.sol b/contracts/contracts/test/L1ETHGateway.t.sol index 488e2777c..d7e979b44 100644 --- a/contracts/contracts/test/L1ETHGateway.t.sol +++ b/contracts/contracts/test/L1ETHGateway.t.sol @@ -167,35 +167,6 @@ contract L1ETHGatewayTest is L1GatewayBaseTest { _depositETHWithRecipientAndCalldata(true, amount, recipient, dataToCall, gasLimit, feePerGas); } - function test_dropMessage_succeeds(uint256 amount, address recipient, bytes memory dataToCall) public { - amount = bound(amount, 1, address(this).balance); - bytes memory message = abi.encodeCall( - IL2ETHGateway.finalizeDepositETH, - (address(this), recipient, amount, dataToCall) - ); - l1ETHGateway.depositETHAndCall{value: amount}(recipient, amount, dataToCall, defaultGasLimit); - - // pop message 0 - hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); - assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); - hevm.stopPrank(); - - // ETH transfer failed, revert - revertOnReceive = true; - hevm.expectRevert("ETH transfer failed"); - l1CrossDomainMessenger.dropMessage(address(l1ETHGateway), address(counterpartGateway), amount, 0, message); - - // drop message 0 - hevm.expectEmit(true, true, false, true); - emit IL1ETHGateway.RefundETH(address(this), amount); - - revertOnReceive = false; - uint256 balance = address(this).balance; - l1CrossDomainMessenger.dropMessage(address(l1ETHGateway), address(counterpartGateway), amount, 0, message); - assertEq(balance + amount, address(this).balance); - } - function test_finalizeWithdrawETH_counterErr_fails( address sender, address recipient, diff --git a/contracts/contracts/test/L1MessageQueue.t.sol b/contracts/contracts/test/L1MessageQueue.t.sol index 2620f2e65..c11fa8f39 100644 --- a/contracts/contracts/test/L1MessageQueue.t.sol +++ b/contracts/contracts/test/L1MessageQueue.t.sol @@ -238,78 +238,6 @@ contract L1MessageQueueTest is L1MessageBaseTest { l1MessageQueue.popCrossDomainMessage(1, 2); } - function test_dropCrossDomainMessage_cannotDropPending_reverts() external { - bytes memory _calldata = "0x0"; - uint256 gasLimit = l1MessageQueue.calculateIntrinsicGasFee(_calldata); - - // Store alice as messenger and rollup. - upgradeStorage(address(alice), address(alice), address(alice)); - - // Expect revert when (_index < pendingQueueIndex) is false. - hevm.prank(alice); - l1MessageQueue.appendCrossDomainMessage(alice, gasLimit, _calldata); - hevm.prank(alice); - hevm.expectRevert("cannot drop pending message"); - l1MessageQueue.dropCrossDomainMessage(0); - } - - function test_pop_dropCrossDomainMessage_succeeds() external { - // store alice as messenger and rollup - upgradeStorage(address(alice), address(alice), address(alice)); - assertEq(alice, l1MessageQueue.MESSENGER()); - assertEq(alice, l1MessageQueue.ROLLUP_CONTRACT()); - bytes memory _calldata = "0x0"; - uint256 gasLimit = l1MessageQueue.calculateIntrinsicGasFee(_calldata); - // append 10 message - hevm.startPrank(alice); - for (uint64 i = 0; i < 10; i++) { - l1MessageQueue.appendCrossDomainMessage(alice, gasLimit, _calldata); - } - - // Verify the event QueueTransaction is emitted successfully. - hevm.expectEmit(false, false, false, true); - emit IL1MessageQueue.DequeueTransaction(0, 10); - - // pop all 10 message - l1MessageQueue.popCrossDomainMessage(0, 10); - - // drop all 10 message - for (uint64 i = 0; i < 10; i++) { - l1MessageQueue.dropCrossDomainMessage(i); - assertTrue(l1MessageQueue.isMessageDropped(i)); - } - hevm.stopPrank(); - } - - function test_dropCrossDomainMessage_dropAgain_reverts() external { - // store alice as messenger and rollup - upgradeStorage(address(alice), address(alice), address(alice)); - assertEq(alice, l1MessageQueue.MESSENGER()); - assertEq(alice, l1MessageQueue.ROLLUP_CONTRACT()); - bytes memory _calldata = "0x0"; - uint256 gasLimit = l1MessageQueue.calculateIntrinsicGasFee(_calldata); - // append 10 message - hevm.startPrank(alice); - for (uint64 i = 0; i < 10; i++) { - l1MessageQueue.appendCrossDomainMessage(alice, gasLimit, _calldata); - } - - // pop all 10 message - l1MessageQueue.popCrossDomainMessage(0, 10); - - // drop all 10 message - for (uint64 i = 0; i < 10; i++) { - l1MessageQueue.dropCrossDomainMessage(i); - assertTrue(l1MessageQueue.isMessageDropped(i)); - } - hevm.stopPrank(); - - // Expect revert when message already dropped. - hevm.prank(alice); - hevm.expectRevert("message already dropped"); - l1MessageQueue.dropCrossDomainMessage(1); - } - function test_updateMaxGasLimit_notOwner_reverts() external { // Verify the modifier onlyOwner works successfully. // It throws an error "Ownable: caller is not the owner" when msg.sender is not the owner. diff --git a/contracts/contracts/test/L1StandardERC20Gateway.t.sol b/contracts/contracts/test/L1StandardERC20Gateway.t.sol index 00bbe5e65..d9440daf9 100644 --- a/contracts/contracts/test/L1StandardERC20Gateway.t.sol +++ b/contracts/contracts/test/L1StandardERC20Gateway.t.sol @@ -287,40 +287,6 @@ contract L1StandardERC20GatewayTest is L1GatewayBaseTest { assertEq(balanceBefore + amount - fee, balanceAfter); } - function test_dropMessage_succeeds(uint256 amount, address recipient, bytes memory dataToCall) public { - amount = bound(amount, 1, l1Token.balanceOf(address(this)) / 2); - bytes memory message = abi.encodeCall( - IL2ERC20Gateway.finalizeDepositERC20, - ( - address(l1Token), - address(l2Token), - address(this), - recipient, - amount, - abi.encode( - true, - abi.encode(dataToCall, abi.encode(l1Token.symbol(), l1Token.name(), l1Token.decimals())) - ) - ) - ); - l1StandardERC20Gateway.depositERC20AndCall(address(l1Token), recipient, amount, dataToCall, defaultGasLimit); - l1StandardERC20Gateway.depositERC20AndCall(address(l1Token), recipient, amount, dataToCall, defaultGasLimit); - - // pop message 0 and 1 - hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 2); - assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 2); - hevm.stopPrank(); - - // drop message 1 - hevm.expectEmit(true, true, false, true); - emit IL1ERC20Gateway.RefundERC20(address(l1Token), address(this), amount); - - uint256 balance = l1Token.balanceOf(address(this)); - l1CrossDomainMessenger.dropMessage(address(l1StandardERC20Gateway), address(counterpartGateway), 0, 1, message); - assertEq(balance + amount, l1Token.balanceOf(address(this))); - } - function test_finalizeWithdrawERC20_beforeFinalizeWithdrawERC20_reverts() public { address recipient = address(2048); address _from = address(counterpartGateway); diff --git a/contracts/contracts/test/L1WETHGateway.t.sol b/contracts/contracts/test/L1WETHGateway.t.sol index f4de6bac1..1a8aa309d 100644 --- a/contracts/contracts/test/L1WETHGateway.t.sol +++ b/contracts/contracts/test/L1WETHGateway.t.sol @@ -197,29 +197,6 @@ contract L1WETHGatewayTest is L1GatewayBaseTest { _depositERC20WithRecipientAndCalldata(true, amount, recipient, dataToCall, gasLimit, feePerGas); } - function test_dropMessage_succeeds(uint256 amount, address recipient, bytes memory dataToCall) public { - amount = bound(amount, 1, l1weth.balanceOf(address(this))); - bytes memory message = abi.encodeCall( - IL2ERC20Gateway.finalizeDepositERC20, - (address(l1weth), address(l2weth), address(this), recipient, amount, dataToCall) - ); - gateway.depositERC20AndCall(address(l1weth), recipient, amount, dataToCall, defaultGasLimit); - - // skip message 0 - hevm.startPrank(address(rollup)); - l1MessageQueueWithGasPriceOracle.popCrossDomainMessage(0, 1); - assertEq(l1MessageQueueWithGasPriceOracle.pendingQueueIndex(), 1); - hevm.stopPrank(); - - // drop message 0 - hevm.expectEmit(true, true, false, true); - emit IL1ERC20Gateway.RefundERC20(address(l1weth), address(this), amount); - - uint256 balance = l1weth.balanceOf(address(this)); - l1CrossDomainMessenger.dropMessage(address(gateway), address(counterpartGateway), amount, 0, message); - assertEq(balance + amount, l1weth.balanceOf(address(this))); - } - function test_finalizeWithdrawERC20_counterErr_fails( address sender, address recipient, From fc22179120b95eae03476ad7deabdc73751b8471 Mon Sep 17 00:00:00 2001 From: kukoo Date: Fri, 20 Dec 2024 11:37:23 +0800 Subject: [PATCH 064/106] Update message queue gas limit config (#683) --- contracts/src/deploy-config/holesky.ts | 2 +- contracts/src/deploy-config/l1.ts | 2 +- contracts/src/deploy-config/qanetl1.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/src/deploy-config/holesky.ts b/contracts/src/deploy-config/holesky.ts index 76ceef573..8999df585 100644 --- a/contracts/src/deploy-config/holesky.ts +++ b/contracts/src/deploy-config/holesky.ts @@ -8,7 +8,7 @@ const config = { l2ChainID: 2810, // L1MessageQueue config - l1MessageQueueMaxGasLimit: 100000000, + l1MessageQueueMaxGasLimit: 30000000, // gasPriceOracle config l2BaseFee: 0.1, // Gwei diff --git a/contracts/src/deploy-config/l1.ts b/contracts/src/deploy-config/l1.ts index bc0c67ad6..e625e22db 100644 --- a/contracts/src/deploy-config/l1.ts +++ b/contracts/src/deploy-config/l1.ts @@ -11,7 +11,7 @@ const config = { l2ChainID: 53077, // L1MessageQueue config - l1MessageQueueMaxGasLimit: 100000000, + l1MessageQueueMaxGasLimit: 30000000, // gasPriceOracle config l2BaseFee: 0.1, // Gwei diff --git a/contracts/src/deploy-config/qanetl1.ts b/contracts/src/deploy-config/qanetl1.ts index 56fe986fa..2b324ab43 100644 --- a/contracts/src/deploy-config/qanetl1.ts +++ b/contracts/src/deploy-config/qanetl1.ts @@ -8,7 +8,7 @@ const config = { l2ChainID: 53077, // L1MessageQueue config - l1MessageQueueMaxGasLimit: 100000000, + l1MessageQueueMaxGasLimit: 30000000, // gasPriceOracle config l2BaseFee: 0.1, // Gwei From 7ccafe682fbb98908d159f725fa46bc52121f992 Mon Sep 17 00:00:00 2001 From: kukoo Date: Mon, 23 Dec 2024 10:47:59 +0800 Subject: [PATCH 065/106] Fee vault fix (#674) --- bindings/bin/l2txfeevault_deployed.hex | 2 +- bindings/bindings/l2txfeevault.go | 2 +- bindings/bindings/l2txfeevault_more.go | 2 +- .../contracts/l2/system/L2TxFeeVault.sol | 9 ++++++-- contracts/contracts/test/L2TxFeeVault.t.sol | 22 +++++++------------ 5 files changed, 18 insertions(+), 19 deletions(-) diff --git a/bindings/bin/l2txfeevault_deployed.hex b/bindings/bin/l2txfeevault_deployed.hex index 82032012b..5622a70b5 100644 --- a/bindings/bin/l2txfeevault_deployed.hex +++ b/bindings/bin/l2txfeevault_deployed.hex @@ -1 +1 @@ -0x608060405260043610610140575f3560e01c806384411d65116100bb578063da13f9a211610071578063f2fde38b11610057578063f2fde38b146103c4578063feec756c146103e3578063ff4f354614610402575f80fd5b8063da13f9a214610377578063eff1337c14610396575f80fd5b80639e7adc79116100a15780639e7adc79146102f5578063a03fa7e314610314578063cc198d7414610333575f80fd5b806384411d65146102b55780638da5cb5b146102ca575f80fd5b80633ccfd60b1161011057806366d003ac116100f657806366d003ac14610256578063708125ad14610282578063715018a6146102a1575f80fd5b80633ccfd60b1461021f578063457e1a4914610233575f80fd5b8063151eeb551461014b5780632ccb1b301461018e5780632e1a7d4d146101af5780633cb747bf146101ce575f80fd5b3661014757005b5f80fd5b348015610156575f80fd5b5061017961016536600461130d565b60056020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610199575f80fd5b506101ad6101a836600461132d565b610421565b005b3480156101ba575f80fd5b506101ad6101c9366004611355565b610750565b3480156101d9575f80fd5b506002546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610185565b34801561022a575f80fd5b506101ad610a55565b34801561023e575f80fd5b5061024860015481565b604051908152602001610185565b348015610261575f80fd5b506003546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561028d575f80fd5b506101ad61029c3660046113a8565b610ac8565b3480156102ac575f80fd5b506101ad610ce2565b3480156102c0575f80fd5b5061024860045481565b3480156102d5575f80fd5b505f546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610300575f80fd5b506101ad61030f36600461130d565b610d53565b34801561031f575f80fd5b506101ad61032e36600461130d565b610e2f565b34801561033e575f80fd5b5061017961034d36600461130d565b73ffffffffffffffffffffffffffffffffffffffff165f9081526006602052604090205460ff1690565b348015610382575f80fd5b506101ad6103913660046113a8565b610ebd565b3480156103a1575f80fd5b506101796103b036600461130d565b60066020525f908152604090205460ff1681565b3480156103cf575f80fd5b506101ad6103de36600461130d565b611018565b3480156103ee575f80fd5b506101ad6103fd36600461130d565b6110ea565b34801561040d575f80fd5b506101ad61041c366004611355565b6111c6565b335f9081526005602052604090205460ff168061045457505f5473ffffffffffffffffffffffffffffffffffffffff1633145b6104a55760405162461bcd60e51b815260206004820152601f60248201527f4665655661756c743a2063616c6c6572206973206e6f7420616c6c6f7765640060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661052e5760405162461bcd60e51b815260206004820152603060248201527f4665655661756c743a20726563697069656e7420616464726573732063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161049c565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526006602052604090205460ff166105c85760405162461bcd60e51b815260206004820152602760248201527f4665655661756c743a20726563697069656e742061646472657373206e6f742060448201527f616c6c6f77656400000000000000000000000000000000000000000000000000606482015260840161049c565b478082111561063f5760405162461bcd60e51b815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e6365207460448201527f6f207472616e7366657200000000000000000000000000000000000000000000606482015260840161049c565b60048054830190556003546040805184815273ffffffffffffffffffffffffffffffffffffffff90921660208301523382820152517f0a429aba3d89849a2db0153e4534d95c46a1d83c8109d73893f55ebc44010ff49181900360600190a15f8373ffffffffffffffffffffffffffffffffffffffff16836040515f6040518083038185875af1925050503d805f81146106f4576040519150601f19603f3d011682016040523d82523d5f602084013e6106f9565b606091505b505090508061074a5760405162461bcd60e51b815260206004820152601d60248201527f4665655661756c743a20455448207472616e73666572206661696c6564000000604482015260640161049c565b50505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107b65760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b60035473ffffffffffffffffffffffffffffffffffffffff166108415760405162461bcd60e51b815260206004820152603060248201527f4665655661756c743a20726563697069656e7420616464726573732063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161049c565b6001548110156108df5760405162461bcd60e51b815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a40161049c565b47808211156109565760405162461bcd60e51b815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e6365207460448201527f6f20776974686472617700000000000000000000000000000000000000000000606482015260840161049c565b60048054830190556003546040805184815273ffffffffffffffffffffffffffffffffffffffff90921660208301523382820152517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a1600254600354604080516020810182525f80825291517fb2267a7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9485169463b2267a7b948894610a23949190921692859290600401611498565b5f604051808303818588803b158015610a3a575f80fd5b505af1158015610a4c573d5f803e3d5ffd5b50505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610abb5760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b47610ac581610750565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610b2e5760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b5f5b8251811015610cdd575f73ffffffffffffffffffffffffffffffffffffffff16838281518110610b6257610b6261152e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610bf35760405162461bcd60e51b815260206004820152602660248201527f4665655661756c743a20616464726573732063616e6e6f74206265206164647260448201527f6573732830290000000000000000000000000000000000000000000000000000606482015260840161049c565b8160065f858481518110610c0957610c0961152e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fbd84b6b3e1d029fd61a717f6020a8f35b358486e0971c00d4e64b516503f85e7838281518110610c9357610c9361152e565b602002602001015183604051610ccd92919073ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b60405180910390a1600101610b30565b505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610d485760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b610d515f611271565b565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610db95760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f1c928c417a10a21c3cddad148c5dba5d710e4b1442d6d8a36de345935ad84612905f90a35050565b335f9081526005602052604090205460ff1680610e6257505f5473ffffffffffffffffffffffffffffffffffffffff1633145b610eae5760405162461bcd60e51b815260206004820152601f60248201527f4665655661756c743a2063616c6c6572206973206e6f7420616c6c6f77656400604482015260640161049c565b47610eb98282610421565b5050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610f235760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b5f5b8251811015610cdd578160055f858481518110610f4457610f4461152e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fbb5d3e442e800faa1089a4f57bae4f36808d3cf15d051033d78a72147782f24c838281518110610fce57610fce61152e565b60200260200101518360405161100892919073ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b60405180910390a1600101610f25565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461107e5760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b73ffffffffffffffffffffffffffffffffffffffff81166110e15760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604482015260640161049c565b610ac581611271565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146111505760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f7e1e96961a397c8aa26162fe259cc837afc95e33aad4945ddc61c18dabb7a6ad905f90a35050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461122c5760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b600180549082905560408051828152602081018490527f0d3c80219fe57713b9f9c83d1e51426792d0c14d8e330e65b102571816140965910160405180910390a15050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611308575f80fd5b919050565b5f6020828403121561131d575f80fd5b611326826112e5565b9392505050565b5f806040838503121561133e575f80fd5b611347836112e5565b946020939093013593505050565b5f60208284031215611365575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b80358015158114611308575f80fd5b5f80604083850312156113b9575f80fd5b823567ffffffffffffffff808211156113d0575f80fd5b818501915085601f8301126113e3575f80fd5b81356020828211156113f7576113f761136c565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110868211171561143a5761143a61136c565b604052928352818301935084810182019289841115611457575f80fd5b948201945b8386101561147c5761146d866112e5565b8552948201949382019361145c565b965061148b9050878201611399565b9450505050509250929050565b73ffffffffffffffffffffffffffffffffffffffff851681525f60208560208401526080604084015284518060808501525f5b818110156114e75786810183015185820160a0015282016114cb565b505f60a0828601015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea164736f6c6343000818000a +0x608060405260043610610140575f3560e01c806384411d65116100bb578063da13f9a211610071578063f2fde38b11610057578063f2fde38b146103c4578063feec756c146103e3578063ff4f354614610402575f80fd5b8063da13f9a214610377578063eff1337c14610396575f80fd5b80639e7adc79116100a15780639e7adc79146102f5578063a03fa7e314610314578063cc198d7414610333575f80fd5b806384411d65146102b55780638da5cb5b146102ca575f80fd5b80633ccfd60b1161011057806366d003ac116100f657806366d003ac14610256578063708125ad14610282578063715018a6146102a1575f80fd5b80633ccfd60b1461021f578063457e1a4914610233575f80fd5b8063151eeb551461014b5780632ccb1b301461018e5780632e1a7d4d146101af5780633cb747bf146101ce575f80fd5b3661014757005b5f80fd5b348015610156575f80fd5b506101796101653660046115d6565b60056020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610199575f80fd5b506101ad6101a83660046115f6565b610421565b005b3480156101ba575f80fd5b506101ad6101c936600461161e565b61074d565b3480156101d9575f80fd5b506002546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610185565b34801561022a575f80fd5b506101ad610add565b34801561023e575f80fd5b5061024860015481565b604051908152602001610185565b348015610261575f80fd5b506003546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561028d575f80fd5b506101ad61029c366004611671565b610b50565b3480156102ac575f80fd5b506101ad610d6a565b3480156102c0575f80fd5b5061024860045481565b3480156102d5575f80fd5b505f546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610300575f80fd5b506101ad61030f3660046115d6565b610ddb565b34801561031f575f80fd5b506101ad61032e3660046115d6565b610f40565b34801561033e575f80fd5b5061017961034d3660046115d6565b73ffffffffffffffffffffffffffffffffffffffff165f9081526006602052604090205460ff1690565b348015610382575f80fd5b506101ad610391366004611671565b610fce565b3480156103a1575f80fd5b506101796103b03660046115d6565b60066020525f908152604090205460ff1681565b3480156103cf575f80fd5b506101ad6103de3660046115d6565b6111e3565b3480156103ee575f80fd5b506101ad6103fd3660046115d6565b6112b5565b34801561040d575f80fd5b506101ad61041c36600461161e565b61141a565b335f9081526005602052604090205460ff168061045457505f5473ffffffffffffffffffffffffffffffffffffffff1633145b6104a55760405162461bcd60e51b815260206004820152601f60248201527f4665655661756c743a2063616c6c6572206973206e6f7420616c6c6f7765640060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661052e5760405162461bcd60e51b815260206004820152603060248201527f4665655661756c743a20726563697069656e7420616464726573732063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161049c565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526006602052604090205460ff166105c85760405162461bcd60e51b815260206004820152602760248201527f4665655661756c743a20726563697069656e742061646472657373206e6f742060448201527f616c6c6f77656400000000000000000000000000000000000000000000000000606482015260840161049c565b478082111561063f5760405162461bcd60e51b815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e6365207460448201527f6f207472616e7366657200000000000000000000000000000000000000000000606482015260840161049c565b60048054830190556040805183815273ffffffffffffffffffffffffffffffffffffffff85166020820152338183015290517f0a429aba3d89849a2db0153e4534d95c46a1d83c8109d73893f55ebc44010ff49181900360600190a15f8373ffffffffffffffffffffffffffffffffffffffff16836040515f6040518083038185875af1925050503d805f81146106f1576040519150601f19603f3d011682016040523d82523d5f602084013e6106f6565b606091505b50509050806107475760405162461bcd60e51b815260206004820152601d60248201527f4665655661756c743a20455448207472616e73666572206661696c6564000000604482015260640161049c565b50505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107b35760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b60025473ffffffffffffffffffffffffffffffffffffffff1661083e5760405162461bcd60e51b815260206004820152603060248201527f4665655661756c743a206d657373656e67657220616464726573732063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161049c565b60035473ffffffffffffffffffffffffffffffffffffffff166108c95760405162461bcd60e51b815260206004820152603060248201527f4665655661756c743a20726563697069656e7420616464726573732063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161049c565b6001548110156109675760405162461bcd60e51b815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a40161049c565b47808211156109de5760405162461bcd60e51b815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e6365207460448201527f6f20776974686472617700000000000000000000000000000000000000000000606482015260840161049c565b60048054830190556003546040805184815273ffffffffffffffffffffffffffffffffffffffff90921660208301523382820152517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a1600254600354604080516020810182525f80825291517fb2267a7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9485169463b2267a7b948894610aab949190921692859290600401611761565b5f604051808303818588803b158015610ac2575f80fd5b505af1158015610ad4573d5f803e3d5ffd5b50505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610b435760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b47610b4d8161074d565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610bb65760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b5f5b8251811015610d65575f73ffffffffffffffffffffffffffffffffffffffff16838281518110610bea57610bea6117f7565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610c7b5760405162461bcd60e51b815260206004820152602e60248201527f4665655661756c743a207265636569766520616464726573732063616e6e6f7460448201527f2062652061646472657373283029000000000000000000000000000000000000606482015260840161049c565b8160065f858481518110610c9157610c916117f7565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fbd84b6b3e1d029fd61a717f6020a8f35b358486e0971c00d4e64b516503f85e7838281518110610d1b57610d1b6117f7565b602002602001015183604051610d5592919073ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b60405180910390a1600101610bb8565b505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610dd05760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b610dd95f61153a565b565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610e415760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b73ffffffffffffffffffffffffffffffffffffffff8116610eca5760405162461bcd60e51b815260206004820152603460248201527f4665655661756c743a206e6577206d657373656e67657220616464726573732060448201527f63616e6e6f742062652061646472657373283029000000000000000000000000606482015260840161049c565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f1c928c417a10a21c3cddad148c5dba5d710e4b1442d6d8a36de345935ad84612905f90a35050565b335f9081526005602052604090205460ff1680610f7357505f5473ffffffffffffffffffffffffffffffffffffffff1633145b610fbf5760405162461bcd60e51b815260206004820152601f60248201527f4665655661756c743a2063616c6c6572206973206e6f7420616c6c6f77656400604482015260640161049c565b47610fca8282610421565b5050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146110345760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b5f5b8251811015610d65575f73ffffffffffffffffffffffffffffffffffffffff16838281518110611068576110686117f7565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036110f95760405162461bcd60e51b815260206004820152603760248201527f4665655661756c743a207472616e7366657220616c6c6f77656420616464726560448201527f73732063616e6e6f742062652061646472657373283029000000000000000000606482015260840161049c565b8160055f85848151811061110f5761110f6117f7565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fbb5d3e442e800faa1089a4f57bae4f36808d3cf15d051033d78a72147782f24c838281518110611199576111996117f7565b6020026020010151836040516111d392919073ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b60405180910390a1600101611036565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146112495760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b73ffffffffffffffffffffffffffffffffffffffff81166112ac5760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604482015260640161049c565b610b4d8161153a565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461131b5760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b73ffffffffffffffffffffffffffffffffffffffff81166113a45760405162461bcd60e51b815260206004820152603460248201527f4665655661756c743a206e657720726563697069656e7420616464726573732060448201527f63616e6e6f742062652061646472657373283029000000000000000000000000606482015260840161049c565b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f7e1e96961a397c8aa26162fe259cc837afc95e33aad4945ddc61c18dabb7a6ad905f90a35050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146114805760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b5f81116114f55760405162461bcd60e51b815260206004820152603160248201527f4665655661756c743a206e6577206d696e696d756d207769746864726177206160448201527f6d6f756e742063616e6e6f742062652030000000000000000000000000000000606482015260840161049c565b600180549082905560408051828152602081018490527f0d3c80219fe57713b9f9c83d1e51426792d0c14d8e330e65b102571816140965910160405180910390a15050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803573ffffffffffffffffffffffffffffffffffffffff811681146115d1575f80fd5b919050565b5f602082840312156115e6575f80fd5b6115ef826115ae565b9392505050565b5f8060408385031215611607575f80fd5b611610836115ae565b946020939093013593505050565b5f6020828403121561162e575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b803580151581146115d1575f80fd5b5f8060408385031215611682575f80fd5b823567ffffffffffffffff80821115611699575f80fd5b818501915085601f8301126116ac575f80fd5b81356020828211156116c0576116c0611635565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110868211171561170357611703611635565b604052928352818301935084810182019289841115611720575f80fd5b948201945b8386101561174557611736866115ae565b85529482019493820193611725565b96506117549050878201611662565b9450505050509250929050565b73ffffffffffffffffffffffffffffffffffffffff851681525f60208560208401526080604084015284518060808501525f5b818110156117b05786810183015185820160a001528201611794565b505f60a0828601015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea164736f6c6343000818000a diff --git a/bindings/bindings/l2txfeevault.go b/bindings/bindings/l2txfeevault.go index 382e7ead6..91258acb0 100644 --- a/bindings/bindings/l2txfeevault.go +++ b/bindings/bindings/l2txfeevault.go @@ -32,7 +32,7 @@ var ( // L2TxFeeVaultMetaData contains all meta data concerning the L2TxFeeVault contract. var L2TxFeeVaultMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldMessenger\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newMessenger\",\"type\":\"address\"}],\"name\":\"UpdateMessenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMinWithdrawAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMinWithdrawAmount\",\"type\":\"uint256\"}],\"name\":\"UpdateMinWithdrawAmount\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateReceiveAllowed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldRecipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRecipient\",\"type\":\"address\"}],\"name\":\"UpdateRecipient\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateTransferAllowed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"isReceiveAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minWithdrawAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiveAddr\",\"type\":\"address\"}],\"name\":\"receiveAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"transferAddr\",\"type\":\"address\"}],\"name\":\"transferAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"transferTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newMessenger\",\"type\":\"address\"}],\"name\":\"updateMessenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newMinWithdrawAmount\",\"type\":\"uint256\"}],\"name\":\"updateMinWithdrawAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_accounts\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"updateReceiveAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newRecipient\",\"type\":\"address\"}],\"name\":\"updateRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_accounts\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"updateTransferAllowedStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x608060405234801562000010575f80fd5b5060405162001687380380620016878339810160408190526200003391620000d3565b6200003e8362000068565b600155600380546001600160a01b0319166001600160a01b03929092169190911790555062000111565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000ce575f80fd5b919050565b5f805f60608486031215620000e6575f80fd5b620000f184620000b7565b92506200010160208501620000b7565b9150604084015190509250925092565b611568806200011f5f395ff3fe608060405260043610610140575f3560e01c806384411d65116100bb578063da13f9a211610071578063f2fde38b11610057578063f2fde38b146103c4578063feec756c146103e3578063ff4f354614610402575f80fd5b8063da13f9a214610377578063eff1337c14610396575f80fd5b80639e7adc79116100a15780639e7adc79146102f5578063a03fa7e314610314578063cc198d7414610333575f80fd5b806384411d65146102b55780638da5cb5b146102ca575f80fd5b80633ccfd60b1161011057806366d003ac116100f657806366d003ac14610256578063708125ad14610282578063715018a6146102a1575f80fd5b80633ccfd60b1461021f578063457e1a4914610233575f80fd5b8063151eeb551461014b5780632ccb1b301461018e5780632e1a7d4d146101af5780633cb747bf146101ce575f80fd5b3661014757005b5f80fd5b348015610156575f80fd5b5061017961016536600461130d565b60056020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610199575f80fd5b506101ad6101a836600461132d565b610421565b005b3480156101ba575f80fd5b506101ad6101c9366004611355565b610750565b3480156101d9575f80fd5b506002546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610185565b34801561022a575f80fd5b506101ad610a55565b34801561023e575f80fd5b5061024860015481565b604051908152602001610185565b348015610261575f80fd5b506003546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561028d575f80fd5b506101ad61029c3660046113a8565b610ac8565b3480156102ac575f80fd5b506101ad610ce2565b3480156102c0575f80fd5b5061024860045481565b3480156102d5575f80fd5b505f546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610300575f80fd5b506101ad61030f36600461130d565b610d53565b34801561031f575f80fd5b506101ad61032e36600461130d565b610e2f565b34801561033e575f80fd5b5061017961034d36600461130d565b73ffffffffffffffffffffffffffffffffffffffff165f9081526006602052604090205460ff1690565b348015610382575f80fd5b506101ad6103913660046113a8565b610ebd565b3480156103a1575f80fd5b506101796103b036600461130d565b60066020525f908152604090205460ff1681565b3480156103cf575f80fd5b506101ad6103de36600461130d565b611018565b3480156103ee575f80fd5b506101ad6103fd36600461130d565b6110ea565b34801561040d575f80fd5b506101ad61041c366004611355565b6111c6565b335f9081526005602052604090205460ff168061045457505f5473ffffffffffffffffffffffffffffffffffffffff1633145b6104a55760405162461bcd60e51b815260206004820152601f60248201527f4665655661756c743a2063616c6c6572206973206e6f7420616c6c6f7765640060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661052e5760405162461bcd60e51b815260206004820152603060248201527f4665655661756c743a20726563697069656e7420616464726573732063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161049c565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526006602052604090205460ff166105c85760405162461bcd60e51b815260206004820152602760248201527f4665655661756c743a20726563697069656e742061646472657373206e6f742060448201527f616c6c6f77656400000000000000000000000000000000000000000000000000606482015260840161049c565b478082111561063f5760405162461bcd60e51b815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e6365207460448201527f6f207472616e7366657200000000000000000000000000000000000000000000606482015260840161049c565b60048054830190556003546040805184815273ffffffffffffffffffffffffffffffffffffffff90921660208301523382820152517f0a429aba3d89849a2db0153e4534d95c46a1d83c8109d73893f55ebc44010ff49181900360600190a15f8373ffffffffffffffffffffffffffffffffffffffff16836040515f6040518083038185875af1925050503d805f81146106f4576040519150601f19603f3d011682016040523d82523d5f602084013e6106f9565b606091505b505090508061074a5760405162461bcd60e51b815260206004820152601d60248201527f4665655661756c743a20455448207472616e73666572206661696c6564000000604482015260640161049c565b50505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107b65760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b60035473ffffffffffffffffffffffffffffffffffffffff166108415760405162461bcd60e51b815260206004820152603060248201527f4665655661756c743a20726563697069656e7420616464726573732063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161049c565b6001548110156108df5760405162461bcd60e51b815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a40161049c565b47808211156109565760405162461bcd60e51b815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e6365207460448201527f6f20776974686472617700000000000000000000000000000000000000000000606482015260840161049c565b60048054830190556003546040805184815273ffffffffffffffffffffffffffffffffffffffff90921660208301523382820152517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a1600254600354604080516020810182525f80825291517fb2267a7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9485169463b2267a7b948894610a23949190921692859290600401611498565b5f604051808303818588803b158015610a3a575f80fd5b505af1158015610a4c573d5f803e3d5ffd5b50505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610abb5760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b47610ac581610750565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610b2e5760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b5f5b8251811015610cdd575f73ffffffffffffffffffffffffffffffffffffffff16838281518110610b6257610b6261152e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610bf35760405162461bcd60e51b815260206004820152602660248201527f4665655661756c743a20616464726573732063616e6e6f74206265206164647260448201527f6573732830290000000000000000000000000000000000000000000000000000606482015260840161049c565b8160065f858481518110610c0957610c0961152e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fbd84b6b3e1d029fd61a717f6020a8f35b358486e0971c00d4e64b516503f85e7838281518110610c9357610c9361152e565b602002602001015183604051610ccd92919073ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b60405180910390a1600101610b30565b505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610d485760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b610d515f611271565b565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610db95760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f1c928c417a10a21c3cddad148c5dba5d710e4b1442d6d8a36de345935ad84612905f90a35050565b335f9081526005602052604090205460ff1680610e6257505f5473ffffffffffffffffffffffffffffffffffffffff1633145b610eae5760405162461bcd60e51b815260206004820152601f60248201527f4665655661756c743a2063616c6c6572206973206e6f7420616c6c6f77656400604482015260640161049c565b47610eb98282610421565b5050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610f235760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b5f5b8251811015610cdd578160055f858481518110610f4457610f4461152e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fbb5d3e442e800faa1089a4f57bae4f36808d3cf15d051033d78a72147782f24c838281518110610fce57610fce61152e565b60200260200101518360405161100892919073ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b60405180910390a1600101610f25565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461107e5760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b73ffffffffffffffffffffffffffffffffffffffff81166110e15760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604482015260640161049c565b610ac581611271565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146111505760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f7e1e96961a397c8aa26162fe259cc837afc95e33aad4945ddc61c18dabb7a6ad905f90a35050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461122c5760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b600180549082905560408051828152602081018490527f0d3c80219fe57713b9f9c83d1e51426792d0c14d8e330e65b102571816140965910160405180910390a15050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611308575f80fd5b919050565b5f6020828403121561131d575f80fd5b611326826112e5565b9392505050565b5f806040838503121561133e575f80fd5b611347836112e5565b946020939093013593505050565b5f60208284031215611365575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b80358015158114611308575f80fd5b5f80604083850312156113b9575f80fd5b823567ffffffffffffffff808211156113d0575f80fd5b818501915085601f8301126113e3575f80fd5b81356020828211156113f7576113f761136c565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110868211171561143a5761143a61136c565b604052928352818301935084810182019289841115611457575f80fd5b948201945b8386101561147c5761146d866112e5565b8552948201949382019361145c565b965061148b9050878201611399565b9450505050509250929050565b73ffffffffffffffffffffffffffffffffffffffff851681525f60208560208401526080604084015284518060808501525f5b818110156114e75786810183015185820160a0015282016114cb565b505f60a0828601015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea164736f6c6343000818000a", + Bin: "0x608060405234801562000010575f80fd5b5060405162001950380380620019508339810160408190526200003391620000d3565b6200003e8362000068565b600155600380546001600160a01b0319166001600160a01b03929092169190911790555062000111565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000ce575f80fd5b919050565b5f805f60608486031215620000e6575f80fd5b620000f184620000b7565b92506200010160208501620000b7565b9150604084015190509250925092565b611831806200011f5f395ff3fe608060405260043610610140575f3560e01c806384411d65116100bb578063da13f9a211610071578063f2fde38b11610057578063f2fde38b146103c4578063feec756c146103e3578063ff4f354614610402575f80fd5b8063da13f9a214610377578063eff1337c14610396575f80fd5b80639e7adc79116100a15780639e7adc79146102f5578063a03fa7e314610314578063cc198d7414610333575f80fd5b806384411d65146102b55780638da5cb5b146102ca575f80fd5b80633ccfd60b1161011057806366d003ac116100f657806366d003ac14610256578063708125ad14610282578063715018a6146102a1575f80fd5b80633ccfd60b1461021f578063457e1a4914610233575f80fd5b8063151eeb551461014b5780632ccb1b301461018e5780632e1a7d4d146101af5780633cb747bf146101ce575f80fd5b3661014757005b5f80fd5b348015610156575f80fd5b506101796101653660046115d6565b60056020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610199575f80fd5b506101ad6101a83660046115f6565b610421565b005b3480156101ba575f80fd5b506101ad6101c936600461161e565b61074d565b3480156101d9575f80fd5b506002546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610185565b34801561022a575f80fd5b506101ad610add565b34801561023e575f80fd5b5061024860015481565b604051908152602001610185565b348015610261575f80fd5b506003546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561028d575f80fd5b506101ad61029c366004611671565b610b50565b3480156102ac575f80fd5b506101ad610d6a565b3480156102c0575f80fd5b5061024860045481565b3480156102d5575f80fd5b505f546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610300575f80fd5b506101ad61030f3660046115d6565b610ddb565b34801561031f575f80fd5b506101ad61032e3660046115d6565b610f40565b34801561033e575f80fd5b5061017961034d3660046115d6565b73ffffffffffffffffffffffffffffffffffffffff165f9081526006602052604090205460ff1690565b348015610382575f80fd5b506101ad610391366004611671565b610fce565b3480156103a1575f80fd5b506101796103b03660046115d6565b60066020525f908152604090205460ff1681565b3480156103cf575f80fd5b506101ad6103de3660046115d6565b6111e3565b3480156103ee575f80fd5b506101ad6103fd3660046115d6565b6112b5565b34801561040d575f80fd5b506101ad61041c36600461161e565b61141a565b335f9081526005602052604090205460ff168061045457505f5473ffffffffffffffffffffffffffffffffffffffff1633145b6104a55760405162461bcd60e51b815260206004820152601f60248201527f4665655661756c743a2063616c6c6572206973206e6f7420616c6c6f7765640060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661052e5760405162461bcd60e51b815260206004820152603060248201527f4665655661756c743a20726563697069656e7420616464726573732063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161049c565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526006602052604090205460ff166105c85760405162461bcd60e51b815260206004820152602760248201527f4665655661756c743a20726563697069656e742061646472657373206e6f742060448201527f616c6c6f77656400000000000000000000000000000000000000000000000000606482015260840161049c565b478082111561063f5760405162461bcd60e51b815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e6365207460448201527f6f207472616e7366657200000000000000000000000000000000000000000000606482015260840161049c565b60048054830190556040805183815273ffffffffffffffffffffffffffffffffffffffff85166020820152338183015290517f0a429aba3d89849a2db0153e4534d95c46a1d83c8109d73893f55ebc44010ff49181900360600190a15f8373ffffffffffffffffffffffffffffffffffffffff16836040515f6040518083038185875af1925050503d805f81146106f1576040519150601f19603f3d011682016040523d82523d5f602084013e6106f6565b606091505b50509050806107475760405162461bcd60e51b815260206004820152601d60248201527f4665655661756c743a20455448207472616e73666572206661696c6564000000604482015260640161049c565b50505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107b35760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b60025473ffffffffffffffffffffffffffffffffffffffff1661083e5760405162461bcd60e51b815260206004820152603060248201527f4665655661756c743a206d657373656e67657220616464726573732063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161049c565b60035473ffffffffffffffffffffffffffffffffffffffff166108c95760405162461bcd60e51b815260206004820152603060248201527f4665655661756c743a20726563697069656e7420616464726573732063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161049c565b6001548110156109675760405162461bcd60e51b815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a40161049c565b47808211156109de5760405162461bcd60e51b815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e6365207460448201527f6f20776974686472617700000000000000000000000000000000000000000000606482015260840161049c565b60048054830190556003546040805184815273ffffffffffffffffffffffffffffffffffffffff90921660208301523382820152517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a1600254600354604080516020810182525f80825291517fb2267a7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9485169463b2267a7b948894610aab949190921692859290600401611761565b5f604051808303818588803b158015610ac2575f80fd5b505af1158015610ad4573d5f803e3d5ffd5b50505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610b435760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b47610b4d8161074d565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610bb65760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b5f5b8251811015610d65575f73ffffffffffffffffffffffffffffffffffffffff16838281518110610bea57610bea6117f7565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610c7b5760405162461bcd60e51b815260206004820152602e60248201527f4665655661756c743a207265636569766520616464726573732063616e6e6f7460448201527f2062652061646472657373283029000000000000000000000000000000000000606482015260840161049c565b8160065f858481518110610c9157610c916117f7565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fbd84b6b3e1d029fd61a717f6020a8f35b358486e0971c00d4e64b516503f85e7838281518110610d1b57610d1b6117f7565b602002602001015183604051610d5592919073ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b60405180910390a1600101610bb8565b505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610dd05760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b610dd95f61153a565b565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610e415760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b73ffffffffffffffffffffffffffffffffffffffff8116610eca5760405162461bcd60e51b815260206004820152603460248201527f4665655661756c743a206e6577206d657373656e67657220616464726573732060448201527f63616e6e6f742062652061646472657373283029000000000000000000000000606482015260840161049c565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f1c928c417a10a21c3cddad148c5dba5d710e4b1442d6d8a36de345935ad84612905f90a35050565b335f9081526005602052604090205460ff1680610f7357505f5473ffffffffffffffffffffffffffffffffffffffff1633145b610fbf5760405162461bcd60e51b815260206004820152601f60248201527f4665655661756c743a2063616c6c6572206973206e6f7420616c6c6f77656400604482015260640161049c565b47610fca8282610421565b5050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146110345760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b5f5b8251811015610d65575f73ffffffffffffffffffffffffffffffffffffffff16838281518110611068576110686117f7565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036110f95760405162461bcd60e51b815260206004820152603760248201527f4665655661756c743a207472616e7366657220616c6c6f77656420616464726560448201527f73732063616e6e6f742062652061646472657373283029000000000000000000606482015260840161049c565b8160055f85848151811061110f5761110f6117f7565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fbb5d3e442e800faa1089a4f57bae4f36808d3cf15d051033d78a72147782f24c838281518110611199576111996117f7565b6020026020010151836040516111d392919073ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b60405180910390a1600101611036565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146112495760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b73ffffffffffffffffffffffffffffffffffffffff81166112ac5760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604482015260640161049c565b610b4d8161153a565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461131b5760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b73ffffffffffffffffffffffffffffffffffffffff81166113a45760405162461bcd60e51b815260206004820152603460248201527f4665655661756c743a206e657720726563697069656e7420616464726573732060448201527f63616e6e6f742062652061646472657373283029000000000000000000000000606482015260840161049c565b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f7e1e96961a397c8aa26162fe259cc837afc95e33aad4945ddc61c18dabb7a6ad905f90a35050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146114805760405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161049c565b5f81116114f55760405162461bcd60e51b815260206004820152603160248201527f4665655661756c743a206e6577206d696e696d756d207769746864726177206160448201527f6d6f756e742063616e6e6f742062652030000000000000000000000000000000606482015260840161049c565b600180549082905560408051828152602081018490527f0d3c80219fe57713b9f9c83d1e51426792d0c14d8e330e65b102571816140965910160405180910390a15050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803573ffffffffffffffffffffffffffffffffffffffff811681146115d1575f80fd5b919050565b5f602082840312156115e6575f80fd5b6115ef826115ae565b9392505050565b5f8060408385031215611607575f80fd5b611610836115ae565b946020939093013593505050565b5f6020828403121561162e575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b803580151581146115d1575f80fd5b5f8060408385031215611682575f80fd5b823567ffffffffffffffff80821115611699575f80fd5b818501915085601f8301126116ac575f80fd5b81356020828211156116c0576116c0611635565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110868211171561170357611703611635565b604052928352818301935084810182019289841115611720575f80fd5b948201945b8386101561174557611736866115ae565b85529482019493820193611725565b96506117549050878201611662565b9450505050509250929050565b73ffffffffffffffffffffffffffffffffffffffff851681525f60208560208401526080604084015284518060808501525f5b818110156117b05786810183015185820160a001528201611794565b505f60a0828601015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea164736f6c6343000818000a", } // L2TxFeeVaultABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/l2txfeevault_more.go b/bindings/bindings/l2txfeevault_more.go index 5e8c0bfc6..fe5c98bd6 100644 --- a/bindings/bindings/l2txfeevault_more.go +++ b/bindings/bindings/l2txfeevault_more.go @@ -13,7 +13,7 @@ const L2TxFeeVaultStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\ var L2TxFeeVaultStorageLayout = new(solc.StorageLayout) -var L2TxFeeVaultDeployedBin = "0x608060405260043610610140575f3560e01c806384411d65116100bb578063da13f9a211610071578063f2fde38b11610057578063f2fde38b146103c4578063feec756c146103e3578063ff4f354614610402575f80fd5b8063da13f9a214610377578063eff1337c14610396575f80fd5b80639e7adc79116100a15780639e7adc79146102f5578063a03fa7e314610314578063cc198d7414610333575f80fd5b806384411d65146102b55780638da5cb5b146102ca575f80fd5b80633ccfd60b1161011057806366d003ac116100f657806366d003ac14610256578063708125ad14610282578063715018a6146102a1575f80fd5b80633ccfd60b1461021f578063457e1a4914610233575f80fd5b8063151eeb551461014b5780632ccb1b301461018e5780632e1a7d4d146101af5780633cb747bf146101ce575f80fd5b3661014757005b5f80fd5b348015610156575f80fd5b50610179610165366004611515565b60056020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610199575f80fd5b506101ad6101a8366004611535565b610421565b005b3480156101ba575f80fd5b506101ad6101c936600461155d565b6107d2565b3480156101d9575f80fd5b506002546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610185565b34801561022a575f80fd5b506101ad610b3f565b34801561023e575f80fd5b5061024860015481565b604051908152602001610185565b348015610261575f80fd5b506003546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561028d575f80fd5b506101ad61029c3660046115b0565b610bcc565b3480156102ac575f80fd5b506101ad610e1a565b3480156102c0575f80fd5b5061024860045481565b3480156102d5575f80fd5b505f546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610300575f80fd5b506101ad61030f366004611515565b610ea5565b34801561031f575f80fd5b506101ad61032e366004611515565b610f9b565b34801561033e575f80fd5b5061017961034d366004611515565b73ffffffffffffffffffffffffffffffffffffffff165f9081526006602052604090205460ff1690565b348015610382575f80fd5b506101ad6103913660046115b0565b611043565b3480156103a1575f80fd5b506101796103b0366004611515565b60066020525f908152604090205460ff1681565b3480156103cf575f80fd5b506101ad6103de366004611515565b6111b8565b3480156103ee575f80fd5b506101ad6103fd366004611515565b6112be565b34801561040d575f80fd5b506101ad61041c36600461155d565b6113b4565b335f9081526005602052604090205460ff168061045457505f5473ffffffffffffffffffffffffffffffffffffffff1633145b6104bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4665655661756c743a2063616c6c6572206973206e6f7420616c6c6f7765640060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a20726563697069656e7420616464726573732063616e6e60448201527f6f7420626520616464726573732830290000000000000000000000000000000060648201526084016104b6565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526006602052604090205460ff16610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4665655661756c743a20726563697069656e742061646472657373206e6f742060448201527f616c6c6f7765640000000000000000000000000000000000000000000000000060648201526084016104b6565b47808211156106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e6365207460448201527f6f207472616e736665720000000000000000000000000000000000000000000060648201526084016104b6565b60048054830190556003546040805184815273ffffffffffffffffffffffffffffffffffffffff90921660208301523382820152517f0a429aba3d89849a2db0153e4534d95c46a1d83c8109d73893f55ebc44010ff49181900360600190a15f8373ffffffffffffffffffffffffffffffffffffffff16836040515f6040518083038185875af1925050503d805f811461075c576040519150601f19603f3d011682016040523d82523d5f602084013e610761565b606091505b50509050806107cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4665655661756c743a20455448207472616e73666572206661696c656400000060448201526064016104b6565b50505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610852576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b60035473ffffffffffffffffffffffffffffffffffffffff166108f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a20726563697069656e7420616464726573732063616e6e60448201527f6f7420626520616464726573732830290000000000000000000000000000000060648201526084016104b6565b6001548110156109af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4016104b6565b4780821115610a40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e6365207460448201527f6f2077697468647261770000000000000000000000000000000000000000000060648201526084016104b6565b60048054830190556003546040805184815273ffffffffffffffffffffffffffffffffffffffff90921660208301523382820152517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a1600254600354604080516020810182525f80825291517fb2267a7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9485169463b2267a7b948894610b0d9491909216928592906004016116a0565b5f604051808303818588803b158015610b24575f80fd5b505af1158015610b36573d5f803e3d5ffd5b50505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610bbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b47610bc9816107d2565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610c4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b5f5b8251811015610e15575f73ffffffffffffffffffffffffffffffffffffffff16838281518110610c8057610c80611736565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610d2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4665655661756c743a20616464726573732063616e6e6f74206265206164647260448201527f657373283029000000000000000000000000000000000000000000000000000060648201526084016104b6565b8160065f858481518110610d4157610d41611736565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fbd84b6b3e1d029fd61a717f6020a8f35b358486e0971c00d4e64b516503f85e7838281518110610dcb57610dcb611736565b602002602001015183604051610e0592919073ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b60405180910390a1600101610c4e565b505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610e9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b610ea35f611479565b565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610f25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f1c928c417a10a21c3cddad148c5dba5d710e4b1442d6d8a36de345935ad84612905f90a35050565b335f9081526005602052604090205460ff1680610fce57505f5473ffffffffffffffffffffffffffffffffffffffff1633145b611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4665655661756c743a2063616c6c6572206973206e6f7420616c6c6f7765640060448201526064016104b6565b4761103f8282610421565b5050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146110c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b5f5b8251811015610e15578160055f8584815181106110e4576110e4611736565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fbb5d3e442e800faa1089a4f57bae4f36808d3cf15d051033d78a72147782f24c83828151811061116e5761116e611736565b6020026020010151836040516111a892919073ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b60405180910390a16001016110c5565b5f5473ffffffffffffffffffffffffffffffffffffffff163314611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b73ffffffffffffffffffffffffffffffffffffffff81166112b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016104b6565b610bc981611479565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f7e1e96961a397c8aa26162fe259cc837afc95e33aad4945ddc61c18dabb7a6ad905f90a35050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b600180549082905560408051828152602081018490527f0d3c80219fe57713b9f9c83d1e51426792d0c14d8e330e65b102571816140965910160405180910390a15050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611510575f80fd5b919050565b5f60208284031215611525575f80fd5b61152e826114ed565b9392505050565b5f8060408385031215611546575f80fd5b61154f836114ed565b946020939093013593505050565b5f6020828403121561156d575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b80358015158114611510575f80fd5b5f80604083850312156115c1575f80fd5b823567ffffffffffffffff808211156115d8575f80fd5b818501915085601f8301126115eb575f80fd5b81356020828211156115ff576115ff611574565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110868211171561164257611642611574565b60405292835281830193508481018201928984111561165f575f80fd5b948201945b8386101561168457611675866114ed565b85529482019493820193611664565b965061169390508782016115a1565b9450505050509250929050565b73ffffffffffffffffffffffffffffffffffffffff851681525f60208560208401526080604084015284518060808501525f5b818110156116ef5786810183015185820160a0015282016116d3565b505f60a0828601015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea164736f6c6343000818000a" +var L2TxFeeVaultDeployedBin = "0x608060405260043610610140575f3560e01c806384411d65116100bb578063da13f9a211610071578063f2fde38b11610057578063f2fde38b146103c4578063feec756c146103e3578063ff4f354614610402575f80fd5b8063da13f9a214610377578063eff1337c14610396575f80fd5b80639e7adc79116100a15780639e7adc79146102f5578063a03fa7e314610314578063cc198d7414610333575f80fd5b806384411d65146102b55780638da5cb5b146102ca575f80fd5b80633ccfd60b1161011057806366d003ac116100f657806366d003ac14610256578063708125ad14610282578063715018a6146102a1575f80fd5b80633ccfd60b1461021f578063457e1a4914610233575f80fd5b8063151eeb551461014b5780632ccb1b301461018e5780632e1a7d4d146101af5780633cb747bf146101ce575f80fd5b3661014757005b5f80fd5b348015610156575f80fd5b50610179610165366004611860565b60056020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610199575f80fd5b506101ad6101a8366004611880565b610421565b005b3480156101ba575f80fd5b506101ad6101c93660046118a8565b6107cf565b3480156101d9575f80fd5b506002546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610185565b34801561022a575f80fd5b506101ad610be1565b34801561023e575f80fd5b5061024860015481565b604051908152602001610185565b348015610261575f80fd5b506003546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561028d575f80fd5b506101ad61029c3660046118fb565b610c6e565b3480156102ac575f80fd5b506101ad610ebc565b3480156102c0575f80fd5b5061024860045481565b3480156102d5575f80fd5b505f546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610300575f80fd5b506101ad61030f366004611860565b610f47565b34801561031f575f80fd5b506101ad61032e366004611860565b6110e0565b34801561033e575f80fd5b5061017961034d366004611860565b73ffffffffffffffffffffffffffffffffffffffff165f9081526006602052604090205460ff1690565b348015610382575f80fd5b506101ad6103913660046118fb565b611188565b3480156103a1575f80fd5b506101796103b0366004611860565b60066020525f908152604090205460ff1681565b3480156103cf575f80fd5b506101ad6103de366004611860565b6113d1565b3480156103ee575f80fd5b506101ad6103fd366004611860565b6114d7565b34801561040d575f80fd5b506101ad61041c3660046118a8565b611670565b335f9081526005602052604090205460ff168061045457505f5473ffffffffffffffffffffffffffffffffffffffff1633145b6104bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4665655661756c743a2063616c6c6572206973206e6f7420616c6c6f7765640060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a20726563697069656e7420616464726573732063616e6e60448201527f6f7420626520616464726573732830290000000000000000000000000000000060648201526084016104b6565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526006602052604090205460ff16610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4665655661756c743a20726563697069656e742061646472657373206e6f742060448201527f616c6c6f7765640000000000000000000000000000000000000000000000000060648201526084016104b6565b47808211156106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e6365207460448201527f6f207472616e736665720000000000000000000000000000000000000000000060648201526084016104b6565b60048054830190556040805183815273ffffffffffffffffffffffffffffffffffffffff85166020820152338183015290517f0a429aba3d89849a2db0153e4534d95c46a1d83c8109d73893f55ebc44010ff49181900360600190a15f8373ffffffffffffffffffffffffffffffffffffffff16836040515f6040518083038185875af1925050503d805f8114610759576040519150601f19603f3d011682016040523d82523d5f602084013e61075e565b606091505b50509050806107c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4665655661756c743a20455448207472616e73666572206661696c656400000060448201526064016104b6565b50505050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461084f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b60025473ffffffffffffffffffffffffffffffffffffffff166108f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206d657373656e67657220616464726573732063616e6e60448201527f6f7420626520616464726573732830290000000000000000000000000000000060648201526084016104b6565b60035473ffffffffffffffffffffffffffffffffffffffff16610999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a20726563697069656e7420616464726573732063616e6e60448201527f6f7420626520616464726573732830290000000000000000000000000000000060648201526084016104b6565b600154811015610a51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4016104b6565b4780821115610ae2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e6365207460448201527f6f2077697468647261770000000000000000000000000000000000000000000060648201526084016104b6565b60048054830190556003546040805184815273ffffffffffffffffffffffffffffffffffffffff90921660208301523382820152517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a1600254600354604080516020810182525f80825291517fb2267a7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9485169463b2267a7b948894610baf9491909216928592906004016119eb565b5f604051808303818588803b158015610bc6575f80fd5b505af1158015610bd8573d5f803e3d5ffd5b50505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610c61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b47610c6b816107cf565b50565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610cee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b5f5b8251811015610eb7575f73ffffffffffffffffffffffffffffffffffffffff16838281518110610d2257610d22611a81565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610dcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4665655661756c743a207265636569766520616464726573732063616e6e6f7460448201527f206265206164647265737328302900000000000000000000000000000000000060648201526084016104b6565b8160065f858481518110610de357610de3611a81565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fbd84b6b3e1d029fd61a717f6020a8f35b358486e0971c00d4e64b516503f85e7838281518110610e6d57610e6d611a81565b602002602001015183604051610ea792919073ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b60405180910390a1600101610cf0565b505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610f3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b610f455f6117c4565b565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610fc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b73ffffffffffffffffffffffffffffffffffffffff811661106a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4665655661756c743a206e6577206d657373656e67657220616464726573732060448201527f63616e6e6f74206265206164647265737328302900000000000000000000000060648201526084016104b6565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f1c928c417a10a21c3cddad148c5dba5d710e4b1442d6d8a36de345935ad84612905f90a35050565b335f9081526005602052604090205460ff168061111357505f5473ffffffffffffffffffffffffffffffffffffffff1633145b611179576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4665655661756c743a2063616c6c6572206973206e6f7420616c6c6f7765640060448201526064016104b6565b476111848282610421565b5050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314611208576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b5f5b8251811015610eb7575f73ffffffffffffffffffffffffffffffffffffffff1683828151811061123c5761123c611a81565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036112e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4665655661756c743a207472616e7366657220616c6c6f77656420616464726560448201527f73732063616e6e6f74206265206164647265737328302900000000000000000060648201526084016104b6565b8160055f8584815181106112fd576112fd611a81565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fbb5d3e442e800faa1089a4f57bae4f36808d3cf15d051033d78a72147782f24c83828151811061138757611387611a81565b6020026020010151836040516113c192919073ffffffffffffffffffffffffffffffffffffffff9290921682521515602082015260400190565b60405180910390a160010161120a565b5f5473ffffffffffffffffffffffffffffffffffffffff163314611451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b73ffffffffffffffffffffffffffffffffffffffff81166114ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016104b6565b610c6b816117c4565b5f5473ffffffffffffffffffffffffffffffffffffffff163314611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b73ffffffffffffffffffffffffffffffffffffffff81166115fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4665655661756c743a206e657720726563697069656e7420616464726573732060448201527f63616e6e6f74206265206164647265737328302900000000000000000000000060648201526084016104b6565b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f7e1e96961a397c8aa26162fe259cc837afc95e33aad4945ddc61c18dabb7a6ad905f90a35050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146116f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016104b6565b5f811161177f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4665655661756c743a206e6577206d696e696d756d207769746864726177206160448201527f6d6f756e742063616e6e6f74206265203000000000000000000000000000000060648201526084016104b6565b600180549082905560408051828152602081018490527f0d3c80219fe57713b9f9c83d1e51426792d0c14d8e330e65b102571816140965910160405180910390a15050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461185b575f80fd5b919050565b5f60208284031215611870575f80fd5b61187982611838565b9392505050565b5f8060408385031215611891575f80fd5b61189a83611838565b946020939093013593505050565b5f602082840312156118b8575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b8035801515811461185b575f80fd5b5f806040838503121561190c575f80fd5b823567ffffffffffffffff80821115611923575f80fd5b818501915085601f830112611936575f80fd5b813560208282111561194a5761194a6118bf565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110868211171561198d5761198d6118bf565b6040529283528183019350848101820192898411156119aa575f80fd5b948201945b838610156119cf576119c086611838565b855294820194938201936119af565b96506119de90508782016118ec565b9450505050509250929050565b73ffffffffffffffffffffffffffffffffffffffff851681525f60208560208401526080604084015284518060808501525f5b81811015611a3a5786810183015185820160a001528201611a1e565b505f60a0828601015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L2TxFeeVaultStorageLayoutJSON), L2TxFeeVaultStorageLayout); err != nil { diff --git a/contracts/contracts/l2/system/L2TxFeeVault.sol b/contracts/contracts/l2/system/L2TxFeeVault.sol index 0c10c0128..84dd2a181 100644 --- a/contracts/contracts/l2/system/L2TxFeeVault.sol +++ b/contracts/contracts/l2/system/L2TxFeeVault.sol @@ -134,6 +134,7 @@ contract L2TxFeeVault is OwnableBase { /// @notice Triggers a withdrawal of funds to the L1 fee wallet. /// @param _value The amount of ETH to withdraw. function withdraw(uint256 _value) public onlyOwner { + require(messenger != address(0), "FeeVault: messenger address cannot be address(0)"); require(recipient != address(0), "FeeVault: recipient address cannot be address(0)"); require( _value >= minWithdrawAmount, @@ -178,7 +179,7 @@ contract L2TxFeeVault is OwnableBase { totalProcessed += _value; } - emit Transfer(_value, recipient, msg.sender); + emit Transfer(_value, _to, msg.sender); (bool success, ) = _to.call{value: _value}(""); require(success, "FeeVault: ETH transfer failed"); } @@ -199,6 +200,7 @@ contract L2TxFeeVault is OwnableBase { /// @param _status The transfer allowed status to update. function updateTransferAllowedStatus(address[] memory _accounts, bool _status) external onlyOwner { for (uint256 i = 0; i < _accounts.length; i++) { + require(_accounts[i] != address(0), "FeeVault: transfer allowed address cannot be address(0)"); transferAllowed[_accounts[i]] = _status; emit UpdateTransferAllowed(_accounts[i], _status); } @@ -209,7 +211,7 @@ contract L2TxFeeVault is OwnableBase { /// @param _status The receive allowed status to update. function updateReceiveAllowed(address[] memory _accounts, bool _status) external onlyOwner { for (uint256 i = 0; i < _accounts.length; i++) { - require(_accounts[i] != address(0), "FeeVault: address cannot be address(0)"); + require(_accounts[i] != address(0), "FeeVault: receive address cannot be address(0)"); receiveAllowed[_accounts[i]] = _status; emit UpdateReceiveAllowed(_accounts[i], _status); } @@ -218,6 +220,7 @@ contract L2TxFeeVault is OwnableBase { /// @notice Update the address of messenger. /// @param _newMessenger The address of messenger to update. function updateMessenger(address _newMessenger) external onlyOwner { + require(_newMessenger != address(0), "FeeVault: new messenger address cannot be address(0)"); address _oldMessenger = messenger; messenger = _newMessenger; @@ -227,6 +230,7 @@ contract L2TxFeeVault is OwnableBase { /// @notice Update the address of recipient. /// @param _newRecipient The address of recipient to update. function updateRecipient(address _newRecipient) external onlyOwner { + require(_newRecipient != address(0), "FeeVault: new recipient address cannot be address(0)"); address _oldRecipient = recipient; recipient = _newRecipient; @@ -236,6 +240,7 @@ contract L2TxFeeVault is OwnableBase { /// @notice Update the minimum withdraw amount. /// @param _newMinWithdrawAmount The minimum withdraw amount to update. function updateMinWithdrawAmount(uint256 _newMinWithdrawAmount) external onlyOwner { + require(_newMinWithdrawAmount > 0, "FeeVault: new minimum withdraw amount cannot be 0"); uint256 _oldMinWithdrawAmount = minWithdrawAmount; minWithdrawAmount = _newMinWithdrawAmount; diff --git a/contracts/contracts/test/L2TxFeeVault.t.sol b/contracts/contracts/test/L2TxFeeVault.t.sol index e8575e2d1..c56e9eca8 100644 --- a/contracts/contracts/test/L2TxFeeVault.t.sol +++ b/contracts/contracts/test/L2TxFeeVault.t.sol @@ -73,12 +73,6 @@ contract L2TxFeeVaultTest is DSTestPlus { vault.withdraw(amount); } - function test_withdraw_zeroReceiptAddress_reverts() public { - vault.updateRecipient(address(0)); - hevm.expectRevert("FeeVault: recipient address cannot be address(0)"); - vault.withdraw(); - } - function test_withdrawOnce_succeeds() public { hevm.deal(address(vault), 11 ether); @@ -251,7 +245,7 @@ contract L2TxFeeVaultTest is DSTestPlus { hevm.deal(address(vault), 11 ether); hevm.expectEmit(true, true, true, true); - emit L2TxFeeVault.Transfer(address(vault).balance, vault.recipient(), address(this)); + emit L2TxFeeVault.Transfer(address(vault).balance, to, address(this)); vault.transferTo(to); assertEq(address(to).balance, 11 ether); @@ -275,7 +269,7 @@ contract L2TxFeeVaultTest is DSTestPlus { hevm.deal(address(vault), 11 ether); hevm.expectEmit(true, true, true, true); - emit L2TxFeeVault.Transfer(address(vault).balance, vault.recipient(), allowed); + emit L2TxFeeVault.Transfer(address(vault).balance, to, allowed); hevm.prank(allowed); vault.transferTo(to); @@ -291,14 +285,14 @@ contract L2TxFeeVaultTest is DSTestPlus { hevm.deal(address(vault), 20 ether); hevm.expectEmit(true, true, true, true); - emit L2TxFeeVault.Transfer(10 ether, vault.recipient(), address(this)); + emit L2TxFeeVault.Transfer(10 ether, to, address(this)); vault.transferTo(to, 10 ether); assertEq(address(to).balance, 10 ether); assertEq(address(vault).balance, 10 ether); hevm.expectEmit(true, true, true, true); - emit L2TxFeeVault.Transfer(5 ether, vault.recipient(), address(this)); + emit L2TxFeeVault.Transfer(5 ether, to, address(this)); vault.transferTo(to, 5 ether); assertEq(address(to).balance, 15 ether); @@ -326,13 +320,13 @@ contract L2TxFeeVaultTest is DSTestPlus { function test_updateTransferAllowedStatus_withZeroAddress_succeeds() public { address[] memory allowedTransfer = new address[](1); - allowedTransfer[0] = address(0); + allowedTransfer[0] = address(1); hevm.expectEmit(true, true, true, true); emit L2TxFeeVault.UpdateTransferAllowed(allowedTransfer[0], true); vault.updateTransferAllowedStatus(allowedTransfer, true); - assertTrue(vault.transferAllowed(address(0))); + assertTrue(vault.transferAllowed(address(1))); } function test_updateReceiveAllowed_notOwner_reverts() public { @@ -347,7 +341,7 @@ contract L2TxFeeVaultTest is DSTestPlus { address[] memory allowedReceive = new address[](1); allowedReceive[0] = address(0); - hevm.expectRevert("FeeVault: address cannot be address(0)"); + hevm.expectRevert("FeeVault: receive address cannot be address(0)"); vault.updateReceiveAllowed(allowedReceive, true); } @@ -419,7 +413,7 @@ contract L2TxFeeVaultTest is DSTestPlus { function test_updateMinWithdrawAmount_zeroMinWithdrawAmount_succeeds() public { uint256 oldAmount = vault.minWithdrawAmount(); - uint256 newAmount = 0 ether; + uint256 newAmount = 1 ether; hevm.expectEmit(true, true, true, true); emit L2TxFeeVault.UpdateMinWithdrawAmount(oldAmount, newAmount); From 732f380753826b96728df864856859ca48e2c2ed Mon Sep 17 00:00:00 2001 From: vincent Date: Mon, 23 Dec 2024 14:48:35 +0800 Subject: [PATCH 066/106] Add prover workflow (#684) Co-authored-by: chengwenxi <22697326+chengwenxi@users.noreply.github.com> Co-authored-by: Kathy <22675649+anylots@users.noreply.github.com> --- .github/workflows/prover.yml | 59 ++++++---- prover/Makefile | 6 +- prover/bin/server/src/lib.rs | 11 +- prover/crates/core/src/batch.rs | 9 +- prover/crates/core/src/database.rs | 107 ++++++++---------- prover/crates/core/src/error.rs | 3 +- prover/crates/core/src/executor/builder.rs | 11 +- prover/crates/core/src/executor/hooks.rs | 5 +- prover/crates/core/src/hardfork.rs | 30 +---- .../morph-executor/host/src/zstd_util.rs | 8 +- prover/crates/primitives/src/lib.rs | 14 +-- prover/crates/primitives/src/types/mod.rs | 71 +++--------- prover/crates/primitives/src/types/tx.rs | 12 +- prover/crates/utils/src/metrics/registry.rs | 6 +- prover/crates/utils/src/utils/debug.rs | 18 +-- .../client/elf/riscv32im-succinct-zkvm-elf | Bin 117204 -> 106780 bytes .../client/elf/riscv32im-succinct-zkvm-elf | Bin 238816 -> 225544 bytes prover/tests/bls12381/host/src/main.rs | 20 +--- .../client/elf/riscv32im-succinct-zkvm-elf | Bin 124308 -> 113776 bytes prover/tests/keccak256/host/src/main.rs | 20 +--- .../client/elf/riscv32im-succinct-zkvm-elf | Bin 443716 -> 430500 bytes prover/tests/zstd/host/src/main.rs | 23 +--- 22 files changed, 154 insertions(+), 279 deletions(-) diff --git a/.github/workflows/prover.yml b/.github/workflows/prover.yml index f600b11cb..1d066b0d8 100644 --- a/.github/workflows/prover.yml +++ b/.github/workflows/prover.yml @@ -1,25 +1,38 @@ name: Prover -# on: -# push: -# branches: -# - main -# paths: -# - "prover/**" -# - ".github/workflows/prover.yaml" -# pull_request: -# paths: -# - "prover/**" -# - ".github/workflows/prover.yaml" -# -# defaults: -# run: -# working-directory: "prover" -# -# jobs: -# check: -# runs-on: ubuntu-22.04 -# steps: -# - uses: actions/checkout@v3 -# - name: Run build -# run: make build-prover +on: + push: + branches: + - main + paths: + - "prover/**" + - ".github/workflows/prover.yaml" + pull_request: + paths: + - "prover/**" + - ".github/workflows/prover.yaml" + +defaults: + run: + working-directory: "prover" + +jobs: + fmt: + name: fmt + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt + - run: cargo fmt --all --check + + build: + name: build + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - run: make build-shadow-prove && make build-shadow-prove diff --git a/prover/Makefile b/prover/Makefile index ff397cdcb..2961c1690 100644 --- a/prover/Makefile +++ b/prover/Makefile @@ -1,7 +1,6 @@ build-plonk-circuits: docker build -f Dockerfile.sp1-plonk -t sp1-plonk:latest . - save-plonk-circuits: rm -rf plonk-circuits && \ mkdir -p plonk-circuits && \ @@ -17,11 +16,10 @@ start-server: stop-server: docker compose -f docker-compose-app.yml down - build-shadow-prove: - cd bin/shadow-prove + cd bin/shadow-prove && \ cargo build --release build-challenge: - cd bin/challenge + cd bin/challenge && \ cargo build --release \ No newline at end of file diff --git a/prover/bin/server/src/lib.rs b/prover/bin/server/src/lib.rs index 799e5b5f8..1b8cad321 100644 --- a/prover/bin/server/src/lib.rs +++ b/prover/bin/server/src/lib.rs @@ -7,13 +7,16 @@ use once_cell::sync::Lazy; use prometheus::{IntGauge, Registry}; // environment variables -pub static PROVER_PROOF_DIR: Lazy = Lazy::new(|| read_env_var("PROVER_PROOF_DIR", "./proof".to_string())); -pub static PROVER_L2_RPC: Lazy = Lazy::new(|| read_env_var("PROVER_L2_RPC", "localhost:8545".to_string())); +pub static PROVER_PROOF_DIR: Lazy = + Lazy::new(|| read_env_var("PROVER_PROOF_DIR", "./proof".to_string())); +pub static PROVER_L2_RPC: Lazy = + Lazy::new(|| read_env_var("PROVER_L2_RPC", "localhost:8545".to_string())); // metrics pub static REGISTRY: Lazy = Lazy::new(Registry::new); -pub static PROVE_RESULT: Lazy = - Lazy::new(|| IntGauge::new("prove_result", "prove result").expect("prove metric can be created")); // 1 = Ok, 2 = Fail +pub static PROVE_RESULT: Lazy = Lazy::new(|| { + IntGauge::new("prove_result", "prove result").expect("prove metric can be created") +}); // 1 = Ok, 2 = Fail pub static PROVE_TIME: Lazy = Lazy::new(|| IntGauge::new("prove_time", "prove time").expect("time metric can be created")); diff --git a/prover/crates/core/src/batch.rs b/prover/crates/core/src/batch.rs index faddf9501..9a394579a 100644 --- a/prover/crates/core/src/batch.rs +++ b/prover/crates/core/src/batch.rs @@ -27,10 +27,7 @@ impl BatchInfo { /// Construct by block traces pub fn from_block_traces(traces: &[T]) -> (Self, Rc) { let chain_id = traces.first().unwrap().chain_id(); - let prev_state_root = traces - .first() - .expect("at least 1 block needed") - .root_before(); + let prev_state_root = traces.first().expect("at least 1 block needed").root_before(); let post_state_root = traces.last().expect("at least 1 block needed").root_after(); let mut data_hasher = Keccak::v256(); @@ -143,9 +140,7 @@ mod tests { pub struct BlockTraceJsonRpcResult { pub result: BlockTrace, } - serde_json::from_str::(s) - .unwrap() - .result + serde_json::from_str::(s).unwrap().result }); let fork_config = HardforkConfig::default_from_chain_id(traces[0].chain_id()); diff --git a/prover/crates/core/src/database.rs b/prover/crates/core/src/database.rs index 2e6f72061..1db47d33e 100644 --- a/prover/crates/core/src/database.rs +++ b/prover/crates/core/src/database.rs @@ -9,8 +9,7 @@ use sbv_primitives::{ zk_trie::{SharedMemoryDb, ZkMemoryDb, ZkTrie}, Block, }; -use std::rc::Rc; -use std::{cell::RefCell, collections::HashMap, convert::Infallible, fmt}; +use std::{cell::RefCell, collections::HashMap, convert::Infallible, fmt, rc::Rc}; type Result = std::result::Result; @@ -92,19 +91,13 @@ impl ReadOnlyDB { address: Address, storage_root: B256, ) -> Option { - self.prev_storage_roots - .borrow_mut() - .insert(address, storage_root) + self.prev_storage_roots.borrow_mut().insert(address, storage_root) } /// Get the previous storage root of an account. #[inline] pub(crate) fn prev_storage_root(&self, address: &Address) -> B256 { - self.prev_storage_roots - .borrow() - .get(address) - .copied() - .unwrap_or_default() + self.prev_storage_roots.borrow().get(address).copied().unwrap_or_default() } /// Get the zkTrie root. @@ -162,41 +155,35 @@ impl DatabaseRef for ReadOnlyDB { /// Get basic account information. fn basic_ref(&self, address: Address) -> Result, Self::Error> { - Ok(self - .zktrie_db_ref - .get_account(address.as_slice()) - .map(|account_data| { - let code_size = - u64::from_be_bytes((&account_data[0][16..24]).try_into().unwrap()) as usize; - let nonce = u64::from_be_bytes((&account_data[0][24..]).try_into().unwrap()); - let balance = U256::from_be_bytes(account_data[1]); - let code_hash = B256::from(account_data[3]); - let poseidon_code_hash = B256::from(account_data[4]); - - let storage_root = B256::from(account_data[2]); - self.prev_storage_roots - .borrow_mut() - .entry(address) - .or_insert(storage_root.0.into()); - - let zktrie_db = self.zktrie_db.clone(); - self.storage_trie_refs.borrow_mut().insert( - address, - Lazy::new(Box::new(move || { - zktrie_db - .new_ref_trie(&storage_root.0) - .expect("storage trie associated with account not found") - })), - ); - AccountInfo { - balance, - nonce, - code_size, - code_hash, - poseidon_code_hash, - code: self.code_db.get(&code_hash).cloned(), - } - })) + Ok(self.zktrie_db_ref.get_account(address.as_slice()).map(|account_data| { + let code_size = + u64::from_be_bytes((&account_data[0][16..24]).try_into().unwrap()) as usize; + let nonce = u64::from_be_bytes((&account_data[0][24..]).try_into().unwrap()); + let balance = U256::from_be_bytes(account_data[1]); + let code_hash = B256::from(account_data[3]); + let poseidon_code_hash = B256::from(account_data[4]); + + let storage_root = B256::from(account_data[2]); + self.prev_storage_roots.borrow_mut().entry(address).or_insert(storage_root.0.into()); + + let zktrie_db = self.zktrie_db.clone(); + self.storage_trie_refs.borrow_mut().insert( + address, + Lazy::new(Box::new(move || { + zktrie_db + .new_ref_trie(&storage_root.0) + .expect("storage trie associated with account not found") + })), + ); + AccountInfo { + balance, + nonce, + code_size, + code_hash, + poseidon_code_hash, + code: self.code_db.get(&code_hash).cloned(), + } + })) } /// Get account code by its code hash. @@ -217,22 +204,20 @@ impl DatabaseRef for ReadOnlyDB { /// Get storage value of address at index. fn storage_ref(&self, address: Address, index: U256) -> Result { let mut storage_trie_refs = self.storage_trie_refs.borrow_mut(); - let trie = storage_trie_refs - .entry(address) - .or_insert_with_key(|address| { - let storage_root = self - .zktrie_db_ref - .get_account(address.as_slice()) - .map(|account_data| B256::from(account_data[2])) - .unwrap_or_default(); - let zktrie_db = self.zktrie_db.clone(); - Lazy::new(Box::new(move || { - zktrie_db - .clone() - .new_ref_trie(&storage_root.0) - .expect("storage trie associated with account not found") - })) - }); + let trie = storage_trie_refs.entry(address).or_insert_with_key(|address| { + let storage_root = self + .zktrie_db_ref + .get_account(address.as_slice()) + .map(|account_data| B256::from(account_data[2])) + .unwrap_or_default(); + let zktrie_db = self.zktrie_db.clone(); + Lazy::new(Box::new(move || { + zktrie_db + .clone() + .new_ref_trie(&storage_root.0) + .expect("storage trie associated with account not found") + })) + }); Ok(trie .get_store(&index.to_be_bytes::<32>()) diff --git a/prover/crates/core/src/error.rs b/prover/crates/core/src/error.rs index d3a60808a..8fad62335 100644 --- a/prover/crates/core/src/error.rs +++ b/prover/crates/core/src/error.rs @@ -1,5 +1,4 @@ -use revm::primitives::alloy_primitives::SignatureError; -use revm::primitives::{EVMError, B256}; +use revm::primitives::{alloy_primitives::SignatureError, EVMError, B256}; use std::convert::Infallible; /// Error variants encountered during manipulation of a zkTrie. diff --git a/prover/crates/core/src/executor/builder.rs b/prover/crates/core/src/executor/builder.rs index 57e55121f..1c6c82ae2 100644 --- a/prover/crates/core/src/executor/builder.rs +++ b/prover/crates/core/src/executor/builder.rs @@ -1,5 +1,6 @@ -use crate::error::ZkTrieError; -use crate::{executor::hooks::ExecuteHooks, EvmExecutor, HardforkConfig, ReadOnlyDB}; +use crate::{ + error::ZkTrieError, executor::hooks::ExecuteHooks, EvmExecutor, HardforkConfig, ReadOnlyDB, +}; use core::fmt; use revm::db::CacheDB; use sbv_primitives::{zk_trie::ZkMemoryDb, Block}; @@ -25,11 +26,7 @@ impl fmt::Debug for EvmExecutorBuilder<'_, ()> { impl<'e> EvmExecutorBuilder<'e, ()> { /// Create a new builder. pub fn new(zktrie_db: Rc) -> Self { - Self { - hardfork_config: (), - execute_hooks: ExecuteHooks::default(), - zktrie_db, - } + Self { hardfork_config: (), execute_hooks: ExecuteHooks::default(), zktrie_db } } } diff --git a/prover/crates/core/src/executor/hooks.rs b/prover/crates/core/src/executor/hooks.rs index 8e45cb8ad..a5b8889ec 100644 --- a/prover/crates/core/src/executor/hooks.rs +++ b/prover/crates/core/src/executor/hooks.rs @@ -53,10 +53,7 @@ impl Debug for ExecuteHooks<'_> { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.debug_struct("ExecuteHooks") .field("tx_rlp_handlers", &self.tx_rlp_handlers.len()) - .field( - "post_tx_execution_handlers", - &self.post_tx_execution_handlers.len(), - ) + .field("post_tx_execution_handlers", &self.post_tx_execution_handlers.len()) .finish() } } diff --git a/prover/crates/core/src/hardfork.rs b/prover/crates/core/src/hardfork.rs index 65ddfd77b..9b06e9f98 100644 --- a/prover/crates/core/src/hardfork.rs +++ b/prover/crates/core/src/hardfork.rs @@ -16,18 +16,9 @@ pub const MORPH_MAINNET_CHAIN_ID: u64 = 2818; /// Hardfork heights for Scroll networks, grouped by chain id. static HARDFORK_HEIGHTS: Lazy>> = Lazy::new(|| { let mut map = HashMap::new(); - map.insert( - MORPH_DEVNET_CHAIN_ID, - HashMap::from([(SpecId::BERNOULLI, 0), (SpecId::CURIE, 0)]), - ); - map.insert( - MORPH_TESTNET_CHAIN_ID, - HashMap::from([(SpecId::BERNOULLI, 0), (SpecId::CURIE, 0)]), - ); - map.insert( - MORPH_MAINNET_CHAIN_ID, - HashMap::from([(SpecId::BERNOULLI, 0), (SpecId::CURIE, 0)]), - ); + map.insert(MORPH_DEVNET_CHAIN_ID, HashMap::from([(SpecId::BERNOULLI, 0), (SpecId::CURIE, 0)])); + map.insert(MORPH_TESTNET_CHAIN_ID, HashMap::from([(SpecId::BERNOULLI, 0), (SpecId::CURIE, 0)])); + map.insert(MORPH_MAINNET_CHAIN_ID, HashMap::from([(SpecId::BERNOULLI, 0), (SpecId::CURIE, 0)])); map }); @@ -103,14 +94,8 @@ impl HardforkConfig { let l1_gas_price_oracle_acc = Account { info: l1_gas_price_oracle_info, storage: HashMap::from([ - ( - l1_gas_price_oracle::IS_CURIE_SLOT, - EvmStorageSlot::new(U256::from(1)), - ), - ( - l1_gas_price_oracle::L1_BLOB_BASEFEE_SLOT, - EvmStorageSlot::new(U256::from(1)), - ), + (l1_gas_price_oracle::IS_CURIE_SLOT, EvmStorageSlot::new(U256::from(1))), + (l1_gas_price_oracle::L1_BLOB_BASEFEE_SLOT, EvmStorageSlot::new(U256::from(1))), ( l1_gas_price_oracle::COMMIT_SCALAR_SLOT, EvmStorageSlot::new(l1_gas_price_oracle::INITIAL_COMMIT_SCALAR), @@ -123,10 +108,7 @@ impl HardforkConfig { status: AccountStatus::Touched, }; - db.commit(HashMap::from([( - l1_gas_price_oracle_addr, - l1_gas_price_oracle_acc, - )])); + db.commit(HashMap::from([(l1_gas_price_oracle_addr, l1_gas_price_oracle_acc)])); Ok(()) } diff --git a/prover/crates/morph-executor/host/src/zstd_util.rs b/prover/crates/morph-executor/host/src/zstd_util.rs index 693c0db61..c49386c28 100644 --- a/prover/crates/morph-executor/host/src/zstd_util.rs +++ b/prover/crates/morph-executor/host/src/zstd_util.rs @@ -26,13 +26,9 @@ pub(crate) fn init_zstd_encoder(target_block_size: u32) -> Encoder<'static, Vec< .set_parameter(CParameter::LiteralCompressionMode(ParamSwitch::Disable)) .expect("infallible"); // with a hack in zstd we can set window log <= 17 with single segment kept - encoder - .set_parameter(CParameter::WindowLog(17)) - .expect("infallible"); + encoder.set_parameter(CParameter::WindowLog(17)).expect("infallible"); // set target block size to fit within a single block. - encoder - .set_parameter(CParameter::TargetCBlockSize(target_block_size)) - .expect("infallible"); + encoder.set_parameter(CParameter::TargetCBlockSize(target_block_size)).expect("infallible"); // do not include the checksum at the end of the encoded data. encoder.include_checksum(false).expect("infallible"); // do not include magic bytes at the start of the frame since we will have a single diff --git a/prover/crates/primitives/src/lib.rs b/prover/crates/primitives/src/lib.rs index b5521c92b..ca1af5349 100644 --- a/prover/crates/primitives/src/lib.rs +++ b/prover/crates/primitives/src/lib.rs @@ -122,12 +122,8 @@ pub trait Block: Debug { let num_txs = (self.num_l1_txs() + self.num_l2_txs()) as u16; hasher.update(&self.number().to_be_bytes()); hasher.update(&self.timestamp().to::().to_be_bytes()); - hasher.update( - &self - .base_fee_per_gas() - .unwrap_or_default() - .to_be_bytes::<{ U256::BYTES }>(), - ); + hasher + .update(&self.base_fee_per_gas().unwrap_or_default().to_be_bytes::<{ U256::BYTES }>()); hasher.update(&self.gas_limit().to::().to_be_bytes()); hasher.update(&num_txs.to_be_bytes()); } @@ -135,11 +131,7 @@ pub trait Block: Debug { /// Hash the l1 messages of the block #[inline] fn hash_l1_msg(&self, hasher: &mut impl tiny_keccak::Hasher) { - for tx_hash in self - .transactions() - .filter(|tx| tx.is_l1_tx()) - .map(|tx| tx.tx_hash()) - { + for tx_hash in self.transactions().filter(|tx| tx.is_l1_tx()).map(|tx| tx.tx_hash()) { hasher.update(tx_hash.as_slice()) } } diff --git a/prover/crates/primitives/src/types/mod.rs b/prover/crates/primitives/src/types/mod.rs index c72009745..156c40cc3 100644 --- a/prover/crates/primitives/src/types/mod.rs +++ b/prover/crates/primitives/src/types/mod.rs @@ -126,22 +126,15 @@ const MAGICSMTBYTES: &[u8] = "THIS IS SOME MAGIC BYTES FOR SMT m1rRXgP2xpDI".as_ impl BlockTrace { /// Convert legacy traces to the latest format pub fn flatten(&mut self) { - let account_proofs = self.storage_trace.proofs.iter().flat_map(|kv_map| { - kv_map - .iter() - .map(|(k, bts)| (k, bts.iter().map(Bytes::as_ref))) - }); - - let storage_proofs = self - .storage_trace - .storage_proofs - .iter() - .flat_map(|(k, kv_map)| { - kv_map - .iter() - .map(move |(sk, bts)| (k, sk, bts.iter().map(Bytes::as_ref))) + let account_proofs = + self.storage_trace.proofs.iter().flat_map(|kv_map| { + kv_map.iter().map(|(k, bts)| (k, bts.iter().map(Bytes::as_ref))) }); + let storage_proofs = self.storage_trace.storage_proofs.iter().flat_map(|(k, kv_map)| { + kv_map.iter().map(move |(sk, bts)| (k, sk, bts.iter().map(Bytes::as_ref))) + }); + let proofs = account_proofs .flat_map(|(_, bytes)| bytes) .chain(storage_proofs.flat_map(|(_, _, bytes)| bytes)); @@ -305,10 +298,7 @@ mod tests { let trace = serde_json::from_str::(TRACE).unwrap()["result"].clone(); let coinbase: Coinbase = serde_json::from_value(trace["coinbase"].clone()).unwrap(); - assert_eq!( - coinbase.address, - address!("5300000000000000000000000000000000000005") - ); + assert_eq!(coinbase.address, address!("5300000000000000000000000000000000000005")); let header: BlockHeader = serde_json::from_value(trace["header"].clone()).unwrap(); assert_eq!(header.number, U256::from(8370400)); @@ -322,9 +312,7 @@ mod tests { assert_eq!(header.difficulty, U256::from(0x2)); assert_eq!( header.mix_hash, - Some(b256!( - "0000000000000000000000000000000000000000000000000000000000000000" - )) + Some(b256!("0000000000000000000000000000000000000000000000000000000000000000")) ); let transactions: Vec = @@ -339,14 +327,8 @@ mod tests { assert_eq!(transactions[4].gas_price, U256::from(0x48c1a5b)); assert_eq!(transactions[5].gas_tip_cap, Some(U256::from(0x416e))); assert_eq!(transactions[6].gas_fee_cap, Some(U256::from(0x4f4f99a))); - assert_eq!( - transactions[7].from, - address!("32a29339a23afff0febd75bef656b9bf32967085") - ); - assert_eq!( - transactions[8].to, - Some(address!("a2a9fd768d482caf519d749d3123a133db278a66")), - ); + assert_eq!(transactions[7].from, address!("32a29339a23afff0febd75bef656b9bf32967085")); + assert_eq!(transactions[8].to, Some(address!("a2a9fd768d482caf519d749d3123a133db278a66")),); assert_eq!(transactions[9].chain_id, U64::from(0x82750)); assert_eq!(transactions[10].value, uint!(0x297ee5eafa233c_U256)); assert_eq!(transactions[11].data, bytes!("21c69a19000000000000000000000000f610a9dfb7c89644979b4a0f27063e9e7d7cda320000000000000000000000000000000000000000000000000086e6edc73882e2000000000000000000000000956df8424b556f0076e8abf5481605f5a791cc7f000000000000000000000000956df8424b556f0076e8abf5481605f5a791cc7f00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000244627dd56a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001ea01a200020000000000000000000000000000000000000000000000000086e6edc73882e2006018df4b145f074d63efa24dbd61dd00da2cdb3697f610a9dfb7c89644979b4a0f27063e9e7d7cda3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066bcce7c000000000000000000000000000000000000000000000000009b579427d194d20000000000000000000000000000000000000000000000000086e6edc73882e202007e07060300e6000000000000000000000000fffd8963efd1fc6a506488495d951d5263988d2500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000014010037060300920300e603010e03012e03014e03007e6e6cc7163fa93a693ee8491bb2b01656ba5ea1f3070a00000000000000000000000000000000000000000000000000000000000003019805000002007e02018405004053000000000000000000000000000000000000040201c705004002009202006a050040004802008000000106010e00000000e40040016e01840184070040002001b801be0000010060000001be01c70000050040000001db01e10000030060000001e101ea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")); @@ -397,21 +379,13 @@ mod tests { assert_eq!(block.header.hash, archived_block.header.hash); assert_eq!(block.header.timestamp, archived_block.header.timestamp); assert_eq!(block.header.gas_limit, archived_block.header.gas_limit); - assert_eq!( - block.header.base_fee_per_gas, - archived_block.header.base_fee_per_gas - ); + assert_eq!(block.header.base_fee_per_gas, archived_block.header.base_fee_per_gas); assert_eq!(block.header.difficulty, archived_block.header.difficulty); assert_eq!(block.header.mix_hash, archived_block.header.mix_hash); - let txs = block - .transactions - .iter() - .map(|tx| tx.try_build_typed_tx().unwrap()); - let archived_txs = archived_block - .transactions - .iter() - .map(|tx| tx.try_build_typed_tx().unwrap()); + let txs = block.transactions.iter().map(|tx| tx.try_build_typed_tx().unwrap()); + let archived_txs = + archived_block.transactions.iter().map(|tx| tx.try_build_typed_tx().unwrap()); for (tx, archived_tx) in txs.zip(archived_txs) { assert_eq!(tx, archived_tx); } @@ -420,14 +394,8 @@ mod tests { assert_eq!(code.code.as_ref(), archived_code.code.as_ref()); } - assert_eq!( - block.storage_trace.root_before, - archived_block.storage_trace.root_before - ); - assert_eq!( - block.storage_trace.root_after, - archived_block.storage_trace.root_after - ); + assert_eq!(block.storage_trace.root_before, archived_block.storage_trace.root_before); + assert_eq!(block.storage_trace.root_after, archived_block.storage_trace.root_after); // for (proof, archived_proof) in block // .storage_trace // .flatten_proofs @@ -438,9 +406,6 @@ mod tests { // assert_eq!(proof.get(1).as_ref(), archived_proof.1.as_ref()); // } - assert_eq!( - block.start_l1_queue_index, - archived_block.start_l1_queue_index - ); + assert_eq!(block.start_l1_queue_index, archived_block.start_l1_queue_index); } } diff --git a/prover/crates/primitives/src/types/tx.rs b/prover/crates/primitives/src/types/tx.rs index 2bea250b2..69f7c8f1e 100644 --- a/prover/crates/primitives/src/types/tx.rs +++ b/prover/crates/primitives/src/types/tx.rs @@ -56,7 +56,14 @@ pub struct TxL1Msg { /// Transaction Trace #[serde_as] #[derive( - rkyv::Archive, rkyv::Serialize, rkyv::Deserialize, serde::Serialize, serde::Deserialize, Default, Debug, Clone, + rkyv::Archive, + rkyv::Serialize, + rkyv::Deserialize, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + Clone, )] #[archive(check_bytes)] #[archive_attr(derive(Debug, Hash, PartialEq, Eq))] @@ -224,7 +231,8 @@ impl TxTrace for ArchivedTransactionTrace { } fn access_list(&self) -> AccessList { - rkyv::Deserialize::::deserialize(&self.access_list, &mut rkyv::Infallible).unwrap() + rkyv::Deserialize::::deserialize(&self.access_list, &mut rkyv::Infallible) + .unwrap() } fn signature(&self) -> Result { diff --git a/prover/crates/utils/src/metrics/registry.rs b/prover/crates/utils/src/metrics/registry.rs index 949f37b37..c4bc3cb47 100644 --- a/prover/crates/utils/src/metrics/registry.rs +++ b/prover/crates/utils/src/metrics/registry.rs @@ -28,11 +28,7 @@ pub(super) fn init() -> Registry { let mut registry = registry::Registry::default(); let block_counter = Counter::default(); - registry.register( - "block_counter", - "Number of blocks processed", - block_counter.clone(), - ); + registry.register("block_counter", "Number of blocks processed", block_counter.clone()); let fetched_rpc_block_height = Gauge::default(); registry.register( diff --git a/prover/crates/utils/src/utils/debug.rs b/prover/crates/utils/src/utils/debug.rs index 6c7ea33f2..a593218fc 100644 --- a/prover/crates/utils/src/utils/debug.rs +++ b/prover/crates/utils/src/utils/debug.rs @@ -74,23 +74,9 @@ impl DebugRecorder { pub fn record_storage(&mut self, addr: Address, key: U256, value: U256) { let entry = self.storages.entry(addr).or_default(); if !value.is_zero() { - entry.insert( - key, - StorageOps { - kind: "update", - key, - value: Some(value), - }, - ); + entry.insert(key, StorageOps { kind: "update", key, value: Some(value) }); } else { - entry.insert( - key, - StorageOps { - kind: "delete", - key, - value: None, - }, - ); + entry.insert(key, StorageOps { kind: "delete", key, value: None }); } } } diff --git a/prover/tests/algebra/client/elf/riscv32im-succinct-zkvm-elf b/prover/tests/algebra/client/elf/riscv32im-succinct-zkvm-elf index 94f2f57db082980f09854f5d1008302344e76540..84053a890785c8639539d935d8bde34428af8eb3 100755 GIT binary patch literal 106780 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 literal 117204 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

DP0o#vi) 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�(s3n8HPyB~&?$VAnMJr1OjLy@e}u<3gZBT?i_LgJ5uOaSB>YKW%F!i) z;WxmPqbCJ+KFV|SuY&$kB|&mtAd8r)^vwuY@h;#ShA@+&{8N#$XF%q7pz;wCs9*|T ztKh#!xQagw{1XUdN-N|&tE1WFsPWg9#!afSbo`os_1;q&31C<>JSMjyLry~KZZ$JVc2A1EopaefFuuR~07oqX2Brw zTY%LBz74p1Mn-P{RulLxC0r)(r14VzK;^?Z2-FuO?3M#df=3WepZ(xZwel(8JqrFj z@LmOf3HVV3KM8D~Tk<~ztY#p81~1BIWc1s>Y7X84OGgo~B7K7_|hBTilE({P}}qj)Y-R@NCel z;dS6cApcPCQ5DluJ6Q5#|KFt`C|?Xz)&T2Z7%v#!4NM8-PqnfKm;_3E7qI;F3PtdQ zz%u+Rz$8!NuK_ozfUZ$|7B9+YWc0s))hd|!FVamgsYfDKdyvF2p5?5e?&0; z5LrY6m31Ic@i6cr6rpUlM8933zZ>By{s8dhphtnRI{$az)e3$EcsKAgn*UOr9kUeO zDP9~P7#0FQ0z5-t{HeTfXqmuPd^PA>!(UP8-->V*Ul05=&gUPg79gB5@Y?J=pkQj-`g!P#gC_2xfL&{i1~wM zHDD?-iSGrbB9(YAFqN3Z9|r!avLW#iVEJ(&D&gk@mh|5P#)pLR#%8kd%lKD_B*CG; zR7VmY1}wioL;}weScVS)Q2$v(cd7j41X6e>5#;?0n3jh5&ai{b9x~O9>)t(GKs$oe2PG{GwNyJ@);TZCa`K3 zo>#)9T~L+sRfMbf56jX1o<@XHtKYB!zF!4XWP2ye1PxR!MEH(DiLsb0=y{^5l{W#C zJc(mqH3RE`%V%VC^9ty{nuDtq0?NT1EduUV!pSmz09fUJNC_wYZ?y0~tArE(ck&hi z-&Y7oz=0Pv=ipG_^1-1KU^M~LlyKso*TTO*38w_)7qkdirVx;Tx3vg(yAn!rc{{t=j4=Lf$f812rBH$AW0SWj{i-7Md;gosb-7{%>S-e@yh%5|}^}fANq2 z`l%Ws2jMEF@Q*5nig4vHX@~|Yr-EKp!nsmDiyslp#|t$96F<%)SPMBc6P zC7k$=zm%1Th#vyx;6?f1o@HRQL~JFT1gzl#1j{&FrCM@R0@kKkqb&mVyR4C2)(TDmR{3ouocIG^wFJ*p!YKjkFGKmO0)`a= z60ogBzz!vx1Uv|=@_$qbC;q>0;s2BpPW<1?TLk<_As_)iZ4vOY5>5i9u5M1ibl~zC z8J!8NmcSd7aN_6sr&y{Bi9o?Cfz=#drU;+}t_4;jn6iQM&%z%vT&Y4&5$#EbG789fwO&Cz5foCKWN zBw$=+o)S(8SkS_Mff7#qJ5+v}|G!NkAOUZ05pa_dP69rq3IPA-lyKsItcCvxC7k$Q zR`^l><0>Nx0SWkRi-12U;UwSEVUOMcS7ag|gdpafjm zB4D!;P6F;N1u*^xlyKsIsD=MwC7k%5ZSXVwA6NN~LO=q(-y-10N;nBPbWL*!Oa?BW zkrgcJV)$)7W>ag_@c0!qL#U{%1y!1VQ_=~%pd9b6Wxfj@KH40fWCZ~{!9 zT_C3w;qAcmSq6!7VES$Y`3orgUBL8NhFlW77caI$AWg-H;343503R&yXNf@x|2ptq z;KM}tPk`xD92?=0BmQ3l)4ih9?Grv_E#w_PgWVNJ_!i)`1DOAB6a@c?7qn-CPO%cf zv=BKM$8WGDd<`&dt$Ik%e+QU$PD$)Xa71Fq1bw=Y=&uDPf4?s1e+*1Jr}hdw6vI#W zLSDZ32wu=3QnFkmU=*0{^1ehQXnDf-bc`4H9$?y}a+09`Ixsn*)`{>5DQ3Iabh2CE z3xVkh{m%&cw*mhkUpcd~MWpzj@PfX#vgjb5fX9L9!uO?u;erfx{s8v<3V}O;=|=l? zB7F80+}piN;LCt_&74uWMd1GcrtiPJCh#|bbNYmi)PdjPg)R;VOhN~HG$b1eJ`0#W zi8Fpbp1{uo)2h~NA@C(&`bxnw0#9FGVSc^^0-p!GcIFHqcwAA!OV^YCjmlHJh(JJ& zL#Z_H1*UB?WWuRRUI0FQ%dvuf|H==6YtV^VBK+_x`7z$ehZjxp!W~v_+V)7!8gpnK2VP51JjlJ z`)=d-fKA9BbONtg29Dm`td!U1ctPuOlHf^TTE&t@cEXlst-T4D_Veu(0)N^Pe(qJx z;U58}ol{t$iKpMpz2&ls z7G8r09-LWuK`8OHz;xN{!Hj23V)5UAZhyQ;jUc3WJF@wDrsEh#9%I8Lb&A0O<8d)MY0Ml~1Y}e1;&|GD~JDRKP zK47)V4!sfh7b3y5|L=ahs6YqSiU_{}OuJ$p8{j2y&`o^T%TGl3?{}kFeST(Tm#D*~ zd-yh6#KTG~yc4ZPDe{ST@nt%&vGC{aMh4(3UJCg+73r+^^Zj{u3W3XkRm=7$FnPD9 z2?0L_rnO#M(C_;|vuVElfo9XZ512L_(x-1JzLC9rL!)1*EMYI6{Se<=_Kb+Ye+WOY zGfF0CFEH(V`iuzQ^)VFTLHr~%3H%N)xz|@~#czLBomm|H^XihCY1pYBnYtaBmY;@6 zvFqp6S+yuLgV4*Y$Vm*}akJvlpI2``+{j|xHnY(8eap3NXQ(o3N4*%>SDjOAd8vA7 z@#`0>Cl>QxstyhW#qFCluVz}Q6Wh9%*nwkYNm6{^#p)ST%+StE$24LG!ZI^tVl2+# zXIW|*P8cPLVY^OJOnkX|=0wNv;>gWBBQYG)vWwL(Lrmy|i67~XVTX|&rzsQTGBHz< z5V56(VH%+kxDgNYiV;fS@xQ1pnG)!h>$$!i_(rOmQO214;>cfCFP&mqh94Sn92%iz z>XFOBg5u_1R*#=zWwDhRsTElUkXG)i zo>YANS17JQ`t{^1)j3tuq*Tp0$f~Sawb=F6%v!Xfn0b*lrFd{(RX;H@lQ>DtSl2xh zKY3CNvr=EQaK(9sxkksYv(LtlVjqMQOGm2v6|cNleZvG-2H3^SUsvZ0SnSUP;$-v= z!v~i9SG`o7bD&{}@Zy+XS1rw4Bt(q&W!R%UjOBVxQTt7GJSYv)gTVox$vwoY z%u4EpMfzdbT*gO!Q@yx2@fDQQpMO&wJiuXLPI1{Q)uWC|yvU8C&`-k1jKjp@h2}C6 zUTfoYCb2+D28&<4Qr*A!(koT{0K|~gQH0n1xq3w5zgoSk(DqelSD_*o*0sr`kh6=k zep@|Yz~PD5g5QTgZc=wx5*?nws%;eej?j)cBH0nY*)+YYHe}{CTMf_NaE%>axz*TY z7tjB;dR%TfdSoJrW{}xYoCYVyS6p33%68Ok6izt2dARN-mf=~J9=K+PTA96!ab}uPWV)Gcg!&K)N~F<_9V?Dq zJMqobHDlNx-%oX0cXZouoy@BnjjZ=1r5x<2Ta8kc40&haC;@N;tlD_xF-5hJZB*nK zNu32TMRK9ZN!_Ie$0|T1AnlSnpK-8?aQlyrSDA}+Cv}fipJx=C=R#{+s!6G(alfyg zlv`nv#HkyFftjXW=5wuOHE*&km|kV$`Uth$mXPTNOLEYSjHQTaj?+w*H^<9#jOE>L zrfVkSIw;h$8zC!x7%r3w3}c&o=f2dAsUkPZoRGIW& zx5D7L>mx1{07SJT%v-9TY%>as#SigqicOT7!74%&T^BM|4I(Go)`ez0Gju0&(f}sV z^xT28c>IsmV-AaB-E~7fh(cz%#xZb;! zXyZ2Y{}zfMF++@qGA|1w&q?i!xAWqvRoY?2$)nZrhwHJK_^?l=>l#_chi?`SzkIYh zVZI%vb{eI+j**5Hh!ItzXUnWW$Dl9_49~PZ%g!t-^-bGJyf`#n-K|6UcGOL$_{3;+ zFi$PlGL1B_(Xso!C#n+)0unSG7+|J*4r@jpD-I9E(LFP)mD@}iZLce_fsUCq25Bj~ zQiIrf-)FTG^0r0D>q^#Jk0d%$DNtKc=mlBq+mY+oNoM;lN-c8JF!a+j6&lM5g#M%Y zEKV8FX4F~}QLGuzj%}YbR-PyoC_T624ZZ4KkgU`jMssU8oUDmAZ%xtrrM8}Vy6c-k zV8)Rg;3V}6ZC?0h<%)DWF>Kyc_p&HT(?rk0G_y@VE~#x+_O?~owjK5;vm7V(bR8qB z)JqdiW)`p>VaV)TerWTNI@2U{tfGDCW*Q&}V|K#`;xG!bEQp*4Lv1tg zLuj7WuoFE=&BoAzksjSutWj(@OmlL>HXPT)jKskp)zoPTs!I<)Be?y*y@a-e?G^WT1QcdCD;c zp$-YQVGQFDooZb#*3Z-ikL;{tR`J9M+UZj;TMhNlwe`d^Y}-!QIMpe(9IwSwnC5wb zZAVEMrhd%AykdH;c}4vi?ZD#u_i7WTW|+wuu5V>Q=wcAgHNemtWK(i8wfz7CSvSFS zGcp4{7M4v@t)6FBt>6`8KZ^F2V277V%7ed zb&j`A*9{Ak#motoY-RM`TLv3iV+@b> zfv&Reyep)6uX17q%g6qthlr@rWO}AgFtGNEu~NJANYyHPSu<@>;`VyBtAAKET^KK_)0d;z|xADC`5QHYL6LnuUq#`t;gU)zJ^9c=!-Ky zbAk*O8$*H=BMAdNrXRz9hhbw~?`n^mZSIt|HrFjp?v%DB*DH>H6;7X5XK9nsh}#W3 zkmntBXuuB4x$qw|Q`{Tmv(gXPz%*b*gYF%Lf*Tw=_c2ToMqk1hJK@HSn`3*yk|pO) zHoSH41i1m+BbgPt@NO8zhX%EJ9=k@2!Le^97!n$yJ1N^)6zGv{B$j8uLmCB1n!1LL zzCt$xBhBJS8SnHaEo-MC744?ISe6%?m4er39lfJq1?DwcM^A>p6H4&dIM)Bw@ZG6tE*6&ueETVw5g@AEm%-2~F(2B?p*rZo9DrbEY z{)h3dFWUB&_1oih_3dF)Bu8i$4BBvdI`ET06|zkC;3eC*5&kyA^2|UtbuZ9;)37jJ zu>IoVBeYfZzkmT=yW;DoYsVHBpP(I?lYMB^DTdpo1EHy-TXqoJrW^Vprs;u+>1Ja3 z)W;A*qfUD>uwsIDN|?x2hJ0)ktVl6G>%cLVfmwT4sJC)FeOAvj*}Qo*I@R6`ymd8KcHXVF`E;#p!M&s4b=R@B#}urc zv&t(Qd+#WCtL?wGxnH2P3(Ya)ZIm271SmNSL$At{b%!AeG4!tO1_L*7sO+43q?!}e zCQS~jZNLB8c38uM9qXQnylmSJw}kz-Z9dFG@7O&GB?jJks!coZZg2RIEa<`Qv(i;zVpG_p7ezjchA(0o85jy$i{)Z zr)E5kRg8bVcI;_rR7j=I8-38F>jxM5ch=Q2F<5_m;56;10~n|47jK)TO`Xi`88?Ic zw_DtLwss8l%!bZXhqA{|mytL3af6Pz48=$m38mqzC>pGuV|^_^M-Crs7V1gh$5CXt zkz<6Wg*8YdqI8q57_RqZKzhN@DEprDUh&i(?aDmWjX3o%f;B@ZL}+qv1TQF-WYran zi7@ic=c=?ihlw3i_QoWyl4nGVCRW*4ALyHb)iws5-57FJ z{rHL-JXqa0ni!ZpEuCFG%ZYoll?DsvN_P$9uI|#=)jJB->M-c+D-${F2NnpSfu&=t zcNDzx`mb#=z%aCB*WJi<-od7E7nRe0ZHtAz?zOGf9iMyV4eQ@maiO%hd!Y0N_AD(J z1Im0k`f6kzdC%J!blyjmp2OZzunH+XhrJnig#?wn?`*TyR5}@ZM!_ePa58p{Ay=$F zU;E>ORg6Hp@~LdBTfzvmZw6K&+>Ln{A6D{_qTKaTY&lz-nzL5nF~bHo6{-+3SNgxp z5RGiP7^1;Si}WO38rxZB+o`F$dX&Y9i~UNpDKHALOTkcf5~!qkds-GlxpPV7Xv@HI zQT8r9=|zv{RSrU4(F4%`0pI7g>IAJeo0kEzdtLpv#f!7Fqt~__3G*F$Yz%^$5WZ0! zFD>W5Ah9VC)?GS}#TX+t{cVmlvl!lAJ9>e&@{Nn&3e8LmZ<93kuwOIH0>1sgXbf7T zEOksL3Jk{!T-&jnz(``#im-U7dxjU)y<*`M?UW@>VrJM7>A`_zdPbVi$`n$@y_VcJ z7_hX`gaiRJwC zjhn;74Y#e?wjCP<*98%_gvPdIL}o|}*?bw1=^Qi^e!+&)dB{38ulN{e+8CKyaE_aE z-M~rX%rQf3XsMSSV>{YrQeIbfvEOmpf?9;7dlMV#j3~vfI?Q5LAE#Y)wu3?n>>$Mc z8ZX868kV%O+v**MU%cr!ZGB#5HcrDhHhj-_O&2@L_-ZIQQ`GHqz2!D~sh*_d6v-P7 zV^+JuOV89@xM-O{fUjOuI{U+ha0WiR#Sm+9aHTUOcF^#R69$Gotb*5s(dMn&G4;qi zE5kNo-*K>?&OJFU-g~m<)L>xAkqq!;IJV>y3V`4QVqaYdmFl(376q6Rt~* zS%H^aHYP>Q(QqB)O2@U6nd*i`?UHx5c;pmqS^K?lu*;$!i(yW&w-^&PY)bbX&kwQh z-gaHx33Tk*a?2v=P1)$I71F$eR9=1!3$Ac<1Mh`@#EoGK``(!7rbd3R#z8Wt+AK z^NT;-sZA};x3pTGU}Iz8VIzqP4}ux+eelR6d@s;F{LdQ@lST71yg`w|VSvJHEHg2h za$FGvp>JXx7J_lq0S+1TJ=ok~;#>jNdkornD%2<#?nTO?Bx{196#GpJ2Qc~#rRf`cVi<#l=6suTOfD2A4div;7qiUpmIup!67#!+3z{w&w`Bb?g6NJF<# z=>1U+q0{Y?)aGm6Vs{I&BTFBBfqp#BZQSrGjv_n+?_cr#)3tFq){>y-4P)9Rql~cO z>;e<_i8l>{{q{=EONtpL;Xh+74PLZvCCk;QQAWDs!cm76$CNhYp**p5F>$bo7yFuE zUSiTgQJlR=S;3%do!u`-vEbF}X*pkD;bS>;`dvzkDPg(OH#Bg3z{vtDG+aAFi`D}i zGO~jxa^akd1GYaBdc^d#H2E!T`B*-(R!sjyMp`)9Fz_fE#oC*J)dPzsuahxDgW}DK z1&C!W{6xLlO!8L8O3$l2@)bA^+a z6~lHuXu(2wH!a{curWCBlT3#lx8ZvYOfT}x)NrCCwbC>WV@w>B30+%KbaV+V&J zZ0sdQ`Y^@nqMh6-H%1~D>toIm>9Jwplmm{H(av}qU3TWip6fZ%$(Un}x;HIr=X}{u z_()iv$XCSRYUq+K-j}fA=60niOIReLoUvZDW$mN0%+e}ghjW0PKIp6s6LuIU@De}u zGs_KdY|xD}zCywqZo}L*G3D*JMAz3){U(mK3_O3V0bozLP~P5bCYxDHze4fG$=c+_ zurOV+&U&+!4I*90O*UKaVv_m%n^zLIppE3awuys>iR1g|xN+JF$EAE5b{Y#Cn6~QF zjZ;_Dm}YjS&jmv{_3lh7NgHOQCu#2#c@sT5Hf=k^-eL;}aFgPy3$3f^+tY1WLDEAwUa(OLOJFW)C@lt7Xzw^3D~BnT zB;nPF{46wZPl-5ZV6NZnU|DPZW_Qh&t?P%kvjsMs#r4D3a%vct zsh9^HaSXiOauM1Jme?%UNj*Ock|49Z;=zlwwbQVQW!Yg8`DTXsag5kDrJJ^;+l#YS zYDX6CN^NDaZ>2VSqKjKDaB$O#ozxG~s5s$b?c_;bkR}#RDg-80haA%!Dt51g*?czmTc{TK@;8F0`TdXBSoA&%XV9ESR$+9JWeZRI@!SCPm0x0&hnWV>M@$HnSGO-Il;nYddCw^Bx{)%ZZcRFn~)x zz!V!dIpF-r5FN8Vruh9TZNj85L>WUXvGU~j7L`1OO{MD`pcXhv<~U9OU#WpDc(}{w z{L8d!YF0|EGsKFcWxxp$7XSM)Z4kEs1s2lk;+h*|G_{zf7ALRP4wz%%4hgtbJ&Vq) zL}@HeDww`Sr&Ms+jc4P4F5)ta%U5ex*J2naXa~;D+NgYch~93WFkwL#pftfL^9Oh3pxXg5{@ zk|5$iUu9f4x1Hh)H#|!?!j%bIHG3_%!VGu9#4#Ef4vCs(M&@8z@t(EXq#8;K>Y-;i z6y?J$6&IgatDRi)EC(n01H|s&tSGDs-p(o}hT4QYN-&a!LI+tGBw5?$zI??wODH|bap{VS zmJPA}0=n2QU^tGBbMlc(eHCup>6pLbcae59&NpBxV8D2%0j^Lmagdi~yXToSQ=GU# z8^J1x>(Z*WX}P+E6{`LuSR~;R9NPKoML3-k!S0=^;b0DYKDh15PjUa2VHSI~YNwur zO$T_1doV)Uci`YQD$zT*+t+QyWnP9p@1kYPh8C|_bKW_uY^RE{wM;nlEuVDS#Z3`$ zac}~irQI5)puqJtuqkMhVTj9%3`-tN!b}yb{+IybT$|_Xx{FI_F1%8!*Kn^#jD@S% z$*4O{{Nm0`vj!a$3XUw%Iy!aoUN3*r_iH-j7BEWWcwaez;SMYYFx%SRNKSa7meO1YR*=CpvXF2+YzT!^txgGO~c{-_W4_ z;scR3d%Azc*3EBOvw4`x#q{+k4zeV2lg!E-hbR`-^Z=`;M(jC04vp)$>}@#KW)=%# zY*6rUybPy8u^?+=LwMwuy}h-0%Qio|dN|&`e)F(9e|X6-uGNaMB95qHiVG&r_uwnf zk{Dye1lxW10Xb}R!TL6CuXA++y(09Ct*g>`crk7Wa8bn?Z2R7@z4%qE9g;)U(Y$r2 zEG|K^9Nb94sv-?_(?P%Pz*6FlI&AHreFPZW#2C%M(ACXAMA=65WqY%>?c9dzJ`mT| z5FH;*fNroCEtz*dGJq@ea2nq>jzvSl_H#!z0o(-FNF*K2dvU>xp6J}%RNBA_G3 zod+zpJ-6Ce=mw}4Xp=lOv&CZ@FoJS$dJ%gaaLyNV4eXdJ@{QVXF}z7TxQ3lU8TOdD z7(oYgtqcWSJvB>VO`PNqk55 zaD5;SGnj5no0+a;vZuIint13YF^8P?9M!6sqLmxn7HP}Gj$7GE0H+!}5>!9a#a*a*SmBYzu(mX(DuF5tp#IezLE z5A4*88b*bIc!04v^Um#i?*U+7XZBdCYFtg3-8ya7q{M~O~O4eKKewQ z?!bBC(8(}H@2{6KI(IRBO0Y@7l=l4`zr7Iy0N;mk#I%dXwQ;d$v*u%-hbe)9u`6!C z2{B=9%mdG==}->15V6%N#(EJ>%CLDSrhsQ*vgYH;LyYTVlnOR9HGjIy0;J}o^T)~yh3l8fo9)hqx(XcSw#b7j08-%@W=WuKnkKUjiwVW;h!SoV$GGQi% zv8gorJ)>eHiA`7p9urmZ%R9AcGqAlUy84PW+ppfTk@ZiwLKFR~sr#X)XK^@G9DK7j zGzr(}*)&qXgb0hDF^1kB-mM)w5!%mB0@<;JDPl2c2gagwEvI7{Xk|F7k6THK#q>4^ zoCwpv#Dt~C%AL>ZanSKyNbpQ(b^zs+1G2VfmEXQgTQrCZIB^mQE3t+TLx%gLgbKDh z+)Nj>434>|r3(XY3pjTWJHRa0^g~?Df_CBs-C}rni?%7JnH~0((q%-rmI@nexDxa_ z4lRsgyR7yp!C<4}y#3McK4r*`s7?9xDIquHaQCm5VMt5TQ3N*Vx)J8w*me|Ssm;h- zTucV9NaE+%sAgH%kmkyowcs#tG3PXC0AkQ$c%NA@M7#Wp>LhPIbJG44C~n5!gPM*d+Vj}3A!iWXMRYv{Zv21H@*XNWzmGHcrkFprtrQFwT-


~n&GE6(80TCr<)^MliOuXt+X%E?m6ivBho08WpQBX`&siY+!hyOvTXWr4O--> zw{Ytm8&>r!B6FS=Yjv7JN-O-_NXX4Rlzg!QnQ{4KN=viy!RN61oM%!8)IV z5gHaV;E&_Q-1E$!Bh(0YQej~PC%HVhvph_3u=|J)q1CgK?T$`5)UtDU7XAhiqKyA~ z3D{uFyZgUhgd>{uUnOA%yB5F^&AN?<;?djSvV)HdhruFTMt~&}EO87KH@;b$nPVz! zU^I;#+BDx`N8fmE;E2Uql7Wsaz~MQpm0^n!FDe2RMU@McdF! zL%XQmp)HnD zixWsVdJ5AHUzA>#T><=9V1&;a6Js=Rv>&mYhppA6gj3pyki(BQB8p$VS6jT?@~|VF z?)ili7ndtbhj^3Zc7kP3*G}+lcWR4kI7oua%ss63W1|VKo#88@r(4>@+*=o76D7Qa z*ja2~{W->ID{iUO{IrWzj$_)y$|Ycl)e9{+^Y9578`u5>*ot9eJ)G9EJ$!$oj%oI4 zKF@};0qYxZO!=;bt`UpZR=+ajP@#>8;)8c-=jFKeTTkKF#OFV-;w6VdJ&!6$uL_Pm zv!vnb9(2!iiMlZ5y(O>`f`{pE5Ftk2e}jZvXl_RlJ&%Y9I~?FfaTj%nTf^ao#ASsz z$IUdQyMUu`qD>^Bjf7(SJ@C(?Vz4 ziF|AYaIxZmulit-Os+rSFr5u2B36uT2ivr;oa(dHn`Q7VX3(mD&ZFWo0l5s_v-X5~ zw<)&bq(k6J*f)201Qi>GfH9d+eFC= zx~BkMQ@B~}uh-eXISqz+1Rs91Nkp-Er#2(UXbB6G@K`v3=i-30u+44g`?Udbn%l+( z(2@W<+v#16T}=40Lr^65$WTj6TLUipc*(hY0-B!@DDXQ7xV1iGGu+Ukx{(3 zSDO!Kr|l+KCNn}T5aDVJsYUG=R(()A4QgixDHIHQj~p1Ps0)K=^F1>v>#I$ir2L-2 z7Esw{{(AA}`?PtJu!e~(CYc}E*vRNRSdV(oUTx7N6Pqe=i-HR?qeqy!3>BZdPdk26 z=EdmwA`5%q3~b@RqSjYFgx6Sb!zy;DW5E?gi>-<8ois35%zjWitUBx9;>-uNqYs=t z3m@4$tXla@kv^y$Gl4z~`@(6}$_i{`eGr=v=-Z6=v>y9*r@o|Gxe&kQLt*qBgMX54 zH$DzXbo4nr`AE81c!BQ%vd^Yc7}4Q#e~pL2=-*5bY^xT<1ZXZKcM6tfP()1q{i+&;`28%qABW&*IXT`MC z<$db91T*FMXu4*I?)>PYpNnq#4*#-r>F1Y<0Rf?lrSE5+R}AIe=>C2=Z=4XioY?<` zUk1brOZxj|Fx`R-s^QZ8FKWGEhOU15pZ}bjtmxM@a{^tD&!DD@9^Z$p>&bsA|G~h2 zFz_D?{09U7!NC7NG2j@+*Wsd*0^tFbfpGuZ0^xpVnBigHHNr#7jqs3*jPT$qjd0O# z44xZa%oa|zExZ~_I6+FzcoCV`S+e>++*QkCkb~DxQsJK{Cp7}`m8^X7oTt-Jm6X3S(Qe(Kfi%n zJMVuKnF!A9-TtqWm1y;^vl9Cq`&QwEo?&eli4_M8;CpTgYc!ZApy4-*EY?4f-vl&Z zJ_~pgz-nq(zxRL-+dK`Md+PsYU8iK$H8cIY?K(ZSJCX5NN3_BYGG_;T1-*NU@POt{ z*#D|wbwc(Vjy;|=RCeOA0ys6EjZQp!aqDloO|L^fJmngme~)AHq%;if^bC$?=`sBE zf@_x&u|ivNhtJRa`ZP-Og)LGVPZM|15Bz94ezc!; zR0!|Rq74147gfALxU0YiGUwP6PoS;!W}3DW-*jxP1D-4R=JVFKGPM5-&kdgEee-#I z&vD)uuAk?maZQ7a>1QSHI`$RcdbaKKZ;m@*S9;vUZaofq!AkeF-gfMV zzSY+}HT`VWJ6e{$Ip_CIInKw+-^;-IKJ%yfI4y6NboSBw2YwGA1HHooDtn__d!t)V zajfQy?yE?IhZuqIU`i2X0Hr^rA7z+<9x&jK$~+JGUvZ(9dP>|g6xtG>(l-6Ga0zjdtEy^P;2 zGV^EeI9AE$jNdIXFf^6>(;1)pYcF!FC6>vD&sVK5fL4 zz;hqtcZ*DD$_37UF#gGrRavxORmAwfSb1`WR}MM0Fjug*MCT{HV5P}36WYMTl|7v7 z${s6zt)Epy!b5NC9_i5!+O;$=Pxpw{36}Mh#;arX6B^ghHZMH*4CqCF##r%;rtkPC zO=Q&_P>$UiF6av#X*b|D-KK|UHTPn!JS~qagr4iU82rHf@z}%qV02k9;AD>%=7gXK z2lZSh_UV@CQ&Fk=M7s|(z1Wu>POv+=E_f84?QO!N%-!2O)9CFO#wlt2+1$e&SlPpe zdBC%2SbZFbS$aL`wZ;GD<0#Sccm3-mtuKJd(6DCo9z0?M((qK88Q6dC%Mbd)v$Y<~ z*dYhKEw&BH$d0d@!UHO?*SDeT&M=%B+QrbF_#WxGC!qV%ebclN1EK*d5S=l=aDw<6 z*|f!0JGQphK7D@aSlPZ@vtGe^1?%myI~n`2p7kF>Zo$2lncMQ1J0G7Y7oR8>pC~sx z_{!YW^8UhHZ9N};gz}K}yterneApS^V5jzxuw&1A@i=Q_9$SRcaEPcm5PxG}c>rDt zm_MkrohkDT@6P2y9@s9tUdx5kd!&#bhYY7j50T2kcdE`hDChSuygf-nUDGDy{N6l^ z({_U)|Mr;hmiG{{jpw@)hPrka&wKgLot_Cp{&KaD@d1Wsi7dxHXof{SzSc{?)I&sb z!2iUr;APRtS3gkKj53@FHQcKZ@|sJH=FGT3duOB`N%N zQ<+_?GbW6xZj;*jMc)?c;3HX$it86=fWJ^EW8!;J#awiw$9XQ zAr~^n)M`V{J}lJ2HTt=52V-x0R~u^f5omcpczdda(qru9-hq%IkF0^V)xzyxZg_Xm z_v0+Tt+TgE$VH5?x5|)L_cqj#M+DD>8OHCvy~p`j|k@t?tOR_ys=XF{NlNWY+Wg2bTU4rK-UN{57|i9!87u7 z{JJ0XKJj`u&qF6XAJ6j>uP@|z)(OwCjqww&f6a3<^ZX%yZq0Y;`Si7(|HNzN|HieR z|HS9a|BY)s|B26;{~OnO{?6yvXDjH>osrv+ufGyj4tyU->n`y$y1@6*!|VgXL(oHm z&tN~q{z&WTpbg&o`D19mG1|KY8-rdbn((|^WIeC>DOzB6gGZk?e_+AOA}H;F<n&v? zo1x)iWnIIu=oR}5R&pJ{vCbh*rrOf1NT8g&(SsRx5s&^0UKc- z^AdJo-<%yseLHx#MC0q2-gh`zme`jQ8Ws)O6TJls7>|2adk6ci0=-v=);8p5evB@j zlI582WA!ZCGw}}+3xZzOg(4d3X*va0i0G}`e{1dx2`|}8cpVY;$Oo|3?H%AjM3)uz zG+Q#y+VwMZSLd?|yQkav>blRDwi@acXYbFVCX3_Q`#3JIsc7SXCeUf29bzCC|dj=7^J z>n#!<^RKLEWt`7Coa8`oQ;=nD=YFzOIC}m{Y()~B+wXQnvkGl@C-;*Rcs`Li4|h2B zs~yqWK+tS~&dDi4!xFAqMVra=+0qeR76`c8xSyOQ9PqHRYCg|q^6aUOs4xTWi?evP zKzJIrZV$sr^4xx)W8Z!DL2rIUMDMc(JB0_$eK+jv?iJWaonr+@J+mO_xaLuBN)$hU zb+j#F{~i)5YoYK8yE)OAm4~c=gULDC$Bb63%5n;!e^qP9D}er0yDX;w`d77>j(LUH zcgM^;uc{C^vwi&e`Zr+*olq$F|Mh);PUemVd*%PPxt9S`VJA!lz*?BrwaaYyJCxcHeRtY-PtW^}_PuG}``@(hL;F7et$ire51H+^uUoG+ zm4qg@w3}Miqt_osuM5Wu@LwEW?X-o-Pyl}};B|Buo_SD2j~p`HN6u$oji0eY=-A4-Y3P?h=z_k;L!oeYFn`4n zbW2v3t_}~w{tdn*%@e+r%g;HywXyA{~( zqbGxti^0w9_%aE@UH!Un?vCLn#SG^T{NL`BU2(&iOnCr%6%8BmuXhP`bzG>ATF|$1 z!R0wd_|d*bc=dyh!M?e%?}U8ju(|<%ZYRLztRZz`;B4#zK3w1m@LdEmJ9ds zUBX?{!!RG4Y`BjtH=MWh{JRYA)Fr~3w8U`UTx>Y^E*8!&78~Ao_`RnF7;6l9&2J6w zZv4K#&oDgg_sy7u5B^iyB!%+;Wopv*Cb%y#!ovn?Um?JrBCxMdYnzKrHHS0{7n^FHMZEPaeCWjK!g+8aI%W4U;+`YC zThJ+s3xDd(vx%Q2gtv%i^NWa6_Jr1E-idVmcldDs7!u|mq1_(_3G)vT;l6Y}G@mNm z7iJ6dg@y3Z3gPa2Oqe@U!hLmzFkjsx%xwpt^m14FLHl`XYjq{CgAY!Zx z3^Kyz3bE4Ud2k_nfT<#E9cFKEzzExWjFt8d_71bf%1}y}1Df$4Dh>0@a{PyXvtHx^ z9b!b$A)S2f?i>U>5#Tu=c;LNlvxU2Tp@s#1V=jZa4CV?jSAe-p<}&yAGUSAk;3W$k z4qw06%ja45`ADX3FV>L~D~+kXOgW+RktbrREwtTc2ZlXY57kjXEQlWN23z6{w|hP+e@Nw5C{IVnL- z<|8Nd$VnS>mmnwek&}8YC(Pfb<-|Zv1acyf69YLB$ccfR7|02GOJ7cmjGTxQx+mgAV(}i8?HZ4r5R7)K$>t5olwhLq3EyL3Be9+7v*e0(6@j$O?a<|UCYi4{uKIZSW`m-<8P4!4_9ibr`QvaA^|tFqd+~vh@L*lPV3ikNbxC*#^~nVndGR)4t<>jR_j>V` z>hLh?t!`g0UVjhc22#7;ztoE_e=Xd~~LMzk8AkZ04E9N$hvKvES|H7{2t}-s!isZ2!D2v#$2=BQfBDmn!_TOl)O3rpY+|IU2wJHg=)ok{Nns>sTr= zbm9EAr6XdA3gXrs(Q5}zE9;zRVWlWZ9d53%2SHpBbRZ8#AJTAs}3dTiD3I@WX0aC|4v+!wVi zVjkxaYYF=2R^fiTh~Oz_v%|xl4Vi1>b=&jhsImlqJA7_yb#&rtkS}?UziMTuu8uj6uJWmrQd2 zwsXLCU&kn$IBrRdv0}%^PH~+?2W7p$oNI)vw+vbKf+=;q`Z1xZsmIaRWjzcPAqLsV zb=DD~Li9`Q5~|{WP^p7L$0KB@w-Jp2XNnSPBi4v*2v0O*{bNE}j8)_i!LtC4#tp{l6I1BO~RIUO@<+~&7ed5lrJ!ceKB>{)vlaw%|y zriy6rNueT?B>uzTgyHtz&fLtU=dQ12?y3{!u1e2c{i3M~^xOr8Y^0u3#6Z{FC3tL)@=bV?-^<=bH}L{u>?n;}!5!H3@ssV$ne)QgOe$^nMOQ`u`= zWU16Y@gaaQrvo?+1IH7Y(*w=>3OnRni9DQiimM?FU7Frp)`qkae`p>Z@&-DaU5)R46+0HPq-&4OzO|Fb7wL z++od@8oSq2o5yfn9+KmrS?#TcZ0dtO--tXu8&n%68_IqM_(}~GXN=ftLv5fedlfou zHB`-LLpI#avlby6W&_LYfK2QZYFxXaMsdCPpUl0m>z-^{n1Pr3dDQD_f%!q&PG>D# z=S(-$Qu;03#9D8{&+I8={vU-*+ynf-GSu*2!K0t~@XJErt>`P%MsRCw7OG|pdiJ}P z+Pc9|OW-wo3h@3OJW;H3;C0TuPs@r@^1Qfxj2@>;(^H;2z0!%~!xZ75I0u zE@0g{)n9{5yd-2E_X}SZ>X|xl30_8WUGtJqOM97SQFBn`H!$WaLM{G-P&q$`R;LhK z{2})!TK;mcGt6P-LAk8Okc_X!G5)eYBlk~YD;~CF>1JpSKUWY(2!fYVa8mGhLykk9 zau~Dzhv54eedc1z26z>IJq|n9!0ryMv{l`TuKRN13fldX`MzR)UH_4xHqQn2QHC5v zyIg)3hfHL^mO0<&eh&C6rL+i@zX>?d!y{LtcRvHxajfGQI7KhAK3{IPvNnzL#h=pl zkF1GON1KiB`MjmJ0Hc9}QSnJBym z9z(CxYuKo39i#D@_W-idgiS#<>XEI|2k6iJe0`Qt8B|N_xew1T-Y8V#XJ=yTk%>h}>Z}znT zcSt#BHQ;yS&wvY^lE>Qe*8l_ZzmXEZ8Tt4lJPjOUz+)|AM2-qs2ke^u13t$#K+oI` z`hAK#-HXk-7kh%uszcT)da&ofevVBbEAL?2zk@D5-BclM<3r%~bW>IrqO*UFtah*- zXg`j6l6s+r{TI}sL6e4^cH@2l?7IDTOm_$}4Zp~y%i-4=aD6Uox(nE^9RjVi=FTY{UhLfDYi9{4e!8j5sC$l$Ff(>p>2wB>~?`qY^%s9 zU?1BByBs%`>q1|qW#K)@DlkX1KDdWA;6uY-_yB$nwx|hyD=XyL1AZS>ILb87F>GzC z)CQgxo=ed>s2Vt)My8)ergwq=2|?8879rF29|EdiKRDxl;bCO@AJ}l{6Y7;7BZ%KJT>DP58K(og{JE`Cz-zUo zZE^&g-0$_@jiG5nJIxTk^9oJqGdXJ1w6KaIU*UE#+Lgs zUHc80mfCl$$%RI6SN=8nhO5Rvp(BnU{ zd#YXse4yvmGK~$_?X&xs?m5V04f^c02 zjE@Wrv=89R^hn@ZJQlhAC;EuFH&A?;J{|g@BT~=}nKsYTGW|^+mYRpVWcof+`@1Ug zH+bv56J#1YjZCXe$cQh~*lGHxLiji%({huRX|02h>6}HrOv`gSWg1@Xlxf!L`$k&t zX6VOpl&MyB_iAk!}gR30*&&3$dBw`e=PoboO>D`Y z1?1M3eVLY{n*ws#4rG~mav5S*-FjT6YaaAvT5ZV4bi;#b znXat}sM`DCp(ewZ=lpzdSPIUcm-kxae4A@4+{w{Z?d6>!A88n161U?8?TuX?afm`uM#q)H8TgHMh_n{4_x$ zACI@t9(*pnBH;U^`A=cDU-9KxE&(5T*tsD7#Yjq=z32KJ#49>O;Y z_kR`}&D!$e<=Q;@X&I-mzmXwuybQU9_hhN|=kcFY-Qa<~C-6Yu3{5X&zXK0Mc0%V1 zPk{aMH06nS-x53LYuE9G?J~vde(s7Vc5(Jark|T%FhrG9b-wnx{4bZbWD6@z0>G_;Bn#G}XO18f%ec3Uw#fUqj7-;W z4aki@^8HxZbTA-mioo+*LgjMiawdD4`WnsOw!#P3F(*|DJ|pGhK^4ud~lVZZ;Y`9V*7&2i7!1$Y=_uVFrR(vo#5zE+EVa|WX_M_ zAI7T3{^s6b$eIC$D!v=Lb}xIyCxugxi`}RYYCR?Q0^XB=KC!0*D#o}Q*ZVrbJR8_c zeid+s0(*Q8uw`Os4cKwboAyn>4*g5^0v~nO=C?^`8&16mT9(wq``W(K*ZdW*8$o5x z2QKp5H0*8;`^`A8UjpoxV8eiQ)8EtjX6t+GPvE}>e4d=|87k%xzqyURH*if{#(W!k zT+1Akt#NGo+_ap#PjHX1T;?b_4SHj{JMo_C!!>vhU3MJr5$YMd%NRC11YXxC=?mT) zxYl?NoMwWfpbAW8{zrV+RaVH5F&z_ZwxTiQte&E6CbBM@au#_Fbha|p;zY>k@$7WIz+tE41jQc$slpE10 z_C$CTf81IgFo%{0qCwyuwVQmf=0L>yvPQ?onZt(v0ulRb-XGcBAscov&uZeA<(8`2 z8_={14}Q&7$z6d+eMg5^Q2&ICzi!F~d=6p_vIIIea1F0Sf*l*2;FldLq5W!LDP_JC z{n(HcT0Jw_p!Ee!g4xCBuS+pr_r4GJA`)R)yK1FYq>|h9&#JE(dD}|UKqD0apg)=nF|?zA2i>Ko+Hi?dy(rG*^e|^ zGJzbF(2q4n+Ma3m3MX78<6i*t;S*r~!iOWWXZUO{H#9^h7n;)4c-RNb3%>>P^%g>S*kJ7Frg0@ywx7M8$Qc{>en5Sv~~(XiHMVC@k<^C_rnxC{SPsfwss|Y383XW509M}Ko zdrt2BS7iJuaLnG*&hT5~Rlu@FMAn@8BQO8z|6-p9+*plTF5*r^Hgm3mfa?(r4k>qm>`GCDK zI;Wx$yM-=}uMEhPLcY=Kq6e^1kN=7F?m1z-T%-3?6?!B7p+ApWM?Fbh`(k?C>+thk z)>pj;xm(2ApkFojc&;Qgsh)_u?9G&G8St{GDh|LrfNiAWc7yboF}b& zA3SolQ#I98?#YH~#Kx?nUQIoq+wiRMLfX)_nts*Y4XN%T-)j!G=mva>3r$ru318rL z?%jnBCJ$Xvuvu!vCCrHo$ALkgTWOn@oJ5;N;GL319>R#LGj`*kDb-@Ok2T;F|$_GvE*4Z3OpO`u=ce6-n!vQe;_iO@C}C z_ZVBw#%59nR%ycPrQ5iE2>57|cnDdWg{*PUjR5QQ*hp}rX&OSeS7~2_xk@Q|%rg3$ z#Hx6YM8y^Ij}2{@&%HNj8$jmJwdkAh;46_W^rfqHaMINUYMtmg3a~y(O~pZ zHD`+hE3x&!*JPE({i4~zLoA_O!g$`A1&W1 z08UaG)*Zk@y{pZ0X?>O8SKk|rPSNt6Y@UX8_ZZ@#iOIYhA`aX1Pwv|;MFb5eS zS=#FF$yMTGd_mgVT*r5tvW!xVoR%~SxnVaxzy|gh3H*O_TG`#4cTv~+Ez?FdCD@lY zp_k}~Uh;k8xNgH3!@)N)=8sX`2RfmT>M0iYO47a;=XK0U>6&xDKc~!|;_qMN$id7> zy=Ex>{y^XYo~9|_i#co4_mu>$Jo@F`M~t)<*pRWj-q3A6>qmZuQ-Y_!_v{z4`WSj2 zrb^g@)v(5_MYO45TuOXBe(G}0jL|RE?WU3xbeU{~|JJtyW6)5+1!8hT7nindx{${)qN*tI|=q&EZWT~mjC|SK21G&OzYQ3h+)$pH#eq4xtqFznCtIg_k z8<+dqS8qZ;2z9q>WXx;1qd?=Cg-{E&W+jXl+Uz<66gt-pi4 z?h4>)WlhYtej)PqIko{_uu4&ww*I(NrTSRa3e51#naM;oc71mtaRU z+}qRkpsNknKHU5!Xw$R+eLazL%t~7Y&;<&8Xy54Tc<_eKME^<(ev)(-z*BF47xpN? zq4S?r1F*QnX2(|M(#oE#F_4skaj_U@O`~g|ID;=-1-+~v>jW*YbT_!$VTF0Rq)w*4* z`*n0b@^52jQs`xg+-sZTqPHWgeO)}D^{oui5C1~jdKHV~Ltw*-m(!Q{5BgkH-41`V zrU)gw6&>=p@6V`2D|4b7GP+i+YXzsTgU>1O1mkKtjhMo7>RoLnLmS#8CIcUMXwoq5 zH`&Kw`+<=;lnrktcow`5oMJ;$lxpnJh-u8b8W_UZk!$D&EOGpTPT0`D0oVJua=02qL=3Y<3p)B5?q{icw${MyrjErBo7j%`WP(Dxbh zm?L%vd_im`vX-2A0Sv%8n!QaCa%aB{ua^63M(^W)!<%|7x=$>@S|}lnL+~Acl(|bx zRb0xvw*%uO{12`J)7fXN_H~zRilJZ83AO0W+A84IaIGQ_fZtkvtGM5IJ95Vu$em0f zcR^@Z`w?@BE;xO^Q2VxlKAbb*yWodvUsFbqHF!Y9g1}cr|0;d{8<2VM!f5nx?H%aj znb3I_x-$cJBiGmnnbnZCwc5WNK^?qy`PJ*{(HD=fMt%eM+W5;VI7`Pf(9yuB<4EMR zs0#QonZ?|{<{l+Z9}TC@%fP=1_d_p?xQ}aaqVu|AeZW&6-fyh5P2%6mMPCOdgE#u+ zC4qGUuuePyR<3*gFphJ2ksJ7`zD1AC1PN$_jw zd>Z7ln6t})=!|-Wtlo-!>E-VYHLrw+T?8+|^Lh6%4*OcYPb_|!{wr7;{RSCn9fbZj z2R0*btIz=_5wl?5%o_0-0#Sd@PAmd{LC+f=+8j_N?TiO}#BFq(RMqRf$Fq72n>|Iq z)VW0^FZtssYa2SE9^Ig?GrFN`yIU>8eRYh@q{Lg(x}j@MuKhWuoIr;u-=f20c%Hed z(GeDMHXObQ?I$mxJPq4OWSjVq%);l0b%zdn*)t*AHhxDVdcnLJ7#0Epu#tgH8(V@0_t6BxEkSCYl5cl!PRj|}_ z`KE-5p;Pf^^qkVgr^)&m`12TtLVvZ6v9;YoCxwfEF#_!9Etxe9USn@@imUz1erub`5L5w=BNfFtt8Fw`ktex>PoyOY^GJ`k)Mb zkOeQn*Q#+shSunVDs(|3^J;wnPLH=~Nw+~C_LjjVo{@;2-{p2B!f(r3(J3Ux%+|5Lbt9)C}$a<6CQg z;7VJ?XQtaHT4<;JhKJDutf}Nq?&Dw9GFGgKXZWK19uE3CfLH;vCa2E<{#Dq3Zuq(Q zU@@*O;<5E_GCn$in4v0rJH5uLSU^>?mU>`XM?Frxv&{(3`?WqcYw=^ybM;rj1B_wL z1Kucp&lQwKetUdT_V1MVRg8`P)-YPcjn{nyp1EeNQgUr6#+ZanxP&oit0txQzAo!6 zVGcQ+xG}%hbned-vY5Kd80LJ&0Jl{dcfh!88S963^%OlO`$scu(1-Ub`jw-{9cYa` zG2z!`Pw73c9ksO_f}c+K)-^KLFVJyE!OfRlxRLTG_(F%dH;})@{PouXD|P1S#Eq0U za^^)Fi(eC*76Y66CHAcuotlPK#)-*mnJ(b{yx=a@N6}+6u-3q2aO4=ovO`LN!>a39 z)4Qw*JEovQN;-|a;Y_mASdX%*TXD1%VuH_7D z3w`<3_r@{rGR7#_1I|7}wi}Rl_Nbu__?NSzdWs%%D>&CM6Q7sr4e}7Uwhr*^E6%`% z7>9Zc4M7^s`Q@V}Wl)hg) zoAX`9s5`*fE9VzUauq^Hco#hmPVg@_U>7+@Fb7u#6}hA?xhhg^B39NM#6AS&NPVv| zq&990sO$*q!FP>gBW-eAw(i$H7wcOO9S)O=O0fc1U|Bel>*7p2P&f|!0gmlc0ITvrjHXlMCGsYF(Da)9s^@uOe zarDXJ^LVGNhu(*h7iby2-#KOyzAk4C1IjHGyn{Tf^YImh;ng1Pz&B!_aTjYN2D9XL zN-k%;F9XM=_$rkARqWAX`fS(IW2-U$f`?zm&qVi@uumr@8nM>?RDVN2&mm=th}e@p z(BJQp_BQClnf9`4;hlxZJtd#q(&6_23wpQ+ofdn6+`aY0rhZ{KSw}mxZI)%G;mAJl z=$!F7hUZ;+q+HgL2N#9rMNer8z^$F)n!%YmG?R&byqfBfDe)XZ(#f`s?=3PsebEnqa*3*N_)+k8rAi zDSr+4$v3?9_>{4G$II$q8m7F3jK6^XZvzwfs2KuG#BIy)t#jaq+-tCbgL2$uI9zxr@kiWWBZE_{gzVCu`aVK5l~RnFqR!xzBLQSW8y0+~J*knZFvC!MFV) z`B3oeB4px*(+uy&?H#HO``Kz4&iB9WaCQFUP52}qE#=!K?86Qp73#oL_`cazi%v7- z{53+(#Fi}DZKy9^_P=|guD?mhdH4ZWUBWk4_6vDvG~Zm=C)9#>xQ}l*3!ONx-B5?- z@E&bcsCl0n@@C$rjiS>QOr(ClP{(QwxrjCGe^tnEx`hAo7C^W?#G; zTk|n^{2(a#$cC)m4}1sUofq-9IrAH8SlZX--2}s2(}E6SJYe^8>}?GP>nUZ7ae6Ft zdfgsiK%b7=PfjoOI?llB_9HvMQ}`uviSBK954%UcKY5O-jvTpbC5+nUNLq0sMv1iL%$b4h)&}Kp< z;m^@2zHJDpO>crD+HQ;i({$!pNWR@7&Qfa8`C5-KX5RhGNlafX<@rO5PfS0L`cm5D z^DaZ}lj!g!+S6_f*ZJg~)#`DGb#AT&-_O7Yb=bIHv3}?@2KsHi06nbpu+Cxc&_sXY z$>>f$PFi#u=l%3uihk97VoS+Kq3C?U;&y2E19B;$S>e})+^`^^b3|n}zQZW)kD`uV zR*Ts~Ea9Hc8{0@7n?Vjfxre}B!@YCC^G4c@;<{G1UqGJ8Wc-wk@XaR51lryRyyTda zkV|60Pr(h)egJ;UKk-xk1`L<$crEL=SD0s)=1IGbHq1Zj;%na27e3ecfybCPjqZd^SX5&&wH6Fr?=_jXcT;KZf~wH zW!|aq+>dzvOLA|ff>Y{Ce#qFF9uh%J9irJ==QzH1D{K5>PkzEhA!AQwPZec zSxg?}Z{W90eD}ZzsU~vx_#Tohj5q8rya8K*5_0;3=N|5WE5cU9kj$&>ft`NF127VYPR))Ke{m+oYtKOeKl_W zYG7AwS^N>O0e{KU@EWj`d`&K`#?8M@fPuP(A(#)3X&5wasCUAUoeK=WH444x!@%_t z-TrH64Zm)90eFBf2+!Es*J7O`*P~-;zhM7&$jefVR z7XM)LDs&?E>d~)T-eq4-uB^YOeNy`#jcE{1x6k=AUJI%TE^W*_EdA-q(hAzuud%mdo(9qo<_tUh;d! zXO6rj=)Fo)o;!yzu~F4mgX5bSn`fKWAUEXj#o+l3I}LZR5p?eEt#M#FKW{gjo;`)L z>kC7E)@rEF;7{ua`RnK!Elb5)g*umOY@NPVC0xg$F?)NJn}uzqelGjIde&c-1^$Tf zESb;x53|?iS^aGG=Uas{uD4M0>1z=~+Zs2NNepJ`RCL7G>}_4*AAbi{{M7Zt9;%A< zx4%v2!Bcr(soeD5Ov|A6=OcWZ5qpRXs1oLP6|~+4zr2Y&y$1c3u_q-4!*?NE-rEcF z{wezcBWm9aKQ>#cWWMm;=-~SqCkyYvzI+$uU&zsee0TC^=)FChgYJg5TyH=YM(*K^ z|4j5f*IUtx#4S|zU$H$0@J~l!pDsXOok^UYYjTQIg1*akb5F-=&~4Q=F_81M4~U%J zg^pvtH;es{*1M8%LJPqodmlgVau@g@2earm0sm~h%>ri|SR;EYD+S+cf4!L)F=N74 z1kq4OJVI9+K4*GeO`pgr)RQ7K8gmaH!4--472S)l@(LlK0 zYjzZ0U+Xaa9$KqF4By`TD6C&p_lPkdnWghCvE8LwCR(&i5SQYbGpJNy#|E#CoJjKswqhGPVclyu z&3-4cpZHZfG01)3hjW^cmP_!EV%;wHbsu7S()^6VZ-RW);7a;YlC;rh$LzTx1>{~9 z9P3bV{KHcG)NzMfNvNxzKVU=KGw+DfS`Z;Gx(hIu7+pmqvxCt zti*cS$+;|;c$G}-Hl^I_=OLwYlelJmsW*nt_7UW0u#U4uZt$hOpzufmZW^s>V&I8|!1J0DS6}XXmi(<|IufRNx zlGsOE)B9j)*aB|OUl)0dcm|ji1z1&Ml-TsiM(Sg7En{o0QPrFia?mSX;xA?3 zWGiQgS$&O2Uve$;pFUj{uEEDv5#l^2@eWF*twM(bX1Li_WyA-PJmb9}wKPR+cQ$_q z!T?YAlaIQhYrRU{A5bpqt~<wj1SqIO;cS?N?9jUwY3+>|`vKITAcnf;G zcm->_!e5_qJ@}(9apS(^9L+|b=$xT_oC~lwQ|uEncvFgfo6Zq(&xf}==b+9UO1EhQ z9`zIOP8*#ISKWi_Mq~$l5Jzs7{sg|i3I2PUF>Zjq=m160v>6AlkQ<~bdNWQp^lm;jHS#Og30~sbH=$2z8+us3zwi(A%mHk> z)(2;kpE`&+da_?7rlihJ>rHYJl|BQ4kENpSpO<#F`4w<5ULC(S^A)3$s`VJXpy|iZ z0$s?rLG-z>|npVZR_q1JJ3Ryzmy{(&v0Xx}Flhu*}stCt3J&akSQ1|M)XtGEVNF7I1t zK33)>oDXUoQV&q?YKJ_~PP+VZUp8^3mt>q|J8kzMi}0wum+`Bi9sYu%RMTd}G~fqM z@f7}ohOrHP1XtuC`{(B+ZvY=W++ZQYdv$&od6DJhtsEe4?J&7j%~rVRbKv-bc8sBO zUCFif^N*6`RmP?==2UdWv)b3^JoOp+Bj*k8bH>>Ko?3}H>9xO~mUHXAfGTBeiCy&L zc^TJw{;b2C0Rw+&Z+H@!2NqSW+wiQEb3+$@#-d+E4`9WH=5a6H2Yy?QEbYREt)aaG zeOO1Sg{*N8x$@8Ot(Q&3_kTL)RApSp^_=H3F7q@%?=tFo&J0|t?8nHOZo_X}w}G~K zj8VOo-1fT+x1XVN=lq;Hm3R|8kU!T%VUMTxcd}Zb1MtCl2guJE$M1>;d*h=};%hlu zpj|C-JbhkVy5|Jgxb|T~)-^nhJ&_mc)!pGqV9@v|o{qg*&)#}EZMnaBIdJYV(W9I( zbN$R+tfME-cf%8#;Rp6J&%A)_f;$~!sJH|Cus7)cF#A--WE~P(MPs+J21*`q)w7>s z52UQ2_)vqod?-~qlsOs0p3S}OeykXs{w>_i$>5IPPTXY;GR?Cq*`sjQu$l89do_i9 zoyHw|b~%Q!bQN;E8MyIBYVRVS1p4ZDn8qDzko7NUd9&nJ&bX~7;cePiO##Nyz=+Ie zd^c4(Is+qe-UZ{rZ^3vY-}C{O`doSGF4n=kRs=t!+?Qw7hdldIuP1p=)N5 zdxlTdfo{sILj|VzzFxQ=xWvDfoa^hozV@FK@qXk7op3p0FjqZm&)4&C-d~y|)~?%t z%Tmt$!KoR>U$BXNcfpLU{02|*Zk~Qm%jDNWZnZBQN@7jc@bFCBZx|Co4)rrkb2 z2U}UhZ5lp2j*qfWnG<|fe*yho1nw7#AL1v>M@|&}%h%8y zJ*ej6li-J#=)kO7SRXVjqh#dA&n32A;k_Z^?HL+KiS5UJNSAk7Sd)~jM^X3f#7ywR z_!8Tn)bsGmJaQ}Zy3d=?4ZnqX_hwWnjeHrX4<6itN*e=8G(Xd_C1)Fp^ zCvxWimk0e9B2!;7r-ti3`cpD+sfs@A4WJ|MF{xtBKjhi@u%QQvDKQVdfX|_QR||We z>fe=vpd$DK*cO$%ihF6BLB2`)y`C=kvHR?$r1>k>aflpZc+u@|x?!UWZ~nemv@&l8 z{PPg-QGkzka*!$XtOX3~>1Qpc%|F0f5A-1A1lVL~40s#C+=uCR0KDM~g!VDl^(Wx% z`ZV55{J_XQaD&ZH@@w+zLep{cn3pkJ{J6~uydf*%Xa;W;=-LWm=ZgJ5cqMmI&mS(j zEuged7Q?U412%HzlI#1Xox&V*(M|jC|H~O)+xXXlI@ekAcr@{$ z)+_0Ip+opTpYsk3a3)V?eR~)Wzo3*pyl3X>yn^Ijew%HzZZAFyzC<3sz@gvWbag&u z@@@S8*Wm|vI|7fWw`s?(`^5=<8+B-;beq&6^x09)u4t2d9lh9#wH=|(y=r(}*F*Ss zp$^&uZw&uZQP6ifr_cBElbpw>=NYqe&X=J(8kXVQt9u?^uEcj^FT52$-^P|Dc7Ugz-~k;xj#9{8xfFbAzgh3WB8z-osw(~j zZ0NWY`oQj>Eq&|WM~}Xp(E(b2Lr2B6{RVJcoL+N^y$w1*fqS3cew*oj8|C63unsk5 z9&oK})B_>v4Li8TAIL|yCgy-s))mf)7dtcYd5A&N@=)1-=84w#(Si2ylTrH5|KKaT<1L zbXpH2J8{RgkGt!;WJ{@x9&pj~rEkD5Hv%`mF8)A<)@tbp;N8sG7O_#@?U4D%hr0l{ zmZBGz@(y>U_yJlkWZ+i36sBR)dO>NukURvO@b-G@>@PJessWhSHv#*b=pTM- zxvzCQdchq~N$g@0&u@n=E0Bf5Y4~FYxW~7`iwxTwRB5TD`+Xgu8h}UVQ5LU2KRkx6 zV*jviI_tiSetK{AH9CS4n#%nH@XY&qPp$Vp=+FkYduT0aPA z(*RGK3!xeKh<(cSr}|l1H`wR^_6#y|gq#EV#rTbBx*x%}K{q635Ci4=Bgy^#m?|{` z9MLY&!Me#;O-%u=4q%|3WNned!1pEiLeErv>EBl)rlLpnH%v@&b*Q46 z*-JcQFZwY=ey`q7GDeczw6dM-NkV>(h2ndj{<|;%zQ>W&@4roDPQKHjbMf_9TBoej zd2QrLR-H%N0B6S2u=6{~yVd%08gvO5=3s*y*+uvQ%w-*C!UY0d-2EMTK_t}g^HB;Eu@zQIAvS(WZ(&7Aqu7k?A}&@f&CjF)F%>})d$ zo*;gsb3<)#u?2gOrN>~;BpcBY=sB$;s-E|Cgde|%YZ=)EjBV(4;Nv}3-=AQdXewZ&c^8axToChVSYm=u_VSZn?G^nP)C?51jg)=CZlWPra+n4BlVX^Yg3sePgKy z7$X2}8=eOy_+0O!?RSAIPJRi6{<0Atk65d6uV?+2a1Jn;d2H~?dBBJ*+KvTHzDprX zW@=wFWEPd{csDux4mSWz47zcjzoZv`tZKHF|TlkKW#^trh^)0|e zy{pX)tO?i>H}Jhb`fYrVSpPWAX@`;*em5}w9KIr7%De=)@x9lrPQ$CejaGFz-`wK- zMV}eieCKg&5&r7l3||1xSV|7Gh`-L6*kt0&Z=fS$0lwGCo;soJa!BU#?HbO2R4(5Z zTJmeoAxhOJ+%z-|{fkyPz-+i#WpS7{BzW@W@ zxymOWVF~ABqc0RXzfu+ABdjC-qg6}XgfuQI%i-{CB8dbz6lxp3b8qFm)I!}j2ht;7G< z@6aqci!op3nzEGs*<;98VJ}&b;zY_{rntn)2W=x-B_;kHN3z4 zt6b(SB3`k8y*B&0JlfQZ0_S;*kq4b-k>|mgU~mZI{hl`DIew*cD^KxrE7fTDHv2v! zwVB+?rJK)JHQ;v1?^#a`v5y+^H_kJhTJj6?$Rld1HN1wN;OH;oRU*OM?S8JQs)ctN zkXOFpkj|}q8y)pFboybM*36muIk}aK?-`-01kKO7Fu~>Am_-s8bS}r|&e5=T_bb9W_2T8KuOzb%G5R?FXixK5};H<5!0FMfDEe|yd%e{wW`V-B6z z{t7vi=xN{&QF0Q=DuTRi2Fga?C-7>KgO51x(B-W4fOBLB9h4$N4IuU0c`G8Vm0Px zM#P%*fzBfj^S4<2cf(>X<1zNQZJd*Tp6|Tdp})OU;Jv}xA3O!R9P5yUt>l0{ExawK zV_)7Z*Y81izi2Dx{E+kZz37?l{`r=(T<>KHxz^tcZ3ec=?wlbPsC~DdvoUPz(*=NULtHTcFkRP(?55P9pNW%sk=iZ`iRgdtH*9sV` z2R>ARnmdZWlMyGkf}E13w~%}ETuzTS!$ZnX>dci>xxiOneXnEHpC9IL-J z-$-H?&;8ODc@hqAy%{bZ#v$H-hT((Mp@d# zeD@ovGb^@xHP_q;-W_ch)H6S${b?fAeykP#{s0=CtQP-S>p^(=37$V;c!{q&R4sC` z`EB7foThc+cz^!3Rfd{>r{VpC?=n3HOzmImy+pohXD>06ec68A*Bw|{sOE3x?|Txv zILsN-;S0$r$7kHXhun~SLmuv9sKaOTH#%?SZ$}|JSAQ%#WWkx*&fgJjCD*E_a8{7J zv8Ubto1f$=_%iBDMz#hupCm*3k)sdtRAh%B<$0p^k!7-#TnS{DznQGhY*ZwLoPUrf z=c9YuUpC~So6w{Gld?CDkE*)=|L1a(nd~84S!7M-P9{Sbf^rA}70CQPAKPmC{j^kB z+^RIPxKuwDA-I8)Niqp*`AikN+0qKAZ9f_gSx^K=1+`W!RRp!_2a!co5FrVRlHc=v zCM@blzmM-9_c6(xJLjBx&ilNV*LyjYoCWil<*Ycz<6Lo+*p5#k;I^@gZVm^P<_WpUkdoVX@pQxBp`eXxQ!p^wow7U5g63Uuv% z(cb0kMPk28EcW0r^lPbWLJYIyoX&s8GBWM>HI_bco|Sm>u;mOK%y^DlPC9yqkNGTL z<8dm`FXQhs9{!#rwDuV7JVe_y$lgyFPk-9v-72{Dzh&uN?4eu!Rb5PM(=(Q;>)?Cnur%3|cvI$XKl}Sb!RGS~ z{#D<>n32I17g-4(vR&v08`3H7jb5|5Qu5B_U3LARuziuYtT6x-Z{tJF}1G&b1O3 z6Kk{OM3-F>$yJ@QR?%Et&G>&xAA7;(*-L89U%U4h>)e?xHf6TS`OW%G!``}^r+UuNa+lzCMIxYRdEDp!(%UW?wJ!w*G`1!3 zf-^d%W$D(L=+DTvnkm>k&=0g;1ubc6O28L0+`@@jdfpf0j6io?_mO)t!*VX`w48I< zzi+dDD?ark;+bA*pKOWz zb$$>3xSTQ7eby!VylQ^PBegQHzgXKpa;9&4gcxJ=;VY2&MVS)It(T49Y$m}_Z^fqK zntqsbh4YXl%b?}{UcqZ82$FTkIUMwE>V&cj|B ze*oL?HOpb$s?uWU30!;8JEmjXAH@Exf}hqSw_Eza7ujPz^g#bkaFyqo>s@A_NuDw7 z@_X#CidpbSD_!`gb3e4OozDhxim>q|cO<3P??A8LWA>VgW7{@h>yDWR&G$7ivE=!Q zzm~JJpwahNAv5|Avnf2Ey@t(?&pAz#qbs@eb|{%I^OEurfw462^*G-4E}h=O-n$v$Ds)8S{+X>)52m)d}CU|JgUnkKP9;Lqe0-R4C<^nz82 zo!?7*JFe77Cw7b4f)e-GOJW!d_PGwdkNSglv6btjrF+pGOBgff%A=?L!JMshANM$e zJ(`iyUCq5G?c!u_I~eVapRf=5K%bbK>|=+beG=%CPG9)N^wyNTLRKYKu#S88a^5xc zcb2SD>UmGAhdp&K&x5^-oHDUtTJjQ?_h8Mf#E*}1Hkkwdd7a0hj-bdfWj{td;V!8$ zo~QAX7#i&>GU*^RdeE}VB7I|JR$ny>%x_;`WYP%Y89x*ppg=GS^#poi%-HKjKh&8M z&`|=MyfT))>7;WsM;=e++utxx_?X$vcYt z$>RSk#x>2yeDsZti1yV7(EASV#nwc(c=Cdj3?lYgZ6HQ6bD`M%$ROm-B8l<3ggk^x zI1i2f-|XUSM+e>Nc$dnlV+?=sBwG73h7)EC&Xw%dgQUpT6}%Y_K>s@tx>A-xr+?nIpQ@Z_v9QMNUVMImjhyjaJoO4L`ox$h^d5 z$Q|OAojPP*w|?cUL*}I|MCQRar2j?Nf{#uizU>RfzsTbZW)5mkpqrmS=G=`O9*-74d zoMv>lw1<#64_V6SZgVZ?JLqmN^S-zDF*d8d4t*KD>ua*68occAHOQhh#I(MKoDtn^ z06ZVu>gew{QxiP^-OahLC+E1g!!yxO?n4fU?zW=?-rg4)>DJx0e~LYwgs=DJUO}#2 z*X9A<{EmrV$mk9K7x{|ZT1T8hX+f@nuWRA!v+uX`$)9n~`e#<6&pDpNkI>sD{Gxl0 z6y@qP>}TS5V`20*@mDSm8`&nYc4|G>O}jk$z+mzf`|uu9OER?RCLjvveCW zvtgjzOX+Ps@i#sIpL@Vk=xw^|gh$<7Z>i(|2bx818#us|kiFwYZ)@lSX0RirxA{8J zQ?`2&{{W-#Iq+R%PAh%-Iz1ALUX?Zzy@YE9bbRY^-ubs4wSOtP$*0^WcD@YRvUCTs zV{5i|utgcozoMy{NE37In4(#OUzrW01;*L@fhd&viemH{tl zMW?1s9sjga^c!bNXGCXzh@9Ean7)_NZ+|2EXc)Q^*R6BW-Csn1`?W{k0A7{X$(Rmw z>u$54Th?9ZITYy$J_T;wd77R@t~u<<#O3fnA2wz!`>^7O#~F`}+3-R{$B%jv?{!90 z?P28TG5Uk2r13p^epTA-JbOEP2w8g58{o5D$f6D_Cc4|gsmv|1*Yi4Z7g@p_=w;$> zy%!mAugCGBCouy_^6E18Au^a3F@}jl@ z4DuXkX0>2Fy}*UQWzh|5;S*x_pt~8oar8Ur!F|D^_n7w8oXzMytE|L#I3pYVEr#x< zJJHodcRPyCI};gwK(J2H-B!!k(doWG7w}3y+4?B9{q@lL!K3Ucu=eU}_->Evk1Y94 zO=k~;SLW$Yj*?%}7dd?r`>|botG3XQTe>_a@k{o?_AYoHx=8p?4stPD_+nyN9{SeK z9?sNG!66F7zDJfYr`xR7H1=B>^PKj3)C75`CTLz9f`AG zqxq6g;k+gK{r@oE=yipM$m{APChnt@t_p374;s0jDR~R{UE%p$({1!KWY}&ns?f?T zbpt$qKfEL(jvlp7cuj#y|FgU&{B1h4)hhD^ZT$sogBo6f_m2DAqwbo^{ES22Wd9zX zWad<`l~`Fa*W`B;TiNhv%ZZ~;<+k!Z*d*Qhl!~(lu7K`6V_EkLB<2guwx^XC1nyE> zNGw?)d;z;;*I|$P=qKb+Ox#mJo^X{>9 z$NkuLb)p01CbqSs;~~%9#g0M8Q}F}L{q~fO*KlscjA<%k%49#qq3sK&AUp1`62BEY z<_2UM*PbmN^|Lf`G_Ykp*Z^;WhRgejyf09B&tp&0X8je6iM{AujeXX}e2wP*Xe%-4 zF!Q~&hv*=Qsb5%$Oy;HL3NY-EeU`wIj`simQ`?V2WIJnYI43ss* zmRig8Q6Ecxya8Pb9`+PD%pvw9yhUmk>zX&|pFLUgM|>#{GbbatPakpgyY4-iXhz>j zZ>uC z_p%Suv8Oz}@dNz<{jo3l;;KsH%bEjL)dBtg@MxFw>Zjzw|DOFwEJii_a(Xj5m-sx{ zpL2I`-|C?{|Hq?`EJJ^YTI%j)%=zmcb@RvMy@xD)q!N6hi}ME~FZT&`bXK%?340~(fO&9A53Pe@k=dr=Vq{T@=C~g*I8E}*GpM{_{mc4=V6nM z<*X2VUaFjH#{JlzmtuQeiLO<~g{?n*JKw|4D_$hGY6pG7Ge5hQK8L`&sjpE6A6mMN zxUh{W{^aXmAGhKIdYD=h$;?wV^3-lVz)43+ob_;wq>W!5pZIcgv!D^m+jrZM}p`M%zZM3j{)8P|MIaT}~ddgK7 zn$Ln*aWq%4?rvZux!atPYU*}0^ZZlLXEXEBjD6U|chEt4JN7ek?-TnOUhISawyc5H zWe(W0qq*9DfxMgmCb5m!F?h1*$Td^22__Ps`x$or6k}tm*i8PW_D~vn!^mCm&S|pG z$a`eYtJ#M~AG5?}(mmJ{#L63+DZaf@?3~1QWLySwZy#sB{TntIw%3dn=sL>#Lsuh1 z_*}PH#s=CA4;+ys_i7LL&J_5G*uC%^Vp?6P!>;GSE9ZIaGWZU5p^ige)KW0Eug3Nz z$3VsLEo6?i1h-HPH^SfE^CarAd1K5iaRSEXjZeXz+ivW+81$p#?;0FP=^EOc>4~`( z@mzC=@7ZqIE^A4w8S7!|4KFf(YbsUwRQ6wQWN-!CpZ%jUn8~#F}Yw1)Wvm6i&Ay;HvJDeiqz@wAyd#Dk=xjZj4@?%#$0Fs z8ettXReU=#pc7hZ0n=F}{2+@lrd4_88eXf%5px)da&}|Hc3%9vEAbL~b^h*@|E>8Q zp{JgLTe+MEEVaSpe2W-*gz|OLXA89PJold$c}aWGOx;etW~eEPzcZwk25}A<`Xo9* z$6|21zgzlqiT{pd>8^6<;8*-@WvI^e^667Y)}xbMA%CaqW9#wvWKvfr2|gj;C%yW1 z^O>&atmi$FX=-++;09^xj!fw3i!O<0R^{p3i)N{#*;dSrWT?;YVtpb$eVEVEh*uxS z-#ILju1?%!IZqAZ9acwF-Rcxp<$Vkr;San^L550wN6d00O`jORe%XV)gMLxSp8ua8 zp?BmN?dgeg!7i8%JuOkbg``w$-HJY;Y?uBAAXQ>;ZZF z5c+G%F!s`DY!G9UAfubtqgS%$!NK&RkFepz_I?{%|83TJko;fi<1#f`2%QO0YiFaeq zcgQ`NzX*+$ZuJd&0CA;U4{(dr4%6^btiL zVQe3pJ~F%8;~vj(PtDmab_DbTpP5^2B^LESPe3;BM^4`ay@r?fcgv#vv7K|=!f69t z|HOgdSh=j*AUAB~yFqIZG&l&E!2in!@$4X;8^Uu#oJJ3{Tu=)3WV2qwY;+%nw`0N|b0rqU4q7=e z;oIP=mX^|_?_4V^w0UdCYPqXp7<|* z+x!8tqJugkt=uP`qx?mo=K@v#416g`4T8y@RxdiY_YK;7jlD3Jcb&_8ZuPpQ6EoE4 zr#({Bhws75W*`He=Q**1x9~R?wu+qlz+592u%)SGsaua?*RT)#QRD(Li26q643E|w z?AZdJ8<>`1Fy}b**s}dgc1uF+BCvCn!F*SwWQvKCY~5?IcFZ&OQhX0`584)4l+n*} z3+a=(^oss%*8)eHg{+y(`yNIXz}txd)81y@eFnB4x*5;O7>&K;+gB;P*4UoD5BMFr z*qEcpoxT#wg6?=F?;1xQqgSvlx^6AL3Wi`j-7>^ z-3*TDMaN-(3yxXW%K8b8+0Od@KjN5gwZoIYhs?y@X(=~6j@V_|?hVfr46`8JV3?&~ znACG|!#g=+c&pDXWIy_E%dpSJF-NyR*U;kGIA#kv5pi^aWeP7~@3EhS2Yi_q@ISmj z?$c*jKEKKfrpexCJi-IM#tR0+3rY+xxYzjB|1E}I<=od-=sQcWPtmExes@E+Wjpr` zkiC|hnA{02jIQ6OugBTZ$sT1du(#-+eYDwQ{N_I9G|u&r&}}R0-YWbyTQCGxPKjTttgxK&o@}OGYEU_3(Hw{7)<^>@cRQ+LWAGb&#lz; zZ&>)xBPt(#te$IAA8?s2_C*u6IJT1b$S35Zi*mj>HLKJu&tkXzH#h}2Ycu|7u_KqX zU>m&y_Vk|c6>v~+nAo5A?T5sz;18Gc(B)io|4Q4L#5kOR6YPNx82>Nn z2feeu=oydko{vETvpss(qs%vBe*(QD%$~~mCHy++NE1@LRBw{ksyb1j@qY`|Mm7pa$K zZPbQ?%tX6g*R^rklUC#Hx z&^nF_O=CZPgr8~~_LQ9WlEj9<{;9qj`;g!M{3B;(^f0jo($2GbEQ73YQwKI+{)Iu(8&_y)D0gpmoLMwUZ#)d zX!l>>GGM;*zYp&`3crItHt^m0HcQ_zn%J!|mR*X>%!22P#!dvcQH??DKxEQW;1y|a z64T9k@A(P59~@*X{HX`JTFprO#|P-kPyH$UTh$NI$8SCA7;85l+#K5?7DlJa`8Bls z1Ibx5ak`SDrJi_^-@#Lxxn@Am^%sG+-j7Z4?_dh>)&sB5FZ_1w3gS$P`E8V%3lBh9CTyCWQjrbD(;E~utwS@Vv#olg))^h(!yT9W%zq9o0yFKd86WFnTA!g*aR%`_F zblDO5{ykV2`s;A`L+v_nK;jf@nS*Ao+1Gp2iT#$7PrK=l!M}D}&V+%`-^UU8pZYKO zC2H_zgCTCn!7s58jP6e6Q>W?q9{6gH@4d{!RUgKZ0|^87nm3{4a_1!;Zv0wRh2m=qp^ChJvrg@ck%!H;;mG zULk&i0^P_OHUEnK{vt8v_(L`@?nim&#oS*EkDcvta2C?8CTQi8GLxmU~iuklYRYo>+Wr4)J%nWktDa z0z5496R~f&$Czo8I0yU$kI+w1uG5HpmBTaR!tl{Se7`$lY#00?s%w#z_&)xS|HGbd zf14PQmyK+b7&|p*5V$BfWan>)zxx8L^-N6*seR$3H$RFF4R*5``2)@wT$z=~ONR#9 zks+JdyVt-Ma`3y{WJ$bLVktE$9tTV5!jG`X!*eI8*>cjOub+f(BA@rV1wHG(@q3-D zBwxHzEgKxE$fUMKCTk+^8Y;@x=Y42ZlokcUl-mwx;w)TtR~C9or^Y9EAuaNUfZcGEVV8{ggcgQ>pbKdEe$S{3!* z`Kk7z>ps56BjMzh_5^b9eY?$asZU~g%lot z-VEM*i6^m;zNz!7FMwC<17o~J_7=39zPeK7-ycz#L-?E#sW^w)6KO|=iTu%HKd>sU zt-jvL|6v<6LfgbzBIQJfpnvHGl!cVc4?V;Fe$A`0*cy1Hxp3dHt7_G5y zp61O?9d<-oCVMUuoA+6Kmp9_uTM$v+Ok~?=KHrQ~P*1|KXTPlM8SqbPb38)*h{hZ4 z(v9Fq3ttqw7mV*k#&H~7?>Mnbt>EhD)%$+Q-@W++Ti)B3S~lnn)a6wB4)8xZD$gZ0 z^#-el{*Nv|mViID{}6c)$)+9~I_wGb?_{><-)iwu(Z#d%XG0|BGbctZOo{8&70^|6 zC%>_BPRkHK_ErtFRMP{z4Pw^b;kYRC{~`}NO}~{#~+}bHLNM}*qkfC9tZo; zzN6S%hw>D4jR-(^^y+*y{_NGdx06%&8b8$A%@~3?5Lf@md!+teeS8i zM`>&Z^w_GjIP;FLgE&!g7Ah5aNV=SOmpWpI>Q^!L`>JdT7ULu@;Vs(0 zu9A47j6TpC`wE{FIl7e+<6!W0-$wMxr@$UHdcqX+nRe#xd9eKF#rDWm`a70`ouua- zMK`z5!B#^nlMG$h_#P!L)h$heKhLL~=b<;Nr^KM@SUT;nt{Yj`boNPhwdJ&7V>JfA zI+iEk$0Be%F&|?ZtW?MsM4mirI?)gMJvl{xRd4iOvr0QJQSs|e@@|z*a@fb#u#{`mfGIT*C{&?J23-2Jl_qlu3oUc zh2P_SS(|RG(fA|kTNu|K{E;0IXfmG~SQ1m1hpmV&0$Qju7;?UDCB7>Z$&C4<88%oP zx{s+vTU8H6Cwz`vI`Eck?719t=3H>GT(@v#z8jjB?@)_3@htvzi3N+Je^y`%;X6?c zUe+6I=_1w}TH#*4Im>IA=|0TLU^?v0unXdoS{GYDxGXJOP zYR*)VT$$Vdl8RGX3{T!5-&sE00R{_pua6|a#VxNoQ6=~|*rt41>FRJ*%Epf$tdv?A z&efd}Y92E;5%ASI>=5?e;?L#(G}SJ4#t(??LWg87^{&gXH*U+)d*0zag}#$My>Ev{ zeew{oX-`}FI&g?RZ^M^|;+NTrjJV9BXQqKcHbZ}(!*A-);Y8PG&6*D~$LJV-WWNuZ zr>-=5CwzScGzu=BkrOfdQ+Q6f{Jsr(f)~we^CX_ZZ{S)v>M(f1&9j7`I#ua=P2gl=jq3roHaxl3CK8Hus>jRKK?A_hxx6d8%LA^m{AzC-G&B2ic2^=@eV! zFgi>tKG=uFhRJe+J4@{n?Ek<{u)~63ZfNB&=ye!6SgGqzhKZvB8{8Up16zlKNrc@{ zlFw+48;%CuvS^7LD1x?&h9;Jzv0lqV_)NenCk}Oq<937R4|Pj#%LWG+>V~I*2~HbI zf7xz$=TJAaJlic>KGZE-DflCOHGxMqm4Y=EoyHgb)8Gr^>|nH?U6Sl)7hC7@F6YLI zlSQ$TXc6n`hlc&CaW{E_?CI7c@CWQ8YPhNju=HT`+*l}iF3;-N-KRf`xyC-(Lydh|c4~2QM`Y8fdo}nOF}$94UTr_%&E#tQa01iu8|_ zSgsw6xLVFIX?3uhCX??Y=jpx87`V`fG&r1YK>nL{*q_9Q8XnF$ymoPvc9OIcrJba! zmeCG{os5iKMmy9|R;^s|R6D27ke2Zf$87LGInOr@ziT=ETEX@f$$hX@uyxu5b9~Oj zy5*_S_cN9kJrWn4!V-hXiXiyJR=(@T8&6@4;-fnYZ)E-Qln)*V=Exqw$KylRu_vhO zq>r+Cggod?S#^AZCL6NJW06kx%ixl`8JDQWzk7o;(QI z`)Ujr0r#tFk+W?xMfVvH^G5=zp7#`)uJDhEOv*zhm9fXvEz|(SUnMe0ashnRyg&R^ z<7>-gU)S}r5c=4Eh%pdyB=r{O%C-Pc&$RqrIoAIT6 z4SOsDr)@)@s`&=&5j)r+cSv#&sXccZdldO&;!x`0WxnSaQylv00RI4c6bu}{w@Yq@ z%DNc+l=VcHfPRUg1bZyS$3o2=a%@?LB>dEe9^C=GZD;+r%lzdhy!hD#S7_emG5$aA z>Pns70&dif-m{SRX~bt=PTQ;Chx9S-VtDS(43UwEMfvoxGas5h6*HNkFQTnS-Ot-@F8!k({-X zBx8#P^+%r(oAfUB`aJlcEivoFf0H|gA5d*XSB$^FK4*`K{zwi3IvO#`eW6vp7rZU! zek(C@5P1TOjqy1S^IS)MQ{HA|F1bXUo2WASL4(NAsqKs}8~u@7w8E_gY9qRkMr zp}%aLXCXHVOzokx%PV942sCAtsGl89jnVr8ybHcVY_pEzYbZQKe0nuJ1e-|w&EUYY zhE-CZjkBc`HHH)9bUBR8#2|{FJ`V3f8Bbw}J1S)lI^+;)?-Jg1De*Sj;em6>Jz$<2 z(nROUh0kRrV#Ibx{_c~j;Xl(jYZP72zp}s$A1V-x(B!_%WZkDXgG;aMsk85fkC1zD z%74IlBl@X!_F;?AAiC^kgP9oo@2PFF$GvJ!BcJ^C_FsDNvGr7UT@UW`0nfu1z!~+t zei7oX6?x{ohhrCs4xXoufPYFJ&S!5CCv_)(NAXQ^uOynG zP9Epe%Fv%5_ax#c$a8E3pCAvT1m6C|r}CMnj>%^-TX*s~BAKbXh}V?ZlP`Wm?&|<- zva2I{>09J`o{Z?MYHZ6Sv5L2&FFuG&T`1UKhW_*y%-MeMul>wpq(FU8OB~a~qObJ)U5#x68W`n}@9#V(*L2_X4{4 zX}xcj&{2*)j2-b2a%1K^^qWJyptn>!UnrW=(_D17!}4r2Tb@-nL!W!ubA|G3w7|sv zg`z!;uI8e@nP)BYtey$oO8mAwA3oHR@pM0LoqFEa{d|@ghddwXem*46M|!5(j}RAt zzDYbl_gIJvVBGS&zx(;Xp`N;9kKpSCx*hq^@q*}ogWa;7J-H{JId+MKFIoPN3_(ZZ z|L736(0o4xnIPX6@|nl?g>J}vFQ5FMEOdkB`yxK&`yv;fsM^t|ZhRxP4+>Z2iL7wE z9y^il@vOK`bi2ymz|X}Gm9gS!lOt+5bK3J;(=+Gli`lPZdXpase`}xP(VOddm!_Nw zuMN+7qf31Uj63fSm1^!AmcE#MSlE=)>OJyN0)MjJ@;W&$bNRfV{kJu%!k6=$<16u~ z?|ujd#-6^og!yjDYF+caYZLM6I{n=f;CR*aF%#ReDXU`E^Ordp4=;)l!=_$9Z=Sb< z-?Y(IQ(o&&U#U*ijI86kp8ATA{|z2S zdu6_>oxJ&v#EPN&SKx*7;l&qklzrZ_qHFRWo&5KLcVO7sDTp$!8=_ z^Qn&a7rq1L)dpXP=Bg9&2@RW1D_4Ck|0i>_`HVvEZ61l4;+bCR3w-&-#A}#OX!%p~ zKlFnyUgDumY=)JmJ60RIQq{&j?y0NW*;CLkwhg*lzMjW;{8qmH`6TSaWS*KmU2Mxt zw{R7@C;pv4Gcttr4fSSD?qg2~-z;WLH*@w&IX=v7J>1~M)Z0aG2sKmZ7(Jp?KG7e- z@|i?$FrWEuVRIVa!;j_D!UmVmWKTEPoaTmhr}JF_za>XxTe@4enLLr*@b5|Z#@oGa zaJtV8rTg5{Irv_C<9n^c_c{sO;J!>ZFg?Q!&dG=sCeO3UONNJ?XAiZ`iw#YVuuG#O z;D;mZVb+M)uwbBtfR zaAhBzzXn>~={L4Bb%Cmg#a89S5r+;H@*CvsrIsDaN{fXqWe&Fv)ZW*Sy~)9no1@6h z(dg*r?7|lG8-A~v*AYL8tLFSF6nsWq=hKM7Bq=okO3@`9hoZFoLaOfNr2iq#& zj*iVUCdOkAx(rtizr~-TeI3-Dz}`xOACAqt^R&(1V4`l>p`peGBF?TggE|%s z{aBZR;SyJY?OtNyKZw0=?Q!`|sd3>3Cx#^sL~x|4TI@q~M4m5k{kIjmWzz~{p@ltS zBNnDRKKk@^VrTC4d^P4y`LJOd&>JeIGL}xpG826YJ{dZHXw3avkJ#|Pr4w7yTh(K; z#yikcx1X+KfleFNJ*LVyg2qnj;j=0fXNB2^x4EU$!V;??F@d7rD$#EP6N4#x?H-R4 z$5uRr%@I$HZdPfqIq~(z@nJMz-&UX}GA2Ey!{9o)Vnw&ThTV>T^7MEaJz_k-V-$==~JpunAVdb(9Xo;UQm z(+wrdL=QD}irZE}CrtsjbU8LyCcNVkct<0=1HXp<5^6YSa$ZWK9UJx{aU@MS5}V@& z(AnzX9ic=0&|6DYc{}@@b^=Y|s`^Rr`)F8|Pl6Vf7sKn$p$%lhCFm@fX|cd1@aC;1 z9?T6Vd+BuS;+E;msqllj==pQ4#Nu4|OccB*S)`<0V%jA3SJ$nk&8AYZbK67hb0m5sHep!K z3%7%juqNKd4M#(6+14S#YjhpHK;O-@$=ZwlF0o@0d)(42Yo8bMXToPLp{_<|x*fPA z-7Ss!O&|X5K4d(^@4(~fqnY`!=tKD98y-6laaH>3?CFU)I!;Vxb6=k2yS2=Rw~qAy zZ<2SHF&AzvRg78pm;{dg3_N0DX;u9n8FO-&8jV~oP7cQg7^Y;N0xJV@CRxlM4Qrk; zF*n#eRn$E)>%%*^{;dJlAlLOz%X15FJ4cVke-2MVeh-=CF*rROPkPCw4%M@RR+# z&(FCZ2`kR@1ZNyVJ#)*!w-F1xNPWZ?k@;KmRUQ6Z!Gp%r#)#-}m45)4v$IHz$G5xe z8Nrab*98yR4sW^EqsAi-N_Q5KV~Abpvl46jkXI*k@>}q6Y}{`DhNB#?tC@^*yYX+> zBUo4B>KJdSqW+tr&IjkYk-s~KK9WOY;bZ`R6Ee;UtBuvH5%U--awYy*$F8iDGcKS- z?AJP>zfxU;JlptB<}zAl@UI~IVLbR3J{kHdllpin_6B3_qOUIIzo5U0lkXdh4%02G zvB&YnoU+Ho7vnpOPkD_eL4IM(O%BuX+1OQ9sqQfc8yx*z#+uF^aHB)3>Z^sGhN+G0 z^T5s`c*FoV$lCd*VJAe2nd_WHWoK97KhW91%uHOy==tJrDAV=-WG|vG=*g^6H8dFE z9)EK_SXC|bt2>022dX(>fP(!5t)Xh}^Q>QzzoQ{_*Yh5IH~jscHI}}!FR?V>-NDFE zbvJfQFd0&J%4Z~`e=eU^NLRn$(RYmDnP`bV^0eG5QAgzyoZ}1ge^7NiE%Q<=^(lDg zV%_xz@D%*;b~WSKB|2@1I!vBhAX1`^ES3L*>KOl*M1uNL`Ain8&I2ZwjdzV`dp_}3 zha+m)9HGl$#HNwwPrOS00tf8iM#Lcz% zf`0}r^8VLfLJZFRoH6tx{2!}Ly$k*EwZu@BW8cn(*W5)rkr5_Wy!jPkW**~xkRf?s zII(Bx>j1jS0n2F_08e|iGO-B1Q{A7@nOIx+4DTM+9a}t!?{;u@X(XUO^Wjs07lb0i z^v@smB*fPdiUw2{I@SB{TXrZ}supX zshpE!yB77DrUh&_a=u$St(5;qF~33nALSNKgNLPfx{B|{_aZu_Mu*bqQjDd{Dvi0& zAA2bV-WOw!>3BQiX@#bFrW~15|135w>)*_H%A)7HVKCpaXSKugd-`iIu?%h#!-IJfocJRmFK} zdTfCBCTpbYFDkLaR=JZ2zmmAH^+PSmsimEW#LguyKS{hy0zdbE5hH_7i)X6RZs6}5 zn6t=8H;^oe6-LVWJE-#hPM+Z?;v|3Ni4BVmH#KgaAf7Nsa@Hfm^5YAGEf zMv$wSHL1Ox_U4m&53jq3_{3q+G9@+tIEPR#p?_>>z2vXVRU^L}NB`rP<7cfzCiV9g zUco$FU^y4`=lw3>eaCk9Tgqc3|r$VfZqK<^A1(ODCH2#VB#XESP z0OMpWiDguo#g;zr5ovRTj1}E%n0ksB%Y_dSb7yhy0>&YD{IBuH{F<6+#Bwdc&wbwS zJc&`~qVwHXsXe{Hvigu4xY}|yf7+F}gm|^NyTO6pq&D0Z;x=DL7WO0tfY{L6>&QJm z1}{9vYR%|c@6;acYHjQ4N;I@R3cnk!HtoP4@}8B*&qsbo(L3u!4u$n5X!h`RCMHeK zzt3{k4e=0P)uksuqsQ)mZu8lr_!dWT9k|7#s;Z?;q;^i@F| zV*E4oyv~SPKa+U18>~bRVzO$%?$&aBTuVMUc6;j-Y~;O_s&;!srv-@Bomp9N?C}mK z^OB#sA;ypyzz$*zqZ&OGZxWxDomuJzrwvt$uBX1>B6OQ6l~rlK;jEwE5Et<{ItesG zT%NwYj`-y`JPGW>*J*r&YE(6Iafy}ir7;&P7$esw=w>%F7v-JUQmvJ`#|mh_hR^EL zF>1_nNY&ObUzdAY5OF~JYggFIlOc)y6o`em{?(SjIMb)pYz}d!U~^4}!;UBX<$~W5yf&KfL?@kBRkt1FRPvlbl1r5cS+i%;kM1 z)=1xb4mSQTOpQ*-+l`?w==r_bWAEUPf5(%^$wUW=j*a<~WA)rWqtBjX{)NxB5X0Cm zvcNC6V{Dk^+F>gY8*UA#s(l690NVAAXZ_Iu+K9`Qyk*7Sm_3U&pdIp2q^^XKXBln8 zjvr>uc#m?f@nEP~lhIGD3u6Ar1-klC&YQ$H);J3s<6P);2zyHS25}T^_|h`oji`-( zGwrE*XwQBfU5Z#*FY~Zb@~k`fpDXb&8O?A9}{Tmuh;fwJlB91;qzx6_->f!0@TxBFFnluC>TKe zS*316o>%+`{g)UrIm@oc3jCSx(=Roj9IL;{-Pe1`hrxH>@Tb9Up*37(%p_iGpUC^+ zlHci;P3x!BWxT^oWDIg^=`*xb%{zdhDg20GiN#=#;dir3tP2wv;*)2t$2gYpT{iTH z;2*S{sYme*GT$-cFO|YCIFJ3giZQb`_$^th3w0+t4El@m%|m|r*e}uH+MbP#c3VHK zt62Maq8lTVUn8IF1$gpce#^yLsfH<@guG|08u~fhosYDu^3-0}z7Kd$;sMs~gAcLJ z3j4gwDm3{>YvBvcTUZ~)ZEs`kS+kMkBL$<_Gdsk_>8Gi=q#L%&yp%~@Dv3Q}>|l#r z>2354-d4Yz|2quc2F6#ZyxY5D0{+JH&{)NHQaeDpgZuI!lFU0pSniD z$Oyqj+|pzpUD3jOpsQhPoWhK>iFs?{xgU6A!5pt$yx8j&uJqf*e+OS*>1Y2I$zHZ4 z4hM{Yc_Q{`rC;y}(IFk-Wnxd0Cx;%_6Q0y37S8e6!+zkiOW+k=Xet<$cKk99$ssg( zy0z%V&3hO(ZH87Bn)5h`jd6p?LPZ?M>D<9!)J^5E9cz;v5ipwAiTy))Re zi+#5Hcg|fgSWqFkHM}SNEZ)Z0QrIx|c|Yxyb$^!Fz(}FNu>JTE!LZL@&NCR_3}_}N z!w&r*!?fq$YT7ecGjvnMnOeGqSiWEZd7jf8H*lzr=={9n5Q&SnOOivRW*0fgw97aR z_UvVxUTAo`CvmUWytnps5O2hOPJ4+yU*h+I_b|uxTiB1uUNQ#>UnaQH{}T68x|JHK z7JloAeb5iiJr&Qu9xXEMl54oW`0NOA2Eyo!IltSl|O+84G8y{$H@=mpqBM2mR)0`s>U5v(D_3 zSSUFd{|dZd27a@NJ>4*V=ge~SNao^fp5Sll`E5MG#jpE~eBqzM7tm|!z`ZuK({>&2 zO&=GPTc`Oz8Gby&2X?bwXZU~;J`irovsZuL8(W?2wO1|T4Azx}u{AGwW5to)vY%|? z_zVvSZ>477O7?7u2jIiSwuS!`TLIa}&~JwQaJJ9>)AxO`U}T{1O!^-jBmVEpJb-s^ z20xNG72yMAD+izE1I*V~_`qQHF1BDl>^#}C?5z|JV6V;a#2#LR@2_A;?BSOJhU6EX5-p}9x zGXKr;OjCv%D9CmTrxCBk`cJtPA-4OZjr8@`2{<;W0fetBq9AB8|l)7$J zrHoPH*%^bY>s#fW2CF>Ycg%k?hCbMEHC7dSh5N45@=)q(_}}MUu|L0*!Q2j%xfDG} zZNl$e2H&90B6v%trq-fb`i5l(BEwbMQgpH1j1B#6{OinXG(+|;wuUEBJ`maO#cz@9 zuVOcWje~XaJ58Q?s5lV}H6%M9vMl|=`urC@U7-$gIjLGDpAV{DN7uHLu< z9qcyz)WnGUmk(5<;4?LAD|I=%&$|nqlXVPPu8yNaYUn?NeVmcUZ>&r;h8U=&Pr_O_x3I>QT@nartgA0#?6rP~yAfLjDjPYSA39iQln@*6~~t{}OU1OnmtT z$X+jYOb~s<`v&zVsLhhbUZc(nIz%eIDYOzjAz7&AJjD91EYx@Zl6<_|sq2J&cE>1i z7v$L8yID)*(Y!T$Mho>Fd@q@^R6(*NWE!ZS7f_v3cC(5Tk8N|Cax%#>vSaxZ$Q18B2 zFuX!_Gjd~A0vi%MU>Equ^~7}D@H6UQp>KW^#J0lskoEv_KaD&~@PnKOp|QWii-}t* zwnkvrL5D|~)7{tuyFE@T<0GeDFeY6O-L~FuWR}_AoqIjb_c|q}BUAspjrgP~(ng{F zY@5e<7QYC5S{)*TPL-a`#^PH&`@Z2r$$vsyskmn*9 zdI8TJJSg`D>n?eY{c=0c9X!GuLF2ctkoJ7)4*I?xjHQ_UaLlxqq3=ZR{IHbYLSuKD z_NbrFb2nZi_XevkOnW{(hxT@_BIk#B#Req4ha9|ziDyq>e=-L%(7nS2KekJfeso8J z@!IGyt{*%%&@>4>Ymys^UXFcmxf=%OEju5KHwnf&4UG3tH^!R;-8_6 z>J}D(@q+aRz;{bmg7Iz@jQ7IR7;mMihjAJ2R}OuZ+r`#s^iaR;Mn)qSi$zY^#mRt? zcZKMH)E<_&PQ#n=Et>a6j>d|kqmi3_JCGc03m)skXH%RE#)7!v-78Xax`1hn>V+)F5L^qU7RzApC+_rcqbwVCiz!iJAqHyG6bd`eGd3 zHm%ThtqQknn%^EqS{r(l(ObOR;nl<64|OO%7eiDv1SI{|0o?(L2CJ zU!yH_(Ap|!w92x}q7}?-u{}IlA^Sz_Gh<&gY^J?={67y~zJ=!^`0ieYe?>}YJ7DsO zGsAyRk8^wE_#wN${8Pv7z5XO#hDw#P@*&I<~qySfDFuDM88j(e)VGP zr^VON#z1VP4fwnE^IPhfNe*)U1ZtuYr!)3O;SboW)J_UE4VHEk&)UP051dJ&vM*$u zzoiYv9V!@X@ZCC@<8mu8wmMHQ9Eqp%+yjAjkmyq}SDLI>lXW_fu47NJhN~GtBTnAg-M!(>6=uv9+ z&xjMen&+<}UbeR19))lm6f{Yc%^Pc7pUtW ziTR^Lbq)4-U?Ow3)?>Sop(=I*7!-W5=GT=~Y2YN~idaQ(;7;O_j@-i>t!4fuA;+Q3 z*V`ky9IW`WLh23)Zg>P5Kya zlKyoKSY+ny5y=_l>@knJ{T*oA8e-y&PY^d<%bsc(m9kMKR;QJ`v;cBJ-Zj(5yH19l zCR^%b@Yj#lF}~4^v!znkPLAkW`i}=iZwe{+lN&-#jDm-iL_#Y50lW*I)i^qWJqTvI zf?Q_S{P5l2!^q9!m0-4w9yNi!>)0Fb$@}7W1?QF;w<)ZYT-vc**AqK5<4)?ACNGSI zqZew=a}jchxz<(c^aT-kk-%e4EwZSc&obn92be}0F}S}46P0_!QE~4}_~^Xe_$-m*bEmU!?!%^I?<|_dULeO; zWaR8-)@cB??*Q=9=tb~@Y^w_75g47`h@Mhg zhkWAV>~A|5rS0T6T@Bw}x(#fUv5W!l6O7Jaql|A1G&}Wh#MG3mn*!bOUf`l8)&@C8 z9zFjv_Bib~l4sm{1=#3b?7AJS5Bt923G|{Jj3X3b-oQiQJ7rD1^jhXQ{i^>34~2KG zoh7~=M`!G))T4idZZCC%CR|jrJtY~abz-W#HKlt~>^w{T}KRRJwD?3H;jIH<&X2o9=R znX~j14k|X4s^~O0sIK2qsmM7?#nyp?#$UuXtiY~e-++Tw)qV$><@(<+P-3aS4e$6y ztm700TFCFu!a!pskwJDS+50pO8cyb6ccd^-YFJ1-SaqF=(_nuUL$_tifw@e$-~^})W+rEg+yPvF4`}2Z(Wzt~e`Ad^Fx42j9%o~j(yyGQeHvR0Ek8%%9t@s|zskH5vAnTUcqaL2 z--c(Rmt^R5uY5bESr7e`M5uGX+_UG+zGg4P$W4t=p8`H1H2~p7Txs_~L(J=!G0n4b zAJH4X;^% z33?;Bbf!*&iT_M`Sx;&hf{T-9VV6WRb$ToNMD$tq81|eSNP^>a$oGD!5f>wm3R#-1 zed6P(ec)pss0r*eH4bDP)C^^xFs401dwyL3Eyme%RXw|k^sh4R5egBCf7R+g%N#*?T)k689Tu>{wi z!6J$Omvdw65v*5_A-pGRZi5ky=UqA1RU0glzRE1W+V~7UmZIKj6Z_7$p)%#u>LAyF zd4yinc;?CAk2bv3%9XQo6=%!FB<_^+YbAfPDh+*f4A-)~a)u&t0B3MV2R{b7L8VGx z<8e4wj{R2zFA)3=I^4{;q!05>CCr)Nj-4VOiqzOO&>{G9VKmPTM;y2Cd~zkG^-g@3 z8cUneU6w#wnPtc$Vz~u>M6S4{(Bl{{dqBnupYZZ`-bU6H+9!_ACEria`NYBwNM+4 zUSzA#aE3Z8pI~60%BPi~j+_5|f=!-%E(A1_qwf$Nfo?F5&w!OF@e;8Td^*+aH}WPW zrpFmWEKo*XM0_U&6HJh`aE+@A17sO&tp$_?@)UzNa;oxqG=U`4&f~&LUqw~7) zM{IMc112?mv8Taxx`yvy_}>eaP9E`S5*ydTdcsd*_-s$dm`Yulqicv6@v`RD zU^TBfRcAx;Ru8i`W}z<^vu|gwmd`u|b}MIOLI;D?NpvR3Ydy(xV3KA(&6nrcN5^UN z7S4N-y?0!mi{$C!Jhz`*CE-(dn)b+bJX+C8SdT)~pn zCx4LkhDgpEpShCDsHU^$=C%l~i@n=Sd}%fI^nVeD1@GLwR@RX`%0oYfcmLS+9|B(l zYZTluupHcx_|g!VV_6X~rr?nNol|UNvRk-wGCCOeqcw$RCbOR4k6@7DNOz2B6#Q`| z_#@b3X%hUgN$|(!3o6^@JftdJt>Nm3&k%jf(c=%`JdlNHSk|Zt^ z3>}`#y<(ol$FvF=(#-yYKaQ}9;D?2_8!ZIG8^XCxeAfvLrW^l(&R~A9!Kh~pk7IsH zqQeYcNn9v%>uMkJrI}}Z%r{tt$R{Q8sb&hY{WEk;bjO(3Q1ICbutlDaor?J+-ZKWa zYqQmKLXF7NX$F`W3nx??!M z5ld`6gC#11B|hS@4VL)t*w7y^h5+pcEGI6t^q8aa-C*~EA%0LPF^Z;^-Zx>0LnGuz zfmwY8KU4-k#FtSL0YBVN4W<-+sK5_X*kLqigNv)I?^=$J81Pg5n)CZUO7UYkUuf}6 z_V>-`rOREt0elb)k@^?#bnvc=m~(?4K6(Z}Y(0Y?DuW+VZ_wa}e`bsyF>j0beK&p> zms*LZ-gh8tex_f&csf`h7*09(oz!78_#s$GGd6pm$xUI1#DrCVAr1vY%)E$p8~Kg& z2Y)yCA^m|LD)2+cM;*^oeO2^7-B&_t2Z9|c!4AjG`5JbpTD!5sEU-hVmzO<={UO*P zeb;?V`(TIXfgQ%FQ=Ze8n9Yw_yFuuwyE#K?6}9|UTYB#OXRyN#utQ?{)QrvWJZvJc zL)8fmdlc;O=%>VKJ}mn$tj1%%@7ss0%#*zYcDRT8;8ys+zl0rL(A!{#)L5h)@U%3s zABp{1$7Qg?DeMKo4)<58cox2@HPBQycGyE=c_xzANp6r}hxSac81|6C4%vg{?8Q63 z5E}9u{P4s*%o9A1oGq39kS8&Pxoc)W34Un$?WA9>kBHOV|33Y$@W4+hbxmi4-|@LU zVh60D3Lm5zdwB{!WDL5-&pudDSyfBh>%p?-JSFeySJW^7Q-xjw;Elgx%~qspvy7TT z+~s*z0xZq=)y7tX9k#-YA7M{dh;CY`ebo`wxPs3qkr>z^?L#-q{d(OIcyc79eaF!K zR)AYpfLo$ptSiBf^kwW&a7(r6Z0rzUAlRXOWL;pIzdm__Y-n3 zyjCJR6L}a;-J6d7wR<)1yxDU)wsKB0_-F4FcIX9L%zO&n<`H}k#2O&;40c$1BXNuD znP7B+9ZF8nBE#zc&KiIn>b1nJ%%C=-#5b}hG#9v`T7=Fz<|^>WA>d)3v))rZy2oYk z>^68Jb`ySX@xg1(8Lp~D$8Sjo)0$u~!&u0wMBl2^N8tO*+KHq53Hmm%n2WC!oyIR% zRaM#sa3Zd}TPqD-STmWnA3z>pXH%y`>I}gP!RqSRd&nGvv$QboIPEXvoksJ1%eEs! z_Ej1Tvjq&Z0-2UEFNGJTulHb&dG*?2#&o6U>+zFQnV+fX%hW(8e)3f8q{>)9%;QYv zlRa@7E2LfGBn?(5F_Rj7{|r{>{Tf!-qndf@#tI9Q#J>qvh^#KLBHxM?X24s%7Bks^ z3~Z2?$;daxOonbt`!=jl?Bf4x%p~}{&fr?xztTxE9Q z|M`$Q&r3atA$_1T{KM_>crf70g)S~f>Co)`RgKbLQYTDcQ zg5GA$sBscpKEy7j?@2Ph(bQOmTEpagvqT>86piC~zc(#s)H(b%&RDjm#*&9$Wuc7a zcxo)?%2;k;EL_y-)*n7{W-P;^W#;_J4c|w{SxP@vnO+PpHaWEalG=*clJq%6<}DJG zGwJQpXwd23-;6=dAlKvn^}mea7%}x+qsEyrI0I!2Wz>o0nvM=Llem25LyzM;rZDz# z4l?$Fzfj-xKct^BmHRSdXhp|ESGnLFOWs#4{15ti>q~t(uOrv9>R3zKdg_4qk@*d} z;5e?_bzoRaMAnYb@srd8-fro<{*q5ILNEOZ{`BV<6Ky{JAC|+};VKLI#aEQzEE;@n z_}#EO=fXF>_@3o_kNQd9Lw}q90=^(<`j#!k$lN11$6%>@6!U}e{QOGJIeY*g=MH4& zv&5}{i_Ap^%-(OQ1+$QUk$}DzdD#58_}Bv)nX8wq!=|4K9lnem@iKDtRjET%tZVUS zu0=m7O_u6~laZfSLeqCK-nY2VMXhf=_c%3M9^eeTdC(F4l>Y{-{0Zn8-KPsVw~Vur z16EL{{hmHQU~gd$USMYoRrGQ#sd9=Ob5zu769-q-*Jmc4rXdU%Q`sTywDv zW?#TNJj}bpw~?W-K(bh;-H$AL4*MoDOk(O)9`;G|Cfa3gM1p#Lk_-|(6Ge+b{ogJ*kEXF(&sYp&rL^of?W$U}10NB#pWiag`k&#CYAQ?Ll| zAh0!q4UI>3&)v`2qR9I=?YB)4yKQ)Pec4>8Q>OA}V}mBcD(?UoRWE*b3wZ{&2yT-r zv0|EfJWc~V!iGNDY%9ehK4V|{Qs-ZT*msJyNk@Q`jdB z@H#oqWbIM_{%`T8Wd>c00KL6rLl00Kb{&2jB)dnwn&q*e-O0v+@Tr zkY^d#J%6GW8Mv2^`2!RcpB?=LS2xH(kjLp<^ZrFg6Qg9-0;>vYiSgxBz8OZ(7p+C%7@#4J%qhjS}f-y-S&Ps~qDJ`OgSbQ4pK zT8Y5}k-gw%`R%OlW2t=dyjLS~)`4?vdqku2YGQ!&x;xnCzc=q{bk=p7z&dXmqz;?} z|JsJk{XIGW{AVb%+(?Yi1!KwEB&SQ{UKYG8^D)*3S#`m2(FgL~@U%gR$)7V0DI$~ZC~gzs@Zf$VI&f;s8OoW4j-=8K$f(B;v$GKPhh z^A5izwjxR%=S{?n--WzuWDL+UXDrM45LLCvjAIT(_d%vugh`V+qyK>uf* z^}L>SsU1cC*q^3<-fuBH?gH$R)BU3dJnj#|a)10|Hm%gfrH9FRf7rcYa<6810@{BW= z1IRqF9h)%VJoCyy|WM^dpyXP>!T_lFc-U}BA`twd$_naiC&0v8x$ z>7VX~XY~>KB$u5wrG7`pOPm9HFW+Okfg9+3FMuZ?$GN|k z$GNN%*)qc;`^9nC8?V8OZkTO!NjWdsMrRcMg)UaA)Gkk}P3)XK8=f@Rqdu6**s-7V zv+R}IO7%Qs=Ha)Ag90o5>}OWuC(z1(-V%!iKfTW5*#AFuZysM&kuCo2efAkLktl~5 zgpiY*jD(hggh3^z1;?IfM4Y{PR2*6n5fB{Uurntl&ps;c)HaQx-EG?q6%xYekUYhJ5X9RzP;MJmlj4!IS) z8C|m%U)y5Zec8u8=@Bj!|>3wtDwjAwnJ>5s%%2u zeH)v^-;?=3QdwJ@aTPf9DDn}xYrukok~T*#Cn5+;5BgD!M}aa%jqY#-r&i+PKDwuVp-%-a|LOhOzoG zqU+CRJbuo*6Xtu_SINYnEjy0PI?~p^dJesYc1Mn9-wbeQ-az=t-{?!4=#izm5_v1F zAM*m9t+>RFr;taTcomb^mpFa)Ev-;KpY#V_h@GYh+s+EsjS_Pd^-}*xjudpJW$@u* z_(Q`T^dFj%z5|&T{Au9dJ(K8DI`f_muZP$A7|W5q@5RTcnSS;ac-D$vz`m~Mc`bmc4iozy)(>pQmb8(4qSs)D+Ctpl4C3?( zSo2w9?D_D8S?*L;$V*+Vgm^WFF#D#Ul`d69+|6}iHB0x3f~Ef?4rQm zcY*7Neq*Tz;J^HLa3Z`Gc~tgUh6aY?+YTYylLsd?jL+z0%j}Wm%&k!P{DapXW_>vJ zws{=-ugJA?p;0}k|1aEgOo1;J94Jz^Fc16IqQ}vuGnYQ@V*Fx^-!IUqy2EFiiLHc} zW&VSGKHgyLPOw)K$2}v71%H^h%zGHSDY7mvsYea9i$!mZUvezjH*Ynv+lFM{+&fL* z;uGmx^DOibXx}Jg{pPWDuvcID20v@>Bo-gJ>$4YFZw~Ldc`tIE!dGyQ#CVqKOlU(3 zG@`Ou?8M-O@cLcg#UY*_f_~FJI2r8SANu<>eE^P6_5qnurwocn>_=R3^)~m19`<4E zyo}Eq%*lg!!Ka8PEobKZa0@_n@OLvZ>-yIzF%ly4gTpGTi^6w=(&+Rl~D<`= zGly}^>40|MjC~zl?t%Bvsa~@~2J0d6KdGJ?l2s@?9mm=?TUOy{lyd>-uM4_Xn09xHqY%Hdo1< zg;ixWvgg~>8zB$Ldg_(>M7O(x=N$V^pmQ_N8aVTT8_hRDn;iaw7y%`50^n#J{BeZr z9cvd$43J`-yHfw44)AuwQS_;oiPOg(;PAh!w=%gLfHPz+a(y7*w7qJzrNRH}C&T|H z1HYf3TX3i^$iE72FX5l-T#?m^RIP)p>mF<{$EXK+w4CE8@G~8`viTtURLn(}fuEzF zsFl)}3vH(aIXI;jT@YT*UdL)Q$BYr|PuAZG*0Ik`8o4+|71?GVIhUAEH)O{@AdgZV zcvSzTt;V2}r`}@gXi(x{^Gwc^G00rIu&-1Fkk+ojzIxl0=9 z*Hr!qTROQ*RNXelbq4>1|E>O9{DE^UleeUKEbY!^?+@Bf?WC{Jm6cnmn|g{9dCG}W z$HzST*o?LIZ>3MjB<|1Y-$C+}#7fnI#r)g-;G?u{3qE$W4b51ous8hyIUgFCHXc9K zA1%ohrd;gczQsv=bkJ?HUSQmqSBJi#XGM{b)M)U!j`8yG-Adw?h9t;|vJQRw8}O2K zszW32X#7dMH+vYiB9po3ZS+x-httH0_?FYowq(ANYVcn6!raaPFXqfa&UzM`<)zSOVCe|@uGm|SUkmL9o@O0~9_&Z%0sam>0uR0x{EVaD zC31D(Fue3YSQD@37Tb9`eFicUGS_|mur*98j#mFkbmwB(lSS`;j53L^PKOV)qzl{? zsto8t2KJVZL~i>GA1=r7y~vRtfQ!)l>3>9?qP}uusPwPl?bGu0D*pBBS?COv#6HCG zb>pwW5%Oyn$BJ|VbxZrhpJ3ej^PJ=JYbe`@E)mODXFUP#KMqf*BtOTy9UcnpJMo6C?+ub0V>)2NF)OCjcIr8y6AO0i=&4~Wj0qV@Wu zt+|PJ#ms5bt9H~+uD1|#fei;*nySvZ(~@`)`oNq#z&yNQ>$6^C{2m8RUuB&N$3b9l z#!BGvx8#B$4^xqiuKE+=Pa>&mwCHUYGd|D{@kOVW0)O{`WB0L#74Z5%)DF5rKhA{~ z-ip3DhL}*!%z!4ZlBydkdutC78YFlb^&SJ4k0DbH4hYRu?a&kUrqqy8K zTf~N4YH|nVOz=srBV8|jv3YiDvM=l}rrSA|ud?D<^r2{Cq&hKAp4q?D#nI-fgi@9jQ=H` zO;eAolNMT|eY(P|(|xBSqJ8fn`@TsG%KPvXcn$u&Xyth7A8!M%T{dHIJbb_->svK> z#DL$S;>R)TiFGUOvqyX`zLKKB>tg{iB!K||h6-1nPTTfzPu?@1e zJDF2rA2RGd`j*e!Z)Z;SRp`1_&H?;pZCCa*a#6-oRl^kOho%IMp`RUz=<-k412Dk&g7;%MSUaUsi{MM| zMO5Rl3Z42%1e#Z%YmQlZRk`fnSfGiC&~>x%!`@2$b?i-02Tm_aH9iM&d66H>#zP?FO#@QSAO>zgr?2{YAB2i;wSh=+(|#Rlc1zk>5RAM0PAvHSi$zDbY>zyLBM?=w`kp zma!<3BYS46)*Z+R$Q%tbh_(0w_T3bC;Wfm-ypK$?pZr_+!E){5sJ{>NmipEK2PyAX z=w+*z$Gy-NyGY`kT-HkJTIz4z0qi4ttli8Wg!Z6lpU!@1-;DU^H6Zf+!h&hL@6Mq+`jxs;`J9=UuV( zQ+Fk@?TX)nw-a)d8vssE1NVACAN(%pQs+#?-u)7Dw*>meyoQ-0@}}ywHQ3LoWBOvos15mf3$oZi z>|rtNVN-?HWb3iJkn6CKNe)={PF2m%@h=mRdnVFv-lx1Rx}8V)p0k3ww7_>nrh7APPuC35DUnXhB{I8J1k#olWjDCFtpJ03{??RWn3)_d!Ry8+Q=n>Ff z_aJnNxvJiWo#Zh89ZRnFFR}-l_5Q@$I&Uc;;#1hm}S~XRjKO2NEXYeVJ0YhrtA>{I1%#|Hb z58Oaon(@=nxt#&kiBB~|eD2&Ev4^k^-t3#jF5=U(Z$LK#@An;Mjb3-@E4<}x;YkC5 zbLf3g{H{Es%=N?w%ld;AGnr@dq_Y+P88Z|rjf6tk*X60H$o_lbcRhnnH(zh!+?ch^Atl)oj+VO7KI~$+myVbVI$C&mL z_{d}I{Rclp#?{@Lu$N;;ZX966pCXoky_of1@zH%!gpFjLb zsgKh?;vN_Lnflh)!7=@b?fX?k);I^R{3@a{Xm%=w#RxGDNmr!1D#z$&cG&TMb@`4Tv?rsvG=r z^iNp>+z*-iD&&QW?BErQPue)-+;Pap=qdG#SeX?YkOzZ-Bf@ z=Bb>~8~m=dgPXtT431~L`1D!WSFl$gZ|nW!I2NARA$b-Pg=+d$*mgu$gm!)e+(n@; z9bfS5HTZNnI$<7i1oUvf@h}}>eNB_em<5p4#>})(B^fv#LGl0|HX5To9{q>n2jw0`1ouxHi31>MU)pC z2=ZAd`#_G?{Lg%`i-2SEza&0)E`5PsXlxsu^T=WH1na1u#U64a`%{7Mj{`GTpRnTr zLU;g7>_{l-?3?L(>hoFTe=(%yxr>x*WbP4exv~b+M8-4K@I0bCp@;ZJ& zY$dC5;T!Nc^tDiFVzAi{todGSx!@J{Mu{mFTcg(48;@G(#(yV9ax!+B@%Yq_+QCQ9 zu!2{JjTd_#bY8Wtx8meP(JB3tHq0vygHPAer^}J26nOlqC3fqm_fupzjw$dN))lCm zFJ%2SG^yql>c9qwesj_eqcX^6U0~y*8-T3*3g7+;`^>Lwv7?J0D}GIf9T(p1-UE#e z+DX6vamJ)~((f|w@jo6ENvo4vn6@o_%QTm4etQ&D9 z;v4LC20V2i?JmInxd1-;ecLIqI{1_}Cv7#=*l7aTQOfg)n?zUfzJmV4%@BChKwG|^jPt9=M~si`EfGLAF57I$zYt4SL5^bf;ieAuYKm_>(iuFD zye%T<9qlQ)b-td?*x%3-T0T>3&PA$2;;s^ff=l}7B*E7leb=Sn9C-fWThs+_pSch@ znOKq>=ACzH&vWp90d)&VNZ(kOmZHcHj!cOD#xdRyg&Cm^yz5>$&b#Q zCkjnm6Z3j9?o6jvk!$P^@cHWo8atHZ!q=A$ia&V2 zf4pZ&Y>-Z=GQK4A2V_|E)$p5swGR702L1zL&{W3Xk;NtnJRyJm3L8%>MRf#h$xEXS zJ_8-NNy-(nwnprD`N1>J5IUGIKKfu2w(G3Vkx$;RPp-{2`_!?fO3yzHo!|`K!4r@* z<)5OJ_$k(M+(3Un1`cokFKBq0ku&x1fwU7NM(%y^@g`eUU5}g)VLYLcmA|2XlhDN` zVV4G0X8~6SXFv-tg~rG7$$3Sb0&}(Fm>u_==u{2YW8c2gI+^oXd#AhAur+vh>{kX;E5=76h{g>NFiwO|u^7=OS65@$->$$osO z;se?NP1pflIs~n~E+^O<*=HjBzDe-#0lwMVg@<2)hqIEhuIB`Jh(6mgopJd!u(oq> zu&?m^m!MZ1cT6EZ?qy`$h1k)Mar42&8ss50i|?){_9uevbQid|kZ&d;qfWHq9%NeH z>0uMClQONunM#geJ^uu2kB(7S*tAC+6Yac(41_#b$sDgle+a?XM1~!`o_2pJ@sF~$ zlQzzW2ZAr7FSU%%wEmaC(iK*`1=?1#utHZ(WHae`yCd5TEu2vd&!(NgV<8 z6+GZ0=>Ak>0@m~BBeYe-x~=0E+3Ma(+aVX0`nnnU>nr>oKe5$U_(+bgWUU$g72+$k zHHg@O52dam)r{_(^%vscJ^(>%+0IzbT_uh zQ0_GH@2$u7Kp!NAWy%rwdn7;V#}_SoJGAnB%{J`g<;cCq#Evsi`?;^4NgHj2_jj^xp0ZWQ7FEwcN0x@8)!P_n`Xzg#K;KO6+=8X7HSTGdym<0H-!2jz z*ey)-ilQsHBFiktHkI>ciZ1)Bi5+qZ>_PHBy0#S^kg+rQxfs84j*cR9(W$`HVc?m1 zPU^u06a3H%=4Ok~=VabYS8Vbr#2}?G=BEeToJcP{pZGi3lN|qsu0}RJ_%?p(4M`r7 zxd}e@y5S*O_VcKQpImb|;xM1ezeDC@psItWj6DXP?1c`r34iJr^WvkE%TnzeHGk!9&D` zL4AX@Pt*U`p+VSQO5O~prk9Zirr2@lqV^m|_ef-!KCbHny?H|X8DZURg>7Qls{RDs zxX}ta*mYAw*mZBQf@8svtlii$ry9GiTL|1V-+~<_Hc&}y2|4jq)=>D0og=bD)IZkn zN;PUOI_szC-T#Q_QHL3O=;Jc%NwqsF@ByLsK88F13=}L1s}$NAfsESa*Tvr0Td!@x zp8SFB1+<$ruk2&0TyP{0ICa6n6`Fb-`m!B6h&{k9P4okod-88VrzjDM`o&MrHzTzb zKd+-RKK?8As65sgmwn_bgccD`8vrN5JHy6CRc>@`;`k0icMoLh7HDc9F6--{sk6WV zY(m*P{Vw?`$=AhLN8!2C{Aw1oA$w9LfMN3IC%;7ZMhM8yQrU&7vcI(GNxQ7`kU*LMg7!_uSDkH{Jxaqn^+(7 zE-cq}Kh{ps)}mfK?`y7e7n%LOyPk6$>0_?5O})L%by%+LU^Q7``)mTPig$aR5vp1dxR>%{5iIeYQZc2L%x zQvNiacQ@DUC(HBXb$C&C>N(v!FOq9Jd7UlwMCc3O=9)T#`YUw1JWMRCv!YGvh*1aE zC30;iuXCi12zBs0*VIiNT$e859~Q`W@;=YxYs@z9i_A6qj8I=l&wg6;i6S+VSY_6` zOYU^~ovUUoM{bPds&9y8!`H8m|JhQ<;90Wg&JlSQ%hAbqA${<7Qf9C^F6TtHIw9v+ zwmxc}le5q~59lv`hc6X8^F9oZdfJMY^%0uv*VWsQ(U%Ax2&u2JX-O{RujCvXtPaXK zGFY4Ek!<$TWX%vbNqmoL#vd;G3rpUDvgObl%1YkDPJHqHr{p@U%hpL7Ic{#Ox8CzG zW3-ff)RBH}uARKkk^978-uKaaTEGptxBF8+@3}8sn(boe;eB6oUt;cgA4!%klKTkn z?SAGxc_OKg_ja;;*pweYeaZK^rabqNQ83~-R{Hl)4ST`d87yJChx;i&X)Jx&HG%rPw+mLe4iutk>0c$>}pra_vAiV zo}9Uq=icsN-V<*`yWGc;@5xik_i~?nUtq?q7wskMBX1t{aXkZgT{=+x3ZJRK?5!&; zb=#k~juolf*Rr;IA~v{@^jP~kzTUC-z^|NsFeF$o*{dgaxtD! zSMu4wWI6c0l>3*IL*_B%?9)uS#C(G%P33T!f)8M|#}jS;q#i4Hgq4fv%4E{C!gUE+YZp&U6!aznXtM)nKKIT3+wITQNe54bc`lIR^W>))sK3KdOb zE&R^jp^}}fi+{5>w%Ey`+y{GwvdPIAKF}NA0Q)Z;=!ISQvQW? zC;u&$o&1+bcJklsZ21?yXAd+v$5>Cqzvag0cZ7VR*Rh^|5$pLUu%7=+`YicGAH1CQ z2T?z3`eU-D|8n{|?)!bM$fVAQ8;(VseEY|4e&oll_&(QeL%zraj>Y#Wu~RYQ`xL*c zc@0LLAc(gI_#AG@K%kJ(QVy=P;Ep5IZSn>^@Ddn%lQn91*_#$JXz8X>>n zHOTe&CaP|%5FLtjnDDg;eM8U_)w~CJ8ePKIYGVKO+Mf8{GihfA?aUB4`&_pua_-4? z*aNKs8j2sTXT&YF3w6^6_&iP!FP$imICV{oT(X_rJl}1H!ZG%Z9Nafla%SI9&UO8D za|iO%x9urC9-Ev)dz0wbBz&H+bDiP@?SZfIU(J&us%|Rh@ewB!E07ofH5{AZ&`5#K z!cUF-2A)Tvl|zZg8fu3M9_-6}CHJojPs>-8Rrt-&f%(5=?!d9O)0I2W_>sNXh(}FD z_F3B3DT$49OA_OtCF4Rli6SR#k25(0GpDk?d~JpHjg2^^c7f4z#-Qi0*OC&Ol9xCT z<`7>=MbwLqHs)#U4UzHg5PQ7j5Y#tq$A3Dp%WrxCz6ObNgP%@8hBdy_m(c^!-}fvz znyTAV#GaDOv1D=!4#ieEQ)uFOz}tBW->t42!Q4>C3S{-VzSv^W z1B()8xI+@yk=n7PVe==qpl*F1I}fzYcNs8x5S!>-w9$e6L1;ESThEpPwbb5eT3Y0_|Pgsx$MDGy@I)d50Pg`@+mRT_-I#DFxDscV!_|k z6FWq#MEmdwd9azypG3JtazB>p>jhWo3;oTRFi<;NDpc8NcF-^U1>TSXjm|;m^kBbR z0dJG}Vm_ml`0!S2;oq?Bq@a7UXMz*5Pp)Mepk%$({4Lm-u!D*H#3Q!KAU3NYuyNf0 zo~J7JSHOjhE#w>MiYlDdJUTE4y%Jj!`r*-M z=+8Oe=Q-f>nS=C*xE)U+PHbJ99iNY%I5%>>K7=jLPoKr6HsTG@)7ZCVHu~qZ0lGZ| zT%CjO2VK%dA4`3K`nD2du@!xb_wH)O%Vxb1^L0*;*g4jZ&?7@8^m44 z1D(XdlruiZtoS*Dh@X5nqH9hVTajDHd^cey$c6SbAHrq?Eo%BLI;7-Cp>2VOmQ3)X zCpfV_qSYkek66TWz)i{B5!fp@fE|A!F!80#IeEzb1upFDr^fEX7V&v9A5!25<7w;# z-Ppew-FrK5NEz~DY5#QKXal-6Yvi)_6W5-_8Ub|Un#mQi{))9p5oj~9TIi$s(B-Bn ztO3Brm3fWKQ;Awf3_)%z)6I=!M*W$#gKt|8L)R`iJuG>?IVpfe^i)sa0ie&mBi ze$Hlp;e0zoa-1R8g^Pt|Q6o0#hc;U z=zx4%tPV;ZD7!eB4?TfDt5sw|N9^^$LRimv)>3nx5ub8c&)Nf=CGzy$56ineJ$H|k z^@`riSdbrTm)xhQZ{!^D>#yaUaFjVm9Q_sd;h0AsTyKe8Mr8qC<^Qq_tjxc<0$wfO zrK(vU3p|i3s!nXD0e%0+*aIV8b+4Rbj-LH7`Eb7!+XL~t9|13RNhoJ0dwyXHDtklb z3i}6iBb@N4nJ-&WiODF808<6P$%L@WK8pII?t+(Rs5@TfY!^Z|d#I1){orD!Fm?ts zs=MCLeZlF)To>@HhrYQluww4d;G3YiFF2iVW4uqCe9t{R2YZKkpDXVpytjLr`y9Eq zrF`;zw%oJ7V__uuzV!5b>f;{WLfXSWzn34?hw8V4I0w3bDVY@EQfL0X7DN zfMW-{M99dKb|2o0jErn*9Z9rPoRAM%JbaBWZEm{d*0i{e9t*i#P@Pv$oFzz!1tH&eF5Kdjug;7 zXPbRR<($apdwHMF_aY;oe@gEBP-Ns6Z{ppctf1Zz;_o&4t(J+ zYUCt%rvrU_3x3N%js!IVACLQc_y9hN8Nf&YyLq+n4eDNglxy_HVFA8r<=)VZpU|J5 zxcT;lPB?O*YT8d924YXg|Iox9s*-1_?H@u{fthK&RR9?Z8?CNwWBskvhs}D}vy|J! z{U(bspuPn4#i%cFp>Ci)iASbB)kuBbzf(U)O|l+U3vFUOfaw=JFWRuzevWMMYjifI%*r3JkJs){1Ail%o_#y)VYtzEes-J>` z7sZMDGWN}peN5aJe%cBpypr|Sy5@7{<8$Fvd1~Z({zJwbp1VSL?wfhglb^adk&9F{ z{YeQR`!MH5?wAe_n$|Cw`(zfjU*wL=t;Du&=6ift8lD?ijvUzCjt8(cxwDW54}NRY z4IDKxg-XHiQj5Q9**(ahmmxd8V>#e!)LV;>t`<25*W(+pvAFX@r-ofb|ZFf;J9oXG%k^h-wMl~aUFcy#+*d{*XzE`J_GnIbyXBS3f<3F zMSI9d!zaP7(c^Ou^nnLJ52isE-{gGYj8M_eLBM-*9e6hO*Rz3RA3XBA`$nyKM(A!Y za8~FcIrI`@cPI`Sx&y5CS5qWc?KitcY{DZ0O*rRe^KmZJL`TACoIiJ?V5 z{XQ+Sx;sMa%>O({PQWuK(HFxPLg5J45yKNgMT5x=_#pR*E?xi~H2sgTFPrJV{J-=& zFWLV@xU2tpUH#AP>OVd>Q!clw|G8cLCw|S){7_f_B{ocWLa3|%IbHq##Si*VzT4O@ zoczQuC_4c-nc(Ine(L7Oz$g1>ZaDHYp{3e|-hmfF&!XP7z$rR!I5q(~I)So39iO*VBKLX7ZTDb%t$`aZ^FDThbOfB!L zfbXh}0?)+SZi7xIiUs#L4^dT%kx3U7s1Y;3ffuY(`)*Zk#O}Bey10~gzr(hTEhlgz zv;^AW+XlXEqpfEc9}YjXq-{x(mO{@$Id-8MNx#X<&6t;nj;aEp8)C~tw+$gPA zTnGLnhJ*^HmALtld|5-nyiRoU>|ex%#-LNm8s3vRC4`>HUPn45l^ED8X#Ig=J**Rc zbQ$qx4b)$NFIr^2!G&5+w&N1dqHeV%|DIDCnFu}oh0r7Ip?r(viH)(hbtk&OfqcF0 zU(|Wj=z1y@n@mW9!BSz<0JE;0$!`c9xy>7?RoldSz zH1e>-+M?@Au3L%A&`r$Yy5BO7#8?eqPG8Zl)^RM~3e7uOp~fN)I=5BmvPYP^CUjDn zFLdPEqtMAdwu2u~+JO$`E7`ZJ=_RAr89j;I#nDRObnP|BEpO)QDs+DK>T>fFLu4J2 z_$5>(^Eu*$B(JDViI`Yn@ioX^_Vcle$l8AV;fg#(cmG- zvnA+BL*tuRN4fDJxpDCOUDW0C%iW3YiGB`WfZwnO*m~wDF;t&(ho#)Ncos2n!bv|g z`X9D{P|kIwE;$DE5%i(l1HeH7yK@KsexQJB;upBiIS>XuD8qHpfn3TLnd<_%j-d1K z9G`&h5WRhA3Gl-+E&5ehckB`vmi^)j&9fZ2jwG+M<=QSW&r6mT@O+@?Pt+y4-vD#X z9)OfNc}?B1{^q&yG1$p#<9~>qVV)N)EpT#U1J&JC!rKPu8OxUP*T2h5%~xI6Z~Doex-J}%SXp`3||*My6iSYQyYtViAwVvT0V}sPum2&Q6M;1Y!=Gc@O+a@(vXs~|GVhSsgFgB=Yi9lbK=z82DurDkCsyL3yX%jz`Q}b2 zL0&4+AI)cOjQ&^Xmg2Yj2zbwtcXmFwon!8E<$WZ~d&=`ZTi(ZtXgm2n$Gp#@eDeF; z2}P9Wy&dW*&-XU(V<+q9z0Lbb@_p%qT>78OePLI5-pA-qBKf{V-p9DUi+Ln2`uZ%} zDM;j~n^VDE=;FuaVsFgR`&ipobf7?g*b5u#SJ13C!+P&>;@*fc+$VY=HnjbJ6uo(< z%Gv|&{snsvwnEAO>1}~lOo84LqlCP~-p#zGCYXvwMi=lV|*oloL7i0p#0V%%$W!c!0Qz!bHBFJrchWxie(_+OZL`mL*@$nT$_t zG}p+MbFiBi<3GCh9%8Pq`J#Na-~yjU&+{A z;grO#a7!XrI793!+#!j}gSLJ3lzEoLc{jEPbZ7MDq6hoIAMrDs$-aq^{@_plQ1*5G zL#5O3b%@@KAEIDUUua<8V5%RQyc8T;1peD;LBHk1eU`QGMbXRW-OMxZ_n%cv;aQ+< ze2x{b@(q)B$+8tQg1%H)FV_v4mJuqo$){vz##4#oEIKo5s`cWzqOXN=*wbXZ&kD|* zX{kvYt>BEF*1}&{7B+y^cq-3*v8*_4E;Ko&t$b-8`7n!iQj_hxc*n^yPB>;Qyi;;f zTVKXIjuEHy*9s?WGanHzG%3r?r>>Jes`Iy7dNXp;5#*Fv;7dWw>#*(tx^NmWewx~} z8C*_y^m*H%$!~hpCgj5N9M+QbA|A3;;LYdeM|^Hhg7UG`^d>)cD9Vk8Ru?Ry{Fjv9 zMGS3M`GS}ae4~8ibT@=gd(&R%8s*Q!u9u6=YZG?yP2a2EPyK#3lsMffjh(JGQhyHh zj=xEG0p$-;|L5PW-|q}f_}$V-cXz1W-PF&TM^k@E!cv<)xAi9U>y!P-w*%B4aEB(k z17qDy{Y8r`HGVI2iSwpTOO3-1ad!{%ziv1d0QLjGV$i{krq16@|94vY!o!sH+Uk7d z+*ynzW8-2^bjTa;;yZV+si}(@>x;1=Y^bC^$MEg;VvTi+_(@Wj7xt%)^q|fj>LgT4ubn5%I-0R;h7o!|J`)9~nJ-lytY4?F@F`mh)#-^4^2~An!fc8s$AOxYW=0_(J4t+kDSCBJ!3WybkaV_~*KG8haRD z7YOA%m>ObzDdnJRi&8^H5n{GaPYIO{PKEZQK#SPh_rbJKcqjYM9!L)rCDP%G>7ml= z(n2NE*f(TnhFciPf~RMM!qAc2L`E?Ei_U0cYNkVewos9s8O`*9ySDK~$bM(h4NqG^ zp&j*HU-7UfUVp4puAT8-E0}h?Gd^Puv}Spd)>H_svF?n{OY1Is;_VuE;Ww%(HxkN; zWa+v;R5;l1g?2?fK2OjW=@#@uL#k4(xIfWtq4~DrmS}h1X|lJQgFnQSwY(|O+SE+O zf}U8kMG7jOI|wJ3o0|(u0WF z-F9X8zTWlY&Ci*>R<`KB8amGSst+q)j~ zABT=ZFCP4F{o3_}|0w(RTDyL>`FGNe!(Iweug~Lz858zkh+cyaU)n8TpKj=XyaPK9 zV?bNK6M8T7ov}a3cTRJ&6a5)qiBswit>_Og?B^84`nklA!VCMk#R>6=_jOAmeVrk8 zUwC03c;J98UicM00B+TK`(Q)5kKfApXF}Kvz*N%Sc6c79I=tLJ$}}C)R4mk z{NJ;LGWbU~ji(GU&*mBAHmXKmdWW250oLHu*lOQC))_-jHa$$aD#|=#Ia`3Ou5$5( z0oGq(gPVe#ai5gK{2n=QDdLwN2^X7_Zq}FaIq$QKDXGzwBk_TTV{>o>n>X zRM77$N8a&(57xrdgickw4i1ukAm)JkjvI!4mo8$w8S^5cyKh>&_wXJ(i+FhN359uY z7FGhZD&tR&rfF&jLD4@QI!3oqh5@qszm+H>EAx9=9c1D+a@76NwpLkA3vY+A zkE(siqaEh9)xlQ(l1F9ju-cZanHaAQS73+dJ+akl2kWD^ddylAXD)u5w>&!YZftJE zX6s!NqeLA%&sy)%0pzBZeZW=?umCS^jx)Cb>_6xi&w;0leI|ZgjUskF6Md%{AAL(F z@d3Z3Z$q*9Bh$5Tcpm~@kzF!Bx61b|N(}}k&tsnw59>2L%1in3-L%U!d8pg=jZ*QN znt3|)An)t2gO4RQ2-lT$WiOnDJfa(P@|2<^Q z$~_k!2UiHpEpNbr(?|<2q_M<u|s zguXF8%g8}i`3lcoA^+IrtUvvfHW;(!(e$H%JZ5)eTYZDR$X?Xf0xukyGLNOeP$4lk z+M`x-q%ppui+HZ-7i&1{fC+gvhG(lC=9K3yvQm2-nEo;AIe4BX@Np&c&%v5up%Z#I zIO~i7UgE%n!#n~zEgYly|1s3FY>=aX4?X{SXwh5HBH*L(OU8h?6WTTjMT##-Qkxd$G;2Oq27O2S8mz(=Ej59NIveA~^QLA-1JGyPb{d_T{B-@x}b z&_4gQ>I2~8Db|KR1ISo-Z*ttm;4V=+WPS zk5$kWfe)Gc4E}92YrTO7ft6D*v75{w+-zVo-uY`v+|Azl<74gVQ^D&XHej*=MB zk$1Fy2Eo&NXw-q4+*Uy>D{t5JZ9N*E$_TO4@ujKd|&Nw}4nH*o<+=xP6G3`|X zKdH3W{xR+4@(p9%&XLO8NIT8fzZ1-AE>_LFA2pWorkz`nh3j9bhwd^b(hhX2{VCIq zs-&Ia)IF-N{44)Mo3nf1&x6mj!w&^sY76)V*lzy~wv)FlJ$nQ4H!_4O18$Hd-6;HN zEAze;zh#*IY~nreq_8>8o=v@6A2~!GzTM~|z@wUle{VbU{{VH!T%AA$SgUh3o_px6Q?e+D?SrsyAP0kpbJ&#NUZG%S(Dg9alXCS z_SwN59-9;~oabAME#7&0a$RdL#xED#kz$9;xz<|j;hh&fV@I{U*eCD&c8GKQooZ__ z&qMx=tfA*!U>j%NaSmR}JD!J9I>--PV=qqK$T?t#ILEiwSc`ccN<&Awly~X8yOeiw zp3FO*hcdR2_n^sM+)cjAv_t0HWG&91PWJr`zEfo{&XRZZjdOfkm9?1X4)#np7agP! z9i-6qI7JC;|L73K=n}=~6zGR;NsOGP=pI9Wbslx;=|@AQr(+L~VM}_@A1W9ez-Ao? zf^m6gPNy!V9)7WuF%`J6xbET_PaE$lq8TX@~Y9Mz@&aoLo1f z+NL<#k4_)Bhnz{zqQhWAMK4w5$$KeBZYqy*p5+-nmJ#^3TW5Kkq1EKJ1YYDl`l1>! zm3pV1s#mYzz83w#GuNZ5e@`sarNl?g^+>#yp8p(h#I+AU?KvBTParE%u8DIBb=2&I zPu+|T8boeFcddCHIDQL#mLsL7?UWLiRC*r%H|n9!&^7pD)Jy-yd~CT-V<&lTBQkCkdeYs<&|c*46i4JBv*+I$t}~Ex7aT%%x<8rU zX3ZgFV`QHN&m;4&j(p8gcpc{jUSzr3(Os|eD5beaXP8g^fdxlRc}=bzyZ~ER%=6&%-OSDH@X%-IAF{dLO+WTiAMu%I#c6l{$$mJx8|5_ZuQ`Nl!1V(1 zIJigASQhi$^^~W-YmPd~Fa6%_s0DwdpI5`<>0|xn#5K!$YIx>q_)6QSmYx@cF5L!S z|22B)Rm@dAveTcTH-8fPPXGUt^6+8JQS~9T9=hK^n{CK~tbt%J7KfO6N1;FKVVBak zE%ap~eR`Wdtf!uv$YsH`!#9oeuW<+e1@Gs-WL>>ly@T?c8#g#AgSO8mFMxju^!H`T z{+hWe;u(i;5%@F+hv zjnTk(+YWgCWcpp1e0DalyR1@Rkpmg54L%5+GO=k3mN8e0dA67_SV2fE(Z}2|v`+Z58$eYzJ#@XKY%DyLs7SZ#w=NzH)XMc7_D9E53GcNd=e_ zAMiI48lTdiIo(A+fP+*00Jf6-_;!9)9b|rpD`}t~3xF&4cKSgb3N$T%ET ze*peIqdn%cl`$iZg!n%C3LKp3E3jqyy7g3FS^q%)fXh1iS`S>gv^!=Z^z3qY_1k>U zxt@B`fPvM(g1;KN@{0T$^9g*c<`DYnbAc1as1|x5^UJ)c#tWc_uhPe}kP$f2#^c-m zBW0j9%eQ(|HSpwv{+AMP_#Iqdf5KnG7EM9yz28INk-l z;s~5g8$o2Va~Wgcr>+nEtt4L~|MXX6g@#WocX5>sU1FS`#dZ|)>K0&hIWlB5^vH)F zrIq&EQWz8LbT!DnzBcan05`x>%}4M6;JOjIQv+TNU&vg%Bx`r*KX}jxJT*SfoI&HN zW?&C!$DUHnKQo78I7T2tSKh$*FmKK*#)v-4o>agQ^f%dNIrXME86hJl_mCxD}e2~kaQRM&A&A?;xH{i)S=H^ml{?{m*&-h@=7|p@{g=)-= z$SXbJ50mNpC$x_&H*YFB;}^i)-QfJoz}-Ljhkt_0H=x@*!#*c-;7{l*zCX}c=D$X0 z68~F%n6{xw()N5{=M-#hHL#`UPo_^olddJF;lZxHLX)I?6ZK@ihdhhS?XQN10`tvB z=qvi-aE<`>wJaAJHx(Z80)2P@d*3wr@xJKA%>7h}FY!jbuK`CKzQ3>@Y7cDyOHDiQ zak0LE{KIZObId%33Jzc=O*pz~GkS%T*+@LoTI`^2GVj}&uMXy9J^#*JGvCB1K{IY- zu3q38UuhXIBXrMq8MH}rPaKlui^Vn?6x-(rA9KZ6Rc)-GP1@Za=7`gYcw~MI+>(<(FJE%In8eFE9bvCH?5Qo)qkdCJTGdoID2I-gia z#s_^yd1cOTK#t*E9p_4(yF4ES5ApIn_@sw#pih(dmtTY9h0vbgQy#g@M;Yjjn`;B> zzm|A==;bA}TTeaIRVT1bdz!<~+>U_WRQ5Bv4HyCr40QP+v_Ung_25u5g&h|0v?Rd)gyIz}6%--o?2V6VN@(PzI1j;%vK`q=|~-bcU}-n9cu)zF!`#c|RXAu!~B z85tS4U|%1-u8@D>I*aR5W$s9pF|fmYVJpyCQU_zyLc5tGfE{%F)G+iBxEU_6(*&#w z?EDt_aw0iSCTTQAxKmSml!eBVmj(k3!L`6H2)dLm1Typ1jIuN?DwKr{X?U;{gR6|hsrfqZIc z!aAJ*N( zaBblI4s6XR}%;_dqQ5J@2`AMVps8TCeYEB!1H$C&$RJ(#yqNJlNIj<9G0y{4{l@} z-+`vhjA;M7h-z-)KY+8=RzuSaZVNwc2aa0TItm<7XZ;O%p@BJ{EAc{J_7Fe@1TI%| zR55pz*wx%hXhfX(hn@&ru50~vY`bWjs@n?=G7jsY3GI7%&vn<>s`k&ja2B{smomlB zC+b-67h79>(Y><4#|6OUUT_wiK8pi7Vfxd&#iJS<7(e7h7k|{MAh1S1vgT4=U|=Zn zBFAvaYZLRT*5`mn%8sl;zCD9>PM}X8rrp`}i*{F^fKLHijeh5p?zYB{&PV$hbD%m=pwk~<-kX^_U_|y!7z-^0KA0!Q8(7MCg7(lc zYter);Sp!Q!1Z&cooMAfv~v%0e~31#>AUS!KIXQWwpzdkFTRcj;BWP%=Ku8={%JLI zu7PvoO&-0Vk-CBX)i?2;Hs&#htM23;_+0?aY`PTQiu||w4&aY}Xt>oTe>mfHCF3iy zbuR6K!}S-UN8bmGEP?+w(EbV9{{UD=4ydmN{`kH{>Ub6TI2YK3_N{skIIV~7K*P)K zL_T)_B)G&i*#$A&A^?53o4eF30v8Oc&d46#i4h_vl^i6ZxMi%h-NXhtub} zr0v)H*eTnuss~50{puFsC)i>#-{4#RmH$;)rOe$!*o7;X9gU$$kY2XGvIUN2$-BIyb4d*cS+(ULb zaS*|*D)y!2pT&pk%eBj~{RY!ssh53Sblq6+0e*S%zr;5Ik284?yKLI=LxYmGtrqw; zFsJ;`CnNX46K3xw-fbPaQBUvzIoX-b_{n;5?7J&Cdre$~e8t+&q9Ct_S^LoD@gkH`w+A$jk#dcJO=)e3S#*uU>)eclr%x&luH= zpJ>>%@U+Do$f4MNWsg0{xhnT=LBt#S-3}}C`z==J=@nLJ$$l&J+)*p^M{K>%@32EJ zJZHJG-+FFLVl4wsp&cOB$?p`!{K%|+r`Yxr>*RB=fx0CTAF)n8cL;ihZKrhEP& z!PKSJLd(R(6*y0`|IE|lhymGPVp1q`cF><~#Z$8_iEG<8&rb}$e0Lf#K2};V&2q{+ z23x`O@rQyL^Q?HrkCL%0-Nv62?{=CMPfPgX>GXSisoI zFs=c{HN9(GI~iAW!WcH@2hr^Y+d&yKFSh4ApXEL?4mvmvyQ$aG8=*7fw-Haa+>%(Q zh1t@l7e98NsU$9D17$W4Z&S%Q`-shahw|u^dp05qoGfeYQ{<;lepj*Aea34$OJokl z5r^YNrvG=}&D-_ucQ1ZKdwjP+=8o?w|A+6a55N7c;se_A&>rza<28!7nb@i8kdS59{Dmh@7~zUuz%~9u+{Cd$^)J4@l0aCoOiLgK%+-ON7TFc0Js+WlE&Vq z-$E~q0w)QdcBrFzD|~z=u~XO++_$)=tniBz_+g6BlWfNJbO^xG@_hChs2NWaUlX|Jc> z$Wdm$$LYZ8c#r$E4;{FSv3{3+_2z$12ad4&3rscASL&7A(c~g$TxJ80ih8D6ZLJrd z8?T-DpSqeDgz~=M!U!=dy7~jF?JxZ=jyF%eS9y;SOGBT^kz_}nucC1Y0kFtVNKAS;p4Ozs!r7g@hi zwMyb3Df2$|+E)6+nXeUFnH@#-pk60LRULg=a^c;AZ6mmCLfeuS|+#y8l~TKCX* z<`8?Ds@?=_y~90z18_iB*CC^Vv#Y?_N_+?Y4QAezA6bw(lY3fH?--8dS0i^4KcMhE z$Tus=CxxxmB_E5frao!o)SO6NGAH13I&)Hv-r6F#&Go4=*zCQOS%AIX|4&P;!7kqI zX>7B{h|9!Q2OO!k55>od{QOUJ&{edB&M^EKI?wIUwcC-2TCw%rVCqz(_@DZ#!Sg%m zXMb>>IY%#udRL*3aJV-D3)ptc_VWB)#t56~zwI~lO8Ppy2HzFeB0pCOUcSve{(^eo zVF719`m6L?{AKg#H*uzV9{q0l!i=5n_8Gh~=GDX~nLRC9knPLKnI*c<>SfIDt*7c$ zbwe2Q7sc-C(Ld@%AJMhC{TDFNj-KDnn%}|LX+OhugHOxqK^yac^95oD#`eQ_w=&;; z=C*ZHa(-pLYruC8c1|nNKdk}8ea%B}dI+82J^D{QXL0!2!7Kbc8vhNk zkh;2uquTm@i}TBRFduKxCiufqKm9dmKK>n*Wgq}m0 zVeQPZ*U@XhWo$AsXS%B0qwBGS)TA0dr6t}Qe}wF{mi!+4l6)QDxA=}jxq}@ger;e! zr3romH)ZdccxOlK1J$o0Ye3^$KjoTv^K$l5w(e74DdJUr=C$lQ^I9%=yP5cd2=n?V z^Uipc@lV4ZO^zM&sM?svVGqH>8Mgr6rq5!|@Y#AEN|sqgd5_#*3hqotzj%pnI9mUV zJ%s;V2@PVr)!Ee5ZE+I6eO>*iW?Ys-3x;t&e;MDujE@0YDY+5h-P+H!^l2G&EAU$U za1LjAzUC%uUCZ!qfhWb_bi-Zf7FPm831EnF;HTiXZU?{dL+D`~KI~%>cU4cHTN%6b z#f<%@j3NKT{up|J;Kyy;-$uC+%<(Idho16R({J!w#%~y7Fkik0ZWQ4?2|T_BP*(PZeETXu9xkml(NWLFnI=!1;YidW4@pS~-t@;aJt)h1)IA zUa_Z2yU>jKUm&NfH@L0J7zg&|FnzD=$GG={UrvC>U@KS&f0(xcnF0G<<&#O={s9cg z*c*R`2mbBK{L}Yg;I@o=7jEle;C3}W5zlV(T&-a~x_^rTi4#Dqb^tT)EJ_7u%T7zB#P44zCzJBr; zrGejR=i>Ld^%Q<5zyB7$rTrxTrv1uCy7>1G@Y}x`JO;nZju`yb-mj3S9-;3?lKA}t zx($5;R$0FSek&LJ7Q6volz#O4xTPOT;+6|cBKPVsQ@~lC3I1zvHvs<*aK<-p)@F>^ z4BkSw%J|=v@G9ZoBB!Un4~+eH{%!hUXfZrn=t%iQ#*6Fk(PHpgXz_RX_k!OOcM6Q< z+t6Zo$FRwgn;!cwcmxg!eydT2e^VcFgs)X-HM|-48V$}hz|)0ZwSwb<-)XYnbQk}w z%QHA6;~{*-;5Xys{FMi|8AUk3cnrrb+nQ=gEkJvU2yyq|5m_GW#hN_odF(#$EWby@NeXVE`Is{ z2mUSbReJe%@OwcQe*d5NH~XsokNg{-)BhLvw@&|-e;fR6P2#s|5V%A>Z|K5rc*ytk zS>fM;-=6Q__pl$}_pmPf?#B6~d@lG6|Nfuw+wkv7aJvh?g_oSfZ{2V|e0vIX=u`UE zh2NFncPqXx;otDc@8S2q?e}-^d)N=~dsr8KJ3qkhF8=-B@caMf?oGg>s?G-fJ9FpW znS`+DWmBmgm?Q!s+Yka+?L;#uYSmVQZNF9sH^ZWk&@8yLUpsY@ut?SRDq3qTEd-bT zyL|&ht=6<=z@@eJ6R?YIZ6nydv;qbQ$^ZABJ2ROqptkn=KhK}%x!laX=brPP_q^xb z&pB!Nt>*WW?)*+}cjfnh`7LYF2b15Ek>Bfk=Xa9%eKPsYo_Ve<=0|2{bn{aF&ehFJ z)4I9;b(g1S=68<#?mNFdO20*yLdLoCJ0rt$=XZbk-DiG_{4U6u-^lMiHu=nvu8!eF zW;eoHTan8%kM`xQGY=`=n#|+g{6}JBv%$+uWKm!JTx4l@=>5ol(a%4GF2W^tE&6$Q zC$c#o{Xz8esb6&M1v$%GR6^4oll_~}mkoF4S^Jf)+D zFF;3c-j0rr9*5pwi>!WX6aKB!WDg8qQojkk>{G}QWWjoY_m7nM1^xR4ezo7B7hsQ> zzfy8MT#EdbaY}GctU;GK?nPE(|2o(*=-e53@IQ{i75;MY0Uon5l)wAPBG&7yWggzf zy;*RI9K4NsZeK#qAUfu4#I4Xx#jdd%mta?M?O+`qwvN&RpZE!RPxLdfiI@cP6PqJ3 z#p4SDPjcto(9XWJJqUc*4av3G+|9s0`v`Ul^IHCJMPx? zbFlsVf5V2`?a^7M$hrcqUFZ-uA)8<1`HT1!umy%(PJY@ZWC}V^9x;ak@cuv8tCG*P z{`(R;K(8l8F>^QHFU59e?7ZlBJ1@eX{Dr2I*OY9&SWmW=0|)T!6kUejqOVI{=#V$b z%R*mI?$MKe{?3+pS(PD{0Uq!Pp8qm%l#|07L4P}w7{+m~SC!7g8Y28JcM#_VZge4R zLST6lJHHwjfqCf1sUKSO;sd%}_UHOve4_tLoMb6+Z)7DhHfd1y2Yh$O3o;JC{3hpa zGp7^iC9{F`adPWS=x051IDZB91$OA;{H^nMwhVc3Lw*5Wa+hc4^WFMG_;niwGZAvu#_{inoun7=#D!A?mM0}{Kt zgR#K3C_bI1zm0zW1Z6Ae?{8?Ate@@BVq-HfqsKoE{VA9a0rPtBAu#i|kH52J-c)6h zcfQGY#O3A@3tc}_PfSGDBZoRU=M3U>#0Kv?%3NEBp7B9qOCNOO%H~M$*9<)YXF%X2 z=X%%=RNbsk08Xyq;P?AK6+Ilk2zhKz?7=q|g|9&;`SY2Vd+;$5&wKnA#74nKb1{Cl zD%v@~vjdC~?LN+X{HNjJ5{vsSK1+Ov3pLHTb74jD&Mw(EO%H$nYaX>{oQeKRuDI>P zk8u9$5*IO&CF}zw?e8QX^ZWRZ<}LQ9IOqmwbmNDhnP{S6b$1{7vX!vztAwzH5KyG>$|jY~s3~yg$wwZM+s8oOtVo z29J|}96$Ll8J~q7XWm)xzfY9OZ_cbOOAfKopOKkQo)DU(eOVL8Ja`hD_XAJB%gFKE za2d88@20Qxw2rze&uL11RcxB%&K>Z|Uumru{PaHO3n%un1`!y~g0Aamo2%ff#LGWU z`=9f8^EzXZ`3s$@SR3 zJ0GWiwExt)uQ*?L>XLB&6K?y&i<7f&#c%fic$^{9HoD5rH6G{uaqy8(lMnGL&3cu- z7u-pk%-Nm4qODh^sy0Z(Z|O*%!qpXSz8b;@w+cU{9@AG^@R*N7*$u9pW5=H?-tU zpCm5(RrkzevC|~ZyN3C^^a$@(Y2i2joAcb@U!B9%+MVQngEQ-X!nudg>T;d)PddC(G#v_j{fbp?00>K z7Si`~ALiNO-S63=@AWvpxq~%6+^^@INAA4S_Occz<*}~koyPq)2`%K8yY6BA4r_WE zH0R}nCuDNJhIfYCdFN};wiq$aBjcTq`^)RJ&=9!?JX`W(+Lj@s*o$zTCzQ|qqrA(L zJMRLcSPNvZuOjaP+<)Grg~-{oer|ZS4C5NUL)P+mWQ~urcdZs0DtEtUOTi9ewufcy zkSA2Yy@L3LzQgNOnDlRlcZ;6#vgU~XrM%8w_HFa8v}6O-p_){r>y+7T+JBlL}OPiXUHp3pbg zJ9;Z?nhShBXNZp&@MW6bvO%+d-a=fPy-l`0swJZN>@(A#h4;3&`^{)7uAb-Ie!QpS zz9C(*e~Q&OMC-VF!Eq~3qun9I(WNc^Hu6+Vn|>3k_&jT>%2-q7VNKN!Jv!^Dh+DI! z$|HNIN$gb5jZ<5G#+3MKXu{9X<$kAGCVNPzw%h(reJa+PDZj=4b@s;jN1tclO2xV@ zAN5n7_W$+w#K-M8d%qNcS964xTi=+v?w)1ZGiABY6kH95+2bps*~_=_&2(f;N=w7r zEwQl>>&I9FhJHDoahu@*PH*Cos3v&~`Xh{4OP<2t8*%x2fo5;u`L^}y*}bdPUS{(g zqm8;FDvyEoJ@k>YVajB0dD+WO`s+=@SIXZfZI``j0zxNtSIVnDLX5w~r`h8kQT58c zKR?H{}`L=djl4GIrD%wnI zui>#r8(wQ~O5P7s@9&9vtcn(oWf*}is{C}y2dT47x9*|-ioNn~xLbBVzjMmwd>b;P zE%0DWXCI!!dP4fJjeH8Tv0L`QVPCfZamzA+*7ueonUIgGF>|6E406c`;8FE#8ty zBW4}ngTpPuw|CZP5nW&vT%`9~nQLptyaaPW#?)TABa;{M^p@dUJ0*W5QIsMNBFeno zek@T4y%s-5*~U(XcW-DWeQxhe6g7617T^9jx>0L5n$k+=Z@bPio5!e}ll?84eWuK_ z@}r3&-_g>Af3_`i7kkE0Zs`mAEOXyJRqj9waJqDF7no+cowst@d5d=5DlLBa2KMNC zPJO@alRvY}ofl-jSNqc#M!C!(dxYsD_ob8Em(J2lw)}(j1~-J~AJ9r$i@s+0*Q&kl z!UuLSCrsu+)_$8az1Fpq@M{PY8D%^go^qvXyH}#|=IGe8c`M*#&D<|M&R#=aM{qiFhfgnBPn>B1GX4<&Jkhue0Yg)%xt-EwS@R+;G?Ym{n?t<5}9}7+1ddxC> z$3s)p{a9$~Rt0w=de76AS$-@OZ11wnLq|gs+PmO+1&(h7>t*lxf!nueZr`q`Kcy}5uUsvhg@!+HBA!*w&%1@-*w;b?mkIj?4$C!uAYmt4MAK{tQOF1=`@iu)@ z`!U)7k+FnE)8&Gha_z_5a&6y)_PU_;u4Kt~HEZ@Ll^d1Z&zRq3u(y%SQR)xEi|(U- z=0>{yC*a}iJ4pT(dk@0H1MqOk-^!EuEpstVQ?Kfe_@KXDTI%?O@yogqTANGLJC?Ra zp^fI~jdHivMynlTv5&Dm;pUcU2ZeSlBl@D?FEpj_gwPOl&=m^$xH93_ws^B6>vd2>`6A|^Xw7&MfM6EZy?9WXDcJG?ZZZhb+qsm)5(JmNS}So z9b}2fGLd7U!mVAUDaONSS{N#(?TOpFTFJY^Zn-@)c{^}HOTgszscF845L7FHb( zP4+>yX4*0F2|_v3QgF4tQC3!-hay6 zS2%BqUdZ197w|J54CWL45#me<^K~|`45kGpG6+e?PtetS`IqMQ~T^4zEjXFk=JI2fnG16{e7*6Q{ijFZSJTOx+#x!x0nHlFtO3m$(5w%+ zH-ZC~76$4y+PAX(lDVODowjcxTaUI1&ufBi(>PXi zI}uz1tKfSe-9it*-%Gb`bASiBLXVz;9z7X7dLnvs@eCbW^(mQ^o?G@v!zVPNx19mb zBG64FgX6D@o-^=y+t285(WIvd+`&^j%KaX#+3#6^SFbTgFoG^AeW2ZBAI%B6Zc3$w~lkrlxG@|Tp zD75SHTHz1OyKZC$I28I2+Gs?F@||#VJ>%07@I5`+*p>eMci~I_KF+lbgX28D?mfc! zl7TpnH=Y{jZSes(U##@V&;8%xJTkT~&Lcm6Tbvg&_qL*swV>yZMP9BqwE?uQ`Vy}l zfOqv=`;?OX@_mNZH*ZDX7MTRCK=0@v9@jQ8wR_#VYE*m7t5TU)k(_y@-nZST+8XdY za)ZKWzqbB!G#p`n!dx1TJo6sn^OGmR=O^ACpYgPAv*rk_C2ghaPlJ|xuMA)~xEsb;JkZLn>@kx1tOXDAOVanmd>bZ8||1D3@ zUg?W-?cOxbvpxW^MH59$nti|Fu5U1mEAL$_HcMoLUYx?-*xn8A?`FSDcz%0#nx7ZJ z%lr7Ds7Kj}qT{t1THGFs4YREsJxycGeF=MYZf=K1HKH@1J7CW%xg)yaM9OUTA;YNu8FeF|G;)_lg|M`lslh>xWV@zb$S1YS^vd z$)tY|rp&=`pm0W?75`JX^L4vzq#~{zo#}V{2G>^h_2|Xz-3irq`W}S3_T#bjzP7d za1hVf|8LOd+pcMV9s;HJO(52{?uXWT{Omq1#84 zU$up?{R>K=6U#V-4YOMLTS98=3%7Qr`|)AuwKFua>L~W((NMwNom&bDkD{A&iY?JP zO6iS{irwgzk5+`HZa*fvF*Jw1E_yihF@e9aOGKX+e^N**JT7_=cJ>R{%;>`H$J2Xe zUzv#dj$yY4>^q7)?17D5Tuy!1;(urfDBak%BOr4w5six7hh8XlpVG%T^Mfu3l(cmrhY{nh{#!l(4eP&((^QrURgK}m-{P+0c*sr_% zn7#CIa5!D-xT~e}9qHZfTsb@lzdIy-u(cs0#0JreUVtBBKdnpUnSQ}*+e9nbdCjy9shXS^En8o=foA$StMmuufgPRGvk>DW^;22v;Rbplr> zFm(zp6)hFZU2Gq4JDKNGeEe?24~8Ctu8i(WSzo6bJN#R&Z^is@XhJ)_ANpK8>v$+| z_pvR3LTpi=^0Smeci7p`9X=LC*G(T2{8)x z-3b25MF*JES$jxqpfqoONag|k7hATwv_$%mdQ#*;y1q)+re*$!Er8EJWQ2lUXgj!7 zes^IfvrjR8hY@PLS0##kC$P)A(&K$cS|(-r811uenlUP7+~pqHmE}#q=~<@fefXY~ z&+snwz8_yy^-))%xCuXq@EVgj2p=;2ed--^jjY+a_yg3@2Nu;=(^$%Q_BiHu(|&O6 zVfmewmCN3){oMCsENLfELOXr-bH@)WYX`*!HT3!L3Fer@0qh^`8ivntgrZsec0&KI zjEgWQD3cfQxN=T=3^{kEtaEc|rl|;+FwdANU9NE}rW3C-4&l@gt=7<;FJkVVmmU z&2YymFK1B@Z@IYG;rzTrCnXM6CA<@PQ9x0AspGE>G%^+o8H^=IOfK52QOXBkI>aa4HI zn(1R!N5ek>KN{Z~ABut>WV`SwyJ`n9I(#tk7V*J&z}0}*kHGUT`2Rh*{QqQijr24dM-R-6M?%NC;9lZb4)G0F|A7{RiVr*n*OIZ^RB$;tC=MnX~w&eJAV#u8v`UsRdsjc%CG9CRW^(@$Frfj#+L{ z&+ffi`9^B`;8{J>szW{&UALg$7jH$cXAB4Pj{&nQN3=_2&VcIyzAOBWUi^+(AC}7> z@D~=Nk0?JDcu+oXpYmTR{?^COy}ipZ!HwYB)kzOCb_4v}(6=f0SKk|{9q>JsQ*%p>$L*Orn%DHWW4;FMW9vwaR{4P=8wBr8-gM~rV2_ly8@HqH&C;xo z7g09r2VW;~2l-y~z?|=!?TtRu{;_XFMwU9jWaV?oxVbcXF}l?-nR_ahD&wMLXoUVV zCh@JrH0Z~Jvvk=5z+oC<^D?&7fecaOqUwo91Wvb45mWjh-!XrTOgWJaZkufvxHxIk zMJ8cy{LwNaZe7aWiF7)%M)90yecFi36S$rABQ@b0TfR{8H1lGBEXa)$yEGenq7`0X zH8=f$SfeV}lt;Bsl}eT;J-ov5|q&o(g+_BPnT-fb^%F38?}Vpq2o-TpZC zO=}3A*c#n-9p@)-MlbgEz}$;L>4rJwl{^G=>~6a=1wY;1?f3*=k$h_(^mDrDwf4m{ zYpF?YL3_8v`6aHuMU_)I1Af`Z*FICqrKB7=2FUGAw)eY`A@xs}`hC_W zat#*llQQHQ$T$1>-TO^$9U=7GY}=}i2sU#Q{BJ$7Ay1Q-zP;og?2QHTx0_>-r6KLE zWaF3djeHqAEC2g|u>#*-*Y<|C;H8Q$sIiDAq>XfrK~`rUOpXwHBRA+%G7pJ?8qyZ$ z@%g%lF(C(p$EEQ~-Ud91oDA?PIU6Q=5O^i$BCv(O9p)!|->-5vh|6blH>6xn{)Lpy zd>8V|cWJ!l=5VNQz-uOlqhB5JU8asLst)jq???O@deL(lel={}gV5q5GB1b$Q{E6c zg}wmKc6AHVU@5C#CeKGv4t`%u+|~Cea-sZ$ey;CCBIQFbDHr|8m)4(rq0Lp~LS0Lq z=kuKJ6A_z2?;jV*$QEK+tX=$}hjCJIlEk?g*(dS3jO$XX}4&LSRgPwu1FVc+- z*6Gg4==a=ts0nZFGw0O!O_q7V_~ma$&pyfc<-_AM<0pTgZ2aV1?)c?=7aAhp4KjY} zo1F3MSBLs8)3&NZ_*W2~RgSHs@|C8gY5tVCSgsCl{?KWL|6;FM&1N4SGA68Swb}h~ zH3j5{qm1aYBS{KFpB-4^jq-(W#<0~d`+g%gYdJ# z`9Rvf_~(1X0|wRQ(Ju$&EWUFd5P3Q~mPUpzXg?Up1KJGRM2-#M1Hp{Fax7P_%DhrC zqhEQw7@MRxdTQUt#WJ7tKlg7-{4cp}j8WyD`Tc-$@3@VNiwAtmekaZv(_`O7U)Pvk zd$cLGY?eQau@!9p)#sTz{~sOrOi%W&Kex&Ssuweg?K`*iui zSF$wp_Wa;JaPt2V--_S$&f$FK3;oAVe1LE3w^KBE@zZ=es6Hh6PsX2SKfh}PIwa?e zM#aaQ&J{7*#SbBRj%)8lZgBPQ=pU3!_D9uw(ZwCfakyIi7ZG&*xR)HsbSxqD2PJ#_ z^HXlQL+NsDJ))EAZKIxcb+8R$4DPdY`R`xx)p5RXVNa-VR*%5r7|~rW zT&Z1_xmsZAcI_7BSLt-&)6T{Y>?RlR^h9yF(iK$u;(Jr=YB$L@=yj(_zwI;kv7Z?6 zBC!X|)NXXDZpXYjgO86n&FrrimA2`pl<`MXQbzik#>YQe1-2$&6aSlk{<8`;(Rp2b z{oTFCM`HWri{CDk5B{l>T)aQH?NOKVMQBYf9Bv!v4ryF!XQk_!jlOQm7&`tY#ky&)cE{k94Ei;BHmeig0FFfMzc0@;ZsDn48`%sp&y9<&Cbs=Gd4Z)FyhEK<;p2{rPqEF#@d$i~gZT7-S^4u^+H2aA_EnB^X@fRh-Dgtzy__+d_7yc9 z5r2x56Z^%Dn?Qr<+)KraWS**dqX};M*a2@Vi;5TzlNj}FDep<;+QrI$JNs01ksGdo zfBebVUhLf`xU@&?@ah?#zXra^6&E|i#c$gT(aG!$TPa@-9?5UTH%m++t3xD+Ez=*5 z$Vi915iK(gT_}Av8+(@bV_f*AmD-rmr)^&!=cgawy2Pu*B}g&xg&g z{CoJ5&J^C5=EM29_4JQ1=-W6$VgcjEnI!t8U5aiUqv9<3|mSm!_b5jXV*r5==g)!OQSVs_GovF_p*KPyu-{( zzc2J~sx9>B-nK*we)qx@{BWt zkKI0(E>q{6ir1y_bDr?LG{5`Z$>=hK?Mi&agI~*CL(|BZJqmAnw28RiWo0VA1YFsj zd%d=q&z^q5gYd;l&WVXnSm{&ob1V}d4L;5gx{2fr*_|KLgwXLumG?Nn9HpPJzq+tK;ki9u%i7P$_12DKreJr$Recz_OXQE_>4mlBi2 zKZX9>^|%k-XAH=nb;sZb19BAAbL}ZRV34=lH!nL|C$TlP=I?G}B>2r2nzPqEGR%H3 zSH}?@Mf7H|C5ZorkN+{|F=)l|8LR%K>v26|I*iv2Oc??mMK2r+4{Bx z(A#==RJ)4fIl}M0!QLEO@$Gu?8w?sR#9mW*QEjzW(|V!*0Xn_-bQyQ0*QaR+nUmJf zuo2xH_i}O|`J0#+yb9VDn<|sT5|1Q`8p(GrPv^A6HI>t%aNU+U^Su5)LtAa>od29W zYDEi?d*55yihSwa(N^Tn!D*}Q3-2v$wXGYRwjyi)?`SKs=s!nWZD;nStv0pB%bmv= z+KONKj%W)T%;j6;{HJXvd$o$`51hBt6+fx7(D7t_RG)P&>Rseh>YdNPmja*gF=r_o z3KDn8)O`bSKWubjzVMtTk)4*UnFS&jY~PL%@TDAmMnm?($5h?%8_{P*3ttG4qZ*n3 z3=bGS;cEl+Lo$!nlUT`r~H<+m!h|XHn(W@ZN7lWGxiGC638y$ zYhqW(x;?pvkEA${buaKoPJ*ZS;sG?M+SV3{T89>He$y?;cFr@iFx9m;NrQ& zP6b~|A2as?CvxUL!nd@;eQ8VE(aX0qPdZ<3BD9s&2}B=ob12}eFNqEu`8)Z#0-uuU zl+Ce;Q|F5;7G5s4iO67hC%!CKCX3DoA0;;s`L1}h_7~tGH?TbYJ6@g64Lnu*UGHK0 zulH+z={sou`S-B>SNpYp{oA+S=DdgP@9Ee6!nbc<+wvZ^|Kon`Uzu)yP@N1~^eJ1X zCHj>3*wh-r7U4taW3?%Al{Ei=HAXJKDC*@GIdaqG7a{e|Ym8O4R&n$xn>DMV>xU-q zcv8>Qe?v;s=SQ)D|ae zAusShX!u0G9H2ufxFTm}Va{EP==Nu8JA9^!d+!>Fe+wSR zISm>9CcJHMT(zC<%JKeqikybNWeWbu%~tJMf}=-Up3L&Mvv>T>ZE)P9@1AAQ#o6FC;Hc^)*iZg-b0BZa@V5dD7iNJGDSm57mH_Xm|xLGU%x_h z%Rii^q8n5`%Z{S2k+*W1o6qv_4dCcGmCw@h$)7n*J1#g$K1-kaTz}~N51cffta5-a zzN|kSi6ZFWWP6N+#b=i|4zJC|##F2+#~;++j|1LMy{CsJF@yMx4zkd-fswZwc`*Nf z+0#SK5A9=b7sF;8TzkApWIy)3iCypF=8E@pPY)NKtKSZu+*~cOnfvVNq2SUk?iW+< zLw_%^Waq;oN zu=!t}P~r3Vq)c+aFH`nk+P76;4Z&A~|0YzJ51(xtB6TMwQ}+gZJW^j1dp<@FqepB; z2TZB_LRGhGdj}lx^`yUdVW}vyYac-$6j&-;SY*5vERosa^^-XZD-y7q^L?VbWMOsd z)1_a$CqJqYJCM9Wd_a!$Me(2b9^pO0?^$mj(2F;)2Z#Aj>4R!J?_*_xi*Pghm)-h^ zFN+VxN70;%kE!9jbHT@Ck3~Hai(u>qwOb|6RdSISM>j4d^b1VLKINy)!YBQ6;d`Du z1M)=MB{#oId^RESnaLeJmbQJ%LWOCa4I9|CcY#6dVAj`58DfBC()V<%ZX0#j7jsSmZR_^F_t0_n-A;XueAE>b;-)4rLY(#;eg2OzO`1i~I9T*`va~!VI|k zRLmE>0)JPt*fFeWlzAZZ?~a!v@lBU*z9BN$g0At?`b6Fd9HGK{gjU!KgLi5Ftnh3* z?sH|Q#D%3kHEtOij1${;>*{#GI2M`!PgeEBsne||gQEmKQF6?)`#gy*A@z$tw&U!) zBaC$yea-66#86oGH(utn?0Ko#)jO4Z5SeYA!Q5R_?8o1YLSO#nKE;3iuKKiI zY+dP7(a}@)scl)`KD8~SPknf}^aI>!%mo!Qb8~O>=lhq-E%SEzz<(@9EvRxCKJ|`# z%^}fa^qT(tumY?RU5gG0e~|UY!XNPQMjf^83Omt{tWi0zZL9e96!RDRen7lk);mBy zBUFyW|C~JDZY)Uqu~`H0Z^YYOd@Ro5gZX%`dKO;ok;g2yxh3mFhUKn1 z#7E8=sPwvvudz<#gy7F!S0w91Sa(RSh{(Iw((6Q6b0d9}=b1IAYJJE%+51J|DDt5! z-r$Qa-n1*A^Fh~w3C+tI1=Sz?4cT>y_#D!Gzj9#T;ZHezmvZ=Au7;-_cWEp>N7-n_ zyM8FShRVL$#M)EYo5+lQYXI#c59AEN{`PV%zm;`IB2y$LDSS%k(V>6to@g#ToN`Yz z){($7$kS--KIxul`&)pOu^31F)ScOzj65K*hx6P$(#VVMZCCi}iIeV;Mt$zOS>eBp zCranDFPd3=gW5}NC;OtA&8KDeY*THP(|)|S-3Jv98*%#fF5nXzKt=9F#c=E zacPT$kL=>_<{o?LKChf#VgEkmmAnh`Un2I(om$esk0<^^b8{qlII9~CfWb0KKGLdm zA)`X>*4h+#I^RX7s_#kXqsdy)EWZ<-N?=Ea`ZzR<92TD;KD9w({?Sh;zNh$RWJrG; zu^(F|PvV%1@3ucuCc8f%ZRN>+S(fYx=$E*8Bl+u_MW^vP&1($He}tT$CiZVkdA1DS z*X^twLm5ALIFw&=SnKHC*+mYJ&UyuWeOe&gbU4D=co%-tSS-4qV-lY>0%hC>_@rJjDG5*W|7)8e#fJdztj}=k&TpR?42X}V6 zIQ;E9#9{o#cL3kx?*cv-hwmMHmG1z)?*Lz)xxzPDUFhxf9LHR(_Sm#v-|4mPDN5&} z?OGW&_A32wnMN$31bQ}72DCiMGRU>QuSF}3sb?v88yPmX074ebYt(wxht{b078)jnn_ARfdY0;EyW7uE&$<1~yc?az zx~p9tu{HGh==-A=xczS4>-Kxhdbi(e_p5%p{lw1jfj9bUH5|phN2XPrp(SI)Z1xqo zXUy)4rteMZyWx?uXPp#&0C3W}u%g0gURV)cvyZ)C_xB{5QjyZx;jm@S4kwA{ID4t* zu=rhl-J#Ra^B6DLyWNs{n^Ico=;7?!d*q;$DK$O#FGr8yIr}-cc&zpN;ep>}f9I{; z_L|27mQmQ<8p98|tLZp?!{dovMXcQ&#rPEAOQQ`B{!V;q4&^Kpze(O^C7WHj6`2-l zD)ek=nk7Dm%y<>4e2Ke#TFBx068;}U3x@7degI_~C;HiaG9OBTfn3^S!k@+Go7UGp z-G3g*UK*Tt>2Z*0%8qUB=Nr-`-##HW$Dn#=h%>2Jr$HR3l0EZ2rH2YXFZQG%b~7@F zHN_fxQ@3-UPL6MTm;Oy3`ISD_&vM~gkaf7WcgX39M_J>$F@LQ7s86j$v6?vNcvJ=S z!<9FR9G%NF=l+kAzcYlr;e(o0FaqCpK0YPjB?kbz3?IhxJ&A3*lKweAe$ze7y^s&}-k1yc$&kT|GjXsM;^p!Pey49t9_QvOQvr z&UomqEh+8FyY0tBkF`$Ci4|<~5{md)smB0Cp{Zg`R6-O2C2~BN3 zCVQh0`#LT7XuilOa^AFOtKk+E}gd6is{n1A70}Uwrlz<;D@Z+ps zkjBwGbV_(pE?!!m>&44RgS~O_$AK%=rbe6C=+64}w7H>2+U~e3U-oj)>>DJWzw!hgoT0O#Tp zVDCj}%t-U{xAjBHTE@_n&qGUJWS{e|dqTzEbJsRD`oTwff1!N(b{qXYH|4QDbC%Yc ze;Pcxfb+V)%UM_tXifub@;1_U_NB8AK5ojm+qdO$4$nO1131F|w9fH&S(l8#H$}c& z(|&T?c6En0HZkVtfcG2NHgUhIf8$8%eaS0zcHCzilbkYD=04f4H)1$LpaFbw;y+Bw z4B{a?YZ{`d`dWsl_0Wka&|vKYy3=sG#JK~mKWzl(32ZF0uh=;ZnjJx#BlL5bx938; z#t`ZxhYg>jz-+C}_+R4VRsHBx>?u1!-|_?@K15m1$e3_$OqoYN51-O` zKNKF|ll@lc7d|MVSxwhJL_RK<)0~~Kk?YlQYF;@_jAa3|nQmX7VtA}Cz$-Xc z!7ktsKk9S)T#&6#^keApU+X)3_2hkuvp9Q^H}Q`Wi3_@^av4L%rp_$mCv-x59hA5LR| z7T)oIe1DMf%i0aOe$Ei`L+prF|7mJ(F6G}x2e7?IyoqhdY|-D-Hm$O?gpP%-#+hC_ zz`n;@p5u3xt_H}YZ2SV+kvS&11!HjXa)ReUe0qbOZ2;VQq8Oq%r%6k`aRB(4vjY1% z|CzSwKV3g3g?;vA)h;=%0qmAxRzMrx8lbP)lq}o5Ss@H+}X}-AFuhx~9K~-t*?0y7k#^J@Mj9&9YwhSl1*q$9YDx z&aT$v3=ONhTTga8qt4c_kz7{dB3Y|_)JjYcA3OJ%^1IX0;n&(T0o|nCkDESg&5_|2 zaN1P|eB6iIix2qpODrvMNl3G9dP{fSdP~Yo&~*?K`0I{_U=Nz{BI3Zh{}b)@3g|pyrT$_dRYNP~2p1>8RkzV;|e@lW`&! z23`p6@adk67uttPjKqBL`7>s$$w+Q^JYrw=ifP}5&s=yCd{B6#(2(dM;%i9rzX#p< zkgs*TR)RmF2|rlWqipNj@g^!6Vrd z1)YJMXU?av<3l(L5x&p_EYNX=&&a%m7K}tO^H#lc={a}a5|j6a^R6y)hUCm!twHZ! zUuNFYZ*ZH>{JVC5-}|I}acRG=ty7%A%`TZYy><`%W}alr%9;rL`7)P1lG~*}gq&&t z2j}cYCW@?a=dr};-q5fkg6uoseT4XXUbfyuVHxXZR8F#5mqGpSN*2?$+FwAQgdR76 z_9vBV`s7CR4dB@FBgQ7cOb9R*$ms&)^hSY2Cy(>)u25iW*OmY}qd~qfyxlV4@6E_I z|By^R`R(pIcmEEjnKAMcYYU1WSKFXRN1jMTeJ98%RB=C%&-lo?648{$IgDJrTlPJ6 zahcebVy_CZT~dcE7Rqa6A+of1y_wQaGLf zj(yf3Fklu@9qxaH;~-pEnbP2 zw&SyP$Ihkw$c6+lF@1h{H~Jy_${?G^nx^>N)!%ou`1I(t-7+qEs@-EXFc&y?CBa^8 zLNmQ{VbtLaoo93vHD?BtE6SD=9v3db#_1Q=%kVewpr_|RmQM+Pk~O%(k0e*y^&zCx z{x;N;|T$_#8%1KZTV zHZ^!p?DdNV^NYRpz9)97U!T%UY+}Ag4;5g`!ylEd6J*Vp5Bs(1n9LjE8$Q7!ZJRo6 zBnrz+c%(@m4dju59b;g}80gGCbY>s4=Y#fq(4MSW@=O2GlO{XF{lzXwZk+5XHQ=!Z z>t1DlsG;QLte2dILiTF9mi_n|*<HRyk-Q;f`?+COU)}x1xC!(((4;woo7VBIb@YzwYjOyJh~z84<5JYZ>-5 zq@fA$M(WW+zT-0X9V3m`tixTyI|^D(Brb;sNAXu2{ARw@be8yh;G>&0ezQ-NuPZsE z!IMZKuX4Zl8ePQQU)2}5Wt}1DdR0Z}Bb)J;ZSP8MJhv=q6qSWbc7Q+P1D^r^`P8+6 zd=K)j?EC_6$S6Ev-%&6ukwWg})a`8S>ahyCdPLumvK{%-*4OqrL%?m-H-Bwad|wk^ zNyjkbmsZ6PPx5^HO}C$q&iUJ4iXLPiJU1^4?ggig0Zw0SF~yctdW+Z+3a^hxlH}B6 zaXZdPxt)}d88?QU_eaS&A)?wBwwSypUcgGn#+70kW0|t?hwAM)MoM za)?||xj8OvoKSRoy3xt}hi;=M^aZbzM}6po{h3GbPa?mDZ|$;Ie{87aoh72QoBN%q zXy}lBx%-X6c^-4~^%(u!%o+77px0P0z1}MHT7E*#zqI5G$^3k8Xn55LJDz9e(5r$; z?0h*lQ_(ABU3&fPUo*Iao=&_Yd_g;XXaYKNb&$xwyot1*O%I(~cNUqX>`2NhJ-G?L z;s9Bsk72y}$g$RcGyjPC2J9s`*qJ$rN6@9Ax5T5*Aw!Jx8r-JOSSI|J@p~f6WP&SZ1`W z#kgGbTJ+l?Y7Z~jQ(AHr^rG95!E(P`cg;zK7_!QIEPM8=U^kK(Q5VKBBTe}>!# zHNL61;8W#&$k>xV&G>S5%XUQr;ER|dc{NI(Cl1z+*54x-KL5^P(8m8~U@)5AISg%M z`@i|<&baZw%azWf4e#DWc6a&@rNe1cRKzNBSMq+blR^SHWLB%gAE)! z?)ax`_LXBji2!<;A3w^a{O#XA+utLl_=(wEqA|?k!_n~ zZ)~S2Q*YZ(!-2ijd6=_<{bgZzyQ+7CUrPiiM;*i{dpe#CaE38wq?>zXj|2AnCFU)# zD%jdywvX)eCdi$WaqqaOQ~c}R1hh#EdAR)}!wX)IiEfS#nBQ^RPWGUsZs1LS|BJ*W z_|X~;d-#5+_#y4uhkg2`#mfI^-Q1}=_*Ro|_&xT@QS5~}8(U(p$JvXHfPWIbUk~qp zNDIf<4-}iC!?)uI?RYHgjd1KRZ6eF=!Iq$mzyV$Z0*hTuUl&pb`D!+OwJHqG21l1| zD#35Nm$BZ%-ul}a??%p6>q}4A$`Yqb%fM(t=8~cdp{pX9XU1e1cSRTEv1Vya@lR;2 z5C3es)1`~6#c%tY{`1Z`-SF6&X*vOedg1pk-{!GKbKZAz3SV*O@WhMwa$Xz-+(lY4 zkn-4fS9|S0JX~Ne9y46_#j%GC(-K$8x5O}pb#s>PXJvc>_ELPyO#$KxDSRsdGuh9by0Tc$rNbi(+pdCTu? zYQ|q|dQ`b`_F9XM(vrJcIhXt;&Vhf07*;EL)M(VL{I|e_TyGd9@+)hfi(Tu^m+1Xz z`uJ9>$eHHoR~+DVpGCH+GG_EE(g!tf+<9{U0Q|8BjJ-z2S=yv+^B}ppjQ?jCf9%5k zZ9C9`_++I`aQb}dQtoE)Pu1OD{5$p>@#5<~-3q*PdhWMlbQRNn-KiLr^L_LI_xoL6 zcfU8kjc&#Fkpe3a95=}KueI*S_G&UxVH0}ZkFUGg*ekGi+_3LZ=@D!*bKwgzPaXUg z9gBHpp5R&W_3pFa^&Lz1{j+qmdUmFIws5rg&_C4irvnEqbKg0Rc@R5p-@($^Qs%%Y z_q*4m{=Zpk_V={z^3vvk&v$s`x6$3YO@5oz9r^qIQo2ySS-R2vX0f#YmsaENJ=ovO zy%PfW`;*w5(D9%8k3()>)4rR3-G3?jZQxh2u(QSY(Q5Q`I~xxFy>(Q6zIA)cX8f_} zbldSM8sx2QN5_jQU#Ddp?Q!SY0;P+lW#XTNA3Ft`wbG_|oH!#kd<31X@p#y{$IU-6 zVm%i75TL_#h2kyvPJLYobir_QV_DKzFS)i|;v-1LN<3D

JD=wvS!zv4+YziO6YI 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 z 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 diff --git a/prover/tests/bls12381/host/src/main.rs b/prover/tests/bls12381/host/src/main.rs index 1e46ee588..10f612fbe 100644 --- a/prover/tests/bls12381/host/src/main.rs +++ b/prover/tests/bls12381/host/src/main.rs @@ -21,16 +21,10 @@ fn main() { let (public_values, execution_report) = client.execute(dev_elf, stdin.clone()).run().unwrap(); println!("Program executed successfully."); // Record the number of cycles executed. - println!( - "Number of cycles: {}", - execution_report.total_instruction_count() - ); + println!("Number of cycles: {}", execution_report.total_instruction_count()); let rt_data = public_values.as_slice(); - println!( - "pi_hash generated with sp1-vm execution: {}", - hex::encode(rt_data) - ); + println!("pi_hash generated with sp1-vm execution: {}", hex::encode(rt_data)); let start = Instant::now(); @@ -38,16 +32,10 @@ fn main() { let (pk, vk) = client.setup(dev_elf); // Generate the proof - let proof = client - .prove(&pk, stdin) - .run() - .expect("failed to generate proof"); + let proof = client.prove(&pk, stdin).run().expect("failed to generate proof"); let duration_mins = start.elapsed().as_secs() / 60; - println!( - "Successfully generated proof!, time use: {:?} minutes", - duration_mins - ); + println!("Successfully generated proof!, time use: {:?} minutes", duration_mins); // Verify the proof. client.verify(&proof, &vk).expect("failed to verify proof"); diff --git a/prover/tests/keccak256/client/elf/riscv32im-succinct-zkvm-elf b/prover/tests/keccak256/client/elf/riscv32im-succinct-zkvm-elf index b8b0eba9a347a697aed1a7ffac663f60939832de..66714c8e614dc6a830884d729315668cf642cfe3 100755 GIT binary patch literal 113776 zcmeEv33ycHx&L?8S+c@`1QB&)lCX#nn1lgr?L;yGEOif9>lMPu1X3}fSy;LbOeSF~ z#U4Owy%x=a*w$(Xh_<%Inh7rbtGzW~dtInuv8~rqH6cRC{D1Fv&LoonF1Nk+|2+Sv zd7hIqbI!NC-@Cu>x6F6^3yTCnVDUeZeZc73zDr#!5BDd2VZO^_E@opBSrT(F70>Bi z9!k=61fS`Wt!uC~`XsPXxY0%LSvozzpPeojzqW@Nqf4RZ*8A<>#j}5R@oP#hV{|3f zZ~GNvZEv{vMb%!%MQ~C58;{kL(#PR{{5>8@jIH{&Uk|>$93SbT_Bm{Wum1JvUl{lo z2L6SCe_`NX82JAZ1DYV5b?1x_-C65J_xQU-x9f7rJ$1U^o>CyVC*LTzCzc5AoUaLZ zFBo+y(;O-@HYrS#aXEd=+w5Y7Gx~;>l+KK#Tv1DQu}bC>LfHi@6b&=|-dcygO;$BU zU`E)%G}Xb3dYRqhV(diFcVEaaF#Q3)Afdd@6jeXczLApW^LRUP)q$%qe z@FXn{GS-UmYW2}S8DWfJ6^(&;364+^a1&OT9#mzNjRB_^YX);?J;Uo5;m&Sv3+md6 zj%%uq8R~j=&r+)2W&;e=z7TKU2=DBnGMPGK%US48QcD#0QJAq>74-Yi&uUfF$Eqwd zMDL~bnK$$Mar6G{-_TaSd+G=lngALBCL=tLxu-mC!J)kG&U%~~%6h>)9(Qqj{P_n2 zpP}yJcg?Q;oqx9%eW`#DMKtCeEOyifbi*T<8ZPA|s80!HahhIv+ zApF&QeBU(T4!viMqnE~-IhT)V1l2uf+`OK&&MN;`tNw>nFNDjhvS1_{1^$CfKNEp=bBro$rM8PY zfe*A92EC6S2hM`b*p(B<;~yg711!{x`a$4dElS{lXqU+Y9dBzY$w^!4u=jtl-v1fz z1-wrl`rd!Sd`~=-OYfb;k4Cum9r_;UBMa}pHs6hYPg9o;dpGx~q3tTi%y!kIX1hMc ztb6RQn!0;f-Ov-}yYPPzUkvT@*#m?89zJQdS^qcmpUCg8#p@6qfZsEa6&du!GIQlS78M;LdWfjQKEu__{~tk zcX1iixE!TfxaPbJTtole4SBv?&^AF<>wqWVY7n2M{8}_f0xm_pG)vHA=x+zgLicGZ z^dHA*+fAC{;Cz6wGK`gBtONQi)5B%liLrkGIwzy=Wb~bkzEfall3-_&U}utGXOdcp zt}Wp|xgS-IxPPJ?AsuJJq}a?cx4pq>8V*DMhA~F;qcWQbhwoY`8~QuD0DQ1sloqU4 zwMDgpv1=#uoakUi=1!)Knaw=!*aU6#Xx3_nJ=$nL>8Twp7>65#NO?E&)Q-WsFv>nD zc>c1789PTaPdDBlsuv<(?Zo>`{$9(d7d&^iFi$v30RHWodQx(;{Y+1Oo@qrNNt!a6 z=wji=H$755N6`G6z-OzNr~E5|{+DKM4>c9^BRgX9`h1MX2Azd+@w&k)wa!gKqwPVb z*69%3{Jx1bst-Ed>hvV781EFkE5{WNfQcykFXFq*2yBrqD))Vz<9Yu4Q9F3 zz!%DeCah;#Ch%Eyn0bx^?}r-DMhnvj$H$K|ʩo=Fp*Va7eEd*TG6vfAQ}%(Dh< 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 U{xNNmZ=Zz;=eiFz7%kub2bwvhDF6Tf literal 124308 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Θb9uUC0~uTpZzS57k)@)zU==G*hsIBP~; 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%0ACW4(%&-VlG*i<9{T6&yb_?Q`ZPDF|+4pu_ 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

Q;3mj61q;!M|14*A;zFRygl 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 KPFJ7cUiW{lcUGzZ literal 443716 zcmeFa3w%`7wLiYkoH=JE4@2+}LMce#B;g@?X-7yOXeSpY);_T{=xuvjbPTlWZLJF0 z*2jd&nE+CY9s!G1c_oTfFWxc4zHW!Y1huWN8nmsgXbf1r*B@0A@J0ULwe~q@&Y2{r zzyJOHKmX7FUp}AVWX|4u?X}llYwfkxUVG1ViO)4DiXz;9A@RDPZ#(zZh|}=AaF5PK zr->R75i>-&C>8XE%1%Q~`W(RD^a(qk0yO$d5##Wn50#5bdV_ya`qc2}o|8g?J{rAu z%6Ha>#Ljus_;XLU5cKi4|Jq+e;%mpI@n;5_g#nZ?Mf(y7md zyyB_&i#`OOaq~+4@y97{m?E{qag*sC>Rl*UCvVw$i^HQOkw6n5F1 zkWpSEz9ZsFx~@^A^Oi_%SYDD`8`cd?5w=w#4826ynXuTH6XH-RJ~^FGMDq58qN0AX zLJKEf-5$-hZI8!Fc8KpBzT+Kgmptbep}tkt+XPeX0nAA&RJAi9)DBIg>vX`;Q1`hv zlj~a4bYiUNTebX6!okqu!W7$qPf9VYQq)D8I!&0<9uQ{Dc9E{x9a1s&bZuiuovDP< zGj}WMtX3sGt5H!;R+RL~yM;QtRe(tVmA>Z7dDr-6zc1_j5bjvbLJF_X}HVRm^F4h88*R^LI2ffrk2q&Ga;)`WF5k z)wde@(! z{t)I_n6 z`&)clus{8FLtlsfcKYTmHMyuio)6+3qFuKxQg&w7P)y&CxyXs+h5I2VnA7p~q8syM zXY`AyOs&^Jcg%s7z+7$-4K$Y#%q5;iMB}*x-;ZIL)H~AO5yA-6japZ78-4v%+$Ng% zo}pKQ&O1S85p~+7ATMJI@U_bw_*W1=0)9ylrnX$d%=6QTS}TaBj7W~=E)=ZWb+xRU zxW?)KT1l$|7zgBxWhUzIV(u+JF9zU5wC_4NU1sQqnSW*5h|@Op34dFs&+i-hW*Vm| zzxU(&;|jiqauLu%Lm6KZ_q;YF1abMo3s8tiVQX?QpR(q`gz4}uNLMEv|%}_+ADcZ?_l|j zHevqOVgBZTeu~pRekjo1YG+=y+s}0Sb>zp@LvdFY^A7A^2l=_@*M@!o^9fz*>7mqN ze;@8xnI;{e$-Fx7=)jPn4-UmvbV|BJb=}rLgGsxhwjZYv^@EF3{vnCe;zxow>A;D` zy~Kx8aNJC1hHdq5+epto%z5(Q=`{aha9*M$*1}x>0|$gbVnMW2I!9D zP5DqdkpSP#5y{)~SmP{jty8yYgeSKpK8GCr*w#|Keo%Y6t4?IKo$=T}hry6 z1g&5FL-xSH7-QF5VKj}$_kkh1t4d^Bb``ZrWCCqahw2t!I^_<&hQ4bkYvozjk)BJw z*o(CV&sBLTCu{Q}d5ad3JfFyr>=S(XU0W0Up8p}083-WwpDt|-yAUcKE02ktm@O; zX8Ese+sZ%6ZTj10fp#~^HZ6c#SLU@@|IrrPn)_SX=9(95YyH1*o4LOl0PMBgrs|g8 z+E(u=UK_2_0*rIHP0JN?Y^&v~+{XHs38+`gZRU=B1n)muX!Gt0;7}#oEL>n)UFUO~ z<}2EO=Nl5Y?9b3%h%@k^U{YxXmNPQtW5qJOx zbJ|{717I7X4+MqGY1`3fN*L{75!1FqpY-FiSC9^XZK$L%4%mhYY(oLtkn}ps4xRzq zIhFy>Ua~7n<0aX&$5n~s6&s-QQX)CHUbpja4B5Q{N)qEx>ldkW`xCM{J->Igxk%8muIsA2ewOz&eTuetNEjLI3?V^`X*^dzjOE- zZ;@k6%1t)Y#N6Mm^5xG-3j-S$#9 z7u&2MXTAJ|zYX#i@Oo?3y6dgD+26mdEykGd2M$fe>n(gNvis*aG)rvv!#1K#Oc(Ug zDeb2@zyo%_q|5jGeb8K`n@Fx|sR`W)ns zW-^bC=yN2<=dfOGz|)8%ULo8IK1csC=+=VIL3N|~*QlRQ6VLk`LOdOUlwZBW4`M*mV7Wo`pci@PuYaNw!tv5&XIi#G${Bl6{0{cM{ zr~l&ik;H!w^Eo6xUG8t|^f}=990WtJ8w~m!E$@0h2bWuKjp%bod7fI3%MW5dSy=1* z_ESO&e%DG^*ShwTU!K9|4Vp+9TJN!J26jCBMB@7-d>n60AiOQ>iQ#KPzRb`UDK7sx zHt#rI6AE#GN|uF4W-M%1_+GiFtx?t7d%k z&MJl*%}n6$(aeVo{Zd{-fM1y$W7P@Nr`wOSemd)>bt3sX!LkKd->|lNxL1t}_N9-f zHU|7c$YaTSG9+fYrRX? zcl_-OyuJSz`34lTNxql|z31R>*p2KPz`wbH%HS*9l6UD-%-_=qA4ym3WS7@n|6oL) zOC?`!K~41@j%z(DpXr06*H!DBIr=tMON{8>73wV!$#3rp+3V{B(_e3TifHQEZ12ZcWLS07=Q@#Gva7TJOW*H@r8Xs` zE+9Ks?AO855eXkST)0aww97o>Z>yk4|Flnn1j+*k{#O_l>Y zCz2=ahkf3~wl%dS8{6;OO8Ue_@-X?3fXROF$aErJOWvftFQ1v}j)><{2haBjht>l_ z(>?+_o&AUR`p)(g`nExT;@#vyNy~0to16ZWwR%OmlWcJKO{6Ea#8n1#C(WDuZe0M` zR~wqC%t9n1-=9HWiI07(2FN#KX3y zN1INQHixLPHN=I3YsDKuUF_<$mX8Nvc)A#Rjn*9zqz=1!LeDN z3Bt(09)mv&916NwY;$4IoU52GriY$cNb?rcJ2@8Jy%_V7X?ihcb$at>TZoNGdu0Rc z%_G=%h?=#nQS2{8&6=qt*k6iZe<_0fr3m(yBG_Mwpge-|2>juQdFuU|-3I@r1H8W) zel2tY{IXE;7K#zk`qPE+raoqrM1)z77`QexWRxLBMP;?*Ps5iKC&o@ zZ3NvFk0G{^yt?jW>~)1me~}(b4tA*q#YLj`gku92DfUHLP5R_UMTLJE8@OAsHBpm1 zv8w`oO(46S_Iu3Kvv`gd+xS@zd6@?rtar$4eHQe|gI>^+i6_E#Rj*?A_AAL-x)l5E zvcvZEpCx-hRhymBr(swWI`ffEnT~Sr=k2&KZ@Xa&OQ!jxYi!eX3XCM8StC}05|_8q{7Mg;tE>>%q)wKFrvz7l&1>kgGu{0e=C)jHHmR0;J= z$jo|6q|bzm9_ptx0rJ^1WN(Zp>Zj+T?_KD7KV)m+B%-x3VU-eFdQ{H8o)EDvm)1`? zw8s41gSgXudxe_cJBi1=vIA=aVk8(pbVL*}vS_-tF^U*j6fv@hI;%B;{nH5cPb1hr z)vM4qzK4rHCoxuKv+R-z|)|Oy=L`&ecwMUrSJ82*HE!5c!y>SNg!WqyD zXFzX!3VP#ob9UqD&>N>iZ=4RjaXQLRNBQZjFFL`GB{di`)(^zsk~i0vVej}88{@I`K{dPd_Ev*!6p=Cr?0GHaE|zT}aiVN5=r8x4%~PMEx%(t=oGft^-%zJ3*iUYpjJoKzb#k(DdbN#Q zIlDO{jExzE=X8IDc;+;9w(?2P^^@t(wtmuBUJkx570F61YBa9}53E(PEnUJ`Zz)D| zmtyE0(4!s4h^J%K(4%)kueKi~kB0J+NHF z9^4hmws(iJ89c2X5!=-(V(n-bc?r66pD-3L1?3k3sG~j(PZ)S)qK)&~{J6dK=ofj^%kiXaku^ zO|%Inze{}*e2Y1*fxg7}tnk>4hgsL_=H}BB!&-{~3we&#{NUU`==(sv!Rqm?3S ze^VHzs=}x^Hk7^mT9Li!JYjtK^~UUFUlzt6J}Qjc|DeQ@dlciZF{WeojBF@Y@t>iX znhj;OFN^Gdw1}*Vc4>T8Qkx5et%8m#E+5|=jqCQR2_pMom11O16xpi`1vrI_{TBFO zr4n0q5OcN?v6ULwrpSE|Im6rxKHCae-3}h>d`g&if%onP4`!fKw?o!J2RScd6VcGz ziuapqC!6=+@6F**QfTFPKRLZ)p`gE^BPNsnw)KJQ)TamM8d2zy>gkZN{A-x+q2vvb zPH zJYYs>A0SLIWwQOSS9qOTS2d6JX1;TH%A4k_k3c4OLUy)5-$OnQ4-H{GZ;*58@z?Fd z&*tXsA#>|#SVJjpOSv9#o!jDXbJ}UJ?c$nIDxiP2OfrRXl3gmmSJ>x0JY_fOPrJEY zu{UHywttr}s@tK12gk&g?gOlGGUiS)TmJyr!}HBqfH@;fdhZMsx(Ryk40Wb*2K3(P z&?%=w@0||4cY6Bd-SeUM=0iT`LzjJuY$!LrDEFa?_s6U+P#x6ec&)ukE5x0&#Mx}C z>m60}#Qr+$HS)#TUV{u^zg))lBf!gx;R2QymnHkHU~gysI^5pIy5rft17BiWFVb`l z*}j-B#Af{Ebzi|d#7O+_66Y4$&>nicB4~5w&y(e3PcNbJ^5M2~VsX%RcjGAQzfNs! zz5W{vBdRaq?@|4H@=c8h%{$`cOannQ@M5|}I5tZhnifl&S%ib-U0-#|G44gcQNWM% zk5T*ALisxB6G*yK%+S{-Y&6i@)|U{^h~%r%5AUWiWHJYa`)$?*uHPknGV2Ql{2Jm1 zhbMTSiT$QJnJY5t{tWm7zSs-HV{wTV@|l3A+@Ik%hx#m!&)c8LUqa(6_*oP~I>5dO z{DP3AZ|Zp$2IEHb@!AJtYw($zHo2+(HpBO4@)wW3Khu0sVSh$jVh-D%8Cd4W*^X}b z7UHce8(3qUJudNP0!{yflyk}&AHzOnE zXcfmX-5f3C+Av=%y^NlQ7snh#?#&X=dL6AlkR|xyl%o}(sk?Wv$a&xYZ3%0`cY?5X zA$MsfXj-EbXc~V6WA^0A)t{7q5ZuG}#u?O|9QR0Mr0&#yBXws2vR?_D1*${NIaUd3u;)95SBXH6-KdkT1-KjHlPgJyuD- zKEDhH^-z#Upo=FA*QLdC85i9&1}ky1qTY0BkiNOdd``{!_FM`-Y8)- z@%|*sH_zc>Th3wJr{~0tBaV%6X}KYY3$3%Bd?*`t^8Wrcf%a~WTm-RP$j0bOVO zJyq^A|6|F2nN8Gp0r!KOq>f$!-Q?d>b>X;r$(4(`TY|Xz`DruDctJ1aQbl8sdZ*oQ zvq46|Bkukv)Y4?2P3;K$90f?o&Up7^U<^5T2#=`oJpxo!CyiQXVWg7)>a2rKwgk9=inXh@Z-(;9^;Vn(Cp;GLa%^#ki&eN)aRrd73A@- zKlrcy_JuWX*uI-xGz*El827kZoYi`;l*EgaO^Ig~NJkChZ9i%4;G!nMI zt*pBq@z)yKzvDTt&e9&!f`u&WwC+nj-t55JBH6b3(p=1;*j`v2ZxqI5L8L zpPcHz+>7~k{xX=w$U!eE4)5(leFq2Yw+7;X2I3$RKln1x%XVhN5ZO5eTLp4W zdgIYv?9=H{2j-(}+e-c(@7kR#KeuD=3VTbG+hRw0Ts?D+^!Hp{yu_u0%!|=`{*&h{ znt4LXy{oWB|V`IC59k6~R`q@3+RjL(&^{wF05G(AOl@}7>=OXvDwkZp~e z%pu-GboQUUJ?C}ao-=$lNB{C1CHDLI!_~8P=HQTV1bWG(-GxWM>(EE;x;G$m!|7de zQ!jGEfh+6tppC~l%W}M*_v6Ys7%^r!ZtagnYZ&aRb&h?ixa+UxZ$Dg4i|ssjeO&)1 z340`a3+ol^XCJuCcucw=3O^^x{bA_?Aa#9k=!CbodrT49gSbB;3(^d)t|pIK*l zepe@QIjFD4(HH7lA$MH~`uzU52hF9Ei*9EIhq8m6l80A0x#+hc7hTH$FMqy?Yav`r`C+0-<7v+AAdJcu=B-7MCVon&ri)aH4cp8yB@Xk>j zZVY|5^_CLoph8Xpn=_`D9aO#hc-Hq>x zQ(xn?&?30l=Ly&mdwyMr1-SNO4)Bg+KhpRutvsl|^4Qn%>ody;=rf;86@1v^eKDVk^jxIOhatmmlMWxRAGzy>A3!+U|*RU zcRc`a1#`ki#Mz~3zFxvvF~h?dzLuovPT+j0PxlLoeT-tGK|XoxnYSgJCQm*gb1q$P z^|vqZ_6NubFFBNzyKVip%SUV`pKFV*iMApqkJzKOfMaXknSM8kUm&>#<0e zus^{%Aom2uv- zc}q;RdOF758G-KDz&TlL>+v~6*VfC6dPKWu6F-py|7)p_{dPrswVyX69*JMFt;cw% z-!W(Z-RZC6*K+(i_IUiZp7@y`hJW5^yzG-Q|Ky!GrT!a-=MkTz^(oHl!^X|*&tB@M z<>;^wKV`m0{1i|4##rmTxQLLj#3g=MBjyM8aZdk+YMY+vFUjYEuZ>=J&nBnNh4Q)Q z-$t*SwjH?V%cpwr=yeyYci??pJ{NqGWQ#uR2fat`9oGZjz2E#hS_2KuirH@7T+w&7 zZ79!?Xshe54D*R3pWV(rk(7;{wDvmuvx9viS?6B%iTH2p0rrXb@5FYpYG-5AHmtKFLM5# zRh>l6-Zh-Rml%H`-v5I0_o}Ag44k&k&EM-@|HH2!=kFYu^LKAI&V${`ZR!?P;cVGs z+{SvO1#Ld*wXr_>6P#OnnAMZ$*B`wPtPWwa90<)~uO&9dc8y zL4LzE$W6HhxhdBmHwE-;y$0ntE4bwv^VIu)&>aaO=OVHyru;pg-Ut3~ih6QY@xopEF>Drj}4K1i985}U?FcpY@EaK*dC+o?IE}{cyRGJ%M74vYqTZZkn6#QOvEsq&@VvA(yaOQoxVw zfG+HB0KTSSoLdBR+O;a^l&)>O7W?GaVxRmP?2})Eee!FtPks&d$*;yf`PJAbzgj&- zxjKEy?jL}@*Ab7}*gH$!GI)V{a+65cwoNcf%0%+D3nOZMctWh?)_6?c5Kk_tKQ}#d z;RGA<5X<}+InRF#86|HH(OE%?Vc2V6GlOn?=R}!HyIjO*FM|yX+978q+g7VkTT|%5 zSUnDL=m^$<+7G2`F(;i11;I}qt}n3xlWAP5#f-r>#@L{7Qs0kUy+q7L{Ke>PLu}@H zC5F5kyZ3rw><=r(#xl;;0PW966WpjGROH^Ir=Ka*naDHAM8b9n*4?^@JkN#r59Q^U z(I-I5JCVO|gzUkv+KID?rS({Ukau!@eIwzLJn?Vi$yPB_xF;$X$F3 z`A37usm!zQ62m^PmyvT9%I|C+#m)^RNS= zTR>A$Zdkah1oxcS;3eWAhyP!vbExL#g~0O)oC{qzL7fTyL_VbC{k)Pb--7aTIk^JV4)6yMlhmsjB zn%@39$ZxzXO?jc`PF2+UR)u)X##)Q_69~2)cIPwxH#$RVZoUZkeIN9dbLPljoLimIsL1_OT5eM03Ce-8Vi?G#5i^LQ#?-(6_b`G=Tl`*;a+*m~n-CL$4tRvsF=ND53Op z_%*#NQ5M2DRsp{nVYgvEuSX74bwn|iBhHJwR{Q81V`9syp$G2dTukH0+hel*{g{tG z0k5AU@9J*kXFY=athbP#RZ2SaUYhshfgLr;3E!HEImcNStvs9A5sziI!=Gr=?a0Dv zAB}h{8xJtwT!lPW@Rdm69J-Pm*9E^Gyr6+@JjUEbRBmg~2c=z6;-56~A`Iv$8{>@i zcd)LqHMR*!1p@vvX(e% zcHV35iSM zGmsY-Kht^lS<)?zuXc;9pZJ_C%b#m&OUfKrHCQL#e_jybV&(s9cs$1X2F1v*PRqO? zwsF$fJ4GCU@_M+P_D!;_3o#3dBOCxd%h!pe@dA%YK)Qm=`3+(!zN`_}f^eT}XSEwwA+O;Os1y&%MBpvmMo20(n7StE$P3~^(8?QXFQ0ll7ADCF)E5PI&}XX;Cr!!LcC;@J1^w8${81bOpkB^ zK6a!iFNo_G$FkNrI3+HTbm;sy#x3f`vgUo;VE=X<^k**Yi z{PcC_C72fk|DO8OTP|~81^oL0tlYm9!SeQU(^!Y!GcQPv=~cfBvz&SRTR|Sd+7-+T z;`YUJ8F%PEaE+wDFD?n+2zfk+!^l_#?2M_y4do{+V5^& z5v(J1Hedz!yChE)&Ea8Z4y_+ZS|TsVr6r!wrPl=Vf~1^$(WQx}|2@8}x+;hZ-8tvQ zzm$#KUd#`)clSpluu~x$teY(4Lthp)4I2{2zMVpZRU7A>v|qT{8L3^2<8P*KU#2)Ozs!KmXhtigZ3lna(7<` zYc9ooM#~G5bNPYxbtF$~!`1_e3v+G>&37jA_fd08m`3^QomjI4yS~zs1unDJ%d)18 zwD$l$MP9hGN5SQF>zuYX(*6g^3%Ml{_D!-pbFsU_semY5)cm3_(drfg=v3cLbvFAF+O6{`cn~FfNHl9b1%jC1R$CJKzqnnyE^+j{CfF z8(yNjW{oz`5NG-dcYCFPmk2rWt98k8O_#KO7& z@8I2-;Jd_|g*KEg5U=37BE3B@*c9MlBhvH|={wS`fqNGv{f|06j$^+qadhW;L2cpl zDGVd3hxmI`S0T@U>DQgP$6WrPxh%r*h=apXvYW6zgoEW>?>gle_afkk7rEx;l%gsk`IArrc&GzbKeR+q!<;)G!EHqZwwi$OGMx8;di(_zfXmTKH#6gU2?!7 zObhr2YAZaSC#Y87vKTdYQg>!uZ+_F-$w7Bbh_h9 zb06^?fj-&;v|zmK04<2$a4!P$x%Dd9;%rc{M4K`$t;|>0Mg_$n-UOE@= z-U}0yy@3)r*FB|@ui#I<=e)Y>RNW~-TDp8yOSnio#gqGQXcMc+YQ&dn(2(4pEws$EBzkQ z54jVH;Lj|VYDosL)RYfn&tVEE-iTu=gkiIlX5M+X!Nlq zrWfIYwZ-R8a(i*Ezy0yohXt#uFX#2)Z24U9RaytCW1MGk#i(twRIXkl+oV74v|Rwb z?&T7Z%yA5lWi9b~5O3l~%Aevms&H(G&jN4HzBqp03$AkdY?9ACUqs)$mbm&TT?;=B zYm~H6b3Zm`+{kx^(>g})ZN#Q|{o2gy*AEP99G$u5Ho>y^_YA9cl(N*7cH3zvyK#he zx#iqHuY=+yniF>&1g?Sg&&AoCF;$`aV`&a(9ad-hb!h5`$?}qr@u8W{III=+>V=>& z_3c}a<#@hrlsr6Sw_!a#sl>k?a~_e42kbe%+ttNqRGPCbk-lEiT3z7K{PUyMXZ}cE z;MAWjpXs^iXB7Sj>RXQSGA{??hSc9MJBRyPaE^mhrPJ5M(d(-J;?$WYpX%(<>n>RA zz?~wW3ucnOp%3S;ypMdJ2Jk<8t>5qXk(^nhMl#ix|VgAaR-0NGqmqBzQS$uoX1SgL$U@Atxsh{Mv{{s6bDNvH(%pN- zqsXO^cRMeieiw3KEN;`$^&-wLgt^V~&Q-{FsrK5;-8=*R9O8buzWzg$;rA$zOQX&E z1!9U8w`o4sjK6>HwW+)NTJ&=vw^@J3CBSVLx9ML#9ewWLHXWC}gq)#Uyf)U||Bk)L z`?yWZmuYM`cZhyEeli|8I{UcIK;2~g{ifHZNZ(oKpt-SEWbG({*P)M{!9rMEL^9 z8>sJsFP#S-;so5G^_&@^`$>?~-2G4Q+U@OMO5QdQPU?{g^{gh0Wij^8cMX{#=={w; z7sk~kxXa`FO7g_=%H*1|ap|*At}R8KPSnAj;;6$p4W-Z%S9~147xEAmXK*)Gyo&yo zIMDrI*msI#D0VrNK65d~jvS&-FBNLj3Sn<-7uiD*j6JFt<1@JbXgofH82ihB{U`9t zrGSHRfM?D6Jo?Ajkk^FyRIz5LY0MGkQ$;RQ2)Rt5^sL4Za+yNuld-m8zL3kLsHb3E zRg^HvH?8@BdAjLf*e-{kTmn527U)AkUx+D`E<*lIDrAQ_KVm$W(>r&ZpU&vX6T@`2 zc?{9jW||l9q?`@xfe(OgQMCuYu!UTr>)!_5U{5g2xZVw1kR$XQ-5%4en>(i?*2i7p@P-uD6hTbbXxSFoxDB{oX~CgAo6XjF*&whH`$u zgScyr=DwfiqMG`5`}XpaCLI|E|4JCRC(Isy8hkzcUeK8lk=?itIXTN^1)T>=_@<3McfdW`kfIPQ4ESX()7WFwC?l{K^zFwQlcTSNWYkU8qx z*mxT4htqgNb|@BoOR z_ut@QxrgE2M?-6%20NCXdj3Uv;y#*y9n1TjtV46O_wCuTfc5_K6$rki{n@|QDc8^h z&c@^f;L3aj=`SIk-vk*#z5=(iDuZ^m^i>=?+lkeQ^)3uvrvvSW*W7VcOyu`yPl@yi(Fg5=$aT;5_rZ2q6J#J#BjX2jj|szU!JR;H#jznN z|KEw<$~72kc_4OBuw}(=!1s6}?b%?X4_w<+>5;>oV@)JC{fGqt-WM zJLJs}9#QRl$#;Z{?_3_&ox4od&GXZU=8+de@#X`pTjf45&gDtEp6BN!vcr8iebvF~ zYfj9B`Pa6v*UEgJy2ant>GML!9F0?z-&>F~^fjc)U(e`g?{8s+bpg&<<5&WLGiuD!N9De#`0(>H4e#beN$9-6z z9IjWj9~k~~d6#o+;}gNXTI;%o6~sq9DY*|?luID-|K_kbFYT#Vb*r5?+7yNn&8*?? zqn*o>u>OT*E0S^e);X8QWi8h@W%&KDO1UqHzLj{2WRVg31{99J)D~`2Bs;+m0-t`UT3qxj`wVqT&h0Y)>~BZ+6dV74 zx~m<$i8CzT@1)Vb@bSL8{OUekKA@+69jAMGX)Txc_obvw_2NOu9(`m1RBBb1SVSSU+VxjaS~XMV6CJsli&6lle4Wxps%tn>|?9X@4(QD&fxE zOy42nY@11)rv6Emb#140E?BnUnIK;I+ho7=+m{44t~vN_B|A3QHvN<=s{>q|%?R|l z=Shy2^H{4oCCm)n1p^u(jxE>yNp2g5zFr=snt%-8e)4Y8XPHdX@VuoA_9Z=9-bwHa zI=|^IX&+(#6!$N(Ef4#$Tk5T3aNTfqaLc_x7+5!&TpcX;PdPuv>$C1|XG}l!_D`jL z9)mG`fOX65A9wcz#^CS&0Cc!x+jAf6zj%F+e_fzOVn+}T(c%EDd0{zM>+cKfpGy1S zL2qmcjG6XNU0g_qM2W`)uWN;MB=sx*IBC9!Uc=7d5u8lsykTeXxZm_n(wm514h@U% zN*TG|FLz$9E|qDC2O8+9_qUM^2m2B@(po9^VAywMT8ZrY{zK3Ly*8GCa5dRPVT(P`+@I{8PLuAV(f`dG>%WC3|g>=&+eVKBc2Vi54zNQNBS z7rM`BBYy916No`DUGu*mF$Te9&A;Oq1pY=0;x~a91eXsy?8g~?@oxh$2&qFl{QVD) zLF8RMS%^U}Z0#XGZ0H90J=*iIv^D*DD!0bphkyO#-$MpnuqX8S5&d22E7I{8$+!{G zo&evCBb$=_LMn^)ACU6j`#jf)(%J6AsCy}`rMNfRS2v>VmvF47Wo~M&;45=K%l|6N z^WgDy;PKp8L$hRGqz|Lkr(|E+ADq6RQ%N7L3;ME4h!=wA|ATm}m+d23uau>DnS`5o zmi!QmF%sxEVtrQPrQyCTLHZ#Ygl9eDl>f8yBI_NN_S9=3}7UAC7O zoa^Dhv}yiJ0f!oe)^6!1(-~YEZ)!8<*oy;sF&%%LiQwQaV~#UPoBV8-7uZIC{)WF? zEGI7fO@8-rz)30`-6N&OJ%>yhJ3uH5+I zObpBFld$H!7=*RBKM-eP9*PHY9+;+eq&uP4Nq4%xA0*{x(FnTpzYHzI{tM4HbSZdC zm4D}tfDb~>-!Ea!QsmzW{02%+=1pqa8?NppI=XB02yrf#&cWC+jaReY^3LVpyTS5V z37W+nnL+GF%FD<7^Xu|OaIIheHsh!dyi-`~iT=K|UefKfB3Pb1nf78T$GNXp^5K{K z>x8!!j=-a!UGQ8E&vS8HBJSGzQ91v(|xFeoO{X{ZO zJTc|?5_Rte@~BuR>>1O|{pJ+}n+4(kSK7XVi9T+WDdc-Y~IDqYeN=W+u2Wdrs`Xb!R0MR6Y~ zC*xh3cs7P-!*zs;aKT#W$%jK5nY#-43gqh85#-52Hl$83I+rsdA6)9-u2slBd-z$< zjrF**B8NF&f_2!ruQve4)r+oNw3G*N_w&It z71JK#KJfiok{8Aj&IZRmU_cZ!7EeVsFcLU$3-pV5dUX3vrYx z2OjRTBY22SNO?2-@E|wdTB2etF2p9979Zbl#BYZ>W5pU=I8!BcU5zZuAorE*PT!d- zE^qm;gB$LMyOhdh49Jsv?IZ^_@>02d@Jv-e?pmGo!__^_6R54N@A?qK@NAnE6Q%BO z{71=uba$E0mka1h)4`!u#*2#m!+f1AZ<`Or*_8sy|0()VeOUr6TC(D^-3De9Cq&#zt_C`H2vbQ|(0G z$QR)IdL7u%|EdG?V`OtV_|BpAL;h`@MmCrHTboZdms96c{=2DIUqCOv=Y74h-+wOH z)(dWRd6ng-_`Y7QpT~Vqw0Gj_;w3H}#>({wceoMHMtc(UgpJY!{(`&))+5@(_ISb> z!vfl8b7JT>6=ElKXG$K(e46kq@IdZaKMbbv@$TbtXzb3tL(k9fd^-H$>e>IT`+DVC zUF3%}y8Qa2A6M2%bYCyyl=wW;Nr!Dm{K0mW+y~;bax6nB@`XKm*|5)#AD493$KEfD zZf{W>!apZD+uw)B2mZ5iz!&s`zq18T(h2mOGwjsF*s}8g@~63_kH!3X@6=@i{}Tu*I7BqN4#D#Py5fx zF)sOL=2<6?#;ir|;56h8)=WjNAadi7cZU1NaK;F^ZuLFL5qzqg&(7iA76Un3=~+7N z$a*RsvykHkzL&q5h&=h3tC1swyR%+Att^{4tudDQ1kN^5ev13MisBYELEq!JbE*r! zTd629YX|Npnp={5bvu6BlkR;2KMDHnE!c~Rza!7?dE9gHgxID$fZR7lF_pbyo4{|9 zp$`529cUC%fq%LdxpOm-J2w-#bF+{;H>;6os?s5b zsqns;-)o7Bo!DBt{BAAlCODbIMYgui&Hed3`gq%{AB#I=Tahb!V;D5lKtmNYR6#@4 zoN>Nthv5_9?kA$1IZXkb@i`T_db9DFh0hFp>hY;nNG4$Cw_;tyS-={~iOaRA3H%mi z31~K9uBIYa(9kMF$rU>)(>vO5cNOmQ(&jcMm(-0>I~LO4xTB{PyLu*m zTkS}o?oqi@tGt;9WWb3#TL?f(cB_c(>rgoS%In>9Zke9uiK-*a>|;nG(z_Xyol zlsxC|P@mrNF11TjyPKNvJDCZbjRcQ$XuzHC#(FzBKB1_I8&S9UZLV8K{D%3f;rR<= z{=%5QFy=3e`BO1}D&|i`E~Ea$c+t~voSZbFgG(WH}xOU%-Ti`xv?5@V=-6X#ay*wu5QF!Z9(qr{i@xD`NCOI zy044otb3M#ZJ+~oB%b_cf5@%^jrY%0vU4974F~aiq$~0wTe?_@?YbK|u4sol)v^P5 z+;1h@s%jeFSJQmsUc8@<(3kiF-)D8=`YF^8^#MF5(ioECuZ|d2StxnY@(&xEK8)Yn zPACS(n_OFlc|VKKb(pg;Hr(q483sQCm&98`cJBam3Us%ogkW#O$A(Uj^VkYK5K5k? zjYnVLiyh#Lv+&!mxR(v^Vr#B%OkVgE#aM&;)ijIpmmxD4E6L8Od{zVUB55Ums~10o zm;k)!dX0JX>-PdqqvX#`T_tIh^&PZu1~!M>;Eod9mlaB$)D@9+Q1+7b)^Hwv?oG9> z73YC>E6IZ$bc)vi|5`c~05PJcPp1A5FG4?Z0n%3ics>6@7N zTi-Xo@;76{MEuU;TaDS5dvH%+N4zg|_1};m`U>}p@vHTXn7dAleHZ8!2c92M)TXIQ zx@oK;bsxrDr28-i{MHKY(eh+Er-7EB(>?KY9pG*4kY%Y3lJ9Usoxu01C0w?S-sM1- zLO<&CM(EjY=vnG(AN1_g(6e^}FTAVStwByT$SHJ?qCrl>kkc^aGz>W<9#&PzQ5t$r zJw;K|r|_PJ?$f_5Zhn&^pGSB-)H5yed;A#Wm3>u;2heX5Q~eQrRSPzumB=<^ppPR> z4^S+J{jfzG52m{_JRjThRk@AzIJL3$&J4GWHa!vWRk^)5>TmD!)2?&+OUd;cewys> zWB&RW1N&)w2G=_~*?TOeccNeT#WW`8E@a+=;Pp6hx&Q1Wtuu&6f1msnz-HS(+5qW( z@4TI)L94_mv(njvj|R@raUI;d8pu;hiEc@YA3Ap36iEwR{ti}A9+lT0<5YKzv|;pX z<^DG1QQ^!YmubcHQ5^czyJH|;7y-ZbAbv|6{IpesS7EL)tNA7HM*L6WyMMI)_^xmCNpzw9~u_F3&4SHa(_#M-*@CC99O1Yn$x*jU;K{8kbBrahGBZf(Lby+C_a;5 zJ(FYnBKj8ij^IaE?!}vc<>?vccQ$rY9mih3d&JzZG}-bC{#w0&ZTd~}nchBnUA51t zbB}zgyGF0O=g$t@9rC##J9^#pUmSRM%4d2f@uB-^0BsG;y4`lp*^wV1&$xYnJUyPD z#Lb?+%-^+Js1L~l*cU8{uaLb!T!vxfe_!0r;k8?e-*aF2yKzR%`Wc@I(=Hjr zebG0_vuB@p5og?f$!EgmzKt_w)?4nGu#-zlQO!pXQFs_1_EmZHwf($@y(_WPY1m zb5{8G${ZfpO8SHPA-E2Y;~qASxrSsN>+Yb=Abo!Twgg~PPDPyUh$~$f%#UvS5!ONI zgpkycxo&?O*baqzD4B1q9V6yca9QFm&Z)rP#wx2bkW<0sUEBRQBRBU>PruQ*4ymKp z`TGy#R4@z;Jj^-E;2S(c?mCd)>W7VW%UK69+odjcaw;TUmizl~<6VY-zn%MPK~53Q zb+DdOzk<0aoa-2whORxe4e&j^TF^VA?6-4YiJN(jd@=G-_uC~Miq^w*u0Fa?(xHAQ zJ$d~m8zj1Gr!mrgdw{0yy0plF)p3u6wfNp3tQE+AgB=*Dk-tyNG>tF8n7y^!i}U#J zp&V_Tu$A5WIY#{*Sf+R4O24cG_Y#Zkx}tsM5os28X|`LAbENfG?g7G1n;M8W2I$u6 ztmg+DcvZV3ybaw!y47P(F$J4!9oc<_ePxDKwnwWDdq`ehegbQ!jG?L9 zkhd>XX%Bh&6SyNLMKLy8qnJ(?*68q9=l-%k;co27$&g;5*0oJe*Dai!tk6o02>dQx zhuowT8#r)G9Q#H_1iu>))k>4)xL-^^a-F((aBlLgJoq6(>$qm%JbaR3zEn1S{5+h+ z8|vGn9Ybu=tKau>{vGGA4jfB_x8>;B7@hZ&pk5N&L9qgKKc$19HTSDeQo+t z+QTAW7qG5VJFDhVY`!m}58B#b;rk~27|xI4{4x5b_w}gf^sUwd-bwl~nlr>Bym{mK z)e@IE>+l>}H)zkuJHtSHsOwMhzFCJn5AnXvFmSufet$cfpa01-4DQ;-Rj1_yFp|cail^@z;0z z=RAz@I6FWxmuY%t#Jos?8_EBr0Z+)&bKsM4#Or1)&izqYwC?Zx)T>_OI#KJj5%VG$ zPNHAJ$sZ)29y+Fw7s=&augY@k74pYXK0Ggy>gn3^vakH}#z=XQQqKPr7_%SeNd5)c zPvS)S4-yC>_yhtujye!LUTuxpj z_m?=#cBnn?dO1i2!Vyp?DWR$@^FNUW(@WyLlU;DqrB0J)I9}n?6`r)|orR2lJ5t~*-a$Jk% ztN*9uiaLe*>#J;j8+uW;aep6!ag4tJJy;YsO(AZ&8}Z#%#Bm#O=c9uA9=G65jr(z@ z#%|oH@r38oP@ER!h~J~U7Uk1WUh_oA)-HvtDu|^MEeOBd)1d!xW2TrBj*sH`YwRJ# z;m^gfhZHw!rZ!>^=~J|KCjF+=%@`~2gN=#bJ;iSTK`+8?s@-yifi=La0WLF?lMoX> z3GZuc4S49SXKa*oTBO#|yBzj)x@y&0#NV|>iuun6?}awA(Hc7uj{JLBtLVm`;6mp1kk?2=0G z0B9`nZU+C&vcaRo1GG<7C`#v^$K_1Qm)ZzftKg+_aiQxVUv!G6Mg_+9h4eK<_( z9`1~4olo=F5EdzO8p>;LoR9J2oiZPO@fi(WkPj{Y2h7D85;yv-+buOb7xi0eFc0{< z@l$|}CulH>o~<<-5A#0GY-*FPQ!u~Q0Ok(!uo?E#?)f;E7X?md(094_82=~ii$sUh zA%$_K92%q&Si{Gg(-8BkA)5gG)!ttN{>0esN56B3KNxqKr;Uf1?(ZbWYtY+DNPbU! zAG{jJdKypHHpUU(kEdtu{*<98jmu!4U@mJMUGpa95csy9fwcs%F^@Thw^prdoQ5$? zQ|ot6P1mWv7x?WJPZk96Vd`SqE5*FC9ff(v{b-7}UR0YL zr<{tuUx#igH)~tV(RVreJ^{L^%$(g=hW+g_bH@2)-6W@-)+^?H+RNrW+RMp_x`UGz zaqO{;w2mO2_6j~2Bl^)r#M!S)V!lIZ?9tib){uHut8Oe_uGkyai`XI1qt zS93Yv(Q|Pp_F8Mn4vxYuQBBc>wd`TwR0UlJ`Zv9)l8r2J%bk_|7IGL8tMM)+V&D3z zg1uR+<%Bzt0-5x+6-`F(YGqqwOR3R|`-AzpT5Qv|l$!cS%8X`|X(($( z89z}LMp<}j8Ns(19`B(dPB1lMPWwn?c)wx__!qwqW+4WEr=}f_t?0x)qlJ5j_KWOb z2V!Lz+)vy{_ckfn{$7#o&*OKl+6C8J+%D^_0L@S@J-rpbKLnaCeOkm0g7*7yztLbP zey0fU4jvS-BX?4{P?2|pyN{IEp+kb|8t1MOu`2=NT-*V*?1;!-c^BV}l%Am|#)MT$ zcG*$P3{+y5Q*v=;G|$5HP8 zz6j+}U-=T0`@dg`a@8r{%zYEz$^Pg&_3!_V{sZ5se}6gp4}7Qo{pILC@SXa1%b{bS zkEm~{OSCBKzKn%@&Q!?RpS>NrfcG}dqPvdG+D7OY9dxT<802dtC*&)6-Kx*OlCHO2 zA%03$=#^OWUQy4|z{?^W)9V_OSL_W@J$fJ0>M(9iiDmxN1Il4YZ0jU%sdIa7Q(8g8l!BdS@n-zOyG}SQ!zE?h~8l(zl!s@96Nc(m%^B1P_j( z`Jh}kS_AA*C4Z;CfnNpbtt|GG4aBUs{b<**Sib2-G$HH_}qifwC-bOEk5 zuu;+G5?#$^27&ish5GQ|7Q?x37j&$C48NZl>bqp$JG>4anM?FKX17C6M>Ww`8aXu? z)|>1VE65ka+zt*QU!a0)pyb+JrNocPHH)K$3VvL*RJYYQe3unrJGuzDIpbBMVu?tu z>-nDgScLD2LlnqiDbeCI}(#NOWve&4ryHK_=G)~>) zw0oV(mKDm{)DzPW$ui>@m0@jiVd@o?=|`P1#^vckS#(SVVl3yl_z-^7&PLzc#@q=y zp`8{HMg?LvD?{a8|3{1akCv+Y#$&wo!bbnwQvHDQ>X6Z12ijENzBjyYpC=6JzZGjm zJ7})|6~F5_Mo&M6_w5OkH=)lXLx%q7P;zZ3tmZM#?TZEBVy^5!oo2N8&!OZEp-_4c z-nTCm2I#PD<#Lp@pzOY(q)mu?1A6nSW7~do9`ws}VGm7#Jd6?Peds?0n*?jQtEbZ{sQGHdKcODzU%aBC_AKME1oz^zC;*%YQ;H=oH25yaQuuP;9F~ zNtXAYV9r3^FJd2N?b+}}&xg(VT}AzA6@C}ES*Ulf7wH|nB7IktqTbo8r0-m>7=NVx zdlmb``0dbhu2+nw)+olUYlQLjHHtkE&rPd=<7y@Lt?w!Jk74({a-m|A-FM+RO6=k< zpia9mZpY``cDCbZfzx`#5n7P@XMyG|pgry=JhhH& zg%I}0Lw%F_2hzBES)GM_XRN8}$%xUM3>!Lgk}&RQf==0g3^AXN+Sfs+tQqqK`*I!k z9%qDo70Q;^3uDE2%(YtXpVyJ-k^XH&sK3SBJu+RWk2Hw%!)Id7&lTyt%Y?f3O7PJ} zk$&t>p+43v(vR*F>Z4B!b; zoBmCM)3zGp=tjQaxhzvg1bIIc6U?LTV_2Ia(}jt3iPi~{r#_+oj%11C$P`CBSyFo- zm+g>0UJD;Wy9t;ttnC{rGRW<{!(M4XZmL;sV%kunt!YE{Q&@vmRs#;?z*+$qD)&AURPWCjxRJASVjsL_kgy$cX|ufp5ujqBwFQd~yOj+ZD(O z{3p!Gri}7`PEH1o`FSkc{(=%~|6fW>UlGS#{LUbqc6r5+eS?WPnT|Pm8ZqH&kqtqQ zr9;qT3otL!r5@wCfe!n+Ux$UE!*FlxeHUPEwqkB{=#UpMH(}_8Fy^KLb5sFcreVyG z(Oyk?Zyh!rb2EL^xk>M+!@RVh&kn2+{g|6N%uNgCrUP?B{r4;OttE>6REc7IxKuID zDTQtV4ii<(5%BqOly#W#W!0IRs85GM-fqX|T&zb=m!;mG-@j>x>;ABsr?rS#gwnp1E^t8udAMo&$_Kl4pVYlvn zxq3I^21@G|b*kd{EUB^v_$+E&{v|szFoZZEVhiM-X@l7ny~5}o51*v>X-vT|3z7hLHoD_Op zVc!$-J;~6pPbK5E*#;eYJhZfu>@tGYjd-TLvboarT^;xwA0s@?Q?-{l20FXzW%4Pz z`%5muz2Qqar>bii?k8`4iF2(6zK#39>l(}%$j=)1Vh8RZ|FSs?e>Yd0jlIU{=4|}E zT)P$dU8~Gf@ppe3zjNNT2{~Ay?%o4mMc&vG$jySEX~C~t7bbk1SZckD|EC^;kL$b> zzk}_-IMQ9$7$e4ANXMdu|sVoPKS8<-968?83&MQ=! zGp3Hkd4{p@zsIuwjToDOyP)mWb8!cBYnbQ=n~P~B;pZk99DBqX*)%XjIWp>*{kYe< zcL=dDK`|rx{b@J06I;3uHdh`tNCNmKppz5t8u-m3o*&EyVu*+6Z}z9<_kMeINw{y^ zYRaJ=3x9WP8n~%5m9dB?SHj<|#28Mb@zIBP!qyWwTe=fA4(I|KT*e*MYSatFJb7QL zP3L$g*VS~6lRD!XG`F?^FYr=odmyF>IEup~BgQT$E-7KeOKhT_2HJfuKO}Q%@NJ)I>_gaq&*w`xhAukj_pEvBGN!JZHMOu;aL%UoX2M~ZzYknOJnqCaz_C6_F%~b6Zl^5c61wbM#@p6OMm#o$ef; zmM1)5H-HaZI-s46_8TiHb}gQD`*6?To0Rvu9(Y++Yr_WM6=_;&=;)93jyYbPI*VX> z@SK=XFyFmvNanjA;CYq#?lpq*-D%8LqKrFVYf{P|g?M5e$ z4fLiwHsm7l`}~gyXXJ~lW89-n&fTDt!?VQ6=SD7)1zXGgO)GAfSQ~_gTqJ&9wMxR< zu-b!1@S{!FBi8HXA_eiUyR`@h>NL0}y29TzUW5*FhYX+qBS zC1M!X#$x#fi@LNH0u5Occy}4RTxky2H`5y)A=rTuR>*e(a^}W7S`F)!ZI1NAWe-A!4z9Do0n5w%RWG{;EtJl7seY6#P-X6w` zgnLN&XKZd6;Gd!H+tHEZR-(T=13Hnv8+;gTTN&gh_N@31l$U9eGMV4-j5Dm8GZLZUl&G<4hpWLa8W7L3hYV6pMrJRCyo>+YGGxqOV4kAOuN*VBX4STg+qTkraK>d1 zm)11cW1;W7%(;#7z~4NB@A9mjS0v?|W?)Z^iKE<74Mpz?{xo{k(n!sDD*@6GaeU8mx^FhXp( z)2gNZ6Ysza;FAF_pz3y=f-k^u;Y$X-)5c)m94fJz(`uydx2db8`s-@-*o%is>}vTt zyQbK-R>%8V%3F!yFItJoQT$%6Cyq86^%!HK@x^GO`7$%n5+&A_?~_(XDHBaJM1di= zG;TF^m?-=9MQFjJ&()xWJ%I!&tk(a66_ON#eqj=FBvFtKnRq zq0V%}uG(bSbrTuq#IkXA%}Fk~Q1^11SPRMoegnr{4_S-R9z4Fb@u=7pCH9>)fnR4V z%5Nu&jE3*Q#0B^qOy{nVYu>lbO)B16o~!u={yk&GJ{Okx58Fh~xkPwwDN|}|jN}&( zct|Wb{TZsiTym4OXJD4L`7lSx4;alZgwTls55c0Ee$5PW(3F z#M{8{hs{L8N>gwkvD(CrWJTPIkUf^6^SmmT_7-3(szQG_-Hc4D)w0gsJFwp)gH=B% zd`i81-%!n2zGR8~9_>DxA-4IH1Ky#-!)(Ur9GGny9eLuM&rPd1{+lyb8Q(Wqw+7(< zH@b5@w#;hcrymGmSi%MNZmw4I7tde~|3*(};AjrnY}**k?mb0I#*p3Cc4*SSb96^E z7z6r^8u9H-4O4Jjj19zWgO5#FMVNYGyL?E=c86TaqkvzWUHc`?S-zykIq)Owx5fD! zl5?ioo_9DVe7#q-ncw(MX*=l?8`Oh8j@lM?!ps|mju)N4qgJGF|BBPxH5t8dd(Sv` zjj1PNe?n+Aq3`L+zoz4ZlEZsBs) zdv_mmyA*mL@zfEwxh-PfS+iUAuy^O-VJhyv;WB72^rvw(d-Qea(IySrVj19q+nBbD z2|9bL+l025&=!-nO!v(0s6h?^cTzfPoTW#>pP0~jqxr(9!+pj!_-Bl-jv7rdrohLP!xcni?Ik_V#jhlPX;0!4NX`swcJ<3zg7e-_ZPNyEX64 zPjjXm)HV=B?LJ>|uQv(L6^{(?0r zZz1D+Z7=6+%yyQn`JAGiTSqdE*RiM2_O4z&Tf@)x@KeUebH?W}zG+v?oXH)AGyVNB z9p9DI2FB+t>BWSO^SKGiiy@fJPzB5kXIow~^8xg-nd(lW} zMMekTr*eKp*yHj^`)jbzS-_mL^MBQ0v&b{2H&P1Dy}w{BS3#eEE%x)m@VXC`3?=pN z>p55H8+!K+6B^+!+$(mqqX}&v>kD5!f0^aX>xs(zgS8z`+=A?dAZEA!`K#(2xA#SN z2j#E@?xRh~S<|pr_;WdfzX_imNmlJl*||(4LH~-MfTp5vCU3IP@vhTsp{vc+5vLX! zIzCS>lNf%_`G|9LeT&xtJ+eh#EalDThEv<%E-^5r)!Ka(}n$+v=GjYwI&w4ML z39rmNSa*3ZK23#PPaiU97rktw(bQ_VLa&?J$+fe-*&T01oCjiYfw#@R;*4N@;Ey8v z@cri9yw0(1(`Mbzb$|!hLFW_eByH_k&+}HpULi2si9ZA5SoC_zudmnr2)5X#7{`dw zK|k|045cjPW}*+L9qGI5*{Uq~Bk*2ypwF8>4!wT-2xswr(On06Z|v(0vd-Un-_GUm zH4bP?;M10M1m?zssz^Y8ChCPpqCW&DUKUy`XONt+g$1ks7j)5A__h1*0v~=Wf3uB! zO6klMP0gOFbP-nmmdfYa*bSl+Y0v+C8T}m-KKok#v+T)1{oFUCen6*F_2IL7`k!f| zgSxr@(Of0^u%psoC^{cWXcgL3)X>>Rwff|FJgKD%Au>G2ml&sM4DX8y}zJ74k4 zTlH|9$k6bFqF-tfJyhlZdJOhUH@XYrR)}v2>gMhgos8I{cn1HVQ%2|BScz>3%6MjO zo}8KCSPl{YW7)^pXON+k52*7wD=z#tcSlO>VASmZ_u9=UcZDh+bde3@jPfkz_A`kc z$c_l?VdR!tWJZO4NX~;qV@~)g>=>_C4cu~+tN?6#tBF93qJ+C=8uCEq3Q1-LE ztd4bnAHHV|x~3H8A>Z#?AMtv2>XN72UOrOg40D^O18?~H2KZ=n6YO{33k40kxyug-T#9`b>P^<=bmWZUyt<}W&a3OZk3X+X zrGA2Wopa2*rhLS_Qa}5z&1-Y1zy5gzeGZ&gYFg#IQd0+=*PQin!Nt;gUB4V2#L_l& zuC2ySy;j!E?|c!vfjnmotuD#g7%8rwF@8GdVh?iT+aYcax_;e%0luAi%=jk`I{urF z8UG#No0-*|-es1T->dS)Nj!$3_75~G+&|@eqRh{FLpaWlhiCLtcs~z*Wwl~og|UKP z*OcQIzU0URO=&%h+dB2wd6eKU=l3EruJ+Ad#{U=3qigNQo(J?s`YF7>>?7up8c{iq z)JZ3t$AWMkJC-S$_Wv7`XJKlc8 zF3%mO#x?4F>9g3+Xay_dKLR-B_Tk%e%)9gcTnWcf`z!mh4oV$6cDBe-mAT_of95e` zF2d9_f_BzNOJiQ+AD1Meg#-@$5Vjj_1R$oudM8JJv-Ei0}~#u751fSLrd= znwJ8>6UANotpxpvzK551VTb*t`U1GitFn(`!{!yT^=7u}bi%cYdB z*}Ln9`|ayf_Q~fU>MzGH z5t-Lph|e8*R-*;IYJH3DU2qV+0)CU*MyuF3`||y1e;)dZo%qx3+6>Q{M=y;p=^!>Q zXoRwJO#_$U>7NT^nEdmc1>_4>YkQu0XXSrT^r;H$pj{h^^d&J!{Fb*DdDzSv&W;!1 z7qW&i-qhXmnWMR1bFNqyagHpD*uDFPiC)^-{^~e?;f9nQN9WpZ9!=K$P(v42FMKUJ zg_CVdgJ#GYbS0cCwhwiBR}4j81x$AvcJ-~uz34(`ehPX2E^HO;_&97yIeV*W?8n;C zDP}bLiXZBJ&eZX->vMj;ew?hYbI)7jWIa_5qs^l<<288D*P8ITo`U?{j^4&1hA^(; z1Czx3`8U2nnVFQyQ04}Fm+w@uh7wQcJrdD_c*vQ++|&iuiAL5x)(al&L#N$4EE(I7 zO0?`m_kmuZcUh#+x_vM52)T6e7t<6k{tJ;k-1DdF#(4Z!DaToS#9z1qJl)*~P9OD` zE!Uh@_}X@SHbwXUDtygWbiiA8F|_05KA=_)*aV3*IE(u!Jt_ zE`IO+8^j=7fV}=lotAtoqT(O@t-aVy_NQgc{=W5^^2eO_n!vr*%kS&6uc+7jnLpJ0 z8|Y&zI_BQZ^o1ROzC7t`QL!&{8E@1DeT}29U+mGm*ADdA9%HSyRlKF@>xu(qef>~N z_P(Zh`}Z2e-yCKABmSsf>D%asQR+>BjrembIV~((__cM!U$%^OuG73%@gu$b0PC<% zOV%wfjWZcrq2Mp_;$Zs#`%KB^8{m89*<{TSe?os+cORN@)-b%Uv7(L^Jk;B%sdzljPzE_1HFcDQq7 z{%|j$FMY;#H+$-_KIfhI zOn*^4?d(4Ja`zciOA;gFUQn;O=fySS3oV-a1@;_qwEjDkKMmjJ?>wmcg`cv%w(g#H z1!XRv%pA?Q;BJYH)%?On%HRu43~zGI8~ojkPcQpr^(ft+f4P=eGLtdwAC@#eU~V_? zea|rG$iir$^;-6dW{R(YT9YLv^dOFnMr42JAvQ?+0rcu>AEmxyTQ$)BT6`e+L}x8} zL-&;nfjz$1v{`s(;UO;uyzlNEX1_5Sy+SOYB@>ezIm3TDi-30z+ zqjpq-hVi$b^W~A)IQHHrgeKV^@Oz{Y_k=!uowa<#7|wYU(klF<&ikM*dFdQ2>D)++ zz=5=X;5BSAAM~Mv)$F5t3}VlY%D!+m8(Q+}jlq8T0sG~*S8Mhcj`rE7+gkFpf7g@m z|5Q(2dMRu3L0VvxoVSs^vQhKzK24V~6g1<2KmQjg?*nkfH8>}>K_?8&_wHi+n(l4< zpwGYbZs0#pvoHN1o&5SQ(M5mI=Q0kDao7(IJt|{$T8Gm2FV#4V|C!U0*Ic7{KRw## zeb?6f@BB{pZ{hEk;O*5%)j0g#Uuyom-)hMZZc+0u%r|!X^M9YR@87THmR#`%P3GpW zcvWy#_s%~W?9H2q*LdTDw159Qn$3PSz~d4;UOgJZI^BluB=2S|HXrD7rSA_IZ^Sq%^w8NH z(UQNMBXmc1SFskq{6G`f*x#XV`xY%(a1`zIez6A_Kx3d;{@z!#)x&3<(c zc*h*y7#*zl_vE~IB|IAg1wq($U#Gwfiq3eX>`@_RpPtPIZ@JsVaKny3&J=P zS^ms!Y{Kf?FcfcEq)(zd4*I_(IIF6~Hhr*ku0XpaUNPXEQ;EuRrTAPEJ;yQrn_J2I zy%pNFt}^Gh$R_RWPsuyUXLgfjRr(q#IU)Z)@lQ3GQ^_B3fNxw+1GF;tBlaq}Co=4x zZu!j~TFGZOzeV?Z2H(xCq6a1q34TJ|fsd!+AI)E|9s_+7O{t@NN0n~^d@yjPt)RdE zt#ry6;XiYy7Jcz(=cIvS2a2(&juG$KJOa-G%C;pff zFdA59)Q^zIj1$7KY=TkXiSq+nQr|TkB(z z6U)nr$|a z18nUG$w}nYttD1)hJ`M9lIV1S$0%n6J~a5y6>c1V`Z0H#+*G>TMCgV1es!t5Lw)6U zo3Lh9p*B`;$h|0Qp}p9>ojab5sxfWB-v!^g!kkQvyLLKs1^=oX@2@2;gT6ey)p|0@z=Z1RNKE;mgG2UeExs>p-j`k9EhZK35 zU#j*@^dvFX@Al5&-oh35-~Dc{$ZK+D*mYAllfkJLY!;FOTKT%__&c&MtFy$*;!lL{ zqfI_WSA4?;^(Si6kLynqfesz(PjvST!_B1eSHgddJQRfy;!ni98GjhxGjf1G(LGIS zUDVtcb~1ziQZ9`<`8?no8hA-cl!X}*(SytdI{w(g7N}F^167Unf)0{1h{p++*bN!Se{07`=fJxc7#%Y-@7v-Je5dYye*rerD7JIx z>=XY4|AXEs@Z{?z#8jfKSZ*f%}puPZ>@0bJ>OE_$zSp!9`o?fVy?>u7ifX zFm_b*G@=9Yw<(>9ZnU)N$tzlPkuki-(95g<$8O>eI4d1cPv_W&( z^9t{BA@083QSYt^ad*Yq0C&+p*^AgqpZZyVyZhfEch>><^jFDyA-KDNJ$-PPpZh21 z)9#c%ca7#;ykVrX=dFfv+%=vLaMu;wt^emT+)aHxz}pV+wv$-v#oS4Cs+^^|bL6eD z<#=mYTEMfVUQSi!W^JhZT4WEzplc3-lAxf+F7b(*nZ} z@iuuUcuSv!%dGd3qeHyC;KKlKk&W3ug14O0MZE2LR^}>epw1(yJIexJuQ?((O5RjW z&MkwyY|faS@D!WCzn#$a7isJ7KJ*s$aQ5M+z5DMD2e=mUCJHaJX9|B)!Nc78@?Ly( z_6eU-IuGGT;16hH*nTy((mv3hk}*~8fopyf`j^ZVpLB(*fv&6&KL2XvbM5yP<#X(r zp#1iV@}=k6@4~&XtGI??`QL=kcZ$!3>NoINm>Kfnf7~E^aC`nw@N4ASQu^(l;92gS z0N%p$Y8NV-8S*-D@_n2k_y?X19)gcMcJYijp3t@?x?S#hMaCEooz24&muyg1D|<<7 z^VMQ6QTH>dv1Ffsf9tnFk*gxnQmm8tQebP@`riXvORHJ5{doBM1^l>nX+`}3HmnSB z1}`x8w$R3w3T;^VYbs+vH(wjr*d&&9JFPZMDN=bQkS-H&*ujQ22bO6U?jihG1UwEi!9->kYPwqkTxuWZJ5OM=Z8goJTsG z$Hm2YTo<%8@5_~KEq7GhcdP-tFV3Uu@5<*fsIAFXcB$J&|5EHy=lyl?xpBJUm5+(# z5t+p%#w)PjXCF+ov}uA@UNmFMbB{e6_z)<(LO#LgTghX`zSHneYdp@o)XjGE9Nx95 zzAD?y&Q<*fc-t;>Gr}BjtdX+g7_E%43}?&mRp}B0mz^cV7zn<8XEXBKO8U_Qc|4TU zdDb7d2G7pgREbYvMOh`|hB23cY)Sr3Y3rk9OOdNSmMkpeD#d|@@qenX{4muQF)hc+ zu;ntbirEYBISZ@;y+fmdEQT_0F3^*L2;sFdp#8zJ!|@X!sb;Z>3Apw}`! z))Ig4w1G@#xZKNWOl%YXtEk|jGry|Q$UxKXY!crP=yKFVM&lmlF1`zoGpfO^8-=~K zUH5zP*un19oFiKpGy7VjAIT#SmGj`c2i*)ldB{aF59fa3fxv~tQ&G*iaDBD&05N@n z8;|Dy%6VW*gPTEynwdeC$!N))9iiOXAUx|B=w7XDr8H-Eelm4Z9(fuQ%Qum)s%N-r z`;mOD@a@h6FExmK?ChS>WVD{l{R9(Kn|56*F(7O3$=a#gvzm4FUD`l4cIIzkzT6?y z(}Z8x4eE|dX)Ey*@cN#}&MC&A5z9-v^YhS-vxWXPhyB&5{`O8eS;lX)2K^Q1VApM? zy?i(qv8!i?*fUwXP$uWMjC*)uIkrm~fA*!JML1xyB%UoCH+`$I-ZyoK!JNFF85 z_%>ILRr*N9R9o|3!atEQ_f8o#I4nAV#jXG@MOZA_GE(O2+&X2nz{F^sQPG!Ow?@sU zvd@djnHsh5shx*E!!sn+P zQ~rkV`PjF7J6!8`4X$GkhO|6S^0_O7Bc zuA<2q<-eIwGDR+=rQKyZ)#K{_{t7&g2KA0lgQ0_>U+Irwmsn{IW7tz`a*6X-(| z=x7wZ{F(4SDY?&~oL-VUr43s3u!gJ`b&e3@p3$_#h)$m6fz@#EyK4;b2TE6Gub2vd zzdz;N_o{lAhy>*l&B_*2Z*QB1-^I2u*g`3X_38rnto?Vv4`lIyeok!zid}CHh$~Z@D>~!cr78q{s1{|CA5 zMq;Oo>GrU1(FSyCDE6@V^NCv<8cBZZa_r@Qi;u>(S~U-15AD6!^@c@{7JfbKkayW= z&7MxY$m{A};X}#T)^zeg+MYj@JbqtCwz+GllQk^+^3UKOyREv|MlhFo*xrzRKcGDe zo8(>FbQNP~i%k+++SRlz_QhXflaldbk5_Rmb8KZ(N)8R+CUbX2{1hD>>xGX@q8a;G zLnl7V-J077kD&+oY!t3oxzF0j3CgyuXhXIoc%J|3%IDhnuzb4mdA2FQx!idhg1wSq z--WT#sndgZ`M(L?-WtA};mMuYY7AYcFvgFxugh8OHfErA@aE8E zo4o$c?oC7e96qbP`8wymrqfldQu7(Q^M$I@rb+%Am4k=!$O-n@y%^=o1X?3Oid!V~Z*Qb2*Wq4wdsgT#!sdk=7=Dq^2 zfbALCJt`X78QQ?gTsx;R(F2>(2V~d(lh`QqixJ6%Zev4F&fW&BPu2v^_`o7V;V05FO7RNb%%=w5 zX>!(g5(ByqznxLqv{}SMS+i#P`|_ITF*i&h9xBJbd6bbh?(F0_`e$j!BzM**;-GT- z$l1&hv=msq{?7)YAc+xgTgw)7#4SR|VZ<-3zm-whNsM{RBe#n7c5*x%?MB zb31niDEjvzFg_~uvJ~rp-6h1)S%JP3UPR(?TXbj~vKBHIdeuN4Ff*6KQ-|k=_TI|GbS?Unsd|Qi|t&0qwYny7rPNX=F-{eWYuN5=8rAG2X)sc?1krO_Fb>`IR_XUKL1LN6gj=tVxJWEgm#nN zj_(F>j?lU4WX++}fVo>&rv0UitNJqC*)dPSz|XM<8CSAO&7C`{)ZDAx%}wayr!Y3? zgN#dmlN^(OgeN)(fAkW4q-^I)+atd9N9v=WJAXVdnx?s&N$zKn&D(%c8+0=}ih0bW z%=zr!j8?dL+Y#sXpNvZ`{C3K>mZzNSFDKtHdt1T(an0Gj%~G&A@`vcaF}%(gb})v$ zi~*ip>pHaro8Dc4E)lrc6>!P2M}Q0Z6yOq&o)|@yq+p&8*?wb z*K@>~_mdIDd5fOY+3`pA0B4_qKXbo+n`H}L+`7SXGmYpB&H?|Tz!rH}e~EVAWbS`t z?gwQqL!GO4*ZS@ISf?@^dQHZ#gR*-m8)Xb5bv1_QbTtO%T5SUZg-?5SS^*5eCEy_Q z728%YXYI57b56yaD|cJTh5NvVW9AF4u4=Pb=Q`GTmYOejR?*i^x!c`PurhZL1Nyk; zTaPjy=5;>vx`26Iz`V-v-DZrdXs2-Vi$|PDbu`(&1%HKBWXw*H^G-z@V!RL7miUv+T3BD2DZ{ow8uYzajKNOFcy+6_Na6l8w^&b}dSkcg~ zYwR3wDc66L-f36cxyIwXOMS^(a1QStR(&b`N2y-+O4WbR{ybo*BQul3Ha$RBCHgy| zFJk`^f94Gx=xK79C6)TAvy0CcPFur!t9g-p+Hq^K`W?5p8(ef_KMQnY!MrC*zrZG< z;Cn)tZahDL<;GDVOiw@Y8k{#HEI%SFKeo6AN*~$59-G<(TsUJbc-whv)EtSuwuA?F z#;&i-V>alV(FdyMIWL%V-LhcL?Lm&XxP?AY{LQZ|n{(=v@;NIVXVCV;s&1_P5%7*P z2%iB3qtxfh%ZL3fx2>nN;`2by=6=ZhR9?n%-J+8fy<#hSnK?bNo}4P^1XX|LH-rAH z2l3Njz0x5rrZTi!;$@W{k>BB(FAe5tEeYmnJrL*#kqKj*(Q3S1;{RT%pMWHG6R)Z9#b7Pns&Gw5p18c*7?$4?d>ThiT;6C7%l}7M{-E0PYEN(E zPBZp@u)oLlf8RK+|GRste0SI6$X5XkksM~LHV3f(S9p**DSEEvQ>KEyx_?8HoR-LL<9G&bPegk-4|~)z zPtMpK+sF&mL-`c%L_VQR@%`w9*hCkmolUW*7h^9y)N85ts(gbgUo7jkHgl%cg}(3P zL0AZUVzJ%iL4Y2Lt}PX{oQI(UV^he5@RhI#xR<5{T3&U8~JGHsO9$t+4Vu0+?t{F}Sc|LXJs?9i8>+rYm8 zKZyoCYR9_pmw1~`ndjT0e<2TNiM!xi0d{nOaJ4ZN)=M&iyq0 zR%1oR8u(88l*-+~yA6_Cu1j*umDkm#^1fbtx(B{XokL!_da&~ydXw7&RFu&O(a*{q(*$)c;4`09KCuKW#sNJJyEwQ zPPuqu;({vb#uJly-!Q#~HmlL|S0m?hzge^zIvPog*;GxL>cr#)HHn5OccHz=ooLq& zVNA7&7QRosV+iljL#K?yY5dk0i_Tw!zvk8TiIxQ?d&D6yo_hMP<5?YT*D)8yzhE@u ztE1g|{LAEhJ$Mj-S5h(E#>eqxWsR9{D!hmD>)=l5zE8mm1w+Q6_D+j@%2;Gv^h@99 zP6T%KGgq!vc3rT3I_sA;Lw-I-ds0u} z7hhGaK5G@+fa9v6z>oEyO>A3HYn8?KBHRRqqGu`Q3M5CM$_q$7K+5Ce#NW7RbQL-F zfS0;!lX+X}tS}d#OUkE0Kay?OQTFm~&|H7wV;#UKXRSynoZ}waXq9I!j)cGQSzJJF zfhsfneUj0%IOdMpg8$^|p@|VM4&_~(I^q7)4wGw&JdB!xvC*_;n9;m=nA=!2%x&H@ z%5B;L9s~R4O{{mc&Ut@1cBW{Z%GcLU8*0yFZxh*tTxCLQN_;c8z}*kfqL7~@Z{Db4 zehwv*cPYQf35*Aw#PmAmeTcH^+!UV8o7&9Ukk_Uiew271c+sewG0ups;CXPa4(>yI zTz&Ul>P&?`bCzJ6TM5qSfqnAMGx(k#&$9~qq?`|m)*i<8f$X8 z;&&40vlWk%x!We5vs4CNhq>-gG@letG`6wVA7($FQAKXQSYlE-Ms7do!gct+-iH5c z8~(2kvwka~4KJ8NKaI7SVQzTxzrne9ZsC?E|I>*M8RLKRAHlH&!~A{E8^)SV!{~dcZ!Xi5 zogMH)Yq;a=MfjJ4eTg3k+|MTG2RhGD=s_yxo>g-<&T5OeXJUf}7mPF06>uodk-6*M zH_72O!XnRZHdcg>%vqi%o`FuR*;LP6MbScS&0Fvh%0Eu@hbt~tv}%{plr{=Or@Tp< zhTGIeezG(f0BxP5l6P#1B>vO%8c3*#A}N1((#qV=@-*T=J*9h0S8MvQZ@G&C-2y9X_qP z?(f^leT41k(AO$GdeYh?IG7UN(HZk^@Uki9{H)06aRYkiHm2j84{^>1^w4cFcVaqb zoTpb=f}g53 z;_d&ge#hH?W-C9cF4hmmJUdNU+xVbvy@; z8suCT952aFqMK1ZIYs$touXNvWnBHaipu*(ZnDu?_V0IyjGN{ zgs%|UEiqYVEZy*83a|dUysts^4j(A}MeS%`K8>xxr~5nE9|m%*XK_DfFR{Ms(O+9z z`+VzXDdC-Le6tkq^vdRlGu9%AS=mtNTf0zqVVCOKhIoYyq1Lx*Lmq0lu2L;%~#4Iu+*? z(z+MLE;6u8jy3E;UM#D-PxeTL@~P^I=cd5boJ09|g0oEV;A+pYPT+d!t^@JevlxfM zbDo1|lzmzDi=5-K_Ut!w3cBKzU5PtGZz6k>w#|w@70#LGz<1zdP&US3jn_fH`*j%7 zzQQA2_IISX=h)w>Kk$k7=}55WQc<^|pKo_X?r2|*4jg`I2f9i=r7h>PTO-b6R(uc~ z|0if|fa4{dAN%H^&BSi!(F2KZUq)yZb1sKZeyfaGt&_3^E13RP(J=+5{1$;zam>Xz zc)*G_;f1uydm+>wUe*QdVzP&W{(!x#hk{*Z(_aoFP3{CP$u{h@K(7uB7XEpIMf_0d z{*Nwrt*yWe+^K8UHYglz{atzdXpt5OK6o*6s=|v{eyVMC2~RgnJ-2SSkU1jT0z2r2 zdKS-oCU`gVZ&jVRnPP3QC#<8M77y#4FZ_3@PAvavRW_DCSM>U{kH2YooB6*E>gE0> zXfyNQWE|+|1P58O^0IfH7nC)p2W8C+Yfstj%%cr?3fz&{+u+=|AD9U()dLy7teseX znyMeme+u0WI99An+(nn11KPio*A4qji!Pjb8o}=le*a9Jufgw~7of+G-+EZSRh`>v zOe!yh8cT3qZ2YPkQ}HbOcx(9k!Pd|&o_~raNF1(q(!f2E10PZm<`kTxa>j&kE!7`D zt24W4YskR1$kBaFTNO0_2H8hScZ-fAfO%yf#H^Oi=*)W`_lyRo;9&=A&)f>0!1o{X zPK|@RRiv*>Nw*3dM4ynZ;02CzzP((6SC&N|cwX-Y_l!~*U^=kOOybaYe?*zg(PQB` zu${~S_C!TH;Psxw<8LHit{Ru18G0O>B}^4W52(wr2O-ta&1b|7*uk=QMLfnVuFs7kb#N zlBc&hBaz34cYRHCwF>9WTphYt_BZmTDx+Nx>Tt{IrCtx};R}zSh_`exX92mdN_D!X zyB#wO^d|6yi^<8`B)A*4m->ZmrXq>8&qfm8Uu-0P@GSJEPDKB}*!}62djxG3j z%UW>nWyM-#U$V`g>4`PZqIdX)&YA#Q{F3L(n#fwYCoB}<2E`uYHvk9>Y)a_Lv~!~?+nmbw4UUiPn*@Y)2tMwsZbAK8qp7XRZAw=e&3Y9)PZZrHvUj)Wn9fi*TtC;ehkOW5XB&(rJuFKd z@E?9jbe-tdyQAfM4E#rj^k>-zrv`g#i0%xZYw~-nk%88j+=YFpqro0BM9$1pPTX!P z27cflFZEJ}v%RCSO3~@ZGw$G$YbyL=G?TuWUg*YjPoRP z35}OXu7beM*P=%gLv`{pfnSw(UYLW&IqT+erjE;CCr zX5A?3!}_0SP0R4^RvEi?4`UO(EBZq{ivEzbzXLrQ<5l-HZPGXshoEB`;&K)l6Z9eO zgzj2nVq2{{F!xH3sLBJ1JdboTb;eXLVQGx;|9#M8$P|fOUNU8aZ$7#(+lV z(I1!7$n3v)*!}DnG<@98m5r7-N^@281uHSC+e(Q2mc8IS$eFfghAA*{^R2*zIQ^|M zZw5ePeO=P5-(9cjM_9 zraPX`*7HmEh;@)4hz%KFl`q7%|Tb2K);8BJ&_ zSv%J4q_=~$)2vx)4-nTVL8!QgMdbdpS-j&#<>Kp#T_!pE63~U@K5S<9 zbY8}J5K;HBpyL&PKBYTr1W)lT2=Jp~y(i1s*;RrcO`i|mm#=NtBzf zo3o?v6fw5gu#Q6y2|W3f)0<Q7&cM{mg16!$QiA=GwVLxtHMYWwPyb8%^rX+D6SeHS*@mm;#~5)B!AjhZ+|XX@T!$su%(Ug-VfX7p2*2i$_QL*tIT?(*Ls z0#o?)()%OQ2e|__@|-iKEozgOLhOHbtOWO8N*Q-zTb#4FigTHD32`4d6&|VH3;dB8 zSS#V-1AgVZQb&At3SWNmP5cCYuHK8x7QFvQc`tIHta;)0&r80I?S|qjy1ApN4Lv3N zK^PAUzEQ4$JVC|$NH-{chr9$w-0|#-LGHjR($m7+&b8Cli_FxzH?-;fnm(cP-Pl7P z#P-GAP4{(1-HtCnd!{J6T8ZX1ydeClRZi=i3(dRjD(uo))jY?l;a(Lz;w+EEjm#x6 z&f~bzdQ#l}aNjU!U);Iz&*W$}`y{^Bv!Hc*d!ouF*S=nJ$r&ZQJ~*UH90m9CY2Lk3 zZ)M!s!M%5;Sx(=gZc{gF&v{Uyk!`_PCy9+a6?HQYTZIQBy#}`8!h`W%V5k?zQMmul z`^8_xt{qb9qp{>=A${yRF8xi`U8;Lapcz{$X@<~oXYQY? z6zp!FQd8P%DsHT6j__C>yq1j5ot%ysliMP00^J?_nhOsn{Gaf263Z6sU0D-o+}P@B z&X$XgN5@V$p8Nld??Le#4BHziG&9>e$l3RiG&5P3gpSD>cCdn8`Ui{jGVCK-opPTG z>E)BpMat;qfsYFZp{f4j#k#-biIArLD5R-Vps6#VsTn0(C05^|7xvV2!+9Dr;{9^d)V%9WL~RSgkpov#E+e%KP zSII-=YtRUMFU+Gs&K`Vt^ZWV~4I@ts{e*3;!Iz=)T({%AfwU^*51~bjH61IB_2$lT zA3at*<~9i}ERHpM&R;&(Vq1*$R`Mq`4MJBZ!ppX-vL*OGrAURY$V3F*Sv0b?ak zQ2^I2a$)!H?f(k=INw&XXVm#7`IGF0#Td`*4Mm(e(Z1o#i@Ot%c_(o8vB%2yP+?3p z`s5UTF2bu6zTEj1dw67jJ6+>GemnhZU%0+=JM?&Xe>ZaQ{_jVF@5=&xNMw`twe526$|!Q>4g0Y2-8uT# zwtx44f_Z7(w2?~pac$=_v~@&i3;ZFx12!VHCfRS6(^J~~R(~06LBYB$72byYN=3e7 zU!bGSUS^vqX|F201DCau->F#m`=0~7g$aKZ>MfLAN_!5~ba+0A_0oY$8*qmgR`#{7 z!*ISVa!d`6SI@a#Bo3Jb|wJtvBMx?b^X-lL7g{q0Tpxn(IYm*+l-SK*b3g&e!# zsBgUvkHH;-Jo9pO%tgic4HzHvL~MHzrN81#R=J45H5+@1n)5@-UUHG})8ZErkyrv03WPIzZuBKxYgD!UCor14tei48}Su^r5FfB$onc-Rxn58d4f=P0@D zLSN)h6z8dEGjlb@%UrM7ccQue|6u(}^ZGBXAGu|XXTd-G>YWFwBX-YQy7%Zrcs0}N z&r^^BSNIcI@mi&09Y_2`RQNlQmAoiCc$K_ImII#3cl%aV?vaGLqxu|poXf z-tT;dXWVNV`q-&w=9>OGVlNjTJ8(~Y@YMU<)4}`pZ`;~@Azi&V~d|a7v~5*bc$YeEfshb_w6xbTpfCzImx=D%I1`Mu6#}d*DCj& z#8IVL2=^k5{%Mu#h!NMFV{5d`f&giuFf(;lAv5=Yt=-Zh?@U2H?q`JxX_xHl3KR~o?k(SdEPE4BrVl=);Yqpgx} zikzpT4K*%oH2HyXk-wC8=jBGbs>~OH&-1Q0epz>ZP{#ON@afJB#~j9pt>g@9JD%U< z_3#?JM?dp%{3e6-d4~Cv`)CG!a;?yfk`L16FID=lh>dF{I$OQWPc9$$$+0H*keniR zh|s6>G_g$tJW*yY`;Gi&8F(UK7{mwCPWM3HH)*@%+l3!ue;fG8bXE7)4aYF^4BE@w ztn3%T7*2&RQ@(8A6LDb0K8s@?q|X8VcKNRh{pk16JMMfN2A^;KYrz;A7@MxMHj$z) z8aP+!Pp8%*^)1$-;d4ONC#-oJxL@692qV6SkMn(H`;( zzO?1#ifdjLcSL){w3V&3D$iO2`(T{8-_b?@hyK{%9@Z}$yXgt+Z1J%K{}L+aes}-6 zO$KkR251y|u|ek-v>(7BKcDfKgO@XZE8_^^wUqW4(?`K8_n;b^@`GZ{#O4>quO`G# zl(8mcFH5|?;tx`D%khb|4g9}_?#bSk^R~Tp-Er4e{B#wJ%}=w3kVDJHC+`Bkv)_SV zS~y>YcZ&W1JCO~_$Ea|P@yR%W3;F1dX;1lDn!hS*?KFKx`ps;CCNRES zKYoQLOeQ?g@Je2+6EYGw4oOwLMw_bNM`LXuAR>{>*yqg)}UU;26 zm6Xq)WHjea^4FtReK(H|QTS#J|AhQWF3+7KJ=`gup^RDYTia4eWIyNTHSCqJ?WW90 z;-|0jxue4tdyMK+%D4BVq@2f}GY|bOFfQ@WXu?nJ>n8PutJ_;X8T&a#(B3 zssD_BH9r=8;7Lv`dW8lhFYhRSzhb!J3ob2xR=(GaCQJGG`mH_iMi(o7T=Ktq_(#i~ z@*5N$<$FY~B`%Ti;TIe{(}g!I!Z+l9HcAc-IX{9jnIQqs(rU=39dCvH1w0u1PbA=3 zQd^2`C|;tXe%@5|V(s`KAg@@(I@zl7I?|sPBNoE4^srz27vWXSHqH+DOmT{Cn|zE>=EfFWyQ_>Qjo(N;K*r&(`&JdHg>9mzfo~4s z|6CDwfJt#I$HFk=6;u0YzaNhV;}16~zVKH8uXo;K!Kd-PLHR>f*4-YKSsQ%1zO1SI zF|JaK!v_4yldW4>&x=E!^0UimzO}8K=2!3;3Wk|CMD}6q0WVVYIWF>iiiV!S{w7wq zL_;%wgody$i+o0#I&+KXQw5(v9H^pcY>7`0e`0uq;y8sbMOQ~Gll0Yw zFQx45E?LJCU#9pA#vuNw!8qu%1QU2K;lYKMl-L{L!++{ znEy`3QZ6GX+L>sS_8$fYXXwUi**lj-ocUH1A2pp^W8}@;mh#9&=&wL`)yuss?Uu6n z`Mtg5tcRA!{bcd@QOO7D{Foee+z-Kd7xBO$InUgdcJ3d0C%6xD#c1wAi0S?x4&djt zOG|Puo7=nqy1vaanx~W3WEwG(yLg757=Chz)jh<-=Ak?6_mG|&jMr^Uqx;lLd(w+? zUZHbVvGuv49xU~JrK^eY4!w@_Q@CZ@0kw`+W^XCC<~oHN|Itqm+BoabWkxK^mAmHN z-yHYbH>YgL$2c0@WQG6HE_|dI-+sAAG8Wzi8rPDSbI$-i@y0Vb?vHyz-J5BnCrpms zuO)AKhr1YixJ&L;^m4$vIm7w6P@@mcIj|nP^!c18Q?X6=;LpxG&XPnU`(|8lp2_?f zYYMC7RBFsCMXgLF!=9B2J(n{Z1 z%uQm4cIQL`=lrwS={W1%jyyTT@n0j)!>UL$f`3m9xhU}QoWPhTV(;o9&RO(g*=u=D zjQ(_qA=mxI=juuBb4oOvV>sODME(TbuA8WNbrZ_!r2e}*5j$iPYbAFkU{h50I$@_y zOl%~keoB?m1dc2xZ}swX%j$K_Hu9H6q>n`7Ir^%|YKgPZffKshv<{vq9k%F*EA(*Y z0=+*M1NN(|8uuRsXWWU=h%sS0HjZodkh3AY+b+-@hkn_A5FKk+<^zFufP3hc@%ISI zr1k`DEf77kU$Err?!x!^2Hlx= zRa0^ae&*y`5FdSeCU@)Hu$DZeO&=?-DK<9E-caz@vD}lOE8nQQZ^=Sj=+q2-`_Kubiizz^{k) zva8fwMwr{(3A!QuCe3s8!rg0+kmrOxGHK`9DW>~<_TVV`yd2lH^=hw|xB1>n`xx&b!5`K^XT9+6YQyH-4gGkL zvvU);_&W1l4L{@7yATI^YiJ!`oWx=r@1$(}WhGj-EFvpZ@`YKyv)(oy3qJ?fsN z&T^I0$r*l?;pV4D)E(n{I>;v_c&BBBKVc7xO_K2f^X;<7Q~v;b*bCR`8z|%DIR7VI zq8Co<+-pqemOX(lW;){Cd8d~A^g43n;=@$c1n$sA4*P(nWQS^(HiABgZ+WbPIW+1r z7xwxGv=1M>8d}Dj)!e(G^Yq!wTtgqMM8oT{p1T9SBKO_~;V;@VA9&`idO)kS`9bc4 zd{XkK*zNgqJ@cvXT`C*YGy8&iaz=LPfnGg(za8obpe4xZ52H^w-`1Rq5p8)8C^x3=(5WUo+pHh@cbIp_Vx6-TSR-gZw?(&?ah}#3>QiuT$L}3_a?F0-mRxe7ZjTWv?e-Y0Jv_{rbN7V8?%99#+h?V{Cr*ZEoFzQU zpS(rkI?NB&!FGdn@WOSlAFLbhu@3moM7-iU5Ub?3zoqgWC7xnG{oswGiR|6F_pM+Z zyhV%HA5|lq2ZoJxH`jCKtv}7_-8Ig8T-IW0uom;J)9knKyLz`(_pSu5=CW6>yfFM+ z5`I?e^4z|Vdpo&*-9L1t#-2|5_srF7sl%t>rK-nXPu_D6?|*FAS1!@L3lHi36Ibi@ zQr4pVEuN>+$!~uF*jzu_Up!4W)>di$Th|-OnqQ^7U(xoT?$PaEpULM^J}(MCmxiA; zx;*!Oa=6d_^(k8NzAur_W@$Qk?GkVT{tLVY zyohcuK<4epBV!@=@11G5sGc^t~$1*G|^FlS(eVNiWR#)lo$&vepQH!%SrNndFT(@y+2r#04|c$%7lX z-{g8|DzZ8Ks^`(mgXcT0SNZ>a^V=zB9=t{U^( zCw!*rXy5arkF!6>x3ye&nXagOcaedetV#UJCUhhVwB&}(>>b7^xjGhF_?o|(O2)RQ zFbFDgZCbH19T!))Tw+d8U^1idIv-BIn3!bJJ3saeJ9xK zdF~(*xkl}m%RVj->P3MgdJM_4?M`G)+zDcwIbBPxM;1hv;p~u4;wP*iC%2q^NpvNi z{GKX#HstwM_|4^(vwLl|Ujv@Nr#XA>sFAgDM$W8pwtu_UsjjKTKUquen~N;GTJ#L? z=F@dQx=c%Uu7=lwhi`e5{qgbWb`ci9HC2-T!G}I@0 zYY@u6Ug5pD2TSb>Je7>!_0PpM7kMr@<=Jq}8_{X4X1opXylU-_t2;stl|2v%X?p0( z@zFAt(7i;%O5J!G8`{%m%y=fF`y2j%o(noC{%LD7n*S+H=|!C-v54O}TX%K{KEU6Y z>#&PW(S5m>1KW~^+?8lRFFFog0sex_|7`zAkC8csr`@OXF@Mizb$|X}!E4S+ zIfrgiJbq%_KFZ$!P1DXwF1RV}-0>^RiOy;f_^ZC)8QkY`F>ldKvGTO0sq;cc(y~?pb<@ z&H3`eiOzd}m(-QLdTrF^J1#6D19wIH|D(mt2nVR#H?uv z=mPhdu!rC&0^J^X4St7t0B<9v4;+HVf=lj%E$q+57_zxZrocdFT&K_7+f^A39p zg1mxB`YAkk?!lz>Y2;AaWsl2U!~rgXkDLp^o=lx2`7J&6xXqbR=v}%$*}goLj6SON zme9svOw?f>K^<+Vhfi*COpaAu=eNJfoxZI`Vojds;3WDW;CNEf`pF6Ard@x$xe2@r z@6FyRJYlj{?z*WV_IT+|FG^0saLo$wsXNvDRQwn)d!TH7-z<(bgJ?AbGu5CXEfq)K&Ul8A^xJ7VnZoJq}q zC|;_d_KI<5xF`@B614q1c8-&Ti`06$z14b@3PEjckL>`_{`;M#ngO)_TTd(KX>IGj z;a0URRe=Dxe7|??J;O{cKu>MI@A>jPJA3xt>-w&Dz4x_Ndd*_=uG#c+2Dr9Rk5=Ii z2%@7u0bYL_db0KS9Eb)wV$qcs>FUg!z;=*zaj$?bpOT+w;VVPZBJ$7t}D>aIn9z;*#WUOn#= zWt5J+gJcw!mY#89870=@jO|ia@)?smnd_T;3cg!q9tYrSuOgdn!xwZ&w_e3RxEEe?-FVG;;4u7f zyH?d&^@tT5|IO&?eZHz)Z?#x~l~1If+3pkg<1@p4=l7=ruZi4C`8EFZozM89=_h;w zecpS-0+7V`=IAH)z%kWdyRltEX== z7~kJh4(B9>4D#;q8Ifi~(x+EH=SxlMG}1=e7yYLVzO-?NW?ayW&F(Q@>Vi%!YHaXD zOP|-H(Pg~*1$_8g?l)HLXJnghK z+H9oF|MaE*>3gih|4-6wpnN~JyYI0c5qfbac}jP(*YWrG_Pm~MX;SixGwz`7{PIlJ zvNvJ79;Z2v^y$$(--A}{@ui~~#-j`0V#X)y6!15Ib7Fr-Cn%o_&eefqW5F3exbq%y zU$5}&_v3#MI(4CgTrD!HeYgL^1~kh!2R>TSDdUSSQllG_k*O;?_0;5M-SKHY`%j;q z8Yw?pZ~pY)tQr0)Ce#>~4-tmM}dO$a>`iz#k>M|{L+0B}9 z`Ij~8tgmU&`hMMcs93koz#dcoSv~saKkKQhPA5$6=lP@=p*!Cs z-J7@Q(YKD0?pLIHku+~=#+;+Mbj~+N=+?w_div(u_4J=fciBUvSxcI4v-j2yHRqwV zTKY}wNE1tR=V8*lCD&(3_Zi)obD5r+bF*$-@nza2>DH2_M7KWpRXw`o-zoERq&b~5 z#iW^{r>^*@)TKq2u+IO3BX#HBzpAI-{w~)#(*24wFOud>Jrz6ZrF)7rq`N1{w}*6N z_F6st$EWq^+h3JBwCLjVdH-$l{7`2tJT}y#zHGVCKYmw_EV44>{0_dQML!0QHUEP#NA5Kfx^>n;-TL$dU_1@q**JXfhxO<}?9Jw_zUW7`8!FwX zpL5>>@8S7tpY=tbrL0kZ(9>U|+%>l_kB?~4XU_rmevF*TB|6HZ;NS10T*huE_^0M^ zJKt{grGLDgbw5AWqLiC%*`qUODfe@{U&48xf2Q1rM`6N1A6q?$0a&Aegm zlrvA%zB|kr^w-E#<`45m_>8OHz;C82zf*l=@`Wb!6Q692uR!k%-wQ8Lerp4J;h=M> zQ&Xya=pO7({uAARrX$Pf$TB)UFp*~zPiS}jM^mx?`CL0q@>;&-VmvHA>509ee97a+ z5B#;?E13I9@hivC2S$s1Ggsb(sGN&-$$|WLidV5OiTI}NMVrXOo+|!KHqL3tI0V{B zyg^*~yhT1${w83#FDbugyJxX&TBG3W!d1g(-$B_iSFRtz_fLO)Ui(CD8@6879E3!F zuzNB-BfE#hMED>2g80eYJ=~L>%J<(^!(6G*B`!tI=tTb*Y3+npm;3wJvyVOe5}K7T zOCtV_$Y){NtIqKaSUXL1rn$885JRQvIh>jvru7)KGU)ji2~)Rh-hKjYqLB;`5Kt-}qi=k+%n7$91;P^c&|gx3r>ii9>MA zali*V>!qeVBcGNZvx`k)S%B%-Eq=~y!9F(|96Z=>-)~Ax1+g$1wAP=EYxv5(04WWuZ zM5bKG`f7n=eqGuk;(7vtdy()AWVFq!-KE?q8++JG6rZs4k9d^zZP><5KV|m<2fyP7 zZsqrS?egQ}R(01(-Hut)>(y^Lz}GIrUxfce{P}KKPx4O6CEavoXMEi_xAUkYXFzL3 z;HZ}_oK4qx)Z2G*JGe*8NoP-b#?zdwI1ZUK!^N22LrfWckaH-+zF|K|`OFQk{9VwT zL1!c|XVn=9G8esl6%QLv`oX{BxYYGI^H(cIYaK35&$w22qSKnWUh&3Nna?=pjef?q z*RxxHRd5IR{!rk@xl`=r6GP_Zci7(-ndI+N-vjagrS8G_e>&!cy$<;mEl~7MOVX~~ z*-hwLoO5(GJ{aP<%BzXvBCac3YeH87vX)e6ozlJFCBn-L_*kTTqdOj^IXY5F-IF)> zw1XR*ry1w`DcS`t(I&S~W)wN$s5OFime(CaP6vmZ!L^M?o#N@>_1t5`s~r>k6`Rt& zB=CuM9y6x+d+bHuDYgUiMi^}`@Q!xKJlob*Drb+`qZyA((VG$9X37Jfl25*AKVp_` zF#K{pt3K%4J@RcM{=UW@bcdtu8P(pWWbU`efq4sYzvZ-D`ZJaJU^1WRm%!O=Uo-EH zw=X4gMqr;TdeiQ1V-J;%k;ZwKVV{F$SGe{x#s4cVclm$iUEm9LA>d6}HZt#dU znK#48HL739&*u6ib3?t0eFoloq+MuU3wZ0nSmEttU`<;E-h=TLe4zabZ)1v2i+@JN znPVd;upxk}e#NuAxy4?q{^RG<#lV|b7RFbJoa3HNm;XL?r5!L!QWZsXhM%wueu=MOXk6FM9vbe+vlQ=_{8?OIzY%#`coK9Jd`C{uUEKsbx=XLlRP`~h zs^r|qn4J5VkHfLkRb7MLca$l34yfzzhr`-g1K|0)_Ys~Y!@#rnRMJIu$ zISf3Fe=t0W8O^5&+KVTJr|1qRrNgnqL&LJ;;QK=pwDShjgpR+Qm?mg{a@#bJ4kzFK z$I^t3cM4(N@dFR$Io(urQPwfCSET8!@oD*}7w59dsLY6Mrw`iShiwO%-`VHU^J-{$ zf&Z6sl%6Oup2QW~W#}-Qum@oeP_jlPWlTn<6q(eFpD+BwI}`3HY(o9CvkzN3awqA+ z)OkT?Ph=zZrN=gFk@cO>sAgmaWC!$l#dkzDoJ^Ya*kpy)JVsjf6&9Vrh}{QG>B!@Y z+D;el&AmotO|RN#rqbUlK4e$+Y5AD=9^iwySP=SWD1BPdrVdZ{?XW~{uL{t=M>2Az z?jRT_n9*lN{}k-}eQq7`^IbhU+wYEtU0vDVZ&Y^nrBvVPces*2A^=th^jeYsXZVx7(0AIT! zlk1M4KOTvc+}pjOr2Gi7Nw??{?WV|$<~^b}y6H33oTH1b5C(4GQ>Dn^;Kw9>qnC(0 zFZQH}R(?$6AoT2ZbY^7X&SRdvCz*=-kD|AS?7J&;gWsw08p=Z#-`~bwS;)rzEg_k6 zsd!xUKIB5t`$YE_-U#0Mwzy+dX}&wK-S%aHV&W6umHm5C75D*&PmfH_yd$!|=mWH| zTl!1fatZUP+dV%v`Fm_}rP2<2!Lz_{y4H11TlcBU-P*<>=-p$|2U{C4I)x5mRQwbk zg#NTTQ;cn*6nT{MCB?p{jc~`!yat^O8-fc{(Vdysz*A&JKkz|^6d1ZP*AuCVnxg_c z@BG{EN?oq*Z@w$EN$jnx1rs}6x7d&58*qGA>Ccn5utq6oXF0FSZ@wP!nY7J6THqvh zFV9y#20ahEio}q?S16PAb+e=$ zhkeVnt+ak3GN}{W4}Gq@@K_{t@6ipRa&%F@va?iyci1n%J8Ucpug#ePA4}mKZ~^at z(J>cBV$%R#=)4N|ipzVCLtws^QyiETCQO{ z`<=kko~<|bD|z;O4ZqJXXCPe`dYu1#f~D&D6!qlzFmx20I~zNoyB3i=zN(<`vIq8y zTrPXLi4ET6As%lVt^6tr!2xJ_oH&aLJ>nO8_H=9s!ap`j|8(^7L2Ci2+qD-L^0zkL zAB$9;hTr~Q@!Mn131iQ>;6t1PtefuoUDh)+GrykOR*D^Tw3xjlHVCMr&?Y7qrX}F3)J+WW3%qE89!7fHcW66o~rOq&6`+7s-pQAw$hSR zrPzvSs~?;IAKdn8bA>Ns0~{fI!5+UAnhhSd!B5-b@Gfi@VQd?~CsmGZ<6Pa3twVUC zIpJD0t~VO-aaud=!w$4c&IL`kv}sk_Xm4QKze$Xs;B<=e^5#2s3!x3tXY62Ni;YYF zup^1hNMhc^4#xb-_6>UmFna}CU4Gw^vVY-_Z4;c7u~L1JIkmym#ZEqKdYNM~j_irx z+5I0(#etL1{W@W>OPLca@l~cO_+22s=C6~Zt(*}Io;(T7!8hg79htLY zC+T=LGNqik3ZDu?F|+=jgnd{uDI_k;4zowv!dT;GMZ zxbT>OkA(G%oxRNYUa2dxelzm`Uddcg@&oJ2!DVO!7jyua<#Yh%wvV~3W5<-W53W9t z$0woLgJO?>o4;M;lgzk3uwIyRG{AG7bAAj3zvQoh$!LM8F~zN0*7Bv|Yqbrg=hN`B zpZ3>H_VIa9`8S}atVzZv0^E=Zqrz8}k1!_Vp}m%ZpNdRxubTlZJ9~_C{YnqXyZg*&mkMnG)`RShz}kn+Smv=`=A=tUvGrCWODY>A za8UjVzp_0lJSy-}Z0>Oaz~;D2DEod6@=-8O0fE1Zhw;bYGst5%O8burp1Cq(^8eUl zuv5wS6=mKv;zcej@y|uzSB$|imp}ROBQ^J^br71GA1@-$@{Tz^ez0wv_9$Dpf}ip! zY3vVt)-mw%7_yNo2O>K&kC357*7EoQx-l|`=q7zGf6V-a_PTx=Grrz!OV}L)<#+I- za|1Wv<>F2JTa?-3>GwNm$B=X?;`ykh->LWvb#d#1jB|mk+&=Fu8~+J$ms_;<#7}oQEjxFKO{Bfzu4mCr+hwnf_V}jj zkzXc=o=SUiaV|0^hr=7;ZxTa-e$;1oXP^n2`y9W(D^_gn0)NH?eAcdnW-SO17t-11 z?NLw6hon>S9zkmt@gb*6x{RbFJ_PyZ{K-%N^BBtb{D}F@sy59>E>^s zdw)aW^-yC4d_372+=7;>ylO0xDXGJY56S6UL-CPp46E=Hm-hl!^hErF@ByK59$bmJ zfkv^fFL0H3n*j16u`kGxp$+_Yn4i%7po+U8rXm-2BkA&DXC!SlUnD5`Jh5vm zH5-33pbW{EEn|Z!1Gr+h6I+x~@q&g;6g$NMaPdi*WBBh$ZwjA6UVvu1vW56t@X=l- z?}^J}zCJ>2-oxBT(T%NH3T`Gy!jl_zif29%-lW$RXDK&zn7*lYSd z|Lb!?t&!Aa-n6oq>IPh>NeqhVezQL3{pymgDn(G<9P3VFFU z3*I{L-xR!4^Z$}>4}NE)2bQ0oW+?ciDzHTj7nAGGr>c{dk=I^T$KNw%*Tt9fb2xNz zdT<^v`G1LS#UiKP&Qy5d*qxHiRpDgnE%FX24~hJfwL97`ZX1mZStd4}oDDG0^0e3? zM9%SS)=5|XZuw8elY<%cU1V|A;`O?In~qwMnTc=h@#3|9tawjw+xOjc?|JEB^F<~% zI?yrDS&&7J+cwoWCP(4>8QQk#(%&RDP4@07?~jyU*e~sI%*+qmcE!_HV7auZPw6cx zo-THS=U4g{^uRviILD+aYm}^@>K7ZOi$6t@2f28{db#9*{9~f-T~Q@buS~t&#F? z0b_Jl_ENLVtCfAw@on3p_N554x?>dD_I+ui6RO;51#YCR$cOB+CUI6yi_hz`wvstN zNd5!Il)Pu5=Q(26RQyf5{6zCh;Eo@#PuX9z>=-IPV4oMS+2Pu^7_W&l2H3aEA0D@F zVY@xIhCOC3Wd9b42m34RTQ07>nVX9_z7zX{Yu~Er6MV_qx9IzjcE6$Mr-41vmAhuX zEw*abr{Q-Y4oG0!+IlG3vI+hJ?ko5XCC3@FfZvcZK~4ss4l9Vhed*(@xrSb^GmB+E zVFz9)ehSeK#Qw&9JGnDS;D<3s#;Hh)c{u+Xa1KPmMcB=`{9Kh>lRv_`lP9r{^Se}H z3dQ#!HpLDX#-p(z4q?-y&5G|UTs6&~c({9;iyPGG%0B0M-}gy*-tR84r${={UtFIT zIOxUADq1A-RN=bz1L`T@=O^Vw6^w_(7u=cgotUqsWIyB_pB*^15(@zQ@%x~AwfPm@ z;=E^{k@byez?(RK(L-GLCObtYv)67UeGPCVHW_;u_yKwRO6-PGEH$Cb9JUT>tl|KgY`%AJ2y(c#X~`I3@8f#L2*Gpga7o^eg%Z?Z*D( z?{o1gxh}t)eBYszX>4lIQ?nVjjd9{Ywt0THot)`CS{K;t(})8N2+TzXP5L-rnBQX0 z>(B+q9di$7O+CZ&tx~>TV|!3fZJ&TXvN;RG zQP@BG+UlhBLJMUt5VXI`{a>hPPJd)U4H?_POnUs;eb>DP?Ve}=|ZV8$5r`4=vdX2ODPu*+k;K?Cwt+La(Bx#D|D(nS<+o z+2c;mF;;U)d(y@Ab%N`{|Gl)XO%Iug`4)zcQ0`E;F7{XSM)u~>g$BCzy}zfPaG+22 z>bxb#^O=i7wM*JE;oUy*=PlxQ0d8jbugq<4fB(mkSD7=w?cp|$&X2>k2K|B7W4HGi z+nTivBPC`7d~DuKta%_H_#|<79$n4h6!p10^n|fmomrWCfrnFPwL=H60hF^I#pm%| zwT=lN+37AH#XctEA+!)%a+U@n+n%Ay2*%HJ%+1LBo$gwc(TZ1GPkV;cA;3L}U+{}R zz<{=>_=RHd?_9A@AwTy#%Xz9D=AhVTcMLu?D85v^@3@Nn1Ikhrg)#NHGV!gc^_usZ zV}UPc{UHCWezMelBwxl683no7E$=dDa+%Nzu|Y@HpNl<{vL#NsSo|Ch9gmZC)6Y`v z8uUIk6P{fkvbdYJzIGyUhh>cRb&zIHwQ zCr6wh3@)<8sb;^jZX|(1#XK@m5o12#!?l{tW~J-;*pY?ibrBxWbV21 zCf4}(!L8(ZL&H{^^8VtMR`J*2mNsc<+)9SuU))NbF--qY|Ht80Z2sR5w>nNQ#H|js zK2K=daokE?c}lp24(8G=)@xL_x)Xcmicf!-dE0@H5`N0swt_WEigsvz_04Z$OJV-{ zkx@t+3FCLkmVGmRKXi0_zO=PPc&BA+ffC^h#I%lvF6GHH8oW14$6|fRGvkFWNPKZ* z5^Z?c^b1`ZnvTWrlY8wPM9Y%I?($7DOSA2iXIVEZa!X`=8+(NNL&DFDO*L8y-X(NR z^a@#XDfj51jFvvMllI4kfm7_=p>eR|FTxiG(l^CFguad5!kRjfnMDuMu;Xy?UVNtl zFC~u!cG6Dx%-@A>X$K2&OWSgsZfV5cDS2)(xRsL$L>_QsD4?q^3tdhAl2~hLpW^AH z&C`kFlZ6)xEf?KHcrdgRTb9d{MdpK!64wcTS2S9CoAwabS>rt?mw9oWC#wIA_p$!n z1L|LJ3iW^QeXRfW0rh|3g!Oj_{I%QO$NFCxQ2%u&tY3|PY}NZ%|4RevztXFJNSRFJ zF{SIYW%i1VjaVt<1EE96V+|STnid?iK1|WB*fYoJMc&#m^)0zoee;=RO4q8)?6uin zQ)GQ&9rotRzd6GhCvn+tmv8fgHdtznyU?}(wC(hK+Lk0umbN9IMt&Y&6_EJzZF`C5 z+$%a;#7FxdF_nBdv<#(vH`nHlfo+Zvzd`;GYaYbbJfO{@D=Ip7w?Cl#-rL4v--5<% zA(q6WZ$jIKhE=l7<>LeE)HXs>0|I|^Yy~4rV6>@iZ;rm5x#dqTeG{9C(6)KdIB0=y zCug5zhNWxJkV08Z#cYvJQ5Z zV{!GIw@&86W*l67yhV6F`h7rb0K)&0bKckeSlssf{$%aRkJS>LxnMsQ)h_Ll0Y3Et z{F8Z!FJ_;}WXkT&+|0+D3Gb>nfzQ+LA!%!*yxPd_gQxUf)(=PwuWES5_wSCGS6*`jJFya?S<%?DY8Fg$Zjq6OFMFHRX&v1 z{n9VK6Cc%#9w__oV*gToQS#6$LVJYXvsXgMs9ekbDS>yS5325>Pge^pqOI)B`Q<15 zIe0KW3g=w>=!h1b2Rx>@cBkaVVdX!GbH$#N(_aNwq)qTXWv9)xPxVi=??vJah!gGX zf!Fqk%|_yxi5)%a>AvSj$~~D49oW@(v7?9{%-#r+hP9U$NZ&oX%VgqSpfl648xG!= zN@x(}^~w4jv7tKHL5U|t4m5r3QdX<^A(44m_uuc)>-pfRPTW;)ulRv9vVF!KoI|6<4ptk9oYxG?(|~i%O#F3XYZ4Ec-rIIk7Z2&b#=X+ z>9&fHk-Yl4PB*&+AI0|L*^-;2Jn>I@&tgj%vQNV6T=|2(NbJ1y=@5PSANMKwo4=}0 z;Eda+iX$iP6Z@+a^r>S3eJY^g(hp#l?)|g^*aCutGM+f&E`jppqm#>+hfTkUD`C9UaN=K`l`4%|H zoJKCcpLN5suT&s2Xs!xB*q02rcHd!W)4n7$7WyDQNx@OUM~D8o``NkpaKioUSVscQ zAWoyXZ`l3p_O#Jf#$qDnQ+9S=IpTmsA1-qDw<9k4c)dbbdxzcMj`G|!&q9Bjd#h%$ zr(K}(X0;FAR`#?Dw4RpRZ%@@(qv&6*-bWM-8`yR4>~e`sn6cMi7|^Y{ws-bVL$al z+xXquZ?nIC+GIWB?=wD$yCD80W-r;QrA_R3qF)C%58_}>HX76h%iQu$LhGE?mTI|M ztKv0|`7|?(-TNUg-d6G67?|&P$bti9Qhw!LEID+qk;mCPnSvby%vtQ;AFg&oe z&xPUdP7#LMou|;gJ%2^}To}F|?b8GgwcAdiePW|2gkNP`$#z*7vVPgaMUC^5Z#At| z;392w#%$B0iFvHunW=5~+W7wTq6~7y1n>;JTpQA?TfxiQ+IyT(5WM^yy4p$bQnk5b z$;sQy`mMjN&Boui&B@x6w>g%f%>^`xJUN;3Wb&jFSg!V=wRdmzS@%_VF@G~ZE$0{u zeP5{IvzY-AOiQhmzB5~`gNHUbftQ0D%vbt2x0v-T8I>mY?S4~tc5TzsfnE4^(Agef z9oY5T^=NRfX3Rp~e4s^lUfr&zIjc*DqJ<#JwDnKf>W>Vp?oJX_9HQZ!igv(xS8xEI`hX1|RuVtpHU-G;ta1CjYLDu-+fVd4KX9Y3RulV>Q-#mJ7wUlO3-L6_;|aUyC?g zU&qd7YT?Lz%HE=E5UBzBwakYq+F%7*pv9Cga(!6&$?h3Ak7U1@R9lPgh^!*^0&HdZ zb8CVjYc5ivuMH{RN2X$fo5EQXlWRGf;)_P4{9n}`8e*S-*Ryt8W6$$W?$e2-?(8wX z<0p>Q&pKr;Y&f#s+4hYXlj8hhdtGsv@om3a^JBFfg=a$_=W!K{BNpm1_U!)*aZ>F6 zKO(GIC8O~n6l1%iy~J9e|6(h8u|KtGo04&n2g{5~_Q09>Q_e5A3qQtP{p{z1U$3(# zQp|o5lXv%^d;9E%kPF7m0I!}TOk7mD375v9B<%C|7=yk3EHQb$NUuazUrsKL{V=F_F#jHv zxR1X2x*jP$K;6OAw~5cp zj$OWzwS`&OD_l}Bmx8N;PlI$KY{v$6K?A#>!TKbh!TzM+nCa2-liGWSKKDfTJIz7h z0nNk~EPKh=chcYUGP-s98CrYsY0zlSZYqA-7cJpzz9!Z_uA}el-Dn?pHX!3}-&y2~ z20qGs07mHf);Yl*YZiQ&*hJ1UAeL}jUvymyV~(u-kckeN465?iaZYgY%bX{DIp++U zM#Et0q!gSTO`W5S^O(2ifxG4i$|P10+pe_PT9vhPCC^snBfGNi@@QkjPpO}@ z&;nVf%a{xqW0bYk4toZHW=OxV`?5CI)C}Va;x4?l$Qd?DRvu|;_-C+j57)Mi3Fv-- z^qO_VLw=1i{Z+IaeuLkj?oSz8XkvS%^1!FLLI)U>L_6hc9Vl8zw{G)LFWvUXS zIS1aqZ!hg<&Pv-?2T!*H!7;`;8T8<9sCtPd4xt~Ga=z%O_7Hvb$$2*&x|JHk+@2S+ zf`^d}61+F?QwIZf>vN?>%BOW*ZS+|y-W_Gvz3aCZ7-s7EF`Dr+bm4d3HLN@OjMUFQ z%y~k;)U9jNn&UjrnLnHfWZ$7#eSJo{>v=ueWg|0MBdpXXWlj7MD>X@c8QecC&)t>* zz1E%&83F43Ou%ogJT%Ipop#+`Klf4gjeGs9KG9OMBIpH&4d?J-!?-l6S>xFU;5y`# z3EPno7i!Uc`!wg)ZX>$zuohjwnM#bO?cb}`SJ*xG0f%QbBLIAYT919*UNwj8d+&4O zt&)LIin9zDAKgB>*)QWn%n`H@*kL;#juzVQ%`j6lg+?)EtbIwZeKuxa_G-Ys6W@f; zBhK5%Z`8#A!mv|w+H>&6D=`EeRmV3W!2Q3H)CT-U1b3L5dC z$ZV&>$GCpQ`9bGW9yF4@XOJ0)Ex+qnznvW6gMZ_9qAk$lES-^g3oe+cO6INl=F-Xh zc}wgA=gVAO?TpBqw_1}iu)OTNrQg7|nE5w%kbhy=zPPwwsOwZ_VY5x<&2hblelt&U zX=UvReiOAXro_-0j|*P`2Ip*tCjx)woy=pA@%Cxx5n=Xs@I6VKLs72WRCzV)lvM0@ zcFn>dA4dK>gl?$y&#B378&gm0pso<~13FR+ALe}ZeaR5^++Qz;Onjc$GC$>F! z75vI+1vYrgk#&Nj8%q%Zx@au zf$_+!p8Fr}H-SHLi-Lbi7XIIrZ`h!F4EEA<<*Xe1zhlJj1=h_yh43f+`wRb5lA%*m zt9_gq?{$zVQ4(bV7Ll5VXRX@d0#y=tc9B_~MJS4b8;;55dE!(~VI% z0sqd?jB~ts{J793=7cA+?@RJ~#_5dxy?qhvB@)}d!6*KBp&RbldHU@0sfx~CV`fbs zaxv@1kV(ooUmBl|`h8EE--ypuw8Y4C>Q)oHxO7tRoj%FY66l z`%I=o{Cl)D$2+{(nwynPzolh?6}Wn+@3PkBNTiZIkjwuyz#L`$-q}Iuzlj`XB8Qpi z{U&<9$#>!h{>@|#vybNY#Rd>Grncf=o2eTS&dx(7lRc0fGt9b2KemCoqcS(~(fMVp zXj{Obj#PPd0R9tzKbpvmCcNH6M>Nq#{OE{&@Y@f5`@wHncNY{ogA6*wA$CP{uJpPo zdX)+PGFiJVdz_8rtgkf^ms8GuV{_Sivzh%Q?>!>CB7N88#3eKzO--peYE1PXO-=1Q z5-t8=b+q`Sx_$RIBFuSFpX{J z^ZgT=b6-M3elx`WgiM6&_EW#HjWWjV#Q%VPl=nUQ7B)r`87=gkiO!lUME=m7HRqEy zp+#?zwJII_Mt&t7^oRIy&ML0t+#MA|82dgk$j7=uZ3m6`d&g4o-N&NlmYBs_EeCjZ zm27#(UiRfky5-CC1>N!}iZ(bwn~?o7!XqcykDPb5trh$1+o$N!mdkX*l|=YRJrkumK9=M_bPy};Blf$8gQ0nyWyOei)H z1=nX|Y2w0iu$^fBEIU60M*rhE0c=Hv?z;QDBgzLCG#9#iM1zO$HIe7NxcN5MPME-!NodudL~f z1Q;hNcX^g(^eCDUa%Dr{Gprm3&B*O#DQg>;Kg0)&9_a@h&&DcVF@yUK!@U^Blz4m6^ z8gT~rTI`FAs_V6rMS(ngRc#U*idB5n#aGh0`1-p)W?=_D^_~*Ez?}k|0FOLBz>fxw zx$JvlRG?=>POO&*Pf|KM>6H!wZ=)>(c+n+;Vr~A`7&_WJXg|!M&g@D(>Ec`J+b_UF zOm7{zx!4Loe;L1hNoa%Yqj;vQBYF{hY=KT@;3>p$nBwEktcp}_#HPIYcwC2Chu4W6 zlQd$BH{+$myb#-h9h`lng(ebb2yS6VMz$rk@R-yk@{LE|*C4Bmk$LEt8QOwOKpV2{ z;T#)mfW(&uMg-h6I|rv3FYAde7ugvZdW71CPWH5ycpIbQE_krqFBd*3-&KF`ohurB zyd51$V(2-mOCv^>v%1d3E?SwPKmMbV#)}I%ifnxJgmEF9Q)g6klCJsaiQ+=AMJvBM zXG{<759d(H{Za3Vp{;GOk@Z%RgTPXg0r~>;;|RQA-Z(V?hMZQWqidy zLA;H-7ionWN6sSH2)$%%RSZ}*ekZ1IL`w*eGk%fo^A17`vgyIRw+u zeXtJ}Yn-$9a;Y`qz!7Hz`=P8$CasYr$TS`3h0uY%ZR4Zs@L9&t6(3IO_8e@i>t2mn zw|^XYw!|;K0_IC7y{=44y@W3R`E}J6{wjOz=R)@CsX_apo^ehRKk_>rW7F%#X{mLj z8HrqR%_GN4tsp)uw&*H-n@r@xB-5zTbT# zYkXcd?YWQ2_hP4~1l?*5{x7ZASyvKtdU{6LdvC|@p%ppFUfnrxV3fUox$gA-vER|& z=(8XGV8H&>!vQB*Dg6s%``0!1kw4O&fb-Q}&FSqW&yP)e*Ta5i9qIaB^5yD}Jz_e^ zi!}Sa4&J%2>ALQbKR6?&i|pi+@pfaDl?-cG$e6T67x*dJY9wQMuy>S$A3mM<5ovcq z*WjbjPw(uTQ?_HEXB3>h46f$%Xy^m`=)x;p+TI*FL5!1%ZBp|-`OgFAoY>RdGBV8) zPvyyFv4QEBQ^cE!4(!Ko2OZIr?We#_F0zxP%kiWs{EiFFVt;+L2PrUs7equqCYBv} z-HoLrM%t}6Ib--fns=RAA7dXH*!H}(=5$Hg8jMWt>~?~qM@Oc-(rv$SFpvtd4|s@q z8Jw=!SC;9i5V}kdyY8j@4(=J{JRaqmDpS9EAOatK>6?% z%FmM{7#~%poDD_!9)8{LmN`8a7fTvqL*XqdCbk*fFqoCiKY)%0E#TS3k$tRJ!FNln zUofMkR$&_pp#ydXb=9u&&Z8o`+sn5GoWL&VC@~Vy(e$BLiKP?T@v0{ewtPcu5>895 z+=ru~os@Y{ORox6N0EnAxod-3DnvTUAZDV!Ye%R*-O7G0ft|9q4ST&4gClKq+xBz& z&{kiHm}wdJu1|K0zt5KfzlmuXWj|;7fa_7wXPMi@U3YF}?{Uhey>9-F|4z-quHSS} zC;v$Ci`WfM_>D^|l|RI~t(%xDZB%++P`8(iV-M_$(7$(bUOn^xe+jy>5#95+7EQ1Z zG4&WM+w%E()>vfa?uea%|HP6)3Gu8u}8TgT) zH>Yle&b7ru4h63r9 zpq{=+(`B5kT|RuS#5!!phBslAZokMKKYBE<~O*{8kZ*tZS7k6qL(!(x9h?7qeADUA42D)4yy_Nkf%q8Ey$fO=D&OR z^<=xisnvYMp}pSv?Jue{0rL^*gPJ$4J!Rn___6nwy;8>6h*MeQ|RE<~fPFL@)8!tY+E4tp?d%z0pI>!kd!1l50K-EQ(X74yR z-y2f?pRAR8`rEhpsB`bXcKPJl>}%g7&w*uK#k=0Fx=!*eSm)-sQR;uY-TZSuHY?^{ zueAHDG{pO|mas*N+#vSCcC)|FS$pu$?c<7zt-IRR<6A;r*o>{; zM0VJWUKEE{$Q(V=@6NT^N`G_tYUU@RyE!H6wW^k6(iv$YBgW8knvX@z``maqGtqCc z{|tIhPbArfzU=Qwp+7}io2%328d+n}BX+fPVuo&&jFgy?@%GWnb!()okBgmV74vTI zcTS78Tu%Dgy6i>Ax^bVq_VQ683q@Oz|7Jp0OYR@x%6~hVqsft0>kRCW+xqP@nQOui z0xkWg(#>)@=te{xtMP;u`JM z_tSonQ8TnLX2>4N(UzI?b)439d(&Uif&XT%V=vBNXB>OqUy#KaqmjtwBZU?d+kyR0 zo<$EHiM-p4?WE*(;r|8Fl`R?7LBjDHj z?puj?F%`1kzA+Qsv>bYYe;t0|Hy-C)c;qrCkok$UQ*>E(?W}9_7r!*Iq{{zE+jMkV z?C90GHFVg;Meg&~0=xJX(Vo7->1>Kl64}EJU_A|!do}kaUi1_+-CiYR_t_8;ky=AXGcx%UL_Sm35 zwF$g$n~mRNo7OHgvbFNC#A->5pmP`bkTb;hq5Q+h$Lh=rld--(FkWn^s!o-kcv0H4 zp$I$lq>ad7yWzQAL z7>i$EE_1v_#Uv`*r)efAN4;}-iS{h9d8KY&%)^q_3WPm5B-W0trbO1QATKIAj@U)O zIrl7B@bkE@X`b>`3r;czirn(H95S*nIcFREs#5h|#bgTHrSA_00?Kx4me79}e%W|C z*X}BFL&nEs9ccD@);~^rX{*#(kd}2XYORfDcak={aT?fyd~tn)Z=S?0oY1C%U&g>M zBfc1Q){B&H#OD$J3a+b|58A}oM(%9Wgm#P1%%kBs`!RkawTGwjMYe%cS-m_eoY%8$I2HU?ct4Z5I|Y37(}#xwV-4nSs`3Th0@v*^L0|f! znC{RwiIq~gA1Lj$^L$+3dW^kcAnpHOX0W>6TulxrK%2m&?+r? zr2Y*f@8!%zaD1}Jm79-=4UxTq#K!D1&Vjz1GaFhCj!y>1r-I|)ZlqLfPrI=-z9;*) zavtnh_L1vUGO1DN?w5%Snh<*x_AKz$wdZlpMj%yD(+e%_9U5;nzl*nRhmA_NPlm$V z@h;wi0}5vuKVuX2Qo#et7N3ORm|9mxUnBnez&G*p#!rf8S^VOj)4}uiU1Yq7`2hDA zGkn4Bm1LcYad(?BXYVVa^LbwATiF z5#J2v?5V?2@uW?iIr?osNX%Ox2!A5B0>5;MxS=Z1se}6tSw%vh!#Nl@0%PD;a0n)Adl`kl>gL1JcrGHTFd=9Pry6%=(1wGlN6;fA8WrTqnSgne$=PsV3F4qtqnc#$WX;RT)l^Eu+-u$)D6qB-K?3NqY* z-^rPyIaMpszVUh|opxr)24x#KO5aI8Ma`6r^?ectN?MCs=`*-J&0h zjYxFm{5%tWDf?+WFSNQKpF3{Ii%psSXmCp`I%6+-{oa`JK^=S?pXzpSfbwo@(xPUd z+FlYEiC(RxeOoo>&UgBq!-q!MrPydh{+H*~W$0^%`qF{%)$sgKd!WD1T7Brx?Ezg! zJ{+B1{i@HoGt+OSTKd~tk(*P2khH;Wc-$W~f2m*)z55rMaY3mTjgQmQrKWDNcSiK! z_q6DhXYyRCTUYk=NBe%p8Y)%P;F0?Yl*`L@td3i&pFqWe3rz zT^pgufFfh$!$x4QVBMNwFE$r;uAeaZFGB0AVCJZ@f5(17wQ^d}z z{0ctPgQMU_-NZ?OpU|w+w*(Yy%?j+x*xB9shy&XQj|=1LAx06o4w**wgocmh*~ygM z%YQ_CG_H-rY!RO4h&?TP7MvbGp#~Vz-XCSI6>P9bHKinQ<2Jl0g+~CVn}i zZ9Csr;cuD+t)VUAw}byih{0goXyZ_AYIbGFJ!0R9pY6(!v{URrrh;dS%Wr9?=Nt0+ z9dg^rIAZ^auuc{mALHZN7O9J8Y#0j8nyfo498+K;`f8+{F|B-s@shlS_9O6uvCX~% zUSc0sFp3wSe2lX;yVx(O`%vV9(?aM6ob~i?p~&R3i}0%!fuqGD!=>6Xx^;*-3$2%P zQmlifPh<+@6*cZkf0I2)T>M-DKHy)BO;q25=zM`r`nq2D_KDV=`qkRqymhC;R7~6%Pa`fOhviOLcoGm=L4F79er|vYFI%_$6Rugb26FAIP zaPZb)6rtZ0rOK;|jC1uO;+{glx7f1@eMY7In_xm+gY*COF!_C(U+G18FcCS%gGa{Y zcgUgPpA6X_MPD=Ef2+4f+THi;9QstuL1>qVcy z{`%lE$hpt>oFM*^L*w+W?q{&ybbuE@t?Qj#(QK)9qGb4HZwDIac;>M>p+v?k67qRb+&1 z>{A-p#d;>ud6T9EKIYyv2mDTO`S~KV*t^?-HNW{DHTT5Cf8ffWt0vlOxB8-?cFnjH zd(|rJ`HK#M8`zD;vhG}X^1)$j!GXBtn9I)>-tCR?*A&eQ#K*vch%3sz*X|yOixx78 z6PTenhqm>n@7xr#e?M=0bk)3=bHh2vZ=tbi-*xyNs=zgkb%Wb9@nd9tRAT3fnyld- ze_fySN1Z8p>-PR=>+dyzkE}0EVgGVA1$vxq*jY)RUWJ`|{MNp9lh~!!aig(K(#M0? z;vWa*F<=)n(!T4p^y)yhwc=te+Q)j6U#7J5yJ;<*Vy~J<3_We!!8=2bwrpT6p}~5w zP>Hn)xvUjicStL-R%4ggJsy9FR^p7AtlU8`5IUSmyTL$BL0r6wVSI%!) z!}5h?nlbGXE&3;9tvi0EN%_{5{r%P#?$A;fq%>=Oy%t^eC-u$xd0)RZ|0|mFTh_lU z`<-q~dtOWT{Y;CN{#IA*^YS@gkUYP2^BA<5ws(!Uj-V5$HB7R%VA>oEA6c(0@F}1L zNpMN%+ig2WS!I*8Xb`{FGl7z5NUKgC3h2(Ei!|r{N_1mzH8@LiuxUE4-KJSLEYhO; zLwfYK9l(b14R&i?j|6(6hrq#CSFs)#-veuZE!JjBTb!LHFl{TOL(~n<6w)Ea)Ve-S zn?|3*eDT?Jhl}NI1?&3TC$#^Uv+9ASs>$RFg}&HcM%!0EGmE%{K-KfmEMvo*_O64b zlX`cQRcc}@Iq0+I?bMKejdba6tF1?od*@Hnqod9;ocU+*dz5Z{<{!&l<{7fzNvr_O3nRC>>{ten;J)*s;Tfy!9 zU2i^r#0pLi*mpecwj0l%ehBQ>YxW&`sGt20f_x8dmvcOgi1xVf zd4n?fwzt2E@~j}`nU7;rcFS`}pI)_H+mPI+MUs#6-OUf(@bNw-GPRP;p^*=Ci0mBu z95~{GuO8pWYapLNFR+xJRH%cweAnn2NDGWg($70oohCLG-&o9=Nk6VTggyg}5c)Gv z*J55R)KY_da-!c2UvEm}x|8buS=%hK7dpYWSa+@Btpm!2d|!s~i{noKkGG6F$GZM9 z&8nK9rJH!hW~=o05#Z&+X0bD3V^4bpo3z?PP++WhrB)lo{*?~QFw(8Ridhc?6y8LGs|*Kxv94zx-n#EA=~WN#{ZK3# z{3G}=fw?%IHU9x@4ng+4IEIe+8}>99@2>wJ!TRj4z16oNd5m%XwU*xcc|E#!8#dve z_DkQoCI${UCV1M{=6A-K@SO_1YCP=@Y@Ow<#|JM1u>k%}@HBHAPe;7f@9uTF3B1~b zjmX2Rz}%zh)&=^8tx<&kII+&<-@st=pYzV^7U0h9m2wXiS8!NHz1~DlHvG0P{ z%HBER?#2$o9ro)PcvN{fBwJGk&Eq#!D7}4oN3>_>rCghfSzvOp;ilBX5Z|E1i^}+R&Jf>_GhPKJ z+qY{H&yn7Te+eHGzJt^8}>GqxO^F6`QtbZ?cZjk=$cl!fxws-Fz(4XIX{oy{SKLfvc{dtZ4 z{D5+v8wS`So|SsB?&RCw1p~ zi}j=3tP@=bUjjD2U_EMk0$v-aPOo}5*3}X00}o^N+I?Dd>pm^Le+>H_D*u5mx)uH) z&l80P0SETYbi`IeYz%N3Y0)<7C{a9;-|5$O`l79``D70azK^ia+@-#ycQI#Lx2gBh zi(ghY6K6GY$ySjkcTh$wL|MpS-LdTWbUo+WtMEhQxnI0fo$el^`WAiACwqkG&TI7L z>xcF9{u>l*q;KgTjMJmWp;+2?E&cM*uW{AUh5M0@e6-&ua%fMst2L5*%ziNBmvgtB2ZGR*?OODD z`SvPnTo1*Z`-Gmr)5e1{iLF|G-Ol)+qG!=XLHe>y$s54=u-)p82YqE+h;I>jPT+mu z(Sy!wz;41}J-Tp$?tJ}_-X7AD3MP!LWdW1l--MjNJOf72^gQIZeX(fDj&;QhU@|Wj z-MfSGki&vT4kpo81s<<@@Yv4#v;NH7^$&zgY9@B@?a0#)?)8a`taz>|vT^`Bh*m%g zl&--$xkp>}#s z)x>nWZp32PI%F6P?J^M3B#TyZC4Gr}TPZQVar(C&W#bIscwegySU0;`IP@lE@?;SSXdG``|%V@*sF>bxDdwCbsE?$zT3pdt> zZ*5rImpF2O+AwcyIf!c8j@;hM!OmM^LO(!9n67b`qm zS-WI$-TbEI^Be2)aVH5p5`yIOmn4=^ZvMB;>%rxQ`lY!tZW4^rw9R?&Kd{8hKOk?2 zc~x!ObLtn)ULm;Y{+?T3|H;J*7uGjwPf>54Bcy{Uf5{N=g)ixUNNsd*9eyT1O4+GSt5 zRwbnm`Tg9#fbTM4XRnyYY*^g57+8HdQRn56>9VY8DYJ!1v_k5X$+Kkf(#4Irxpqx< zCQ0I4!rc5?k!Vn5*2;K=T|CmXAJLC2U8(z*ur{rszP@qV1$J%2!un|o7dK9`7bWal z>YEx@Ok1)1L+5{F#`LPHx|N??iQ|PiA3Fk zrX@?R1(m}e|3tX4p(!C4UbS)h+gH{vON9Ab0kA+hk4U*=?2;!;iW1`%>;gSEiPQweSbR+CAK#;<|zBb38BMdX3-fxHogZo%ckhcz%idey-5eu=WPm$GJYoHJM90 zADD36&hI4mbzE}4$GgjKxps5CcL8N`HF9ZOPkbn>O^-r@KTJQl%DC!y-pn*bH|{-d;)`+Hokb7?%6aOLytCxB~q zZVkn=^S=+pv-7{7h-c@gI~mW;Py2rG?ELcn5jBUiCW}G;e?ukMYb;CMFWz1WOGG9y4z@<(B?#)a2(Z(YbcVeS&m7; z{B;hi;Un2ZHia^J39TDxS)%!b;fi5gF&tM}B3 zg7Kb%&WsDF8L1r{cW~G3vy*bT_dq zj3{Fx>W6QvUBNgi3FXEmi3N>ew~bP;+lR!mMr5<_viipG0>P(6^(z{~P0K(Ady$Aw zibx+KKAAx&|bK>XpddQhvB$@xn!oH+u5ZN5j)U^x^1*GcKyS_#?G9*>#Bp zv)%f0P*6YIiKfJfYie)3W==e-(j@9Of}1++kn6VV&(`vv?>P^e#JksOCTZp1Nf?~F z9lCNOcr%^n{JJiwNAy_Ms77E(?ZPW+7cRD;EjJ|^WJc&v^}hl;@`x<#KEaD;y*D5O%ecHm+U%IVb^*F@-t#liPkHw?c`qgJy_dRqle65s<+LGN@5B$Et>r(5 zkboIVbR0V~MpyajnO$|1xT72p9#xE5r z5b)OP6G9_az*y%iW|l({^#mOgEznB@1r-~I_cRBRSHCjRFnfj2oU7|^O*CA!;KPL# z%&iw*=9)yjY#4(S7R^He@`_igRc)4Px$P({XZA9;7j7A%5+@qwE~;I2MeS|$Q#d-m z8xTG`)z78LxuJocp~&)mqo5I%Do^FsJcepw%%?#j(FujP6PSy|rQPF|6@r+Ra0 zzc;7yBzUddxpI0ptCPC|Aqd%@hx{QOTAgzb#c)Ed7b$y@7^Qt=1Hv2vLbG1i*^4lDm;nJ?LUVjguzstKN*PscZH1yt$8lGs8)}}^K!fvW@-vKK{`1r5yYg=C74-8Xq-8v1 zY&vJUV{?k;6j2Z6*EV8+sa?_N_OH;kl8;-bVq3|_39+N(KPS=Uk$WcG#`WaUk89Me)@Tz}iZgB75TEexQ=OowL{9e!fLGJf(zfr!&c&-K(+{?JH z=DwNx%UqXo-S|oHkas=&-YswfW5guJd~Xx|9eN#VBbRi_Y>JE^3$EnPLZGX{jgKym-mmbQ%HST zIv{?8{O2CVUillYh7N!aVyDkpV$U@#rM1o=M6w`S!@LZ z$5-qEQhyd#K1X_a_y4eWHt<=M^}|2+%eH%Cz)*w%1I`xefHCg9u#EvaVBpY+Q>G4` zZetrT9c=AIMv@MsLZw7Q*NXimgEW_Gc>yEr{3(#7-~{u6dtp zG~MT={j39gjHRJTP0f?SQ){PY*49)l&aSDh$_(dB&IxDL)@HiPMm1toVPHFXkqp)< z9IS0}*8>_!*Fw^_(&w&K&1zl3?A&fyilM+;ezH{OljsaX_v)qw%mWO)nGM?s#5h?1(Z61TZ1z@ODwn|6D~3?~#fjwyPWikl5@d$=u3z3QA`lUQb*@xKDk}(Tk`Ps5ovDb++F*I(lXu z--~|dz`u{RJ5&F^J!f~uZ00<)Tl&Q|^Z%!&A8cycIWO#%w_+E2uPLcnHhP8)?t9HgP2Ilcqoz)O^HEbz=A$LlU!9MM-OgmS+Z|Zg({3kypjr22-fD7~ zzE{r0Uz6g@Uu7=4lelCqdlF}+L*}g}A7wlx=Zf&_%wO>LFP1aF7H~#lFV^rE-QXzF01is8fD&Urn&4ocP`t4-+Iz4 zb6N2#b6N50&h`GixvY5~Pm}lk&1KE|W-*s-Bkn}%vW!Dz-fD6@<0v_2my=fVTIRBn z*1b4M>xVU$HPiHd=CWpf%DmO&P0aV?+(FVT{O=M!2|kct6La#mqrD zZsT~0bA=qk91q}5aegP`**!Qp?)8rHTio_0;%laS;ilvE!TpV0_g)tnyK)Pib*>|v zd%xq?>BJetpSV+8v&jWqW9M3zxA(`Czu&bm(@)Q}Fsn}lSEoy5i1(=?}axu;@J z>3dVzdyPW7mZ|qQ4t4!#yDfGG$s6VEEw1e$tt!Q8;TpyEuoSu29^{&J`2f2=ldTW3 z->mx%)vnjln;pr#hhj(iAge5W?Qb>X5F3_H~m++#VHP|ZDVb!|j) zkHtnL_qc}NGAEX{QtUw{*VCrRxnlgb6OP!3#IM+h#P1=(+kX>n8?Fo&#D!MS_u|&_ zJC9?SV=Bi}=my*1mDoZ!?!ei&Vt6U;2)|EpEa142h0*zr_Vt(VrRa1m{v= zIqG@&UF_+YNBJ#o>&Hp=E%bXFgB8;@0DK;CAE8#;;WFm1Q}uH(RnP z@2w3m<^9=`O}+QBC7Ze*hAr6)@4sP7miV;&cJ`zjJoHm;dwzN`>*17VY0ncmN_$?$ z(ex{Ag30SBS8^_INs3iYxsg3@;#b-U@w<Q_?31-{Qjr5 zWHWF3vL%~3AH)tj_li4`&L6k{Txrn zJ2iW0Ra3W9rBzGx4Ev9~eeSh0m&?|S1^W1k462L8cB^aUm-6645jNvuXDiWcs9{-` zbl7oS=MCn)eZO-C(@)Pi1GS|4jG)^Dpu1hZgnQ)Ueuw*Yu+`R4VORJiqC>)6^V+v12PG`44X@kV(*q`0lx}+^MyBED#4K*vtTQfcJgqk_>=o8`{hjDL|-81PU3eD<1^VqC-KT2Iw`wtjCZx%%YHeNm(mx=xo|^@ zbqc?-hfe&;9y;-R0KXcq?3Xk70OLJ5SC8Ml_mD=}&e!2iF8uFG?g z=95qFXAhlO$Nt?tbf(|l)+|iW;S>kiWQ%DRK}y=GXl#$fU){K~mK_?0od?4gtTD0W||Q|5S3 z)*VdV!#rEgoyKn-eUYp?h~Fa*xqc-cZM$TR!Q{|qX*W2R*NmO@UdD>v_+Qo?Bwo?g zHbmAPOdh(CF(Bt!@GEJSbq9%8)*ZU1S=JcLG;hW(Am?`Ax199Lx`X(Ybq9@C(=6)_ zW}4R$ubexM-%X@h)*ZyJtUHL`|76|4ypQd)!~Ly0NLsX?m34=$Mq4Rs3?^4Hf0lEb zTCmU3ZpylYq*c}(B&{FTx`Uaf_p|O`=BKPNm>g!#;H*Woy7yJq9VE@N?jUJCbwi5v z4(<$2)*b%i=ZmWwnrig{<3$bZ5m+G)wYDy1i^wM8E~U>qgqw-`kK^d&8RpZ3eKBD^ zK}F8ssBsFuUY|G+kbFAmM8<&JD`ZD$) z&K>3V0dyPry@}uNZ|-kejVx>5Ly>wVb|drAHE+n;MW-*@fEmsQu??8v^k*9|^)_)0 zu5F+%>vPxZ6uVVlPtKX)))TJDVsmoax%aRu;7{98u^UMk%4;8S?MB%vQ>+ctZLu32 zKrVKpP4Iqx549|(trPo$$@Sc8IoF8aeUt&QNr+#uNr+!F9Sakn7Sf%RVm|QSM6T6#D;3ttwP#e=Nx{^sH0+66~AIv6~Bg2rb}6s`9RnF?6URV z+P9sy{PBp}2_MJFQP0co1W(62%5QN;#63Y>#qGeQ;;bj>7jOsoUBj`6V*$t0=w5cC zW#v)FwVsMSjk4I~TnXj0Hw%a9PwX2ecd>6+UE>hDTpuQnE@AX%^DyJ;&*ow3^=0!g zb;S1hzuN|4#wT^G#<8K)*fmuxRrz+Dm3M23HHbW$%Td}z_o>w-OY3g9v3}X|hQ^OJ zHMg|hw4!b0$9SCwFa40szLTr#>(~wI3_!#xBD;8-@IM;=XXB!9)r?UX6;<*iS8IJs zetzrn6-`x*spBhcUN%y-+^*!tSK2(A%d0!4QzkhEpmPF?d-21u2HzNa46O`Ew8G# zYh^oYK2H?GT(I%zu`Sjr^*0SavAF-8X{~FJlv>!1QmiVDV{sSYF0EbG(6o{*(ipq# z+O}%v5q&!~+?JaccK*g&R@&+mD+S&Eo#|WVq{B^P8S&K;Uph|m#R{^%S;Y?G7Pof_ zzhKK*r%Yz^`@=|A_xI48APtujM2eFy~G%W<3Wz&I5u)D zM|K)Fj^FJsqj!Mz7`Fp=2)18gjT?6mE@FIB&hZGm8CjB?BqDo-`=BYWf0F&zqFRM(SYE$U zHJxqsgy6iK;g4&0E{f}pzAeR?z%k5G#(3Uqz-*Etp~}PZ4U3(hojb>M7yJsgi&MC2 zky5Fvob=fBY|ZD*4U5<_l5V@3T}VN7mF%TQ!)be{98FEF&by+la^js!ybp7vC|Z|x z2ADZzO6Nss%azJ=w6>ldpKiO4p~y=G+?Op$RBqV3ddE6Um>(g`4vyz@oL#m2{1!5( zP96|&->_k~I1lo#sB2+^dJB!yN)25fzqOaK7{sFlcB4Fj>tx1?1}B&6c;LXQU7O;x zQ?%t|mb~W7yD#Lno6~Z4CH?MGx*B}CJ{~DON8?}FfS3@M7?A!DXEg*$B0YXwZJD*tT`NuI7(m8 zfBAH;G0o<7knS4%jKR+uj*@Qjxy3EeZd6WrkVlH$R5R?BNBNz%R^i*Sw%||N)vt1t zvp5p{voEm2 z{WK}>>yZ}8%kX69->%QI%qHHei2v6(=?j(r$#1bCC=Vc$CI6LQgXP|ve6GQVyUB%3 z`B3Khl85R)9X8{e0?R$(9T+#VJkoY;_&PHeo%=BTQ||qn$1&arD;vMkPHWiH;WUG1 z!Wjn7fo+55cH=NCWlh7&fRhatxujL)V_+#4%JHyMpS`>u0uMuOS`i9pYjv!-J|?-x zI}%O#;YvsDOwimO$g)g%YDMzDx&N%I|DmL%bMEL=;I8u05y^eNgV9XK;Uw&HUEUbr zzOTpBi65P;HWzOnn>J)!-y>l9IW#i4+kD~w)cnh`*1gF*w3!IRNQ2o$x_ze@0d~j72#)~5l%6`rA}x+LZc`TWZBXQFPGth^YE4Q zV)Q@^^|aUGwK~!_H1oPVo~h%pIq4mYK=j!*X^`EnqWRwsGd05|)a>zn1zy_3+jJxu zP4Zs8&W_0Kdu6~vf}IPI4CV2^&Nm*;XLw}ics;7ukJi-MH}JwL+kHIE>4Urx&L8hg zu~NySv(~3r(HtG$onxvVq3ETj+p_Z`pE)f42H`JNM&7OR2h`cRH#z%}I7Rj5I=z(Q)$i@m8dsSC07w^38v$d(2{+dx(RrN<(>tt}k z`zYGSgJ}oJRM3lDHT)T5Y%# zoboDuUuy6seoOwU{4tMvjy23$#Y3ZXlIrIuexy(RPweAE-|E`874>*qoMo9hr+&no z!__HtpT~52Ia6mBI{)eW;>>W2{%4l=zTaZ+@!T$HI!5~~lb_m}zU|{?xYGA^)&nsT z>2@jd(A3*axF&C-Z*woYfBSfQD7kaIApNn)61TTL*ZHimHwltm3_6t8Cby1(XgJNz zNV7B3>@3pPvcYXn?&X*Wcbh9n!`LYAiE-5oMx)h)UbrQ?mU7^CG;8zXD-Nq*)hB{GhJv|!2{BEI6Xb#j#Di#Bm7myv{L-BjGcLb@~9$qjOuG4!}7oCRaKhKWG`~WrW22zlwNeJ~R_2;~8Zs6EZjNrOmV_ zNqQ=pm)7ylKUz(h2|7>1^V%5abxaj*!_gU*wAW_X(q4=GOXCu|*f?CzxSUm6W<&P5 zcAi8P?)1}uzJ%G2AM_jQc|ic)C)&%=)%e!%TiW)SvQ*0}mgQvywJY3r2zJ_QnmFxl zXY<}4_@U*0BxLgc)s1fcFD5;b-@NS->xXpL)f6IL8qPbprDvC6VQU^Xqo%5r(#<=A zOZ2DTn_^AksNq!bJK5lG@cSHtzt@c~pk9b=Sp8oEi+-Q`9hlOX^Ek5|mU$d)r|~v< zt4ljwN*nIYkEE;kfX^&-4O{xP?)z`OH}mEzVuwky=XfuO zVk~=%Fk~Jw{B!PHUN<^3gj|kcg)XPMp>ZXzv5=oKC$-aUr^9Bn*V)Or<&)58y9r0e zL|1Vf#Zmi1eaC8;62!ppLo39c*2Y@rrDj|xg_(EhXiu+-iuSq*3?W(faV5F^3F5tKHTV2bYG(erNva-tA z`$VyJT#(-~E3f1j zS6;#D^jgvw%B^xn4Bi}0-}vX9Y^Y`)QClNjCbyaYnXxppwO5u{B9>zctrJj9Lv`yi zN`dn#dp9;V2Rn_f8;1QMOrdB7+Ul0IF5{KR8JT%EF2eLJ=41TtCmgBg?{FN%vH$$`t`wh1_q#Un&Q~G! z7;i3+MF$-2CCbq_Rtx(&k8;;I2C86wHm? zjJxnn*515fyBBqr_fVR;?a|ml^~)`80{hg>>zsF~kDhTCWQpCg_jgvB@rFhvTkYt! zWG7okIa(aIbKJpk4=xRN1b2vY2RLrwSje8z(j1uMG2B|*PWTWm4`=5R2Io%myOQI7 z+s0G+pljp#Jjd~rhr$MDQ09GLhhiz;*I|-oGzb~fr)On4LkG&)LHtR*mog=5>aGW8 z3@Z&Mg9Vx&&QoLLQy1=}&ncu{&`xLXECo96Z*oS26jPS;)d1v{>xk9OF=puP*OEoY z%pxE=wVWovu|#?+kSqJNLArK1cho`f&SXZ$pS%p)rh+?W!Txk)K~k3O`qNqFh4bML zNW6KuVK++K;@XX5o*`r1_iO9Tw{;ZdHM3$+<4xA|ax_vHM7hsf2>TMk)HtqWpds!2 zzaNM5a9J-gFh+SO#hPct(dxw^?Nb0J?b!QuIu4TK`|+dUoBs57N4G!C1KF=D<7CzA zel+9lF8g=5Tl5ZU8eSnFO~ZTT)4vnve@nNwYtwV){3}S?sQpxL>u9FDw{GKvVJQ4j@Y!MACa->G~8_50$erjHk{bO0>l*{t^jcbh$~>@3UKW>;@Z6+ z+1gl|Y@Ohk!0|B0og5G1!no`!ldXcQm=kb3j4Q`2h1cSOWjwcrTZh|)E5y|=WWOXX zcn$CFlIM;&uEM3^vf*;vR(|XF+<79h!W(2&EMUS{A@8-B)_sdbFXMD8^hk=cjy{Q_ zjLTOz-^g%YcG#u!m2LMtm7oK0wfQb^-)qR2wCgqmtDNw}ZgM+ExtC_RJm*WV?Cpl= z447pvM)*AgUgFqkT{~t8 zgzTCIdUF{MIHn94D?8u0@VX9f=247)**DcsII^PmF+R1{xx7OzxicltHlCe^)y)}Y zP``nJm=b3^>V*l zCp-BVTB3hmAMv~Qu&aj}^rbHK7JkG+W7qLH8*3xFeO;TImaa3=J?Kl_m(O4{%7Diy z=-lpVOfBw~L)o}wUmE#vhaGNX)K{b3yqmix2uI4yn8#dO&;*WRU-IgY6RKBxr1D7J z5fg^h!t8x#%<(k33-~-?-C|jWcT2I`!ZAl^ z;cGn1GNv)f_MRyaOX8(fZTWWgSKKzNien6Azv8>W_UGkyTW~V5st)jW}9(HM2q|Re8a<))l4Q27q zc@SOewVx#|)Q>osY@fsVA9Ja;!4KV0quV zoujO?b#8f)4KK{YTg`8=xzpF=o@+}V%HBjQ2a|Ee1eNr>PP(q(_(h!9yOp2gx7>f_ z7rOC9jQ?busPcKRT&MCSu#6phUd!@DozF#55?Y(8s#i*JF#ML_SMGy`l?%(5N%>rl zdxkB$eZ|%>DMNK{M_1OB`g-JtSOhi&)J;V?R&6}{lo3z%{371b=*zLjv>h01}>&m zrVUTI>&XK-P9RTmIf`wzOI_`3-I#;$e6LJ3%F&a2{?P0yW;@Cf&sxGSBYatNk^VvX zTi!Y45I0ifU1xmeTNIojj8)$pxxWScHd*rZGRM%ys^P4j&58rmi;t!iF6DI-0H%@yLQ zxvs5cC2xvv_1=45`&FKIC;c07GUrSEBy$~(QWk60(PzU6`$=!NPcS!DEw8KQL%2)G zt62?g(`!~Pw|TkI1=IPAGyO)*1?RJuL{#YMX_WKhXp9oPdpG)Nca2~oN2YYvB#u%a z80*vY@*!x(1`H=FuefqSX~nFWvo9&VV&?2QGcqdaNN=iRd@buNSQ7bmuzdYaEQ9Vx zoo#lXRPjm=>Ub^jl@RWH!adG4${hAiB9nV%UgMr0VVC^`?i9GkN%$c-Le!353F8=PkajB0`#5B0Q0@qT z286GVJHrJ>l5U0~@ylP@PIryQ3&MMd0UPHeo@k;J$WWlCZ`R82C+*l`p0lc#d~M-F zm-?`fx57c@xuXykcbqWNTm>6{+webyqu!rh!)aRKteMC^+-fnO%16LSQk-=H|1zhi zE#w-VL2$LZMURG`$oYDGK)^ht9?zyQWn(5Xg9;%E@)+M|@=2X;cVv z?*oy0WIx!me7boxnPgSfQ$(%x&!jkeF`~&-nXmHIgk|nG7MVxMM-~|YMLq(#SRPemS*U!ZcF%(bk5Rs?On;6QK-}obPy&_s*B5=x~}>y6g3wK{)5CiJ^H?4NGj* z7)s$yi70|K+>fKCzsmoD(yf z?8Op0o%|LjV^v`p$B12C`bKHTr7xA=;s)bHCc0u<$ivCJW;jlCV{y`UNqBNjWTG!& zO5Y%DQ>@+8xfgN!W@CGTU+4E$KmvEZl{-BHU8KyMkjKZVhe&?g5-dAM+H){kT+gUgLNI z7e(GB;LgKk;V!^+@6+lUCi7&e`vl{jZ@BiFNdfoTz2>r!66~z$({3_Lpl?A>uD64u z^kwSrdO8!yPXeR>&@5sxkiNsY^_-vZ%@pT;h+U=f;Ygo5{YmCJU&apkIQx9M^ndSn zrKS5-xjlnC8*m?SiVg5IPRhzD;?Ta{jMqHBbO-O^-OiX3UGw~wC$ObH#{8c1ml5{n zry}E<>HN078X4oB{u*Ok+C@HKYwbp+ah5&p?aLr7;$QpV&BW=x`q0fSGwhAD`#T6* z!!Xm=J(o9pE0V_>KJD(~?s3y;5hpjVTwXod*&;r9c|(QUbu>$_VOh@*MjA&c|8hUO z=dR=W1)@E5P%XU)jv^qtj0n(xc3BdXy46l$mZ%GRNsiu9i&`&JF+qm|3WO$Gqmq z@6MBGIA0JI^U-BIwK=!5*NFTors?O4fU@%GL@kmcr`h*RQ}d+N_kI`B)L+ezpjMVg zye@ujYkfTtE$|xoNXVB<^FGIWJXlUMB6dD|%GL{~ZJ$Nc?yl8K(=HlvX0|l!watZ2 z%Pt=Wm9Lo=OG~b{G8CnmpXoL1#kA`ZG_CqPF=4uGxv|)DWoKJHr(yABtu2==cAsFr zOd9Yj&8GV@Za$qQJ)!(yxZSylgXa(A(@#9HS=WrgxhDEqcaFpFNzPEL)BfZ3^2^xr zxSYWP_Gx;4Da~{Y#?uUW_?I@j*Kt_S$?1)?7+&}alw;IMo?%}yXJN&HIrB@enpqrY zwGq~A!jd{CZMpO((m#lkwn13xn3Q>uOS>+8gS7E_6uI_8(kDnCAm>C^!WF;rTb%YW zBA4(*E`Ee1PH96`SNjpM56JI5GntFgmfO1-OXCV~m*J{#O}JZdZOA{x@gCe}++(<> zaeHw4algd<8TT&k>~GWe;Pw&j1dds_3vlyrmAHCb8}1bHJ2-B_ZN)u}dmi@+?lA5T zxRbbl;<~pB-uRO(2{a6mvG$VMTGbbh|$J{utkZ*mlRaCz2&ERG!k112z z$M11%VeuTrKD3KIMe;-5cR~&pj<-6c!0rCNuTBB5kwGk4)abi8Zuuu@4U&DJL?AD*PPpe&>8- zywu$44ETwO*F*7^19>o43P1Df@3?cp|M)#roe%R=*Vflh_F7`gDkj|dq-7ifrdb^S zuh2XWhe=k0LK-xlM-qk<04xq>;Yt%jqRLbud3w-$=0-`CWI7XE)(b z!u49Oy%OR~WZW5=%(ECH*EBUW##tqVk%iwP=IBzFB>zvo$o+tOo3}H@ajhw}H9RK4 zc5rE#o7m&Nj07#?0jvvT&Bn4`AzZ1yTRBSF*eEm58={Q*}G5$Kquzli4{X zv2I3J#_@GHX_v!oyn!PloEgpvXNRYRbHcgdyztbFa7IQ(W=2*^0KC8hqE)XGqba@v$LmU z=Va$*=Vecw5}uMVC38yFlT)|sYE}Opr_((DyOiO zyw3X5d$@5&uxlAQN$`95`FG{vUcwA#4dCbBTwgLA!1!wL0nW3>)Q16^y?O3N?tB2BVwvZt^77JX*)yH znV)k!G~2!JKjOT!W3oL$ixD;_8KzdTN?O(AK8Wi){lU}Ih!_g9N#16qZ?Roz9ml_n z>;Az}Y!1g5Q_0wG^bg&&e+^%JdX^IR$zIocr~hK~rA(=Qk9vf0aI#mAR-r5HTNDYG zzPpDmgD=_IIN6!a%RItui?`wLT=b=G<=~WMygLzRMf-dKU(g>F6XOqsV*PPZ1N?)6 z3BDozv!c!(GSqjDf4G0dz@(_rp|QSkz8iu!`kxFu<=^dp+5d|FVEj*GU-kdY|C;Ye z)EoZa2aoyRvQGq0`TrGo#}|M8vbzp8WQdBWHc;_Rl;R95`smS>rRZ^XJT+ck%qoYHG{B_VrOoF`>8t zLx<-~&ENLep`XX*Zn%3}Ox&~!7T4W%&ya?S=id7BHH%K3?pRRz`TNr+pPzc=16v;Y z;?_sEJ^szzd!q-$pEElD!a0{e^635-x5SJXnR4z07ykbEpF6()e9->Lx#y*3<>eP$ zTwJo?%B#w*DZjq5x_0r6&21mQ^^UDyesag215Z4;yy4l;UY~MvR3JDhusGnGoZh}> zbRc7JQgB@Cn5cX*Qd-G5Eni0?EL7s zoV4KZ_HRtDSrA_o8#i~(sG`t3&sw~kMgZPFk#K_+W#@W zI2af7-!`PMct-nor$_sOS4NG>_OBk47OaWCDz5#BywL;Gg0V6FLDB7>zwJ%7$v<|O9hexHG$7p<4rcf>eUJJd^M5(` zmC(QZ??k=pKNIMPeY|buou7Uo+9*a?s#Qir+b%KKa7(>neV|_S2ua`<}<1 z`sTO3|NIYM_|?(hc345DK(+h-;m&V<>-iU6dim&Yt;F>&6#)gwdL2d#{B8KAH&P{fB5>*-<}vaWX`;r+V-_y-TmxyKmFN> zzufkTJGVaa>~r7$!OO4xqG;2%UwrsD?COQrSKR)YyPo>m*Pr{&^FR36kYU5G zEr0tTXFA%Kee_qa4;s6?A!&5Q$8UM!$y>j*d)V+XW9MEp|1v56x7_;7_YeN`@QJ_t zy{Y-Gme%{uOP~DclV5-C2QUBZ_0L-cpW76^YwV8?zSJ@QvTLr52@Os-fAU*@Ufz&9 zlL7Kc1Qzmo`4`+UuATN4tB;oIZ=+I%eA8+52vz z*_Jgw1U89P@eI8T%6Gr)?r9WTi}YRPtv7d`TMT~$S97+Ej@&W+j#J6Z zIoxNEygriNjPaP4hWG>Sm}0rPR{{|M*gw;p@spZ2NVu|igO$j#IEOT}LaPL9gu{FeS)Hum2Zw5_|NDy{3z z-eR3K+#VZmSC0L2+LnnE!ggB2BS+Hw+bSoGd8abnI%DTN*io7DuJ4T;UtDtTxPfov zeq~VA)X9ktO${ei75#0@L&XKzRV62Gc{it_-?(%YGhm4Bu1!y{__kgOzAd=K~np>v#^_4$VR2E_!Tz88{<87{fXy%Ig2|4q^s&2g0f%8;D7 zLGlA>ZGf8^WySjZf9K9qB77T&FX*%5Qlp(a73~kCli^kj8RENQ7)c?Nk3|y!c}{7Q zsC*W8H#;gye)*yYTePZ{@512aoVU{b!`Vb12u6iM{+KbrjR7k+m>Kd7@(qjf4JOnf zPKZ%8zAgBf5hMp|=?I&EjtyD4J$F8t^t9-su@qTA6CpM0uZ@k+f<8b*CyMc_8 z6Q4TMVRN(!2PG7(_O0_5#yct^FUIvJulMAI9J~9sIkg@)o$xnsw8{tBr4s(_fqR0V zjdEhKIlTk74V|UZ&=mI68OP~^xZ__v)3KSO=#)jm*%8+kkOQ=(fqC|vAbzjM{% zzW{mJcf5O6(p7FFuSC8NIc8k(pHQOt=jEH^@mh2ezk8oG)?w;>6 z0OL2h1>Mto0J;7AnU1h4?@>liAP*zA`;aG)29ZziLmoz6jJ&rpEa@vj-iTbvp2F{pdBmOdY{b_j_S; z>NN5#$P2x2y63S||1p&AIdG=qh?nk~uIaun^tss1x=@U6%a6}=9PcGQNl!iUf}fn} z$m>JC9(h?m^6khQ`;gm&xgYsDrRZO-lLc1UU#^^>n;@CpHc?o zx{7+1vl`?Zkxv(Sw>lyD!o1Sjfn4J4O}-WRu73RQMSc)@Wgq^JA|Lu{-*rA13i7)s=@8R3TpNf17^3p!)o}{rD zoda+7-rtD4UJM1t`)U7?CnE2y9kTJd9r<+R{f&JOpws@R{@Zs+%PI6uqSsqrB;_tK zo_^vj(&AljU*%51DnxhO39tPv?ONAFUW2>_d0+kTTI3s%pFo%Xqeoq|IlT>?%D*s1 z6dlS(_i=&f>_;czuYK!CT27#|2c5p^YyykF`;bd`-Rr!Z3w!cyuDnNDC5}>bivQMk zJKlnPDe~iegkf`j6FT9OXFA&4dfNN=51qAt_wHe3*M3*RIE;KVavhs>&ofD@Ea+^1 zyZ7rAx$ViNZRnmKA}>I`qaXj3p1ikmCjQ%z@5BFE3E$s!kSg*m$kQ;m7KyxDJ1+7) z$V-v;mA)g$%aCt%{crFY4U71fjYWt1k=w{CPo3%5(ue;7?J% z{m8c;l@@*3oo{1$ol^6!)xHcf0n=aj1x?rmNo;isb47}KG1g@XFt zui3fYF#2WauMKr{tn=#cd*zXhpY`}T6x*S5EI4`F3@ePFZZ_* z`6}dly!7|iuWUv)VMy=ySK``@JPElo@8}kn$PXhABQN21_wpfWIgPv$d7@j^`n2sx zSgCA2EIu3EUcwT25%NOh^{%{!U1BNn4gL6EhkRW>{J&$i4g1W6ZZ1`N@9b z-;F$Rc;ENrF!BWCm2NxLXqInD-)ZC}BRe_@+_KokRwMExHjFin>a4>(sl!RA?&hBv?9S7bcJW1PHbSuy6 z=qPi;>ygh}k#9oY*BD|i@*T*<{@PnPJc|7A`MuvKi9g8VnaHQR@%Jd_(o-l#ybIZ||?sjUqhJEPd zrS+Xh$B>sG_wu;MHH2u`)*)ZlOBy8nROBa+xAc+6MaT=&X^Y)7_PB>jk(Y%#I<~p~ zd&IvE`H_r{KJB*KB!1-HJ?IhsKIDm+z593CKjf(*chgt-UUgBfIf;#u@zGw7C4nT3$0#TwG{pB;$dDY=?PSupWsZ%Cp+`?mT8MmlPMs8MS#+3AoDY@26oAfu;HCNwc`KYH>Fd?ex zrmW1m%*Kq0Wtoj~@4Ej<5z@b)^%pn)Lbi9x=j=h2?}WO4KIeTh!J)P#wr3UutxX8z z`;97pfFG&(?p`)oPTL2cp6cyOg#QM|BFA)!Z@)E$a1sptd9ZEBrHbj%yIW5NO&*7R&FHzQ!vZ?oRmMG^)6gsu%9w~(1?E$JaU@5_f5hpgTpYU9w)xr z-~(Jwg2zw5Qw{mg;ZuZ%Nx;z$Ql10I86G)289oQr>%RsL4X}~QpUe4*@KHlv4!4oN z40oOD`6PThtm%0QPKdX?_3j;ASo8BPICZe?tanR$@utU4@bF*YQbRtU8zrprQn=laKkc!~zX5MY zPB9`k$Ul!&{!e&^5nczp)6g&BMhUC_Rq!rD{*1>e{}#O4(Ekp60+#EQ`2XRt>c0zb zq<*GyLhhH?KCJ}X6>}yX-c5d`dGdvDk|D2vYbXyYzXO(U2)lniYXjV9@O|(WL;pMQ zVS|su@_ldh|5uS4EVj(hkVt-xk9S%1C&Tf`m8ZZ322X=q44w&ZGx#D{zJ;v*FNNj% z#>xxeLW38=)6b5`D`4q=RKFHJVzh4!;@^x29m!4xo^5?UD2p1ai zlOi|58%siKV6DFw!{+suz`F>qlF+0)?)F$hm+-#}Ck~6$#|#=aVfW8x<-&#VK2C`L ztsblV%W(W~+p<0RC^ACW{qtGLa2mYVli%yH%I}9$Derpy&%@cUwkLmq^I@7DV)tW{ zU@lI7srh#iEd9Ov=eI6}rN38R084wVybzZ5TDbz2{zkbLmi|WhMp*h6<&VPBzbLPO zmm2(WSo%Yi-vsC+xT(crsa=^s>nFD(6m^8K*%SIQ5;(qAb*3QK>b{5UNAf%4O^ z^ta02fTcfCeh!xYUHSWPDNMFI`F+A;mA?&3`=cy&t__C%`3!7?RXz!p_D4Aj-f!q% z@3G2jU}>L}Z-7Izm&#(}8fWlLaM<8gaGt?y;I#&?gQfk|@IC{}cuILAEaNHV&%-jl zQ{Dp0_)7T^SjK0{+hG~sDt{H0@vZVMSjM-?&%!dkRo)BBcv<-cSlTP)1F*CQ%CExG ze=Cb!PTB|MU&GQqC?A8R{ZW1kUTg44SlT0%{|lD(OxcI6Yp1~>c(1{O;e!SbgO3_K z8kX^}hBpqD@v!nlSjNN3nXrt%m8Zfo{#Gu4WxTC?5j@M_`EZ%RSHepTE{As;Tn$V6 zqT$^DpEmfTu(VeyZ-b@1Qoa?I_DcDau#C5qKMl+HN_itJ<0a+$VHqzeKMc!wOZhQa z##_oe;O(&1*I#(7@?XO;o>2Y+T;vg7g|be-k-xumJorN@WqUmOMV~YO+UIdC zEbXI)zYUi8kcM{xmif$HFMWAT@TC1!{qMjs-i`O?ibzgKg(MW0L-#z%m{a8-uX_pwAh9WqX_f%XrK7xDuA}R*lDZ!7`qb{1X4q!ZMyp z^Y~A&jF&XLF+b({4ZaMP@si5hVHqzeKLyKpN%_~XjF*(pewF(HpYr0H{WJ38Y_I<& zJqr%`ocb{ox!lkDV5uJo9{(Jc`k>tS3-X`)FZm(*Ps7swI{h{LHZ1M!#h(0?UvfY2 zf4Rq*uXoMwe;DOW>Lo-X#RmLq5cb-EY;yGhl|n#OAj?2N%H_{&(TE zhW{7fXN~ax4sS5z@4`n(AHz5&yz__AUmNMY9Nuo|FNA}H=j1o>-v%cb{5YIsq~~Yw zA;bUc@U6(1<~Z@i4aXJo{qqyJg>ppo8h!{vtl z^KcpAG0k!G{{q(=@_)gLkn4Q++(gbek!yJWgu}BU`r}4X zz6|{|I5;Yj-fZ~Sq({ql1$+|L`0jwS4gGuIN+Uhrh8tmSqjNpS;A>!=f1FK2vCh!H z0Nw=ac)ku^YlPnfzhb240eFice*{j&Kexe&?-h8rA%6{?X~?4}SjP}1A(@W< zsqnS1&L?W%;-pCaEQ8Ja*#xggz7+q`KArIx$q}hx5TgVU;Jr#fJQ5k5%3dw;A%+Jy!Wqcq?+Jzazdew#zCX2X8av z6&|a+7T%7094F-Zzv{8dcfkh?|AUiVR{1&bLF7f85dV!HtNbQ7Q4;0+`K(*vLZd$2 z4xhrm%J1nW=QSr*68`o2{^7CezYE*Qw{t?`zmBRZtnzAjpTW!EN+bRiaG@b@hszAU z9bRYXe->V4$T!1V41NSQ!{@cj)_&w#K1O`RWli5$_>>`E@3G47fya%Fis0MhIq5mb1RsSpSdPDw($149lyxEBVPw-YFfBpgQGvxBX z_u7jh^(PHJWXPw$sdFRpO8BTDuY>c7BJz9T6NdajxX1|q1^Bcf{|UUukaxf#+jcL9 z{0g0iz9G+shZ^!3uz7v6;UwhF_z(Zh9&7%rgvS~3$2?Z~lW-dHASdL09r0M@zk|bu zeE9h;t9&$^ZOG?)tnyMg54rL+a6K$*(-Plqk5&F%c)xM~_QRVD|38KEC_nLdkoHdu zn}x9UClld4hJH4DA95K6ihczgpKL?&$Jh~Ggq&fVBmXSiW`y@FT##%dl|P^L19%;B z9nbs~-kNNSkUyXG4qR%;&l}J6B-$+igj^I6rRZ(M&JoSI@g z?*Wti+V8RI{}?WuAG!XECQ#qeSNWxIi1q zczS=Xh6`c6-)rDhL;p_rVdUC>e+`~)$e)8-kTYy^uIG<%xgq}>ydJrZ_r^@3eKO?d z!!<_ySHOROW4-V`4*wO7_jns@(Vl2}e*!1K(VqMad?d|=yz-U@JKJbr{MpAHU7i!Nh7@9!j*ha$BSX}dh6k`$+lIAT<*sqk3s%?*012#@UQ8M&BVTrei~BIZ}Zqu zhi`$8BH!o9-}G4Je}NO|U$lIW&f?v$u$JF>@MMEq;kSr?00Bt;Z-M^_pXKq7-~s4I zdHgoKJ#1SxEa_X4?J~%p&sqlWM_vqx{B@5VG5lM&hW>SkqwTkbOkup15z)WRW7WSM zZbe_O=Nb4;So8Z0xCZ}8oRIhyek=PG!oA+LmAFv4FC zA2#Io!K3k?=%w$w@DzBk$8W&}*^%^~f`3PN!#w%8sa@~i1h^gjy~yQ$Kj<;YAL~i* zX2RF{d;s1CYkPbeegckhv{^6Bx2!d=-j7naaEfgeAeZp>c?|OBvtEMNBCml&K4+TC zju^fKK89S=_Z^Q_{sZ_K;?w%}H+T=6;DqkC#!ja`<#_f_!rSDr`hO7Kh5QsJB>rJD zTvmA!e1Pz@JQl%k!g~K&;L}EYTi~C=XL<4OhvP4f=%0dpy?2hs zD!&94`?&JuaG{~U%43zUfyI8Vybf+R^q=-v<==qCzOMWnEcS8b=V7r2E58Vfy;}Jo zEcR;UU%+BNSN=6D_H*Swz+yjEJ^_opSot5Y*sqn(z+&%Kjw+`8HaH#@`?ku@hQ+?E zJQ5cBymB&p!r)X`?DZ<242ykQIR_T|wDJtN2G;tu)MJ%5z+!(^z6su9=s)DK%D2H{ zpH_YnJ`9iIgtUjRd93m`;8V!sJ$d}4F01@(SnL_fBVn;8DksBYA5u<*#Xh7w85aAD zat^aH{;ceJUlq=zVaDWqXy?1)7@_XPP8S-y? ztn$6^OUUCq|9|#akn8{+C{KpPKBJrii+x3T1}yd!uJQ}8*cX&vfn`3gdb>T^LyodI1kqR zTI{jPm%(DsR&Ie?4E-%0tNc+|?CZ);z&i~6*F0AF8?e~Jm5;&44gH}dE~|VLEcS8b z6gZXnpr(Jm$11-P7JI#NIV|=C*?}ugnt^6=7^IPS|V43eL?|@~#to(IY=F7^@!eXCL{yr@B1m*p( z%-5BF0?YhX`88PP$I5TOGCx*62Fv_d`OmP-SC!v}WxlHXE-dp+<>2M+d{TJ;Eb~w0 zvtXHjDvy9=zNu`(GT&4_AC~!|ayl&YG36<+%*T|c!!jRJo(;?VQ2An5=7-9c!!jRK zE`w!0s9XWdd{lWcEb~$2Ww6Zelv`k#-znb=%Y06G4J`9H<=f!`IDr$=e>~%{%6G#u zKU4l5yvor3v&Slb8J>vC3D$G9OdE4VL+q@*S|ux0LUOWj>|636}Yg z@)uy44=Fza%X~`taaiV4$~)nZv0ikrSf}C0-(Na* z9`QNrvF)6c{b;{|W&JPP@>F*8wQSf~w5qsoZxZaS@hY#X^2oXqq zY=eIb5AgVl@ChUQm*7o?|5xF~M)xUVOu@roO_1Je~;`z?xt6aQ1~ZQu*^)t#Ccz4|d3J zeF0u&#P>tE(a`@fY!RN0XWxa}4S94K`^S;1{UZb3V94{~TaYJu@zugx4Eb`n1o<#e z{y(r;J|2YkqF;kt>=EZJbQ$E&XHA6n;6KeFzjYOS+Thi2-sKVbb~v?w^-aGUUe+}( zJHZiN9=z5lpEKcl^i@6&t|7d0I3eY!1zu;!SHatnpY6#Xh4;XEKYk2vGxT4B=Ux#B zFX~##JFNO)_>`fa2Pe+730?ktRsnnm;cNN65#DUXcOP6d(-vj^u&=`*Bm5u2iSTeo z>bFk9epu%}W6LRDhW^EH0j&0(R(R7)8{hKBdKSFWNY7*N&Y89d`D1?&d;s|fhy2zr zg=gB3{Q0ck!GAF1L$2d~&a_3yAN%#-dg34Dkl&gEe+rKAxDl?LWkd4kvsS|9{k#R< zf_y1bDNk|NyX>gLgM|rC%Tqpl*x*_?G~0I7(Z2yMDT~y{``~g|@85UfTVSo9Z^7#g z`N#^c2R@4sr991rHyip*@ODH0LD(vc#Q#M&{u;Z}em|-bHsm(E&Y zld#^;t?*uWwB@Gf0Q@h*|7kd(JmNpK3dK1#|Hz-ungk!eDpDTHM1FNd|2DYT(7zo{ zK(6(FCwv~P(^sHsr6vYYq8; zCConz`B2!rzL9XYA-CZ$M+B0dFL|u-eFaXq zE>fTEI`V5?B);?D!<0Ae|1O75z}nudg4bV}V$sbIy5D*fJ_f7&$MAkb|6Mp-8j+{o zU|9tQFMvy68P-a8x4>Hs`D5@-gAc-c;jel69q=k6{s}iS|G(Vs-2bxCW7HiVpNIDw z^`<_#^O0PyPa20>^v&cQ}4QBt2)~pdlZ>jQeYZR|?y3!1I4AY+nB-;6}o$ zL@wp!FCK&Z@q9D<8T@N{QN!ZSYa##gNGV z?y)0=-+{wdM&!#r>axn4;Z?|Wf6H$@R{5Lo5u<$l9o~b!%Fl@0;Fu=Mdfn(hv*7Sm z5&h|K4)R0-ko;K!&xbX??t!m{wLCrxw;TR{0RJ7imZ!hL+YI?>_;bjUz3@|;X`c*v z2AptpBt7}?c=QK)`n7PHA#Z@2jr80P7a8&|!K(~@65eL;H{ij>`02Osenb9exYh`N zR14`fkZXQj4j+IAd+Gf+Tvisjo=?H6kq`6aPs8T@`v$xT{k_Pgyi96!8RXAr zWx=_mH{K!kyTY^KXpirN=fN=^e;pnT>;3o*T)xn@3Xn_qSKs6^$RGOw;LXSxMmX|= z9y?;>ufZ1MM~PqjFIeHS$``^izErM&6PYi%e}1bD&NJjq@NUv~4hmA<9)wE``J-?d z;{_f6{{(J<6FmJ6VM9OEM!Jv>_vG1dlA&J-Z#4Al;4~xrd*LEO|2yzbL;nT%71BG* z3;%8S_psiNl$DnCH(2lgd^qu18*TX`zu~onf3`zBe+6$c;(HR#GxT@C+mLJi9EJB7 z`UxNFn!m%~di>L@IQQqX9!u;J|Np?*#{KvrydHh`&u49iHyQj4yw%`m;T;D50N!oz z0eGLmKZg$*{A<{Z{}_B2x$ak3e6!1%o_e^P@ze-TNcq?Vx5C=~?1hh&N3M6)DwoxN z5qul^+J3aaW!Kr(5fr5S{?%jEKLzhJ;v4sI%X$&k`c(pNfQR5g(z6QQ3Tt`X2IpOG zyY?_NCf?$*hMxh~BTw?;-|4Z+zX=~DyfiQT-@#(va{v6+aainI%6}FA2A_h(KBMw8 zu-KcFgSWc&CgnI->`TfCu-KQBhrwcBQci-!KBk-ki+xNv6&CxLayl&bAmwaW>_5u+ zu-K=R3t+KNDbIz)KBZg?i~UFW3RvuI%4M+FkCd;6#onh}1Mh(Ke%v9Q>Oln29N4^ch`7JH5IC|K+@%E_?U zkCe}c#eSqb2^RZ_auzK166L9|*l(0CgvH*YJO>tgkMbq3*msmKhsD05Tn3AMO1T0y z_bV)h#a^ZIWw6+1lv`l2&nVvvZ-DiFJ>s#-ABV;MqP!E{Z|J}7vC4l3i+x7k68TV1KHFoJUkuCqO8IhF z=2yyPu*|QND`1&lDKCa)exSmrOv|Ab}!qHNvf+S8O{U~~O@5G?jJm7fEPJxw_Y7JHiV zM_?I$D^GxBexRHI%ltq&50?3X@`bRBpOxprGG14{6qfO@a_Rr#>wdtrn)d#W-*Y!* zs-a{`QQZB(U?PMZLnFf(3?+l=3?>F4q>?(4Fi}aT7z+JUAw)@>C{zZ65JKoMD560n z3{t=M_ulJcf1BTRJ^Q+z$9dhKwb%Z)_S$Q&duGD+ejxt~+xS|(7~A+-z5?6(j64Y2 z`-gl3w(-3@3fp*C9)oQ>ElXL z{35pbTe%9`{H^>Jw(+t2KDP0v{0X-4r(A<={3(BnZ9FXhh;2M9|AKA&D{sd({*@b4 zMB{I{3AXXKyeGEttlS#gcvjvY+xS&J5Zm}w?u=Js_3wRym6u_gFO)CG+02ir{5`?S zAHX)BCO?FWT=}nC`A>Nq?uK=|&ju@BhHXAmegzM8<$nrR{wucmP5Ccu^Zjz>?esU!P4Rl?7TD(h zRlW_j`F=TtZN6VV2&dfm_?%$n{jklK%Kfp8_vHcD#{2TM*v9knFl^&-`6g`Rak&E9 zcwW8}+jw5S8?V7Szb^$Ve-+z!TwaBX+|S#6fNg$L`KOi#+26zY635Gyofq+axQ!>W z_|X3T$!u)%p=0^LzE59K%ipUh3hxhiE4KOK0hG6V#t-~Xip$@{UC9eWe(H}I>F-O5 zgC}D9zD54@C%&I|>o?uZ@0hW^?T^*}6t?-`uEAemn}1ebx{dk@d0z|pe!pa-=aW^w zC${ec28DbSw(q~{f?vb-ebct!OX|ouANyiEACF)ge_8$JjkohZ!eT!!(DV+zKfN#& zKH+cG;9eKSZi!RwdhCZsy8J-g^P+fsb2cu=y8a{aG*`X?uO!#|=K{RY<^RQ%B=3_GMr2lYv9`1B;D!sO?-xXg&uJQ3jxR1*($BW(icjHQ| z^Zg=T=E}c{%Uu2wUhneX@J4dYCv~tBc}cuKhhTrc4mXoqF+1Nk1V;zJ?{ni-Zv9(u zsXO1}ar5%H{=4x^*WO;l^Idz}h`YG*oALV>$L)RJyBH6#xAcOXBlai`!lnAOA17kK5nWB+ie^55`ZB>-v=7S8%hiKR4rfuKZX$lwAGW zGuXGM=kZ2Y{$E}Ztnb?kJxjZ?U_Tij`D+a{%?}2l! zh@FEAo%g{*ol|%*&f|FP{uvnzSuzs0;u@EK5v+Uz&b~5UzwqwJ%1_7L$TRuC>aPe^ zJ|5@0{MBIPZ{Y&+PGSAl_e55{A1-(6-xRF;Havj5d07AXVC664I{JfLKCt`oJ3QQ# z-@h`l${&EolFNtUO4pwpjTgK8L|jDwVdvNCzXC6J`Cwe-d?U`{`m6jS*w;TFuXW`Y z;qA^#aDM-I{jYI~`$P5ZaWC!F`8Zs5ReU_%@c`#j@KBt^{@eAtK3KpMSK z`64{p$?jPsf@L1>F@iOPVaLPTePQYE9 zFUOl*`K$5ptK;nrv7GB|=fke&betL-f1lZ4O5|tOUEL>alYuZM#n3*#5uisRG% zeS}9--rBR3KjneQ>EiedJfFNeq;qQIoDz5*&>6GuEgQJ|k7m91h zvqL^5Sow5p?NOeCtv{0=!`9yA1=!lV{4BQdrMwi|_)=bhZG0)ej&1xVzm08tD1U%$ zyf1%(Z9FJ{fo;4gZ@{g4#NLE$JgIyOw(+X`8@BPR{1>+IqTFCQ&ujO-+8Ec7t37rN zR{4Km>u==(Y|mf$RBZ20axu2|C%HGa_Y1iXw)YwNLR{%wj_v(O`IXq-x8yV(V|@zp(W;a^{Svf0CPG>%Zg{*!n-Y4YvM5PT@SP<2@r- zd2ejbOSvz$`&}->cE8J)W4qtwYq0ev^7YvI6L}=I{zSeF+xS=>k8OM`PsTQ0m#1PI zugf#BjnCyru)SZ%Phxw&kQZZnzmS(=8*j@iv5mLoH?WPj<<;26&+^CE#{cr?*v7;1 z25j#maxLC`eC(gGjklHmfo;4kXUvS=r{pYb?>}-gY~y{o6>g4oeNPHjUW9G@BlpC` zuKd4)mEVGGd?b&>ML{;d^&cEBTXy#RBqKdO@4|;RpEL#A_+I`3+x&oh%esv8_+o4* zUxRJ@J}EetzyE9R4=UgNE9R>hf6QZmW%aN8n!lNL3E!vlKs7g6&)++~B9$lz>%WF= zJk&M#H*Dj>^5AJ3*dF64f4U({XyF={D%5Cp5l;i!#4iX`UiZ={2J?L zg}emY`;O|HhVA`B_5HjtBRxLT`e%Hfksja4Be9LIdxiR%ZOTZG2bC9K8~>)?2iV^o z%m>>0(Be@3JLc1DzN|X%&d?2aIfdsQT}7*VpFX zp2yR!PyPM-I{C9AQ#}hmUp`8^WP!_6sRi>U#}ubo;v*_i^RxaGg884zt-`>bL7}`&W#cyZsr4E8O~{@DOs1zaGOQvBtA& z@C3L1PQ1#kpEZZ~1-7sE^&@e$+uu^0bwi51u_YsMDK4hICTS%TlW=R7-;d8DZx`|^ zoa^$p@tfqWLtclwxjbVo*PFam$n&soA4lL)%9oSd`0)8)$im+{$Jv+1?`z-TBIlfk zIe*UG@p9@Lo{Z{yEm-xvg_pSYxdvwrPen1?TZb1?U(58?lZo9PNhDG(Z-(p0_X_zx zaQ1+>eO-zRT=}c<-Q=ooDxT-czk(;Z@^9gV&L7~9*q++=4!jYoJsh>oe7rXov+?Ms*q)R6g zgYW>CkHAN}d@inZ`IC4FxyJu%@dtRfP+x<`IRCDEHul$ZPu%U_slR_;XL_*hz3u;O zTuXgD^*Wp>LZ@IO{lE)+4+O~dQyvpUz1uI{Q>s-Fi6Oongk2~EM*FP#) zc?Ir8p2-Kc{g;B3SK$(u?+jMna6bJJd8e>`?_lM9@JP4*f?(y(;?d+qVg2S$MpoVm zSCPy6 z%D;hgUHK2pE?oxj1p{#rboJdcm+>a^>+Me8f<^-sLyp&8)Bfdmhdlm5O$cEj*1Iu)gwjIOXyU_zZGA&zdh{yx{US zc$KTa5ZAc2{(ARk=x?#kPdDt( z?}@mI^_OKt?O|4MbOJIGkJ$R|dMw17-S(cx!>K=zUT1R>*Mo%$aCyJ<< z^JXPpNBLq3SpB*GjjZyA;X=yqo8DS7(HH05lKT7aEx#PB@~`3wcm3YQC6rgb7GFet zIecLKNrNTyueYS4m`}3tN^(8FkHuqMUVtmfTeF6(e-)nR@}YP>d8?4m#MLgJhbzd{ zK0m;X2gdDt2X2A0!}$k+>Vrb?1K?Ughe47#FesdFj&0 z#A>|O<)7en&R=0)-$uNdT=VC>mqt!+p6&O+%iZ=b#$9epMKSqRc&IzS_u*of&&0Ll zI)88B2`*oQmplItucN%KXX9mz53$ zhc!O^(bgXmAJ1>NjQaKt``hs)`cGGXPu#_o?}NW3SNp5Lyy3+DUWz|t{T39n{%0)q*LNZwOZhT#yFdR3hAbJ0#0s7V z)UWO5;f<8H`_alj7@RJSAHq3zr2hW?WRI1RmFM7o)TjQg01v{tJ_B(#+%&y)et!j@ zjJ5w&_*~pDsR1BcReQJK9pBJ1rK+gg~twxx3>ycyZl4^1>0{;1-AW+*At1~aO2?4IKle5ANu0f z<5PTSOGe^iJcC^Q>qK1O@+oHW_UY2e#4C7$%U9uf&L86U+5YaKd`30>gUg%Zwr+op z#WgNJ3Fq9IVr^Ua{t*{ApNp5c^>4xDF257+;qw3D2`*oO`;+T@{eVYcjpy3D!Sm3S z?}!f}*Y)m+{q;K+cbSm-`}Zy12-g0;i)&b4&#OOiEpC)Px@6*@H~IU8c(>ql@M~Dt z<7T{#`U}Xdeg7N`Suzs8G=C%qk6`9E+zzXM z`wjPUaR3=dbaHk#&5{aPH7}d~!T4#my;T?c;Jh5Uc;W2j}B{!T3+g?;gsZiz_H!gYEo$5Ulc_;5^>9wY`R)@Z;@R=i>;R zh4&2gU4YwSoxgFo{NC{W7WHR;8d>$Xz*EWFhV9=Qto%V-N_{#%uVec@D_WRO#`b-d z`~kM_W8_b;eIFx#f$jSxc>}iZm*h>@zE6_3VEaBv{tesrN%CLVz7LZdd=`BlCO5|R zeVE(~+xI_mOKjiw$opdZK1yzn?fWSCAZ*`9$(^x%-yXdzTjV*owVMxp zCs_H1*uIaE*WnW9uW`Ba_t@sgRelS$`C_>a+kCOS6Wjc(+~|Kiznyo-Hb1O92ittG zyf3!-Ww`^k`CIv5Z1c5p7i{yz^0CTHXkbAg#FKpRp2^uy&o+IR{7`fpDzD0Souc0gS-hJ*z;?z z&m$|}2WK(gruK76u<~MT^QH1R*ycm!e%R(S<^I^_|KtJK<{RZ}vCUt~!?4X)$~R$~ z|CB4R%@@jdVw)e7@5VNNDc_H6{!*TWZT?bz6x;lz{1onnb^MmSIMVgo3E04VVggb&&M`@CSQnc{z<+R+x(L}5Zio{JOtZ(m;7&R z^GWh8*yi8lvDoIL)< zJZ$qp@&Y{2mH#YQ`B&KHr{wRj&F{#YvHyMc->}W+DBpo?K1Xi&Wi+25XJeahk@vzj z-y-jWZN5crk8M6e&c!zWAs>!yenCD4+kA_B0=D@Ixe(iYg?t9K`60PCw)q^nFShv- zxeVL}ihak&=T ze1QBjw)p`04{Yz(a>iHD`?Z{f?R{EqhV6Y?ZiOqb?uQ=1%1^`gek}LG%U$`A!OCyL z_Wmr7$J<@`=Yo~Li0yq>uEO20_Gfdj^53w%|H?b?P*?ttuOllz0^9qx+zl^u<;#PW zUxn@cSssjQUHKWo${)t|J}uA3_C72>gYA7+egWJ2vAhD?`>|Y&?R{8&7u)-={1Kjt zb$*iTBP(x=?R{8oj_rL{-W%KduDl<%_gVP>Z11CT9=7*U`6z7fv+_T%z0b-g;bN@) zyE<6;P;Bp`@{QQOkCt!6MM3uSy5n%XY}q;Je;MhY$0*C-eVd>EY|YPy+W0#Cew*a) zZT`j2*WQ>)%x5Lb+wb6SUf+~T?~nO9Y(L+T8S-U#Zbd4wKGb*8PJX8Dj#OfF$lt;? zo=+bS^-ps9V?ST|3|`FpceL=cuDI^LRAQRdm*D4HgOxYf!0`=>&rfGuIW=DYNZiNe zrFg14KmBp7^JREDKAjDu=i`E-?IjcUVcVWO4O{*4Y&^hu9v<%e6rSt67%z5y0arOM z$DMA7>wgXV>$wWY%a)z5aF*=+6^8RaI3t};pz&GSLT|dXx3uoOF&v)O5uN)q~pFDzd$W{J5yqW#ee9)gblk&y7PS$E_V6xcs_Z{^xh^Dm*N2~zZ&OI|6U=Vf^*&WR^YL&{2MqiBHo{EcrE2s z|Na}6Guo zzTgrA?-tw-7tBl{Tln|Z@l({N^D_~@;QTzU#yVf?vA_P`;nA+XA8{wzm*zLy zY)T}K#G1b>#NGZK*LN-6?A9NOhmMT*XC@wvbw1z3w__d8FSsAxCw(-@M5>nlVphry zj)lL6fSbGR^};z1rPBSk^_TO5)5Y=AxWMIm{193BUU;C(2L~&^0Z(=LN5RTJ!&T&& zd|=ye`D0||`{HVspBJpW6t8mm(qQE)@M?0qURM8a!OH)_8)*-@d|>@|?oZqgl#iB- z#9_FQJdY17?~6w}SKwvN3vkiwc>QN_FXyGWkMjz=j_alRYw;xVEVgI++jetg?N0|h zm0aiRoM7dB@ibTeMR>LIr8sj=ynk2WZqC=?fzCJJ!nyI!4}BS|?R|^OxPPN1nb?9W zC?75K&p1VU%jN?+e+O*gecR=S;d$hHguE}VarwnK=iyXT9W`8qr@HogAFjYTVf__& zfXi#~8Cdtj-dpK^u=b}1u5|UEf%9BG3>V=Bq5g-kKi)@i9qX5o+x6P(=g5#HBhdyw z$NJj8Lfq$(_gI}1xzzu^B!^MxL5-DukpBW5U`2Au$kUahSQ+V%RBP(x*hr0G~5MD@m zOT*!clkv)@mRb+18@oDcMs+7!EIeW9nWz4Q;oa1{C%85-Yl&D7w&|c z2j|vtK3(}E@l@x0T+H$4crVAxTz(y%)XTZ;Ylz8H^X{Q}Bc`}rssvM{#C)#T;K@^k)(oQ`o{Jd6EN ze^`O@o=BzdS1bQlu*x_1Ga6q-P9_>-8&Am1u#I=*me|HS^1j%{dvbeh<30HxY~wSz zGq&-Wd=$3viF_Qk@rc|V+jvtx1>5*ZJ_FnMNj@9f_(?t=+xSVo0NeOPz69I&M7{#s z_(Z-IuXVm2`|odVG`sv3Y~xFyX*f|VbM?fENr!}dIvPsFYBV;5o@|0q8l+w)28g{}XW&%-u8lS{EZ z59EunJzwMj*q%S~HQ1gv@=$EgEBW8po@erCJkR-dY|jtn6R`E?^4-|_b9pMZ{#>4c z?Rg>3#rC|AAIJ8*kQZX>pXBGT^-uCL+|_v{w)ZXN)!6z+`5kQix4Z^h|1E!tt^by5 zu=QW^H`w}9xfWZ0ByYvmAIZPtHO`5@qW(_#ZrJ)ec@J#QAGsyA=Y`xBTYoEe#5TT` z55YD*myf_UK9{>;8=uSF@g%JK<;q~?*J11bPf?rfrYs z&j~vsLzaw051dcl30eN1;B<^DaT$4+j41ypSot z3*7a(3NL2;Xvs(n!PU+;;sLIF1+I1Z1l-)!e=qj+KY;VeN3#Jtz8%5ZUIRW`O#NIQ z{#P>5ng728t9_r3t8s&n--1`U{0Y2_`qT4&{O?v7kyZb`xPtQ0!rT$Aar>Kx*OBLh z`p?6gUHzl+c2|BZZgF!w-gySM$9jMM9Oq)~e`DHs?o+9-eSV)6myC+%JM!^Btn!!R zB3J%eyotO`*uMwx5?B6JJiwKI8#gC!9Lm?>wyu1~2K-KuD}N}?BX1eXpN9)w`CIU6 zSAHC>Cf_rZUyN&9z6>Ya`rnurq$q7mM&c(t(rs^_Oxn0Be+o{y@@L_>(dXOaI)Ce8|0UV^Rt$^EdkKe-GK#_jmP*1t1Y`DASE zQ=WpYeah3ZwLf_dw)Q7KhOPa|3$V3c`C06r_e*iSY}q;Fji~*$21hF-6CYsPzWfQc?aNdeF z?6-Gxz49mG@@1*83mJ)%U2fyeBE0bRI4`N^zIchtFU6}lUTcqbeeT7pT>c=QKzoVu zhKcWSFUn_y@;Oa163el!cX!;UI^O;%c!2X6c%*Z0oX7fh#%=o}gCPt5UK6(MMN2X< z9{0hQ@`06K9ISjPw*8S;V%z^{X_$BeFZtVz605Ntzsi4%?Ou(R-4dVUc-gXZFT1|1 zKb#LUl8q7@TyEF1VN;&pZ=}L1{Cy-`*~(v4ulyjFTlwpqt^D2f%1?EeUisr(ZuOt&Y~}w|uY7-(TlveKt$anj^5b1@ zh5cn$qWQ$Dc%=zq8u<&}SpXE}d|YbdY& za<68L|89+a0=D|1C7C!GFF85(Y1r0R-V<-eXY+w=e?+kIo3Yg|kHP+W--+X8%g)Kp zc77J(lDAT!2;X1VTYs4=Z|8TVv#r0OUinQfxAI$@t$d5-yY63W94}jT?&oafyVom! zip#D3Gn}pbm3WCeo@;UIvGMm=58zH%*XLDS=gPl{OWgVV0OzlY&(CML)cI@Nd|X`L z9(yvT!TLVnINSv5{k|N}b=&_Bp6}|Lf~#D<65oPbbCT@(|A6nudjD;to z=ehi3oML<0-)nG{%WuG4S-)A>-fUdxw)Zx!bLBt6Ysj-h`HURyALl$=>()OXcX}s9 zXT!?i( zZ^FL)-HLPGjlU25GFbcn4K5&0zi)6n9a}|Ko{I~~<<5A5Yv0G<(Jns`PjfyMPZ|^N z-*tGc%SYhC+v4M&gWIl-xAz3DVST&Ht^Iz4SG)Q$_U3+a;BM5{Ipni(oy(uVsrTajU5r<8Jh~pA<06-Ti`(8F=Pg=ueq6pU z&UO2LDz0&PPh8CLtG)ai7rh^E|28~<^|QkMK4o^->lr-Hm0yChKZw_V2`^a_y9&?$ zDE6CpmD~ScaIJHy4e!U!XW;G5!|>EQ;^Th^&vRad>zseXS?>Ppun&KK)a7U5CCVC64hyC3A`*zQO9 zHGC=7{ktVt`ES_n2l+2tiI3p}JD<7xMOJa?FT&Qp$d}@ccwauS`X&V{ zzYjOyemy1RD}t53j*DFXwl!FJ9k%;j-hs>UetcltJ9z)d$`8l4l579_1uHMZ)*s84 z;aOPozmtQNPr-}Gb$ly>l~-fykL7o;_1E$m{3W(eY=3tKD{q+M{J8t4OR(}|u=SU6 zKDPT!?txEsF2Z*IDL)I(cP_!pocrNb&SiL=^JTc!c_7~IJQ!Plq3sRF)?dh@u=N*m z1{#*4QhHX48cg3BY|AB4%rn~^#_)R_)mpB(=8&4|ljfXn- z!8ZO?ej&E;uUwAjI$wzwI}gHD&cpB;=aJaPi>mKdY~w|FEVl8VJQ3S?UarJ8{+A!X zHolc-VH@wsk6;_`$@8&|zvV^P|2^|1*v6O2U&1!Nl&i44Z^&QIh$(=E?N^DBrXf@3h=s=dr%c zkACCoxA(J#9XP*Vr$}w#T;kR1Q)!u-;rSb4=irKOVzEMxBqs&FT{nLQf$o@etsLTbM0Xu z9_#XX zF25b;)TYvVYx_G9Z)JbfpFWQhZhPx-S699kHz(gSeYDBM-ks>5T=^cj+?78aPjdP7 zcox=pa26hq_5S`AUgFCCimP#>u)X#N(Eqsl55Zru|Jt8(@oJY}i2Jaxl|KN#Lw!1*z3`{bH{y+0*YgqV+shMp z8TI9Hy!P`BO%93-S-5}kMwed`tb7R0`7wT9T^OwVS=^d@0+-q9-!nI|@>Y29`1t## z0=y1uf3L)~&XsuXPpN2i>boCTy8IQ(oqxddx5nkS;>_P;*WoP6M+jVF}9k8S)Ruf_Jflt0Jzyp-4D zq9FUe{d*iQTXxpu@bi$2Z}jt)n_X_>t!9VQzc;eG#}=M-xaQvYdD|V=V)buV;wr56 zelPwX)_7w%-i~#@Zo=93#p}1~!u-f?@%Hw`16+P8J`roa`8r&J8>ja!nV5zzaDE-P z#rnQ$D?SKoexcnF{7fru7}hVsC0XtN9uGVkY)5a$KOc`Kj~4niT;cp2?$$WYm*Rz7 z51pS4c)N46BN_iUiOaXd^C!pU3vl+`v9H2yo$tfTT=^Avm2)j#=e+k(y#KrPd*D*% zt8u>bR6Nl66BHEui~mb;`8wq?sQK)9{3fn zr~cOItC38!Kbq||i_0H`b1UQX)f+EkeVzZCaBG*(!`-mv13$o}F5iJyvHtO4dj}uG z^WNnpcp%pE;ATA4<&Wd+7V-Wq#G`ZC|NZxB+aJq(2jve7^%vtjcR$^Lt$eib?=j(l z+rqgx;_sED}M;v{UASz{dnO?yqr9r0#^UW!7BehZ1<1+HMaI8e}{YHetcl-=NuPV z`965QE1$x4|0q8YuX4`AcK;|p5?gzfyJ2h3@`*T`_9+))yI zu=NL8|0Qhqw_Jto{+8dw)?di0vGp(VN7(ugc^$U?L;ea|{~&L~)<4KUV!Qw4ZTKVS zKd|)&$`i+Pytp$T*!ej$Sosmy`Um+~Z2g0L0 z*q-lle{ACe`Ep$Ad^NV`zw#m2&kv5kHXcxZGq&fqJO#-Q@bbA5>eZuiII+kyCOtoPL^xDQUBf4098=V0}BKj2)K zw?2{fht=Pmj5oUN72(zHc!uB_cRVxjVyyo54ZPgt+wf+r?eE{6`4+eR)A9Va@$vP< z>zqq)cDp$5hx47waFO$6xWsuNE^{7?2RaYO!@2)-J!a!kSm$FEzR~5s;;~rc{Zs+- zH?F<|agB2xu5~^V*Ex5?nftZ>d%Ry6toHW+?&9*_gO%^ZrR3@RIYD1^Qe@@bahc0U z1}nc6my^q5@oJ7w-LY!zl=LgiQC)vxTJlYZ^n~4#{L!0?G$@Eo_0X& zWDo8qS6^pbfi-{J2ai24E`K2|aqVp!E_YsxyE=b?3!R&s99{qD_>+m|*sizS3R`=S z+hV)^atAyar~6Cpw=;v4pM#$u*Uu}A3RYf$Unkf7yC7Kkv)HbOycBQ5hx38;FW&?! zuf=#-uZ%~m|FiaH&-a2o_#HRr zeVQ?za4yHzKdb!my)e(;E@Azw9G;o<|8g&E{l7dF+w)Prt7S6XzpK8Fu{}?fcifl# zp?>98VSAnr3fp@I+w-+1_)l!lzpCJq+cN%f`*SC@=f{AMe~7KWSN;39j)8g;{`r|6xJiRt! zMLfZkuf!v#$K!{W@l>qx-{bkN{8pSxuKu^(Ke@)Pd=Xyd%J;&(T>UrVfv)@`xYm__ z3b%IoCwL9}ulcpiBIfI{oj<$Z565-x`1;{2)^8T_F}PRf`25_3=aKIf@+Ekg+uqlB zkSo6luOip?sjW`q{nC{`3H$4DDxT}sKLamx?uD1((QMzY?*qY*g}--$vmcDl|C>1f zu=a_8q*gxX^vLPrxD8(RKwQ2M&!c=^C_g7y<>%ow z?>1-9pR&EI;FIxc^3#K_#$_&_iq{+-*Eb#KcZod*FL8bhPjc=18C>J?Ww?;@qwRl- zGmnVt+l<>f|BkylCySZSaBhm{QJ=;)$CzE-9WQq-!hZkG!flU?w_jrAsqeIKK5oX- zT>E?+H^zfQ{vo#W8!gGiXV}iC{3YIp^QrMf(=#J0-xJ&QkoU&<*gmoAbyBeMe`32n z@|k!5*3Zig4^}=3-%frMA6R{l1uI{Gt^LW*;#FAVk(yxT-{3#V^?tPHS&^0RjjjF5 z?Qrw_*d1|O@`ET~`*T*X%9mhkA96ojj5U8ZCRq8Mcr3ZT?|Lp+`7%6>T<L<;mFkXL$;?=Yc#O+w(x4gRTFUAH&xF%L}kQf8=Me zJ%8k-*!pXE1-AZLejQu?EWeGdf0jSMe!TJtj+ZSv$L`193+)^~kKf1EU+ek&g)48* z=N-7{!)G+!|R&v*O#U!3R~AOFjE8M&Uv z-{WfMmc40jZv6tB=hiR6$Fe^f-w(kBSpCBc+{+!$8+fQ&|9w1?`t`j33r}#{%RPtZ zuPc89ZccrApD)GBU4ALvhg`o8KMAjP`TckzxtKIbVpgX2s9zak#?elX2$E`1!dM&v*GNcsaSA z_dnp(F8>8@bp8uhv43iB2c66N#WC^zAC60$yWz#oC*f?ir=O3x3a@qfP<#q`cTR}) ze>3oQmp_WvyZwD1r;d%c{~4|zSO4Geyj{;{6I|%ZH^T!S>X4Wew)YQQhjo0H;;h*n z(tmHj_Gc2FfY*fbOYumo^55W2569!j;`4bvKV!T8^6%KLx4aYE^^+U+i`u8$6x;Qe_r%uz<-Ktp zF6RT={~p20i?E$v`7AsOpApKB2v&YGw(~EK!FK-TJ8|Yi@%Zn#VCBoOT_1TRw(BET zV{3o%JJ{NvyarqQlRw4Q-sBo=?NR;)+w(`R#rFJ>x7zy7b+*3q4s6c@mCyWF^gNK8 zVC(eB%e}EZ59L1C`gi$4Y|mr49NYaWUy1F0l?P$F-{oQ0?ss`4_T!OTalCBV*>?YA zdVEpE$2Na5*5x+-cofg;8TW7VakpNv7vb!)V=uvV&M)Crz2m$J`~7(n$IF(Tt6DH$ z!TQ#}+5YUt{EXFK8{7li_LcWbG2g=eO$zyJY}=~}UhV3)c#X>k;$`GIA5*YD-_vl`x$*HogcrK&@i^}4@mQE?xco9)hc!Pl8LxHuGCa?%UxjCr>-qT;Ugz@P@J6?Ohcfyntn+s! zE;uhf-g9xK%SYn@E+31Va{e^ldKK?>Icyt-lx-x_lX~cr>p6TRhg~Kj9_Lzu|mWzQZLvZ(V)}-tM+{ zE*{u7-k%F_CF|?_j>VH)J{hlZ^)JKz_*UW?SH2o=bjSZ5&g>U&?-QIgFCKqomNWiv zc{ZNl@?&v{%e&)JmtToTx_mI6>-=xrh4!QV>tUSzuXul+#Cfj1wYaOxYw!}6H@%eY zyL>Oa(d8$a-SHRVEYAM{G$*q<<1S|g( zk0aOdW?mLqc@u2yPi~HvoD{niUQB)%1#Ev$3Rd}l;;+ax-!?c{`EYFQO&*1_X+L(x zt-i;Cl`p`Z$@M<{X|VDdZ0%eA1{dRF`M~Pi^YX~b_r`Yr$nCJTZ@DAx;(osRV7!1_ zKTlW^tn&S^wSTz`ugCU@ZU4?-<&&|sZ+QxCj&*;n3|3x^t^LXG;I8;UKCt?K4_3Yt zTl<$A4&eJZtogn!!OD-pc0bAaxDxAlFAr9JHMaIH55dcEE+5$b%m`LK7hC(6AIF=q z+Rul<%0I*VaX;#L*yxJL%CqqyXdrtK1V0a6T8?^H}-6 zuswg}{@9*x^5xi`pYqjsiSrO_&r9Vausx6EoAE~HF}Tk8PHfLhm7k3Lzt=eh+jvg- zbZp}}c@DPmj{F$5@s+#)+xSg>7Tb7DUW#q}C$GRZK9XO@HXf4S#x`D)KfpF#lRv>W zUX#DTHeQoAU_YMTgyV(Z&uq_}0pri%d~DMXIeh;pkALlPw zd6&P22e7`zI3DZA4du z`;+VU2?qx&ACB#O%A@dbtp06Yu=1y{T|ap-o{RPT{XAItdTi%Y{vNNwdOygyI_W*kI)ov9&k365I8YAHbWio)51E zD}M{OpuOvP`fITA?bz-IIeE>l_iq-Cmn}Q@aJKugGtRvzZVyM|Qdi&cc!0}K#%&kI z&xdPph0BNGHRO6fc?fsKdY@W_*JIsZzu_vk{!U!#>ObUKw(rWHi|btZ3viXo$Kr)p z?^DmZp8k4{(#rH z`nTe3l-K^YyN>Zx|M-1rL~wKs`PnTzz~!F>E3d(o4RiL0qkKR@yu z?z$k}pD*!dte=m|9?JOIwU1+Q%~f%ICz##(1Mq6+dvLk)OL(aBceoO3emm!So(C@P zjw_t6G`s6L2v5hFuXrFhy8isFVZ4z1&~X0V3|77x+x3t?!v6WO4%d?F{h`sY$SR+W ze<#=XRmTJ?&&RDe--qylUBAnMl@G+$UgW{J57zT|TCnojcpSODKYKe^`3KnAtNaPJ z_9K6R?fT0b@E6XTu(b!}TX3QCZ@9$yFKpLWg{^;=kHgmA$=$K_=kh7o`ak&$Z2g~nHn#p#J|A2EE?z(hy*8i&fJ=l+b@5k}7W#{-k z_?uEZe-`txjc?z_)}NPA$UKhuX1l)W{wc}tDli{z_xm(nm@MBr#qWo@{QeHfbo=Se z`u6uwX1eX!^Z6w_a&X*Vyn^!=#r@5XxESmC)rNt2AFTJYLY(KyUyCoq8m~Qov$39s zui^u-o?n}B!I1cQ)N@4S=$z1&@j!AtZzcyTzYh;0mmkDKpN{wcRa}VG-~WV*hsNc% z;qqazf5&TYh`qzs9}&C3zv*9G{fFVgo8r7H&LY?EUtJg+?H|_*?@q4%W@51NN_;H2 zeqQ0FVC7ZVjz@kI=k|!b8kdr5e*2GLl~3FlogcXou5k5b<8{t0upO_;x5nF@_rrF5 zm3P8+edR;2wGX+At$%#%W3aV1<@vbSxd*oPro0GS`;yPX{(dUK@xs4H+m65aP5Z9m zL%TnEbmV?w|8@V|hSS%V24?wIY{#d(YbSnR2lrupyMOw*`tAO?5og^TU;oi~x$_uY z#r|qMu>fC+ORYYhH=hJY`^>!>%F7$DKfX;kUikaA&bB|hkL3MhO#4KNLN*_6i#b|2 zw;`9$##y)TTHdUDa>(WTa4vZvAEzTO! zEX6rk-*?@Ci|=ZmSdxslZ}!{s{v?!F{srzreJMV$_SEEN=I?iONMHF3dZDZEEOO0P z*m{|hcCFw0KFWJr`QejyE$=;z^4?ay_U>KFd(Wo4x0TPY+_k*-Jj#1p`3d*#THgC9 z%6nV+#FSmjdoQNE_X~I)=S%mitzKAfeeVsF_uhopaDVH0({eQPh4t#opStV*co$IK z+qPd^ul%b2!>6*o&x>(&z3ms=zw7qBZ=k&QO?a(ae;#hTI6glg;MB8m``UraTz>E^ zv_I_IU(WPhx9?p-dGCI>#??0l+xd+a=HGCaopPhZWL!(G_oJo3D!&5T{V2bV?S7Qs z#?9UH^aI?ET=NY(f>l2A){MlVNjHkLCkAzmtQNPr=qc2K_>vBZxsWv6VC6-4e{#M53<*{~0(T|X z`|R9c<&Wb6a<%slgOz`V&v5lO8XH-8HZF7dvBAnuz}J)O=VJy0E58O;kn8yF4^}=C z-%YOb`)086)%am@eSiFCu=0#?8Hu;ZyYYeDpLxN`kHiiB8_&015Ul(X+?HJPlM{oL zSK_0{b$(wCR{kpPPOkCq=3wQ&;v#a*pS2$!S@}V@x7&X2VC8-A737*PzAae!ID9L) z&hO%2R;&Y2Kd`M$V0x#~YPSoxXwKysar;lavp#z(pO z9}iakG`9X#UV_hd<-ZPA{yi=w=Pah%XUn@HD{qUfzn42=d)~;0V0+%kM_~Va?}p=r zf8PcB=X?Gk$#j2uDuwKQ|3+;6spbP-z}A1t>yG5_ckq1eLV24%=yX&v{X9+uFYe0o zp7Q&L`c8G*x99!E*!uT*Rz7{yiL@aL->rvSw*O|$+4Xti{Wayizr#f@#Lvf^iM(H6 z-Je!p{@l2}?v~@loF?s$&&Pz^*0cSyW%I-F`t^M$<$XRGcVhdRKU{`0vEH}7#W~Ja zU)G~>{Vo2(-w$x(-PSnYjsN$@%iZ-q5U+FYjBBy_&pyGn9XsNS@J{k1vi@;=a5~15 zvF)!s72E#GGqD|?{0Ke-tG|CQSovCP*F*jS+x3#a!KHs6Z)V~L%R_2^A8;Fv7yf-N z?A!CPx$Lv%1Ck9BcVVk9iQB#l?s~n-$o=)Rece1SzMhwnm$~B|80xcf3F;e+uW|VZe4q1ZywLd$ z?9b0c94}jT-i!VD`Ok6uK0NEEp9dV@d-xt559e#YeQUWRRda;en%huPS+ zuk*DY+y14;qvX@v_U(KvskeVGx!nF9PgTABd(-85Kk(=88**;F${>>aM+}n3YxorQP^;DeKcN5Cj&+`}TTHd=k<-M)G0Sk96 z@7;>>-d284z4FtX+fv@nPqZWx9k88WITzdckPpNDe(8$iWy{WgV1K{#;(2H7trvyt zd3PQCgB?#EtC=@oYd*@OpPy24Z&pjJb?2`?xwqwsr`xChV^4(3tbS(;@|~|D z_qKeR%j^3(+n;**GUpq}y>0!(qIiGm`zG7JdU?wEHga!UKi}o%h5v`gv3~u$&ojI3 zkN1Bl?``#0y7Kpudt2W8xn1k?evtCsR(^ZE^4EfcHW3foqxm^ zJ8#1Sod3YXofDP3?>INYvz)W>eCHN;v2$zutn+?&y>lnL&G``Ad|7;cy5Qv}#Xbi2 zaq|)RI7NBQM_e9k*TH)5tML)!8edHfRz3q4xcrS^;3GdVCApkyUF!Fyg69;Z+IHH-p@MR7g_ni z_%XMBNwD&N;b+|Xw+Ab~3oj?v@hu5f{xV)guIuxCu<|YVf8;v9ZKp(5-Vy&quJ`e? zf|Z|(|037>>F8kPci_EVjQ4L*u=3~e{^UBp>w}eV!iSLS`m~xFS$R8rlv}?jSb0x; zqRamsto#;y8oB06<_9Z(2A7fR{C*y+d;=cn^5*wPR=zhLPOkIYBUt%qcs#kz@6cf7 zH{z+T{zrn9KZ)m(>;76Bto#f747uK?nmiC$`JVVSa-IMDVC5&{_gsEWu=4BiI&!t| zS;5L5#oxL0-w#&)3EoDopU232FtYNd_;*+TF~Q1Dz>Rob$c4Cz^BK6Cb8kGzxi22> zT!xo9Uykj0r24PH_B@iW$9{Y^635Gyows2>J}W#hnSMTMJoSgoSJ3}vv68*7a))L`%3Je)^B%MGCh8n#QHX#8*v2Rf3UvZcRo0Q zcOJ%5T7TaY`TJuyHDKdInJ-Ps;a|9k=U|B7uqqr9wu_bogxl>ZCc z_(I#e=A>l$dCXer<6DR~9v{EIZN=H{c)RxC_jg@B4BPWr=VJ-Z!|9)A;(Yyq?fI-c z|73oC1gF~<`6yiM^5uBj@$vSPg^X8SUWo1aot_V2{oAoUzg1r~w&!uWe;{vi3O}Fn zT>JFjN3ipMGq&+bTP~>iWo*w^?O(>J$#i?v^*b3``<2IFd;X{IZ|Z;Dd{>9``L_1a z_@Bx2^F1$|&oi(+&)Wvyh3)=G|2z}r-^F%6*m&L6-?NDJflm%T2m9-{8T;#Bc-pQW z@7lYK=O4i~{z_4w-rxLqY(vP2S@_#Mcmm~%k;_PpPxy!To>iSqMV&(7}=(`~#N?)P*r!})OaEed&hL*z^FMz)`BuVMREpYpHC zy}!eCl-K-w&J4!aD`MMv`OD(hNCeFYIJD-iqoX^JtoG-w` zoiD-u=aH|#c79d=wb;(Dd_A_~m2bp$Jn}8rjz_)&r=0J?<$oVfW}*@oh0-=3_#lp# zEjwpp|9t3k5bxWpAKm|%iEY@9NBzyk2h+dMK1WlD^(PNuYwweS$LG->vA%63gZZ(( zJRj`%)t^km*4`^a`Nw%)*!frapRu(cdtO-m*D?QS$CtjI^cP=p|Ihn-{~9KaI-U7< z+Or*_mA?bq_0jg;#CCnu-wiy2{vD@(-kbUsV7tEQ-*3T>x$|TF$*c9w-&-!X`MCG$ zoxhJ=uK5Mu-hL+cX15ciFUIY$zUwGoKQDSIF294ktGoW0GkG6$Zi0)Qo8xKDt+1WD zXxWYL&h1KQ*|M_(_U)sF>uvj=qL`iUZpA#`s88p61h)EhzF)w$|Fu+U<(r?$^O0Qh zsb^!`zq82gd64V2Z|ASj_V1<8zS6BEk#@9)^baAI?Z4%e_g?#d_(j(L|MHjXt?&Gb zm3Ox7bX~b?dG9wU?``ELRqa~d`(4U=Tlw18b}jGyA?3Y4!xbyT^++Ub^~Au}cU|AR z(JY>q_43;P!`YOtpAW2#>u+K8;n8eY&r_fG3Ayc;JyC3_b?evng|@wV`M@{g?OA#6 za;x9vSDMvdq<>00ky!p#y#8zCHlB$V{?-bfPkWT#$BUiU;%A*d$LpQf<8990<9)au zs&6wcaQ+qd!befSp0Dj6imdVnVY{AkXKcq4Et!d1c`u?C=yMJdMyQ@!Q{?@L~Xf|s3R{B$GPx9T|-*!II zKX1VO{UNsFSO3uZEZ#rJ)qng8+xfPmu>N2Mw)3mFh>i2J0aw<{da=PH(GsofL)LDS=u!(njPhS{cUf@^`Av-mWpahJ(jF1aaq6VY^fe2&If33C8+50EMWb2xlU&<9ihE=DFA|3`p6(D>n6%J3_mf%!oB-TwVFV5+~nA3n(_znc$pJf4Ge z6Q;IYZ;aPG(oLAsKWwBE{MJuT&yNY$z&Byaf8}3J=QrU6Boi5AhEG zdj@Bp<@N)oD|K;zbxr+hUNbl^!UZ&u#{8s`#jPy=Ee7%CZ^bY~1@#x?i z0KW!sCy)J>g1huP0MmGN@KM0m0q)Mn$NjFrUAhOD#8fPd@?vlUT2(p-|e7Ujsd(@#Xey!(I41+;5Qn zCY655`H(Ln{S?5&ubcyz#=n!7oo%#__SdC=X+9%ky_xg-HkB@YlD_Tz{PcP-;ddgx z3BL!hIX>3|)_+Hieh{!ZJ|8vGseNA?;D5_VC;D;60RO0wPWX?0({%lh2dw{&9Q6U4 z^`}NU;s4wKzc$jT{!0h=D@Hou|JMQjuNmot{~H7R-!jq(|BnXvA2!kn|6>FE8;x|r zr@kIA=Id)nH{ovqHs|LK1E0!23fLTtE4pg1hvusPqp0d%(9~{dW2o`u%nz|AYP)?qdc_>8F1|m-kSl|0D1pkKc)Z z*$w#A53BPZ@G{`t22A(|4E)z3o$8lA$dXif9sE10ybgXV;L}iEXV3dt1$XIx1DNXT z;I9BS$N%pE>p#TP1ZD3tnt2H=+u`g@&`|5Buz zFtz1oBmMbEzX151{`5B#EN$L4_gjFez7GCfzy}QYZGfr%F8y7A&Hn!(VEuRG=pO?% z`~SNc=kLd!xsCB}Kqfk$E&@#Tb^Q1b08@S2RQl_m zjq?p~XV2*w<#+RI_UGwHH{tUD-;VyC1_%C*J`pT`hy|?DJNPYtU-hSYeO?Rr318Cr zuLr!xfIkfQ2L}8Jz$f3L^Zym#hZ*n}0q->6uLAZAnA-8+FKhg7Al+=wF#VsAZsw=- zJqG^2Al-y1{kmIq`9t_9@|)==y$w9{ZCYPK`3aW4yYW9Jyhr6X)2|=oH{tV;--HS8 zx__K5--ItjeiNqrw;K7MhjbIB^xe1X@@k};Fr}aVHJv_$e;)aV=~sSzI==}YKz`T0kHuQXsP@1pNamuJGaA-@Sz{#O|Jzm9Yhru4nvn=a3Uzm5DRO!;46 zoABJ*A^%2uJO7r)DVXqxLU@4pB3=Hr%_V^M8Sv?VPdQzu?*dHY(d9oIFpWnC zp99#Wj~4*ee@Bi!2e3&WZvnj{`n4UI=zLrGS?HfoUdQkM@8>|if%^Hr2>SV?=R%)^ z^iCgk0R)jW9wbjB{I3G0{znSF*r>mwpYJfn>xD=+VW7>;-J!?-#e{FbR{?$n>gW3g z#_wH#uLexLB!1(IfL~|8RNSfG*X0f2d;K2HD1o&baXt~T;tg>)1CFMzKdluxkyp)8f&!CwG;>!AGYKhXJ4ddJ=7O!z*4Go+jC zC%7x`T$SFz&jftxN2l9=jgkLKq?_2L2*UH;ScVIMG!UzeT& z{x;ywUanMdm%b11z0tq!{{G(;+@=2yz%*VR{CdDV9{j_$x!(qC?!UJJ)_+Hiz6-Fq z|Dxx?-UIuglW)D($lvW3b9_IGbQ8WA@a`KlzfE<$%9xLT_fDMW27F(@dyv1opHTkm zjr0uZCj2D8w<4X}N0W{}g5?jfa#VT;)4vhV7Jb8g4Cy9(CE#}$?R^X2(*QF+jrskI zf(e^;;LU)kfAY6&?#qCw{T+N8VAHwqsudX5aVULN``fxG;V1WfgJ@S_2n^YwVZ z`tQim0I)eMMgT^XUhTpJ|n%G-$TZD{SwkmnA-9RBmJdFH{n+Rz7G9i zdW`2+`Stg84D9`k>7+D z0pDnp_v?UfF<>gsJ88N+6aEnLn=s|S?w&gT4M?Z{$=|lQzX1Gxz@0qqdkXH-{}u4b z#(8;cEFuHU{S$c`U>FhBAxYTDDQO& z?$X}~__i~2d2a^%aEuSzvmyUY3hwfM0Wi%+2j2pC58#eo-RBPk?$RFsnC7>G9|HIV zfIEI;mx8@jvRd-U~_*ydmjEbSie7w zY{ZZJHejlc=oj7pz6zM?+m3XC|HH-LX;9x26?`dR>d%EL|Jwjle?F|>e*#SX`H;&0 zL8CpipT9V0@2y5U(Sv^&wD%iEI^o~1f0bN`%l>e4NeiME^ z@|*DGfM4=SO~3yq;D;IX?M;9$MY{ZLn|nLpB?G<|@BssUFW?me{s7>E2K*7gmmBaW z03R~oPXoTffIkQLKO68D0l(0IZw34d2K*0zUu3}F0DPqZe+Td{8t@MQQ~$gEZM$xI zf1C_h{~^9IU~_-G3-=jn|2AZz{r=B@segn;aEkj4wYP&01E%(N@cRH$`#SjU;MZt= zSe^{};unx7VLxq0c|>o188D51SKmhg(|AK1#PywALVjqZKNT>If0zHIfN4Iv{2vEQ z8|=le!F;h*}4)BSk_VEuRG=uW_9e;#L~6aG^G z)BJ1)(l%ZN)ARKql`dsU*)K8X^P@;N;XeobgRcL)3SmEHs1LWU^e8iv31NIE~rGPI2%<>APzZ-A_xQnlP3*ajO zZ&&#EXYS@7)$JR?_jw=W^+x&w0ABt_*$br!oBd{cln_!K)MN2`ZcHO^dbC7_+Q@ZzK8viGePW_d?ZF6S= zruKF4QvrV%aJSyp6x^j>0hrp?!B+yl#ejbq@T~^?a=Ew^!1Wfa}XPca_Zw39O`d)%U==^?I z1N{x)&mx`RUj$6;>*)2L0H*eL@JTJsZZ>`QC;t)lyD`6%UO&7WUl|({zAy5dFy%kxk<t@>h*?ny*8H@?U7A6aJe9_-`}P3ICk~{P!5?g#YCM z{#T83!oPihf5b>9{D=MV^!V%mtpAQ2eGFi8d>(J46aKRX_|G-css4)x_>GZH_^%k? z|C*6b_^%z{zurhE{ErRrKWU^B{!Ih?&l~B4e~%AL_y1mi^&j|qz-Ip+WTX@RlLq)_ z8tGL3*#rEi8|j39Xn_AhBc1SHJiz}IBc1TyIlzC9kxuy65AZ)|q!a$_1NC_>GZH_5b_;f7wVUe5z~vqclBuEz(Vx z(r?HHNbi#l70RKEAo$7z~0RJK*o$!BUfd6tMo$y~d zz<;%oPWT@j;D5wOC;X2O@NYEI3IF>8{JB4w?*B=E&HmrpNGJRlusNUq$w;UAe`<@=J-9qNGJSf5AZKC(y9JpfZrPFg#XF`{;Q32!vBo{{u_*R!vFXH z|3)L7@c(Ln{{Hgmvu>L!8^nQTN{y*4AC;Xop;O{olss5)9@Xs;Q3IFf_ z{}+sO!vDVq_*WU}g#WGq{&hw=;lF=?{~;rt@V_>||E7^n_}?Ai|G-Emd>Sj0K0fv% z;HM0FN$Ix_;N6eW^z;eHZ|=VUu>L!8Gy`mo|F43cQu!An6VcNr8TqL_3xo2OjCAVH z>Y%(sMmpiYae)6OBc1TyHo$+Ukxux3Gr<3{kxuwu9pK+?q!a!_J~}-f4+E_KjvUC2GULVS%A&)ey)K}?YkJTS^m$Qg!>HUYbVO3@otR#RNpHG<^7tG zPUXFJP~Pi}bi)7G0RNLlI^o|m!2i6FPWbn@VY)x}0<8bQj{!FO^B^O=8?SxFdVCVn zP54Z}=6IcL;8Xja4%jUJ>Sw|J1m*2k<8_{qpXz(zpu86w=~UjY49a`CkxuyU8Q@=U zq!a!J2lyWW{HlZ7`TqaFInpgc|8~Q6j_*zIUjp9yXFB~WfX_DIuLIr=_%!r~@_!HT zg+}_eKLh^zw)6d!(jNr)V!&koLhz#jUx@nXeoOFA0^SGs!3sVf@U4HieQpucM(G7$ zde4EzkKp@%4CQ}pJL|^?eg|N(hoSp7!N2rzu}9mj@E`mM=s#fp_5_vwRKR2}cCt$U zEMT(VI`tlcf5l$_zJ15s_f-C8d{XYGo`T;6nCxS(QSbwAgna3*HT-D#0~?*sgVhax_T!hgb7U|;a#JLVp&>RSPP%}zak=iQ3={N(nz8vHhm z$7B8$`r}UnR`@UfJGB4VJLdK&_|~sNU-f#Fuj+f!Z5Yqr)Z_DNz!cxTYyZx_hyBiP z?U;Lw!v7V(Hv;a`zXF)vQ}4#(E&l)*^^xd}+OzzR*h7!pF?W$_|5I*<{A;pf?gy&8 z9bZFx0@Sb4+kb-o??3AH{-5yZT_WBc5zRQcZpoZU;~U;a(>=Mg(t z9!2#(`&*EA$9jBk27L9Scd)+=rC;-HtPhl5tNMTBJHWqe2fuf~_<%3EH`=52&$|GV ze7)=cEr4J1{q1wNA>bM155Eg}FzUa*D(}An-kqZSQziW?fUkPYj=Ae$AVT?r?_qzS zywlZqJogTyV?JJ`;Fkd=e~oVa-sfMC{|L%c>AL`vKJ!8a|0!USCw1*R?fZ9|T7Opo zCVTTYsQkA9CV5a-|I>be{{PL6xocJWTL6>&cn6>HzeOLguNyB+G`(M3tNHl$-L}n< z{TsT={kse@J+hD5t>7o#9roPc*Xe%;nCziWQ|Z5P5BNKMT(93};5?@HdEcbcUkmsK zz!xj{Uje@X^s;N;=a1aR?~&f7(!aC={Mie4%zap; zKjBdrzctKnH-3QWJ+sqPdk*eI!msX_+oRh5X2A6R&M7GG0kHa6eGKLk^N(b}C(Z46 zEZXzCJLW(Jxj(l&0rAn_tLgt4{}J{7x~9J$2TboDy+XBbF9f0Vp3$0uKLeQFC%Q?^ z#{+$|=MLT8_W^$J>o8s_|3?6m|J-&3|2M>Er}s^EEBM=hDgNjSRDb_-jP||}>q)iu z)rgNk`jCzuJO=)`WMAI3=Xrq19^-nI|FwY0-r`nO{?$)~eiik)d(xx&^YwXvNuRw(r9b#Q%s=v9rOJQB`M|#o=Yi_a z9|Jb|nTNr@hwSeM9MtIHk`s(5RYek8F_pPq2$T#_S?uym5dcIm*0OBOh$|P&@$g6{> zXrthX)g=cf-rUYZ^5M_TKj)k@ncunRf}JY|32`!MR~!DAubXPQZdN9fC!c@T1x2~o zoVBvDyt4CP;O#6{`JZZeh4SuSn@n~$<-tpKKIMX)AwWOfR|I99cuAetZJO0VaTe7X z%uV(bOUp}>sExuTXp%B5yrwOZ!q1{Ai1W~k<1$S0N#ve2%$!RNbLXs)=bqK4zJ<>D zENbEjxiF>0%_qHa!ds`Fttf_m}j0V@e=+M3B(0%QM?o$>f z)L?4G&s^}-be?8q*RFJ)>Y{($3ko_^_t|n^Eq+(H`^fsV;i(JmBkbN;>LZoyPE_0* zPVJ?#M~sep!+rPJ@u|tw5Z`@MjiAR};qI&2r_#AWBl_Dd`5cmyVy#?W`xf z`Q7I&bsyNsecsZ5b~Nu8w^KA7u{PaDBz2#pG$sZkB0homf^g~J{wQZ|V`2Y+#f^Cg z;xAgoXB^B7mZEK|B=dr>$`U_LgPK_iEa71du{WlMFfghB?-4gaQ8Zo^)?@^9L4-sv-VN#saLBpT})b zds*OnXc0T3I--wy?Z} zW(HxL*IpYmsaI7+;Bg6o`>qRlD+TUUEtS@}(=?P#-C>q2aNpxVaOIH$o^ti6C*B;k z^uWsUWeatK5yPY=d00njS;kr0Br;-5*8=Wa$k&2Um|1Q-_!4vhEC+qY{K@&5HwIG? z=8CJp7x#gQgm44Ly{mDLBj+=a-AP;QKFhKD3X0rMgUFqkh=mPJjH}7G%8YR{#?2Tv zW892!GsevsH)q_OadXDa88>I#oN;r;%^5dmT;F44-(zgwV|3qReBa{&e2+`;JuU(~ z6t&m)xDelyQov)=k60{_X z*fw4i6?svmfgd%(=g}?%^WZ7o!PBfmTBSuB1X-HokzWJLt21!8Wl$zf8GFWp8!{up# zh!w-V;qLA2dN^Xp-MgqI2-dzS(TQh>POLaR`)SQ7TrLXlNwO71iB5nsqQ8AT?rYtr zk*75VO6R-@g+>vd14?{+=+5TsPg9pIE{SoJ4}nOu0B8?Wz%);Z93Hhb1YMkCr} zG!_@unw4U4bz>^L|G-MKy1GZ@8AFMav?=o>PGirj(^L%xEdx;EKvCjg1SQ7tL(3r; zL11ySbX_>OolEKN>r?A%taHG+C2BhnD*D%bMdO@x?t|Rq0xj*eHVhJb=hEHVtd%VG z2K0QlJ*&`zV1C5W24+PDT+5y9^$4v(JtN2{kwTi-5p+~vqODD0i7gk;EFfPU!A%~& z9lbe?tGznR>NfC#B#ZJ=ggPTOjr%IXT?l0ScuI1aGEP-+tOdDRM%D?V<1upFg@GJ5 zit9Einjol)I7$MM;~J7uCGZ|q$H74z8_J4}so0XJSc_Og!jINTa}SD8oW#L#8wYiU zi%k|+Riz}ghRmI$%)z<>*pOghc`_L;T@)GTLDoiokT-tOrj1wzV0ZV+3q_*Nq4>KO zk&vwfY!c|7vsor1=b%WIqqKlcK~o2QQdViI#MjfZ^?1Ehd{Fp#D0hfksGw-!)moLX5j#PXT@{cca?K2c1=-+XYpc`9=D)DCzqQ2pAU*(#&VvZ(kMoKRa zlO)N@G|D1op_lBTRKxu9&_PjZ!@U*uwJ>=iUOUB3>yY0u;Cju(LjrnHm!rW3gZNJWreIbXt*qBSsMmzUZmK_Rf6-K z7izB(19CFZOKfr&x!K5tZC1tDy3h=i6_gTETX!qVx<#Ea1$A505JbCPAt0^hwUUk4 zGmv2`9BQRwlicr2Y&wROn2oqrvSAqGjOe=BCfSIq9|ZTR>nw7GR+N^*w8n@}r&Z{S z=vbOem||aW_(0=mGZ`eIU%@UCnv8nH>LmCooX~?u#drOH3`JRw5?^MxL;PGAHkrd(;_IdUAvWW!Lnk1 z-1cu4CQ)98ML-rAQ6aZ4ZDVRZfuOM2v{@Unpl;1d^E7MA4CJy*{Wg@*>UH)VuNDep z=C+5SDRSNJtWMgs3&oGXk^Kl9ce28^O?<=S^fd0AfT(;)oF>z-ZpyN~H=)MOO zoU`(M=)~I+Nww3&+?ehSWHsl*6jp>6ZoEtuH9=KZVUuM+m&`@7y`#E_CvW3YfC~a8|aVGKSKe%zCZh5q2)~`{ErrnosD1j7fZAD z_lAd6Q{_?Mr#XpTaP5|BDH~DZu!=%;SmBEtpZMZ_GWfWI6A=fJJ6}a+HLhF1XGOK+ z;!rjpXpB2y^;wU}J#gR4KC6fsiMqmH+>aYyiCodn5!yB~I8s%yzKttojhK8JGikb{ z5wphT*izS+ks6a%_)v@s&!p?DvjrB6_-G?db94L z*sDU6M%|tk_!$difz9NKmBX-;?Y~RU$DAGo{1=iWP3o$KBdn)RxDlH`I~qDH5tg?O z`ZRMuXHVtkLzwG$Czh-+IMwqnt>{Q`M|HRncbrxs=tkZY7%|hK2L72xr zj6Xd;3q?WBGF~teQ0@yWfG=YPP;Rb3a%Z}Ib{}yZ9j4B^cA*0IORTS*LG072Ts%<0 zh!c1WJISmX_h7_PD%O3tE(n(QL(MRY zbk+R{;CvcvPCKCxD&rKk5pbXgn^ew1s9vZ6(=zNkNjo=hLg}|24&e|Z^SNV7Z|Q-#BOBaKO@ObV5Te&H?emc9O5)vb;C#bl7-wOB=)=BAA@Qg{yTv4$RTq``W*0)!m zCw+^XLrry%9D<;k<*!ZO^s`391FB#wlEy{amT)l7a@on+BhS7wSl{8e>qkia;ekJ5 zj`>QMPhSa-$@<-V(={3F4db*4VdB+>i7*4AIUY3Rm`vX04XJ!Ma;1%zmSl-li96{C z#jr106HsIr8Qmp5gsyv89QJy5LuWMZS?`(Xj3y3^e74@@PK>UN#&v6;_5A4!M^xa`{G#bi)S_By>Lz9TMhGChQzzt7x!vk{Hr1Nku+(xnglhnYPiJ9 z+E+s%&eOj3p0=Mw%AZ*Lr~NTJrt&=&^5>7RE$RG}#o^j#OBT0n(D^hg|6#V>aKu#p z&tkgai#N9~?%a^)@HmS@H=Uxi62zt37oTqU49Jf%TSESQ@$2@*u^aMM&LXrHW>f;n z<`nO4U);NWA&r6fcL(C%4Zjyc2xLA2@$U{~jB&%0G+sG@_;&~5-wk;br%C?;*ymCy z(2ejvymA8Z?}i_N{3xXey@S0M|0qN(kmDi{|87KFkhBq3Ia$tuc-IH8zjdXFYUu~! z3=Yrf5tyo((i7IoIW7v>Qh|`ifL--mF=Y^il)^B7L~B(ud3^*U2qbN5np84qq?X!kDsRghU2HA_EB}5eSJ4ghU2HB7+em(w7Jc zfzZf6Xk;KXG7uUWfJRzl0kACThdLGj`J2Rfo(5^D$ah+FiMQQ!GsNsO4V*yxm ziX6ufw^}ijUf75QU`6R~Ue=sig=^2+HN7VZb`+7f8nFPZDE&&e<`mhx5evYI;ok6G zj9@LZ>*0tYckiOM#jv(xgIEAooL-<{%_+teW-I_Jit;ltV*%K4`g;0%upNg+emWL_ z9ft`p%YT08VgXniuVVq&v$`)eakPP>&n5!Ap+HP)MzsjM6OoM(#f*#vVDB<*UGj%^ z?>gJiFxOx$eSItdD~eW}+OyJzq_z{GqJQ1Vkd6gltwk9<8LVoS~t~dxp0ZOM4zc^58mVI+hy!sSu$83}L@*d1v{}2)Z!r>wu^!NXV-kr& zJ91N-j#H!x?e|TUoQOCKpy}OQnXcw;5fOUF5$k5YQxOp$h(gF{Vo6~j7jy=4_%h<` zV*gVxJcfaswb5d~#z?){iUX43ea1*ue6}6qn#NFek%OR5?p(1L{c%l7=*NTWen(-2 z0;U6u9X>}?tnEP^#t_m*l&<%jxi*b>2Hu8Y5cDqE1P$iQVN}6n10E`Ak*SCz%)XJ9 z3m)6NmSyKovZE{t1oeikw=;{j`A=LQd zKI_`++&YrlO3I#f#8kR7=j?aS9d%!-+St$9Xsv6tXXT>?M=)3o7vEdD-65*{m|NY( zj=}EZ3QetJGPebcS05Oy1`+dv%j;V~-Wc()BfLHg;K1Cl%S@1m;#NwkUh;@(bn;^!L2=yGAJ zqS~oj+_~dIemrKzbV=@0CJ_y!)nf)~OkNs7u3?N|R*ZLWFC=0$Z5pmETKU`YamUrK z^H|riKWdgn%nhrOUDx|v=8h{dfCqE5WlFcXrSZn@xE#alu5(@GizB<%5zX!1)5I6| zW4@09kZPAA`S zV2mV3MY%_B-7ikQwrjIDhK+-HI7g6KZT{v^0h?XG!VJXK)pyWM<+S-zNo2|0F)Sotm9uK{v-b)S63v_4Dc^}#S$^=UF%82o~Mp`Y=mschdUt6*7Q-> zd71QnIqI37GZ@MAJWb!sA5F2_DX@_C^=!sFU*!_#yzgYcSpH+i>u9*8v31Yy%1&<`x8;zKT z_Ya^sqp=Ng|5lna8rz`Uh0m(FHdJ|$=oi?W5t;Z8A8QkT6*1o@79F!}#MH7bC*@)? zf(KXLDEcWRdmYkn9mvXxp`2U9)xhwVqRx%5Igu?vmM5-btXyXF19e=ZxMYZg2-eY%!_8 zn#0|r6O=;Q)-6K6&GV?K+bjwq&ufbyDZ-@4!jyV^yc2~<1XHGykffYzlb5!fz^*CokA|g|5z6{+;4E z9 z6-DSrJYsP&3rbz!GeZoI#xJ(0jax4%JRdPg8btcz&?+cVY-+LCIsvI6iL`b`2gkE# z6+x#VhP0x<|C#2_5G-0zwA99)wb$R+vkDP1go;)a6>vWtG0z;CgSzWZg!C2M+8{PH zqSAZ$h#f^%Hw5Or4&92w0b-~cK9}6~s1^lTi)V{*F5dmL(NZ33@!E3Ap0!(?TEk?; z!OcJx^av8eW>?%}cY3X(6j+<29@v0>W5gVTMZ^7w%@HxpAR*+Bk5A#>-1il3#e~L3 z9=Yw~JEY(EWV%EbX;@n7C!o4FAdj&DJz4>Q+O*-h_o!gMchImE*awqtMV&?lU)*ml>~sjWxYOB~Z+2P9gos54R>!V)CLIdZ zT939&v}a|n9gIkx&OyC{vyrU|124^rht_a2qqh&#&?%tn-!Wt_E*dM|3@ zD_59mrQbtLlf4CyB*D9ayuQu z^f*1k1z{g{;fXWvg+fv;S>0QdvGJ^=b@j1vFqm?G#KnT`Rv1V4Ng%u5ea0+`5v95> zAgoQkN%DZxl$^wy1D^>(r_kC7-TW z^p6B}k*H|&@(%qd!|4l;N2*Hxkw=#d;1~k?Kslw96QWdf?X?PWr&Le+Sq1BkQ1S3K z3zulsR`ACEp$^G~knngI8Bc0N4PGqHp)e`f)C+HjXLxMg*CDyAImPnJa2&N_ut0%g z4iVp==)R>n#$C#i)09ZrvUW{3xFQ>h$aaj7T-M$ie3YedVWW(YT-LJP8*UtimR58< z95LkXT{Oj8mUgfW2S=tdG<+5uB$sutHwejP$LZ^FU+bW~#7?7a?vtjd zH*tACbRoH{gQQJh>{;EHn#i1f=tFYZyG*NKpd_{}ZucF-YFsMaeSMnuF-t>O3q++8 zp`w4?SF{evWgVejN9#_qwB5D6boVyv_|W!J4ONb15W6T4Q_2<#&ITd5>`f9{1&fLi zWR&(JO)M*5-Oh3ylFQm8C0Ri6%w;ORYTBAw8@L{WAbXqNt81?gv${o?;v|dmQUrb@ zHjVo#64#t5mB2C9YiQ|ar#QizPCNHpu+vfJ5C%J+a>347Y7H$2?Q0mL)o=<6q=Ue0 zsg8p#niFu7I8uAX#rUW|>@2PEM{7>77tID73(X0(s##tW3Q+ZHgw4H|Lmx+_lS>mujK&z&BBz;)`5RwaEYYX@+`rB#}QKW;jGMsWqKt z4!+P&oJfRK(&Wa0G~x9LktG)3`OIP4N)RQEDK~s#Q3kTcmCh?*I2^?pULq@brcCwe z35weUIl@#g(@htLChF`gGaW8LFtH3()fU4PZK&Y_Gl%|xPoq!T1Ej0$ z%!=@3#3+x*s(6zr!y*gcq^wBLB=@78h5z7zri_4W^~fz7IPQD_i*&gjcizzyt=pQU zc=RbdAPWv#8F7W<6?vDm<*Ian;dA4FW9wNg+~TKSp2f8 z8+pEo1KHAYHdOEK*Dp9|xY8FkR>D|MY4$Cn#xax_XTp0O#*zQFL!pUIaXJj`X3X2VwZ8eCr@%vd;JX@_M$~ED*+#g}o4jh6 zo)9Ae9XZ>2tAw!~NW;d>+K?SxH)Mvr7Z?w95lUgH-QuBDuP#%+RZkT5p~5cGa z!LnJpXjoHz2sRv{2aj)eZY2KR1oMpGYJwI$nCm z?RGzb;U(zG+h|WhYg5F7us4n4tArVc(Vh2_z)@~v<>MhTUb9oKF1BgMeb;pa#19zj zYRZMhR>25KtSZ8EH z1QTc4opd_q-RYc<;4yrq&jhwQa`Q3gw6fg=_K0>X^&^nn4?Kx1g>9dYI8fy^Sw>>> zELe46(VuVwLm2H-wbN|prUF|QOCOV&DHMjcz;zL&wXt{?L)hwIyrS8l323j8z=+9b=`T%=olsIQLWk2>xhUq;XY zw%bL>uW-!98lfomSySvt?D$~e#*EmoO3I5Kj9_Z8L+QW;646)wGJ^SFi$z8n!+a=T z0@SJ4B>E=AkiLzXw7$_}%(mDaL0Ua#q(-nYEY#*2n4xiA5J!-Gqe&90ijkP3o#{3#bEGC2RUj*rvxc z*tg~tPlRdi_)bja=6rHqB7i{YhfQ6#QLL1xSj{-RTwh7sP>=04sAYzL8Ge#sJPW_c zMbpXZCPx}ELLK9q9^uvr7{OkfPU+TiN1P_`zaKFRw4(PPSZP*Qc|OK0?G4|mW6A@z z9)?D8CgRHo!le{hKpG(n<46mRGp`)*QNf6V$n>VSO%*><0T;h9hVs6CuENeDs+bt4 zV8q>pwPcP%q#wF*XbiC#+}jZ>7Hc~k8>1xc=jKm6b9Cx%3!%ZHz9xOy*hLBcX}U?@0=hgY9H^;MRi?;Nt-gO zs^9#w&PD(sI<MU>5xbj0-FmQW0 z`jG2vxN~a(bRC=btq+%dd;@$lbL7}JND|h!SDz<+i;ri3?-5K#Fv71O7$MsTMkreX zvB4h1)jlTcck@lxWH5b>(RA#IaEy9<5DsV&+uoFN$}2$C6+(KchNSZ;XO6O8D7c&LcctnqRq-zvB? ziB2ffp{<^JsLq1e6o{AnB;Y_uB|+lFF|LCndJgTTtn!oV5*asFL9Ty)2JfB2kT;8 zJG7QZDDZfMh=-yU2oa-`nIY*3&VPoab>aqiXW~~=Ve||%{ll}hX-sO$qDGaXn-L^! zfhjRVQi_E62qX@EAaU>ms2?c{h4i9-q(?$-0y15qAEgu_H*m|4A7xyGRt6vplv9Ft z1hR#LFq2o+CGdD8AbXyMs3xt-zLsW{Bo(L@qgqFb<$9aQwJ4+rl3FLqYodajS@A_1VFc^5V)QaJYfdp9 z^tC|VilIYcShHebxh@iA_h$qZw3goQBx_D$HQ?pSa(Mc;-%nOdeFwK^b#ITB7}!gt zWkzitv4}-H43wTUS*xLm;#%B0L4(LBJtJqWMZa!g&)WCfog`=z5Nq*loa(mEC2kD} zEBr#yWj7?P#<4bq9b4Q=B@Pbeht93gG7xJkw4TtObp&z1KQ8pn!vr60KXIcIf0WW~FkSU)3J zy=y(5U}p#k&uM5_X95@w8H6!}TIc;gvC(;35gjHbKn$x@i2`6N@f3xOW@@ zR+gS%zYq{4T!2rgUkJNBI1Y(BgRbSw)@7q3`CGGUzaD#5_jL=I83z4?J3~MwNYzd| zL(DX-oMo%(ZkW#xrGaX~)mW$|zQ|1sU))I{tHt3_VmNVICq)N4w`X-fK2_uuw8WhN zDXT!>xUUl!R1wVwj$F&|WyFS{wlVUE8>5PMf{I4m8MT<#KFIyND>HwpX~YtsTdDNP z{Vt&bzfeshhJHj=xd5YlZQ^eo2rc-vXJwfkm;4C^>Su1q5|eYoF=5!$?^8(NMFhauV&QKpD4MN}!GNfAYg=ut$C0;Mg4 zv!X;19g3(>M1vwaP|=Bq1{D4z$PXn4eKIcIOQ7#8w8c`#chN13SYe`M62$`39JkY1 z0;r2tL0f`b=SdWYqJ9wVgD6r(_aLeVXdcj!ExeEptYdDJfiinb3;Hgicph*HHh`aw zflY+#?Msv>zGxnOTw9$HrNN@4G@dJ`=5JYz8fvUN9fdQjAOcPsb& z5MeIj#?OkRkQjf{xBO!fJW>a_qu7eECA_2Ic}z(6))R znAxdbu#x!ddOa1Ja^v#lf+3XzQBit%m?TL~Zx*XKCVb*WebB}(5J;p#HcC7Ya97Bp zvdT>nFt1IyRfud$UVwwA1e9Ep$$9)Q$-FMudFIZusH=`|zGfksnigqWg-w*U%51S) zihf;&dD9{kOO-WsoO?+ddtO!KaZ;6W9B9>-HD`ahw&v`a2y0FmkaWr>l_Sy2njuG_ z0pvw>nP&lBDXrsD%uk7T!~Aq21B8-u9;lwZw04Tv6?$K>rw3LH5Pd~D>{;F0!H)dY z5ciqW(t2w{SXxh|yU(^(HCRhmswXp^qHQH>F4ZEa_R zIBHOTr?56iINhnIRBg3rp4(bFYYC}AV@9=alKWV3PzbJP#1>$N1V<i(MBx; zvJL^nF|M1EgE=yzW-rx!yJ&vfUTS|~wr6!8XtGhl7_+FCcolqS`v=9MY-FbZE`*OSkZ|NRZdsdQ>wDm5;>2r`GAfH0k5IxlrHtz;56h5V#_f7$ z&8jztHLI+jZl}tMa;*od3iQ)yxpYfp_K^5<`wy-z&hKybuQqFw${1PvR2?`hKgj~b zXdI|kn#K8j3*36zy4?>F%%rO;qB+RVzu=5BpEiHNxqHE-B9gR^@Z)&~{yN4Jtn5vK z?L*h%4l7$dyjsDaX*EIJ%PWWd6hF-4hvf>N3zsZ4b$0eyXY8Hdd+zxtvTdR$ftzxQ z2L3bwbz$OyuRFK{mo2!yHVVD>C2*{>E&-sy@YtN2nREslsTV@CV9X>#|# zAvq%>w~cF$XJwP=b?Ast_Kw!isF)|-+GFX0T=r+Q4}HXt*h}MSvzNxxrp$e3&99t_ zvV^@^&Et7f&0F191d}F<$~LTFq?cqB-e}fTo5z^j88VT_5W?oYs^Osq15K}j>2IlW zgQWB~-#A=%^OcJxQx&+)6^EA(;=Z|u|21#CVH&kD-s7vI5YLo&851nF7f9s&Pir}D z_p&xXyr3|Q(mXHB=Tv;#jDdltm=S<8B@r9#Tgrzv9dN%u9)p*9$&=ZNj~jL1sVhl_XbIjc9_mXG!-ur`{*cyLSHHy=VZ zsMe2I{N221X@#|I+OpH0wVPvo*|Fkqh!n>GmHP^@`En+A290B$v2rp6oR)aw+#bHh z)R%&*Ltc51na6Ng@yY}T2_Nn_q7F@HI9OsWn^8pA2$D8}#3~t%1gUl#CYb~ynzeNf z*xbvla3%LNVoqC2=e0(?mIWJWIh-ApmpDuKT}hJ?KLUpc0adGw&#m=!EdJWGODZDfIm_x+352Q`*R715_2 zlRazCeA=_RAMa38yDlB=!e?)Q`w6AJkL;zouL124Z7XhEF3Zv6oOVM{8Z1Jo9H*VK7Q#8X8G8Up>(UN}}^ZNMEtQPhqX@~HkB*Z*)*yS?| z=Hlr1#I2zV%4tNuEF**{$kQNB3rIDqFoIU1DYGJl#4BlnV8Voeo~hSM+J<8AR@SV- zQ5(T5tqn3*99!wyy4GH*Tw^_LmTW}<0qZu6ts%_r(jaQ4&x)eyoHeV6e>~$BWJAHG zbZxuAd00ywu}0iS0{jf!x)4ZKbAh&&D1RZ~XxWVohuJ}{N3$DN9O4TZM>B{v9Bo){ zU1H4nbMYhQOS5Fwmbee77}XkvhFcMoIQeB7riWXpqZgy7=lWtOUm#mgYiLWdIF{F? zt-_eTr4YsxRh!42pO-COz>aEB4YOuA5z3o&vDy5rT#yJD%?jdOT-G3@p`Y$rSfgj! znw9h97sPp3Y1#z@##mikz8n>Jc(*qR^CF4U5axc;MECvSzBJqk7T@hhP#|||Vjg0A zD0L6O$WtzI8?r52p$PKk%dTCk+947?=At9t%mNsP`mw5#HwvvqB4h{Iz&&L4kd%?&Up2 zvbN5B=J}eh4^?Z)+6Tazl@&frsqIngIBSye|A!^Rh-T-$ZNHSosg6=dxD*&y{Aj5K$?LKf?xM3|@OL^^C-PeN_ znb=G1?|JsD?psnvFR_>EzRJkS78Ai9i|ekw-paz#CFQ}kZB~5mJbd3J-&45EH7l1j z^94+%*A}j5>Hu!W2h$P`bNHwhmsbz2H27ZA4>frV;>9dK3)<8R@g_l$H)lE17ahsM z+Hdj?MrYi6ua%(oviXDnbLdJJwWXcCY(5`)4HxnG?mI*71@82k8QY#+r@Gt;4QuXt z796;mHMVwAtPFbAn2<#)#eDrSaS?Z&8tH+SBwO1qJ~7$`-;Thu()*}8H;nHaS{iPz zhwmF&`e;YsDV*UXk9l$A_>pslkGgA@#hYIuW46m%b%opcpCU5;8{Ugi}^)WDy(E)cT1 z3UfT87f$q%WzX8vHG9?(4d{sM)iQD78Ps?WMX8h(2%Z zrSie--U@AbV=ubr0j*i}BMSDc{jqD!s;#f=S$WM*t4VRhcT!4WQ0bGGj%FyW1^3r* zYfks+9kGd+Q4x87*xbn#(FiW76eW>(ek|-iu*jrCTtJYBXY26V?IrwUyS&2x9?U3e zfzpz+ZIxtR5LQ{@$7xWr!6_J+6L6y*=wjA8#7IL$Ptt&b)lm^=WmSSN#AL#nwQnQ^ z(Aa`uEqS^kFs(ZQBDp6Jt z&(0+QOmGn7#|v_}2i6iHhK}JW3!Z)l!VeLFV({8Yko#U#z)>xznkow#cy$GV-%d0M zuxBM=M)n5%>10LG7Z7_^(X|@ZM|PAE4WYA_+TK%Bd+8&x(j}Wp?=Rc-(nm~D&%0Sm zWosDTHTJCiW!;*U1t-+K{xq|r^n~4>l^Q~&yLVHQR%_|Xd!0^Fb?G67KtgrSyhbgo z9)N$X!37mfoR;v}%)=^fl2%8NavN_5!nay8oQlK1FVX^6xhM^!X7{BA!E4V19XF#H zBkcPY87<~sM=Tqx8n=;mFVlT}laZxiZ^;)4ronz^Mu{)(TO1N{+5^BLlEzTj4L}9APdRH7d|720YX#zdx&-SXz8Int2;drljx!0g0%+jLND8NoqguT`fxR_ zSadIhK+~NhDXR*w@1`8o+9xH;?C;Tb1ZJm%g&SJ$+mX3>xXYlCTHtC$>rL`qM^Bkb zxQ||My-y9}85@XkoonVrqBR`$zVVQl@k39rG5Sm{k!j*O?yldzc&a`1{U-J!$m;3@ z_wzPDAVt^^7FkqysUiKhXYIJVp6#)sFz-0U_E=H$J=&hNr+4PEQc6{Skj5!=jp)s&t)OIEQ~_Q5_^;uzvCo zRVv4uoIzfO@?5lHdYL!r!o+t`;*B8j)&}vk;h7A5#j&E$2oZ++rW7tnBDoXhh~1;= z>Pld504id{+zJr^iu=^kgmNwJebg;;Uk!3b5%1>SG{bG%dP=yH9<8>vPCrKyaNAYP zudZIcuvYDxtQF;AGr@&rXhaZ1{loODO|`bLywt^&^%J(SZ|1uUtJn>BQRWRtYik;W zUTe;xM{Op1j(;sQt;fF>I;D?)E$+)rUn;B%W5oW_)?@Zk-HCk9K#4o$=R+h^0 zmK|}DQWbQm#3x@prC*p~C%po`vvgFO%Gt+-o73BkD@NLm#&rtkKfI~gk*BX} zXm)=AqwkW+BP0&4Q-&bi-cj*FQRWG-Z=T7hqcgZz^M`2bj#w_N*Pt)N_+o6sQ`6%j%gdI|{X( zn4kVyVMlRq5bLU`^qx@JOYiU6_N+aLuxE82ca9;(=c2t-VP_1%s})5(p<_r>ttjd> z9OJTLM-f^?>zyWRDy*CPV%53_YlZqoZ_i4zMzO6%EF<^DsSPiz4PoO1YKZ%8QQoXZ zOgwun?xia^z7Yw|S~{C;P#@gaH=EHA3KMvdJ&)IOA%bfjv|*8Dc+4WnyC7Gt#EtGx z#4WEAd>`YtNDZ;~aTBc%9s!Bg-2(LkAb1@;&$Bo{DAKSkD~bEbXH(CLSf`w2PJBzj zw$9YcVwo0ZTMJM(oNUAfWZ#2byE65BSvKOdP@?l}#1X)ELaNPuQ25?MDBL+W>McAE zv2$Pz6q(fitnOrz#USLj=}yqt5`<9Pi39s75(?2m`q%wPRk9s%n{^x;IoZU+)(wRP z*3__`(YLNdu?)~x6DxuoYwi^YGcGCycfLY6U-tzdr{5$;F0ykI~ET0nDW@nlG3NwFBvvB7c-c1jJ` z15B<&{k6s!jaLb{CAt&24~eLRz>g7{`;dqYes7KC+(;f0ZD(p-#G(??{u@>V(H==y ziaYt%8%CtJu%hogM#nWI(X0z1i3m2~xu;oP#CAqZ3omGjFb=Dv4cj~^iYh4LF!S1C z(rKKH6T*hl@zr`+*)UkrL+#S!$A&@&7GZRiX$oY+R1#{5Kukp#N3{)CuEIdkMA?R- zxE$c<&|BG!ci%C-;)2$#MkP+N;jS5ldM(1o`CN_B#8S z#DQ7Ob<(4r2ds)FOrosFk|Zv|x(o`u7UM@j>IJEf5HsSyH6^UEqHtU!9tLYx<}lr| z_S)H=aM(*9kyW;#Ay%=L&MdBD+j~aPTB>Fv>{8aik6F{^R51uz}^=F%}>gT_6?jSO*6~!a?YxWdpdtP^@Ma;U(&>pJ<-II&ZWX zcI`^^ecg(oj_HJX0z&Oi3oELe(utNuSuuE3@v+%o^{qH`LdY?TPr1DF>8sUN_9EO# z?ub&gIfS(V^fDS+?@j>pX=X3momS{G-C8R1qi)-tg+-28-6@c85@TA-e3kpU5|)Fx zx1mDKIy%B}xUVXfOK1hWwS3XY4fq->mdGXC7n!iGv^LpB5}*H{Q2e2tGu)hKGGt6j z`U5jATZm?3uZ;7!XsRmC3qSJlW?zm+d)mA;Hmp5sFKMx7?boP1YtKYkvtqv}=GmH6 z-*)U-jq~uh3DgH>RauB5J81Y}m5!kUvipsv2s z$*xPQYxSfGvJ!Hd1jM3=bH9J0tJh}{x3}?g@T+Sp>Tz|i$l*1Dz-S(x32&R0U1A3u zW4=zCv~$niojcFN|MGY`UL$Yt0%eXjz&v`ToeMG4UTDY$Z_29|>d+Phdznnm=YLg+ zRZ{qVjEDqTUcq8fN}N`5W$WL3-|UI?zPV@aq=B0(EKerQ%F6P}WYWKgrz*y4n|N^# z!4BdYFZGq89b-r77*S{NT>HkY-uNlJXRj=*HC(WFIen!E-d13D79~xDTXr62wU@_v z&f|rRiJ7}Iwd7I>1{8HvSQ|lH1b&uKKjb-d#jEx!5Zy#M?3Jcs~$VV6BCJ9~#1;QTMNW}KBv50{s@?0HS?d(fv3ez* z3oXO4ZpBwX2%5e&!uBQ(GK4pWElvahaTvsL=Hn^S1bjf~!P<~F67j+7Op&FL8=uJQ z4%Fd!?fZ4JTCFS`AS-Xs>KLKf>%4~Ry6=N;Kn(N~UZW1^LA0YMVb&p%w@V}M&Ds%UNA#zM9YHovPrU62 zOn~`iPsctm8Pd;0+G~)V+~2b82s{ru!i61y=K&Ee6qT|f2ysI&3}*x;X!_|*dkuWG z%ley<9f4;$bDwEZdFgk2?KSXB^V_vNCt8K8Xk37*|S_-NKR@xrXe(_3|hN8@p!PYr81YgXKfAa|fkbFi=+bIU^i0Aw<2^J~lV5|DR(p`EYL z4FuYqKe*b|bT`iPqJgX+4^y$awo+70zN`C|HcRA7S*K^6bH=VcXYFReQIv*RQ4{+QGx30g z9+*_wH2qzOHy7VkiI6cQod?NbNRg9xM$3eskkgEd!kM;tKhRaOYQqPAV-^?#MG;oi zjQU>d6%?t=gR~W|VBppgHDQy4epJR;1Gbj3YtgqgKd)x3nXu;1v@ZdXiS@Eq>K#iT zXOanZZM&?gCX;716;TceVQ5f^G7IZC!kbiaieO)rJo!XUfEXhlm0q5M*^s&GO*ioi zT{-Z{Gk_3rn~ypV85hgnFj*Kupy88g5(NG9ou`B(3;52}lj#+j!g*9vhlX&htEz?x&<36l>?ocCt7wGgiT4zIu;@GQeABqJmk%Hn7Y6#|tq4w?zB3khYWmLP0?aJF zW3SO?&r;M`n3ZYUdRdZ}Q5Ymu6I2L>8Q>jxa31AEm=Mhr+7Y;Z%@o=ZxT%^cv?Fk@ zG*f6t-~rI*lN|v|8l%+n9d-m6+@2;`5o9MC{G%O%XU^as?HGzQyHB>PID>z**TIu# z@Q-#3o;`zqv}5q}5&x(tz8!<-&-Z$c#E!ueXt0`g48>=-&$&c0H+T_i9U@HhwK~R* z!Mo4br=1-`W>BAZb_|(89Y4d4Av37e!*&drLG9&l$B-G+dLuiA%pguK*L5Y4L?P#N z$B;d!O(LwV68i0HQzkox%%BdyVaJde_rI3~H{}jv+Is)jxI&nL%xEX2*~j z)aGwi3ts?k zmnlxb^ZhDt&~ZO$^ndJu9>MxZ|jcsi9ELH|UX7 zuZ;IsVV?jSg)pqjwm@)l6r4+}bEgqIf2~+ss4!yPaII5M@DNWXdr9-%Wg`Ccl4cEe zs;2Rpwhp{B!Ga4@QO0Wxfqg(^uzUJsM;MWnm%d^yd8_uCD=h6Pbrk1REG9D{8?czN z*{9_$bYY;o_pFP?M$GW$*AldZOm1i$GR^Bf^-vGSl|Ff64|wKH3lz0kL|2TEu5KsJ zwuG0u+^Cd+00s-);@>r0PNCU~(kx8Ewy9w^5(i$=IZB4R`7oC{Ni#|EN08A@&y5+8<>hLAD+LgSUiYlhW9~w6qeY$QCUTGUa9c-p!eNw z*P^0m_3#p`Mpl|;2@(Z}ict2YP*opXS-~&!s=|Xy3(r5;%ws_P3)A^|?1hE3cz*tA zXZZe9eF=Yf!8^W13pR7ehxj$pmCokALx%gc+3Yk{>T$VgKKF#?)~Maf(X zlPz?Z#Z_v0!n_K~tin7tc?#V?TZB!R<5X_SBC6w7h5zmi*TBEGp7;m11S#0?R>?o|$s;NuJBe7UvOGZu8I)8i9deURh z+OJ1@Ryjy9#q89L&%udFzl2OeofJ-8J+&l9ino= zFefCaDDlwXq{U;wUYj*d65ys@Df3#IabJ-t&KF&A>1F$afIbmhaBZG{oZsK9t`?Wj zp&Hk9T^3CWYhWA=zAVmeOF<+@J?HL&1z9<`x>g}#;r?Rj5(GF*Lp-X3#~5Hx?B`x4 zE#Rr@1-CRk^gNgyPbdjv_a~tXo)C+5+6R$QS2b*N5n&8b=lwSDz0M{Ytzx{soinm? z!%UtHx2PG}nIwUeM9+KbL*Ij0NYnZ|7z(W{ADE|$(IT`VBwrWVvQ#@kO#kJB(A@3e zf6pRAVMS@O7LLbwDFYMPHgP4^(!x6?a-FaiwC?7>N=`0Sx$6qpUe)_4S%a zYkt{1Oyo#Y0&avUm+&IJix++er_W2Lsk|U5)7pnMb_%P0*-Gb z;gV0TME2B%T80@_DPFf@UL!JDPxm)#`P(Xp*|<5A-hy)cU{-{H4pmOO$`%;p9#mhy3*8-MPp( zpm+C!1GxG?o84TpQY`v`Xyy;BH0{D6v@)m@a03YzNRnrnax{?Zm>O@cV*}L|&xyKq z@p|iRhUsAM&&({&)2aa55fpw}w0R75WQ#*34C>MgQ#t|E;tJ)zuUR_+MnizV-=1`C`Fu%H1tgK-@;HUY;W@)}H78d7MXu*Pe z#2Hp4P3q(Mqs-$4iwRcKW38TcT6g#6i{DiBsZ`%A(PCU*xgR9h@Hv>ntOl79s}C&z zwO7vb0HIvBai=O5KvlfF0;?0F-%uadq30K2i(6_GtA6*((q6T!e)riI{sWfLSYkah z<~qtE*MT*(GXgL40i%bSwIQRuhs@S$Lqj_PE}?bfDZRTs^Q{QP(_y{p?P7>oL*ayLF$yPYUVB+c zrbc)DK(kv#>XrNU<$o|tnjLU;%B(YMYdsGo%y!_T!r zKaQHA^rp{f)@(5eWZJAvjPj;JfJNA7dAI@8uup)Bs?OB?*rLGc#Sv<4SaH=2LM|U8MuE36hfZX5 znY|ufMq;%EA+>Y!gj>dG2l~XWM}5a-1DIGGqPjAl!QwdYcZiBF1@p4nqswuWU^REFM=4>MR5dQ z{l@sX0GnqQOGMLB3WBN4vx6dZyc4T{)?4o}?u1XqiTneOs)ZfzUefwKmA}$OV`ZsW zoUfLbpj|mwt&x}UIm?DlkZv7O;^jqA`&m?GzLF!z+UjXhTqZ@(lu4cE4LrT^fD>jY zg1FglT0cvDv1U{kkbbXQv1Dm$nqo!JOsGApUQ@Ql>l=W*)SmuXvl5*(rK)xWUV%zj z^1Y!MkAt(FN1db%b&Mfd!a{z~X;lacyB~by5d#ri{zn&!BsTm9dDT zgje7Wa`R~F9Wj}g-V&yqD>Q5)>s05@7BJig-0FcwHt(PbTdI>8i7jAy5H|9y4;2#wgiqc)5Ewch;L4eD3w4vF`xg5v z)+Sr3bIY@%RBT&r@>Z9>vQ*kqXPF1x3Z@coY_+pW2T$ngY;|2tq%ND@1N)1GrMY?0 z(9FSbah^52^Or+mvC1$E2%DwL_$%MS`5P+Dj;D`rJ}HSxU@{>G8p(%b~zQJNY+mVh7aC6o^_EVHepM36Xm( z`~4{cIV6(Ssqo7N(bpP}Jboki(XwDM!UYL-A5aAskntA?hX$d45a%K8LS=}%Qjm*} z8~g+EG=Q;Lk5El;U-Gz6=sKV#Rc=BZDmMmq;qznEQ?P zC2%S(U||6LR0LxKsBzue7y7f?w_Zb*Y_6a~JD@(S>Kan>qJjx*5VH+;H2%>jxL5ly z#v##43yT0e8bwl{EtCT_A*o*qsC7e#`lKAX%!RP%(E4Y%(6LfnghBJ|LbF&0_-AQh zbstSX;^x(1n~Rlx)CCEe zTCXCB+t6|*hDAqKV>^_%yteeb)z$_y#ZD{JJS=jkys8}Q&28QLwsk*#sgZSK(U73f zLx{dmP1E>t5K=FW5altcQy=fY!+OcBOPRw?wl8{P#pGF86=eeZ2fW_aMq6I=6`U&C ztd62Kgi%%q+q$jIbyItFmLlRIEW^U4Q7gFH%i+?&{UK~#Vxg$o`UQJ^GLc27f@hI& zR|{(~`d3`GX*U*4>o-5la#H!Qw{IyHnb zUIuGcpN$O7jch6YnFkJ7iqC?$p#vcCe7`KpXnpH>d^Ybv7hG&=e8PYZ8a+U0cm!xHpE2-Br*&1_tHi$e$suqJ~63ykh9*;@)gz-(FL^Gm>(`sU>cah zVr3<11XAcn?Iz7J5Ww8Pl(&KVVjNPCh>aU$AmC}77Iso)?IApDlo<_IOFjZ?_y}xRBYx*TA|o>+G9$x1w7TrHoq6Lv&pnU-`Jb9u z5*>eNhI&t6bwLc~QLdYi3&W{G2L?_4LP2Pd1C<0Jsh8#nHY*`r7ax{ziE!Z?rE~es zdi8;MDk5OpVMGwJ5P0md&8XDhVI?f9t4q$Ke);0**R)aPX%bWoQGz(q#4@`LP4GBP zk{|M8SY}?4%;_ZtFpLSEPigj z+xLo@V*X4|q#zWGPQsR7Bh_a2&2CoCn!LNXyk1`3EguNa3iXY=58S?V zZ)d*p^WuY}UwQZB`IDz|h*K=aX8m0gs(Q6_ub1T2y5w5feuYlq4JOM})x@>P^Vn}W zw5hl@L4?nQV!*{ncTtQ~+}lvc)v9Qth!ZG=CWveW*q{K3SYkj1zoiFFSi-#AprwE~M=noQ4FOLZrj^btVJee=uxc`NT;jU88Ppe!>R+_!0l~UeuiZ!I6G*)!l1}> zP!+Q+R1y-4A}9rg3l(^1+sUjF>nc(#>V`|p(65)5_iX5byO%@O+&{a#zq6SSBMA$8 zbg_AvL~&do6@wHqaXXFf#QVp!ccL-h2~b=vOUXrl`{Hx^`n0DNSrldP(`I1{v@W$z zOD#qF!Kb~GLx1A40-!Ni88{xwxJr>N({^^49@v%>n>b{9O=}_w4)j6}$LTvAMY>7J zpFkHalgi1f#HyZ7UUT7eGX? z*Y4@cJJN!!S$&bew5Ro9OR-X{#tv z5I98m6l=_DE5x$xbF~o~_841^z{SEIB$8O##eW&vVsR!8(0egEgsfkx|1Cubmgo(!M~wMz}aGt%1kw$Tn~bJX$;2m^qDQN&;ujxq$6b zSB*vzP@5!5T9EiPcHJWOrxCtE>Z#;;qP5PF5cja5*i3A1U_G#RF7|*t(%*$Dd?r7- zZiPX=TY@GeDj}Yvv|)_gvq4s+DR|Av1C2#pHNL1I2vo(9fZz=eoVBQ2=VCKc3N@Fc zDLZTE=-kvinRQTk88Xm?O4ob1JYb)mEy$Xok!bkm5@k(Nz~o?9oFmmx~8 z>3wEJvcI(@8J40=!Ic=NZDm#K zsh#eo48^XE!!lyvxRjHvDeKmAZ0Jg3cil6atLtTbS;-P4DMUG0ghCO);*mKE`}CVB z!Qic_(?T+6MhBg7e0n==9yyQpHm1k&G zs?HO#Sn<(g^8i3TD)ULt(+K^%#O4gCYcu?TPUaT`)X3(75frDKayInNO?GfhZUdio zlhs9wa|Q)i7m&yVBc7R_;0hq}Q!y!LVI*3Qvl@1{7| zvLIFyMQ{fW!tBi<3lR?8^b)(eYcYfy>IfANhrLHa7usTsgh*~04CFW_~ zLLAff?!b`?f%~QmVY0*_5VIU3H%K?HB_1O-e+JHxqFse^ai2b~Da5R$YRLFW2|p#X zV>N8`Hq@kkL-SgtE+pZ~dUVm+reDKqs-2crd2Ir^Ee5N0-aW_na#G6@5)@JEoYPev z60uHD8`;pUc3QFz-wjpW+UxPwcxXAfTRp5P=z*h&041?s*gABjIWog%zjv(KhD$Qm zCDBb{=e1q_)8=otH^(cEh*|Kc0e9PxYdMFTgs3VvW|P}(G<>Yixu4C^dTB1|)5H~S zL-dmXezJ%VkB`LdN}t}mMir?DDe6O8BRv9VQ|*4B8%M}KE?5BwFp8pb&fe6{(U5qU zGX{KSrH1CWP%$Ju5~=k%_=sqLk{iVdffc7Y{;pm)tN(#+3^|GTQJROO!n9a|b}QxE zW7y~{a>G-RrdWSM8R=fzyX3UBp`;&$=rFU90)=+|8w;B-Thqn_dTWDjods1STp_xR z`!T4&ag|kDLG%?gSbNa***%t9k>}TDGp;RNm8gg4s&=(x1D-ar6l;u#tvDN7I88^4 zf!@d}T>p?T;Z!T|E(Ig@VYgzy2cW0Nw0m7lxSGH+M_iJXh5GBN&(G&gp#m zjo0d;B$QKPGu4y?n0@0(eXNYCQEh5s5>9hEy+1KE2eC5)3{8+r#q4$f)WBNNrpyw_ zx}hD{j!t~|c)TMfb=uyE6=4A4V|7pl6@kv9dq-D6EXP-N8j8nAu&diU;#L+bmcqi3 zko=qWPa4x(q6epqset%`n*!F$Dw4?U@iC$4v4qrGt>HWK{`k==rfoH4%3$6CM#mjy z=M0YME#qagP*>F9gb3u0z=sjk8&gIOzJ&z7a_>29pn!C0O1$Q%!$BQJBiBk#s>P_^ zbw!Z{DYl9Ge0XNM#UuMaA;gL&NafgQ*2R%;yXK6P#u(lmC1gf!OmFS5zb@8yCoW{G z5*|#91d9d0o84<8&nK$%(A-pwpJjr4?l*V#(wOmlo#YMbZ~@XK3*o#Rp03{fVga7rhNjjBO7UVh}#>fZv22x+e8{)V+{l&<#rBqZ9B0u z$(zmG^`ZILR1czeP|?=B>>ht&6enzOHsTYb3@pe%Z@-={h4Fk<7^yK4NjPs#R4z6r z(Oko)%^D*M*$J5jR0^n*@y}RNa6Ftx)jB&TY3%@Yv`U4+Iqv6NqA*E^_(| zQEmZhxH`wl-b6&p?RGxBogyLH7S!ZZQiVB=?R~fF;gUkU;^nm7G!@DW*Nye3>Dvbb zMaAn0WHQruFGy!E?8Lc-5-V6#vMX3rydzjtdMl#Ey1OpC?-2bT@CMab+OR}9>zNH3 z(vjF;y2U%z;+@P;qQVwSzq0Dv?ubIY+ZBHRK`xomfqS;1o+i--(XTQp;85V1IIWrN z-LZA2$z2U9_Gj1$t>LlNm4aHDr~<4`Ae6?syW4u#UCxIg{4?33$;);tpq}4jJ zUZLG7P?`S-lw0on(-nLEC9rQqur$Z@n^yonAmYNo(cj{m>9?A{`W*a=1FnG?Oypi`YYU88YN7XjCaM3LVBUgNiLV@I<||{_GIqVq9`H=u-iF z*gMJMNE|dJb65`(DC`g)#1X{0Bf}PAEL=u&4?ksBQG4J6fLkjH`%ctthfeb6@wZ9Q;Dk|=PKM{d}>dhd2ngBDaLZ220 zWs&!iC3>IAw>|~a$Bl`C!IgqTne(G#fxFmEwGEDwJSGlVS(BMlNVEbcG^~!jxh3eF z?BhzkYr@9e?5!XWnO?NgszSI%X&)M6sx3qbm6s(pseM#>M2hWsj&}W-4WKnlNW?)1 z$1$?ZMY*T8m)@>d-(A+?u1&yP2$>ANYbf5yG&tN;YOxfP$G_(|=C}#`VA~;$XlE2T z;Pp0ud@DWH2}|HQzZ2#{LjU%Bu^aC-HQMSDn!O6n#}v-TLp?E<AoH%Sgiy-Vrle_STxHRRD znokR+xFNHT)I?6j`J*w#F>H~fG0CZ@w#S>IJ@zWSM9>#5+MwZ0AEun zUGqQJG@Mz}8gQD)Py?NlyH9c%+8jE|Fu5UmWC)ZLt)Qr4I4Cwy*-ssU1E3x1fm{6H~Q4sKJd(Gv+Z(GM>?Il+z6|(qxTw*%1$B=2p2XGV*Cqm5?jS`cjc-% zu|5rI5Px?x7efmegH-}x#JR=D$^pt&C1#GG#;vc*-M6(Qj!06~Jf@25rk z0tmM5l>F(NU!3z<5~np{oMM;YL?}pOCrPrw z6Ppq)V0r5pCU2Y%ppqvL{bBFn3qnkcoW_@9%{m6&QoZ|BuOl9SB8!5iHV0=OUG2r7*U`0E_;g0 z7O=}wb_lNt`6En>WX6m9wDul*sJ~^!e%wijk@4^zb&cyAGqSO=i0AJvwp4u5!K5|gorUmm;rGy zAiSLUg0(S$E0Uw4IOjz|z!}z6rhBKYd5I}uL}BpK} zJN4g7%UR5_q%CfSPywg0>gM;-at<4BM#2y(Q9!|_@3GG{C1OfSXXD@@m|IVt=S=dl zma7}FpBOMXW@waELQcI)Nt-b4ejBg>5KAS8j57?f*T%(8ZG*`tH;Ht*gw*qFavR6f zq++@jP?(wUe^gNCz#P{Jy*u7Al%)!Nn+S%nFq|Mb-9eR#o*qeM0B%8`1XiG&-VQa} zFhOfgQcqq39G=?_w=&R7)KIcBF|A#HEYeOgT`3Yy*7-oK>^-@Tw;-yx<`e9Ynmkh5 zqd6@RX6FW!BGI}@AYPa|wz7#So(Z~^bW?88*=A)0w*l^kSSr`!a&h|3oRI|;^aOPb z+#k?Aw%`0Y$}kU`mS9*E>llBe(-z7+0AyYgX$02RVp@W(uF)(?Jc=j{)gtPW+5}dY z=9Da>rhO)w-=>^R&tH|9@X4~Iep-FEtS*}BTOKs|s<5*`2HBb24jY}Jt&P2Kd~D9XgRo?9Y_5Z` z!RM-I3v;Z(KIYiD{v}VAWVe*Uh`^bgpqk!_QtPGzX^Z@o98#45QzEm~6I8h7BJ$S& zIBt^IGIH1q{&}~Rwk6}2a7#h20_s4SJ#<2+B9jd7of&kC+z*L>BLm==E}g^qc(?Z2 zk*XX-@+r=e2Y|5c<{oQD1&q(RPgG!LiOku1xu$Y_KtxkGbS>Qx(5zYh3KUSH3A>Xh zO?QR%9%Y$~;DG!a?xThBiE#?}Fu%(+@IwH&fVOOnLu1uNhDg98h5hSVG)j_`=gj%c?j4Fm-MYW4*lvAMSaL^qVjDaroB z&c$suw;f>Ej0x8`WuMSuw$5LdwV|>}vM&re*>}Ib6dEKa0s-i1lCs(e9ZSbta51DYo~@Lq zCx#rMZ*=J#&_$_nlcm|hd6N>d{xNe^5@wul!mm`NHR9oD1J3C=)PVQhnY6tlj30Ci zXot>K6q5)LDd%-R)NEX=*TpAS%5BF%g(2u;45Dax2h@{?xD?$hDy=K|HNU70;fFJP z0p*e{2ImP!Rmw;9Z-LD&3^uzk?=IfV?>VGhoH4g>JixU;u(6Z1M<+9K4&0$(Pg@Rs zU_n_AcW?BDvPs)g!6t1>lFA6feb+3DYw9Z^!$pI@^;Qw3&2fbgCoIAVi`2P4n~%4` zV9(hnZzEv`Cx}m-kR3!g^s8Lo@ZH;w2^Nw%C}& zXY0xRi=4N2sDBejIQ4|@*I*D!XOozVkGsxltZY)PD5usO**&MrQdOg9ORS9>F1# zyTf+$+@Ao10NY?KfiVRGXC^$q|FHT9bqw&k;O_F{{ikJ1!c+Fkk1zREqH{U4;JD0b z#j!?c9-sp*lN9A>?ut>9k<6DQ176nR{W={khys4w6ykEN&@;Hva-51)Ry!ZsEY$~l zi%cy7t3VK-^mBfMIZKv7q|kB!pg;v7bdqzY33<{M8AS_8`N0a=0t}8@fML)x*(4Bs zFKi=BRSvimW+JME1L%SL$|C?q44_H2Som;TV~2^?-&kXcHO zZ;X$0W`<<~4Jhyx$e%Q?83 z!z1Xc?HS$vjDGp%%~!k?cq5;MJ`j#h4dU4x!|k_5js}t>8&JHE13@;GIN37z&M+Ys zFPdA1cM`Dcc$+M8jLi&8nuKcz?Z)3(ac>fmQWQ+vWKa!09mGh48!U#~J1h&wcrqcv z(U0M1Rg#DSZU#RrapXR{xTE!(8x4fnBqF#2NePbW&3x~&lw|{JMGp{_WIuoP=GoI%%dellCglG7&HLByXr?B=hEqcny#|u)s3Ny#Z@ZcF)tl$r zt)zsvoBK=Y6tWTgElxuGE|eG!y!M|G*AUcE60!neM&6JFQROi%#UM9!by0nLzvfEj z0{vtz={hU~)J#)^?nrU&2ASMn2&f``{{H;@#p`#z3-NOK)r-H9%?qv%?$?Y2t&H@n z$lvZU1TaAWZ#uXyki19>L(MKdi2yLD(6+lIm$tadR(JM=3cqSTS)ZrqkMxyCpoEZo zg@TNCJA&ZP8|jl^Zwn}@82z- zKmGdM`|}se_jrDJcv#@#Nh@Hl6tE^k>4o?4kfD%7c<3Tf#Q2g?xvc|NM!0EJZ@0QX zeRxF*vOS<>jdT1~-Smw&e(Ln$NJJ8liVm)y3^J=d`(E}*`R#TW_FKY8m=78Vsmmd< zXII~SxCV{)v>_Y?J zC46{wrB@`@sq_tBpYvn4Q!?ZuFlBQz@X8715Q~%a0#?pVX@q~4RboRzwj5}<@Es5_ z%LFo($3UpL(jqX`ah$Q^Y7%l0i`l~60~vxhN3AB5g;y0YqrKsee%xK0b3g7;aU-9H zTU*$x+5kKaMnsr^z5~ufSdy3*OsWg-!U7&5O%P!t_g}bPsZ42Z(&H_7BTZ7q{INa}-PxtfBn}v5LA^08X0UQc1uz%3JVm5RU^b?Ib4l zEcH8pOHGAfpTY%{ zYa}Ssu*q(lKnX0DySqD~Cw&bXb#knC#6`Atn)z?p+ob&Jb6QsE< z53&cv%Lj+Z!wZj3-fEe-MXgSnjkkCpE-Plkk8;jbv^qnA197OpO(Enu zS+X%O!obwrv1?(RW6sb>2``tVLSSY9(srrasf9e+{q5Gmesrg5?_~Lavw>R475q-9 zVv*E*nRYrolw;^XY)0g9vG{Y?ucoI4YbgVeSkhMUAgiZnlJNj~gI$eD({yxtk)=Ku zzylRGkkUN8`6P~%UIH}U2K=14kh%ttS6g4#$*q9kX#h~-jUi8;ls>zDr}l+7NkEkh z7*Q%ACz3CcuHMU$Y2V+T5?kXK-hSavLm)1sE9 zQ339sC_o@kN`JF=cwZ7 zVoie+?1#@_0Hwcu_c?Y3GLvU1tx&AKY%}- zh!2IYumb_jdbiJ*wc|={NkpKVSJNlSKdM&`_k97=y~9`?GRdwalReQP#TP)OQfdoU z0IK73Qqb5Pxv2hPCE{HX{r?rOI{n{*b1cC-(?Fyt!_J2I8#k=-=aI)-3r4RSDXdXQ zxingVeCJ`k<~K`clRn&Bl0UxWu&7^pi;Y%EWhw9gxsU_aAw3A53TiQkpb^dJj+|WI~RkQx{;^psSts`9~vmUQMlNkivt=6%>iNX zxTVIUOQFL31-~Tr97zr#pkQya9o_Za;T}X;H4-KnH0`>*CkimyHEx8Y1Ks`AE5{tPz&%`kXyp_ z>M)xJu1~H^5QuQZgjE)YjxbGD>X3T@ZX$ZP`n3G6xO$M-P7x<~7olf{t_aAVM}$$1 zEvGDssPVN1wt zFd^olp@*RC1G%k!xd$3E8|G+tVxQ?ZzXhM}IKKtwW*C~1iKFm_&_EwLLx^qH%Op`Y zlf)Falc_~-ASXV>8(qP{<1`Szi#E9+fk`BJCnfQ^JQB*F07lROk?aT*@))mz>V0;T zMuIbjjoXra4OupR8zZ=O9L76oBqW^TGRLche5e~J0_~ZP0@9R#&Iv0bX$TpHb|;KC zn&j^3QC#QveQ@h=YwY%Y@W27nt8_%>6}%$2k{u-7Pt}0F3JVxYnTDtl@;N}LW{5k7 zdh0rDg#iX96!r-~1DBZdTb4XQBSkE5vZBN$kQAFv{+6E!&lysVLOCRe!|7&?pBaHy zMKm*LN(okhJgR2nI#MvDu*E>WjzJE@W_zIwFN7t)oThGW^IBx&Fd*t;oE$mytRC|< zWF2)!R`d`UBX_lS(YXdwK%$DEcAuONRUtbsNZ>0#yTU@%ld+*nH56s3>eOQmnR{9@Py$5l5iC4@Xku51M;eko?i z+k5g1jLG3TMW9%JRN z_W_sO#1;;Cj3>6>0_#I-IxVM-Y@xv!CCG zNAHJDX`SDPNAK$Bz2r2Zc;}ikhdC)$!a5X z0X65WF@2}SSciwoR{RD{SQ5eo6@Vuvoa{x^k3LBGqnAH_v``}^ZHnj27fBv}Jii6+ zmwH4CkDtj$i-Y{p2Pr=w-20l>Z|lkz*O>TLtmcCzf(Zh#0s1RwTOa)yTBLsG2bSfQx7&;V!4$Nv442rF z5G4};vY=z-LDM8YF-eoTGChVH^-8duQ+{U)GZSm>O`6WwMBbWUT@S zLM|>qTGuNzJSxAg~` z*dAH>%vKau$=z-7p_c)%4DruDq>{G77ht7#59@~4B=5+V=oeqUW+{M#!ckba7(p<7 z#9dCwG1qsO;y5(-6X(fEh(m)s$x(%W8)kIaQ4|S`6m0RX#8@TxIl#w|#SOrR^%j~d z(8MHgQZ~=CSdD^5qGJuX`+BGWw^)FM@T^GTxTel|Vf=b)l|6fCjZI;kh{h4CwDtLM zm--YuJYnR`5i-J9C+p3J?T>cL$?&0WnH4(PfV;{@8vyFfNrnJ`x;}MG7BH?I@|_@; zru;Q5y9?Fjcn`SGO&^Xo;U*V1&%OtKViSI&J)#NkEPg~2ZaD@A;gLMq; z4TLYiHArPPu*E|S?KyY}BTyP8(Iwp6)F`k{6|eA(f%x`Xp->lezR*&W=K}c3BlwOl zu=DH=&dbCF_TusptK;_iU@zS2Sl##f_8MAOshsigK7DS#YYEnKQN4cm;+OmINh;Y1 zL{@?21ZwS}^WvgOi9!hmU4`z&l8guHynI6e-;0Klem2ETsVe}-54TH?zYBms0_{N1 zrDVDE+_1jE+%Q;~azHxoUh9fQ!im;1y%C|M&xg#j_ zMbt$S4%x}Rf z@B=L{_nlXJ6KNn<6nM=ACDEm(lL3cP;mhvM*ixX{r7~eL3o(-T*|5E8=2WJ~Im}T` zWiP^eoxrsSD@OtonR6sdvk0s;O3>9M5oF^LG>Nl(g#25GH?Lq8f#02vL3%~0R<3Jut1)eBiSX_wS zutxVMMg}7&`H^6#2_k0>T`E^*N<5yhGBrf|0Z04irs$FV>k=DfOZp7>t^Set)20-LhRcVIVHkLp z5B24D^<}gbg4&!41u&onw|w6q)g@&qCg_`h1guycQmAceLU)|za8h4xabB~rfYAdx zt=PCg7B>Q3=J-ha!!xkeK9M8BZyazi0JWAnmD85Ur`Zqe!EOs7X9uuLJ*i>x55Y1B z?6CF$cxzuHLm^^8(}!t=;yON9hT#TLleo1>@eZyv6Jy4;OO z*8Q8WCN&T!J(4b=;F8p*HcLt+B_td;464Pz?Lb~jq^RaWk^#x+fIt?0f<~v9`HF>u zt|42FppT|X1~nNW*FZj&S-wziaPVvaCQ!n+MGfMR^1F^Pl372}fsga@njIjx;V#WdcmR@~BkhT2(<{jp=-deK5{cI-)qDVEbmUja`+#!jq#TjK54WJ=nj!H?;XGvQ=g zsIxEYkH(G|UPFW5k-t0Ds-Wl=tlhW@2>jGQ8#{$%-)f9Kzh26@g7h>iYa&Gi;yN-cL3OhED!0I+7tzrR*}44Y zH}L4o^wIaZo7nk7a9ZE|2E60+5iK0(L$^D)IXl2#X5_`&<~|nO^e3c}p!MKT#VDo1 zbS;>CqZJ>m$zOxm{>8(+iKI_dQSjJAq?0D3 zCS$rrJ;a|Es>ghLDd5-hcgr_l2+ij5{Qc{R z<{{+V*A=;dAdx9X>H$(imzY`jLq>z;aF3O zB2e8A(4vxqE+r6KG+W3SaHviF?+3h5{{60e;P-#bzq7M{`P0wjC-dJA-S^+)yS(p@ z`1hOSr)R(U*=J|}{ZHz{3vb9`~H#l{R8g{c?i&QzRP>$zc2W=nXR+4&w1Z({{9DN zf57j5{Ksc!GL9ed?=}Bq4F13W`RgB^{f+;D@4mfX^1A=Ncfb1K*^j>2Ji)*3{{T Date: Tue, 24 Dec 2024 18:22:21 +0800 Subject: [PATCH 067/106] update geth (#688) --- Makefile | 2 +- bindings/go.mod | 2 +- bindings/go.sum | 4 ++-- contracts/go.mod | 2 +- contracts/go.sum | 4 ++-- go-ethereum | 2 +- go.work.sum | 2 ++ node/go.mod | 2 +- node/go.sum | 4 ++-- ops/l2-genesis/go.mod | 2 +- ops/l2-genesis/go.sum | 4 ++-- ops/tools/go.mod | 2 +- ops/tools/go.sum | 4 ++-- oracle/go.mod | 2 +- oracle/go.sum | 4 ++-- tx-submitter/go.mod | 2 +- tx-submitter/go.sum | 4 ++-- 17 files changed, 25 insertions(+), 23 deletions(-) diff --git a/Makefile b/Makefile index 86c3263b4..955efc36a 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ ################## update dependencies #################### -ETHEREUM_TARGET_VERSION := v1.10.14-0.20241105040223-5c7f1bb7073e +ETHEREUM_TARGET_VERSION := v1.10.14-0.20241224100051-1582a364edc0 TENDERMINT_TARGET_VERSION := v0.3.1 ETHEREUM_MODULE_NAME := github.com/morph-l2/go-ethereum diff --git a/bindings/go.mod b/bindings/go.mod index 27f5875bd..af66cc697 100644 --- a/bindings/go.mod +++ b/bindings/go.mod @@ -4,7 +4,7 @@ go 1.22 replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.1 -require github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e +require github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 require ( github.com/VictoriaMetrics/fastcache v1.12.2 // indirect diff --git a/bindings/go.sum b/bindings/go.sum index 6c525f26a..df09b475f 100644 --- a/bindings/go.sum +++ b/bindings/go.sum @@ -109,8 +109,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= diff --git a/contracts/go.mod b/contracts/go.mod index 783504b76..a0850903b 100644 --- a/contracts/go.mod +++ b/contracts/go.mod @@ -6,7 +6,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/iden3/go-iden3-crypto v0.0.16 - github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e + github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 github.com/stretchr/testify v1.9.0 ) diff --git a/contracts/go.sum b/contracts/go.sum index 71bfe5ece..b4ac2ad1c 100644 --- a/contracts/go.sum +++ b/contracts/go.sum @@ -25,8 +25,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= diff --git a/go-ethereum b/go-ethereum index 5c7f1bb70..1582a364e 160000 --- a/go-ethereum +++ b/go-ethereum @@ -1 +1 @@ -Subproject commit 5c7f1bb7073ef2c88ea52d00e217b60d34ff221f +Subproject commit 1582a364edc0434bec74f3e3933d5a787b7429ac diff --git a/go.work.sum b/go.work.sum index af83c40f3..597fdaeeb 100644 --- a/go.work.sum +++ b/go.work.sum @@ -763,6 +763,8 @@ github.com/morph-l2/go-ethereum v0.5.0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQ github.com/morph-l2/go-ethereum v0.6.0/go.mod h1:Z8nCRf+BHV5GwFKpVamy6yur7LrKkzqaPfQcwYnq0bE= github.com/morph-l2/go-ethereum v1.10.14-0.20241028101924-8c247ffe3315 h1:egBq7X488cY3PMSecpyf34H6zqwix0WwcDzcCOeKlYU= github.com/morph-l2/go-ethereum v1.10.14-0.20241028101924-8c247ffe3315/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/node/go.mod b/node/go.mod index dae5dc141..031fa72e6 100644 --- a/node/go.mod +++ b/node/go.mod @@ -10,7 +10,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/golang-lru v1.0.2 github.com/klauspost/compress v1.17.9 - github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e + github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 github.com/prometheus/client_golang v1.17.0 github.com/spf13/viper v1.13.0 github.com/stretchr/testify v1.9.0 diff --git a/node/go.sum b/node/go.sum index 2a6ffdcda..868e83176 100644 --- a/node/go.sum +++ b/node/go.sum @@ -360,8 +360,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/ops/l2-genesis/go.mod b/ops/l2-genesis/go.mod index 277d2c777..cd5ed08c0 100644 --- a/ops/l2-genesis/go.mod +++ b/ops/l2-genesis/go.mod @@ -6,7 +6,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/holiman/uint256 v1.2.4 - github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e + github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 github.com/stretchr/testify v1.9.0 github.com/urfave/cli v1.22.14 ) diff --git a/ops/l2-genesis/go.sum b/ops/l2-genesis/go.sum index e073c4429..fbb92ea29 100644 --- a/ops/l2-genesis/go.sum +++ b/ops/l2-genesis/go.sum @@ -143,8 +143,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= diff --git a/ops/tools/go.mod b/ops/tools/go.mod index 865fcdb43..81a7b0bd3 100644 --- a/ops/tools/go.mod +++ b/ops/tools/go.mod @@ -5,7 +5,7 @@ go 1.22 replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.1 require ( - github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e + github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 github.com/tendermint/tendermint v0.35.9 ) diff --git a/ops/tools/go.sum b/ops/tools/go.sum index a45f366e7..471b75e08 100644 --- a/ops/tools/go.sum +++ b/ops/tools/go.sum @@ -163,8 +163,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/oracle/go.mod b/oracle/go.mod index 074df471e..e2846a6e8 100644 --- a/oracle/go.mod +++ b/oracle/go.mod @@ -7,7 +7,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/go-kit/kit v0.12.0 github.com/morph-l2/externalsign v0.3.1 - github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e + github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 github.com/prometheus/client_golang v1.17.0 github.com/stretchr/testify v1.9.0 github.com/tendermint/tendermint v0.35.9 diff --git a/oracle/go.sum b/oracle/go.sum index a08b1aef8..54788c16b 100644 --- a/oracle/go.sum +++ b/oracle/go.sum @@ -175,8 +175,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/morph-l2/externalsign v0.3.1 h1:UYFDZFB0L85A4rDvuwLNBiGEi0kSmg9AZ2v8Q5O4dQo= github.com/morph-l2/externalsign v0.3.1/go.mod h1:b6NJ4GUiiG/gcSJsp3p8ExsIs4ZdphlrVALASnVoGJE= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/tx-submitter/go.mod b/tx-submitter/go.mod index 1fada601d..587aa4f78 100644 --- a/tx-submitter/go.mod +++ b/tx-submitter/go.mod @@ -7,7 +7,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/holiman/uint256 v1.2.4 github.com/morph-l2/externalsign v0.3.1 - github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e + github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 github.com/prometheus/client_golang v1.17.0 github.com/stretchr/testify v1.9.0 github.com/tendermint/tendermint v0.35.9 diff --git a/tx-submitter/go.sum b/tx-submitter/go.sum index c6d21f1ad..e310519f5 100644 --- a/tx-submitter/go.sum +++ b/tx-submitter/go.sum @@ -164,8 +164,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/morph-l2/externalsign v0.3.1 h1:UYFDZFB0L85A4rDvuwLNBiGEi0kSmg9AZ2v8Q5O4dQo= github.com/morph-l2/externalsign v0.3.1/go.mod h1:b6NJ4GUiiG/gcSJsp3p8ExsIs4ZdphlrVALASnVoGJE= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e h1:pV7z8mnNQr+JJO2CGUzwAlzjrPnZ0YlO92izBaq00Zs= -github.com/morph-l2/go-ethereum v1.10.14-0.20241105040223-5c7f1bb7073e/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= +github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= From 01b949980a7f3b8bccf42ef27a414dcde9875ec2 Mon Sep 17 00:00:00 2001 From: Kathy <22675649+anylots@users.noreply.github.com> Date: Wed, 25 Dec 2024 18:04:00 +0800 Subject: [PATCH 068/106] update revm & programVkey (#686) Co-authored-by: vincent --- contracts/src/deploy-config/holesky.ts | 2 +- contracts/src/deploy-config/l1.ts | 2 +- contracts/src/deploy-config/qanetl1.ts | 2 +- contracts/src/deploy-config/sepolia.ts | 2 +- contracts/src/deploy-config/testnetl1.ts | 2 +- prover/Cargo.lock | 8 ++++---- .../client/elf/riscv32im-succinct-zkvm-elf | Bin 5311432 -> 5102404 bytes prover/crates/core/src/executor/mod.rs | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/contracts/src/deploy-config/holesky.ts b/contracts/src/deploy-config/holesky.ts index 8999df585..4e3601cb4 100644 --- a/contracts/src/deploy-config/holesky.ts +++ b/contracts/src/deploy-config/holesky.ts @@ -14,7 +14,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x00bc91a65e39100f3b075c9edf1a60fd1cb025b9413ea19c34c62d455e512685', + programVkey: '0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c', // rollup contract config // initialize config finalizationPeriodSeconds: 600, diff --git a/contracts/src/deploy-config/l1.ts b/contracts/src/deploy-config/l1.ts index e625e22db..60827a8ef 100644 --- a/contracts/src/deploy-config/l1.ts +++ b/contracts/src/deploy-config/l1.ts @@ -17,7 +17,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x00bc91a65e39100f3b075c9edf1a60fd1cb025b9413ea19c34c62d455e512685', + programVkey: '0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c', // rollup contract config // initialize config finalizationPeriodSeconds: 10, diff --git a/contracts/src/deploy-config/qanetl1.ts b/contracts/src/deploy-config/qanetl1.ts index 2b324ab43..25a9b443f 100644 --- a/contracts/src/deploy-config/qanetl1.ts +++ b/contracts/src/deploy-config/qanetl1.ts @@ -14,7 +14,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x00bc91a65e39100f3b075c9edf1a60fd1cb025b9413ea19c34c62d455e512685', + programVkey: '0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c', // rollup contract config // initialize config finalizationPeriodSeconds: 600, diff --git a/contracts/src/deploy-config/sepolia.ts b/contracts/src/deploy-config/sepolia.ts index eed8411db..cd02472d6 100644 --- a/contracts/src/deploy-config/sepolia.ts +++ b/contracts/src/deploy-config/sepolia.ts @@ -18,7 +18,7 @@ const config = { /** * ---to---legacy property */ - programVkey: '0x00bc91a65e39100f3b075c9edf1a60fd1cb025b9413ea19c34c62d455e512685', + programVkey: '0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c', rollupMinDeposit: 0.0001, rollupProofWindow: 86400, rollupGenesisBlockNumber: 0, diff --git a/contracts/src/deploy-config/testnetl1.ts b/contracts/src/deploy-config/testnetl1.ts index 036007329..9e91e1162 100644 --- a/contracts/src/deploy-config/testnetl1.ts +++ b/contracts/src/deploy-config/testnetl1.ts @@ -13,7 +13,7 @@ const config = { sequencerWindowSize: 200, channelTimeout: 120, - programVkey: '0x00bc91a65e39100f3b075c9edf1a60fd1cb025b9413ea19c34c62d455e512685', + programVkey: '0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c', rollupMinDeposit: 1, rollupProofWindow: 100, rollupGenesisBlockNumber: 0, diff --git a/prover/Cargo.lock b/prover/Cargo.lock index 7b21316ed..0aeae50ff 100644 --- a/prover/Cargo.lock +++ b/prover/Cargo.lock @@ -5095,7 +5095,7 @@ dependencies = [ [[package]] name = "revm" version = "14.0.0" -source = "git+https://github.com/morph-l2/revm?branch=release/v42#f5f08b959a6f051dce324c471e58a2a6b574c3d1" +source = "git+https://github.com/morph-l2/revm?branch=release/v42#028eb309a053bfcc1c7fd14b4cf623c0821e6c96" dependencies = [ "auto_impl", "cfg-if 1.0.0", @@ -5109,7 +5109,7 @@ dependencies = [ [[package]] name = "revm-interpreter" version = "10.0.0" -source = "git+https://github.com/morph-l2/revm?branch=release/v42#f5f08b959a6f051dce324c471e58a2a6b574c3d1" +source = "git+https://github.com/morph-l2/revm?branch=release/v42#028eb309a053bfcc1c7fd14b4cf623c0821e6c96" dependencies = [ "cfg-if 1.0.0", "revm-primitives", @@ -5119,7 +5119,7 @@ dependencies = [ [[package]] name = "revm-precompile" version = "11.0.0" -source = "git+https://github.com/morph-l2/revm?branch=release/v42#f5f08b959a6f051dce324c471e58a2a6b574c3d1" +source = "git+https://github.com/morph-l2/revm?branch=release/v42#028eb309a053bfcc1c7fd14b4cf623c0821e6c96" dependencies = [ "aurora-engine-modexp", "c-kzg", @@ -5136,7 +5136,7 @@ dependencies = [ [[package]] name = "revm-primitives" version = "9.0.0" -source = "git+https://github.com/morph-l2/revm?branch=release/v42#f5f08b959a6f051dce324c471e58a2a6b574c3d1" +source = "git+https://github.com/morph-l2/revm?branch=release/v42#028eb309a053bfcc1c7fd14b4cf623c0821e6c96" dependencies = [ "alloy-eips", "alloy-primitives 0.8.0", diff --git a/prover/bin/client/elf/riscv32im-succinct-zkvm-elf b/prover/bin/client/elf/riscv32im-succinct-zkvm-elf index 5656ce4d3b510a3f2a5ee9cdaf073558e30a8690..ca87163232c341a0188c6401f56bc2c04b710786 100755 GIT binary patch literal 5102404 zcmeFa3!GHdmG6H}ojO(3PntdrG>BOAsV7b3`J5_3>Uh(VX{&$d>Ozuq8ga+eeZsLtI|R|k+Rv;l)o4GE`LG)uh^P=)3pXZ5&4U%zsH?6P5w-I z?w3FDg*NSpFJGYk?l7x0`73=ty7FW#de3F*?=oI%F*G$Ud4K-Pw=9;XhW;nxmj9@_ zV%*Iqd;j47Q~f__UyZF$@~1CT3rCr^Pr*$j5Lf;-vX_>p`=pAdG){OHaniaX@h;vie==fz=x9(`voJb^)=^CdE z);;|JZ3d)G%M5B>yV=g6ecRDq`d+9rui&N^TV&iPS|L-*bTe-?pO9vChqO(*r7Zh( zyXkRF<|Ol=Jg_M$oxny>on&!Yn{t(<5zXUsYJ3TwwT$WWIV*flEEhg28TaJ%L+80vWLVcfu-nJ7KGK@| z1iak}ZyAHt)vq~kAC4MN^lN>gM%~>R(lTorH7l$c_LJju=i&W9=gq_Q9TCdrBF}e) z-nVW)G$s>%RCBI9)M}Y82AnlpCNut^)4fIJ5po{fQj6?q8H`xk(K7sP0+Nu!n~mnQ z=8QL|z`tXxyAHmm+6rud7MDh?F4~s*x4kpQdGBzYWg=JKLatVQ^MN^!Ay-D`fs7$C zl?})kWqf^qwvd#tOQ5g&zv&%+w^#27@6w&M6KXnY8TW;?nzg?6ee2E- z#yGcqKjK6#)%wo7R2zJ_R>@J{-!0Jw@2`Eg@4`#9j-M^j`fhqbcQ)2)gCG3(cQTJn z*y+%GyBd4IoD5blPYr(k0KUv(JPGE{xS4OpJa}YISWET2^Dd!x7KIA znCR=;oN#uU0cgk=!rG>JZHzhlqYPL9#;A8>Tphb!<~=PUZS;k9C#+Buo|;0_PzD*K zP0B{%UE;s0aWtA>Wl}eqbzRz(IWIr($Q$KjPW@2TrEddT(Y9$!OM;Q!J04x2NetS= zUm8Z23~R!U_2$>XOQWxY?3s$TO+n^2E05h}G%jx|v2Xc-YkqIUy|HA3hjDl$bJm zw8yQz?f_WY*HsxsHk*|YDfnW__iW_5vmW~Jht z(0J2A;b-bcPPJL>JXaYhmRF$*s(gNHvCP`@t+)#TsH+&fOo>=~zR4;}cb@Y^d-jd2>yAZs7`31rWe}>=B#C$(${j7fb$aZvB-#b6h`Z|9IUuNsFZhW0=uyza=x`X8g zSRMe&17LZ;m;tuWU~Rzz)>hERyCdi~&6w7yGeODzDn5hGD)|H# zHiVDKs5aiwoHuvX_uX|+jk!23FmnkQ8J>f^5!X5**+eE%r)2_<&1S8>?hKU|m(oxB?w(4yw7A)g8|};c3jDwh!*A?O^Q2xvY)5pm#W|^oJGM z;FT|Vwc2@iS7pY8j()v-9q09zBl3>4GgyD{18^jw)@*D4FnWp}wWG))boTYoLFW#SmwjFEzaRUm%X~lc4tnUd?Z`3w<2}XCy8R!3A%i3F zbodyu_ZQcLK6E|2RVok2ML|CskD;Hxh0KcWRcoQ=`gIH5I(J+hFrJ9O>t}TLZ0xYw zrvmEvnqTOdT6lE-FQ~^@Yi;$8bMw`;?qmI0hx=pQINRX)6wN{wtUr5eOs4ixug)#M zsG;3Z205Se!cVI+wSWIpYs}Anni;bKUTb=XVHq8Ut2y2OV0NsgopZq2VDNqGmbb?^ zUuiI;O&Qi`-jBETwJc<n{EzqgxSO}3vZ*5d zhvCt`1hJ2U*vCOTI@J_RH=5y1Jg5uCXUrX}<2`kP`38EVBfQ0v z^KdkPts2UN;YsjNWhQ*-yYMC8+{8RLP1EMAxd7Z*^TWQo!q{P9ZD|TDGFcb5zB9%O zfj77HS6Zg%O4hT<-r&HIBiJ8{Mdym{wK`AKI&4bkIv-ohd!K$)p9tn5FDF&ABf;(OJE}t}nEgGIVaJld@T1 zRd#=Pg44afwu3TbuGmhOP(F|M9tZdKHrS1N0Q&Kqc|@3pDPyi+PX+xvTf3fhP&49K z-+ew(KGrCGGS(@LW1MvdL*-+g=Z$AWc#N}tf3P^7&f<9L_hJibb#`M<0NFk?VxI?| z50v*Q?JD|II2#WJJ${OPr$gfu^U~3M{(RK_G5fC~Q(#XJeHuic2GOTMng)g`nKBuGts~I8M=p0Ki=xq`|(2mvj*BITf)VTFyft_Epg}G zfH6(RwL+g0fzFYW^}fh1&3y)3Ud5jOwM&D27hR@h-mC{Z13@b^9$D{a&$078&sOzy zmA7x7Q$i!wU#Z=c+EA(|GNDHeXTvY?324}cUYkR03(H(6ym(j9kiDMsX2f*Ag)T8R zK(l(ijAl3d7(L_dr3UL8k03L;^{QtZIOuVYChmP6E!@wR>M1A4x?L3txm%#iR{FW^ z`GC8Xe$XX-YhLkau_p3<<}fzV;RyZ_;R`m=H+`EZbnwXb5SV}4UU16V&AWMCN?D$tme_`0 z+8Z($dnTM^{84b{fSw8LhGrW0kkT{mpB-`DGb$9#pQQe(oxwf>ej|T_KfnD0XYU=_ z;3`LK6m4+*=icKplnLz)I}iSXHR#@Z$HSa}%3aY+r9~yWr7L=Ju{pmFJHW*dOe3v4cjPTPlKXGo5d~1zs{Y zpReU(j0(o10~zZ>Zw2#pu(5+>Yi14oIY&f( z+|8?x7+ZE6vATln&set=zdMpyy?WeWUBw5+^mE3_J8mpEHnVz%_TldYb@fj3IrXv! za(W20kIdS4 z85ezQsKkDK;rGV$V7;SNMBM2+#!B0n%B-gcrTt)QIN!c8gZ4vJAGkBRbgSAQL-k~B zu=>XLJIpJMj;`-$Zd+Giu)CTubOt_j4C~(W$58E!p*d)&xmIt3MyoAnO;G4-S;2n! z^yu3RedExVbu9GFut&uHGzK>WKY*vB`n}i_>g)+M_JoWN+eOz6g(ZIo@0l{g$de$xJ>kg?*1#W?C&O%Qe9;EJX!hp#SXvh0b6JVc zC5_MJ9(*o6_*{DR4EDI^S4?y}4dy&!bCC6Tj&47W4cv`i2c6-(z4?5r0s~;n4t&Xp zKqjCCws&8E&m{CyyJ@^i0(XJyUZ)SM}EJ{0FO2Y-COF zfc4Ej?A^`hWV$ZF-hVXF7kXMVc07F~6Tan$v;TJivG4otx>R?!h+U7ocK06 z&aDY!*G}+i4`q*|@9IKMAgV+lRbHskWwDr{TexhNg;n1m0ZU4#T{mcu~|H<@!veCaET1h{mud&G@+wgfN z=8V$*?DF<$r{U0S+CQPZedf`4=mgq7p}c*bN45oN|9I>Q)u(~4($~e$I+Z4Pn3$0- z<2$;PeJ^{o40{FVOWS4%=6idy)ITGCE!M3QvE`AEO7@A!ipZMBi&VgXr}=+7wPp-C zg3Tmi44!5Z$*O zabEw|+Kx;Ahi2VA0h+Ss^WPbqvQ6xPO6TGGYVyyDyvu&ynPS%FX(=>!-rF29zyeuc z`Sz{5X#d6E1UfGL?P%>|vxu#|U*e60zGeLn{%UiUxtPL#D^%gf6SFDlOV;k-`vpXPiOnR^}Lb%FLMTzay+$6M9bBR-F<1uccS&YJU=)|&p9ez>+KdFJA)IcX1=)?dzF@R1C7&Gyk&diC=)Kt3B z^99hS+QTW|y}t*(5u4#~aULtQ!C?Q}Y95W-*o&kj2Jn{bp|P>wnbU=T!|Zx_yL@(= zuTdV@^wbRWcVfkmvfmcVQa3Su<+SzdB+?WKU!2PIqWbUl>0NK7+xZAO65u@D_IZE^tfi^xHi}O!`{Ci+wtnlaTmQ_GJ7rDt7DKzZrjvj_vsaWJ3!X_phV7F?zQhOS@ho*wQBH>LjS}Ax-5S;(BeW%Zi)((LQTzHAWZ!gj z-hAaF@aFBSEAzB*Rv(o&;1Rr8HNjB4x$pT9>mzE{4Il5v%d3Q`c(pD>-hj`mRi(Vr zK52AfTcA%3_=2nijm`n>F%AEl794?=rF_v&8J#cLdxS5necBm5M{mFPh|iPbWWQJ7 z39%_zYa_3j6~C-M>YDkWWX-HO8ecSzFYEj@v*G!WO$^SC29ei~d);KKMqW3%=H)hI ze+v&ZbSk_^`s)K+mbHLfGagfXm9n;Ej23!H#UCZE6jS9!CMb39@z;%ZT#-K|`|w9q ze#Pzic%vQNSm3i8!zb&lgmJ8|?jQ#XUHZ}WaxoN-iM-ucUhe-|&i zLslNAM#jGnysyRK5TikIs{)rEDndKW%VV(d|sS2JCBMT}GFo;_gsr_$>Zc@b7Qns^Ks&Xk zS9(wUK#JztV3Fp-*6(R~zKLz-%fXPg{s6sq^GCqfQoXnKX!x4_-=z06&qi5QVxz1P zy$7#mDcXP9=mcw(-b=D3Q}AajYpMYr&C`AU{PU@{!a!D%y|VFY>6we)RA!EdBgD?Z=O%-){cp_@nB#QeLe+ zntsa;T-;A8K4)JYvKEKyOcjGD z+b0}dpZ(|JWf{JI%sd|jFOzw^9A|VUeY_NXCU`mD$IH5akC)v(UY3nh@u&$NdHed3 zJ%4hDEt2|gLwGc#9noih+B0~2ZS-hZOQ=u8J_i#j>}x0||KASe0@j{xAKODdws&hDwm-+*^SWSzzG_DqrE|Au?4q zccXJ9GPMYqnqQD9ktfeqP%=e6R}VQ2A~(I{p`{JvnLRIOVzBA#$Ue=w#FwEOhV zFGD+g8A^Kggpwic*b*5k8_N(GdefI7WJ&zM$W)16YE+y2qwHx*?YyJ;4fo+>fmO{U!$zO5qyTfMrSmjGaCLwy!jaXh2XgG=ReQi zFi-i}zsXpKp(HJ_*_#lvh^KYC z9a(R~_tT1P&?2#nA+|%Da?TstO_WEU6S@!C=lk}8=eN1J$iJbOm-Xqu^05S~IJ?jl6xw22%NZDLHfx5nr^H)#${Cm~5-Y5gHH6)uJFCr; zB=5*sv*!f6oqbRndoRz%Jh6E0=Dg=h&)pb1S98wh;E~L22glg!c4*G}P^_eXa*8>F z!x%R0R_nRi=%+sOx7RT~^<2i48~nsYWbY|fLtb3Y;@Ud%m3Ou(a=%6(*Cs?M)? zzKYp~oROTKRerxiqlI%lu_Bz8bOZiD$UcQ4Oh<~iq3=wGbpNLj$MC`PT5$|@-h3VmAM0$~&v_~Ffn_I`udx*C#q{ri zC|P4Ebw9utku3|}kuTfJ*i2+CTc2Mi8S!Cs@9}aKAKZh#z*{SJWI%Er4Z#a}7ryg; z59=^zNba>keg*B;=Ig6HO{6C<=U(!>LY?15me{xA6Y=&we@CBHdAYPW^Cjo2My{*< z$dz@)d1#f-x9$feYb)`x-85C=CLy<(^Bl6iH}r?x&Q8A1VjcAdjpi=ou2bc{IIB$l zZ6cQvXHnxNhj=Qv#K+^~n^zb^#_YV;8%zJaGH!p&Ka%;%duq+A{e0>Qc=nT`9Qd;K zP}mq;y??)ZE;*~AcaXtZp4@EU`I`MN8FRrDIcMg{pQg^49eCuoW#^+jJ#dixf$y;f z%Hm^SxFOh$PnVo#54+{A5o7ZX_{N!|Fu8%;mC+aGybQT*)*7(-)sWe7nSaknAQH^y zMh;GS+QVr4Lsr+0y#6^*l%I4l?&HbNr|>}p@$&?njav)tSlIVN@c3Vl5$KiEGMy)B z9WQT|Gl}G@>Ex~ne%FCd5_3w_T3z1xMwL5z+cwsM>=o)%KD9?{h3|WZwKqlh>9uD^ z!7VLS0e_HBbc4u3?Ox8=AkPhZgU)4UNcl^}=O%mf>K;wy8-~n(qd(^OhA*3mhnb() zV5%LbI!=CBR2$Uxz6bxwDUoxLv%L3}Z1>MDe_y*t=%eg0!8p&4Q;3a$ZHDFNl;r!D zzLmaEn4Y@4M7~ah|G%aFe>VSje+d7lLudSd@c-eh>b@GuC58q=`Tw`W_%+$%7w=Cj zNDDSk<4hH&R-Ea8l^KQRL-y#_Gw7w;sN%aEJDh<*L#)=riQhYJ$%dWzTCv zL8n2BJf>l@YbxGc;mgA7<+6}H1z940ZbZ2|v3wk<>jj?+VrzvDw-II58bKCI@4Og_OM)qaP41Q*U=p?@*i?E4Qbz7TS~9`x`z85; zhq(hORgO*U8QJ&b?P6_fQ7)51a49QsD9*`|KRy1L>R~!|ZKyhrd3KYIye4V4hkX^f zk%C3F;Gf8_nbbGEDE3@pj4?eaXKsRSD>)RE*gR`0@!NuD6@s;&^3QnP%^9zsa0a4+ zcgS6rvs8Cia0ZF9RGbUJhS7}a*gmu|%s%w&)<0MFRP7J3Zv~^y0Uu-dH!c=DtMd5Q ze_O^pz62u@jg$q+kH%)W=5@{#6!qW668-mZf4TnambK&QKfx&HKJE}fuZrBLyEZC* z!u=1cXF)a2T>byJhI_kLy>uh2wpjkbQyh;sgOI%iNnL~ey=N^X6gd2*WrJ9Tv@+sN3NXdYc|wY=Qk zkug`6U}tJaQEp%O4YB@6L2mCak=t($k=wPUa+@lVTl_q7SCc<~%a>VeoXnpyxN=6e zy9$}@;!No1GMo9@?>(8_P^Hel4wu>N#y>=6OXPJ_KM;3SnRaxMX}5EZvMtS?h;x)J zJ@_Sh%k~+W8s_^3}8KMZ%*gz5{jtL}8nA-BkG z^d4jueI5|mMJ^@BPU-X1v!aJND;aUQ=TGVL^_868>eY=INhQB!*t`0Qa9)O8kzvj- z8#9sN8eh)8eyldQ?!Ua>(e-t(>3f{%6Kvw#@lo*E3cl^jc~J4$ohi9r3G4)2M=v1j za%W3I8%5p^mdX30pV94a&E!n$RbngD`8fUO8MC)k-tR5S`y;P90kgUw?+^7?7I6B$ z{>n0(UT=cid7RcNia4E! zIrQ?d+@n|7x_C<2X^#D^?|HVzqu&$Xw`q`TG}Mm-UI|VG-5FpzGVXGI*qDiJGBYPO ziSjY=S%~4W1{&>_sS~knC)%;(MApbe*2qNG$OP8Ngg-8(rw$j_MY^~yRw)0?e6W#o zC{LMA-7^it*2U^jLt$Ms`8XbAU8psZB7VSkx%ad}4`eE$oF$*d`To>6u>oZ--Dh5b zJa5Af*hN0@t@ty$*o$l9$3||0uFt!1(Mx7G*g%M3z%A_(-92KnCR z$+F0VwRWOlDRfTinR~ed137k^IU67U6h7y>(GAzZe`Gt>&wAKH8FqBMf*9MU$cwxi zKQ?9D!(+GYL6^MDUTzZK=OgDb?zAuG+KC4D2|AI}3`hGkXJ^yMxULW0_vB&GH=cZJ z|D7DnLn7NnS=AN3!>dvDfr%|2BCBB^+rNx|z$nUUb`J9mdi%iR{+FCfFJSw|esaQm zKj_2#*vcg~xa5QS*k0Jjsdb6}wtOG=p;(G+<#BUV8T+Hi7Ct!Ne%Ml!E$}RF`zoBw z${BX?2bfO7Gj+poa!tv;E$+)!1bG4*ZDj+Cj7ghdmcqB}@tkiV7R4TVdQ$OqWF4Ko zTk&z--&As!ZLJ+G#hk<#t70mCB8`1`8X5h(l2M5dmf-8w%-s`_zvGd+vi_$_|AY1B zVWV?wz`AuDz6tm(_ZB1XgZF0^S9S zGL*84GW5u=|Kl>0`1MDTp%U3C#E~Z{klad|n zUyvP3$6OGXm)LYR zz$J;@OFV1`_?4~p*E)Apt<;Nr(tgL7D!jG+!do(SdEW_yA~JTlzd-pvCvjKR&Q87) z|7h47ayNGoC+Jk=PIV~gZpMa}{Yn?M9ruaI`WJZ=n+`eQ4gz#BdpxTGY#hZG9OeOW3i`>HD>6?x-)W<%l~}5^5P67_W%yVs||lRUS-=x;qS5V^5273 zUmb#1_@4d`#;Zp~?o(eKA`3^ut6_1teC*?ogirkTgY5ar?*A*=&cxqX74K6F4z3_KV-Xj@^JMKc_@p4fek8-0Tu*(EGWBU!{B!l^0`!&%B9** zE>%DFf#g!XI4qZ{uUqbjeENvBp8F$Td&cPapZ}m+cTOQjS<87S?&0FBZlCcCxm0_! z!3Q1gawHZe_KSxH2bufWOn70)S@#xqDJH_shPN85$WHQPOm$DPvsms+=6gGuZD_!Nv;ZQPHB|i=Li=2k~|5X*YmvkP{4SGzQW{0s5}Xt zbAObh9SXQR%lgMw(db*^rPwRb0=Z>88%k)BDmmX@f{|*SWX}-Zsy(C^-_*f<9o#RR zukd9oEo+%rhi7{|s$_qWvhO_EK3($bkb#%%_OX-fw)7-?MU(87smFi?$JnvtG5Cs( z!B=z)zM_egPo#Vzx)fhh??h=EorRp7MSS$mr$@-$=r87Oyk3&K5#i1uIm0da zbr1Km=8%cjo_eb*;LAn!xuPwTvz zd1sQxHkb-sW|`6--*4G=rPwug6nlnP`gUTXvPZURvcyEOZH#EZyFah{U+tCw;y4Gu z67FBBW`AR30~UAZZLfxB>rU6Vb0(cSxo}nnx~Y6PZ%zH!Xii#Sj^#9*s4uUplN?;jGSg$__ZIv!g0CB$ z>9J0bxM^MDG^6t#$`YFM`sUfzxMq9`x~}fwV}HF=!=}a_Q+qX4KlLSL|0tQte#L7e z^=0fZ#(@p(?H|C|q~(`=(db-cxt;SZYh0JQ|H5wT0UL6bv03f{oXfq{D=o8+(*@^kR7H}!CjRS-XJPWH1cislVM^Xzqb z8V}yKZFWbu@Qr;&==LLnH~i!Nj=ewCr0!raw7*dA;mw>Ktvf;D5RA#l%as$n1Rf+7 z7ipHd-lL0l5i}dGXm&v9@mHbqcz6|X8sr`A3c14ppJcwNd5n3SP3!@>jfaMcE|$oj zmKZN{a$9vn-g8z5 z&yjzFjK$=cFJnzTb%w}Tv=86w7($+Fd-xQ*OxJ8u_6|9bvJM-}M%Eu^ z_2*m0f<=~1j;lM3aYlMsNBb=9XRzG4Z&=2;dPC;kF0Jq7el2rfNVg{3rS~m)o_{~h zx@4Z6QyYxAV;kJL$2S<~CP%N!`sFMqb>~xeC3VxI*Nw^;dZ>F3b$h9s8@+Cm8ZUJR zsQU(W^>HJO*O)tXoEkG&;dYK4C-+M-=5dU9T;Fxv6*)I&4V|Ch8+cJa7&33LV{h;~ zIM_*G47~O5r4pXEz*oihWW5XTSwCZ44_oTMl{#<*z7K#cr94Qzt9VdtUL=@2r%Fo= zvn3UlrY=(JqyBH(jcIz&ou(VeQh@yLMBX1tU&i1={SA4a=-_?*4W&NO!SyD1=*7F_ zUDbxP#d}~AWl6Qh27~5h`Sr&BkT_D#VBVK8&arl|rxD-WSnzc$bQ}xa#^!O`8XwX# z_jT(X`**6`bh}CF4!~>H!rXmz@T6|kx>2cn4|UVj?V)b(=yltB#v`lLO;UFebytpF zw@vDfrLIohsnk7w^t!E5cVG7r%n@uAS*Ic4coha#w52)wvIBYOQhZ@wFq#sglw5UgDSY zshgzkBI>Rjy>3+6y@$GK>h@5#cl5eVQg?v5IqL4C?i-`mjj8cM6CIjN9m9CXj5^-9 z)SXY=By|^2cjf4HTY9UV@!x5%V|q|>3#`h7*u4!-gfr>UsrX2V(W7%juLy0Obx#JJ z%IcupXN+x*|863FnY+0Q93QjX!|mS%ZpdBTRsV>t`m~=r^EGm3{*m07D)yOP{+d-) zRk#ZrIhFiq?n}deb$6BM)F6Ami1g#d%QdxMRL_Io4ypdkC%IRBs~^R+5w&b{H>4Nh*v4DxwCY)q0Hp~mFpMhFhbx^p((SYzPZ7X6s{8gU+EOV+C^ z`_eoP%uI^T{|oBz`vCHL57|$t_tm;ie8uQYSGmo}DqHJ`U>`_+GXKt18u4_c8&6hZ zQ}H_%y&+^dWXA`joIIywgz|_R&yhbsdAyf%HMyYOI)Gnaub{kwa?XF{DtKS)4t^ts z_X7hV8DC*+;0!#yrF8sK#@gU+?V1%<<*tBrca5gzGg___cghnVH`M*`LJPlr=J`cr zP3bN7^NTFj-2b~e>oXssvue#2qeNH1^Ljhf!@BEju$ywMHS}d`y2gm>_3(SFF)cmT z*j$OtaX#nra`oKJf!(~XKJ)cwwL$JEHnu!Vo-6yIF#93-oruV8b+@zZYb=+0h3|N4 zi5ENgp*E;(tIXdyJb2Ob+&}wE?w?&i+$yUNt{*RVfiK2~jQ?ZIw`8A(tb}Mgz;DD{ z$$2P#V`1mDf&~&&P(IzZTm$_q@%OQ-$OCCqw%`WY!*Vw;cTdyyWuhw;ZeUwx)`HXQ z!BkFrejn-iy-Usjh)%|ampe}8iO)&}0cyJ7hI+pG$&e*+-7fMxB(G{U*g=j- z#{cbs%sPI1VC`4Hmm9$sa!h7QPEO6yb8>3bSny%hc)3><)9EkC+*nUDl7@3Zv+1m@ z8iK8V?qRFsX6Aoq;V3z7er|99TSe!|?N9&P^~b7u z`CO~nd_Gn=-y+X@taa6D9UFFR=8~ZPSWRzT=91N#&8P7CvFdc4Q~$Ri!4_+E1$se# zrxL%p*vmd%Ive|AdD}?v$hi;RmBx(M%YKS??heC${3BuTRxpd@kM&FBf2S5 zAvvU@=%x>qozu%?=V-dgLUz=ceAy9NIIC{3T;JAleO=^ZdTk!lGwUj$=P3EB<(Mw_ zb1OP4dSlzNhU-dn7;%>zI!muM;>l{GB`JGD(Md{YL6d6q8D)BnJ2zRw{xrmXBm{Pa zY;8bdHrx}KoM6P$6Tr6#b{u`xg1&0aad(u`XN{CMVmCD!)6-+&E4qyL1G%CuV~#RL z@G7jvrM`17Q)`YGmp68qZ$>b~8$W0J{IWcqd^t3bsnWVaH^D>dE8Qmalr{`>r-6T2 zWX!4l4!LXTpt=(velc;YTd-GH4{aO4=$9nEYS{J91#By5SeHa}yW#PGZN43_%pVYU zPjkkUyOHW7)|UD!yMDH5T~Z-+g0>YiZS!%HdO_lD_}%jLwC~x`#rRdu(cNh77$cTG z#>MZ)c#d(W=O!7g=}FLI64*EiIhbhR19aQS*O^Ja&dgk+rR$TG{}`W=@-J*qF}Q=v zU%Y0gac-{0nH2WVRsB%oe)>S^xrw~Ku-2eUmX-W=bin)VX!}X@3U}ap`XUiCI%%)k zyuhy2+25iw)^0f;zsA@MK9Ef>O23@xWFN*j$9fn}UO{lnSvGpbXk(w|>pH6<#6A{% z*uHX{9ZgSg4sJfd*i!T1y6)z;{M>lvQM;`@KlUNIj=R=H*QIKdZcE{37TvaSXSMCy zzIKy7UhH2xmP9`F@yNp%6;m|3J|SnuyqH7kDROS^^PV@)62GwbT>GoMuA=;2eJuzGt4z+U{f$ICCioHX)&-h z@^rVG7EMs|j^*(87L+zH*AXT{Xr!k4{nLbo($}) zQRn3FDOz1M+#{*<{_>)4S$v|UHbHh*rb^itQ?Pq$oQFdnO@^10$gnn&45u0t4J*wi zHNI7H4!Tr+vro8f$S;1Rg8bh1T}^&F7da7s68=BEK2wRlVvi0^j^*rMB{n^nk;DI# zt^+sg+_;X9g6HwxN;{UTRi*0JT3e+pfANL= z$glE^W-7-iyHNIL(!cV99{BA4%#V>Z#-1%LIY-s%^T5ykh0pONbzgwbVQ11-`jfj1 zezw>9eB^ojbn@>#-oKCgjb(Cf`@nIOt54>c;@>~}g$8mp&2s4`HwukzVQpMu7@pRLwNu8F-2i@>UQ;RiTx|@)A!H3y5mav$=;H$ zYkjSf@x1VIMtG)v2V)yJwJ<-Po28z#Bjd@_Z~1|5JZtItdb@q>3cD@6f>_cDyJhN1 zVofW-g_YRbEA8l_mEiJn%9m5V964N$94{}6H9>>S+8sxaHN6-L7tRS+ju2~V>p5Ng z=RO{^m&oxML-3&6j(wN?Ks9`fqJzJS?|SzPi8tBp>59SbttUv#$yvRX=XLEyKWDt< zT)rQ7ayF{?&60fV$!^oHbry^NTRYBf($V$&Mfq#jxp#oSR=&6K*UI-6{>ZtZ4)^Wx z=f|rgMwO9RRdqg2wex?lzYAFsr>fjdUQ7zV$tjYv9IoQ<1hybXoe)ox-}3y585TfNv-wfem$-UEMY52^Uo zU~qd|F@Ck-Dkr!};!vmCO=CG5_(nyhdJHrjsIX)B7UC--cFQ6#XFixTHq4yE`M$mQ zR{9Ll^D4fj@H@d-+4LD;rBTb412t-Z8) zi67ev4T){>`!!-OfVFk=ytsz9*Zi6HEcF>MgE0`>QgNEZ-{EgL!z-(sVukKG!|06T z_ZzQ%f7Pz)xvbzj3+ZP{jLXd>V%x=joQ}M0V-eraOR$C9xh;Oy` zF2gRp!R<`m09M~%H0w7Q@!a*qw=M?fugCVinD;L>nv>VFK6s{IPx&%C*2A;h8Mfqo zHuYX?M{^hZF)nOc?JtV4tqsXMeLY!Bon9W_+VN7yf}iB$TQBA74oZBhE_({&!QSLt zx{BlM{%pzK{6{{$PA$+Yt86p*E!{l5_zgyA(!7fttGjd~elGTKSYmt2&~eM`_S_Qe z^(B;pzjqOzI+wj&SYpFVu;-W9amr%@tS4d}Dz1`RPTM8p+3=Z?@$~uQIlg>6*}pCs zPr$H~XSz)yKeS1nn}LtaZAph%3pdy;YCq=3(l(q`Y&-EiukGFK#kR#ik-gVwLpEpR zkj-krgqi48=9_jzMtO(dbue}K#{6;)^3NRg#ptQU>i!At8sIrLYT5w{9eB7HUM|j$ z$>oe1<6202|d;`Hk`Yg~|o+oycjORl46VSTdrvZMF(P&_OgLS}f z+%bQn1ZTbcf3Lqgi0$51=*!#B=|vgIo;wUfw3U_PbTUqXY#a*qaya|`3j3JtX9isMS0sbm*l zglaP;GMtJR`Ks+3jV2-&LKl$@WGSTNuG)-|Cy;LL8tcDDBwzKsv7L*9I$1=!D#E?#Aysm)xBY{)L_^k&i2p zk1ItViGC7Yl7-aVf2;X7iiEj?f@X*Y78wVHRjWZsEo#XhtJ{yHgQu9|zc(};Wa zfY)9wXw8j-O}#;h^*S3xmb0zQm3)99^KU^W;>brVclEIOH&GU)teyF{4P43m#Ya`L zh7;Eo$CkKYu+bEsL<#1mo)n(=Yw4H~*Kcdjwb1`s=zlHi^V(tSw~6v7hGB)KZhD{yYw_9AQXc4Rp0;kD-JOSKNQ#Nc=nJy<4J#IEym;4TTlYGO(5Wj$x) z*BmllzUKC_=3>1InbSgeyU?CAu#o-BI|bV~pTDr$oL!Q?KrRf}RNKQR{hR5}ZF)-9 zTQ;QnpKPuW-n#T}T-<}4C(lGau@ll~y7AnZ^tA*%`bqj*Li~#7$xpK8ml)&IpEO!U z_Ij3N-oc)&!!CT-Tw(boxYh`C^u%wceid4r1%8(b@&IqqmOZ=}o^TxZ^x>6}ik#=ZCq zbFBLTe5d4A6w^#gu2NlqK5j0;^p!cL+ zY~!&!(-#q|UPP?AP&PEDgLzSRV4*QLx6qxtZy_=8g5DTbH!gMWp>CSGJ=8_7jFt-% zqb{}zJh%)V1O```mos;#WA;Dt*1_M6QG2kq-Wvvk zdoLF}9gO^~ydQvv@@{}U4nFn3V9LCbe=no0Wwf=Fwr--Wn`lScTMDh0x^aD}F)fGP zOh2u;8=>`$c6^_di~N6%xqQwzw@YVD-e@=EPPWZ~lkLF1likisbYpI(?#{hVH_pA4 zb6lh3{X~1IJC3?0b(!?JCyrjXz4s)ya}WEVe$AcxGC6baXrs2XCA>t*%G*PUn60W=ZyGJv`H|hX?F|b3A8FMAfrT8nW)%drze|>s#&*1%2dH+xo=!EVy??|Tks3?w1e%`O;fjry1k>Rjy>2UY z$0fhOJifp@ZUAd;up4{Yp;x;d%eCVJXlJetj0<<~7j#C~}<%=n2z2zLrSz|pX!>5y>-gpb(CL6`zO%8 z+@Cp%_GeLk9p%?i&U#HRru|v8Ka2Kf(f+JV1^KpLkASE6C&W)7{tEG1DF4O2ur2BL&I-NoJ&T(|HES?kDaQT`|N+&Xf^#b4p+ z_1_{}ZM5AcK07c3oX?$UH0!cAoyk~cy7Amh`V^Tv6S^UX15(~@w~M}?%HPTgJG%0d z(DqE;PukH%N$A$bn5EqrcI@~hbUh2Yo&{YK$m$H*o&j#npzT)VI>B5M%r$|}S<0tF zhv}5Jy76SI9pl|N@3!R5LT{Z#-xbj3EbEdQ-JU|(u|4FL?mL_K)if*gsP6lDbOU>o zF`dIF{%ZM5^SfO=a~T`sl}|m+IO5DPZpYH++VP&b%yBMrq%237KFx?Hr$O^+yg!$9 zI2U|958j?fd5CfGnGW%u{JYt0PB&A(nK2^^1LyJleE4*}-IP0@z9`Sd=qpBfjQ-E3 zz4Oq;=P@VV*G({kdg&lCCZA2zZ-NFk^@(Q=P@i|Ay%*5l1%5y9=4$h3F67*XgrI z>fy_j&m6wUo_Vwz20!N6R(hUA9Nrz5jvC_^McwhqsNKNxV|wS=lXCOyi39VDaZ{u2 zIGyr+$GPKk$Fa8O*%K%qPx&~?o6`~E6!REo*xJ*D-P1GgvFcvhB@bXs51-@#)XFD$ z0DL}HlbmmvZ_J0!_|;zY{cWjVF(&h|P>=Wr*h{mHumg$z-{hX(b4FopD4$(wA$^`< zOxMrM+TlEsWzdyD6>k#f~Kv zroj8tkRSTUoeGUlwWHucJ6O^Nmb40%Bt=i2${0>z9h|}%17j$UfhBRllJqHz@f7sh z$?o_xI)V3F!I~P%Cl7!z!`|fhln?r6mXE3`qHjl%GiXNtB;N8$&RM_2OX- zI!0m73DiG<`W@8oVC-Otk16efDd`T%J1Cz`IeHWPXabL7x$~L3U{ZyLHQ=F#J+r7k zi~7e?|9JWri~@7OlqSK1^zoD*Px%RyqhE(%&P{H!eiOX-BE0xwDc+zf!I0z^DgPqn zH&T8hv;l9xoOap=pA5lk!JN)Tv)pk>#*sr;f>rqZ8N)o=06*%%hdp1@Z4+GBQ>8x^ zl+UkeCEmy()i6P?Jn)uF))^r7a z@PN^OKL6&d`jl){FnSw_;Ise%PU;o`B{pZKY9bovOe#$sX>txs4O%LgIv<>_J0^N<~RvNMN zN|%_MFev5E>i2rj_wamPzWxK$|0}=!c(I+t{m3X|dgS}a#2I{k&#Pm;FJq8By!Y?s z(=z6x^6!B6@BY*Hu6y72@I9N4*HW*}?=$sHX&c^u!RI}8v3?`GzfpM4IJbH_&Y9R&7o(AEj8=jULq#X(qgAwW=C^8PYSj!usUO& zJh$~OKzGIqdd9O6m#|*XFs7l~*mGF@+;w~%XBa1$fy~$NpB?zwKdX55l&zD!xb!0r z3?EyRv1P9UPmpbYeE1jD`0z0n#ut}oj4y_7u_?!M#ux1oA6vlc$8XoVFCcx>&gJNB z`YY9k+LOxmZ7_F>4Pac=qsGgcQa&N(Anh)3$K}MIu>?K5M10P~-j+C;c`AF6ayxrc z4>2D67wk>IuNw+|DVk(&QhiM^pRwE1L3i#wXSnod$et`FbV{-}lm2>^7^*+~@GZF| zf)nJ@u#D{yr zc04V)>|wiQCHaDjz|HyOXD2Jjsc(nYG9GZir29?9D-&g9T!cSaIf z|JmOnTau&u-f+IEy-Py!Vm#SgSwa2xuse{8F~1vLKY<)1&KUlDp2){(!=Epd`ln{9 zME*b9C*_uDN-kB{``*m`!3mW|Vws)C@_nrL+{X%qIoTT+%Uj;_PS$wT$D+jb9rOIH_k7zaDi_PEznJ>3dCy;#bsqA*%bM5x z?_JfOXb#`CII-@^|NGqYDS{#U%`K6ZKaucH3T-t&GBN7VByceamt$$M^k z*yYu~ocg~qO6}2>+|}3uSHt^H+Od7&*YoVrCVbvvk46Wsw%hkzsqE3V+?D8&A!{xn z_Kp|RoMhh5ckvM-`^b{`cjNeaW4VP+chzLp#vpkVKr)-@>k6usXez zdP`k=oOZOQ37rtN+j3E85v6{3^Gk~kdY?ToLD@wE=L@;Zh$^FP`;RQbPn`s@10^#&Q0O{DU{=POUqvG8peM$?@!_VDbO#5UWzfltC^qR zhG523=$;sIAG70>$5c7vONzYSK>77{6Xj9L+jC945C78FQ+_?=*Hca$0RFY~Ht~KF z?>D(K(iH|V6Jw?xG}?5-klZ!7Ut8`io{{EG%OtK z(Z%TDSQ4MpeDpB7xP7Hbxk^`X=Ad1uZo+fJ9b6KCBxj}q0k-v`!qFX%u{0^awh@rmZY z$MKE&_a2Z>mZ>0*EW*796)W`ZH7PCg^)tBtfU`F>T1w@X#Rj0&Xrd>Gjuz$=4w5OmgDcQ&#{Zu>lb_ocrMAED-~?q{#GL38exe{Wz<#+_3eX7FC( zWM_(5tMWk~{O*NnFSAhXWmfQ<7_RigUM4HgQeSr^2b4Zo|LUBgv;Mp6yOTjX-ou;| z)oRSOp}G07I$zn=Ql3xslQ%o|{!>1m>dkyTl~1K*<1$v4SdTZhR6D+%kQ!UV_vRMI zmRQ0W?la5BmUWGp-q<9DBt;d&e*u~3Vv|E#XQ>Pek?WbYzx0J6Hsk>d$;GE z$@q{<&YcUN2XEN+E8d;R`VFXd>yRCxhoVvTD(-wcsW6VGghq)k=lKBs1yqc`yMH$H z@y0^joqg8t3i9d4e;v*$=jEF95|F(Odw4#fznL^PsWB#If)SjB)Po{(R@Y?q*x#1i zjS5AhRo{&{+V|qFoKL~;?t&i%Ia2P79C80A8w4LL^TZXh=Yv;GPUwMV)-yV~v=42X z&=DRK`T(c6gW-F;qZv-*zu3mGce1w2*^kn9oco@v&)jVe_rZH~yG7CR!5>xsLHGM~ z$^CYzF&2Ac=Fa*`;WvR+tcOkBS}3{uU*;C_&bdWpous(?KUJ;#gZX!q4={CS(LXr! zoy7BUm!8nv;~VQaA5-wwiWj$B`=d8SUhNoXRpO81kJkz&dka0a7DzIA@h>?vEP2vlM!=y z(Y{aIpPxJB2fXroDStG-r?`*julu^^W>v2C=9-e1;m_-YcX{1YQa`^(No^|j_sGv> zY_^kect%?g8r`Fi*$5+{H$tt^bewE#_sLGD7tfIV% z@+v#pQ-ys|QI@Yw?vi!)4(&gDH&7H`wYs}mo!|IeQEv4}xvXcuQz|2@l`kqincCW- z^yJ2^D+)N2*OMi8137nWBSxaDdx0|O%1l959^}l>fUh^Z`EBU|bSdXzE4UY^($kNb z$`bu3IoIe@H?G#Le;3g0MZLIs^LYim_;d8)g4ehU=v-ef&hhkOZFr2*i=pjtrDMj2 zzNGYG{q{TZI>gh9LIZxwq#KO(eEVm!4kKVz#L;g3EI3a2Q{2b34IkPH@ln=Vp%t2( zm3N!dzE0G3@w-;F=nn4=mdWNV#Wk4v06)-q_#Pu_EoRkPyo>Y35p>cDqjM_1lQA}u zk1Zp+#M+M+KQ{SR=?M8|a!*2}ke4U+nHrL^|fbTFX+@z==FR(Pp76%vqDe#^ULde?QaUYPvKW$DY$j|Fx|Io+e^p{ zeiZI}6P;SOZE=wf+Uxj%PcG2mQDrmyMV{8Geq`H8tb>3ZTLkvu%O6emb+dQ#Z92Q{ z9`q4&ukGPec$qeR-S=fh<4W%In4XNteL|yP@fg+jLqDvw?yBO9n#n$vbr-4=+ov{v z9@hD0Km6^2=e}=xtywK+VPD}Kth^_-Oo9KJdH!~}r(~KQa6-3#+USH&l|AG@-4k*< z(;;Fh{ElcZ_at=TC)`F(#*lkKTBPoL>Vm~{7g2ZR=ylm=8=YgRt5bI>b&nstF8k|D zRai4-q`6NZCu5GPIaiyFmgp;J1piv;o4ld15#x%f5p)dan0m+~!|yuxo(SWP80X>x zQ)BNhyXU6kWpW|NM>IP3QFnm4Z%|jS7^yB}tx)yJ|783X{v9(F#<|G~`Q1+UQ>?p^ zJ9MP3%0WZ^owfK2I&)#p=to$CCbAM{k4L_k9+uz3Gq!f(ukRtYG(cSGjflF3@6KIu zcS}F#@xi4?l=JwU_b{-}4GnvUbNTCU=Uo1j=~j3Gwl}`p(EeE8UHjGjYl9aZ#`b=b zbNRP(EHHMmXAvLed-L7Jb+ZN=&tEt4 z9&|L+`;ENcs*7)*Ip>%&Hpko~zfsGav2|?j6S6A@xT~Owd<}9nuv6y<#;kdgSl>&U zJsz8B0{1@=6So^5*X)YfoF$q~+$W7b+U@^7YxWI0dNFoXOkz3J2D%yhryBdGn)OhH z{ZobgQ$^cV?u=X|_D?1DPo*(auXJbTD$waQC9#|?Y^@4~Z}XHLe~r+raL?>K!FhhW z?Z9zg6Mrgv3wioQ`^8#mRY0O2QLZNE)?{)G!!+Lm=!p+ol zgPZ_xEi8N(3|`Xb&Pa#dX6P43S8y+htWo?e*pJXHIuImhEhsVOV$8-opkh1=l|Fi( zalYW$GPm;lDfTP!JoS5#6W;kBzFp?|h>P}G09i%;JUbBIKuLLBzK!>VF0}uI^hZ4C z-;@njINSHabE0c$!#~^i!Y@4A>zZGbj;CmAm5w`cg!X;`Uw(vd;Vio?O>Fue@?fT( zjlFla9ZQ~#Z{ch^y69|t3rWh8lqbQcBr=s8YHMXaimf%|H#GBlsBjNsOV7!2AGU8x z{HTQ2_`v;rh2pg~jxz$wEb&9E-MWy^@ZdMM&Kqi94XzEbr}pk%bZ*{8PPHDii|5@~ z7dq?1v$-U8B4^vINd9bF=vQDMdjznq#=nD6d=c1MbE;DKGEU<+Z+M4151TV>?v_$} zYg*CX>Mpr^@#k{)qS#ycyBD{5_Eu=ZSY>Yow_mR8kD#30%U^C@m~@|3|q^QVn?`V`AdpXQ(4{(GY{eHuCY=c7OI;V;yjS2wqKXVH?u z(z9q{2e1Z$-kH19btP+a$>3!1P3ZKCowq^B_73Tjc9(I_-6?X;jJ$sG_q)lzChv}X zeq^K_++mL&(rwAbQ+fa0?9F=HUGgIACRtzjC8Iff$=D!Kb%xZyAWH?&#(Gh{A?*avdAp_O7@8;}mlGVBjom&Q zT{+vMbDF!CHcNY-F48&sS@QTPFQv2geMRRf=DcBaj`p0O=-fm;VJvroqH|oH&ElgZ|_*=1x#_R_CU)Hg6nBe;ldvisML}JJ?`SUOJA{W;G6M@nPd=_s1c5 zlTEqVY8>RE7RI6SQ=zB2H zx4YY&sRrF`cUM|Kzuo?-7(v_JTD$<>D&P0#IcFv_x!`5n-Pd=2f8=#C=XuU^{XC!h z=kv79#z!aT!KwJW;`^%BFq(rOxAVC^&y}&GPdb-epXb6GiVxAbjOkp?*11jv{;u^2 z{L#B-p^q241-dVJm%~p8AEJhC-X+dq%{dGBa@P9rjsAoEA5S~redxT3Vbo?0%q{y7 z_J4d~Zt9$AclrB2Ysk7cbt`z|JPCZArPe*#eRg5pYkSUC`(H;clDh7*;d_uDIA`d_ zpaT zsH}-vQ_eK&C2^ENUBy{et%h&tK3AA`7O{^v|r;Oj?B zK{7y08Mp)92OP9bM{j9oBnKVsAS0B)XMEIc&_8NS%gqNKu?u1I5&yEfLyfG(d}Ep} zzSg|Uodf^T=(HSaP3TmyEh>k8veDcokg4ArEc27 zcRQLB-|n;AdY$(iJ3W_F`~mt>qc{eyP|ZZQ^VePHS-qO z0;alIv&7l#D|T63Y>M-oT6veA$6n(5kz)@N^MH$UBgc-b_zG;J=O(NAz^l5%29HBt zYH?ffhw|k){5<2p8SnHK=?wjeh=4Kjghh`!(&CItmq;6E|uBUFA zy4}?68M&_b1GX-qZi2cU)Lk)h-DasfmbyB1Yp6SWVj83!ajZkxcCTrS;t;t>&jv45<8dv5z1RAXPt85Q&-FS)&f(t=rwAY1HSo*SULANXXLugQg2{Dh1RhyjXl^U6ZkCZ_$=n|F-)Hc{6>LY zY?iqw=S<3>nL0j?3C@Qu=VJ=^6`Lh?%SL6loI|_#SSIj!)Wyy)h3}{E{S>~RV&D%+ zIsTxD`ILhTyC<_>*o3jmw(JwS27XDOLplDU`Z?@Z9s7lCll^SiR|jsG>$Z;lC~J0( z@#&g#-06vP$dd~V>c)q3{W;9@9AjbboKwWL%y(N4QFkA8U!kr(f5f^H_t9E2pPah$ z*_Zjo!oMo(~3hJguu3M|dOWpO0F8kE2`YPjGbeKJ4O$niP(1%r*6w z`#eg4w#1*w_rsV9w1qwA9&_8y(--z1+ABJVZ~T?gN#x}rWlM?w`>^tmru5PakbTGc zc8o4$>$sxnaiI@#uX*K!lKIr;ptZ!m$b4Fg=7WELnh!n#PUE3wH6Q3L^O-bg-G1%D zD;qNfj+sy2N72PW=ceG>m#39?Aj4?!i#<8inkcdd{Erd8JZ+?6uR{B(@Uj=WPk-NmBA#_sX};P_`1KKOo*w{Kow8csxOo zEyEonxf<{Xc92{-ZPfCu=t*lS7kpL@4hG+Mmjm0p*K6QSsh5jV4n9+L z#qT0ad6@6V2H@kMTY4(kk|v?``_}7~k9YzQkFJIN$S5k2_V} z=;3oV?S6vqd6)hK<)7etdyAQ#M*rBq(P`mh>P}BLL_T+??%2F<5_vJc$Pk|A=(C6D zU-{}g$YZoMUt}`cQn=WulXu|bT6pCsyfS#0eVQXYn!qhMeh#+L>qOok1n2kjo#F}I z;&WTK&+NDD#~J4Uj)1>rzu|#6Q?-ZAcJnwQniIZA_+xzT51pmXR8#IOct!LV#r$Uq znx>z_8G4>|1AmV_$NfAsK*kDRE#s#@#b3+39Afw!;`!8EkyVI=`KaQPkyVrrS~cVg~7;Kszc!1B2ccNhT6<7j6buq@@QVOn_ZX>LP~wFlP8y-xWg z<~E5jG_sGvtHP&(PaC?qx1)#qJ1B2f<-6Vz1KE zDWA?Baz|`WwbMX(os_4WX&)SBxy73IA$#e>o#mwcd9;5P-;d{e%5syT4U=gf*hs)1>t|6u z7g(AM98GrWD6duJ5w?tJS8A0^Ik>vcJ!lih~& zWad!G9Kc!Nt6ITViOG~tHX0I>D4)a_<<1Lm7Wk-E;j2lMpHBJdlye^o_=>wM;8DO? zs{C}fRi8xrr%^7kJQad>m}5ER<+Ohq-=9W#HRbFt_=&vT4mgbVrM#N*YRV^4K9T;* z>0jX}z89QBK23ch2moN|dO%Bv`!KsmV-Dfe*{-wPg^Ksod-H=c6#7yQ%! z4g*Kgzm$)sd_3h5$|WZq`6{pnf}{8zJd}uVmLimoqkJ6S+fEhb;3&SA@^O4Wj`FdT zkL7!t?-h>Xd+=1k%aK>R72WZ!fH62nUJLs5X6`F&dK?*OzeYJZ^7IPUyMp#uYswpT zp__a>;56-*?<*)DL-`oW$2iTj+d_Htanq^Y559Wc#AgLPH@P*HJ|zA%V1YH;DmYc} z{wTg3#kbhaw=&0F%=K}`ykE*kQC`kmLT-ajEYw!kXcz1CI5CF%Wv$4?oi3xijPkJ4 zM0qpiEtE(1%U;obIz;>OJ>PC6zuzwG^^dcsQl3Mvo(@tTq@4I0%A0nDnH%HVA7_Picdg5qvu8uu0V6yD`4biV#QRRBbh#33DtbxC*<*h9GUD*VxJ!)AFP* z-Ez#W<&gu}Sgft(Tg+XfBL|4}3(7lU{cL#>>&J78b@6C;5$i+w!(hA4h#oYq^q_x5 z-`I{#Y!^{=uO7dBFwCF_M&J4faGkdCtGr0;8Oi&1+*HtG z<^4svY;qO(cS(JDH$0vmaLC=432VS$ksV`H78`Bej=-6?j8XWE7}-E( zGhN#*s6MZ5*^ytb4t6Kt|G@ z;rj};S8}$M|DSe-^ow4NamJ^DZ`z&OZt!)wowLTiDw~DqbU#vLvp~o0`;BndSBcHy zrGGveyM)~Ka(7d}KANxR`(l2Y_ATX0;pI2-axN)aAO9DB42^~HtrNK}n{xei5nHa% zAkU@{$ET1nHm#RD*Y(W7klaSGE0*eBJJ`(>{!+5xlll1-+I~*nYs7f5=1qxqHD734 zq|a|d*+Ek96+HoB$G#M?j2d$_d?MHs!B1f{ntZ_>EiT|#64*vK> zXJUgR+ntv6;4&WrLq%T0e|i9r^db3W7|t| zCzf?zo!6B()jim?((Q)WavBru=+;$kDks`~lkY!twNr~GUNXghwSQILjqq_EoGCxnoWL7=fWC1wKC@_Z;Hqktl-w)OiEria&(R@rA;;6zs=; zLwoK0Q>^P0+~ZG0f9>?=!9BiG2Kw7#J-pkPFa_rbZsFdjzhmDnE#R*KJ$zF^4P?Fk>|HBs;x;7OJ(xRy-of=$tI)rN4aV#n9>N#20fp2r(xA+dATl!JX=V1 zx!c5;$#HIMzd+C2{!d!+w(aG{v~;^WE!W4 zA8H@2UaVj0u`df(P;Wi;x`(ajwkH<3=g(ebv@dCoy}U!CA1!wHCdun_lgg>S;{x4n z?`TI}`kK?yaibGma#Qlv9iLOUvtNALy0qRSM+U}tIHbq=53uj}EZFcR_)A2B@FH@r zOUUyd%dGtJ$^O@WdQoPz_>aA%CBw%q>0NnDbAJ?I-!H*O^-}!D#(8|jT>*S1o?1j( zf&ROH)KK{5ogMfpT@Nplg6}#@kF7pNo~9uF9QccUk(icexKmE{o0yjTH~mwNz2og~ zWvkkw&<^y(E0C``kgpP!Q(FUXBKTTz{mVY5{@IugZUSEmK9cx%^e5yv+zm~)9tA(N z=V_vUejdo5jpX&)FOW6Jum+JJeEo21@apr#%J}db>TBy=3GB-n{FF5~m|p{JS-)C? zb>}F$-_WgM3BghDZGxv}fxFn-0xz0fJuEMJbei}mJtw)nGeJ$=q2f+Y7~nkRKW0cw z6h3BoeCjr&@iEJJaf{p;k__!cC-VyaG2|YSyPL$$+%(&eF(vQZ&V40=?|b>uz+GDT z`%0QR$s7Go;NRiz@yN)1CE+mlz4-T)H1$}(TQFjoT2eFB9a_crl&JUS?f7uYon7D2 z)V(sR!tZiVmY(r!uf!0Y!5ufB=Z>3?8FH@|ccyU14fo(Qafj9^#u6FD9a=J$O8*Wm z<_X>54xw!UaGg~WJ2AgJQ-3sPs~hNU%=S5=%k9p z-*)>+WBWgz6yGO_#gCY;dw2U(n%up^o)otkt~ZkR2JwxR`+@$EoDUxD6z5pq7r?_{W4bPo8J_gN#hUH%T^yM01`W%;}EeWolt zH1@>9i=U7j4Nh&%BKD2H*~F~PUX&@zLGN?t2=A!;y*3Mfmi<%cFfi183F9^4HF&0p zGnZ$MxO4U12DUGg@d59bAuoN}X;|@Tr!jpQ-+kI??)Wr3%kE zv*ySV0v{@uN9zUr#_v;ddDIV|%R|;1SdzS@ZAm)}53aXwQfr-US9?L*nK1KLb+{K* z?JqvMRt`EBuNL1iZ(iAprH=H?{wGxKfG9LZ$~`%C!N_<+`^(5^Uz0*3n+w z`f>PA`gOCHOI_B)^2%fnl(J-aG=2>UBU1K{!0Tw%*FQJ)oV^Clp5>iAg>%Zv z6wU#LtXM0#3FmDFKUNA%adyhh%v$IQ=Oa^A{vPdcM!;R_3=hJqf=@H6C6Ch7Z;w=t zj^knIMIgEErx7vZM$C4wmR3*+YKktu5kDRTN?8Gc4V}{8SW66Q#v1fRjbrG`*}gU zz0H1-w()zs-lso#ILb~P7LJ}%^yj8L90~jlvC(;O9mt5rRv-(oRL6(t8jrCNXFCC>jmEFs+rA&1v)J!F|d8#wDW0^CSJOt!{b|N{-Iw(t1 z*6rma8&BB;%Bph9or&boRe61uf(K?7@PM4blcwa;v??a#_EZYmE1m$ zgO@z~;jM`_R{X#{J?+Kf4}L3SxYb4P27h#`J3V)c(UiUg{lP894E+{&M($?h`J0g) zZZ>A>H@h=)H=(<`?W&ZfNgQFO6MaBb@I&e|+~M>ud7jA?nN#!{*Ke#(JwFy6<_#Wt!oWDHH?jKiw2WRrn8EZRs_?OjLx#wH80`H}8FSIl2 z;~&l8o4@kU>ckz}bp0Jd``~@VzkTr8)t0NX zD|!TU1M2*4*n)080be5d70^*hoO9IN zyocXJKl_V(JC67J-wMA4UmyL~pUYax8t32h?te#=j`|x1@_TJKqF?ARksl|&=U%_@ zd|Q6Kl4jqe5%zkNx7YCn5v7|Ko*0-fGxGH9;K+DM`-sG~3En~1bh=ve4c`h3g@IZ5 z{Wk=UkqhtmF!=9ZNA4%p=zaI#s|t4R{wew12ISWd4?C$cFpr*10H zK;H5Do{?c8?!lJgbF}BF`wM{u=_mE8j^`fjG z>oaZIud-Jf@KR);j`}c3&J}%qu;Z9;~bp4pqFc!ZV?5wrx z!%nn@_~Y3s7naksgnWk`Wt_V*%E{Hc9=mFH8FVZ-#O`$a`>;E`XFd+?eC$OM2gCki zH(IyjlLftN-fpzYj_2)0$y;`R+-cI$#Xx(@vvQZyKx}d2KKKG+izVJg?r@TLmr(#_joJz8&BG zV~dQU>_19Jp?%%0*TwD*pR`f@Q;=h>*OK>h26$4YZ(1z5HB!jL@G8Pfczoj{#17*Z zZ|cT2V%zLWiC+x#U$^^J_*l8#-QgT+>)aCBZEtWjVS;-UnCw3igu3_s;bd83@ z3!_&y&?_70l@0XDhNp8JMqe$qiq<96O;ERkx+_MmEB1}nvDDS6TSML1BiF_Dktsta z<6d&;3wLcT3Ch~KpQ*8prUY@_(pEQdz3XkpXB!LQUq_0&jY{1^)ZItjSE#E8hpWq& zf-3G7djR7M`f;~GV__l~yK=keS4(oii~q5TyRFNSC&r2btKh^0z9PirwB&%@v}v^E z(48fiEBhPm!EUfV-~@63(W4q|Jptt-EBivuc=2hM`&43I+6`~Q-23FtH{ds)A49=l zc5X6NhD|Olyn7gaZk!(%!Ff#y9pa22n|WsoJ_@|;*{SVm!A%Hi%oaz~x1=#+`<5YFPe0Ilkh{83%_ z9YU){`*|?RJzAB4R_!TIX_-6E)l2hV6y=3lyRErEtA6@x^yh%S_sWsEOb!&t})YJ2Xpis@E$tlbig3zGPZeglUVq6^??6!=w@>o{3^J~RD3-6 zQShSZcnqf@K~5j)H1z}w?zbP7=5<-**bB^ ztL$IGP;waK8h))(KNP;&QEQbbT`QBdT3I%*Ru(#_qP0qn(~u#xU~(;a4z_uEviGYa zQ|lZa1#SH^_T^*1-AvtS_`LX)7(Oky9a`Ys30J9jxJzW5LL(JCd$!uyPVIN0gQLa2 zPi#3hw7>=~(68hy&btMi5W}F0jhviOg9EgnbCTc$AJ@Mr_}!xg zee;IWg4FM1EXZQd2>i>s<3sWixc^tBG-2us9!+?#-=hgr`#qXa(wDUJ0%Q3tGy#9$ zH2%QriD9VWPWsvSl_thO6UI1=9b=#gV<;a(`50)z7-+)iVw#X4uHt>g`@d{kgA+%(b zeNmp4h+hqOBuox~21QRsBlnEX%RSp;_=fv3&{@PMLsul`zufngLuQctN_k&7@h2&j zgZ2RXK0aN!En1*0pUlVl7yRKoIjG#1gS0)fd^zYwUk>_ez8#OYum-^3fE<+iF7zY_ z%!RlE?|kqXGVeO_Wba0IxK5pUw?3_Jii<3iolQ<=QI0SG= z{9|e?A^Y0=7|2I;b}4Q6r`HSeP-w6`6hF(r&v=i8?RUy<&+p4SOJ7V*=I-`}+1L}s zM^@$pjaaVE*&OsUYCh__@UA&d-3nq%b@GQKLdg)agr$%2Z3{=7Mr7?KliiRZ7QOyY6Ke}a!>cnF=neD^OsT%4+R_pZ`2UB^#GP8=WO+_@jWgJ3~6 zOWyWqAX99^2^QIKeqD5C%)w^{9a_nm(bkT9X0p#KK2j6kQgj}7?l`Zo9^U#-cALEQ zSL=7@&PJn2*22V>X8}3>$g?JS*J=}^(aF}nr%v|uyiOLKhB>1CJ>=*_KKs!ezUKSLkGyq0@IKnD*GC)di`$SU-k=*__8yya zjSRg{^aJITms38A|49&>h&qPtekKl7;_k=x5uUacYggc@Ufp(}m@+^_4@b)au!tX@nSGIq{%8+2ru z!Q)FD1{Z;z@a@lL) zmB6o}Q-Aj7zAXInyuN`mvX3^3<>Y_%<>a6Ea`I2Su~=V$@Ac*K;&H{Vqurk*xu24? zde>A;;1-08p_IU#cB-_rQ6BsA6x9@`r) z|NjmilRRr_glm zm|@Q{OSc#L>%ZonH!>zR8^6!~YU>T)>n+hqZAvwX-WFM&IU>*dzsC(bud5&BE~}z> zU4D=1YtQbT$b7qZ%KUnF?_&P)p1InZ5$oC?$j{T5wm^$n2hi^xI>kJ-r`0^GB|iDo z^DG*_@H)lgw?EMM`(9%F$G$am{8{$%1CRg5A7cD(4;uel!;b&jLF@lj;0oJk^7uwO z(}y43fn&bUDQ~nxrwu)d$@z@?bW&Lr!KX{^_{+IiJqZIesdVLW`0vs(Xf}_;S zrSnMrX7D@;@MCf=R+^#Y#hcX`+0(iVyl|LUg~2eCn&9ohTy<84!ceMYe%@Kh{`Cjn zgY5IAW6vHs<=F3H?CqO>59eBYNR9RVoNI7NF&=sEbDcU+I;YhB_cy0q1>E7`ss)2^ zRqK1;s_cCqY)%9H4a~{wb11HgKUq2_==mTVJR*!8TLO$-@%^DNrk(b|VJvm$2ZyoL z-<6I%^|vFA9XT62N=VU<*E!!G`kZSk{c*ncIajn&&iTgoIOp0UrSs7K>Xh@i%Ti}W z)?Mgv@|H(AH`{cHmk^pXJPjznW!p6(IaEWWAotv>OwY1&oV z`ET%lf!}f^2krJ&cr4cBri10i4%(Hr?FOwk_*6U+LKiN1VFTdYm1h#D9o2e`CpGu6 z-jk8LzJd?rlSb^9Khh&#p8`)-L5^BvaP-5myPiNte1q0M={n*PQ^8E|IXijpYjz}b z{G_wfB2RWm!+%oGtcJI{>6vgWNdB_66DK2~#X)B$bH3Xil`KCVGTMXC@G8cTwVj;@ z(7{%hB~!;kZremP#z;`!Q~$mr=wCGE%{sxmAP6QP2JmyeNHi{Qn&oZ#pn& zya(Y+D>K1M---}3lDzQ^bY9UwGVlbt|EB`UNlzea9%CQ3GRCyBL&(~T9G2NMO`CTw zJag#DJ9<|Kb$3S)*bQQLM4xXTKbg5v^fTxz?y~EO+MxYP<__6Dha z=wuyi^WddM;?x?^Ll|zoZWs+Y^x2f5TSqQsU*J9J_Tjf+i%oWJ#0vf{f`3ND+N|N< zSS#Z$^m+7Mv7vm{K%WPk=#jR$>b~*heU`+zD_C)&rts>>kKVjJonbnlcp0^xscZNi zIW{M21)TN)KfA<+@{WPN9=)Hel|R31g1QoCCv6hz#Cs*j#kZ*Urq#r}7>lkmFL?7b z^AT7Sn0y?bYQMlF{zGZgtxK5526EqlC9sPejJ_K=deZJmv>~I|Y=+Yp?V zTzjP4XscpQ^_0mOq<-~5_7r(h%Z?wmkE2hA2l|M5eLQeHnlulG2Ktb`>ErHTO>zxR zn}t3WdwocxX=OlZ<$mb-r#c9Ad1iQWLyWj%$RN$>b@T$C%y_Y(9dkt$-F8jjX`uiery|bhZ zbg_fqN98WmfM+*p{SI)#Ieo?0q;N{=7<*ZONA&WisGEJ&6?>ZKs5;S|-?PfqHv;SbJg|=f6YS#yL8E`wkzczD!Qpm2Ff=Q_zefL>BQF_k z4Xn*v$_o3dIpcNmDm;5MBKWmrFH*C3zYAC|k$0VFjUl)b{gQ?+2jA$lS;?8{1{di5 z+UAh^kh!&bJ+o>&@7K$oV58H0|E2itMr%SRUL=5Ti`XqWTRMA^){I3R#3yV8hjLCm z9^lWw=g3QGUj{ZyWMIx?K@J9g2pm9D(n>~9z9{(6po_vz$sSxk9r}>s?$N353^y;4 zqa(M2JD4Big`TNG4WH4!qcoDI-V48@OvB2BkyxOUB>o4V1{#cqpc_JWAARX zp_h#JXEI)6{6trt=hu4A$7V2Y#f!Pq*k5?LOy@$@rbpW&bM9>Yp4ja(&?@xm@vwWKACXa(*p}^?<;Y z()T3aK`&gl3LegcrVHO;s&nC=$2sB`V$_RnN6t9@TAXq4BROey18=(c4F)0yuFxV^ za0k2HtwoL~eb;fw#9Oie?H$`p8clkE9s5avGA$s$QS@ntJ@{PzyG7s>S#hK_593i^5 z?9pEHo51u2=B^cZQrFiF=J!|DWxz*9;rAD$eekB}a|(Qav7S|Mi!r^E^|Pekgy5Xy z^1i}22F8$j=~QD7{bb2Fz+0tbiT|7EV!iR8v&rLe@_Y!K3x0F(<(OAr!~dQC;QRy3 z?cw)7H?4fo+=kG>A@m}y=*6uckY4PUe&8>aPWJ=Ti$|0^`qe@7Vp!PASim0m#i;KC zpTW15A4I%3aph~U4eYy<2KIB^yHxS0X&1s>tOILnlGf>XqP;GMU>aiYLU?RsD{ z?e(qru51@;qq8<8dU^I+;n#@xV=8-qw4?CvHp-M=U11^$zI{4FxUpRljlhDo{ zp0l_YuSaqW0b2^r1ZD$!JX)}6UNB0`#fv9nUpuVr369lb3r}dVdC&3xZ%;~$eQ)p> zz{>Q-t!G-0e@-6Zbs~!#?I^dlY+RU4r<4CDU!?i?hdlfLBWHvZcZ4! z!OEHNP=@bk{vv+ZCcbygM(aMYSI%-59FqAK)rlWgb*hlvq)s_^bT1lQN9$L0#v`{% zoeHbj9a1OzoT@X9`*Ed?MxPf9ZYT9iRj1ObQ*{DXlRKnNoIK@>d5RTPbxiuaaBw@? z&sCkt))ZC8#+PwOo$S-9&LoTc8H^`HpBD{o2OY1sK9f|PuvP00sT2R1s#8U78E<`} z#vcuCN86|BjJK*(oeFD;JETtbUsRoO)_7G%ld&Jdj<0Zd@qYY7)th2f`t=w;^+cX1 z*|+RJs(O>S6U|$1=0H8@P-(sR6RIBh`u%#$gL;Yv6vILGaesVazaDd;o@f6k9^a4r z@!5Vo=0iP?mKD{@a;FIUI0>7Zj4vSjNj*iAiu;WdXFxqAzo>fNxUI2(g_i;!XsxucB zdY1uL!$VCJJPLl{sd%cYjK?GKj7#~1jJa6Kc`ldV<1^;<@|$N$en&FqI{D3Wv-}>H zF&~lNJhSq9Y=)d_{O0+b{I1NHN98w9O?=hIs5J`7Ub03FGWWDGaE`Ta8?9-BHNrP| zJ$G?f<2k3;_;Towpf5sy-lzY;7Hxy(=ylvPHHSN=7U)|7+|^`Uu5U5OrD(3wx0oAr z$J$D4$1dan_yv0_G%g+3qMnI>6O`Y2V2gU@bSI?B^)2d|(48_>u5VG#9De%fe>9Q3 zo;}POGgnP#jm580_)y)mwRe&meK@?`cZjtBUn%}c?&J~Ni9e6LWABL>5uBglTx?pd z=<7mouIUmlA>V-$Jv?srJuh{X?m)@GscVp1Ro+ARwGZ64zzVYGpuP#79-(h!RN;wD zkLS;RQSle-19}IsDGlp;FF0Lbv!EM*e-qlu8qha?LW9u}IM8KB^af>V@#B%RFL0BO zGg{4=F*t)E;L8AJINOJeUhA7m&TvxOwElbN{0>-yhUdSDuL9NrKCF>bz^e3N?E~vs zBGz~<1J5clws+T+HcP>R76-O;a8=0}9^x;{+7$W2_SMP07ic?s@6+f*;3(z|j6~V< z2AzFLfFA@l*eB>cFv6PT3=c+9_3RVpCN2B}Ygz&$o`0{WDTwS~KX~5?M(Pxd z6!o3OH-7lO87q6h7(Mum7s1HOtb->DG^fc`g&YfPpmWeOtgDi}tsr?YRetvu=GkK@ zYao`O4|>q86W64>ZPZ2f+M;t7^~Z^o*{=Z?l=V=yPd64G(ua>@(gPC5NR@osy8%=NpPZ4H%;9Y)Ll>A?vd-(O5GfFd#JmQx`#%ti|*WQ(+y+cE7Top80|Gi zKG#(77~F*k%4QpG`x3)FuS4dc^}ZM+UluvD?p~?KUK*$OGFGSY6^**O(Wt9f3VaB` zXRmV(P2EKwWK2tI?z9B?|8&mfe$M3!eDgZz()4s}*kK%Pm(VB!8dZ?9eEI(Z+2;&! z3V!?@`&^KV2KE_UpB=~7Mr6|bKBxK$`#iZ1n$f{tE@3}JFF1Ig)0C~CY(0C}J?uWq z9vf{r>hw@&pY94gRCTeZ-aZ%aF>A{{yh5F^>_g3veJ~a#0meU{u|f7}_)a3fU2$)n zCcKK4x#M)L|IW{n3+qB7W|0f4xszO28#6F;Fh|q8r>b37|8Y)IaG z3UgWcP4rscTnw3u&0Oj_u@j$SoZ+|pafb8b)EOszFs>s1HO3S0btDCRj2wn8n04pw zYsQ8D+!DiycCZhuJ9i>c&OUUr4?W(PSDKSW);8)}fwOMqw;CDc?M0-Fy$F1BQpD0u z>mBtl{9Rh>9d(0l?7X8g86x&)+l7@8v(FlFz12Kck)MD$@4RrV`ey5>vF~^8v_CGX zEe#sq`SG}9dAaF+=Zo1HiEk9P2LU5P5@qZs3ps{n~5J2e`9bY$)zl=)LfRovp|PdeDmr(rV$M zg6Jy5A0L?~5hRYRj(6m9$%+3s^r#0oLoTXM<8Pe{x{`Zc?99XugX_S3&{E<2Onhc z_tssSgHM2gEaBGc*t_9>8q$XI5M?_l`wsa1d+;MlSCZBlhwf}%VDN2#Zv%YGIG1pK z#MV=Z&g^#0Xjr7V&1KLD=2F{(ESp0%SWoUE;r(=c-0_)>D%~@Ac3GpaHOXl9*T^of z5}3|}(`AuS>0pLfQDYl9)V5tf?%uGp2@gq|bvg9Na{u^+^mhlggdal_C=;Lj7W#|s zvnfZvb0K5C170A_Sh|U!?IEWBZTwwwcJj^xp;+ev&i`Ea%^ZH_yIF%YakcVH5L+ux zowx(Bg(dK#S2i))kY|pVg-(mLL}umJ#bLuW(85ev}`KHApBWjoN z{sd<*p-uzB1kzt*6V{#w3~S79&6}XgkSgI>}jJ( zx5OtuBfe+m4@__Za@S7t_q(QA#BE9wKbU|9=mImqL)vsbJtpwk!Sx7Xn8_M(HXCusDvf7G=Emq`IyQ2W1BRfp>93r1R5%F?hZCe_DI=r zBz}!@)>3GwuDLVWD|9wK4dq@cp`o0i2023s;{5YxMxHs&j68K{vOE*eWko~LEh!pm zIt{JR*=^*o*v+|3v)0f|;zvu@TKfxG>;Axfzjddx2kLD7Q=os!+SfQk#8B%+XDjux zTbB@d{kVU&MtNr|_39shu5`);FO>08P+GaqapVrR#mo>_%|xZq9xM9-3uJfr3O<{6Qv=>D5) zh_9Xv{m`Kei{aC{1F<`hmzvjuKRd8PD|rVzDmv~o^}3bZLO%iVBjO$Fl{P&e-PCo^ zM*Mq;Cs=v;OrsNi9lzrK&sp!debl|-xSqkcC}STToqT;S^JR@UUZG`-#@l~Qca-)>@X|W^Q@Jk;H@4LMrvuc6jJu<86sCxx^#NG1yL}rzI z>(%A=al^NdC+)d|*ug$xzNAVpv zsP%R|#NQG2txAvW;qUtaz4y#IBesU;9`uiA^UZ3WLHjNX+zzmHCLPf(AY&2M?X zdZHd%^Sl=O_+{evulM#g)89;^*Zs2AyXIUY=H8^mR?}zjB`tP#Q11<1$2UPex#|h} zqyAriO6!eLe5=43~wH1@?Gd(`Q|d_N!`EZulMU(?+;~+U)N%> z>$KPp`NrVsCYb|$RLHx3(POc%XuZAUu9x@5V|uUq1ueFVwoO;-{f8#%@%N2)_1InW zjo6rX_1=~ImU;9tF5?Bp{}uLGOZ_?Q8tc`|G~0WqvqC%RCm*dix*KGrbWlHBm^ga-2TMB$Viob}h;#1v5 zaP>p?>dwxGkXLR(Uim)!+hynz+R4|G;>_TK){roaX*&7xbKFmp4ybRw_YArSbkIA| z`9FjW0A4ymd}%~*(`L%P^(4BCHM+BXjmV%u+?9n%v?7yj7PEGDtf6ApO9w#z@w>)Cyazglh^-b z2o6nNcaL!@{Fw}GALHT9sc)9z&Z%#d;?AijjFE7sZIA2yYw$;i^BMqutp2EnJG*#y zO5E8rfIGj>H><&qf+Itm?-Ja}Z+S1cb2Yg0Z16HTG4|4nTIB3%EwXSTwwx1MWZp#I zrwg0fD9-R&?&hfq{(9gHr{K*7o#ASmbMaMpeaYV!M~|35SEzGVa{+f+8l5EjSIGJI zI%i}ne1o#BeW3GLd=@1pMa8B_j7kITHP)fCpFJ8XeqvbZs^8EVIdj zm%zTfWcV1U+XiBwV#J|kf^EbO!~=VXEy}EU@-TN_fvb0D#`#-_fg%p=%A3NOj6=** zM0d9s#2gs}l>2c|26$oT<=E&y<;6jXj}3OfO`DaUVl((`QE6OH&hxuf<=RXG-*oU3 zvJU5c(oXU?)ycZH=f45|jg0UC;KWT?i6x37V}lp#6GkDH=mCqoB;@(kQVSx%Pra21 zYJud-FWQlb)3iOCnA7UuZ)3p|;56c;wBXQqsa5vmf&Mn*C+PX=N9@*bN8nj9)@*ar zIu&cS-yJU2<0%#6G>Y@qi0-l}Vi^PRP`7PwmN|&tL;NIVF5Wz{Wkcq1FFp{=L+K}@ zY8}pYrzcn&@^!3xSozFmtiGR%{ZITLH)$$A(u3#&u*b+aCC8Gy7rnB!gSM0oAkw;2 z>8iYyvP-W4Wan-&$ju6IXAjy0ukfiK{UJ*eup>rdj_&7FmQS#39XsRur9 zme98;!^Qx;QylB$#{fyJlXkdrNc@V#I;}cF4Ah|bm3xEr@T9~*H89Vj_?5{AYn{m| z=A_ElJ1FMu0h_oviA|dN%&_A+`gCX@Hp!2{+Hiad@lp1Waorm{gZ|Bd_$WUHYw|(X z`FdHKiedXGiGT8AucEH5VG9g# zX6&K+8$HE1vRjzH++kC6&f_l^#c=_L;8MxWmr`eDp%)t^aIbvk7cpnae?=SQ#1)w# z2o2|k}S@2O7e3S*Avf!gk_$U)TO86yP_$8jFC^#PjG+2Q-P#;B3y_|z3vVCVe;{& z?I(nO=HpFE;yrKKejfPE8V0}pE%*&xXu>Ms>2>&(if)wkbrgQn7UW^y&l9JscnCH2 z_>Z9tV%rAaKpV#GL|>+GVm$wi^jk_BQoDxqdB4J`a&N@B;8KOVhQ*~vmEGk+&QTpO z!CLvaRQWn(@sozW*QW!$zuu;SMG`>^|~ z_^H(Y`cKjh4}J@<2<;dV&a}9q9d+Gath_qssiM4pa_)+8RJ^~GcEk@4!p$S{)Zk<# z%R*<+=gqc!I^+A=wz59p4l57;*-t1svo?GLdG^%-I^)OL-VL2ud*t~6I^**LRYGUr z2aZmCMbVi2ycDmPx)qxB5aTHL%VA?d=LO9{2Bd#&({sW%W-l~ab?&OO#Lt2K-Kt_w z(c9}Wi#?C-78+FWNuoVNXbw5s(T8Ejl~^9?O1!GXA4Binaks)R7x+wVUVoMK7U$i| zX{_Rs>X~=(;lj*`!L|*XYi~U6dtscUn$&s`&;!(>d)0fmvXhxir7dShLcX*dd0^ z*Wj&9F26ST?dSZpp)a8u;KCx>JZzjke#B~R`YX^ImaIj*p?`|3g(p*Z{7Ci}Zk=uj z4)0HyZ@Kkph1ap?2aKhhy-S#DBWJE*7kTR~J@%yoTE?n@Ctrn3lJ)Nr$zCh8$*J8y zZ1u9^!_5sHDf~`C~s~An>TE)v{KPKhJ27X!g zcE&zxCGCTz^DTI2WKn1H0rZZ2^pQe0e2m9 zdk$R2-G0(Ge@-3kL=U6musBP{&@;%~j#~Yb556(*%~9arm#HU@XEi4CWYdkDo2(8*nw z2b3SV_!ql-FV>7Fi60hU@+)@ux=33$p17R)U&USmPAKa-DSqe5ANh#*oF8O;HsZr- zp`VqwW8@;$Z>mmsbJ3L~$JyhOUw_z?F=ed9UcMI5cPL$6ywSz?$(WuV!CxkeU%is| ze?tsJrO*MP8BT3I{x2J4Ps)2cx5A@59CtSV4P*F6#z>#U<|Hq&Du(*bp{EG*CpjHe zyQvr956UxqLtEI1DC_icYi3M%WT`hx`cI)lVf>V-ch9Li|M4!SXPLpp7`Ja?8g#GAAa<6zW^y|IjB2^8nKfc;lXL-!p4xY5oB}qIi z`XzfVdF>Xfy_6XKO-h!CcM%^5{~afmVJmBw9plyAHX$Og$-WQNO}X&(9`YA zwb@#YOr@9B)6yAhJaz;NUB_~%>&2hi6RINi@_{zh+Q+|6|M<~G^Zf@UP9$TK6Vy%( zs++o%{(-+rzpiF^W4M8Kv%s|nr)s>a?bJ=!&lN9~u{xPM>m>BV+w&WRpOkS5ZzSEpS(+vE5pd}(N>q>66W_kS`o%(JBURkY^>{roVWbD1*uXWx&eDUe=f=^^@5vy-Z ztaD%=jJ^rz^}wln>ovD;u77s>IHTmj+SsX!eK2--o3`hQuUwt!?5s*o-p$@9yjbbY zb;9Wpd-I@m(XNqwk+HFV{=O_dZRlF3u97|R_AfQc-@i%Za~j;<6{3?Dn4rCoS8w;} zg+2Dx?~7`Wr^tRRSL??<+y35hRtE1~b{Y0kUk3E<0m#_986#_!hcOQxKF_`Y^8@?B z7+6OSK8p9Kus=onAZH>YZNj@IvwPLpumu2L>ww4Y{#^Pd5A8R*l(nH=9=1~a{}lK~ zzJ;DuZTH~FuIJk!>;Flao42l-y5k^YFFj+J_5Ty*W_xp6d`g(}*PJ%Evwa9$YZnS$ zRCS2C^Y$+f*YQQtzQ;eYe@CBvGrxA=82-=0@`EGifcxqnDhHhA<$&8TLJqhahsgoA zjvR2|VRFEYCkNbJ$GJNS+XyjQk$eugdym+Hmw`q09{ybA^@@8kDn4lQZ1~5!`;bjN zJS{oWeEpfuxgW@pBC>20IaYXi;%2}LCFRgR&IWWQpZ`tCQrYbTdaN8}@DQS3yk6-S z!ST=j|7guq=P13vAAHSI-xzt#v%iuxpBSlw1{!C0&+{kxzbE+5>WQyOPQ=GP>HU7J z+Gqejx3PENrDVz${i&k4Du+Eh&K{vpovl%o(=5gWQ~3!kQRbE}1h}Y|K+>QTT=l09bR1V4Ac)vX+X&cO6_O@}4@gf}bT$9hwj{T3^xK)Ji)Ji49Kl{+#flxiumoVTI7JKZ!zS#N^^K_32eyo z2nM*qlQ(rQ*GmaLz-QLeS7xs$f=$I!7vX~}`k2>%lY;zNvX{5~p>S~4!@>8BfP=4p zrhLd=-UkjgkB5isK@W1on7jw=3rd48XKUZA9pl6@dwmbVY_KN{GF#2~z!+QB{uULJlQZu>*+ zgBHq2KGge1*oQAaQ!!*8?zcyCrpkxxLuK`7&Qy4qGsRsCCiHE%z0l!=NEyrMQ0%{;vyO9^GRp4b9$(z6*FUDU0UmcFF#;j|x`{ z4mav;Z4dOmw+-1i=<%cICBW6tZTRy&BENLDj_d7wRNaGkRf<0CHpUH(S7n_(j_;Zp zv1L876@$vBc{HG_fpYu-vgM`aR^0%Nm?h<5uid%OgIPN3q3DE17mO`l*?}hb#zAH0 zcbB%?SL3z2H!AJG>sa2m+Zy3b2Yu`QrB~KUyX%yE!y4&cpO5{;z+78rdTq8f3*V~f znHS?TDL>BP=#S&aYYM+jTmU-t9DA>`KXKro8+efa(do+BSN;d7QJi_~WjU22Ui6Wo z(-R(yd5q4O}5np;z8!5>K`OebXxTT;y!@26cV(gN~D!Tc>F@dd}iL z;!1y}`lz(bq{cmG_$NRMwEhhbi(V1G4+Z;Yqoa8fx`F?J4jkubSKtd6jy^8qF;t|=h;dxS-PS5j(tMY-E6@sb00ue$iFG!APiskz*z_NIE$a$> zoN_JW&VTb-ju_vJf03?yAH%jMONn0TPCJlnGs}nSdGLKvdL`s3r7zNcr0x(ItXER^ z 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 z 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%0DJ&>l>S=W-;VpWc-HO0SdaUy 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

C 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%0Am8U+r)LGnZr*WvLVTK=Z-@WR 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

uB7+;ZsHoc_Yz@}vv)VPGEy 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%0D>5{fXR))vw*}DBHe}c`>T}+?mvNNZ z&>GL6D>sI3zhP<4|LN>gmvJAHKChr%`jIms%ea<4JK)k~S3zr1hu@ggVQq71Be|U1 z_C==C%aq(XH>Xa=-(?=ipKGRI22Pc6+=A-yVl>-d^K}b=bB6^VCC1GC%ZnIC zcmCfFPOJkTuxDO=4ccYy#K$n_A?63$p!Z_zRN7=5inXeY{+=;Va)GM>dkPy!+ePS5 zeYKn;z9DgJ+bR#?y%X_ zP|Exz(D6FpMjxqNL_P`YEB-Ks(zg#F^uwUn}DJV(W|kr1AGdKk$TGXoJ2Q7<-=dL%hE?bYcle;5j!uFeV!;Cg z4=_H~u#D0{KW;9u{U-Z{@V9rYfl|nRsed5<+y+`F({>+Y99zS8cs{{`Dk=sg14OueAQp)-b8`&JS%}Vz4q)8}Ob$H%3uqRZ&;G*i;pDqg!0B8pI>5>=m|T7XW1&e3!aV6qFLWs zbg21v!#{7LtsBAFUooG@xu+zq1NI&8fGYZ!0&m)b{vV-zk@0VPCD&PSyfXf=@RiIn z);d)54SQgKGjST@+d+Hi1*N>hJ~K!13iu`}aQO7fo#-s+61n^WhwR;SB%d)~dzz_5`u2~~3b|_tdc9d(LCBb#M_M_kV+o=z{ zQS?hqk#mB{>2vk`1o0UCDs6W5`3CDwyY)Y24aDZ4ehWN6^mpkO`c^Gh;Zu2lHm}OS zaw*U1Uj>(|(A}_wThQ};$g=om=BYdL01qyw6ksctGM}P1iwzc@QJ=kLG1v(7pfdZM2AVes*(I6MHK5@+lJFS1!+^R~dBTHx`!q1}xcpJ?nU zctjDoQoS?&rN&LPg`OZ|h7aiY4(=IqCm-;0-ME>1^npBhYkV?u3e4dRz}H*+6wDoc zir*wIbBDe%{{($M%zRKf=Fas~#27~!zQ8#k8M%xMm2XBecluJ~@|<&!LqjrrAkjH5 z+`DskcNcAG-N6SO_=GQ?V=vZq#e<1L#BesQal)W7)5BhLs0M~r@;(YdS zSJ_VAR`3(s$eUuFZiSxCVGM7=dm7;r(5SPO`uMyRdL#SA*?Zu1dbQe)A%R*?OEdzh_Q=W0&ccJN?i>>GHb9sbr1RlwwEM5qIcotrT{jl;z#(fj- ziEVZQ9zpSs;rXZF%s<7Z7TX6N+Q?q_abD$zmYk97x!A$H?#S>5gSBY{r>&W+8S@eS zlKU^^zYK5i!2_@vRQM=42fP>MH!ACX6x{~i5Wf{4DCdtP_PK4kXOkzW=V@o$JJl6xqz(?f_6N_9OcmR2*I*D$b7y~>z@n`IWKl;h< z6?>9466B_pZNVn-yEztG&S96mFdok1NXY)TF|^4!9g>SLZ3$0VDS2(=%~W4bT@Nwi zvB>!?J-l&TGi8lIR z({Qd%oOc=;nOpAdCiW|6F&~xt0CP(m%gq_YLFPLmM8}w((V90?);c z_I(6gG4e|&yf5eMD}1fmxtsBiBn~i|etgU;@qmHrMUHtb`QBQ|1kpwPR$)Z^-Q@5` zyn2}EI<#N9op%J5V)j6kGe6QNbELWV!E>z#I7dn5@($?w0bt^~tIjmW1Z?qXocG6j zYj)x5FDFi0L|*tKz<51)MZT0Z61dU5S1!%KD`%rs-@=( t(4;NzUfVTI_cJ3H_K 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%0AFx@k*$q*~;B3ZX8)Ncn#wPr-WhG~; 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

@m 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̿`^lK7(N%GjFrdH$yIvc?C+wwKq&BH}xv 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

6G*i(%Uh#ntG(N}od7@I{E~jLX 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 T>D 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�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 FBP#?eHoJ4Djn7O2<}4WN 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

lA~5Wwt7sHT}X_T86c2BxEj@EQl1T<3S2w4Xoj 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 w0iod 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

UCE;Np}TAUepGi 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

uZPW2^g!J%D&IDKPp&*3&tGL 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%0Ai)G<6jdlK|D}iO9Iv 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 literal 5311432 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 Rp4zFBxCdbZr_^0-%a8}vBGr^PsT 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 o(lKt+Cse)=_4yT@QR~ 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:@fluNE&a({|A84(`5`H~?xL{R1C2)G<>kg@m%nMS-quq+tlhli{sngP z#jM-Tsr2$}Sda=ahGnm1@A^viuDe+mt-QcCws0>X_CNrgkiCSoX3|)L+Y{pM*Dac@ zk7`32vaVrEh;HIua-#`d)izk`m1}l7Qf^ZS-GzM3Lzm54|5h>_M~9Pt(d0+(kWIoxrpJQwIz_QE|$NlO7{IhRxC> zbF-TFoZX%h&A9xT-`no?iMY4+-~E7g(VlFGcKK_HXRLd!@+@+l*D%@X-ZcTK0pJ zY1&Ss>qgD3xeVI-_L{K;omr&WRim`or%C-@Xz~Cwp>OV@Z{7h-*tfsH;GSi8Xf`}h zM?cNB8*ZIr*RPzzp8XugI2-=4@r$uJx7T2|&9UJ#p7^^*dq1Wb>1z0Fs@;-)!n0dq z7bQzg&0vkfXu7Ato1-!J4KVjDGa37T+(0?l$Jh_>MzRonx%MkPM%RZ*nM2MpT6ALR z9n@LJ(^<#U-R=|Tjukkxsln(P0Jb04Ex?YR8+K4&mjk;P*z173{oJtM+Ej16(^#Y5 z6xf6G1@h4SGW^Hd^BMdy!3U2D>;SO+z-|F{^xUwI2rT{EwHVmzfW7_Puv-+qz=nZs z0k-qpup^u5tzzPdG|9d~spls{tRDJ>^^rl=2Jg|)JN*BUta_N}pF(4l%>UlJScm*RsmwVv_W<{Qit@ww7#jm8hz^fh)F{XDnSHvS*> z-akI7>Q4N=ckbMo%p`%p%@0I=47o|b@I%}wg4XU%woDMJ`_)#o?Y6tx0o~f|TDQgh zw$<*8HxmS*t2<58?zUS3nIHtT?11zaukXY%fGFQby3*QOw^~43t-ESP0Wo>rpL6dd zGe8uz&+hZQp6?&LhTL=RIp?19`TgrGS!+8>zHQqNtY@y3_%t}DmZ0vm?A7e8>uc=( zf32}MJyc_F{E4))cJ`%(@0~tS>F{f3>9c`8J@nc16JUA~eOA(EFZR@+ZuhUBVsHJ| zDfR;oO|g4^65%~;ynC5vr7NRIpAGcsQGF)aTYmzq@~#?#v1E?^^^@#P|2oOu_|POf zOZ)T`V+6gmtfUWX&90wdZ~WH@taXCj{}XV4Z&2UDH?{25`IZUx1GM)%G|}GhlZnRk zwzI9Ho^{l-)>_s<9jP!gT%=fRSKIS>X{3hvpjxfJb`ko`qXQgk$xxxGf`p!BqfqfcVcIGqJ zPT~(;>_Pb}b7nqT=TqJPk2k!iwr60JHcFnNcs-5@;ffI$yPQ51jI)oq?&4jZXTKM) zH|%3QPe?oGRl!=;HW)L|9Ui#PZ*Tpc-yvQTUmrHk>IruC*P6ZI70vGP>GR{lb&!-edRo`Vya^^p;k=R^Bgt?{Gc!gIah_UvE9*-SrGqci&Sjwvbcw$Ckc! zoXms$vfgfi2Q^&{AG)>9o|UR2CYHENz1ErD7BaHnXBPbITckUE#FEeF8-t5J9}PYO zE!v1Iypua8_Hy6A�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 z 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�=y@P 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� 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 z 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

^0N9vv%@Ug9|b=W1;r4n{+CZT&-V>%DB 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 )i#%Ql_ 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 z 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�McsdJ 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

`wZtGyu}4D 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 z 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

%!P7?zlZ|S`L;UYdbsNggS_of0SF) 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

hm;=<=^nA_fJbG*_Y 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 z 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 { cycle_track!( zktrie .update_account(addr.as_slice(), &acc_data) - .expect("failed to update account"), + .unwrap_or_else(|_| panic!("failed to update account: {}", addr)), "Zktrie::update_account" ); From 74230be1839c3210585c73321f90a83494b64909 Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Thu, 26 Dec 2024 13:50:33 +0800 Subject: [PATCH 069/106] Merge hotfix (#690) --- tx-submitter/entry.go | 4 + tx-submitter/flags/flags.go | 33 ++++++-- tx-submitter/mock/l1mock.go | 87 +++++++++++++++++++++ tx-submitter/services/rollup.go | 47 ++++++++---- tx-submitter/services/rollup_test.go | 110 ++++++++++++++++++++++++++- tx-submitter/utils/config.go | 15 ++-- 6 files changed, 269 insertions(+), 27 deletions(-) create mode 100644 tx-submitter/mock/l1mock.go diff --git a/tx-submitter/entry.go b/tx-submitter/entry.go index 8849a4e1e..b44be5628 100644 --- a/tx-submitter/entry.go +++ b/tx-submitter/entry.go @@ -70,6 +70,10 @@ func Main() func(ctx *cli.Context) error { "log_level", cfg.LogLevel, "leveldb_pathname", cfg.LeveldbPathName, "l1_stop_in_blocks", cfg.BlockNotIncreasedThreshold, + "min_tip", cfg.MinTip, + "max_tip", cfg.MaxTip, + "max_base", cfg.MaxBaseFee, + "tip_bump", cfg.TipFeeBump, ) ctx, cancel := context.WithCancel(context.Background()) diff --git a/tx-submitter/flags/flags.go b/tx-submitter/flags/flags.go index 041cf2db5..e7de38ff6 100644 --- a/tx-submitter/flags/flags.go +++ b/tx-submitter/flags/flags.go @@ -214,11 +214,29 @@ var ( Value: "StakingEventStore.json", } - CalldataFeeBumpFlag = cli.Uint64Flag{ - Name: "call_data_fee_bump", - Usage: "The fee bump for call data", - Value: 100, //fee = x * origin_fee/100 - EnvVar: prefixEnvVar("CALL_DATA_FEE_BUMP"), + TipFeeBumpFlag = cli.Uint64Flag{ + Name: "TIP_FEE_BUMP", + Usage: "The fee bump for tip", + Value: 120, //bumpTip = tip * TipFeeBump/100 + EnvVar: prefixEnvVar("TIP_FEE_BUMP"), + } + MaxTipFlag = cli.Uint64Flag{ + Name: "max_tip", + Usage: "The maximum tip for a transaction", + Value: 10e9, //10gwei + EnvVar: prefixEnvVar("MAX_TIP"), + } + MinTipFlag = cli.Uint64Flag{ + Name: "min_tip", + Usage: "The minimum tip for a transaction", + Value: 5e8, //0.5gwei + EnvVar: prefixEnvVar("MIN_TIP"), + } + MaxBaseFeeFlag = cli.Uint64Flag{ + Name: "max_base_fee", + Usage: "The maximum base fee for a transaction", + Value: 100e9, //100gwei + EnvVar: prefixEnvVar("MAX_BASE_FEE"), } MaxTxsInPendingPoolFlag = cli.Uint64Flag{ @@ -345,7 +363,10 @@ var optionalFlags = []cli.Flag{ PrivateKeyFlag, L2SequencerAddressFlag, L2GovAddressFlag, - CalldataFeeBumpFlag, + TipFeeBumpFlag, + MaxTipFlag, + MinTipFlag, + MaxBaseFeeFlag, MaxTxsInPendingPoolFlag, // external sign diff --git a/tx-submitter/mock/l1mock.go b/tx-submitter/mock/l1mock.go new file mode 100644 index 000000000..10dccef62 --- /dev/null +++ b/tx-submitter/mock/l1mock.go @@ -0,0 +1,87 @@ +package mock + +import ( + "context" + "math/big" + + "github.com/morph-l2/go-ethereum" + "github.com/morph-l2/go-ethereum/common" + "github.com/morph-l2/go-ethereum/core/types" +) + +type L1ClientWrapper struct { + Block *types.Block + TipCap *big.Int +} + +func NewL1ClientWrapper() *L1ClientWrapper { + return &L1ClientWrapper{} +} + +func (c *L1ClientWrapper) BlockByNumber(ctx context.Context, number *big.Int) (*types.Block, error) { + return nil, nil +} + +func (c *L1ClientWrapper) BalanceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (*big.Int, error) { + return big.NewInt(0), nil +} + +func (c *L1ClientWrapper) TransactionByHash(ctx context.Context, hash common.Hash) (tx *types.Transaction, isPending bool, err error) { + return nil, false, nil +} + +func (c *L1ClientWrapper) NonceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (uint64, error) { + return 0, nil +} + +func (c *L1ClientWrapper) TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) { + return nil, nil +} + +func (c *L1ClientWrapper) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error) { + return c.Block.Header(), nil +} + +func (c *L1ClientWrapper) BlockNumber(ctx context.Context) (uint64, error) { + return c.Block.NumberU64(), nil +} + +func (c *L1ClientWrapper) SubscribeNewHead(ctx context.Context, ch chan<- *types.Header) (ethereum.Subscription, error) { + ch <- c.Block.Header() + return nil, nil +} + +func (c *L1ClientWrapper) SetBlock(block *types.Block) { + c.Block = block +} +func (c *L1ClientWrapper) CodeAt(ctx context.Context, contract common.Address, blockNumber *big.Int) ([]byte, error) { + return nil, nil +} + +func (c *L1ClientWrapper) CallContract(ctx context.Context, call ethereum.CallMsg, blockNumber *big.Int) ([]byte, error) { + return nil, nil +} +func (c *L1ClientWrapper) PendingCodeAt(ctx context.Context, account common.Address) ([]byte, error) { + return nil, nil +} +func (c *L1ClientWrapper) PendingNonceAt(ctx context.Context, account common.Address) (uint64, error) { + return 0, nil +} +func (c *L1ClientWrapper) SuggestGasPrice(ctx context.Context) (*big.Int, error) { + return big.NewInt(0), nil +} +func (c *L1ClientWrapper) SuggestGasTipCap(ctx context.Context) (*big.Int, error) { + return c.TipCap, nil +} +func (c *L1ClientWrapper) EstimateGas(ctx context.Context, call ethereum.CallMsg) (gas uint64, err error) { + return 0, nil +} +func (c *L1ClientWrapper) SendTransaction(ctx context.Context, tx *types.Transaction) error { + return nil +} +func (c *L1ClientWrapper) FilterLogs(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) { + return nil, nil +} +func (c *L1ClientWrapper) SubscribeFilterLogs(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { + return nil, nil +} diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index c7180d3ae..272c258a6 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -864,14 +864,32 @@ func (r *Rollup) buildSignatureInput(batch *eth.RPCRollupBatch) (*bindings.IRoll } func (r *Rollup) GetGasTipAndCap() (*big.Int, *big.Int, *big.Int, error) { - tip, err := r.L1Client.SuggestGasTipCap(context.Background()) + + head, err := r.L1Client.HeaderByNumber(context.Background(), nil) if err != nil { return nil, nil, nil, err } - head, err := r.L1Client.HeaderByNumber(context.Background(), nil) + if head.BaseFee != nil { + log.Info("market fee info", "feecap", head.BaseFee) + if r.cfg.MaxBaseFee > 0 && head.BaseFee.Cmp(big.NewInt(int64(r.cfg.MaxBaseFee))) > 0 { + return nil, nil, nil, fmt.Errorf("base fee is too high, base fee %v exceeds max %v", head.BaseFee, r.cfg.MaxBaseFee) + } + } + + tip, err := r.L1Client.SuggestGasTipCap(context.Background()) if err != nil { return nil, nil, nil, err } + log.Info("market fee info", "tip", tip) + + if r.cfg.TipFeeBump > 0 { + tip = new(big.Int).Mul(tip, big.NewInt(int64(r.cfg.TipFeeBump))) + tip = new(big.Int).Div(tip, big.NewInt(100)) + } + if r.cfg.MaxTip > 0 && tip.Cmp(big.NewInt(int64(r.cfg.MaxTip))) > 0 { + return nil, nil, nil, fmt.Errorf("tip is too high, tip %v exceeds max %v", tip, r.cfg.MaxTip) + } + var gasFeeCap *big.Int if head.BaseFee != nil { gasFeeCap = new(big.Int).Add( @@ -888,15 +906,11 @@ func (r *Rollup) GetGasTipAndCap() (*big.Int, *big.Int, *big.Int, error) { blobFee = eip4844.CalcBlobFee(*head.ExcessBlobGas) } - //calldata fee bump x*fee/100 - if r.cfg.CalldataFeeBump > 0 { - // feecap - gasFeeCap = new(big.Int).Mul(gasFeeCap, big.NewInt(int64(r.cfg.CalldataFeeBump))) - gasFeeCap = new(big.Int).Div(gasFeeCap, big.NewInt(100)) - // tip - tip = new(big.Int).Mul(tip, big.NewInt(int64(r.cfg.CalldataFeeBump))) - tip = new(big.Int).Div(tip, big.NewInt(100)) - } + log.Info("fee info after bump", + "tip", tip, + "feecap", gasFeeCap, + "blobfee", blobFee, + ) return tip, gasFeeCap, blobFee, nil } @@ -1114,7 +1128,7 @@ func (r *Rollup) SendTx(tx *ethtypes.Transaction) error { return errors.New("nil tx") } // l1 health check - if !r.bm.IsGrowth() { + if r.bm != nil && !r.bm.IsGrowth() { return fmt.Errorf("block not growth in %d blocks time", r.cfg.BlockNotIncreasedThreshold) } @@ -1125,7 +1139,9 @@ func (r *Rollup) SendTx(tx *ethtypes.Transaction) error { // after send tx // add to pending txs - r.pendingTxs.Add(tx) + if r.pendingTxs != nil { + r.pendingTxs.Add(tx) + } return nil @@ -1198,6 +1214,11 @@ func (r *Rollup) ReSubmitTx(resend bool, tx *ethtypes.Transaction) (*ethtypes.Tr blobFeeCap = bumpedBlobFeeCap } } + + if r.cfg.MinTip > 0 && tip.Cmp(big.NewInt(int64(r.cfg.MinTip))) < 0 { + log.Info("replace tip is too low, update tip to min tip ", "tip", tip, "min_tip", r.cfg.MinTip) + tip = big.NewInt(int64(r.cfg.MinTip)) + } } var newTx *ethtypes.Transaction diff --git a/tx-submitter/services/rollup_test.go b/tx-submitter/services/rollup_test.go index 3476d8f8f..b8045b4ab 100644 --- a/tx-submitter/services/rollup_test.go +++ b/tx-submitter/services/rollup_test.go @@ -1,15 +1,19 @@ package services import ( + "context" "math/big" "testing" - "github.com/holiman/uint256" + "morph-l2/tx-submitter/mock" + "morph-l2/tx-submitter/utils" + "github.com/morph-l2/go-ethereum/common" "github.com/morph-l2/go-ethereum/core/types" - "github.com/stretchr/testify/require" + "github.com/morph-l2/go-ethereum/crypto" - "morph-l2/tx-submitter/utils" + "github.com/holiman/uint256" + "github.com/stretchr/testify/require" ) func TestSendTx(t *testing.T) { @@ -49,3 +53,103 @@ func TestSendTx(t *testing.T) { err = sendTx(nil, 1, blobTx) require.ErrorContains(t, err, utils.ErrExceedFeeLimit.Error()) } + +func TestGetGasTipAndCap(t *testing.T) { + l1Mock := mock.NewL1ClientWrapper() + initTip := big.NewInt(1e9) + + baseFee := big.NewInt(1e9) + excessBlobGas := uint64(1) + block := types.NewBlockWithHeader( + &types.Header{ + BaseFee: baseFee, + ExcessBlobGas: &excessBlobGas, + }, + ) + l1Mock.TipCap = initTip + l1Mock.Block = block + config := utils.Config{ + MaxTip: 10e9, + MaxBaseFee: 100e9, + MinTip: 1e9, + TipFeeBump: 100, + } + r := NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, nil, common.Address{}, nil, config, nil, nil, nil, nil, nil) + tip, feecap, blobfee, err := r.GetGasTipAndCap() + require.NoError(t, err) + require.NotNil(t, tip) + require.NotNil(t, feecap) + require.NotNil(t, blobfee) + require.Equal(t, initTip, tip) + + config = utils.Config{ + MaxTip: 10e9, + MaxBaseFee: 100e9, + MinTip: 1e9, + TipFeeBump: 200, + } + r = NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, nil, common.Address{}, nil, config, nil, nil, nil, nil, nil) + tip, feecap, blobfee, err = r.GetGasTipAndCap() + require.NoError(t, err) + require.NotNil(t, tip) + require.NotNil(t, feecap) + require.NotNil(t, blobfee) + require.Equal(t, tip, initTip.Mul(initTip, big.NewInt(2))) + + config = utils.Config{ + MaxTip: 10e9, + MaxBaseFee: baseFee.Uint64() - 1, + MinTip: 1e9, + TipFeeBump: 200, + } + r = NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, nil, common.Address{}, nil, config, nil, nil, nil, nil, nil) + _, _, _, err = r.GetGasTipAndCap() + require.ErrorContains(t, err, "base fee is too high") + + config = utils.Config{ + MaxTip: initTip.Uint64() - 1, + MaxBaseFee: 100e9, + MinTip: 1e9, + TipFeeBump: 200, + } + r = NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, nil, common.Address{}, nil, config, nil, nil, nil, nil, nil) + _, _, _, err = r.GetGasTipAndCap() + require.ErrorContains(t, err, "tip is too high") + +} + +func TestReSubmitTx(t *testing.T) { + l1Mock := mock.NewL1ClientWrapper() + initTip := big.NewInt(1e9) + + baseFee := big.NewInt(1e9) + excessBlobGas := uint64(1) + block := types.NewBlockWithHeader( + &types.Header{ + BaseFee: baseFee, + ExcessBlobGas: &excessBlobGas, + }, + ) + l1Mock.TipCap = initTip + l1Mock.Block = block + config := utils.Config{ + MaxTip: 10e12, + MaxBaseFee: 100e9, + MinTip: 1e10, + TipFeeBump: 100, + } + + priv, err := crypto.GenerateKey() + require.NoError(t, err) + + r := NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, big.NewInt(1), priv, common.Address{}, nil, config, nil, nil, nil, nil, nil) + _, err = r.ReSubmitTx(false, nil) + require.ErrorContains(t, err, "nil tx") + oldTx := types.NewTx(&types.DynamicFeeTx{ + GasTipCap: initTip, + }) + tx, err := r.ReSubmitTx(false, oldTx) + require.NoError(t, err) + require.EqualValues(t, config.MinTip, tx.GasTipCap().Uint64()) + +} diff --git a/tx-submitter/utils/config.go b/tx-submitter/utils/config.go index 30decb206..31bd9c9ea 100644 --- a/tx-submitter/utils/config.go +++ b/tx-submitter/utils/config.go @@ -82,8 +82,11 @@ type Config struct { // journal file path JournalFilePath string - // calldata fee bump - CalldataFeeBump uint64 + // tip bump + TipFeeBump uint64 + MaxTip uint64 + MinTip uint64 + MaxBaseFee uint64 //max txs in pendingpool MaxTxsInPendingPool uint64 @@ -151,9 +154,11 @@ func NewConfig(ctx *cli.Context) (Config, error) { GasLimitBuffer: ctx.GlobalUint64(flags.GasLimitBuffer.Name), - JournalFilePath: ctx.GlobalString(flags.JournalFlag.Name), - // calldata fee bump - CalldataFeeBump: ctx.GlobalUint64(flags.CalldataFeeBumpFlag.Name), + JournalFilePath: ctx.GlobalString(flags.JournalFlag.Name), + TipFeeBump: ctx.GlobalUint64(flags.TipFeeBumpFlag.Name), + MaxTip: ctx.GlobalUint64(flags.MaxTipFlag.Name), + MinTip: ctx.GlobalUint64(flags.MinTipFlag.Name), + MaxBaseFee: ctx.GlobalUint64(flags.MaxBaseFeeFlag.Name), MaxTxsInPendingPool: ctx.GlobalUint64(flags.MaxTxsInPendingPoolFlag.Name), // external sign From 85a80318a19d1f39bbdf932f2e118b30aa97e1af Mon Sep 17 00:00:00 2001 From: "arvin.sun" Date: Tue, 31 Dec 2024 11:02:03 +0800 Subject: [PATCH 070/106] update makefile and update deploy config --- MakefileEks.mk | 87 ++++++++++++++++++- contracts/src/deploy-config/qanetl1.ts | 16 ++-- .../deploy-config/qanet-deploy-config.json | 14 +-- 3 files changed, 102 insertions(+), 15 deletions(-) diff --git a/MakefileEks.mk b/MakefileEks.mk index 573c724b0..4af4d8ee0 100644 --- a/MakefileEks.mk +++ b/MakefileEks.mk @@ -6,6 +6,7 @@ LDFLAGSSTRING +=-X main.GitVersion=$(GITVERSION) LDFLAGS := -ldflags "$(LDFLAGSSTRING)" # gas-oracle +# mainnet build-bk-prod-morph-prod-mainnet-to-morph-gas-price-oracle: if [ ! -d dist ]; then mkdir -p dist; fi cd $(PWD)/gas-oracle/app && cargo build --release @@ -17,8 +18,33 @@ build-bk-prod-morph-prod-mainnet-to-morph-gas-price-oracle: start-bk-prod-morph-prod-mainnet-to-morph-gas-price-oracle: /data/secret-manager-wrapper ./app +# hoelsky +build-bk-prod-morph-prod-testnet-to-morph-gas-price-oracle-holeksy: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/gas-oracle/app && cargo build --release + cp gas-oracle/app/target/release/app dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + + +start-bk-prod-morph-prod-testnet-to-morph-gas-price-oracle-holesky: + /data/secret-manager-wrapper ./app + +# qanet +build-bk-test-morph-test-qanet-to-morph-gas-price-oracle-qanet: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/gas-oracle/app && cargo build --release + cp gas-oracle/app/target/release/app dist/ + aws s3 cp s3://morph-7637-morph-technical-department-qanet-data/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + + +start-bk-test-morph-test-qanet-to-morph-gas-price-oracle-qanet: + /data/secret-manager-wrapper ./app + # prover +# mainnet build-bk-prod-morph-prod-mainnet-to-morph-prover: if [ ! -d dist ]; then mkdir -p dist; fi cd $(PWD)/prover/bin/server && RUSTFLAGS="-C target-feature=+avx2,+avx512f" cargo build --release @@ -28,10 +54,22 @@ build-bk-prod-morph-prod-mainnet-to-morph-prover: tar -xvzf secret-manager-wrapper.tar.gz start-bk-prod-morph-prod-mainnet-to-morph-prover: - #if [ ! -d morph-prover-data/sp1-circuits ]; then aws s3 cp s3://morph-0582-morph-technical-department-mainnet-data/morph-setup/sp1-circuits morph-prover-data/; fi + /data/secret-manager-wrapper ./prover-server + +# holesky +build-bk-prod-morph-prod-testnet-to-morph-prover-holesky: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/prover/bin/server && RUSTFLAGS="-C target-feature=+avx2,+avx512f" cargo build --release + cp prover/target/release/prover-server dist/ + cp -r prover/configs dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-prod-morph-prod-testnet-to-morph-prover-holeksy: /data/secret-manager-wrapper ./prover-server # challenge-handler +# mainnet build-bk-prod-morph-prod-mainnet-to-morph-challenge-handler: if [ ! -d dist ]; then mkdir -p dist; fi cd $(PWD)/prover/bin/challenge && cargo build --release @@ -43,8 +81,20 @@ build-bk-prod-morph-prod-mainnet-to-morph-challenge-handler: start-bk-prod-morph-prod-mainnet-to-morph-challenge-handler: /data/secret-manager-wrapper ./challenge-handler +# holesky +build-bk-prod-morph-prod-testnet-to-morph-challenge-handler-holesky: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/prover/bin/challenge && cargo build --release + cp prover/bin/challenge/target/release/challenge-handler dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + + +start-bk-prod-morph-prod-testnet-to-morph-challenge-handler-holesky: + /data/secret-manager-wrapper ./challenge-handler # shadow-proving +# mainnet build-bk-prod-morph-prod-mainnet-to-morph-shadow-proving: if [ ! -d dist ]; then mkdir -p dist; fi cd $(PWD)/prover/bin/shadow-prove && cargo build --release @@ -55,6 +105,19 @@ build-bk-prod-morph-prod-mainnet-to-morph-shadow-proving: start-bk-prod-morph-prod-mainnet-to-morph-shadow-proving: /data/secret-manager-wrapper ./shadow-proving +# holesky +build-bk-prod-morph-prod-testnet-to-morph-shadow-proving-holesky: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/prover/bin/shadow-prove && cargo build --release + cp prover/bin/shadow-prove/target/release/shadow-proving dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-prod-morph-prod-testnet-to-morph-shadow-proving-holesky: + /data/secret-manager-wrapper ./shadow-proving + +# staking-oracle +# mainnet build-bk-prod-morph-prod-mainnet-to-morph-staking-oracle: if [ ! -d dist ]; then mkdir -p dist; fi env GO111MODULE=on CGO_LDFLAGS="-ldl" CGO_ENABLED=1 go build -v $(LDFLAGS) -o oracle/staking-oracle ./oracle/cmd/staking-oracle @@ -63,4 +126,26 @@ build-bk-prod-morph-prod-mainnet-to-morph-staking-oracle: tar -xvzf secret-manager-wrapper.tar.gz start-bk-prod-morph-prod-mainnet-to-morph-staking-oracle: + /data/secret-manager-wrapper ./staking-oracle + +# holesky +build-bk-prod-morph-prod-testnet-to-morph-staking-oracle-holesky: + if [ ! -d dist ]; then mkdir -p dist; fi + env GO111MODULE=on CGO_LDFLAGS="-ldl" CGO_ENABLED=1 go build -v $(LDFLAGS) -o oracle/staking-oracle ./oracle/cmd/staking-oracle + cp oracle/staking-oracle dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-prod-morph-prod-testnet-to-morph-staking-oracle-holesky: + /data/secret-manager-wrapper ./staking-oracle + +# qanet +build-bk-test-morph-test-qanet-to-morph-staking-oracle-qanet: + if [ ! -d dist ]; then mkdir -p dist; fi + env GO111MODULE=on CGO_LDFLAGS="-ldl" CGO_ENABLED=1 go build -v $(LDFLAGS) -o oracle/staking-oracle ./oracle/cmd/staking-oracle + cp oracle/staking-oracle dist/ + aws s3 cp s3://morph-7637-morph-technical-department-qanet-data/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-test-morph-test-qanet-to-morph-staking-oracle-qanet: /data/secret-manager-wrapper ./staking-oracle \ No newline at end of file diff --git a/contracts/src/deploy-config/qanetl1.ts b/contracts/src/deploy-config/qanetl1.ts index 25a9b443f..bc5b39d14 100644 --- a/contracts/src/deploy-config/qanetl1.ts +++ b/contracts/src/deploy-config/qanetl1.ts @@ -6,15 +6,17 @@ const config = { // chainID config l1ChainID: 900, l2ChainID: 53077, + l1WETHAddress: "", + l1USDCAddress: "", // L1MessageQueue config - l1MessageQueueMaxGasLimit: 30000000, + l1MessageQueueMaxGasLimit: 100000000, // gasPriceOracle config l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c', + programVkey: '0x00bc91a65e39100f3b075c9edf1a60fd1cb025b9413ea19c34c62d455e512685', // rollup contract config // initialize config finalizationPeriodSeconds: 600, @@ -24,7 +26,7 @@ const config = { rollupProposer: '0x7161aE5B767Df97BAc34e5776311Ded4Cb01691d', rollupChallenger: '0x71616250f7CAaa8a5DC295dc5851D6b1E49188a7', // genesis config - batchHeader: '', + batchHeader: '0x000000000000000000000000000000000000000000000000004b7a7ef11d2f07c3c8c9a82b6ad93c9de483bfafcc60786c30a38b8724610e45010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000d814ae9fb8e8f2c234bd9f4a388142e5597dd1da95ffdcbb2a820d1e9382b15000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', // staking config // staking Cross-Chain config @@ -38,10 +40,10 @@ const config = { stakingChallengerRewardPercentage: 50, // register sequencers l2SequencerAddresses: [ - "0x25d36d94b64165f72a817ae0ff9bad2ce6914c70", - "0x4a1f64dec538835c125874e275edca367bf6022a", - "0xbb8605961105bb3dcd0e86ef94a1bf9fb2270a29", - "0x7d7201ad7da2b9b9ab9a36c454a3c2d55c4fbdd8" + "0x675cfc328f9f2e79a51e499b2be44462270572fe", + "0xb096665645994775eeba8aa114752d569734dcb4", + "0x3a587733d38e5487d2a7e81d84625f25c99ab3a1", + "0xb6346ded94fc61b637763610d0c59846b7781080" ], l2SequencerTmKeys: [ "0x5280d0eee2a64d3ad29480d15ffd1b048ce5908f180b5ccd65cc3dcf00941abb", diff --git a/ops/l2-genesis/deploy-config/qanet-deploy-config.json b/ops/l2-genesis/deploy-config/qanet-deploy-config.json index 82ea5fcbf..af2a8f73f 100644 --- a/ops/l2-genesis/deploy-config/qanet-deploy-config.json +++ b/ops/l2-genesis/deploy-config/qanet-deploy-config.json @@ -10,12 +10,12 @@ "l1FeeVaultRecipient": "0x716170D0687c3d31CC10DebE0dAa1DDD3FE3D792", "sequencerFeeVaultRecipient": "0x716170D0687c3d31CC10DebE0dAa1DDD3FE3D792", - "l2BridgeFeeVaultRecipient": "0x716170D0687c3d31CC10DebE0dAa1DDD3FE3D792", + "l2BridgeFeeVaultRecipient": "0x530000000000000000000000000000000000000A", "fundDevAccounts": false, "l1StartingBlockTag": "earliest", - "maxTxPerBlock": 1000, - "maxTxPayloadBytesPerBlock": 122880, + "maxTxPerBlock": 10000, + "maxTxPayloadBytesPerBlock": 345000, "gasPriceOracleOverhead": 2500, "gasPriceOracleScalar": 1000000000, @@ -42,10 +42,10 @@ "l2StakingUnDelegatedLockEpochs": 2, "l2StakingRewardStartTime": 1728000000, "l2StakingAddresses": [ - "0x25d36d94b64165f72a817ae0ff9bad2ce6914c70", - "0x4a1f64dec538835c125874e275edca367bf6022a", - "0xbb8605961105bb3dcd0e86ef94a1bf9fb2270a29", - "0x7d7201ad7da2b9b9ab9a36c454a3c2d55c4fbdd8" + "0x675cfc328f9f2e79a51e499b2be44462270572fe", + "0xb096665645994775eeba8aa114752d569734dcb4", + "0x3a587733d38e5487d2a7e81d84625f25c99ab3a1", + "0xb6346ded94fc61b637763610d0c59846b7781080" ], "l2StakingTmKeys": [ "0x5280d0eee2a64d3ad29480d15ffd1b048ce5908f180b5ccd65cc3dcf00941abb", From 77ca534e29d96d889649baaaa943507a4f8d953c Mon Sep 17 00:00:00 2001 From: "arvin.sun" Date: Tue, 31 Dec 2024 11:09:34 +0800 Subject: [PATCH 071/106] update makefile and update deploy config --- contracts/src/deploy-config/qanetl1.ts | 6 +++--- ops/l2-genesis/deploy-config/qanet-deploy-config.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/contracts/src/deploy-config/qanetl1.ts b/contracts/src/deploy-config/qanetl1.ts index bc5b39d14..ea5ddab73 100644 --- a/contracts/src/deploy-config/qanetl1.ts +++ b/contracts/src/deploy-config/qanetl1.ts @@ -10,13 +10,13 @@ const config = { l1USDCAddress: "", // L1MessageQueue config - l1MessageQueueMaxGasLimit: 100000000, + l1MessageQueueMaxGasLimit: 30000000, // gasPriceOracle config l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x00bc91a65e39100f3b075c9edf1a60fd1cb025b9413ea19c34c62d455e512685', + programVkey: '0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c', // rollup contract config // initialize config finalizationPeriodSeconds: 600, @@ -26,7 +26,7 @@ const config = { rollupProposer: '0x7161aE5B767Df97BAc34e5776311Ded4Cb01691d', rollupChallenger: '0x71616250f7CAaa8a5DC295dc5851D6b1E49188a7', // genesis config - batchHeader: '0x000000000000000000000000000000000000000000000000004b7a7ef11d2f07c3c8c9a82b6ad93c9de483bfafcc60786c30a38b8724610e45010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000d814ae9fb8e8f2c234bd9f4a388142e5597dd1da95ffdcbb2a820d1e9382b15000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', + batchHeader: '', // staking config // staking Cross-Chain config diff --git a/ops/l2-genesis/deploy-config/qanet-deploy-config.json b/ops/l2-genesis/deploy-config/qanet-deploy-config.json index af2a8f73f..6bb1d033e 100644 --- a/ops/l2-genesis/deploy-config/qanet-deploy-config.json +++ b/ops/l2-genesis/deploy-config/qanet-deploy-config.json @@ -10,12 +10,12 @@ "l1FeeVaultRecipient": "0x716170D0687c3d31CC10DebE0dAa1DDD3FE3D792", "sequencerFeeVaultRecipient": "0x716170D0687c3d31CC10DebE0dAa1DDD3FE3D792", - "l2BridgeFeeVaultRecipient": "0x530000000000000000000000000000000000000A", + "l2BridgeFeeVaultRecipient": "0x716170D0687c3d31CC10DebE0dAa1DDD3FE3D792", "fundDevAccounts": false, "l1StartingBlockTag": "earliest", - "maxTxPerBlock": 10000, - "maxTxPayloadBytesPerBlock": 345000, + "maxTxPerBlock": 1000, + "maxTxPayloadBytesPerBlock": 122880, "gasPriceOracleOverhead": 2500, "gasPriceOracleScalar": 1000000000, From d83906b6807a87318e37d85f05adfc747ec0d124 Mon Sep 17 00:00:00 2001 From: "arvin.sun" Date: Tue, 31 Dec 2024 11:36:59 +0800 Subject: [PATCH 072/106] update makefile and update deploy config --- MakefileEks.mk | 57 -------------------------------------------------- 1 file changed, 57 deletions(-) diff --git a/MakefileEks.mk b/MakefileEks.mk index 4af4d8ee0..06cf9aba7 100644 --- a/MakefileEks.mk +++ b/MakefileEks.mk @@ -18,17 +18,6 @@ build-bk-prod-morph-prod-mainnet-to-morph-gas-price-oracle: start-bk-prod-morph-prod-mainnet-to-morph-gas-price-oracle: /data/secret-manager-wrapper ./app -# hoelsky -build-bk-prod-morph-prod-testnet-to-morph-gas-price-oracle-holeksy: - if [ ! -d dist ]; then mkdir -p dist; fi - cd $(PWD)/gas-oracle/app && cargo build --release - cp gas-oracle/app/target/release/app dist/ - aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ - tar -xvzf secret-manager-wrapper.tar.gz - - -start-bk-prod-morph-prod-testnet-to-morph-gas-price-oracle-holesky: - /data/secret-manager-wrapper ./app # qanet build-bk-test-morph-test-qanet-to-morph-gas-price-oracle-qanet: @@ -56,18 +45,6 @@ build-bk-prod-morph-prod-mainnet-to-morph-prover: start-bk-prod-morph-prod-mainnet-to-morph-prover: /data/secret-manager-wrapper ./prover-server -# holesky -build-bk-prod-morph-prod-testnet-to-morph-prover-holesky: - if [ ! -d dist ]; then mkdir -p dist; fi - cd $(PWD)/prover/bin/server && RUSTFLAGS="-C target-feature=+avx2,+avx512f" cargo build --release - cp prover/target/release/prover-server dist/ - cp -r prover/configs dist/ - aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ - tar -xvzf secret-manager-wrapper.tar.gz - -start-bk-prod-morph-prod-testnet-to-morph-prover-holeksy: - /data/secret-manager-wrapper ./prover-server - # challenge-handler # mainnet build-bk-prod-morph-prod-mainnet-to-morph-challenge-handler: @@ -81,18 +58,6 @@ build-bk-prod-morph-prod-mainnet-to-morph-challenge-handler: start-bk-prod-morph-prod-mainnet-to-morph-challenge-handler: /data/secret-manager-wrapper ./challenge-handler -# holesky -build-bk-prod-morph-prod-testnet-to-morph-challenge-handler-holesky: - if [ ! -d dist ]; then mkdir -p dist; fi - cd $(PWD)/prover/bin/challenge && cargo build --release - cp prover/bin/challenge/target/release/challenge-handler dist/ - aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ - tar -xvzf secret-manager-wrapper.tar.gz - - -start-bk-prod-morph-prod-testnet-to-morph-challenge-handler-holesky: - /data/secret-manager-wrapper ./challenge-handler - # shadow-proving # mainnet build-bk-prod-morph-prod-mainnet-to-morph-shadow-proving: @@ -105,17 +70,6 @@ build-bk-prod-morph-prod-mainnet-to-morph-shadow-proving: start-bk-prod-morph-prod-mainnet-to-morph-shadow-proving: /data/secret-manager-wrapper ./shadow-proving -# holesky -build-bk-prod-morph-prod-testnet-to-morph-shadow-proving-holesky: - if [ ! -d dist ]; then mkdir -p dist; fi - cd $(PWD)/prover/bin/shadow-prove && cargo build --release - cp prover/bin/shadow-prove/target/release/shadow-proving dist/ - aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ - tar -xvzf secret-manager-wrapper.tar.gz - -start-bk-prod-morph-prod-testnet-to-morph-shadow-proving-holesky: - /data/secret-manager-wrapper ./shadow-proving - # staking-oracle # mainnet build-bk-prod-morph-prod-mainnet-to-morph-staking-oracle: @@ -128,17 +82,6 @@ build-bk-prod-morph-prod-mainnet-to-morph-staking-oracle: start-bk-prod-morph-prod-mainnet-to-morph-staking-oracle: /data/secret-manager-wrapper ./staking-oracle -# holesky -build-bk-prod-morph-prod-testnet-to-morph-staking-oracle-holesky: - if [ ! -d dist ]; then mkdir -p dist; fi - env GO111MODULE=on CGO_LDFLAGS="-ldl" CGO_ENABLED=1 go build -v $(LDFLAGS) -o oracle/staking-oracle ./oracle/cmd/staking-oracle - cp oracle/staking-oracle dist/ - aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ - tar -xvzf secret-manager-wrapper.tar.gz - -start-bk-prod-morph-prod-testnet-to-morph-staking-oracle-holesky: - /data/secret-manager-wrapper ./staking-oracle - # qanet build-bk-test-morph-test-qanet-to-morph-staking-oracle-qanet: if [ ! -d dist ]; then mkdir -p dist; fi From 6212d32430544ac83d83c035605231fd7664a390 Mon Sep 17 00:00:00 2001 From: Muluken Date: Mon, 6 Jan 2025 10:14:54 +0300 Subject: [PATCH 073/106] fix: Add return value checks for ERC20 transfers in L2Staking This commit adds explicit checks for the return values of ERC20 transfer and transferFrom operations in the L2Staking contract. While the contract already verified balance changes, it didn't check if the initial transfer succeeded. - Add require statement to check transfer() return value - Add require statement to check transferFrom() return value - Improve error messages to be more specific - Maintain existing balance difference checks as additional safety This change follows ERC20 best practices and prevents potential issues with tokens that don't revert on failed transfers. --- contracts/contracts/l2/staking/L2Staking.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/contracts/l2/staking/L2Staking.sol b/contracts/contracts/l2/staking/L2Staking.sol index 72daad1e9..38b1671b1 100644 --- a/contracts/contracts/l2/staking/L2Staking.sol +++ b/contracts/contracts/l2/staking/L2Staking.sol @@ -604,7 +604,7 @@ contract L2Staking is IL2Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp /// @notice transfer morph token function _transfer(address _to, uint256 _amount) internal { uint256 balanceBefore = IMorphToken(MORPH_TOKEN_CONTRACT).balanceOf(_to); - IMorphToken(MORPH_TOKEN_CONTRACT).transfer(_to, _amount); + require(IMorphToken(MORPH_TOKEN_CONTRACT).transfer(_to, _amount), "transfer failed"); uint256 balanceAfter = IMorphToken(MORPH_TOKEN_CONTRACT).balanceOf(_to); require(_amount > 0 && balanceAfter - balanceBefore == _amount, "morph token transfer failed"); } @@ -612,7 +612,7 @@ contract L2Staking is IL2Staking, Staking, OwnableUpgradeable, ReentrancyGuardUp /// @notice transfer morph token from function _transferFrom(address _from, address _to, uint256 _amount) internal { uint256 balanceBefore = IMorphToken(MORPH_TOKEN_CONTRACT).balanceOf(_to); - IMorphToken(MORPH_TOKEN_CONTRACT).transferFrom(_from, _to, _amount); + require(IMorphToken(MORPH_TOKEN_CONTRACT).transferFrom(_from, _to, _amount), "transferFrom failed"); uint256 balanceAfter = IMorphToken(MORPH_TOKEN_CONTRACT).balanceOf(_to); require(_amount > 0 && balanceAfter - balanceBefore == _amount, "morph token transfer failed"); } From 39b8dfd19615296e576402b534f7173942192587 Mon Sep 17 00:00:00 2001 From: vincent Date: Thu, 9 Jan 2025 14:28:46 +0800 Subject: [PATCH 074/106] fix verifier upgrade task (#708) Co-authored-by: chengwenxi <22697326+chengwenxi@users.noreply.github.com> --- contracts/tasks/verifier_upgrade.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/contracts/tasks/verifier_upgrade.ts b/contracts/tasks/verifier_upgrade.ts index 06bb8974d..94ba46b01 100644 --- a/contracts/tasks/verifier_upgrade.ts +++ b/contracts/tasks/verifier_upgrade.ts @@ -5,11 +5,11 @@ import "@nomiclabs/hardhat-waffle"; import { task } from "hardhat/config"; import { ContractFactoryName } from "../src/types"; -// yarn hardhat upgradeVerifier --rollupVersion 0 --startBatchIndex 0 --multipleVersionRollupVerifier 0x0165878a594ca255338adfa4d48449f69242eb8f --network l1 +// yarn hardhat upgradeVerifier --rollupversion 0 --startbatchindex 0 --multipleversionrollupverifier 0x0165878a594ca255338adfa4d48449f69242eb8f --network l1 task("upgradeVerifier") - .addParam("rollupVersion") - .addParam("startBatchIndex") - .addParam("multipleVersionRollupVerifier") + .addParam("rollupversion") + .addParam("startbatchindex") + .addParam("multipleversionrollupverifier") .setAction(async (taskArgs, hre) => { const config = hre.deployConfig @@ -25,9 +25,9 @@ task("upgradeVerifier") // add verifier to MultipleVersionRollupVerifier const MultipleVersionRollupVerifierFactoryName = ContractFactoryName.MultipleVersionRollupVerifier const MultipleVersionRollupVerifierFactory = await hre.ethers.getContractFactory(MultipleVersionRollupVerifierFactoryName) - const MultipleVersionRollupVerifier = MultipleVersionRollupVerifierFactory.attach(taskArgs.multipleVersionRollupVerifier) + const MultipleVersionRollupVerifier = MultipleVersionRollupVerifierFactory.attach(taskArgs.multipleversionrollupverifier) - const res = await MultipleVersionRollupVerifier.updateVerifier(taskArgs.rollupVersion, taskArgs.startBatchIndex, contract.address.toLocaleLowerCase()) + const res = await MultipleVersionRollupVerifier.updateVerifier(taskArgs.rollupversion, taskArgs.startbatchindex, contract.address.toLocaleLowerCase()) const receipt = await res.wait() console.log(`receipt status : ${receipt.status}`) From 57fd0a52c54c74d9eec4b6379dc0f7f12b50a0f8 Mon Sep 17 00:00:00 2001 From: kukoo Date: Mon, 13 Jan 2025 16:39:50 +0800 Subject: [PATCH 075/106] [Lido Audit OZ]: Lido Audit Fix (#698) Co-authored-by: JOMOKING <83915728+RedHorse823@users.noreply.github.com> Co-authored-by: vincent --- bindings/bin/l1lidogateway_deployed.hex | 2 +- bindings/bin/l2lidogateway_deployed.hex | 2 +- bindings/bin/l2wstethtoken_deployed.hex | 2 +- bindings/bindings/l1lidogateway.go | 4 +- bindings/bindings/l1lidogateway_more.go | 2 +- bindings/bindings/l2lidogateway.go | 4 +- bindings/bindings/l2lidogateway_more.go | 2 +- bindings/bindings/l2wstethtoken.go | 4 +- bindings/bindings/l2wstethtoken_more.go | 2 +- contracts/contracts/lido/L1LidoGateway.sol | 13 +- contracts/contracts/lido/L2LidoGateway.sol | 15 ++- contracts/contracts/lido/L2WstETHToken.sol | 25 +++- .../contracts/lido/LidoBridgeableTokens.sol | 6 + .../contracts/lido/LidoGatewayManager.sol | 5 +- contracts/contracts/lido/README.md | 112 ++++++++++++++++++ 15 files changed, 172 insertions(+), 28 deletions(-) create mode 100644 contracts/contracts/lido/README.md diff --git a/bindings/bin/l1lidogateway_deployed.hex b/bindings/bin/l1lidogateway_deployed.hex index 6033c4702..16f3a6fac 100644 --- a/bindings/bin/l1lidogateway_deployed.hex +++ b/bindings/bin/l1lidogateway_deployed.hex @@ -1 +1 @@ -0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063d547741f11610092578063f27ebced11610062578063f27ebced14610574578063f2fde38b14610593578063f887ea40146105b2578063fadcc54a146105d1575f80fd5b8063d547741f146104fb578063e3b523e31461051a578063e8bac93b1461054d578063f219fa6614610561575f80fd5b8063c01e1bd6116100cd578063c01e1bd61461046b578063c0c53b8b1461049e578063c676ad29146104bd578063ca15c873146104dc575f80fd5b80639010d07c1461040557806391d1485414610424578063ac67e1af14610443578063ad960ce114610457575f80fd5b80635e4c57a411610173578063797594b011610143578063797594b01461038357806384bd13b0146103a25780638d7601c0146103b55780638da5cb5b146103e8575f80fd5b80635e4c57a4146102df5780635ed2c220146102f35780636f18bd221461032e578063715018a61461036f575f80fd5b80632f2ff15d116101ae5780632f2ff15d1461020f5780633cb747bf1461022e57806356eff2671461026a5780635777bf501461029d575f80fd5b80630aea8c26146101d457806314298c51146101e957806321425ee0146101fc575b5f80fd5b6101e76101e23660046129e2565b610604565b005b6101e76101f7366004612a96565b610618565b6101e761020a366004612ad5565b61089d565b34801561021a575f80fd5b506101e7610229366004612b07565b6108d6565b348015610239575f80fd5b5060995461024d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610275575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102a8575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610261565b3480156102ea575f80fd5b506101e76108ec565b3480156102fe575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102cf565b348015610339575f80fd5b506103617f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610261565b34801561037a575f80fd5b506101e7610a1e565b34801561038e575f80fd5b5060975461024d906001600160a01b031681565b6101e76103b0366004612b35565b610a31565b3480156103c0575f80fd5b506103617f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103f3575f80fd5b506065546001600160a01b031661024d565b348015610410575f80fd5b5061024d61041f366004612bc7565b610c21565b34801561042f575f80fd5b506102cf61043e366004612b07565b610c60565b34801561044e575f80fd5b506101e7610c96565b348015610462575f80fd5b506101e7610dc4565b348015610476575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a9575f80fd5b506101e76104b8366004612be7565b610eda565b3480156104c8575f80fd5b5061024d6104d7366004612c2f565b611018565b3480156104e7575f80fd5b506103616104f6366004612c51565b6110ad565b348015610506575f80fd5b506101e7610515366004612b07565b6110e2565b348015610525575f80fd5b506103617f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610558575f80fd5b506101e76110f4565b6101e761056f366004612c68565b61120f565b34801561057f575f80fd5b506101e761058e366004612cab565b61121b565b34801561059e575f80fd5b506101e76105ad366004612c2f565b611330565b3480156105bd575f80fd5b5060985461024d906001600160a01b031681565b3480156105dc575f80fd5b506103617f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b61061185858585856113c0565b5050505050565b6099546001600160a01b03163381146106785760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190612d04565b6001600160a01b0316736f297c61b5c92ef107ffd30cd56affe5a273e8416001600160a01b03161461074c5760405162461bcd60e51b815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e746578740000000000604482015260640161066f565b610754611780565b7f8431f5c10000000000000000000000000000000000000000000000000000000061078260045f8587612d1f565b61078b91612d46565b7fffffffff0000000000000000000000000000000000000000000000000000000016146107fa5760405162461bcd60e51b815260206004820152601060248201527f696e76616c69642073656c6563746f7200000000000000000000000000000000604482015260640161066f565b5f808061080a8560048189612d1f565b8101906108179190612d8e565b50945050935050925061082b8383836117d9565b61083f6001600160a01b038416838361187d565b816001600160a01b0316836001600160a01b03167fdbdf8eb487847e4c0f22847f5dac07f2d3690f96f581a6ae4b102769917645a88360405161088491815260200190565b60405180910390a350505061089860018055565b505050565b6108988333845f5b6040519080825280601f01601f1916602001820160405280156108cf576020820181803683370190505b50856113c0565b6108de61192c565b6108e88282611986565b5050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610948576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109727f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c60565b6109a8576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b610a2661192c565b610a2f5f6119fc565b565b6099546001600160a01b0316338114610a8c5760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c000000000000000000604482015260640161066f565b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aec9190612d04565b6097546001600160a01b03908116911614610b495760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e746572706172740000000000000000604482015260640161066f565b610b51611780565b610b6088888888888888611a65565b610b746001600160a01b038916868661187d565b610bb38584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611be092505050565b856001600160a01b0316876001600160a01b0316896001600160a01b03167fc6f985873b37805705f6bce756dce3d1ff4b603e298d506288cce499926846a788888888604051610c069493929190612e19565b60405180910390a4610c1760018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c74565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c7f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610cf1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c60565b610d51576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e24576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c60565b610e84576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ef857505f54600160ff909116105b80610f115750303b158015610f1157505f5460ff166001145b610f835760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fc2575f805461ff0019166101001790555b610fcd848484611ca0565b8015611012575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611085576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c5a90611de3565b6110ea61192c565b6108e88282611dec565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611155576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117f7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c60565b6111b5576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b6110128484845f6108a5565b5f54600290610100900460ff1615801561123b57505f5460ff8083169116105b6112ad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112e985858585611e62565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b61133861192c565b6001600160a01b0381166113b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161066f565b6113bd816119fc565b50565b6113c8611780565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611434576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611475576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff166114d0576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f03611509576040517f14fc8bd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611515888787612043565b8051919850965090915015611556576040517fb286dd6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f887f0000000000000000000000000000000000000000000000000000000000000000838a8a8a60405160240161159296959493929190612eab565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8431f5c10000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa15801561164b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166f9190612ef8565b6099546097546040517f5f7b15770000000000000000000000000000000000000000000000000000000081529293506001600160a01b0391821692635f7b15779234926116c9929116905f9088908d908b90600401612f0f565b5f604051808303818588803b1580156116e0575f80fd5b505af11580156116f2573d5f803e3d5ffd5b5050505050826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168b6001600160a01b03167f1a6c38816de45937fd5cd974f9694fe10e64163ba12a92abf0f4b6b23ad886728c8c8c8760405161176a9493929190612f51565b60405180910390a4505050505061061160018055565b6002600154036117d25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161066f565b6002600155565b827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611845576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611012576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b0383166024820152604481018290526108989084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612299565b60018055565b6065546001600160a01b03163314610a2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161066f565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206119bc908261237f565b156108e85760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611ad1576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611b3d576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611b9d576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611bd5576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b5f8151118015611bf957505f826001600160a01b03163b115b156108e8576040517f444b281f0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063444b281f90611c43908490600401612f89565b5f604051808303815f87803b158015611c5a575f80fd5b505af1158015611c6c573d5f803e3d5ffd5b505050505050565b5f610c578383612393565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6001600160a01b038316611cf65760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e7465727061727420616464726573730000000000000000604482015260640161066f565b6001600160a01b038116611d4c5760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e676572206164647265737300000000000000000000604482015260640161066f565b611d546123b9565b611d5c61243d565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561089857609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c5a825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611e2290826124c1565b156108e85760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611ede5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611f663390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611fc57f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a86611986565b611fef7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d685611986565b6120197f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d84611986565b6106117f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c83611986565b6098545f908190606090339081906001600160a01b031681900361211357858060200190518101906120759190612f9b565b6040517fc52a3bbc0000000000000000000000000000000000000000000000000000000081526001600160a01b0380841660048301528b81166024830152604482018b905291985091925083169063c52a3bbc906064016020604051808303815f875af11580156120e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061210c9190612ef8565b965061223d565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612170573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121949190612ef8565b90506121ab6001600160a01b038a1683308b6124d5565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038b16906370a0823190602401602060405180830381865afa158015612208573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061222c9190612ef8565b90506122388282613023565b985050505b5f871161228c5760405162461bcd60e51b815260206004820152601360248201527f6465706f736974207a65726f20616d6f756e7400000000000000000000000000604482015260640161066f565b9795965093949350505050565b5f6122ed826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166125269092919063ffffffff16565b905080515f148061230d57508080602001905181019061230d919061305b565b6108985760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161066f565b5f610c57836001600160a01b03841661253c565b5f825f0182815481106123a8576123a861307a565b905f5260205f200154905092915050565b5f54610100900460ff166124355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f612588565b5f54610100900460ff166124b95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f612604565b5f610c57836001600160a01b038416612689565b6040516001600160a01b03808516602483015283166044820152606481018290526110129085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016118c2565b606061253484845f8561276c565b949350505050565b5f81815260018301602052604081205461258157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c5a565b505f610c5a565b5f54610100900460ff166119265760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b5f54610100900460ff166126805760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f336119fc565b5f8181526001830160205260408120548015612763575f6126ab600183613023565b85549091505f906126be90600190613023565b905081811461271d575f865f0182815481106126dc576126dc61307a565b905f5260205f200154905080875f0184815481106126fc576126fc61307a565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061272e5761272e6130a7565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c5a565b5f915050610c5a565b6060824710156127e45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161066f565b5f80866001600160a01b031685876040516127ff91906130d4565b5f6040518083038185875af1925050503d805f8114612839576040519150601f19603f3d011682016040523d82523d5f602084013e61283e565b606091505b509150915061284f8783838761285a565b979650505050505050565b606083156128c85782515f036128c1576001600160a01b0385163b6128c15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161066f565b5081612534565b61253483838151156128dd5781518083602001fd5b8060405162461bcd60e51b815260040161066f9190612f89565b6001600160a01b03811681146113bd575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156129615761296161290b565b604052919050565b5f67ffffffffffffffff8211156129825761298261290b565b50601f01601f191660200190565b5f82601f83011261299f575f80fd5b81356129b26129ad82612969565b612938565b8181528460208386010111156129c6575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a086880312156129f6575f80fd5b8535612a01816128f7565b94506020860135612a11816128f7565b935060408601359250606086013567ffffffffffffffff811115612a33575f80fd5b612a3f88828901612990565b95989497509295608001359392505050565b5f8083601f840112612a61575f80fd5b50813567ffffffffffffffff811115612a78575f80fd5b602083019150836020828501011115612a8f575f80fd5b9250929050565b5f8060208385031215612aa7575f80fd5b823567ffffffffffffffff811115612abd575f80fd5b612ac985828601612a51565b90969095509350505050565b5f805f60608486031215612ae7575f80fd5b8335612af2816128f7565b95602085013595506040909401359392505050565b5f8060408385031215612b18575f80fd5b823591506020830135612b2a816128f7565b809150509250929050565b5f805f805f805f60c0888a031215612b4b575f80fd5b8735612b56816128f7565b96506020880135612b66816128f7565b95506040880135612b76816128f7565b94506060880135612b86816128f7565b93506080880135925060a088013567ffffffffffffffff811115612ba8575f80fd5b612bb48a828b01612a51565b989b979a50959850939692959293505050565b5f8060408385031215612bd8575f80fd5b50508035926020909101359150565b5f805f60608486031215612bf9575f80fd5b8335612c04816128f7565b92506020840135612c14816128f7565b91506040840135612c24816128f7565b809150509250925092565b5f60208284031215612c3f575f80fd5b8135612c4a816128f7565b9392505050565b5f60208284031215612c61575f80fd5b5035919050565b5f805f8060808587031215612c7b575f80fd5b8435612c86816128f7565b93506020850135612c96816128f7565b93969395505050506040820135916060013590565b5f805f8060808587031215612cbe575f80fd5b8435612cc9816128f7565b93506020850135612cd9816128f7565b92506040850135612ce9816128f7565b91506060850135612cf9816128f7565b939692955090935050565b5f60208284031215612d14575f80fd5b8151612c4a816128f7565b5f8085851115612d2d575f80fd5b83861115612d39575f80fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015612d865780818660040360031b1b83161692505b505092915050565b5f805f805f8060c08789031215612da3575f80fd5b8635612dae816128f7565b95506020870135612dbe816128f7565b94506040870135612dce816128f7565b93506060870135612dde816128f7565b92506080870135915060a087013567ffffffffffffffff811115612e00575f80fd5b612e0c89828a01612990565b9150509295509295509295565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f5b83811015612e78578181015183820152602001612e60565b50505f910152565b5f8151808452612e97816020860160208601612e5e565b601f01601f19169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612eec60c0830184612e80565b98975050505050505050565b5f60208284031215612f08575f80fd5b5051919050565b5f6001600160a01b03808816835286602084015260a06040840152612f3760a0840187612e80565b606084019590955292909216608090910152509392505050565b6001600160a01b0385168152836020820152608060408201525f612f786080830185612e80565b905082606083015295945050505050565b602081525f610c576020830184612e80565b5f8060408385031215612fac575f80fd5b8251612fb7816128f7565b602084015190925067ffffffffffffffff811115612fd3575f80fd5b8301601f81018513612fe3575f80fd5b8051612ff16129ad82612969565b818152866020838501011115613005575f80fd5b613016826020830160208601612e5e565b8093505050509250929050565b81810381811115610c5a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6020828403121561306b575f80fd5b81518015158114612c4a575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82516130e5818460208701612e5e565b919091019291505056fea164736f6c6343000818000a +0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063d547741f11610092578063f27ebced11610062578063f27ebced14610574578063f2fde38b14610593578063f887ea40146105b2578063fadcc54a146105d1575f80fd5b8063d547741f146104fb578063e3b523e31461051a578063e8bac93b1461054d578063f219fa6614610561575f80fd5b8063c01e1bd6116100cd578063c01e1bd61461046b578063c0c53b8b1461049e578063c676ad29146104bd578063ca15c873146104dc575f80fd5b80639010d07c1461040557806391d1485414610424578063ac67e1af14610443578063ad960ce114610457575f80fd5b80635e4c57a411610173578063797594b011610143578063797594b01461038357806384bd13b0146103a25780638d7601c0146103b55780638da5cb5b146103e8575f80fd5b80635e4c57a4146102df5780635ed2c220146102f35780636f18bd221461032e578063715018a61461036f575f80fd5b80632f2ff15d116101ae5780632f2ff15d1461020f5780633cb747bf1461022e57806356eff2671461026a5780635777bf501461029d575f80fd5b80630aea8c26146101d457806314298c51146101e957806321425ee0146101fc575b5f80fd5b6101e76101e23660046129c6565b610604565b005b6101e76101f7366004612a7a565b610618565b6101e761020a366004612ab9565b61089d565b34801561021a575f80fd5b506101e7610229366004612aeb565b6108d6565b348015610239575f80fd5b5060995461024d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610275575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102a8575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610261565b3480156102ea575f80fd5b506101e76108ec565b3480156102fe575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102cf565b348015610339575f80fd5b506103617f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610261565b34801561037a575f80fd5b506101e7610a1e565b34801561038e575f80fd5b5060975461024d906001600160a01b031681565b6101e76103b0366004612b19565b610a31565b3480156103c0575f80fd5b506103617f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103f3575f80fd5b506065546001600160a01b031661024d565b348015610410575f80fd5b5061024d61041f366004612bab565b610c21565b34801561042f575f80fd5b506102cf61043e366004612aeb565b610c60565b34801561044e575f80fd5b506101e7610c96565b348015610462575f80fd5b506101e7610dc4565b348015610476575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a9575f80fd5b506101e76104b8366004612bcb565b610eda565b3480156104c8575f80fd5b5061024d6104d7366004612c13565b611018565b3480156104e7575f80fd5b506103616104f6366004612c35565b6110ad565b348015610506575f80fd5b506101e7610515366004612aeb565b6110e2565b348015610525575f80fd5b506103617f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610558575f80fd5b506101e76110f4565b6101e761056f366004612c4c565b61120f565b34801561057f575f80fd5b506101e761058e366004612c8f565b61121b565b34801561059e575f80fd5b506101e76105ad366004612c13565b611330565b3480156105bd575f80fd5b5060985461024d906001600160a01b031681565b3480156105dc575f80fd5b506103617f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b61061185858585856113c0565b5050505050565b6099546001600160a01b03163381146106785760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190612ce8565b6001600160a01b0316736f297c61b5c92ef107ffd30cd56affe5a273e8416001600160a01b03161461074c5760405162461bcd60e51b815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e746578740000000000604482015260640161066f565b610754611764565b7f8431f5c10000000000000000000000000000000000000000000000000000000061078260045f8587612d03565b61078b91612d2a565b7fffffffff0000000000000000000000000000000000000000000000000000000016146107fa5760405162461bcd60e51b815260206004820152601060248201527f696e76616c69642073656c6563746f7200000000000000000000000000000000604482015260640161066f565b5f808061080a8560048189612d03565b8101906108179190612d72565b50945050935050925061082b8383836117bd565b61083f6001600160a01b0384168383611861565b816001600160a01b0316836001600160a01b03167fdbdf8eb487847e4c0f22847f5dac07f2d3690f96f581a6ae4b102769917645a88360405161088491815260200190565b60405180910390a350505061089860018055565b505050565b6108988333845f5b6040519080825280601f01601f1916602001820160405280156108cf576020820181803683370190505b50856113c0565b6108de611910565b6108e8828261196a565b5050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610948576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109727f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c60565b6109a8576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b610a26611910565b610a2f5f6119e0565b565b6099546001600160a01b0316338114610a8c5760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c000000000000000000604482015260640161066f565b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aec9190612ce8565b6097546001600160a01b03908116911614610b495760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e746572706172740000000000000000604482015260640161066f565b610b51611764565b610b6088888888888888611a49565b610b746001600160a01b0389168686611861565b610bb38584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611bc492505050565b856001600160a01b0316876001600160a01b0316896001600160a01b03167fc6f985873b37805705f6bce756dce3d1ff4b603e298d506288cce499926846a788888888604051610c069493929190612dfd565b60405180910390a4610c1760018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c58565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c63565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610cf1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c60565b610d51576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e24576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c60565b610e84576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ef857505f54600160ff909116105b80610f115750303b158015610f1157505f5460ff166001145b610f835760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fc2575f805461ff0019166101001790555b610fcd848484611c84565b8015611012575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611085576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c5a90611dc7565b6110ea611910565b6108e88282611dd0565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611155576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117f7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c60565b6111b5576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b6110128484845f6108a5565b5f54600290610100900460ff1615801561123b57505f5460ff8083169116105b6112ad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112e985858585611e46565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b611338611910565b6001600160a01b0381166113b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161066f565b6113bd816119e0565b50565b6113c8611764565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611434576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611475576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff166114d0576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f03611509576040517f14fc8bd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611515888787612027565b8051919850965090915015611556576040517fb286dd6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0000000000000000000000000000000000000000000000000000000000000000905f90611595908b90849086908d908d908d90602401612e8f565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8431f5c10000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa15801561164e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116729190612edc565b6099546097546040517f5f7b15770000000000000000000000000000000000000000000000000000000081529293506001600160a01b0391821692635f7b15779234926116cc929116905f9088908e908c90600401612ef3565b5f604051808303818588803b1580156116e3575f80fd5b505af11580156116f5573d5f803e3d5ffd5b5050505050836001600160a01b0316836001600160a01b03168c6001600160a01b03167f1a6c38816de45937fd5cd974f9694fe10e64163ba12a92abf0f4b6b23ad886728d8d8d8760405161174d9493929190612f35565b60405180910390a450505050505061061160018055565b6002600154036117b65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161066f565b6002600155565b827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611829576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611012576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b0383166024820152604481018290526108989084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261227d565b60018055565b6065546001600160a01b03163314610a2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161066f565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206119a09082612363565b156108e85760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611ab5576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611b21576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611b81576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611bb9576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b5f8151118015611bdd57505f826001600160a01b03163b115b156108e8576040517f444b281f0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063444b281f90611c27908490600401612f6d565b5f604051808303815f87803b158015611c3e575f80fd5b505af1158015611c50573d5f803e3d5ffd5b505050505050565b5f610c578383612377565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6001600160a01b038316611cda5760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e7465727061727420616464726573730000000000000000604482015260640161066f565b6001600160a01b038116611d305760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e676572206164647265737300000000000000000000604482015260640161066f565b611d3861239d565b611d40612421565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561089857609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c5a825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611e0690826124a5565b156108e85760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611ec25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611f4a3390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611fa97f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a8661196a565b611fd37f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d68561196a565b611ffd7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d8461196a565b6106117f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c8361196a565b6098545f908190606090339081906001600160a01b03168190036120f757858060200190518101906120599190612f7f565b6040517fc52a3bbc0000000000000000000000000000000000000000000000000000000081526001600160a01b0380841660048301528b81166024830152604482018b905291985091925083169063c52a3bbc906064016020604051808303815f875af11580156120cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120f09190612edc565b9650612221565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612154573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121789190612edc565b905061218f6001600160a01b038a1683308b6124b9565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038b16906370a0823190602401602060405180830381865afa1580156121ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122109190612edc565b905061221c8282613007565b985050505b5f87116122705760405162461bcd60e51b815260206004820152601360248201527f6465706f736974207a65726f20616d6f756e7400000000000000000000000000604482015260640161066f565b9795965093949350505050565b5f6122d1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661250a9092919063ffffffff16565b905080515f14806122f15750808060200190518101906122f1919061303f565b6108985760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161066f565b5f610c57836001600160a01b038416612520565b5f825f01828154811061238c5761238c61305e565b905f5260205f200154905092915050565b5f54610100900460ff166124195760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f61256c565b5f54610100900460ff1661249d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f6125e8565b5f610c57836001600160a01b03841661266d565b6040516001600160a01b03808516602483015283166044820152606481018290526110129085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016118a6565b606061251884845f85612750565b949350505050565b5f81815260018301602052604081205461256557508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c5a565b505f610c5a565b5f54610100900460ff1661190a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b5f54610100900460ff166126645760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f336119e0565b5f8181526001830160205260408120548015612747575f61268f600183613007565b85549091505f906126a290600190613007565b9050818114612701575f865f0182815481106126c0576126c061305e565b905f5260205f200154905080875f0184815481106126e0576126e061305e565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806127125761271261308b565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c5a565b5f915050610c5a565b6060824710156127c85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161066f565b5f80866001600160a01b031685876040516127e391906130b8565b5f6040518083038185875af1925050503d805f811461281d576040519150601f19603f3d011682016040523d82523d5f602084013e612822565b606091505b50915091506128338783838761283e565b979650505050505050565b606083156128ac5782515f036128a5576001600160a01b0385163b6128a55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161066f565b5081612518565b61251883838151156128c15781518083602001fd5b8060405162461bcd60e51b815260040161066f9190612f6d565b6001600160a01b03811681146113bd575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612945576129456128ef565b604052919050565b5f67ffffffffffffffff821115612966576129666128ef565b50601f01601f191660200190565b5f82601f830112612983575f80fd5b81356129966129918261294d565b61291c565b8181528460208386010111156129aa575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a086880312156129da575f80fd5b85356129e5816128db565b945060208601356129f5816128db565b935060408601359250606086013567ffffffffffffffff811115612a17575f80fd5b612a2388828901612974565b95989497509295608001359392505050565b5f8083601f840112612a45575f80fd5b50813567ffffffffffffffff811115612a5c575f80fd5b602083019150836020828501011115612a73575f80fd5b9250929050565b5f8060208385031215612a8b575f80fd5b823567ffffffffffffffff811115612aa1575f80fd5b612aad85828601612a35565b90969095509350505050565b5f805f60608486031215612acb575f80fd5b8335612ad6816128db565b95602085013595506040909401359392505050565b5f8060408385031215612afc575f80fd5b823591506020830135612b0e816128db565b809150509250929050565b5f805f805f805f60c0888a031215612b2f575f80fd5b8735612b3a816128db565b96506020880135612b4a816128db565b95506040880135612b5a816128db565b94506060880135612b6a816128db565b93506080880135925060a088013567ffffffffffffffff811115612b8c575f80fd5b612b988a828b01612a35565b989b979a50959850939692959293505050565b5f8060408385031215612bbc575f80fd5b50508035926020909101359150565b5f805f60608486031215612bdd575f80fd5b8335612be8816128db565b92506020840135612bf8816128db565b91506040840135612c08816128db565b809150509250925092565b5f60208284031215612c23575f80fd5b8135612c2e816128db565b9392505050565b5f60208284031215612c45575f80fd5b5035919050565b5f805f8060808587031215612c5f575f80fd5b8435612c6a816128db565b93506020850135612c7a816128db565b93969395505050506040820135916060013590565b5f805f8060808587031215612ca2575f80fd5b8435612cad816128db565b93506020850135612cbd816128db565b92506040850135612ccd816128db565b91506060850135612cdd816128db565b939692955090935050565b5f60208284031215612cf8575f80fd5b8151612c2e816128db565b5f8085851115612d11575f80fd5b83861115612d1d575f80fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015612d6a5780818660040360031b1b83161692505b505092915050565b5f805f805f8060c08789031215612d87575f80fd5b8635612d92816128db565b95506020870135612da2816128db565b94506040870135612db2816128db565b93506060870135612dc2816128db565b92506080870135915060a087013567ffffffffffffffff811115612de4575f80fd5b612df089828a01612974565b9150509295509295509295565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f5b83811015612e5c578181015183820152602001612e44565b50505f910152565b5f8151808452612e7b816020860160208601612e42565b601f01601f19169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612ed060c0830184612e64565b98975050505050505050565b5f60208284031215612eec575f80fd5b5051919050565b5f6001600160a01b03808816835286602084015260a06040840152612f1b60a0840187612e64565b606084019590955292909216608090910152509392505050565b6001600160a01b0385168152836020820152608060408201525f612f5c6080830185612e64565b905082606083015295945050505050565b602081525f610c576020830184612e64565b5f8060408385031215612f90575f80fd5b8251612f9b816128db565b602084015190925067ffffffffffffffff811115612fb7575f80fd5b8301601f81018513612fc7575f80fd5b8051612fd56129918261294d565b818152866020838501011115612fe9575f80fd5b612ffa826020830160208601612e42565b8093505050509250929050565b81810381811115610c5a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6020828403121561304f575f80fd5b81518015158114612c2e575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82516130c9818460208701612e42565b919091019291505056fea164736f6c6343000818000a diff --git a/bindings/bin/l2lidogateway_deployed.hex b/bindings/bin/l2lidogateway_deployed.hex index 68ff19c11..bd0fad2ac 100644 --- a/bindings/bin/l2lidogateway_deployed.hex +++ b/bindings/bin/l2lidogateway_deployed.hex @@ -1 +1 @@ -0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063ca15c87311610092578063f27ebced11610062578063f27ebced14610580578063f2fde38b1461059f578063f887ea40146105be578063fadcc54a146105dd575f80fd5b8063ca15c873146104fb578063d547741f1461051a578063e3b523e314610539578063e8bac93b1461056c575f80fd5b8063ad960ce1116100cd578063ad960ce114610476578063c01e1bd61461048a578063c0c53b8b146104bd578063c676ad29146104dc575f80fd5b80639010d07c1461041157806391d1485414610430578063a93a4af91461044f578063ac67e1af14610462575f80fd5b80635ed2c22011610173578063797594b011610143578063797594b01461038f5780638431f5c1146103ae5780638d7601c0146103c15780638da5cb5b146103f4575f80fd5b80635ed2c220146102ec5780636c07ea43146103275780636f18bd221461033a578063715018a61461037b575f80fd5b806356eff267116101ae57806356eff26714610250578063575361b6146102835780635777bf50146102965780635e4c57a4146102d8575f80fd5b80632f2ff15d146101d45780633cb747bf146101f557806354bbd59c14610231575b5f80fd5b3480156101df575f80fd5b506101f36101ee36600461211c565b610610565b005b348015610200575f80fd5b50609954610214906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023c575f80fd5b5061021461024b36600461214a565b610626565b34801561025b575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b6101f36102913660046121b1565b6106bb565b3480156102a1575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610228565b3480156102e3575f80fd5b506101f3610706565b3480156102f7575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102c8565b6101f3610335366004612227565b610838565b348015610345575f80fd5b5061036d7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610228565b348015610386575f80fd5b506101f3610876565b34801561039a575f80fd5b50609754610214906001600160a01b031681565b6101f36103bc366004612259565b610889565b3480156103cc575f80fd5b5061036d7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103ff575f80fd5b506065546001600160a01b0316610214565b34801561041c575f80fd5b5061021461042b3660046122eb565b610bff565b34801561043b575f80fd5b506102c861044a36600461211c565b610c3e565b6101f361045d36600461230b565b610c74565b34801561046d575f80fd5b506101f3610c86565b348015610481575f80fd5b506101f3610db4565b348015610495575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c8575f80fd5b506101f36104d736600461234e565b610eca565b3480156104e7575f80fd5b506102146104f636600461214a565b611007565b348015610506575f80fd5b5061036d610515366004612396565b61109c565b348015610525575f80fd5b506101f361053436600461211c565b6110d1565b348015610544575f80fd5b5061036d7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610577575f80fd5b506101f36110e3565b34801561058b575f80fd5b506101f361059a3660046123ad565b6111fe565b3480156105aa575f80fd5b506101f36105b936600461214a565b611313565b3480156105c9575f80fd5b50609854610214906001600160a01b031681565b3480156105e8575f80fd5b5061036d7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b6106186113a3565b61062282826113fd565b5050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610693576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b6106fe86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250611473915050565b505050505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610762576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61078c7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c3e565b6107c2576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b6108718333845f5b6040519080825280601f01601f19166020018201604052801561086a576020820181803683370190505b5085611473565b505050565b61087e6113a3565b6108875f6118eb565b565b6099546001600160a01b03163381146108e95760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610925573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109499190612433565b6097546001600160a01b039081169116146109a65760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e74657270617274000000000000000060448201526064016108e0565b6109ae611954565b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a1a576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a86576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ae1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610b19576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018890528a16906340c10f19906044015f604051808303815f87803b158015610b79575f80fd5b505af1158015610b8b573d5f803e3d5ffd5b50505050876001600160a01b0316896001600160a01b03168b6001600160a01b03167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348a8a8a8a604051610be2949392919061244e565b60405180910390a45050610bf560018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3590836119b3565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3590836119be565b610c808484845f610840565b50505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ce1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c3e565b610d41576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e14576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c3e565b610e74576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ee857505f54600160ff909116105b80610f015750303b158015610f0157505f5460ff166001145b610f735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fb2575f805461ff0019166101001790555b610fbd8484846119df565b8015610c80575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611074576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3890611b22565b6110d96113a3565b6106228282611b2b565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611144576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61116e7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c3e565b6111a4576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b5f54600290610100900460ff1615801561121e57505f5460ff8083169116105b6112905760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112cc85858585611ba1565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b61131b6113a3565b6001600160a01b0381166113975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108e0565b6113a0816118eb565b50565b6065546001600160a01b031633146108875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e0565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206114339082611d82565b156106225760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b61147b611954565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146114e7576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611528576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611588576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036115c1576040517f6c18829600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60985433906001600160a01b03168190036115ef57848060200190518101906115ea91906124d3565b955090505b845115611628576040517f998bcee200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081526001600160a01b03828116600483015260248201889052891690639dc29fac906044015f604051808303815f87803b158015611688575f80fd5b505af115801561169a573d5f803e3d5ffd5b505050505f7f000000000000000000000000000000000000000000000000000000000000000089838a8a8a6040516024016116da969594939291906125f8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84bd13b00000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa1580156117b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d59190612645565b6099546097546040517fb2267a7b0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263b2267a7b92349261182d929116905f9088908d9060040161265c565b5f604051808303818588803b158015611844575f80fd5b505af1158015611856573d5f803e3d5ffd5b5050505050826001600160a01b03168a6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167fa9967b740f3fc69dfbf4744b4b1c7dfdb0b1b63f1fa4cf573bcdcb9f3ac687c48c8c8c876040516118ce949392919061265c565b60405180910390a450505050506118e460018055565b5050505050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6002600154036119a65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108e0565b6002600155565b60018055565b5f610c358383611d96565b6001600160a01b0381165f9081526001830160205260408120541515610c35565b6001600160a01b038316611a355760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e746572706172742061646472657373000000000000000060448201526064016108e0565b6001600160a01b038116611a8b5760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e67657220616464726573730000000000000000000060448201526064016108e0565b611a93611dbc565b611a9b611e40565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561087157609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c38825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611b619082611ec4565b156106225760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611c1d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611ca53390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611d047f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a866113fd565b611d2e7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d6856113fd565b611d587f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d846113fd565b6118e47f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c836113fd565b5f610c35836001600160a01b038416611ed8565b5f825f018281548110611dab57611dab612694565b905f5260205f200154905092915050565b5f54610100900460ff16611e385760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611f24565b5f54610100900460ff16611ebc5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611fa0565b5f610c35836001600160a01b038416612025565b5f818152600183016020526040812054611f1d57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c38565b505f610c38565b5f54610100900460ff166119ad5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b5f54610100900460ff1661201c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887336118eb565b5f81815260018301602052604081205480156120ff575f6120476001836126c1565b85549091505f9061205a906001906126c1565b90508181146120b9575f865f01828154811061207857612078612694565b905f5260205f200154905080875f01848154811061209857612098612694565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806120ca576120ca6126f9565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c38565b5f915050610c38565b6001600160a01b03811681146113a0575f80fd5b5f806040838503121561212d575f80fd5b82359150602083013561213f81612108565b809150509250929050565b5f6020828403121561215a575f80fd5b813561216581612108565b9392505050565b5f8083601f84011261217c575f80fd5b50813567ffffffffffffffff811115612193575f80fd5b6020830191508360208285010111156121aa575f80fd5b9250929050565b5f805f805f8060a087890312156121c6575f80fd5b86356121d181612108565b955060208701356121e181612108565b945060408701359350606087013567ffffffffffffffff811115612203575f80fd5b61220f89828a0161216c565b979a9699509497949695608090950135949350505050565b5f805f60608486031215612239575f80fd5b833561224481612108565b95602085013595506040909401359392505050565b5f805f805f805f60c0888a03121561226f575f80fd5b873561227a81612108565b9650602088013561228a81612108565b9550604088013561229a81612108565b945060608801356122aa81612108565b93506080880135925060a088013567ffffffffffffffff8111156122cc575f80fd5b6122d88a828b0161216c565b989b979a50959850939692959293505050565b5f80604083850312156122fc575f80fd5b50508035926020909101359150565b5f805f806080858703121561231e575f80fd5b843561232981612108565b9350602085013561233981612108565b93969395505050506040820135916060013590565b5f805f60608486031215612360575f80fd5b833561236b81612108565b9250602084013561237b81612108565b9150604084013561238b81612108565b809150509250925092565b5f602082840312156123a6575f80fd5b5035919050565b5f805f80608085870312156123c0575f80fd5b84356123cb81612108565b935060208501356123db81612108565b925060408501356123eb81612108565b915060608501356123fb81612108565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215612443575f80fd5b815161216581612108565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b838110156124cb5781810151838201526020016124b3565b50505f910152565b5f80604083850312156124e4575f80fd5b82516124ef81612108565b602084015190925067ffffffffffffffff8082111561250c575f80fd5b818501915085601f83011261251f575f80fd5b81518181111561253157612531612406565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561257757612577612406565b8160405282815288602084870101111561258f575f80fd5b6125a08360208301602088016124b1565b80955050505050509250929050565b5f81518084526125c68160208601602086016124b1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261263960c08301846125af565b98975050505050505050565b5f60208284031215612655575f80fd5b5051919050565b6001600160a01b0385168152836020820152608060408201525f61268360808301856125af565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81810381811115610c38577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a +0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063ca15c87311610092578063f27ebced11610062578063f27ebced14610580578063f2fde38b1461059f578063f887ea40146105be578063fadcc54a146105dd575f80fd5b8063ca15c873146104fb578063d547741f1461051a578063e3b523e314610539578063e8bac93b1461056c575f80fd5b8063ad960ce1116100cd578063ad960ce114610476578063c01e1bd61461048a578063c0c53b8b146104bd578063c676ad29146104dc575f80fd5b80639010d07c1461041157806391d1485414610430578063a93a4af91461044f578063ac67e1af14610462575f80fd5b80635ed2c22011610173578063797594b011610143578063797594b01461038f5780638431f5c1146103ae5780638d7601c0146103c15780638da5cb5b146103f4575f80fd5b80635ed2c220146102ec5780636c07ea43146103275780636f18bd221461033a578063715018a61461037b575f80fd5b806356eff267116101ae57806356eff26714610250578063575361b6146102835780635777bf50146102965780635e4c57a4146102d8575f80fd5b80632f2ff15d146101d45780633cb747bf146101f557806354bbd59c14610231575b5f80fd5b3480156101df575f80fd5b506101f36101ee366004612100565b610610565b005b348015610200575f80fd5b50609954610214906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023c575f80fd5b5061021461024b36600461212e565b610626565b34801561025b575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b6101f3610291366004612195565b6106bb565b3480156102a1575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610228565b3480156102e3575f80fd5b506101f3610706565b3480156102f7575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102c8565b6101f361033536600461220b565b610838565b348015610345575f80fd5b5061036d7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610228565b348015610386575f80fd5b506101f3610876565b34801561039a575f80fd5b50609754610214906001600160a01b031681565b6101f36103bc36600461223d565b610889565b3480156103cc575f80fd5b5061036d7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103ff575f80fd5b506065546001600160a01b0316610214565b34801561041c575f80fd5b5061021461042b3660046122cf565b610bff565b34801561043b575f80fd5b506102c861044a366004612100565b610c3e565b6101f361045d3660046122ef565b610c74565b34801561046d575f80fd5b506101f3610c86565b348015610481575f80fd5b506101f3610db4565b348015610495575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c8575f80fd5b506101f36104d7366004612332565b610eca565b3480156104e7575f80fd5b506102146104f636600461212e565b611007565b348015610506575f80fd5b5061036d61051536600461237a565b61109c565b348015610525575f80fd5b506101f3610534366004612100565b6110d1565b348015610544575f80fd5b5061036d7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610577575f80fd5b506101f36110e3565b34801561058b575f80fd5b506101f361059a366004612391565b6111fe565b3480156105aa575f80fd5b506101f36105b936600461212e565b611313565b3480156105c9575f80fd5b50609854610214906001600160a01b031681565b3480156105e8575f80fd5b5061036d7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b6106186113a3565b61062282826113fd565b5050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610693576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b6106fe86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250611473915050565b505050505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610762576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61078c7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c3e565b6107c2576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b6108718333845f5b6040519080825280601f01601f19166020018201604052801561086a576020820181803683370190505b5085611473565b505050565b61087e6113a3565b6108875f6118cf565b565b6099546001600160a01b03163381146108e95760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610925573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109499190612417565b6097546001600160a01b039081169116146109a65760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e74657270617274000000000000000060448201526064016108e0565b6109ae611938565b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a1a576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a86576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ae1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610b19576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018890528a16906340c10f19906044015f604051808303815f87803b158015610b79575f80fd5b505af1158015610b8b573d5f803e3d5ffd5b50505050876001600160a01b0316896001600160a01b03168b6001600160a01b03167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348a8a8a8a604051610be29493929190612432565b60405180910390a45050610bf560018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c359083611997565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3590836119a2565b610c808484845f610840565b50505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ce1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c3e565b610d41576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e14576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c3e565b610e74576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ee857505f54600160ff909116105b80610f015750303b158015610f0157505f5460ff166001145b610f735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fb2575f805461ff0019166101001790555b610fbd8484846119c3565b8015610c80575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611074576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3890611b06565b6110d96113a3565b6106228282611b0f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611144576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61116e7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c3e565b6111a4576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b5f54600290610100900460ff1615801561121e57505f5460ff8083169116105b6112905760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112cc85858585611b85565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b61131b6113a3565b6001600160a01b0381166113975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108e0565b6113a0816118cf565b50565b6065546001600160a01b031633146108875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e0565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206114339082611d66565b156106225760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b61147b611938565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146114e7576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611528576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611588576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036115c1576040517f6c18829600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60985433906001600160a01b03168190036115ef57848060200190518101906115ea91906124b7565b955090505b845115611628576040517f998bcee200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081526001600160a01b03828116600483015260248201889052891690639dc29fac906044015f604051808303815f87803b158015611688575f80fd5b505af115801561169a573d5f803e3d5ffd5b50506040517f000000000000000000000000000000000000000000000000000000000000000092505f91506116dd9083908c9086908d908d908d906024016125dc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84bd13b00000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa1580156117b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d89190612629565b6099546097546040517fb2267a7b0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263b2267a7b923492611830929116905f9088908e90600401612640565b5f604051808303818588803b158015611847575f80fd5b505af1158015611859573d5f803e3d5ffd5b5050505050836001600160a01b03168b6001600160a01b0316846001600160a01b03167fa9967b740f3fc69dfbf4744b4b1c7dfdb0b1b63f1fa4cf573bcdcb9f3ac687c48d8d8d876040516118b19493929190612640565b60405180910390a45050505050506118c860018055565b5050505050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60026001540361198a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108e0565b6002600155565b60018055565b5f610c358383611d7a565b6001600160a01b0381165f9081526001830160205260408120541515610c35565b6001600160a01b038316611a195760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e746572706172742061646472657373000000000000000060448201526064016108e0565b6001600160a01b038116611a6f5760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e67657220616464726573730000000000000000000060448201526064016108e0565b611a77611da0565b611a7f611e24565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561087157609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c38825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611b459082611ea8565b156106225760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611c015760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611c893390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611ce87f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a866113fd565b611d127f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d6856113fd565b611d3c7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d846113fd565b6118c87f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c836113fd565b5f610c35836001600160a01b038416611ebc565b5f825f018281548110611d8f57611d8f612678565b905f5260205f200154905092915050565b5f54610100900460ff16611e1c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611f08565b5f54610100900460ff16611ea05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611f84565b5f610c35836001600160a01b038416612009565b5f818152600183016020526040812054611f0157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c38565b505f610c38565b5f54610100900460ff166119915760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b5f54610100900460ff166120005760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887336118cf565b5f81815260018301602052604081205480156120e3575f61202b6001836126a5565b85549091505f9061203e906001906126a5565b905081811461209d575f865f01828154811061205c5761205c612678565b905f5260205f200154905080875f01848154811061207c5761207c612678565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806120ae576120ae6126dd565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c38565b5f915050610c38565b6001600160a01b03811681146113a0575f80fd5b5f8060408385031215612111575f80fd5b823591506020830135612123816120ec565b809150509250929050565b5f6020828403121561213e575f80fd5b8135612149816120ec565b9392505050565b5f8083601f840112612160575f80fd5b50813567ffffffffffffffff811115612177575f80fd5b60208301915083602082850101111561218e575f80fd5b9250929050565b5f805f805f8060a087890312156121aa575f80fd5b86356121b5816120ec565b955060208701356121c5816120ec565b945060408701359350606087013567ffffffffffffffff8111156121e7575f80fd5b6121f389828a01612150565b979a9699509497949695608090950135949350505050565b5f805f6060848603121561221d575f80fd5b8335612228816120ec565b95602085013595506040909401359392505050565b5f805f805f805f60c0888a031215612253575f80fd5b873561225e816120ec565b9650602088013561226e816120ec565b9550604088013561227e816120ec565b9450606088013561228e816120ec565b93506080880135925060a088013567ffffffffffffffff8111156122b0575f80fd5b6122bc8a828b01612150565b989b979a50959850939692959293505050565b5f80604083850312156122e0575f80fd5b50508035926020909101359150565b5f805f8060808587031215612302575f80fd5b843561230d816120ec565b9350602085013561231d816120ec565b93969395505050506040820135916060013590565b5f805f60608486031215612344575f80fd5b833561234f816120ec565b9250602084013561235f816120ec565b9150604084013561236f816120ec565b809150509250925092565b5f6020828403121561238a575f80fd5b5035919050565b5f805f80608085870312156123a4575f80fd5b84356123af816120ec565b935060208501356123bf816120ec565b925060408501356123cf816120ec565b915060608501356123df816120ec565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215612427575f80fd5b8151612149816120ec565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b838110156124af578181015183820152602001612497565b50505f910152565b5f80604083850312156124c8575f80fd5b82516124d3816120ec565b602084015190925067ffffffffffffffff808211156124f0575f80fd5b818501915085601f830112612503575f80fd5b815181811115612515576125156123ea565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561255b5761255b6123ea565b81604052828152886020848701011115612573575f80fd5b612584836020830160208801612495565b80955050505050509250929050565b5f81518084526125aa816020860160208601612495565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261261d60c0830184612593565b98975050505050505050565b5f60208284031215612639575f80fd5b5051919050565b6001600160a01b0385168152836020820152608060408201525f6126676080830185612593565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81810381811115610c38577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a diff --git a/bindings/bin/l2wstethtoken_deployed.hex b/bindings/bin/l2wstethtoken_deployed.hex index 57abc8d42..2b66e449e 100644 --- a/bindings/bin/l2wstethtoken_deployed.hex +++ b/bindings/bin/l2wstethtoken_deployed.hex @@ -1 +1 @@ -0x608060405234801561000f575f80fd5b506004361061016e575f3560e01c806370a08231116100d25780639dc29fac11610088578063c820f14611610063578063c820f14614610354578063d505accf14610367578063dd62ed3e1461037a575f80fd5b80639dc29fac1461031b578063a457c2d71461032e578063a9059cbb14610341575f80fd5b80637ecebe00116100b85780637ecebe00146102e557806384b0196e146102f857806395d89b4114610313575f80fd5b806370a0823114610290578063797594b0146102c5575f80fd5b8063313ce56711610127578063395093511161010d57806339509351146102555780634000aea01461026857806340c10f191461027b575f80fd5b8063313ce5671461021d5780633644e5151461024d575f80fd5b8063116191b611610157578063116191b6146101b357806318160ddd146101f857806323b872dd1461020a575f80fd5b806306fdde0314610172578063095ea7b314610190575b5f80fd5b61017a6103bf565b6040516101879190611a7e565b60405180910390f35b6101a361019e366004611abf565b61044f565b6040519015158152602001610187565b60cc546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610187565b6035545b604051908152602001610187565b6101a3610218366004611ae7565b610468565b60cd5474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610187565b6101fc61048b565b6101a3610263366004611abf565b610499565b6101a3610276366004611b20565b6104e4565b61028e610289366004611abf565b61054d565b005b6101fc61029e366004611ba0565b73ffffffffffffffffffffffffffffffffffffffff165f9081526033602052604090205490565b60cd546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b6101fc6102f3366004611ba0565b6105c7565b6103006105f1565b6040516101879796959493929190611bb9565b61017a6106ae565b61028e610329366004611abf565b6106bd565b6101a361033c366004611abf565b61072e565b6101a361034f366004611abf565b6107e4565b61028e610362366004611d5d565b6107f1565b61028e610375366004611ded565b610a08565b6101fc610388366004611e52565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260346020908152604080832093909416825291909152205490565b6060603680546103ce90611e83565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa90611e83565b80156104455780601f1061041c57610100808354040283529160200191610445565b820191905f5260205f20905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b5f3361045c818585610bae565b60019150505b92915050565b5f33610475858285610d2d565b610480858585610de9565b506001949350505050565b5f61049461100f565b905090565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045c90829086906104df908790611ece565b610bae565b5f6104ef85856107e4565b5073ffffffffffffffffffffffffffffffffffffffff85163b1561048057610480858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061101892505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146105b95760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105c382826110a3565b5050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260996020526040812054610462565b5f6060805f805f60606065545f801b14801561060d5750606654155b6106595760405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016105b0565b61066161117c565b61066961118b565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546103ce90611e83565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146107245760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064016105b0565b6105c3828261119a565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156107d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105b0565b6104808286868403610bae565b5f3361045c818585610de9565b5f54610100900460ff161580801561080f57505f54600160ff909116105b806108285750303b15801561082857505f5460ff166001145b61089a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105b0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108f6575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108ff86611327565b61090986866113e5565b60cd805460cc805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925590851660ff88167401000000000000000000000000000000000000000002919091167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790558015610a00575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b83421115610a585760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016105b0565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a868c61146b565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610aed8261149f565b60408051602081018790529081018590527fff0000000000000000000000000000000000000000000000000000000000000060f888901b166060820152909150610b4c908a9083906061016040516020818303038152906040526114e6565b610b985760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016105b0565b610ba3898989610bae565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c365760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610cbf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610de35781811015610dd65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105b0565b610de38484848403610bae565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610e725760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610efb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526033602052604090205481811015610f965760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110029086815260200190565b60405180910390a3610de3565b5f61049461155e565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed369061107090339087908790600401611f06565b5f604051808303815f87803b158015611087575f80fd5b505af1158015611099573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166111065760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105b0565b8060355f8282546111179190611ece565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060606780546103ce90611e83565b6060606880546103ce90611e83565b73ffffffffffffffffffffffffffffffffffffffff82166112235760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260336020526040902054818110156112be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610d20565b505050565b5f54610100900460ff166113a35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6113e2816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506115d1565b50565b5f54610100900460ff166114615760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6105c38282611674565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526099602052604090208054600181018255905b50919050565b5f6104626114ab61100f565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f6114f38585611709565b90925090505f81600481111561150b5761150b611f43565b14801561154357508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611554575061155486868661174b565b9695505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6115886118a3565b6115906118fb565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff1661164d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b60676116598382611fbb565b5060686116668282611fbb565b50505f606581905560665550565b5f54610100900460ff166116f05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b60366116fc8382611fbb565b5060376113228282611fbb565b5f80825160410361173d576020830151604084015160608501515f1a6117318782858561192b565b94509450505050611744565b505f905060025b9250929050565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b86866040516024016117809291906120d3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161180991906120f3565b5f60405180830381855afa9150503d805f8114611841576040519150601f19603f3d011682016040523d82523d5f602084013e611846565b606091505b509150915081801561185a57506020815110155b8015611554575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090611898908301602090810190840161210e565b149695505050505050565b5f806118ad61117c565b8051909150156118c4578051602090910120919050565b60655480156118d35792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f8061190561118b565b80519091501561191c578051602090910120919050565b60665480156118d35792915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561196057505f90506003611a0a565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156119b1573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611a04575f60019250925050611a0a565b91505f90505b94509492505050565b5f5b83811015611a2d578181015183820152602001611a15565b50505f910152565b5f8151808452611a4c816020860160208601611a13565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611a906020830184611a35565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611aba575f80fd5b919050565b5f8060408385031215611ad0575f80fd5b611ad983611a97565b946020939093013593505050565b5f805f60608486031215611af9575f80fd5b611b0284611a97565b9250611b1060208501611a97565b9150604084013590509250925092565b5f805f8060608587031215611b33575f80fd5b611b3c85611a97565b935060208501359250604085013567ffffffffffffffff80821115611b5f575f80fd5b818701915087601f830112611b72575f80fd5b813581811115611b80575f80fd5b886020828501011115611b91575f80fd5b95989497505060200194505050565b5f60208284031215611bb0575f80fd5b611a9082611a97565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152611bf560e084018a611a35565b8381036040850152611c07818a611a35565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611c6757835183529284019291840191600101611c4b565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112611cb5575f80fd5b813567ffffffffffffffff80821115611cd057611cd0611c79565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611d1657611d16611c79565b81604052838152866020858801011115611d2e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114611aba575f80fd5b5f805f805f60a08688031215611d71575f80fd5b853567ffffffffffffffff80821115611d88575f80fd5b611d9489838a01611ca6565b96506020880135915080821115611da9575f80fd5b50611db688828901611ca6565b945050611dc560408701611d4d565b9250611dd360608701611a97565b9150611de160808701611a97565b90509295509295909350565b5f805f805f805f60e0888a031215611e03575f80fd5b611e0c88611a97565b9650611e1a60208901611a97565b95506040880135945060608801359350611e3660808901611d4d565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215611e63575f80fd5b611e6c83611a97565b9150611e7a60208401611a97565b90509250929050565b600181811c90821680611e9757607f821691505b602082108103611499577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b80820180821115610462577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611f3a6060830184611a35565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b601f82111561132257805f5260205f20601f840160051c81016020851015611f955750805b601f840160051c820191505b81811015611fb4575f8155600101611fa1565b5050505050565b815167ffffffffffffffff811115611fd557611fd5611c79565b611fe981611fe38454611e83565b84611f70565b602080601f83116001811461203b575f84156120055750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a00565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561208757888601518255948401946001909101908401612068565b50858210156120c357878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201525f6120eb6040830184611a35565b949350505050565b5f8251612104818460208701611a13565b9190910192915050565b5f6020828403121561211e575f80fd5b505191905056fea164736f6c6343000818000a +0x608060405234801561000f575f80fd5b506004361061016e575f3560e01c806370a08231116100d25780639dc29fac11610088578063c820f14611610063578063c820f14614610354578063d505accf14610367578063dd62ed3e1461037a575f80fd5b80639dc29fac1461031b578063a457c2d71461032e578063a9059cbb14610341575f80fd5b80637ecebe00116100b85780637ecebe00146102e557806384b0196e146102f857806395d89b4114610313575f80fd5b806370a0823114610290578063797594b0146102c5575f80fd5b8063313ce56711610127578063395093511161010d57806339509351146102555780634000aea01461026857806340c10f191461027b575f80fd5b8063313ce5671461021d5780633644e5151461024d575f80fd5b8063116191b611610157578063116191b6146101b357806318160ddd146101f857806323b872dd1461020a575f80fd5b806306fdde0314610172578063095ea7b314610190575b5f80fd5b61017a6103bf565b6040516101879190611a52565b60405180910390f35b6101a361019e366004611a93565b61044f565b6040519015158152602001610187565b60cc546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610187565b6035545b604051908152602001610187565b6101a3610218366004611abb565b610468565b60cd5474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610187565b6101fc61048b565b6101a3610263366004611a93565b610499565b6101a3610276366004611af4565b6104e4565b61028e610289366004611a93565b61054d565b005b6101fc61029e366004611b74565b73ffffffffffffffffffffffffffffffffffffffff165f9081526033602052604090205490565b60cd546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b6101fc6102f3366004611b74565b6105c7565b6103006105f1565b6040516101879796959493929190611b8d565b61017a6106ae565b61028e610329366004611a93565b6106bd565b6101a361033c366004611a93565b61072e565b6101a361034f366004611a93565b6107e4565b61028e610362366004611d31565b6107f1565b61028e610375366004611dc1565b610a08565b6101fc610388366004611e26565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260346020908152604080832093909416825291909152205490565b6060603680546103ce90611e57565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa90611e57565b80156104455780601f1061041c57610100808354040283529160200191610445565b820191905f5260205f20905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b5f3361045c818585610b82565b60019150505b92915050565b5f33610475858285610d01565b610480858585610dbd565b506001949350505050565b5f610494610fe3565b905090565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045c90829086906104df908790611ea2565b610b82565b5f6104ef85856107e4565b5073ffffffffffffffffffffffffffffffffffffffff85163b1561048057610480858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610fec92505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146105b95760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105c38282611077565b5050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260996020526040812054610462565b5f6060805f805f60606065545f801b14801561060d5750606654155b6106595760405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016105b0565b610661611150565b61066961115f565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546103ce90611e57565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146107245760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064016105b0565b6105c3828261116e565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156107d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105b0565b6104808286868403610b82565b5f3361045c818585610dbd565b5f54610100900460ff161580801561080f57505f54600160ff909116105b806108285750303b15801561082857505f5460ff166001145b61089a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105b0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108f6575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108ff866112fb565b61090986866113b9565b60cd805460cc805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925590851660ff88167401000000000000000000000000000000000000000002919091167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790558015610a00575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b83421115610a42576040517fa5faea8300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a708c61143f565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610ad782611473565b60408051602081018790529081018590527fff0000000000000000000000000000000000000000000000000000000000000060f888901b166060820152909150610b36908a9083906061016040516020818303038152906040526114ba565b610b6c576040517f3f88fec700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b77898989610b82565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c0a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610c935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610db75781811015610daa5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105b0565b610db78484848403610b82565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610e465760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610ecf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526033602052604090205481811015610f6a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fd69086815260200190565b60405180910390a3610db7565b5f610494611532565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed369061104490339087908790600401611eda565b5f604051808303815f87803b15801561105b575f80fd5b505af115801561106d573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166110da5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105b0565b8060355f8282546110eb9190611ea2565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060606780546103ce90611e57565b6060606880546103ce90611e57565b73ffffffffffffffffffffffffffffffffffffffff82166111f75760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260336020526040902054818110156112925760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610cf4565b505050565b5f54610100900460ff166113775760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6113b6816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506115a5565b50565b5f54610100900460ff166114355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6105c38282611648565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526099602052604090208054600181018255905b50919050565b5f61046261147f610fe3565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f6114c785856116dd565b90925090505f8160048111156114df576114df611f17565b14801561151757508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611528575061152886868661171f565b9695505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61155c611877565b6115646118cf565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff166116215760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b606761162d8382611f8f565b50606861163a8282611f8f565b50505f606581905560665550565b5f54610100900460ff166116c45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b60366116d08382611f8f565b5060376112f68282611f8f565b5f808251604103611711576020830151604084015160608501515f1a611705878285856118ff565b94509450505050611718565b505f905060025b9250929050565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b86866040516024016117549291906120a7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516117dd91906120c7565b5f60405180830381855afa9150503d805f8114611815576040519150601f19603f3d011682016040523d82523d5f602084013e61181a565b606091505b509150915081801561182e57506020815110155b8015611528575080517f1626ba7e000000000000000000000000000000000000000000000000000000009061186c90830160209081019084016120e2565b149695505050505050565b5f80611881611150565b805190915015611898578051602090910120919050565b60655480156118a75792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f806118d961115f565b8051909150156118f0578051602090910120919050565b60665480156118a75792915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561193457505f905060036119de565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611985573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166119d8575f600192509250506119de565b91505f90505b94509492505050565b5f5b83811015611a015781810151838201526020016119e9565b50505f910152565b5f8151808452611a208160208601602086016119e7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611a646020830184611a09565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a8e575f80fd5b919050565b5f8060408385031215611aa4575f80fd5b611aad83611a6b565b946020939093013593505050565b5f805f60608486031215611acd575f80fd5b611ad684611a6b565b9250611ae460208501611a6b565b9150604084013590509250925092565b5f805f8060608587031215611b07575f80fd5b611b1085611a6b565b935060208501359250604085013567ffffffffffffffff80821115611b33575f80fd5b818701915087601f830112611b46575f80fd5b813581811115611b54575f80fd5b886020828501011115611b65575f80fd5b95989497505060200194505050565b5f60208284031215611b84575f80fd5b611a6482611a6b565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152611bc960e084018a611a09565b8381036040850152611bdb818a611a09565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611c3b57835183529284019291840191600101611c1f565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112611c89575f80fd5b813567ffffffffffffffff80821115611ca457611ca4611c4d565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611cea57611cea611c4d565b81604052838152866020858801011115611d02575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114611a8e575f80fd5b5f805f805f60a08688031215611d45575f80fd5b853567ffffffffffffffff80821115611d5c575f80fd5b611d6889838a01611c7a565b96506020880135915080821115611d7d575f80fd5b50611d8a88828901611c7a565b945050611d9960408701611d21565b9250611da760608701611a6b565b9150611db560808701611a6b565b90509295509295909350565b5f805f805f805f60e0888a031215611dd7575f80fd5b611de088611a6b565b9650611dee60208901611a6b565b95506040880135945060608801359350611e0a60808901611d21565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215611e37575f80fd5b611e4083611a6b565b9150611e4e60208401611a6b565b90509250929050565b600181811c90821680611e6b57607f821691505b60208210810361146d577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b80820180821115610462577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611f0e6060830184611a09565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b601f8211156112f657805f5260205f20601f840160051c81016020851015611f695750805b601f840160051c820191505b81811015611f88575f8155600101611f75565b5050505050565b815167ffffffffffffffff811115611fa957611fa9611c4d565b611fbd81611fb78454611e57565b84611f44565b602080601f83116001811461200f575f8415611fd95750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a00565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561205b5788860151825594840194600190910190840161203c565b508582101561209757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201525f6120bf6040830184611a09565b949350505050565b5f82516120d88184602087016119e7565b9190910192915050565b5f602082840312156120f2575f80fd5b505191905056fea164736f6c6343000818000a diff --git a/bindings/bindings/l1lidogateway.go b/bindings/bindings/l1lidogateway.go index 70d975c81..70c4caf6e 100644 --- a/bindings/bindings/l1lidogateway.go +++ b/bindings/bindings/l1lidogateway.go @@ -31,8 +31,8 @@ var ( // L1LidoGatewayMetaData contains all meta data concerning the L1LidoGateway contract. var L1LidoGatewayMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DepositAndCallIsNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorAccountIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNonZeroMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL1Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL2Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsEnabled\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"DepositERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"DepositsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"DepositsEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"FinalizeWithdrawERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RefundERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPOSITS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"depositERC20AndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"finalizeWithdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"}],\"name\":\"getL2ERC20Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_depositsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_depositsDisabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsDisabler\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isWithdrawalsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"onDropMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60c060405234801562000010575f80fd5b5060405162003368380380620033688339810160408190526200003391620001dc565b6001600160a01b03808316608081905290821660a0526200009b5760405162461bcd60e51b815260206004820152601460248201527f7a65726f206c31746f6b656e206164647265737300000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038116620000f35760405162461bcd60e51b815260206004820152601460248201527f7a65726f206c32546f6b656e2061646472657373000000000000000000000000604482015260640162000092565b620000fd62000105565b505062000212565b5f54610100900460ff16156200016e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000092565b5f5460ff90811614620001be575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114620001d7575f80fd5b919050565b5f8060408385031215620001ee575f80fd5b620001f983620001c0565b91506200020960208401620001c0565b90509250929050565b60805160a0516130fc6200026c5f395f818161027b015281816110880152818161155a015281816117030152611ad401525f818161047c0152818161101c015281816113cb015281816117dc0152611a6801526130fc5ff3fe6080604052600436106101d0575f3560e01c80639010d07c116100fd578063d547741f11610092578063f27ebced11610062578063f27ebced14610574578063f2fde38b14610593578063f887ea40146105b2578063fadcc54a146105d1575f80fd5b8063d547741f146104fb578063e3b523e31461051a578063e8bac93b1461054d578063f219fa6614610561575f80fd5b8063c01e1bd6116100cd578063c01e1bd61461046b578063c0c53b8b1461049e578063c676ad29146104bd578063ca15c873146104dc575f80fd5b80639010d07c1461040557806391d1485414610424578063ac67e1af14610443578063ad960ce114610457575f80fd5b80635e4c57a411610173578063797594b011610143578063797594b01461038357806384bd13b0146103a25780638d7601c0146103b55780638da5cb5b146103e8575f80fd5b80635e4c57a4146102df5780635ed2c220146102f35780636f18bd221461032e578063715018a61461036f575f80fd5b80632f2ff15d116101ae5780632f2ff15d1461020f5780633cb747bf1461022e57806356eff2671461026a5780635777bf501461029d575f80fd5b80630aea8c26146101d457806314298c51146101e957806321425ee0146101fc575b5f80fd5b6101e76101e23660046129e2565b610604565b005b6101e76101f7366004612a96565b610618565b6101e761020a366004612ad5565b61089d565b34801561021a575f80fd5b506101e7610229366004612b07565b6108d6565b348015610239575f80fd5b5060995461024d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610275575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102a8575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610261565b3480156102ea575f80fd5b506101e76108ec565b3480156102fe575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102cf565b348015610339575f80fd5b506103617f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610261565b34801561037a575f80fd5b506101e7610a1e565b34801561038e575f80fd5b5060975461024d906001600160a01b031681565b6101e76103b0366004612b35565b610a31565b3480156103c0575f80fd5b506103617f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103f3575f80fd5b506065546001600160a01b031661024d565b348015610410575f80fd5b5061024d61041f366004612bc7565b610c21565b34801561042f575f80fd5b506102cf61043e366004612b07565b610c60565b34801561044e575f80fd5b506101e7610c96565b348015610462575f80fd5b506101e7610dc4565b348015610476575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a9575f80fd5b506101e76104b8366004612be7565b610eda565b3480156104c8575f80fd5b5061024d6104d7366004612c2f565b611018565b3480156104e7575f80fd5b506103616104f6366004612c51565b6110ad565b348015610506575f80fd5b506101e7610515366004612b07565b6110e2565b348015610525575f80fd5b506103617f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610558575f80fd5b506101e76110f4565b6101e761056f366004612c68565b61120f565b34801561057f575f80fd5b506101e761058e366004612cab565b61121b565b34801561059e575f80fd5b506101e76105ad366004612c2f565b611330565b3480156105bd575f80fd5b5060985461024d906001600160a01b031681565b3480156105dc575f80fd5b506103617f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b61061185858585856113c0565b5050505050565b6099546001600160a01b03163381146106785760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190612d04565b6001600160a01b0316736f297c61b5c92ef107ffd30cd56affe5a273e8416001600160a01b03161461074c5760405162461bcd60e51b815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e746578740000000000604482015260640161066f565b610754611780565b7f8431f5c10000000000000000000000000000000000000000000000000000000061078260045f8587612d1f565b61078b91612d46565b7fffffffff0000000000000000000000000000000000000000000000000000000016146107fa5760405162461bcd60e51b815260206004820152601060248201527f696e76616c69642073656c6563746f7200000000000000000000000000000000604482015260640161066f565b5f808061080a8560048189612d1f565b8101906108179190612d8e565b50945050935050925061082b8383836117d9565b61083f6001600160a01b038416838361187d565b816001600160a01b0316836001600160a01b03167fdbdf8eb487847e4c0f22847f5dac07f2d3690f96f581a6ae4b102769917645a88360405161088491815260200190565b60405180910390a350505061089860018055565b505050565b6108988333845f5b6040519080825280601f01601f1916602001820160405280156108cf576020820181803683370190505b50856113c0565b6108de61192c565b6108e88282611986565b5050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610948576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109727f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c60565b6109a8576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b610a2661192c565b610a2f5f6119fc565b565b6099546001600160a01b0316338114610a8c5760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c000000000000000000604482015260640161066f565b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aec9190612d04565b6097546001600160a01b03908116911614610b495760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e746572706172740000000000000000604482015260640161066f565b610b51611780565b610b6088888888888888611a65565b610b746001600160a01b038916868661187d565b610bb38584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611be092505050565b856001600160a01b0316876001600160a01b0316896001600160a01b03167fc6f985873b37805705f6bce756dce3d1ff4b603e298d506288cce499926846a788888888604051610c069493929190612e19565b60405180910390a4610c1760018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c74565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c7f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610cf1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c60565b610d51576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e24576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c60565b610e84576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ef857505f54600160ff909116105b80610f115750303b158015610f1157505f5460ff166001145b610f835760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fc2575f805461ff0019166101001790555b610fcd848484611ca0565b8015611012575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611085576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c5a90611de3565b6110ea61192c565b6108e88282611dec565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611155576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117f7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c60565b6111b5576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b6110128484845f6108a5565b5f54600290610100900460ff1615801561123b57505f5460ff8083169116105b6112ad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112e985858585611e62565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b61133861192c565b6001600160a01b0381166113b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161066f565b6113bd816119fc565b50565b6113c8611780565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611434576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611475576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff166114d0576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f03611509576040517f14fc8bd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611515888787612043565b8051919850965090915015611556576040517fb286dd6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f887f0000000000000000000000000000000000000000000000000000000000000000838a8a8a60405160240161159296959493929190612eab565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8431f5c10000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa15801561164b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166f9190612ef8565b6099546097546040517f5f7b15770000000000000000000000000000000000000000000000000000000081529293506001600160a01b0391821692635f7b15779234926116c9929116905f9088908d908b90600401612f0f565b5f604051808303818588803b1580156116e0575f80fd5b505af11580156116f2573d5f803e3d5ffd5b5050505050826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168b6001600160a01b03167f1a6c38816de45937fd5cd974f9694fe10e64163ba12a92abf0f4b6b23ad886728c8c8c8760405161176a9493929190612f51565b60405180910390a4505050505061061160018055565b6002600154036117d25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161066f565b6002600155565b827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611845576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611012576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b0383166024820152604481018290526108989084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612299565b60018055565b6065546001600160a01b03163314610a2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161066f565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206119bc908261237f565b156108e85760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611ad1576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611b3d576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611b9d576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611bd5576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b5f8151118015611bf957505f826001600160a01b03163b115b156108e8576040517f444b281f0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063444b281f90611c43908490600401612f89565b5f604051808303815f87803b158015611c5a575f80fd5b505af1158015611c6c573d5f803e3d5ffd5b505050505050565b5f610c578383612393565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6001600160a01b038316611cf65760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e7465727061727420616464726573730000000000000000604482015260640161066f565b6001600160a01b038116611d4c5760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e676572206164647265737300000000000000000000604482015260640161066f565b611d546123b9565b611d5c61243d565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561089857609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c5a825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611e2290826124c1565b156108e85760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611ede5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611f663390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611fc57f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a86611986565b611fef7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d685611986565b6120197f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d84611986565b6106117f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c83611986565b6098545f908190606090339081906001600160a01b031681900361211357858060200190518101906120759190612f9b565b6040517fc52a3bbc0000000000000000000000000000000000000000000000000000000081526001600160a01b0380841660048301528b81166024830152604482018b905291985091925083169063c52a3bbc906064016020604051808303815f875af11580156120e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061210c9190612ef8565b965061223d565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612170573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121949190612ef8565b90506121ab6001600160a01b038a1683308b6124d5565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038b16906370a0823190602401602060405180830381865afa158015612208573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061222c9190612ef8565b90506122388282613023565b985050505b5f871161228c5760405162461bcd60e51b815260206004820152601360248201527f6465706f736974207a65726f20616d6f756e7400000000000000000000000000604482015260640161066f565b9795965093949350505050565b5f6122ed826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166125269092919063ffffffff16565b905080515f148061230d57508080602001905181019061230d919061305b565b6108985760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161066f565b5f610c57836001600160a01b03841661253c565b5f825f0182815481106123a8576123a861307a565b905f5260205f200154905092915050565b5f54610100900460ff166124355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f612588565b5f54610100900460ff166124b95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f612604565b5f610c57836001600160a01b038416612689565b6040516001600160a01b03808516602483015283166044820152606481018290526110129085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016118c2565b606061253484845f8561276c565b949350505050565b5f81815260018301602052604081205461258157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c5a565b505f610c5a565b5f54610100900460ff166119265760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b5f54610100900460ff166126805760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f336119fc565b5f8181526001830160205260408120548015612763575f6126ab600183613023565b85549091505f906126be90600190613023565b905081811461271d575f865f0182815481106126dc576126dc61307a565b905f5260205f200154905080875f0184815481106126fc576126fc61307a565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061272e5761272e6130a7565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c5a565b5f915050610c5a565b6060824710156127e45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161066f565b5f80866001600160a01b031685876040516127ff91906130d4565b5f6040518083038185875af1925050503d805f8114612839576040519150601f19603f3d011682016040523d82523d5f602084013e61283e565b606091505b509150915061284f8783838761285a565b979650505050505050565b606083156128c85782515f036128c1576001600160a01b0385163b6128c15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161066f565b5081612534565b61253483838151156128dd5781518083602001fd5b8060405162461bcd60e51b815260040161066f9190612f89565b6001600160a01b03811681146113bd575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156129615761296161290b565b604052919050565b5f67ffffffffffffffff8211156129825761298261290b565b50601f01601f191660200190565b5f82601f83011261299f575f80fd5b81356129b26129ad82612969565b612938565b8181528460208386010111156129c6575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a086880312156129f6575f80fd5b8535612a01816128f7565b94506020860135612a11816128f7565b935060408601359250606086013567ffffffffffffffff811115612a33575f80fd5b612a3f88828901612990565b95989497509295608001359392505050565b5f8083601f840112612a61575f80fd5b50813567ffffffffffffffff811115612a78575f80fd5b602083019150836020828501011115612a8f575f80fd5b9250929050565b5f8060208385031215612aa7575f80fd5b823567ffffffffffffffff811115612abd575f80fd5b612ac985828601612a51565b90969095509350505050565b5f805f60608486031215612ae7575f80fd5b8335612af2816128f7565b95602085013595506040909401359392505050565b5f8060408385031215612b18575f80fd5b823591506020830135612b2a816128f7565b809150509250929050565b5f805f805f805f60c0888a031215612b4b575f80fd5b8735612b56816128f7565b96506020880135612b66816128f7565b95506040880135612b76816128f7565b94506060880135612b86816128f7565b93506080880135925060a088013567ffffffffffffffff811115612ba8575f80fd5b612bb48a828b01612a51565b989b979a50959850939692959293505050565b5f8060408385031215612bd8575f80fd5b50508035926020909101359150565b5f805f60608486031215612bf9575f80fd5b8335612c04816128f7565b92506020840135612c14816128f7565b91506040840135612c24816128f7565b809150509250925092565b5f60208284031215612c3f575f80fd5b8135612c4a816128f7565b9392505050565b5f60208284031215612c61575f80fd5b5035919050565b5f805f8060808587031215612c7b575f80fd5b8435612c86816128f7565b93506020850135612c96816128f7565b93969395505050506040820135916060013590565b5f805f8060808587031215612cbe575f80fd5b8435612cc9816128f7565b93506020850135612cd9816128f7565b92506040850135612ce9816128f7565b91506060850135612cf9816128f7565b939692955090935050565b5f60208284031215612d14575f80fd5b8151612c4a816128f7565b5f8085851115612d2d575f80fd5b83861115612d39575f80fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015612d865780818660040360031b1b83161692505b505092915050565b5f805f805f8060c08789031215612da3575f80fd5b8635612dae816128f7565b95506020870135612dbe816128f7565b94506040870135612dce816128f7565b93506060870135612dde816128f7565b92506080870135915060a087013567ffffffffffffffff811115612e00575f80fd5b612e0c89828a01612990565b9150509295509295509295565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f5b83811015612e78578181015183820152602001612e60565b50505f910152565b5f8151808452612e97816020860160208601612e5e565b601f01601f19169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612eec60c0830184612e80565b98975050505050505050565b5f60208284031215612f08575f80fd5b5051919050565b5f6001600160a01b03808816835286602084015260a06040840152612f3760a0840187612e80565b606084019590955292909216608090910152509392505050565b6001600160a01b0385168152836020820152608060408201525f612f786080830185612e80565b905082606083015295945050505050565b602081525f610c576020830184612e80565b5f8060408385031215612fac575f80fd5b8251612fb7816128f7565b602084015190925067ffffffffffffffff811115612fd3575f80fd5b8301601f81018513612fe3575f80fd5b8051612ff16129ad82612969565b818152866020838501011115613005575f80fd5b613016826020830160208601612e5e565b8093505050509250929050565b81810381811115610c5a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6020828403121561306b575f80fd5b81518015158114612c4a575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82516130e5818460208701612e5e565b919091019291505056fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DepositAndCallIsNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorAccountIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNonZeroMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL1Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL2Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"DepositERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"DepositsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"DepositsEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"FinalizeWithdrawERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RefundERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPOSITS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"depositERC20AndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"finalizeWithdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"}],\"name\":\"getL2ERC20Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_depositsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_depositsDisabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsDisabler\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isWithdrawalsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"onDropMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x60c060405234801562000010575f80fd5b50604051620032d1380380620032d1833981016040819052620000339162000168565b6001600160a01b03808316608081905290821660a05215806200005d57506001600160a01b038116155b156200007c5760405163a7f9319d60e01b815260040160405180910390fd5b620000866200008e565b50506200019e565b5f54610100900460ff1615620000fa5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200014a575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811462000163575f80fd5b919050565b5f80604083850312156200017a575f80fd5b62000185836200014c565b915062000195602084016200014c565b90509250929050565b60805160a0516130e0620001f15f395f818161027b015281816110880152818161155b0152611ab801525f818161047c0152818161101c015281816113cb015281816117c00152611a4c01526130e05ff3fe6080604052600436106101d0575f3560e01c80639010d07c116100fd578063d547741f11610092578063f27ebced11610062578063f27ebced14610574578063f2fde38b14610593578063f887ea40146105b2578063fadcc54a146105d1575f80fd5b8063d547741f146104fb578063e3b523e31461051a578063e8bac93b1461054d578063f219fa6614610561575f80fd5b8063c01e1bd6116100cd578063c01e1bd61461046b578063c0c53b8b1461049e578063c676ad29146104bd578063ca15c873146104dc575f80fd5b80639010d07c1461040557806391d1485414610424578063ac67e1af14610443578063ad960ce114610457575f80fd5b80635e4c57a411610173578063797594b011610143578063797594b01461038357806384bd13b0146103a25780638d7601c0146103b55780638da5cb5b146103e8575f80fd5b80635e4c57a4146102df5780635ed2c220146102f35780636f18bd221461032e578063715018a61461036f575f80fd5b80632f2ff15d116101ae5780632f2ff15d1461020f5780633cb747bf1461022e57806356eff2671461026a5780635777bf501461029d575f80fd5b80630aea8c26146101d457806314298c51146101e957806321425ee0146101fc575b5f80fd5b6101e76101e23660046129c6565b610604565b005b6101e76101f7366004612a7a565b610618565b6101e761020a366004612ab9565b61089d565b34801561021a575f80fd5b506101e7610229366004612aeb565b6108d6565b348015610239575f80fd5b5060995461024d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610275575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102a8575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610261565b3480156102ea575f80fd5b506101e76108ec565b3480156102fe575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102cf565b348015610339575f80fd5b506103617f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610261565b34801561037a575f80fd5b506101e7610a1e565b34801561038e575f80fd5b5060975461024d906001600160a01b031681565b6101e76103b0366004612b19565b610a31565b3480156103c0575f80fd5b506103617f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103f3575f80fd5b506065546001600160a01b031661024d565b348015610410575f80fd5b5061024d61041f366004612bab565b610c21565b34801561042f575f80fd5b506102cf61043e366004612aeb565b610c60565b34801561044e575f80fd5b506101e7610c96565b348015610462575f80fd5b506101e7610dc4565b348015610476575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a9575f80fd5b506101e76104b8366004612bcb565b610eda565b3480156104c8575f80fd5b5061024d6104d7366004612c13565b611018565b3480156104e7575f80fd5b506103616104f6366004612c35565b6110ad565b348015610506575f80fd5b506101e7610515366004612aeb565b6110e2565b348015610525575f80fd5b506103617f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610558575f80fd5b506101e76110f4565b6101e761056f366004612c4c565b61120f565b34801561057f575f80fd5b506101e761058e366004612c8f565b61121b565b34801561059e575f80fd5b506101e76105ad366004612c13565b611330565b3480156105bd575f80fd5b5060985461024d906001600160a01b031681565b3480156105dc575f80fd5b506103617f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b61061185858585856113c0565b5050505050565b6099546001600160a01b03163381146106785760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190612ce8565b6001600160a01b0316736f297c61b5c92ef107ffd30cd56affe5a273e8416001600160a01b03161461074c5760405162461bcd60e51b815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e746578740000000000604482015260640161066f565b610754611764565b7f8431f5c10000000000000000000000000000000000000000000000000000000061078260045f8587612d03565b61078b91612d2a565b7fffffffff0000000000000000000000000000000000000000000000000000000016146107fa5760405162461bcd60e51b815260206004820152601060248201527f696e76616c69642073656c6563746f7200000000000000000000000000000000604482015260640161066f565b5f808061080a8560048189612d03565b8101906108179190612d72565b50945050935050925061082b8383836117bd565b61083f6001600160a01b0384168383611861565b816001600160a01b0316836001600160a01b03167fdbdf8eb487847e4c0f22847f5dac07f2d3690f96f581a6ae4b102769917645a88360405161088491815260200190565b60405180910390a350505061089860018055565b505050565b6108988333845f5b6040519080825280601f01601f1916602001820160405280156108cf576020820181803683370190505b50856113c0565b6108de611910565b6108e8828261196a565b5050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610948576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109727f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c60565b6109a8576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b610a26611910565b610a2f5f6119e0565b565b6099546001600160a01b0316338114610a8c5760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c000000000000000000604482015260640161066f565b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aec9190612ce8565b6097546001600160a01b03908116911614610b495760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e746572706172740000000000000000604482015260640161066f565b610b51611764565b610b6088888888888888611a49565b610b746001600160a01b0389168686611861565b610bb38584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611bc492505050565b856001600160a01b0316876001600160a01b0316896001600160a01b03167fc6f985873b37805705f6bce756dce3d1ff4b603e298d506288cce499926846a788888888604051610c069493929190612dfd565b60405180910390a4610c1760018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c58565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c63565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610cf1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c60565b610d51576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e24576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c60565b610e84576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ef857505f54600160ff909116105b80610f115750303b158015610f1157505f5460ff166001145b610f835760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fc2575f805461ff0019166101001790555b610fcd848484611c84565b8015611012575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611085576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c5a90611dc7565b6110ea611910565b6108e88282611dd0565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611155576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117f7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c60565b6111b5576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b6110128484845f6108a5565b5f54600290610100900460ff1615801561123b57505f5460ff8083169116105b6112ad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112e985858585611e46565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b611338611910565b6001600160a01b0381166113b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161066f565b6113bd816119e0565b50565b6113c8611764565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611434576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611475576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff166114d0576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f03611509576040517f14fc8bd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611515888787612027565b8051919850965090915015611556576040517fb286dd6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0000000000000000000000000000000000000000000000000000000000000000905f90611595908b90849086908d908d908d90602401612e8f565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8431f5c10000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa15801561164e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116729190612edc565b6099546097546040517f5f7b15770000000000000000000000000000000000000000000000000000000081529293506001600160a01b0391821692635f7b15779234926116cc929116905f9088908e908c90600401612ef3565b5f604051808303818588803b1580156116e3575f80fd5b505af11580156116f5573d5f803e3d5ffd5b5050505050836001600160a01b0316836001600160a01b03168c6001600160a01b03167f1a6c38816de45937fd5cd974f9694fe10e64163ba12a92abf0f4b6b23ad886728d8d8d8760405161174d9493929190612f35565b60405180910390a450505050505061061160018055565b6002600154036117b65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161066f565b6002600155565b827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611829576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611012576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b0383166024820152604481018290526108989084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261227d565b60018055565b6065546001600160a01b03163314610a2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161066f565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206119a09082612363565b156108e85760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611ab5576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611b21576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611b81576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611bb9576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b5f8151118015611bdd57505f826001600160a01b03163b115b156108e8576040517f444b281f0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063444b281f90611c27908490600401612f6d565b5f604051808303815f87803b158015611c3e575f80fd5b505af1158015611c50573d5f803e3d5ffd5b505050505050565b5f610c578383612377565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6001600160a01b038316611cda5760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e7465727061727420616464726573730000000000000000604482015260640161066f565b6001600160a01b038116611d305760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e676572206164647265737300000000000000000000604482015260640161066f565b611d3861239d565b611d40612421565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561089857609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c5a825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611e0690826124a5565b156108e85760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611ec25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611f4a3390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611fa97f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a8661196a565b611fd37f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d68561196a565b611ffd7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d8461196a565b6106117f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c8361196a565b6098545f908190606090339081906001600160a01b03168190036120f757858060200190518101906120599190612f7f565b6040517fc52a3bbc0000000000000000000000000000000000000000000000000000000081526001600160a01b0380841660048301528b81166024830152604482018b905291985091925083169063c52a3bbc906064016020604051808303815f875af11580156120cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120f09190612edc565b9650612221565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612154573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121789190612edc565b905061218f6001600160a01b038a1683308b6124b9565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038b16906370a0823190602401602060405180830381865afa1580156121ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122109190612edc565b905061221c8282613007565b985050505b5f87116122705760405162461bcd60e51b815260206004820152601360248201527f6465706f736974207a65726f20616d6f756e7400000000000000000000000000604482015260640161066f565b9795965093949350505050565b5f6122d1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661250a9092919063ffffffff16565b905080515f14806122f15750808060200190518101906122f1919061303f565b6108985760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161066f565b5f610c57836001600160a01b038416612520565b5f825f01828154811061238c5761238c61305e565b905f5260205f200154905092915050565b5f54610100900460ff166124195760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f61256c565b5f54610100900460ff1661249d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f6125e8565b5f610c57836001600160a01b03841661266d565b6040516001600160a01b03808516602483015283166044820152606481018290526110129085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016118a6565b606061251884845f85612750565b949350505050565b5f81815260018301602052604081205461256557508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c5a565b505f610c5a565b5f54610100900460ff1661190a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b5f54610100900460ff166126645760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f336119e0565b5f8181526001830160205260408120548015612747575f61268f600183613007565b85549091505f906126a290600190613007565b9050818114612701575f865f0182815481106126c0576126c061305e565b905f5260205f200154905080875f0184815481106126e0576126e061305e565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806127125761271261308b565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c5a565b5f915050610c5a565b6060824710156127c85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161066f565b5f80866001600160a01b031685876040516127e391906130b8565b5f6040518083038185875af1925050503d805f811461281d576040519150601f19603f3d011682016040523d82523d5f602084013e612822565b606091505b50915091506128338783838761283e565b979650505050505050565b606083156128ac5782515f036128a5576001600160a01b0385163b6128a55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161066f565b5081612518565b61251883838151156128c15781518083602001fd5b8060405162461bcd60e51b815260040161066f9190612f6d565b6001600160a01b03811681146113bd575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612945576129456128ef565b604052919050565b5f67ffffffffffffffff821115612966576129666128ef565b50601f01601f191660200190565b5f82601f830112612983575f80fd5b81356129966129918261294d565b61291c565b8181528460208386010111156129aa575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a086880312156129da575f80fd5b85356129e5816128db565b945060208601356129f5816128db565b935060408601359250606086013567ffffffffffffffff811115612a17575f80fd5b612a2388828901612974565b95989497509295608001359392505050565b5f8083601f840112612a45575f80fd5b50813567ffffffffffffffff811115612a5c575f80fd5b602083019150836020828501011115612a73575f80fd5b9250929050565b5f8060208385031215612a8b575f80fd5b823567ffffffffffffffff811115612aa1575f80fd5b612aad85828601612a35565b90969095509350505050565b5f805f60608486031215612acb575f80fd5b8335612ad6816128db565b95602085013595506040909401359392505050565b5f8060408385031215612afc575f80fd5b823591506020830135612b0e816128db565b809150509250929050565b5f805f805f805f60c0888a031215612b2f575f80fd5b8735612b3a816128db565b96506020880135612b4a816128db565b95506040880135612b5a816128db565b94506060880135612b6a816128db565b93506080880135925060a088013567ffffffffffffffff811115612b8c575f80fd5b612b988a828b01612a35565b989b979a50959850939692959293505050565b5f8060408385031215612bbc575f80fd5b50508035926020909101359150565b5f805f60608486031215612bdd575f80fd5b8335612be8816128db565b92506020840135612bf8816128db565b91506040840135612c08816128db565b809150509250925092565b5f60208284031215612c23575f80fd5b8135612c2e816128db565b9392505050565b5f60208284031215612c45575f80fd5b5035919050565b5f805f8060808587031215612c5f575f80fd5b8435612c6a816128db565b93506020850135612c7a816128db565b93969395505050506040820135916060013590565b5f805f8060808587031215612ca2575f80fd5b8435612cad816128db565b93506020850135612cbd816128db565b92506040850135612ccd816128db565b91506060850135612cdd816128db565b939692955090935050565b5f60208284031215612cf8575f80fd5b8151612c2e816128db565b5f8085851115612d11575f80fd5b83861115612d1d575f80fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015612d6a5780818660040360031b1b83161692505b505092915050565b5f805f805f8060c08789031215612d87575f80fd5b8635612d92816128db565b95506020870135612da2816128db565b94506040870135612db2816128db565b93506060870135612dc2816128db565b92506080870135915060a087013567ffffffffffffffff811115612de4575f80fd5b612df089828a01612974565b9150509295509295509295565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f5b83811015612e5c578181015183820152602001612e44565b50505f910152565b5f8151808452612e7b816020860160208601612e42565b601f01601f19169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612ed060c0830184612e64565b98975050505050505050565b5f60208284031215612eec575f80fd5b5051919050565b5f6001600160a01b03808816835286602084015260a06040840152612f1b60a0840187612e64565b606084019590955292909216608090910152509392505050565b6001600160a01b0385168152836020820152608060408201525f612f5c6080830185612e64565b905082606083015295945050505050565b602081525f610c576020830184612e64565b5f8060408385031215612f90575f80fd5b8251612f9b816128db565b602084015190925067ffffffffffffffff811115612fb7575f80fd5b8301601f81018513612fc7575f80fd5b8051612fd56129918261294d565b818152866020838501011115612fe9575f80fd5b612ffa826020830160208601612e42565b8093505050509250929050565b81810381811115610c5a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6020828403121561304f575f80fd5b81518015158114612c2e575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82516130c9818460208701612e42565b919091019291505056fea164736f6c6343000818000a", } // L1LidoGatewayABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/l1lidogateway_more.go b/bindings/bindings/l1lidogateway_more.go index bd41e634b..7d00319ce 100644 --- a/bindings/bindings/l1lidogateway_more.go +++ b/bindings/bindings/l1lidogateway_more.go @@ -13,7 +13,7 @@ const L1LidoGatewayStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract var L1LidoGatewayStorageLayout = new(solc.StorageLayout) -var L1LidoGatewayDeployedBin = "0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063d547741f11610092578063f27ebced11610062578063f27ebced146105a8578063f2fde38b146105c7578063f887ea40146105e6578063fadcc54a14610612575f80fd5b8063d547741f1461052f578063e3b523e31461054e578063e8bac93b14610581578063f219fa6614610595575f80fd5b8063c01e1bd6116100cd578063c01e1bd61461049f578063c0c53b8b146104d2578063c676ad29146104f1578063ca15c87314610510575f80fd5b80639010d07c1461043957806391d1485414610458578063ac67e1af14610477578063ad960ce11461048b575f80fd5b80635e4c57a411610173578063797594b011610143578063797594b01461039d57806384bd13b0146103c95780638d7601c0146103dc5780638da5cb5b1461040f575f80fd5b80635e4c57a4146102f95780635ed2c2201461030d5780636f18bd2214610348578063715018a614610389575f80fd5b80632f2ff15d116101ae5780632f2ff15d1461020f5780633cb747bf1461022e57806356eff267146102845780635777bf50146102b7575f80fd5b80630aea8c26146101d457806314298c51146101e957806321425ee0146101fc575b5f80fd5b6101e76101e236600461305d565b610645565b005b6101e76101f7366004613111565b610659565b6101e761020a366004613150565b610987565b34801561021a575f80fd5b506101e7610229366004613182565b6109c0565b348015610239575f80fd5b5060995461025a9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561028f575f80fd5b5061025a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c2575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b604051901515815260200161027b565b348015610304575f80fd5b506101e76109d6565b348015610318575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102e9565b348015610353575f80fd5b5061037b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b60405190815260200161027b565b348015610394575f80fd5b506101e7610b08565b3480156103a8575f80fd5b5060975461025a9073ffffffffffffffffffffffffffffffffffffffff1681565b6101e76103d73660046131b0565b610b1b565b3480156103e7575f80fd5b5061037b7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b34801561041a575f80fd5b5060655473ffffffffffffffffffffffffffffffffffffffff1661025a565b348015610444575f80fd5b5061025a610453366004613242565b610d9a565b348015610463575f80fd5b506102e9610472366004613182565b610dd9565b348015610482575f80fd5b506101e7610e0f565b348015610496575f80fd5b506101e7610f3d565b3480156104aa575f80fd5b5061025a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104dd575f80fd5b506101e76104ec366004613262565b611070565b3480156104fc575f80fd5b5061025a61050b3660046132aa565b611202565b34801561051b575f80fd5b5061037b61052a3660046132cc565b6112b1565b34801561053a575f80fd5b506101e7610549366004613182565b6112e6565b348015610559575f80fd5b5061037b7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b34801561058c575f80fd5b506101e76112f8565b6101e76105a33660046132e3565b611430565b3480156105b3575f80fd5b506101e76105c2366004613326565b61143c565b3480156105d2575f80fd5b506101e76105e13660046132aa565b611588565b3480156105f1575f80fd5b5060985461025a9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561061d575f80fd5b5061037b7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b610652858585858561163f565b5050505050565b60995473ffffffffffffffffffffffffffffffffffffffff163381146106e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610729573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074d919061337f565b73ffffffffffffffffffffffffffffffffffffffff16736f297c61b5c92ef107ffd30cd56affe5a273e84173ffffffffffffffffffffffffffffffffffffffff16146107f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e74657874000000000060448201526064016106d7565b6107fd611a85565b7f8431f5c10000000000000000000000000000000000000000000000000000000061082b60045f858761339a565b610834916133c1565b7fffffffff0000000000000000000000000000000000000000000000000000000016146108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f696e76616c69642073656c6563746f720000000000000000000000000000000060448201526064016106d7565b5f80806108cd856004818961339a565b8101906108da9190613409565b5094505093505092506108ee838383611af8565b61090f73ffffffffffffffffffffffffffffffffffffffff84168383611bb6565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fdbdf8eb487847e4c0f22847f5dac07f2d3690f96f581a6ae4b102769917645a88360405161096e91815260200190565b60405180910390a350505061098260018055565b505050565b6109828333845f5b6040519080825280601f01601f1916602001820160405280156109b9576020820181803683370190505b508561163f565b6109c8611c90565b6109d28282611d11565b5050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610a32576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a5c7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610dd9565b610a92576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b610b10611c90565b610b195f611d94565b565b60995473ffffffffffffffffffffffffffffffffffffffff16338114610b9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064016106d7565b8073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0a919061337f565b60975473ffffffffffffffffffffffffffffffffffffffff908116911614610c8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e74657270617274000000000000000060448201526064016106d7565b610c96611a85565b610ca588888888888888611e0a565b610cc673ffffffffffffffffffffffffffffffffffffffff89168686611bb6565b610d058584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611fb992505050565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fc6f985873b37805705f6bce756dce3d1ff4b603e298d506288cce499926846a788888888604051610d7f9493929190613494565b60405180910390a4610d9060018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610dd09083612067565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610dd09083612072565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610e6a576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e947f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610dd9565b610eca576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610f9d576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fc77f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610dd9565b610ffd576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff161580801561108e57505f54600160ff909116105b806110a75750303b1580156110a757505f5460ff166001145b611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106d7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561118f575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61119a8484846120a0565b80156111fc575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611289576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610dd39061224b565b6112ee611c90565b6109d28282612254565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611359576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113837f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610dd9565b6113b9576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b6111fc8484845f61098f565b5f54600290610100900460ff1615801561145c57505f5460ff8083169116105b6114e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106d7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611524858585856122d7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b611590611c90565b73ffffffffffffffffffffffffffffffffffffffff8116611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d7565b61163c81611d94565b50565b611647611a85565b847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146116cd576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff811661171b576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16611776576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036117af576040517f14fc8bd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6117bb8887876124fc565b80519198509650909150156117fc576040517fb286dd6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f887f0000000000000000000000000000000000000000000000000000000000000000838a8a8a6040516024016118389695949392919061356f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8431f5c10000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f9373ffffffffffffffffffffffffffffffffffffffff9091169263ecc704289260048083019391928290030181865afa15801561191c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194091906135c9565b6099546097546040517f5f7b157700000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff91821692635f7b15779234926119a7929116905f9088908d908b906004016135e0565b5f604051808303818588803b1580156119be575f80fd5b505af11580156119d0573d5f803e3d5ffd5b50505050508273ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f1a6c38816de45937fd5cd974f9694fe10e64163ba12a92abf0f4b6b23ad886728c8c8c87604051611a6f949392919061362f565b60405180910390a4505050505061065260018055565b600260015403611af1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106d7565b6002600155565b827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b7e576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34156111fc576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109829084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526127ad565b60018055565b60655473ffffffffffffffffffffffffffffffffffffffff163314610b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d7565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611d4790826128ba565b156109d257604051339073ffffffffffffffffffffffffffffffffffffffff83169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e90576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611f16576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611f76576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611fae576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b5f8151118015611fdf57505f8273ffffffffffffffffffffffffffffffffffffffff163b115b156109d2576040517f444b281f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063444b281f90612036908490600401613674565b5f604051808303815f87803b15801561204d575f80fd5b505af115801561205f573d5f803e3d5ffd5b505050505050565b5f610dd083836128db565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610dd0565b73ffffffffffffffffffffffffffffffffffffffff831661211d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f7a65726f20636f756e746572706172742061646472657373000000000000000060448201526064016106d7565b73ffffffffffffffffffffffffffffffffffffffff811661219a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7a65726f206d657373656e67657220616464726573730000000000000000000060448201526064016106d7565b6121a2612901565b6121aa61299f565b6097805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609980548484169216919091179055821615610982576098805473ffffffffffffffffffffffffffffffffffffffff84167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610dd3825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed6020526040902061228a9082612a3d565b156109d257604051339073ffffffffffffffffffffffffffffffffffffffff83169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff1661236d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001781556124123390565b73ffffffffffffffffffffffffffffffffffffffff167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a261247e7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a86611d11565b6124a87f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d685611d11565b6124d27f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d84611d11565b6106527f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c83611d11565b6098545f9081906060903390819073ffffffffffffffffffffffffffffffffffffffff168190036125e6578580602001905181019061253b9190613686565b6040517fc52a3bbc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80841660048301528b81166024830152604482018b905291985091925083169063c52a3bbc906064016020604051808303815f875af11580156125bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125df91906135c9565b9650612737565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9073ffffffffffffffffffffffffffffffffffffffff8a16906370a0823190602401602060405180830381865afa158015612650573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061267491906135c9565b905061269873ffffffffffffffffffffffffffffffffffffffff8a1683308b612a5e565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9073ffffffffffffffffffffffffffffffffffffffff8b16906370a0823190602401602060405180830381865afa158015612702573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272691906135c9565b9050612732828261370e565b985050505b5f87116127a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6465706f736974207a65726f20616d6f756e740000000000000000000000000060448201526064016106d7565b9795965093949350505050565b5f61280e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612abc9092919063ffffffff16565b905080515f148061282e57508080602001905181019061282e9190613746565b610982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106d7565b5f610dd08373ffffffffffffffffffffffffffffffffffffffff8416612ad2565b5f825f0182815481106128f0576128f0613765565b905f5260205f200154905092915050565b5f54610100900460ff16612997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b610b19612b1e565b5f54610100900460ff16612a35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b610b19612bb4565b5f610dd08373ffffffffffffffffffffffffffffffffffffffff8416612c53565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526111fc9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611c08565b6060612aca84845f85612d36565b949350505050565b5f818152600183016020526040812054612b1757508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610dd3565b505f610dd3565b5f54610100900460ff16611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b5f54610100900460ff16612c4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b610b1933611d94565b5f8181526001830160205260408120548015612d2d575f612c7560018361370e565b85549091505f90612c889060019061370e565b9050818114612ce7575f865f018281548110612ca657612ca6613765565b905f5260205f200154905080875f018481548110612cc657612cc6613765565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612cf857612cf8613792565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610dd3565b5f915050610dd3565b606082471015612dc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106d7565b5f808673ffffffffffffffffffffffffffffffffffffffff168587604051612df091906137bf565b5f6040518083038185875af1925050503d805f8114612e2a576040519150601f19603f3d011682016040523d82523d5f602084013e612e2f565b606091505b5091509150612e4087838387612e4b565b979650505050505050565b60608315612ee05782515f03612ed95773ffffffffffffffffffffffffffffffffffffffff85163b612ed9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106d7565b5081612aca565b612aca8383815115612ef55781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d79190613674565b73ffffffffffffffffffffffffffffffffffffffff8116811461163c575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612fbe57612fbe612f4a565b604052919050565b5f67ffffffffffffffff821115612fdf57612fdf612f4a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f83011261301a575f80fd5b813561302d61302882612fc6565b612f77565b818152846020838601011115613041575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215613071575f80fd5b853561307c81612f29565b9450602086013561308c81612f29565b935060408601359250606086013567ffffffffffffffff8111156130ae575f80fd5b6130ba8882890161300b565b95989497509295608001359392505050565b5f8083601f8401126130dc575f80fd5b50813567ffffffffffffffff8111156130f3575f80fd5b60208301915083602082850101111561310a575f80fd5b9250929050565b5f8060208385031215613122575f80fd5b823567ffffffffffffffff811115613138575f80fd5b613144858286016130cc565b90969095509350505050565b5f805f60608486031215613162575f80fd5b833561316d81612f29565b95602085013595506040909401359392505050565b5f8060408385031215613193575f80fd5b8235915060208301356131a581612f29565b809150509250929050565b5f805f805f805f60c0888a0312156131c6575f80fd5b87356131d181612f29565b965060208801356131e181612f29565b955060408801356131f181612f29565b9450606088013561320181612f29565b93506080880135925060a088013567ffffffffffffffff811115613223575f80fd5b61322f8a828b016130cc565b989b979a50959850939692959293505050565b5f8060408385031215613253575f80fd5b50508035926020909101359150565b5f805f60608486031215613274575f80fd5b833561327f81612f29565b9250602084013561328f81612f29565b9150604084013561329f81612f29565b809150509250925092565b5f602082840312156132ba575f80fd5b81356132c581612f29565b9392505050565b5f602082840312156132dc575f80fd5b5035919050565b5f805f80608085870312156132f6575f80fd5b843561330181612f29565b9350602085013561331181612f29565b93969395505050506040820135916060013590565b5f805f8060808587031215613339575f80fd5b843561334481612f29565b9350602085013561335481612f29565b9250604085013561336481612f29565b9150606085013561337481612f29565b939692955090935050565b5f6020828403121561338f575f80fd5b81516132c581612f29565b5f80858511156133a8575f80fd5b838611156133b4575f80fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156134015780818660040360031b1b83161692505b505092915050565b5f805f805f8060c0878903121561341e575f80fd5b863561342981612f29565b9550602087013561343981612f29565b9450604087013561344981612f29565b9350606087013561345981612f29565b92506080870135915060a087013567ffffffffffffffff81111561347b575f80fd5b61348789828a0161300b565b9150509295509295509295565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b8381101561351e578181015183820152602001613506565b50505f910152565b5f815180845261353d816020860160208601613504565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f73ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a08301526135bd60c0830184613526565b98975050505050505050565b5f602082840312156135d9575f80fd5b5051919050565b5f73ffffffffffffffffffffffffffffffffffffffff808816835286602084015260a0604084015261361560a0840187613526565b606084019590955292909216608090910152509392505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f6136636080830185613526565b905082606083015295945050505050565b602081525f610dd06020830184613526565b5f8060408385031215613697575f80fd5b82516136a281612f29565b602084015190925067ffffffffffffffff8111156136be575f80fd5b8301601f810185136136ce575f80fd5b80516136dc61302882612fc6565b8181528660208385010111156136f0575f80fd5b613701826020830160208601613504565b8093505050509250929050565b81810381811115610dd3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f60208284031215613756575f80fd5b815180151581146132c5575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82516137d0818460208701613504565b919091019291505056fea164736f6c6343000818000a" +var L1LidoGatewayDeployedBin = "0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063d547741f11610092578063f27ebced11610062578063f27ebced146105a8578063f2fde38b146105c7578063f887ea40146105e6578063fadcc54a14610612575f80fd5b8063d547741f1461052f578063e3b523e31461054e578063e8bac93b14610581578063f219fa6614610595575f80fd5b8063c01e1bd6116100cd578063c01e1bd61461049f578063c0c53b8b146104d2578063c676ad29146104f1578063ca15c87314610510575f80fd5b80639010d07c1461043957806391d1485414610458578063ac67e1af14610477578063ad960ce11461048b575f80fd5b80635e4c57a411610173578063797594b011610143578063797594b01461039d57806384bd13b0146103c95780638d7601c0146103dc5780638da5cb5b1461040f575f80fd5b80635e4c57a4146102f95780635ed2c2201461030d5780636f18bd2214610348578063715018a614610389575f80fd5b80632f2ff15d116101ae5780632f2ff15d1461020f5780633cb747bf1461022e57806356eff267146102845780635777bf50146102b7575f80fd5b80630aea8c26146101d457806314298c51146101e957806321425ee0146101fc575b5f80fd5b6101e76101e2366004613041565b610645565b005b6101e76101f73660046130f5565b610659565b6101e761020a366004613134565b610987565b34801561021a575f80fd5b506101e7610229366004613166565b6109c0565b348015610239575f80fd5b5060995461025a9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561028f575f80fd5b5061025a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c2575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b604051901515815260200161027b565b348015610304575f80fd5b506101e76109d6565b348015610318575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102e9565b348015610353575f80fd5b5061037b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b60405190815260200161027b565b348015610394575f80fd5b506101e7610b08565b3480156103a8575f80fd5b5060975461025a9073ffffffffffffffffffffffffffffffffffffffff1681565b6101e76103d7366004613194565b610b1b565b3480156103e7575f80fd5b5061037b7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b34801561041a575f80fd5b5060655473ffffffffffffffffffffffffffffffffffffffff1661025a565b348015610444575f80fd5b5061025a610453366004613226565b610d9a565b348015610463575f80fd5b506102e9610472366004613166565b610dd9565b348015610482575f80fd5b506101e7610e0f565b348015610496575f80fd5b506101e7610f3d565b3480156104aa575f80fd5b5061025a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104dd575f80fd5b506101e76104ec366004613246565b611070565b3480156104fc575f80fd5b5061025a61050b36600461328e565b611202565b34801561051b575f80fd5b5061037b61052a3660046132b0565b6112b1565b34801561053a575f80fd5b506101e7610549366004613166565b6112e6565b348015610559575f80fd5b5061037b7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b34801561058c575f80fd5b506101e76112f8565b6101e76105a33660046132c7565b611430565b3480156105b3575f80fd5b506101e76105c236600461330a565b61143c565b3480156105d2575f80fd5b506101e76105e136600461328e565b611588565b3480156105f1575f80fd5b5060985461025a9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561061d575f80fd5b5061037b7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b610652858585858561163f565b5050505050565b60995473ffffffffffffffffffffffffffffffffffffffff163381146106e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610729573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074d9190613363565b73ffffffffffffffffffffffffffffffffffffffff16736f297c61b5c92ef107ffd30cd56affe5a273e84173ffffffffffffffffffffffffffffffffffffffff16146107f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e74657874000000000060448201526064016106d7565b6107fd611a69565b7f8431f5c10000000000000000000000000000000000000000000000000000000061082b60045f858761337e565b610834916133a5565b7fffffffff0000000000000000000000000000000000000000000000000000000016146108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f696e76616c69642073656c6563746f720000000000000000000000000000000060448201526064016106d7565b5f80806108cd856004818961337e565b8101906108da91906133ed565b5094505093505092506108ee838383611adc565b61090f73ffffffffffffffffffffffffffffffffffffffff84168383611b9a565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fdbdf8eb487847e4c0f22847f5dac07f2d3690f96f581a6ae4b102769917645a88360405161096e91815260200190565b60405180910390a350505061098260018055565b505050565b6109828333845f5b6040519080825280601f01601f1916602001820160405280156109b9576020820181803683370190505b508561163f565b6109c8611c74565b6109d28282611cf5565b5050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610a32576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a5c7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610dd9565b610a92576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b610b10611c74565b610b195f611d78565b565b60995473ffffffffffffffffffffffffffffffffffffffff16338114610b9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064016106d7565b8073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0a9190613363565b60975473ffffffffffffffffffffffffffffffffffffffff908116911614610c8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e74657270617274000000000000000060448201526064016106d7565b610c96611a69565b610ca588888888888888611dee565b610cc673ffffffffffffffffffffffffffffffffffffffff89168686611b9a565b610d058584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611f9d92505050565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fc6f985873b37805705f6bce756dce3d1ff4b603e298d506288cce499926846a788888888604051610d7f9493929190613478565b60405180910390a4610d9060018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610dd0908361204b565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610dd09083612056565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610e6a576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e947f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610dd9565b610eca576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610f9d576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fc77f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610dd9565b610ffd576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff161580801561108e57505f54600160ff909116105b806110a75750303b1580156110a757505f5460ff166001145b611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106d7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561118f575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61119a848484612084565b80156111fc575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611289576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610dd39061222f565b6112ee611c74565b6109d28282612238565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611359576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113837f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610dd9565b6113b9576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b6111fc8484845f61098f565b5f54600290610100900460ff1615801561145c57505f5460ff8083169116105b6114e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106d7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611524858585856122bb565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b611590611c74565b73ffffffffffffffffffffffffffffffffffffffff8116611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d7565b61163c81611d78565b50565b611647611a69565b847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146116cd576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff811661171b576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16611776576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036117af576040517f14fc8bd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6117bb8887876124e0565b80519198509650909150156117fc576040517fb286dd6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0000000000000000000000000000000000000000000000000000000000000000905f9061183b908b90849086908d908d908d90602401613553565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8431f5c10000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f9373ffffffffffffffffffffffffffffffffffffffff9091169263ecc704289260048083019391928290030181865afa15801561191f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194391906135ad565b6099546097546040517f5f7b157700000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff91821692635f7b15779234926119aa929116905f9088908e908c906004016135c4565b5f604051808303818588803b1580156119c1575f80fd5b505af11580156119d3573d5f803e3d5ffd5b50505050508373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f1a6c38816de45937fd5cd974f9694fe10e64163ba12a92abf0f4b6b23ad886728d8d8d87604051611a529493929190613613565b60405180910390a450505050505061065260018055565b600260015403611ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106d7565b6002600155565b827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b62576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34156111fc576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109829084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612791565b60018055565b60655473ffffffffffffffffffffffffffffffffffffffff163314610b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d7565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611d2b908261289e565b156109d257604051339073ffffffffffffffffffffffffffffffffffffffff83169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e74576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611efa576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611f5a576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611f92576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b5f8151118015611fc357505f8273ffffffffffffffffffffffffffffffffffffffff163b115b156109d2576040517f444b281f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063444b281f9061201a908490600401613658565b5f604051808303815f87803b158015612031575f80fd5b505af1158015612043573d5f803e3d5ffd5b505050505050565b5f610dd083836128bf565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610dd0565b73ffffffffffffffffffffffffffffffffffffffff8316612101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f7a65726f20636f756e746572706172742061646472657373000000000000000060448201526064016106d7565b73ffffffffffffffffffffffffffffffffffffffff811661217e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7a65726f206d657373656e67657220616464726573730000000000000000000060448201526064016106d7565b6121866128e5565b61218e612983565b6097805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609980548484169216919091179055821615610982576098805473ffffffffffffffffffffffffffffffffffffffff84167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610dd3825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed6020526040902061226e9082612a21565b156109d257604051339073ffffffffffffffffffffffffffffffffffffffff83169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16612351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001781556123f63390565b73ffffffffffffffffffffffffffffffffffffffff167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a26124627f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a86611cf5565b61248c7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d685611cf5565b6124b67f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d84611cf5565b6106527f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c83611cf5565b6098545f9081906060903390819073ffffffffffffffffffffffffffffffffffffffff168190036125ca578580602001905181019061251f919061366a565b6040517fc52a3bbc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80841660048301528b81166024830152604482018b905291985091925083169063c52a3bbc906064016020604051808303815f875af115801561259f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125c391906135ad565b965061271b565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9073ffffffffffffffffffffffffffffffffffffffff8a16906370a0823190602401602060405180830381865afa158015612634573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061265891906135ad565b905061267c73ffffffffffffffffffffffffffffffffffffffff8a1683308b612a42565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9073ffffffffffffffffffffffffffffffffffffffff8b16906370a0823190602401602060405180830381865afa1580156126e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061270a91906135ad565b905061271682826136f2565b985050505b5f8711612784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6465706f736974207a65726f20616d6f756e740000000000000000000000000060448201526064016106d7565b9795965093949350505050565b5f6127f2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612aa09092919063ffffffff16565b905080515f1480612812575080806020019051810190612812919061372a565b610982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106d7565b5f610dd08373ffffffffffffffffffffffffffffffffffffffff8416612ab6565b5f825f0182815481106128d4576128d4613749565b905f5260205f200154905092915050565b5f54610100900460ff1661297b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b610b19612b02565b5f54610100900460ff16612a19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b610b19612b98565b5f610dd08373ffffffffffffffffffffffffffffffffffffffff8416612c37565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526111fc9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611bec565b6060612aae84845f85612d1a565b949350505050565b5f818152600183016020526040812054612afb57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610dd3565b505f610dd3565b5f54610100900460ff16611c6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b5f54610100900460ff16612c2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b610b1933611d78565b5f8181526001830160205260408120548015612d11575f612c596001836136f2565b85549091505f90612c6c906001906136f2565b9050818114612ccb575f865f018281548110612c8a57612c8a613749565b905f5260205f200154905080875f018481548110612caa57612caa613749565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612cdc57612cdc613776565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610dd3565b5f915050610dd3565b606082471015612dac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106d7565b5f808673ffffffffffffffffffffffffffffffffffffffff168587604051612dd491906137a3565b5f6040518083038185875af1925050503d805f8114612e0e576040519150601f19603f3d011682016040523d82523d5f602084013e612e13565b606091505b5091509150612e2487838387612e2f565b979650505050505050565b60608315612ec45782515f03612ebd5773ffffffffffffffffffffffffffffffffffffffff85163b612ebd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106d7565b5081612aae565b612aae8383815115612ed95781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d79190613658565b73ffffffffffffffffffffffffffffffffffffffff8116811461163c575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612fa257612fa2612f2e565b604052919050565b5f67ffffffffffffffff821115612fc357612fc3612f2e565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f830112612ffe575f80fd5b813561301161300c82612faa565b612f5b565b818152846020838601011115613025575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215613055575f80fd5b853561306081612f0d565b9450602086013561307081612f0d565b935060408601359250606086013567ffffffffffffffff811115613092575f80fd5b61309e88828901612fef565b95989497509295608001359392505050565b5f8083601f8401126130c0575f80fd5b50813567ffffffffffffffff8111156130d7575f80fd5b6020830191508360208285010111156130ee575f80fd5b9250929050565b5f8060208385031215613106575f80fd5b823567ffffffffffffffff81111561311c575f80fd5b613128858286016130b0565b90969095509350505050565b5f805f60608486031215613146575f80fd5b833561315181612f0d565b95602085013595506040909401359392505050565b5f8060408385031215613177575f80fd5b82359150602083013561318981612f0d565b809150509250929050565b5f805f805f805f60c0888a0312156131aa575f80fd5b87356131b581612f0d565b965060208801356131c581612f0d565b955060408801356131d581612f0d565b945060608801356131e581612f0d565b93506080880135925060a088013567ffffffffffffffff811115613207575f80fd5b6132138a828b016130b0565b989b979a50959850939692959293505050565b5f8060408385031215613237575f80fd5b50508035926020909101359150565b5f805f60608486031215613258575f80fd5b833561326381612f0d565b9250602084013561327381612f0d565b9150604084013561328381612f0d565b809150509250925092565b5f6020828403121561329e575f80fd5b81356132a981612f0d565b9392505050565b5f602082840312156132c0575f80fd5b5035919050565b5f805f80608085870312156132da575f80fd5b84356132e581612f0d565b935060208501356132f581612f0d565b93969395505050506040820135916060013590565b5f805f806080858703121561331d575f80fd5b843561332881612f0d565b9350602085013561333881612f0d565b9250604085013561334881612f0d565b9150606085013561335881612f0d565b939692955090935050565b5f60208284031215613373575f80fd5b81516132a981612f0d565b5f808585111561338c575f80fd5b83861115613398575f80fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156133e55780818660040360031b1b83161692505b505092915050565b5f805f805f8060c08789031215613402575f80fd5b863561340d81612f0d565b9550602087013561341d81612f0d565b9450604087013561342d81612f0d565b9350606087013561343d81612f0d565b92506080870135915060a087013567ffffffffffffffff81111561345f575f80fd5b61346b89828a01612fef565b9150509295509295509295565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b838110156135025781810151838201526020016134ea565b50505f910152565b5f81518084526135218160208601602086016134e8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f73ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a08301526135a160c083018461350a565b98975050505050505050565b5f602082840312156135bd575f80fd5b5051919050565b5f73ffffffffffffffffffffffffffffffffffffffff808816835286602084015260a060408401526135f960a084018761350a565b606084019590955292909216608090910152509392505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f613647608083018561350a565b905082606083015295945050505050565b602081525f610dd0602083018461350a565b5f806040838503121561367b575f80fd5b825161368681612f0d565b602084015190925067ffffffffffffffff8111156136a2575f80fd5b8301601f810185136136b2575f80fd5b80516136c061300c82612faa565b8181528660208385010111156136d4575f80fd5b6136e58260208301602086016134e8565b8093505050509250929050565b81810381811115610dd3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6020828403121561373a575f80fd5b815180151581146132a9575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82516137b48184602087016134e8565b919091019291505056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L1LidoGatewayStorageLayoutJSON), L1LidoGatewayStorageLayout); err != nil { diff --git a/bindings/bindings/l2lidogateway.go b/bindings/bindings/l2lidogateway.go index c89dfd68f..9fe8b16df 100644 --- a/bindings/bindings/l2lidogateway.go +++ b/bindings/bindings/l2lidogateway.go @@ -31,8 +31,8 @@ var ( // L2LidoGatewayMetaData contains all meta data concerning the L2LidoGateway contract. var L2LidoGatewayMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrorAccountIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNonZeroMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL1Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL2Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawAndCallIsNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"DepositsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"DepositsEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"FinalizeDepositERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"WithdrawERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPOSITS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"finalizeDepositERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"}],\"name\":\"getL1ERC20Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"}],\"name\":\"getL2ERC20Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_depositsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_depositsDisabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsDisabler\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isWithdrawalsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20AndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]", - Bin: "0x60c060405234801562000010575f80fd5b50604051620029a6380380620029a68339810160408190526200003391620001dc565b6001600160a01b03808316608081905290821660a0526200009b5760405162461bcd60e51b815260206004820152601460248201527f7a65726f206c31746f6b656e206164647265737300000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038116620000f35760405162461bcd60e51b815260206004820152601460248201527f7a65726f206c32546f6b656e2061646472657373000000000000000000000000604482015260640162000092565b620000fd62000105565b505062000212565b5f54610100900460ff16156200016e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000092565b5f5460ff90811614620001be575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114620001d7575f80fd5b919050565b5f8060408385031215620001ee575f80fd5b620001f983620001c0565b91506200020960208401620001c0565b90509250929050565b60805160a051612733620002735f395f81816102610152818161062a01528181610a1d01528181611077015261147e01525f818161049b01528181610696015281816109b10152818161100b015281816116a1015261187101526127335ff3fe6080604052600436106101d0575f3560e01c80639010d07c116100fd578063ca15c87311610092578063f27ebced11610062578063f27ebced14610580578063f2fde38b1461059f578063f887ea40146105be578063fadcc54a146105dd575f80fd5b8063ca15c873146104fb578063d547741f1461051a578063e3b523e314610539578063e8bac93b1461056c575f80fd5b8063ad960ce1116100cd578063ad960ce114610476578063c01e1bd61461048a578063c0c53b8b146104bd578063c676ad29146104dc575f80fd5b80639010d07c1461041157806391d1485414610430578063a93a4af91461044f578063ac67e1af14610462575f80fd5b80635ed2c22011610173578063797594b011610143578063797594b01461038f5780638431f5c1146103ae5780638d7601c0146103c15780638da5cb5b146103f4575f80fd5b80635ed2c220146102ec5780636c07ea43146103275780636f18bd221461033a578063715018a61461037b575f80fd5b806356eff267116101ae57806356eff26714610250578063575361b6146102835780635777bf50146102965780635e4c57a4146102d8575f80fd5b80632f2ff15d146101d45780633cb747bf146101f557806354bbd59c14610231575b5f80fd5b3480156101df575f80fd5b506101f36101ee36600461211c565b610610565b005b348015610200575f80fd5b50609954610214906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023c575f80fd5b5061021461024b36600461214a565b610626565b34801561025b575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b6101f36102913660046121b1565b6106bb565b3480156102a1575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610228565b3480156102e3575f80fd5b506101f3610706565b3480156102f7575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102c8565b6101f3610335366004612227565b610838565b348015610345575f80fd5b5061036d7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610228565b348015610386575f80fd5b506101f3610876565b34801561039a575f80fd5b50609754610214906001600160a01b031681565b6101f36103bc366004612259565b610889565b3480156103cc575f80fd5b5061036d7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103ff575f80fd5b506065546001600160a01b0316610214565b34801561041c575f80fd5b5061021461042b3660046122eb565b610bff565b34801561043b575f80fd5b506102c861044a36600461211c565b610c3e565b6101f361045d36600461230b565b610c74565b34801561046d575f80fd5b506101f3610c86565b348015610481575f80fd5b506101f3610db4565b348015610495575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c8575f80fd5b506101f36104d736600461234e565b610eca565b3480156104e7575f80fd5b506102146104f636600461214a565b611007565b348015610506575f80fd5b5061036d610515366004612396565b61109c565b348015610525575f80fd5b506101f361053436600461211c565b6110d1565b348015610544575f80fd5b5061036d7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610577575f80fd5b506101f36110e3565b34801561058b575f80fd5b506101f361059a3660046123ad565b6111fe565b3480156105aa575f80fd5b506101f36105b936600461214a565b611313565b3480156105c9575f80fd5b50609854610214906001600160a01b031681565b3480156105e8575f80fd5b5061036d7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b6106186113a3565b61062282826113fd565b5050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610693576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b6106fe86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250611473915050565b505050505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610762576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61078c7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c3e565b6107c2576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b6108718333845f5b6040519080825280601f01601f19166020018201604052801561086a576020820181803683370190505b5085611473565b505050565b61087e6113a3565b6108875f6118eb565b565b6099546001600160a01b03163381146108e95760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610925573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109499190612433565b6097546001600160a01b039081169116146109a65760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e74657270617274000000000000000060448201526064016108e0565b6109ae611954565b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a1a576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a86576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ae1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610b19576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018890528a16906340c10f19906044015f604051808303815f87803b158015610b79575f80fd5b505af1158015610b8b573d5f803e3d5ffd5b50505050876001600160a01b0316896001600160a01b03168b6001600160a01b03167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348a8a8a8a604051610be2949392919061244e565b60405180910390a45050610bf560018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3590836119b3565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3590836119be565b610c808484845f610840565b50505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ce1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c3e565b610d41576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e14576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c3e565b610e74576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ee857505f54600160ff909116105b80610f015750303b158015610f0157505f5460ff166001145b610f735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fb2575f805461ff0019166101001790555b610fbd8484846119df565b8015610c80575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611074576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3890611b22565b6110d96113a3565b6106228282611b2b565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611144576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61116e7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c3e565b6111a4576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b5f54600290610100900460ff1615801561121e57505f5460ff8083169116105b6112905760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112cc85858585611ba1565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b61131b6113a3565b6001600160a01b0381166113975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108e0565b6113a0816118eb565b50565b6065546001600160a01b031633146108875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e0565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206114339082611d82565b156106225760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b61147b611954565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146114e7576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611528576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611588576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036115c1576040517f6c18829600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60985433906001600160a01b03168190036115ef57848060200190518101906115ea91906124d3565b955090505b845115611628576040517f998bcee200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081526001600160a01b03828116600483015260248201889052891690639dc29fac906044015f604051808303815f87803b158015611688575f80fd5b505af115801561169a573d5f803e3d5ffd5b505050505f7f000000000000000000000000000000000000000000000000000000000000000089838a8a8a6040516024016116da969594939291906125f8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84bd13b00000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa1580156117b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d59190612645565b6099546097546040517fb2267a7b0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263b2267a7b92349261182d929116905f9088908d9060040161265c565b5f604051808303818588803b158015611844575f80fd5b505af1158015611856573d5f803e3d5ffd5b5050505050826001600160a01b03168a6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167fa9967b740f3fc69dfbf4744b4b1c7dfdb0b1b63f1fa4cf573bcdcb9f3ac687c48c8c8c876040516118ce949392919061265c565b60405180910390a450505050506118e460018055565b5050505050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6002600154036119a65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108e0565b6002600155565b60018055565b5f610c358383611d96565b6001600160a01b0381165f9081526001830160205260408120541515610c35565b6001600160a01b038316611a355760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e746572706172742061646472657373000000000000000060448201526064016108e0565b6001600160a01b038116611a8b5760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e67657220616464726573730000000000000000000060448201526064016108e0565b611a93611dbc565b611a9b611e40565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561087157609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c38825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611b619082611ec4565b156106225760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611c1d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611ca53390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611d047f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a866113fd565b611d2e7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d6856113fd565b611d587f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d846113fd565b6118e47f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c836113fd565b5f610c35836001600160a01b038416611ed8565b5f825f018281548110611dab57611dab612694565b905f5260205f200154905092915050565b5f54610100900460ff16611e385760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611f24565b5f54610100900460ff16611ebc5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611fa0565b5f610c35836001600160a01b038416612025565b5f818152600183016020526040812054611f1d57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c38565b505f610c38565b5f54610100900460ff166119ad5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b5f54610100900460ff1661201c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887336118eb565b5f81815260018301602052604081205480156120ff575f6120476001836126c1565b85549091505f9061205a906001906126c1565b90508181146120b9575f865f01828154811061207857612078612694565b905f5260205f200154905080875f01848154811061209857612098612694565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806120ca576120ca6126f9565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c38565b5f915050610c38565b6001600160a01b03811681146113a0575f80fd5b5f806040838503121561212d575f80fd5b82359150602083013561213f81612108565b809150509250929050565b5f6020828403121561215a575f80fd5b813561216581612108565b9392505050565b5f8083601f84011261217c575f80fd5b50813567ffffffffffffffff811115612193575f80fd5b6020830191508360208285010111156121aa575f80fd5b9250929050565b5f805f805f8060a087890312156121c6575f80fd5b86356121d181612108565b955060208701356121e181612108565b945060408701359350606087013567ffffffffffffffff811115612203575f80fd5b61220f89828a0161216c565b979a9699509497949695608090950135949350505050565b5f805f60608486031215612239575f80fd5b833561224481612108565b95602085013595506040909401359392505050565b5f805f805f805f60c0888a03121561226f575f80fd5b873561227a81612108565b9650602088013561228a81612108565b9550604088013561229a81612108565b945060608801356122aa81612108565b93506080880135925060a088013567ffffffffffffffff8111156122cc575f80fd5b6122d88a828b0161216c565b989b979a50959850939692959293505050565b5f80604083850312156122fc575f80fd5b50508035926020909101359150565b5f805f806080858703121561231e575f80fd5b843561232981612108565b9350602085013561233981612108565b93969395505050506040820135916060013590565b5f805f60608486031215612360575f80fd5b833561236b81612108565b9250602084013561237b81612108565b9150604084013561238b81612108565b809150509250925092565b5f602082840312156123a6575f80fd5b5035919050565b5f805f80608085870312156123c0575f80fd5b84356123cb81612108565b935060208501356123db81612108565b925060408501356123eb81612108565b915060608501356123fb81612108565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215612443575f80fd5b815161216581612108565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b838110156124cb5781810151838201526020016124b3565b50505f910152565b5f80604083850312156124e4575f80fd5b82516124ef81612108565b602084015190925067ffffffffffffffff8082111561250c575f80fd5b818501915085601f83011261251f575f80fd5b81518181111561253157612531612406565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561257757612577612406565b8160405282815288602084870101111561258f575f80fd5b6125a08360208301602088016124b1565b80955050505050509250929050565b5f81518084526125c68160208601602086016124b1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261263960c08301846125af565b98975050505050505050565b5f60208284031215612655575f80fd5b5051919050565b6001600160a01b0385168152836020820152608060408201525f61268360808301856125af565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81810381811115610c38577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrorAccountIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNonZeroMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL1Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL2Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawAndCallIsNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"DepositsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"DepositsEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"FinalizeDepositERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"WithdrawERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPOSITS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"finalizeDepositERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"}],\"name\":\"getL1ERC20Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"}],\"name\":\"getL2ERC20Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_depositsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_depositsDisabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsDisabler\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isWithdrawalsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20AndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]", + Bin: "0x60c060405234801562000010575f80fd5b506040516200290f3803806200290f833981016040819052620000339162000168565b6001600160a01b03808316608081905290821660a05215806200005d57506001600160a01b038116155b156200007c5760405163a7f9319d60e01b815260040160405180910390fd5b620000866200008e565b50506200019e565b5f54610100900460ff1615620000fa5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200014a575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811462000163575f80fd5b919050565b5f80604083850312156200017a575f80fd5b62000185836200014c565b915062000195602084016200014c565b90509250929050565b60805160a051612717620001f85f395f81816102610152818161062a01528181610a1d01528181611077015261147e01525f818161049b01528181610696015281816109b10152818161100b01526116a101526127175ff3fe6080604052600436106101d0575f3560e01c80639010d07c116100fd578063ca15c87311610092578063f27ebced11610062578063f27ebced14610580578063f2fde38b1461059f578063f887ea40146105be578063fadcc54a146105dd575f80fd5b8063ca15c873146104fb578063d547741f1461051a578063e3b523e314610539578063e8bac93b1461056c575f80fd5b8063ad960ce1116100cd578063ad960ce114610476578063c01e1bd61461048a578063c0c53b8b146104bd578063c676ad29146104dc575f80fd5b80639010d07c1461041157806391d1485414610430578063a93a4af91461044f578063ac67e1af14610462575f80fd5b80635ed2c22011610173578063797594b011610143578063797594b01461038f5780638431f5c1146103ae5780638d7601c0146103c15780638da5cb5b146103f4575f80fd5b80635ed2c220146102ec5780636c07ea43146103275780636f18bd221461033a578063715018a61461037b575f80fd5b806356eff267116101ae57806356eff26714610250578063575361b6146102835780635777bf50146102965780635e4c57a4146102d8575f80fd5b80632f2ff15d146101d45780633cb747bf146101f557806354bbd59c14610231575b5f80fd5b3480156101df575f80fd5b506101f36101ee366004612100565b610610565b005b348015610200575f80fd5b50609954610214906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023c575f80fd5b5061021461024b36600461212e565b610626565b34801561025b575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b6101f3610291366004612195565b6106bb565b3480156102a1575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610228565b3480156102e3575f80fd5b506101f3610706565b3480156102f7575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102c8565b6101f361033536600461220b565b610838565b348015610345575f80fd5b5061036d7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610228565b348015610386575f80fd5b506101f3610876565b34801561039a575f80fd5b50609754610214906001600160a01b031681565b6101f36103bc36600461223d565b610889565b3480156103cc575f80fd5b5061036d7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103ff575f80fd5b506065546001600160a01b0316610214565b34801561041c575f80fd5b5061021461042b3660046122cf565b610bff565b34801561043b575f80fd5b506102c861044a366004612100565b610c3e565b6101f361045d3660046122ef565b610c74565b34801561046d575f80fd5b506101f3610c86565b348015610481575f80fd5b506101f3610db4565b348015610495575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c8575f80fd5b506101f36104d7366004612332565b610eca565b3480156104e7575f80fd5b506102146104f636600461212e565b611007565b348015610506575f80fd5b5061036d61051536600461237a565b61109c565b348015610525575f80fd5b506101f3610534366004612100565b6110d1565b348015610544575f80fd5b5061036d7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610577575f80fd5b506101f36110e3565b34801561058b575f80fd5b506101f361059a366004612391565b6111fe565b3480156105aa575f80fd5b506101f36105b936600461212e565b611313565b3480156105c9575f80fd5b50609854610214906001600160a01b031681565b3480156105e8575f80fd5b5061036d7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b6106186113a3565b61062282826113fd565b5050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610693576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b6106fe86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250611473915050565b505050505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610762576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61078c7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c3e565b6107c2576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b6108718333845f5b6040519080825280601f01601f19166020018201604052801561086a576020820181803683370190505b5085611473565b505050565b61087e6113a3565b6108875f6118cf565b565b6099546001600160a01b03163381146108e95760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610925573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109499190612417565b6097546001600160a01b039081169116146109a65760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e74657270617274000000000000000060448201526064016108e0565b6109ae611938565b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a1a576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a86576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ae1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610b19576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018890528a16906340c10f19906044015f604051808303815f87803b158015610b79575f80fd5b505af1158015610b8b573d5f803e3d5ffd5b50505050876001600160a01b0316896001600160a01b03168b6001600160a01b03167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348a8a8a8a604051610be29493929190612432565b60405180910390a45050610bf560018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c359083611997565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3590836119a2565b610c808484845f610840565b50505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ce1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c3e565b610d41576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e14576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c3e565b610e74576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ee857505f54600160ff909116105b80610f015750303b158015610f0157505f5460ff166001145b610f735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fb2575f805461ff0019166101001790555b610fbd8484846119c3565b8015610c80575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611074576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3890611b06565b6110d96113a3565b6106228282611b0f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611144576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61116e7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c3e565b6111a4576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b5f54600290610100900460ff1615801561121e57505f5460ff8083169116105b6112905760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112cc85858585611b85565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b61131b6113a3565b6001600160a01b0381166113975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108e0565b6113a0816118cf565b50565b6065546001600160a01b031633146108875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e0565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206114339082611d66565b156106225760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b61147b611938565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146114e7576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611528576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611588576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036115c1576040517f6c18829600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60985433906001600160a01b03168190036115ef57848060200190518101906115ea91906124b7565b955090505b845115611628576040517f998bcee200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081526001600160a01b03828116600483015260248201889052891690639dc29fac906044015f604051808303815f87803b158015611688575f80fd5b505af115801561169a573d5f803e3d5ffd5b50506040517f000000000000000000000000000000000000000000000000000000000000000092505f91506116dd9083908c9086908d908d908d906024016125dc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84bd13b00000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa1580156117b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d89190612629565b6099546097546040517fb2267a7b0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263b2267a7b923492611830929116905f9088908e90600401612640565b5f604051808303818588803b158015611847575f80fd5b505af1158015611859573d5f803e3d5ffd5b5050505050836001600160a01b03168b6001600160a01b0316846001600160a01b03167fa9967b740f3fc69dfbf4744b4b1c7dfdb0b1b63f1fa4cf573bcdcb9f3ac687c48d8d8d876040516118b19493929190612640565b60405180910390a45050505050506118c860018055565b5050505050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60026001540361198a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108e0565b6002600155565b60018055565b5f610c358383611d7a565b6001600160a01b0381165f9081526001830160205260408120541515610c35565b6001600160a01b038316611a195760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e746572706172742061646472657373000000000000000060448201526064016108e0565b6001600160a01b038116611a6f5760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e67657220616464726573730000000000000000000060448201526064016108e0565b611a77611da0565b611a7f611e24565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561087157609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c38825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611b459082611ea8565b156106225760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611c015760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611c893390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611ce87f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a866113fd565b611d127f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d6856113fd565b611d3c7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d846113fd565b6118c87f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c836113fd565b5f610c35836001600160a01b038416611ebc565b5f825f018281548110611d8f57611d8f612678565b905f5260205f200154905092915050565b5f54610100900460ff16611e1c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611f08565b5f54610100900460ff16611ea05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611f84565b5f610c35836001600160a01b038416612009565b5f818152600183016020526040812054611f0157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c38565b505f610c38565b5f54610100900460ff166119915760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b5f54610100900460ff166120005760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887336118cf565b5f81815260018301602052604081205480156120e3575f61202b6001836126a5565b85549091505f9061203e906001906126a5565b905081811461209d575f865f01828154811061205c5761205c612678565b905f5260205f200154905080875f01848154811061207c5761207c612678565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806120ae576120ae6126dd565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c38565b5f915050610c38565b6001600160a01b03811681146113a0575f80fd5b5f8060408385031215612111575f80fd5b823591506020830135612123816120ec565b809150509250929050565b5f6020828403121561213e575f80fd5b8135612149816120ec565b9392505050565b5f8083601f840112612160575f80fd5b50813567ffffffffffffffff811115612177575f80fd5b60208301915083602082850101111561218e575f80fd5b9250929050565b5f805f805f8060a087890312156121aa575f80fd5b86356121b5816120ec565b955060208701356121c5816120ec565b945060408701359350606087013567ffffffffffffffff8111156121e7575f80fd5b6121f389828a01612150565b979a9699509497949695608090950135949350505050565b5f805f6060848603121561221d575f80fd5b8335612228816120ec565b95602085013595506040909401359392505050565b5f805f805f805f60c0888a031215612253575f80fd5b873561225e816120ec565b9650602088013561226e816120ec565b9550604088013561227e816120ec565b9450606088013561228e816120ec565b93506080880135925060a088013567ffffffffffffffff8111156122b0575f80fd5b6122bc8a828b01612150565b989b979a50959850939692959293505050565b5f80604083850312156122e0575f80fd5b50508035926020909101359150565b5f805f8060808587031215612302575f80fd5b843561230d816120ec565b9350602085013561231d816120ec565b93969395505050506040820135916060013590565b5f805f60608486031215612344575f80fd5b833561234f816120ec565b9250602084013561235f816120ec565b9150604084013561236f816120ec565b809150509250925092565b5f6020828403121561238a575f80fd5b5035919050565b5f805f80608085870312156123a4575f80fd5b84356123af816120ec565b935060208501356123bf816120ec565b925060408501356123cf816120ec565b915060608501356123df816120ec565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215612427575f80fd5b8151612149816120ec565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b838110156124af578181015183820152602001612497565b50505f910152565b5f80604083850312156124c8575f80fd5b82516124d3816120ec565b602084015190925067ffffffffffffffff808211156124f0575f80fd5b818501915085601f830112612503575f80fd5b815181811115612515576125156123ea565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561255b5761255b6123ea565b81604052828152886020848701011115612573575f80fd5b612584836020830160208801612495565b80955050505050509250929050565b5f81518084526125aa816020860160208601612495565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261261d60c0830184612593565b98975050505050505050565b5f60208284031215612639575f80fd5b5051919050565b6001600160a01b0385168152836020820152608060408201525f6126676080830185612593565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81810381811115610c38577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a", } // L2LidoGatewayABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/l2lidogateway_more.go b/bindings/bindings/l2lidogateway_more.go index c2ff786ec..b3336bd00 100644 --- a/bindings/bindings/l2lidogateway_more.go +++ b/bindings/bindings/l2lidogateway_more.go @@ -13,7 +13,7 @@ const L2LidoGatewayStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract var L2LidoGatewayStorageLayout = new(solc.StorageLayout) -var L2LidoGatewayDeployedBin = "0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063ca15c87311610092578063f27ebced11610062578063f27ebced146105b4578063f2fde38b146105d3578063f887ea40146105f2578063fadcc54a1461061e575f80fd5b8063ca15c8731461052f578063d547741f1461054e578063e3b523e31461056d578063e8bac93b146105a0575f80fd5b8063ad960ce1116100cd578063ad960ce1146104aa578063c01e1bd6146104be578063c0c53b8b146104f1578063c676ad2914610510575f80fd5b80639010d07c1461044557806391d1485414610464578063a93a4af914610483578063ac67e1af14610496575f80fd5b80635ed2c22011610173578063797594b011610143578063797594b0146103a95780638431f5c1146103d55780638d7601c0146103e85780638da5cb5b1461041b575f80fd5b80635ed2c220146103065780636c07ea43146103415780636f18bd2214610354578063715018a614610395575f80fd5b806356eff267116101ae57806356eff2671461026a578063575361b61461029d5780635777bf50146102b05780635e4c57a4146102f2575f80fd5b80632f2ff15d146101d45780633cb747bf146101f557806354bbd59c1461024b575b5f80fd5b3480156101df575f80fd5b506101f36101ee366004612572565b610651565b005b348015610200575f80fd5b506099546102219073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610256575f80fd5b506102216102653660046125a0565b610667565b348015610275575f80fd5b506102217f000000000000000000000000000000000000000000000000000000000000000081565b6101f36102ab366004612607565b610716565b3480156102bb575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610242565b3480156102fd575f80fd5b506101f3610761565b348015610311575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102e2565b6101f361034f36600461267d565b610893565b34801561035f575f80fd5b506103877f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610242565b3480156103a0575f80fd5b506101f36108d1565b3480156103b4575f80fd5b506097546102219073ffffffffffffffffffffffffffffffffffffffff1681565b6101f36103e33660046126af565b6108e4565b3480156103f3575f80fd5b506103877f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b348015610426575f80fd5b5060655473ffffffffffffffffffffffffffffffffffffffff16610221565b348015610450575f80fd5b5061022161045f366004612741565b610d1d565b34801561046f575f80fd5b506102e261047e366004612572565b610d5c565b6101f3610491366004612761565b610d92565b3480156104a1575f80fd5b506101f3610da4565b3480156104b5575f80fd5b506101f3610ed2565b3480156104c9575f80fd5b506102217f000000000000000000000000000000000000000000000000000000000000000081565b3480156104fc575f80fd5b506101f361050b3660046127a4565b611005565b34801561051b575f80fd5b5061022161052a3660046125a0565b611196565b34801561053a575f80fd5b506103876105493660046127ec565b611245565b348015610559575f80fd5b506101f3610568366004612572565b61127a565b348015610578575f80fd5b506103877f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b3480156105ab575f80fd5b506101f361128c565b3480156105bf575f80fd5b506101f36105ce366004612803565b6113c4565b3480156105de575f80fd5b506101f36105ed3660046125a0565b611510565b3480156105fd575f80fd5b506098546102219073ffffffffffffffffffffffffffffffffffffffff1681565b348015610629575f80fd5b506103877f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b6106596115c7565b6106638282611648565b5050565b5f817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ee576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b61075986868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508892506116cb915050565b505050505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16156107bd576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107e77f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610d5c565b61081d576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b6108cc8333845f5b6040519080825280601f01601f1916602001820160405280156108c5576020820181803683370190505b50856116cb565b505050565b6108d96115c7565b6108e25f611bc5565b565b60995473ffffffffffffffffffffffffffffffffffffffff1633811461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d89190612889565b60975473ffffffffffffffffffffffffffffffffffffffff908116911614610a5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e7465727061727400000000000000006044820152606401610962565b610a64611c3b565b877f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aea576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b877f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b70576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610bcb576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610c03576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018890528a16906340c10f19906044015f604051808303815f87803b158015610c70575f80fd5b505af1158015610c82573d5f803e3d5ffd5b505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348a8a8a8a604051610d0094939291906128a4565b60405180910390a45050610d1360018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610d539083611cb4565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610d539083611cbf565b610d9e8484845f61089b565b50505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610dff576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e297f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610d5c565b610e5f576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610f32576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f5c7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610d5c565b610f92576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff161580801561102357505f54600160ff909116105b8061103c5750303b15801561103c57505f5460ff166001145b6110c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610962565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611124575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61112f848484611ced565b8015610d9e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b5f817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461121d576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610d5690611e98565b6112826115c7565b6106638282611ea1565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16156112ed576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113177f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610d5c565b61134d576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b5f54600290610100900460ff161580156113e457505f5460ff8083169116105b611470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610962565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556114ac85858585611f24565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6115186115c7565b73ffffffffffffffffffffffffffffffffffffffff81166115bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610962565b6115c481611bc5565b50565b60655473ffffffffffffffffffffffffffffffffffffffff1633146108e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610962565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed6020526040902061167e9082612149565b1561066357604051339073ffffffffffffffffffffffffffffffffffffffff83169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b6116d3611c3b565b847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611759576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff81166117a7576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611807576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f03611840576040517f6c18829600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609854339073ffffffffffffffffffffffffffffffffffffffff1681900361187b57848060200190518101906118769190612936565b955090505b8451156118b4576040517f998bcee200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015260248201889052891690639dc29fac906044015f604051808303815f87803b158015611921575f80fd5b505af1158015611933573d5f803e3d5ffd5b505050505f7f000000000000000000000000000000000000000000000000000000000000000089838a8a8a60405160240161197396959493929190612a5b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84bd13b00000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f9373ffffffffffffffffffffffffffffffffffffffff9091169263ecc704289260048083019391928290030181865afa158015611a57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7b9190612ab5565b6099546097546040517fb2267a7b00000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff9182169263b2267a7b923492611ae0929116905f9088908d90600401612acc565b5f604051808303818588803b158015611af7575f80fd5b505af1158015611b09573d5f803e3d5ffd5b50505050508273ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167fa9967b740f3fc69dfbf4744b4b1c7dfdb0b1b63f1fa4cf573bcdcb9f3ac687c48c8c8c87604051611ba89493929190612acc565b60405180910390a45050505050611bbe60018055565b5050505050565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600260015403611ca7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610962565b6002600155565b60018055565b5f610d53838361216a565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610d53565b73ffffffffffffffffffffffffffffffffffffffff8316611d6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f7a65726f20636f756e74657270617274206164647265737300000000000000006044820152606401610962565b73ffffffffffffffffffffffffffffffffffffffff8116611de7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7a65726f206d657373656e6765722061646472657373000000000000000000006044820152606401610962565b611def612190565b611df761222e565b6097805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556099805484841692169190911790558216156108cc576098805473ffffffffffffffffffffffffffffffffffffffff84167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610d56825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611ed790826122cc565b1561066357604051339073ffffffffffffffffffffffffffffffffffffffff83169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611fba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017815561205f3390565b73ffffffffffffffffffffffffffffffffffffffff167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a26120cb7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a86611648565b6120f57f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d685611648565b61211f7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d84611648565b611bbe7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c83611648565b5f610d538373ffffffffffffffffffffffffffffffffffffffff84166122ed565b5f825f01828154811061217f5761217f612b11565b905f5260205f200154905092915050565b5f54610100900460ff16612226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b6108e2612339565b5f54610100900460ff166122c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b6108e26123cf565b5f610d538373ffffffffffffffffffffffffffffffffffffffff841661246e565b5f81815260018301602052604081205461233257508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610d56565b505f610d56565b5f54610100900460ff16611cae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b5f54610100900460ff16612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b6108e233611bc5565b5f8181526001830160205260408120548015612548575f612490600183612b3e565b85549091505f906124a390600190612b3e565b9050818114612502575f865f0182815481106124c1576124c1612b11565b905f5260205f200154905080875f0184815481106124e1576124e1612b11565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061251357612513612b76565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610d56565b5f915050610d56565b73ffffffffffffffffffffffffffffffffffffffff811681146115c4575f80fd5b5f8060408385031215612583575f80fd5b82359150602083013561259581612551565b809150509250929050565b5f602082840312156125b0575f80fd5b81356125bb81612551565b9392505050565b5f8083601f8401126125d2575f80fd5b50813567ffffffffffffffff8111156125e9575f80fd5b602083019150836020828501011115612600575f80fd5b9250929050565b5f805f805f8060a0878903121561261c575f80fd5b863561262781612551565b9550602087013561263781612551565b945060408701359350606087013567ffffffffffffffff811115612659575f80fd5b61266589828a016125c2565b979a9699509497949695608090950135949350505050565b5f805f6060848603121561268f575f80fd5b833561269a81612551565b95602085013595506040909401359392505050565b5f805f805f805f60c0888a0312156126c5575f80fd5b87356126d081612551565b965060208801356126e081612551565b955060408801356126f081612551565b9450606088013561270081612551565b93506080880135925060a088013567ffffffffffffffff811115612722575f80fd5b61272e8a828b016125c2565b989b979a50959850939692959293505050565b5f8060408385031215612752575f80fd5b50508035926020909101359150565b5f805f8060808587031215612774575f80fd5b843561277f81612551565b9350602085013561278f81612551565b93969395505050506040820135916060013590565b5f805f606084860312156127b6575f80fd5b83356127c181612551565b925060208401356127d181612551565b915060408401356127e181612551565b809150509250925092565b5f602082840312156127fc575f80fd5b5035919050565b5f805f8060808587031215612816575f80fd5b843561282181612551565b9350602085013561283181612551565b9250604085013561284181612551565b9150606085013561285181612551565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215612899575f80fd5b81516125bb81612551565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b8381101561292e578181015183820152602001612916565b50505f910152565b5f8060408385031215612947575f80fd5b825161295281612551565b602084015190925067ffffffffffffffff8082111561296f575f80fd5b818501915085601f830112612982575f80fd5b8151818111156129945761299461285c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156129da576129da61285c565b816040528281528860208487010111156129f2575f80fd5b612a03836020830160208801612914565b80955050505050509250929050565b5f8151808452612a29816020860160208601612914565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f73ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612aa960c0830184612a12565b98975050505050505050565b5f60208284031215612ac5575f80fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f612b006080830185612a12565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81810381811115610d56577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a" +var L2LidoGatewayDeployedBin = "0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063ca15c87311610092578063f27ebced11610062578063f27ebced146105b4578063f2fde38b146105d3578063f887ea40146105f2578063fadcc54a1461061e575f80fd5b8063ca15c8731461052f578063d547741f1461054e578063e3b523e31461056d578063e8bac93b146105a0575f80fd5b8063ad960ce1116100cd578063ad960ce1146104aa578063c01e1bd6146104be578063c0c53b8b146104f1578063c676ad2914610510575f80fd5b80639010d07c1461044557806391d1485414610464578063a93a4af914610483578063ac67e1af14610496575f80fd5b80635ed2c22011610173578063797594b011610143578063797594b0146103a95780638431f5c1146103d55780638d7601c0146103e85780638da5cb5b1461041b575f80fd5b80635ed2c220146103065780636c07ea43146103415780636f18bd2214610354578063715018a614610395575f80fd5b806356eff267116101ae57806356eff2671461026a578063575361b61461029d5780635777bf50146102b05780635e4c57a4146102f2575f80fd5b80632f2ff15d146101d45780633cb747bf146101f557806354bbd59c1461024b575b5f80fd5b3480156101df575f80fd5b506101f36101ee366004612556565b610651565b005b348015610200575f80fd5b506099546102219073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610256575f80fd5b50610221610265366004612584565b610667565b348015610275575f80fd5b506102217f000000000000000000000000000000000000000000000000000000000000000081565b6101f36102ab3660046125eb565b610716565b3480156102bb575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610242565b3480156102fd575f80fd5b506101f3610761565b348015610311575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102e2565b6101f361034f366004612661565b610893565b34801561035f575f80fd5b506103877f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610242565b3480156103a0575f80fd5b506101f36108d1565b3480156103b4575f80fd5b506097546102219073ffffffffffffffffffffffffffffffffffffffff1681565b6101f36103e3366004612693565b6108e4565b3480156103f3575f80fd5b506103877f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b348015610426575f80fd5b5060655473ffffffffffffffffffffffffffffffffffffffff16610221565b348015610450575f80fd5b5061022161045f366004612725565b610d1d565b34801561046f575f80fd5b506102e261047e366004612556565b610d5c565b6101f3610491366004612745565b610d92565b3480156104a1575f80fd5b506101f3610da4565b3480156104b5575f80fd5b506101f3610ed2565b3480156104c9575f80fd5b506102217f000000000000000000000000000000000000000000000000000000000000000081565b3480156104fc575f80fd5b506101f361050b366004612788565b611005565b34801561051b575f80fd5b5061022161052a366004612584565b611196565b34801561053a575f80fd5b506103876105493660046127d0565b611245565b348015610559575f80fd5b506101f3610568366004612556565b61127a565b348015610578575f80fd5b506103877f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b3480156105ab575f80fd5b506101f361128c565b3480156105bf575f80fd5b506101f36105ce3660046127e7565b6113c4565b3480156105de575f80fd5b506101f36105ed366004612584565b611510565b3480156105fd575f80fd5b506098546102219073ffffffffffffffffffffffffffffffffffffffff1681565b348015610629575f80fd5b506103877f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b6106596115c7565b6106638282611648565b5050565b5f817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ee576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b61075986868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508892506116cb915050565b505050505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16156107bd576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107e77f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610d5c565b61081d576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b6108cc8333845f5b6040519080825280601f01601f1916602001820160405280156108c5576020820181803683370190505b50856116cb565b505050565b6108d96115c7565b6108e25f611ba9565b565b60995473ffffffffffffffffffffffffffffffffffffffff1633811461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d8919061286d565b60975473ffffffffffffffffffffffffffffffffffffffff908116911614610a5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e7465727061727400000000000000006044820152606401610962565b610a64611c1f565b877f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aea576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b877f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b70576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610bcb576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610c03576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018890528a16906340c10f19906044015f604051808303815f87803b158015610c70575f80fd5b505af1158015610c82573d5f803e3d5ffd5b505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348a8a8a8a604051610d009493929190612888565b60405180910390a45050610d1360018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610d539083611c98565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610d539083611ca3565b610d9e8484845f61089b565b50505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610dff576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e297f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610d5c565b610e5f576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610f32576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f5c7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610d5c565b610f92576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff161580801561102357505f54600160ff909116105b8061103c5750303b15801561103c57505f5460ff166001145b6110c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610962565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611124575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61112f848484611cd1565b8015610d9e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b5f817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461121d576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610d5690611e7c565b6112826115c7565b6106638282611e85565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16156112ed576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113177f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610d5c565b61134d576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b5f54600290610100900460ff161580156113e457505f5460ff8083169116105b611470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610962565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556114ac85858585611f08565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6115186115c7565b73ffffffffffffffffffffffffffffffffffffffff81166115bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610962565b6115c481611ba9565b50565b60655473ffffffffffffffffffffffffffffffffffffffff1633146108e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610962565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed6020526040902061167e908261212d565b1561066357604051339073ffffffffffffffffffffffffffffffffffffffff83169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b6116d3611c1f565b847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611759576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff81166117a7576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611807576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f03611840576040517f6c18829600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609854339073ffffffffffffffffffffffffffffffffffffffff1681900361187b5784806020019051810190611876919061291a565b955090505b8451156118b4576040517f998bcee200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015260248201889052891690639dc29fac906044015f604051808303815f87803b158015611921575f80fd5b505af1158015611933573d5f803e3d5ffd5b50506040517f000000000000000000000000000000000000000000000000000000000000000092505f91506119769083908c9086908d908d908d90602401612a3f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84bd13b00000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f9373ffffffffffffffffffffffffffffffffffffffff9091169263ecc704289260048083019391928290030181865afa158015611a5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7e9190612a99565b6099546097546040517fb2267a7b00000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff9182169263b2267a7b923492611ae3929116905f9088908e90600401612ab0565b5f604051808303818588803b158015611afa575f80fd5b505af1158015611b0c573d5f803e3d5ffd5b50505050508373ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fa9967b740f3fc69dfbf4744b4b1c7dfdb0b1b63f1fa4cf573bcdcb9f3ac687c48d8d8d87604051611b8b9493929190612ab0565b60405180910390a4505050505050611ba260018055565b5050505050565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600260015403611c8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610962565b6002600155565b60018055565b5f610d53838361214e565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610d53565b73ffffffffffffffffffffffffffffffffffffffff8316611d4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f7a65726f20636f756e74657270617274206164647265737300000000000000006044820152606401610962565b73ffffffffffffffffffffffffffffffffffffffff8116611dcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7a65726f206d657373656e6765722061646472657373000000000000000000006044820152606401610962565b611dd3612174565b611ddb612212565b6097805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556099805484841692169190911790558216156108cc576098805473ffffffffffffffffffffffffffffffffffffffff84167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610d56825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611ebb90826122b0565b1561066357604051339073ffffffffffffffffffffffffffffffffffffffff83169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611f9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001781556120433390565b73ffffffffffffffffffffffffffffffffffffffff167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a26120af7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a86611648565b6120d97f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d685611648565b6121037f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d84611648565b611ba27f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c83611648565b5f610d538373ffffffffffffffffffffffffffffffffffffffff84166122d1565b5f825f01828154811061216357612163612af5565b905f5260205f200154905092915050565b5f54610100900460ff1661220a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b6108e261231d565b5f54610100900460ff166122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b6108e26123b3565b5f610d538373ffffffffffffffffffffffffffffffffffffffff8416612452565b5f81815260018301602052604081205461231657508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610d56565b505f610d56565b5f54610100900460ff16611c92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b5f54610100900460ff16612449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b6108e233611ba9565b5f818152600183016020526040812054801561252c575f612474600183612b22565b85549091505f9061248790600190612b22565b90508181146124e6575f865f0182815481106124a5576124a5612af5565b905f5260205f200154905080875f0184815481106124c5576124c5612af5565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806124f7576124f7612b5a565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610d56565b5f915050610d56565b73ffffffffffffffffffffffffffffffffffffffff811681146115c4575f80fd5b5f8060408385031215612567575f80fd5b82359150602083013561257981612535565b809150509250929050565b5f60208284031215612594575f80fd5b813561259f81612535565b9392505050565b5f8083601f8401126125b6575f80fd5b50813567ffffffffffffffff8111156125cd575f80fd5b6020830191508360208285010111156125e4575f80fd5b9250929050565b5f805f805f8060a08789031215612600575f80fd5b863561260b81612535565b9550602087013561261b81612535565b945060408701359350606087013567ffffffffffffffff81111561263d575f80fd5b61264989828a016125a6565b979a9699509497949695608090950135949350505050565b5f805f60608486031215612673575f80fd5b833561267e81612535565b95602085013595506040909401359392505050565b5f805f805f805f60c0888a0312156126a9575f80fd5b87356126b481612535565b965060208801356126c481612535565b955060408801356126d481612535565b945060608801356126e481612535565b93506080880135925060a088013567ffffffffffffffff811115612706575f80fd5b6127128a828b016125a6565b989b979a50959850939692959293505050565b5f8060408385031215612736575f80fd5b50508035926020909101359150565b5f805f8060808587031215612758575f80fd5b843561276381612535565b9350602085013561277381612535565b93969395505050506040820135916060013590565b5f805f6060848603121561279a575f80fd5b83356127a581612535565b925060208401356127b581612535565b915060408401356127c581612535565b809150509250925092565b5f602082840312156127e0575f80fd5b5035919050565b5f805f80608085870312156127fa575f80fd5b843561280581612535565b9350602085013561281581612535565b9250604085013561282581612535565b9150606085013561283581612535565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020828403121561287d575f80fd5b815161259f81612535565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b838110156129125781810151838201526020016128fa565b50505f910152565b5f806040838503121561292b575f80fd5b825161293681612535565b602084015190925067ffffffffffffffff80821115612953575f80fd5b818501915085601f830112612966575f80fd5b81518181111561297857612978612840565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156129be576129be612840565b816040528281528860208487010111156129d6575f80fd5b6129e78360208301602088016128f8565b80955050505050509250929050565b5f8151808452612a0d8160208601602086016128f8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f73ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612a8d60c08301846129f6565b98975050505050505050565b5f60208284031215612aa9575f80fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f612ae460808301856129f6565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81810381811115610d56577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L2LidoGatewayStorageLayoutJSON), L2LidoGatewayStorageLayout); err != nil { diff --git a/bindings/bindings/l2wstethtoken.go b/bindings/bindings/l2wstethtoken.go index 2e7fbebc0..218d2abfd 100644 --- a/bindings/bindings/l2wstethtoken.go +++ b/bindings/bindings/l2wstethtoken.go @@ -31,8 +31,8 @@ var ( // L2WstETHTokenMetaData contains all meta data concerning the L2WstETHToken contract. var L2WstETHTokenMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"_gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b5061001861001d565b6100d9565b5f54610100900460ff16156100885760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146100d7575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61213280620000e75f395ff3fe608060405234801561000f575f80fd5b506004361061016e575f3560e01c806370a08231116100d25780639dc29fac11610088578063c820f14611610063578063c820f14614610354578063d505accf14610367578063dd62ed3e1461037a575f80fd5b80639dc29fac1461031b578063a457c2d71461032e578063a9059cbb14610341575f80fd5b80637ecebe00116100b85780637ecebe00146102e557806384b0196e146102f857806395d89b4114610313575f80fd5b806370a0823114610290578063797594b0146102c5575f80fd5b8063313ce56711610127578063395093511161010d57806339509351146102555780634000aea01461026857806340c10f191461027b575f80fd5b8063313ce5671461021d5780633644e5151461024d575f80fd5b8063116191b611610157578063116191b6146101b357806318160ddd146101f857806323b872dd1461020a575f80fd5b806306fdde0314610172578063095ea7b314610190575b5f80fd5b61017a6103bf565b6040516101879190611a7e565b60405180910390f35b6101a361019e366004611abf565b61044f565b6040519015158152602001610187565b60cc546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610187565b6035545b604051908152602001610187565b6101a3610218366004611ae7565b610468565b60cd5474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610187565b6101fc61048b565b6101a3610263366004611abf565b610499565b6101a3610276366004611b20565b6104e4565b61028e610289366004611abf565b61054d565b005b6101fc61029e366004611ba0565b73ffffffffffffffffffffffffffffffffffffffff165f9081526033602052604090205490565b60cd546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b6101fc6102f3366004611ba0565b6105c7565b6103006105f1565b6040516101879796959493929190611bb9565b61017a6106ae565b61028e610329366004611abf565b6106bd565b6101a361033c366004611abf565b61072e565b6101a361034f366004611abf565b6107e4565b61028e610362366004611d5d565b6107f1565b61028e610375366004611ded565b610a08565b6101fc610388366004611e52565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260346020908152604080832093909416825291909152205490565b6060603680546103ce90611e83565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa90611e83565b80156104455780601f1061041c57610100808354040283529160200191610445565b820191905f5260205f20905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b5f3361045c818585610bae565b60019150505b92915050565b5f33610475858285610d2d565b610480858585610de9565b506001949350505050565b5f61049461100f565b905090565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045c90829086906104df908790611ece565b610bae565b5f6104ef85856107e4565b5073ffffffffffffffffffffffffffffffffffffffff85163b1561048057610480858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061101892505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146105b95760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105c382826110a3565b5050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260996020526040812054610462565b5f6060805f805f60606065545f801b14801561060d5750606654155b6106595760405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016105b0565b61066161117c565b61066961118b565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546103ce90611e83565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146107245760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064016105b0565b6105c3828261119a565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156107d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105b0565b6104808286868403610bae565b5f3361045c818585610de9565b5f54610100900460ff161580801561080f57505f54600160ff909116105b806108285750303b15801561082857505f5460ff166001145b61089a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105b0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108f6575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108ff86611327565b61090986866113e5565b60cd805460cc805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925590851660ff88167401000000000000000000000000000000000000000002919091167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790558015610a00575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b83421115610a585760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016105b0565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a868c61146b565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610aed8261149f565b60408051602081018790529081018590527fff0000000000000000000000000000000000000000000000000000000000000060f888901b166060820152909150610b4c908a9083906061016040516020818303038152906040526114e6565b610b985760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016105b0565b610ba3898989610bae565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c365760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610cbf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610de35781811015610dd65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105b0565b610de38484848403610bae565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610e725760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610efb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526033602052604090205481811015610f965760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110029086815260200190565b60405180910390a3610de3565b5f61049461155e565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed369061107090339087908790600401611f06565b5f604051808303815f87803b158015611087575f80fd5b505af1158015611099573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166111065760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105b0565b8060355f8282546111179190611ece565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060606780546103ce90611e83565b6060606880546103ce90611e83565b73ffffffffffffffffffffffffffffffffffffffff82166112235760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260336020526040902054818110156112be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610d20565b505050565b5f54610100900460ff166113a35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6113e2816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506115d1565b50565b5f54610100900460ff166114615760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6105c38282611674565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526099602052604090208054600181018255905b50919050565b5f6104626114ab61100f565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f6114f38585611709565b90925090505f81600481111561150b5761150b611f43565b14801561154357508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611554575061155486868661174b565b9695505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6115886118a3565b6115906118fb565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff1661164d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b60676116598382611fbb565b5060686116668282611fbb565b50505f606581905560665550565b5f54610100900460ff166116f05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b60366116fc8382611fbb565b5060376113228282611fbb565b5f80825160410361173d576020830151604084015160608501515f1a6117318782858561192b565b94509450505050611744565b505f905060025b9250929050565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b86866040516024016117809291906120d3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161180991906120f3565b5f60405180830381855afa9150503d805f8114611841576040519150601f19603f3d011682016040523d82523d5f602084013e611846565b606091505b509150915081801561185a57506020815110155b8015611554575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090611898908301602090810190840161210e565b149695505050505050565b5f806118ad61117c565b8051909150156118c4578051602090910120919050565b60655480156118d35792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f8061190561118b565b80519091501561191c578051602090910120919050565b60665480156118d35792915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561196057505f90506003611a0a565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156119b1573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611a04575f60019250925050611a0a565b91505f90505b94509492505050565b5f5b83811015611a2d578181015183820152602001611a15565b50505f910152565b5f8151808452611a4c816020860160208601611a13565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611a906020830184611a35565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611aba575f80fd5b919050565b5f8060408385031215611ad0575f80fd5b611ad983611a97565b946020939093013593505050565b5f805f60608486031215611af9575f80fd5b611b0284611a97565b9250611b1060208501611a97565b9150604084013590509250925092565b5f805f8060608587031215611b33575f80fd5b611b3c85611a97565b935060208501359250604085013567ffffffffffffffff80821115611b5f575f80fd5b818701915087601f830112611b72575f80fd5b813581811115611b80575f80fd5b886020828501011115611b91575f80fd5b95989497505060200194505050565b5f60208284031215611bb0575f80fd5b611a9082611a97565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152611bf560e084018a611a35565b8381036040850152611c07818a611a35565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611c6757835183529284019291840191600101611c4b565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112611cb5575f80fd5b813567ffffffffffffffff80821115611cd057611cd0611c79565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611d1657611d16611c79565b81604052838152866020858801011115611d2e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114611aba575f80fd5b5f805f805f60a08688031215611d71575f80fd5b853567ffffffffffffffff80821115611d88575f80fd5b611d9489838a01611ca6565b96506020880135915080821115611da9575f80fd5b50611db688828901611ca6565b945050611dc560408701611d4d565b9250611dd360608701611a97565b9150611de160808701611a97565b90509295509295909350565b5f805f805f805f60e0888a031215611e03575f80fd5b611e0c88611a97565b9650611e1a60208901611a97565b95506040880135945060608801359350611e3660808901611d4d565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215611e63575f80fd5b611e6c83611a97565b9150611e7a60208401611a97565b90509250929050565b600181811c90821680611e9757607f821691505b602082108103611499577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b80820180821115610462577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611f3a6060830184611a35565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b601f82111561132257805f5260205f20601f840160051c81016020851015611f955750805b601f840160051c820191505b81811015611fb4575f8155600101611fa1565b5050505050565b815167ffffffffffffffff811115611fd557611fd5611c79565b611fe981611fe38454611e83565b84611f70565b602080601f83116001811461203b575f84156120055750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a00565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561208757888601518255948401946001909101908401612068565b50858210156120c357878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201525f6120eb6040830184611a35565b949350505050565b5f8251612104818460208701611a13565b9190910192915050565b5f6020828403121561211e575f80fd5b505191905056fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[],\"name\":\"ErrorExpiredDeadline\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorInvalidSignature\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"_gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x608060405234801561000f575f80fd5b5061001861001d565b6100d9565b5f54610100900460ff16156100885760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146100d7575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61210680620000e75f395ff3fe608060405234801561000f575f80fd5b506004361061016e575f3560e01c806370a08231116100d25780639dc29fac11610088578063c820f14611610063578063c820f14614610354578063d505accf14610367578063dd62ed3e1461037a575f80fd5b80639dc29fac1461031b578063a457c2d71461032e578063a9059cbb14610341575f80fd5b80637ecebe00116100b85780637ecebe00146102e557806384b0196e146102f857806395d89b4114610313575f80fd5b806370a0823114610290578063797594b0146102c5575f80fd5b8063313ce56711610127578063395093511161010d57806339509351146102555780634000aea01461026857806340c10f191461027b575f80fd5b8063313ce5671461021d5780633644e5151461024d575f80fd5b8063116191b611610157578063116191b6146101b357806318160ddd146101f857806323b872dd1461020a575f80fd5b806306fdde0314610172578063095ea7b314610190575b5f80fd5b61017a6103bf565b6040516101879190611a52565b60405180910390f35b6101a361019e366004611a93565b61044f565b6040519015158152602001610187565b60cc546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610187565b6035545b604051908152602001610187565b6101a3610218366004611abb565b610468565b60cd5474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610187565b6101fc61048b565b6101a3610263366004611a93565b610499565b6101a3610276366004611af4565b6104e4565b61028e610289366004611a93565b61054d565b005b6101fc61029e366004611b74565b73ffffffffffffffffffffffffffffffffffffffff165f9081526033602052604090205490565b60cd546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b6101fc6102f3366004611b74565b6105c7565b6103006105f1565b6040516101879796959493929190611b8d565b61017a6106ae565b61028e610329366004611a93565b6106bd565b6101a361033c366004611a93565b61072e565b6101a361034f366004611a93565b6107e4565b61028e610362366004611d31565b6107f1565b61028e610375366004611dc1565b610a08565b6101fc610388366004611e26565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260346020908152604080832093909416825291909152205490565b6060603680546103ce90611e57565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa90611e57565b80156104455780601f1061041c57610100808354040283529160200191610445565b820191905f5260205f20905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b5f3361045c818585610b82565b60019150505b92915050565b5f33610475858285610d01565b610480858585610dbd565b506001949350505050565b5f610494610fe3565b905090565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045c90829086906104df908790611ea2565b610b82565b5f6104ef85856107e4565b5073ffffffffffffffffffffffffffffffffffffffff85163b1561048057610480858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610fec92505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146105b95760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105c38282611077565b5050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260996020526040812054610462565b5f6060805f805f60606065545f801b14801561060d5750606654155b6106595760405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016105b0565b610661611150565b61066961115f565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546103ce90611e57565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146107245760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064016105b0565b6105c3828261116e565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156107d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105b0565b6104808286868403610b82565b5f3361045c818585610dbd565b5f54610100900460ff161580801561080f57505f54600160ff909116105b806108285750303b15801561082857505f5460ff166001145b61089a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105b0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108f6575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108ff866112fb565b61090986866113b9565b60cd805460cc805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925590851660ff88167401000000000000000000000000000000000000000002919091167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790558015610a00575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b83421115610a42576040517fa5faea8300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a708c61143f565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610ad782611473565b60408051602081018790529081018590527fff0000000000000000000000000000000000000000000000000000000000000060f888901b166060820152909150610b36908a9083906061016040516020818303038152906040526114ba565b610b6c576040517f3f88fec700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b77898989610b82565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c0a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610c935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610db75781811015610daa5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105b0565b610db78484848403610b82565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610e465760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610ecf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526033602052604090205481811015610f6a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fd69086815260200190565b60405180910390a3610db7565b5f610494611532565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed369061104490339087908790600401611eda565b5f604051808303815f87803b15801561105b575f80fd5b505af115801561106d573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166110da5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105b0565b8060355f8282546110eb9190611ea2565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060606780546103ce90611e57565b6060606880546103ce90611e57565b73ffffffffffffffffffffffffffffffffffffffff82166111f75760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260336020526040902054818110156112925760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610cf4565b505050565b5f54610100900460ff166113775760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6113b6816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506115a5565b50565b5f54610100900460ff166114355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6105c38282611648565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526099602052604090208054600181018255905b50919050565b5f61046261147f610fe3565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f6114c785856116dd565b90925090505f8160048111156114df576114df611f17565b14801561151757508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611528575061152886868661171f565b9695505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61155c611877565b6115646118cf565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff166116215760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b606761162d8382611f8f565b50606861163a8282611f8f565b50505f606581905560665550565b5f54610100900460ff166116c45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b60366116d08382611f8f565b5060376112f68282611f8f565b5f808251604103611711576020830151604084015160608501515f1a611705878285856118ff565b94509450505050611718565b505f905060025b9250929050565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b86866040516024016117549291906120a7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516117dd91906120c7565b5f60405180830381855afa9150503d805f8114611815576040519150601f19603f3d011682016040523d82523d5f602084013e61181a565b606091505b509150915081801561182e57506020815110155b8015611528575080517f1626ba7e000000000000000000000000000000000000000000000000000000009061186c90830160209081019084016120e2565b149695505050505050565b5f80611881611150565b805190915015611898578051602090910120919050565b60655480156118a75792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f806118d961115f565b8051909150156118f0578051602090910120919050565b60665480156118a75792915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561193457505f905060036119de565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611985573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166119d8575f600192509250506119de565b91505f90505b94509492505050565b5f5b83811015611a015781810151838201526020016119e9565b50505f910152565b5f8151808452611a208160208601602086016119e7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611a646020830184611a09565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a8e575f80fd5b919050565b5f8060408385031215611aa4575f80fd5b611aad83611a6b565b946020939093013593505050565b5f805f60608486031215611acd575f80fd5b611ad684611a6b565b9250611ae460208501611a6b565b9150604084013590509250925092565b5f805f8060608587031215611b07575f80fd5b611b1085611a6b565b935060208501359250604085013567ffffffffffffffff80821115611b33575f80fd5b818701915087601f830112611b46575f80fd5b813581811115611b54575f80fd5b886020828501011115611b65575f80fd5b95989497505060200194505050565b5f60208284031215611b84575f80fd5b611a6482611a6b565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152611bc960e084018a611a09565b8381036040850152611bdb818a611a09565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611c3b57835183529284019291840191600101611c1f565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112611c89575f80fd5b813567ffffffffffffffff80821115611ca457611ca4611c4d565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611cea57611cea611c4d565b81604052838152866020858801011115611d02575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114611a8e575f80fd5b5f805f805f60a08688031215611d45575f80fd5b853567ffffffffffffffff80821115611d5c575f80fd5b611d6889838a01611c7a565b96506020880135915080821115611d7d575f80fd5b50611d8a88828901611c7a565b945050611d9960408701611d21565b9250611da760608701611a6b565b9150611db560808701611a6b565b90509295509295909350565b5f805f805f805f60e0888a031215611dd7575f80fd5b611de088611a6b565b9650611dee60208901611a6b565b95506040880135945060608801359350611e0a60808901611d21565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215611e37575f80fd5b611e4083611a6b565b9150611e4e60208401611a6b565b90509250929050565b600181811c90821680611e6b57607f821691505b60208210810361146d577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b80820180821115610462577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611f0e6060830184611a09565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b601f8211156112f657805f5260205f20601f840160051c81016020851015611f695750805b601f840160051c820191505b81811015611f88575f8155600101611f75565b5050505050565b815167ffffffffffffffff811115611fa957611fa9611c4d565b611fbd81611fb78454611e57565b84611f44565b602080601f83116001811461200f575f8415611fd95750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a00565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561205b5788860151825594840194600190910190840161203c565b508582101561209757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201525f6120bf6040830184611a09565b949350505050565b5f82516120d88184602087016119e7565b9190910192915050565b5f602082840312156120f2575f80fd5b505191905056fea164736f6c6343000818000a", } // L2WstETHTokenABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/l2wstethtoken_more.go b/bindings/bindings/l2wstethtoken_more.go index 3183343aa..6c7143c1b 100644 --- a/bindings/bindings/l2wstethtoken_more.go +++ b/bindings/bindings/l2wstethtoken_more.go @@ -13,7 +13,7 @@ const L2WstETHTokenStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract var L2WstETHTokenStorageLayout = new(solc.StorageLayout) -var L2WstETHTokenDeployedBin = "0x608060405234801561000f575f80fd5b506004361061016e575f3560e01c806370a08231116100d25780639dc29fac11610088578063c820f14611610063578063c820f14614610354578063d505accf14610367578063dd62ed3e1461037a575f80fd5b80639dc29fac1461031b578063a457c2d71461032e578063a9059cbb14610341575f80fd5b80637ecebe00116100b85780637ecebe00146102e557806384b0196e146102f857806395d89b4114610313575f80fd5b806370a0823114610290578063797594b0146102c5575f80fd5b8063313ce56711610127578063395093511161010d57806339509351146102555780634000aea01461026857806340c10f191461027b575f80fd5b8063313ce5671461021d5780633644e5151461024d575f80fd5b8063116191b611610157578063116191b6146101b357806318160ddd146101f857806323b872dd1461020a575f80fd5b806306fdde0314610172578063095ea7b314610190575b5f80fd5b61017a6103bf565b6040516101879190611c86565b60405180910390f35b6101a361019e366004611cc7565b61044f565b6040519015158152602001610187565b60cc546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610187565b6035545b604051908152602001610187565b6101a3610218366004611cef565b610468565b60cd5474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610187565b6101fc61048b565b6101a3610263366004611cc7565b610499565b6101a3610276366004611d28565b6104e4565b61028e610289366004611cc7565b61054d565b005b6101fc61029e366004611da8565b73ffffffffffffffffffffffffffffffffffffffff165f9081526033602052604090205490565b60cd546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b6101fc6102f3366004611da8565b6105e1565b61030061060b565b6040516101879796959493929190611dc1565b61017a6106e2565b61028e610329366004611cc7565b6106f1565b6101a361033c366004611cc7565b61077c565b6101a361034f366004611cc7565b61084c565b61028e610362366004611f65565b610859565b61028e610375366004611ff5565b610a8a565b6101fc61038836600461205a565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260346020908152604080832093909416825291909152205490565b6060603680546103ce9061208b565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa9061208b565b80156104455780601f1061041c57610100808354040283529160200191610445565b820191905f5260205f20905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b5f3361045c818585610c64565b60019150505b92915050565b5f33610475858285610e17565b610480858585610eed565b506001949350505050565b5f610494611161565b905090565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045c90829086906104df9087906120d6565b610c64565b5f6104ef858561084c565b5073ffffffffffffffffffffffffffffffffffffffff85163b1561048057610480858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061116a92505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146105d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105dd82826111f5565b5050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260996020526040812054610462565b5f6060805f805f60606065545f801b1480156106275750606654155b61068d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016105ca565b6106956112e8565b61069d6112f7565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546103ce9061208b565b60cc5473ffffffffffffffffffffffffffffffffffffffff163314610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064016105ca565b6105dd8282611306565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561083f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105ca565b6104808286868403610c64565b5f3361045c818585610eed565b5f54610100900460ff161580801561087757505f54600160ff909116105b806108905750303b15801561089057505f5460ff166001145b61091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105ca565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610978575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610981866114c7565b61098b868661159f565b60cd805460cc805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925590851660ff88167401000000000000000000000000000000000000000002919091167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790558015610a82575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b83421115610af4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016105ca565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610b228c61163f565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610b8982611673565b60408051602081018790529081018590527fff0000000000000000000000000000000000000000000000000000000000000060f888901b166060820152909150610be8908a9083906061016040516020818303038152906040526116ba565b610c4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016105ca565b610c59898989610c64565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8216610da9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ee75781811015610eda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105ca565b610ee78484848403610c64565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8216611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260336020526040902054818110156110e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111549086815260200190565b60405180910390a3610ee7565b5f610494611732565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed36906111c29033908790879060040161210e565b5f604051808303815f87803b1580156111d9575f80fd5b505af11580156111eb573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216611272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105ca565b8060355f82825461128391906120d6565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060606780546103ce9061208b565b6060606880546103ce9061208b565b73ffffffffffffffffffffffffffffffffffffffff82166113a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff82165f908152603360205260409020548181101561145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610e0a565b505050565b5f54610100900460ff1661155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b61159c816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506117a5565b50565b5f54610100900460ff16611635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b6105dd8282611862565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526099602052604090208054600181018255905b50919050565b5f61046261167f611161565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f6116c78585611911565b90925090505f8160048111156116df576116df61214b565b14801561171757508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806117285750611728868686611953565b9695505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61175c611aab565b611764611b03565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff1661183b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b606761184783826121c3565b50606861185482826121c3565b50505f606581905560665550565b5f54610100900460ff166118f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b603661190483826121c3565b5060376114c282826121c3565b5f808251604103611945576020830151604084015160608501515f1a61193987828585611b33565b9450945050505061194c565b505f905060025b9250929050565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b86866040516024016119889291906122db565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611a1191906122fb565b5f60405180830381855afa9150503d805f8114611a49576040519150601f19603f3d011682016040523d82523d5f602084013e611a4e565b606091505b5091509150818015611a6257506020815110155b8015611728575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090611aa09083016020908101908401612316565b149695505050505050565b5f80611ab56112e8565b805190915015611acc578051602090910120919050565b6065548015611adb5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f80611b0d6112f7565b805190915015611b24578051602090910120919050565b6066548015611adb5792915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611b6857505f90506003611c12565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611bb9573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611c0c575f60019250925050611c12565b91505f90505b94509492505050565b5f5b83811015611c35578181015183820152602001611c1d565b50505f910152565b5f8151808452611c54816020860160208601611c1b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611c986020830184611c3d565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611cc2575f80fd5b919050565b5f8060408385031215611cd8575f80fd5b611ce183611c9f565b946020939093013593505050565b5f805f60608486031215611d01575f80fd5b611d0a84611c9f565b9250611d1860208501611c9f565b9150604084013590509250925092565b5f805f8060608587031215611d3b575f80fd5b611d4485611c9f565b935060208501359250604085013567ffffffffffffffff80821115611d67575f80fd5b818701915087601f830112611d7a575f80fd5b813581811115611d88575f80fd5b886020828501011115611d99575f80fd5b95989497505060200194505050565b5f60208284031215611db8575f80fd5b611c9882611c9f565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152611dfd60e084018a611c3d565b8381036040850152611e0f818a611c3d565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611e6f57835183529284019291840191600101611e53565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112611ebd575f80fd5b813567ffffffffffffffff80821115611ed857611ed8611e81565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611f1e57611f1e611e81565b81604052838152866020858801011115611f36575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114611cc2575f80fd5b5f805f805f60a08688031215611f79575f80fd5b853567ffffffffffffffff80821115611f90575f80fd5b611f9c89838a01611eae565b96506020880135915080821115611fb1575f80fd5b50611fbe88828901611eae565b945050611fcd60408701611f55565b9250611fdb60608701611c9f565b9150611fe960808701611c9f565b90509295509295909350565b5f805f805f805f60e0888a03121561200b575f80fd5b61201488611c9f565b965061202260208901611c9f565b9550604088013594506060880135935061203e60808901611f55565b925060a0880135915060c0880135905092959891949750929550565b5f806040838503121561206b575f80fd5b61207483611c9f565b915061208260208401611c9f565b90509250929050565b600181811c9082168061209f57607f821691505b60208210810361166d577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b80820180821115610462577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f6121426060830184611c3d565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b601f8211156114c257805f5260205f20601f840160051c8101602085101561219d5750805b601f840160051c820191505b818110156121bc575f81556001016121a9565b5050505050565b815167ffffffffffffffff8111156121dd576121dd611e81565b6121f1816121eb845461208b565b84612178565b602080601f831160018114612243575f841561220d5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a82565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561228f57888601518255948401946001909101908401612270565b50858210156122cb57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201525f6122f36040830184611c3d565b949350505050565b5f825161230c818460208701611c1b565b9190910192915050565b5f60208284031215612326575f80fd5b505191905056fea164736f6c6343000818000a" +var L2WstETHTokenDeployedBin = "0x608060405234801561000f575f80fd5b506004361061016e575f3560e01c806370a08231116100d25780639dc29fac11610088578063c820f14611610063578063c820f14614610354578063d505accf14610367578063dd62ed3e1461037a575f80fd5b80639dc29fac1461031b578063a457c2d71461032e578063a9059cbb14610341575f80fd5b80637ecebe00116100b85780637ecebe00146102e557806384b0196e146102f857806395d89b4114610313575f80fd5b806370a0823114610290578063797594b0146102c5575f80fd5b8063313ce56711610127578063395093511161010d57806339509351146102555780634000aea01461026857806340c10f191461027b575f80fd5b8063313ce5671461021d5780633644e5151461024d575f80fd5b8063116191b611610157578063116191b6146101b357806318160ddd146101f857806323b872dd1461020a575f80fd5b806306fdde0314610172578063095ea7b314610190575b5f80fd5b61017a6103bf565b6040516101879190611c26565b60405180910390f35b6101a361019e366004611c67565b61044f565b6040519015158152602001610187565b60cc546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610187565b6035545b604051908152602001610187565b6101a3610218366004611c8f565b610468565b60cd5474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610187565b6101fc61048b565b6101a3610263366004611c67565b610499565b6101a3610276366004611cc8565b6104e4565b61028e610289366004611c67565b61054d565b005b6101fc61029e366004611d48565b73ffffffffffffffffffffffffffffffffffffffff165f9081526033602052604090205490565b60cd546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b6101fc6102f3366004611d48565b6105e1565b61030061060b565b6040516101879796959493929190611d61565b61017a6106e2565b61028e610329366004611c67565b6106f1565b6101a361033c366004611c67565b61077c565b6101a361034f366004611c67565b61084c565b61028e610362366004611f05565b610859565b61028e610375366004611f95565b610a8a565b6101fc610388366004611ffa565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260346020908152604080832093909416825291909152205490565b6060603680546103ce9061202b565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa9061202b565b80156104455780601f1061041c57610100808354040283529160200191610445565b820191905f5260205f20905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b5f3361045c818585610c04565b60019150505b92915050565b5f33610475858285610db7565b610480858585610e8d565b506001949350505050565b5f610494611101565b905090565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045c90829086906104df908790612076565b610c04565b5f6104ef858561084c565b5073ffffffffffffffffffffffffffffffffffffffff85163b1561048057610480858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061110a92505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146105d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105dd8282611195565b5050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260996020526040812054610462565b5f6060805f805f60606065545f801b1480156106275750606654155b61068d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016105ca565b610695611288565b61069d611297565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546103ce9061202b565b60cc5473ffffffffffffffffffffffffffffffffffffffff163314610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064016105ca565b6105dd82826112a6565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561083f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105ca565b6104808286868403610c04565b5f3361045c818585610e8d565b5f54610100900460ff161580801561087757505f54600160ff909116105b806108905750303b15801561089057505f5460ff166001145b61091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105ca565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610978575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61098186611467565b61098b868661153f565b60cd805460cc805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925590851660ff88167401000000000000000000000000000000000000000002919091167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790558015610a82575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b83421115610ac4576040517fa5faea8300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610af28c6115df565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610b5982611613565b60408051602081018790529081018590527fff0000000000000000000000000000000000000000000000000000000000000060f888901b166060820152909150610bb8908a90839060610160405160208183030381529060405261165a565b610bee576040517f3f88fec700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bf9898989610c04565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8216610d49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e875781811015610e7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105ca565b610e878484848403610c04565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610f30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8216610fd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526033602052604090205481811015611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110f49086815260200190565b60405180910390a3610e87565b5f6104946116d2565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed3690611162903390879087906004016120ae565b5f604051808303815f87803b158015611179575f80fd5b505af115801561118b573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216611212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105ca565b8060355f8282546112239190612076565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060606780546103ce9061202b565b6060606880546103ce9061202b565b73ffffffffffffffffffffffffffffffffffffffff8216611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260336020526040902054818110156113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610daa565b505050565b5f54610100900460ff166114fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b61153c816040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250611745565b50565b5f54610100900460ff166115d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b6105dd8282611802565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526099602052604090208054600181018255905b50919050565b5f61046261161f611101565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f61166785856118b1565b90925090505f81600481111561167f5761167f6120eb565b1480156116b757508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806116c857506116c88686866118f3565b9695505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6116fc611a4b565b611704611aa3565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff166117db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b60676117e78382612163565b5060686117f48282612163565b50505f606581905560665550565b5f54610100900460ff16611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b60366118a48382612163565b5060376114628282612163565b5f8082516041036118e5576020830151604084015160608501515f1a6118d987828585611ad3565b945094505050506118ec565b505f905060025b9250929050565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b868660405160240161192892919061227b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516119b1919061229b565b5f60405180830381855afa9150503d805f81146119e9576040519150601f19603f3d011682016040523d82523d5f602084013e6119ee565b606091505b5091509150818015611a0257506020815110155b80156116c8575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090611a4090830160209081019084016122b6565b149695505050505050565b5f80611a55611288565b805190915015611a6c578051602090910120919050565b6065548015611a7b5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f80611aad611297565b805190915015611ac4578051602090910120919050565b6066548015611a7b5792915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611b0857505f90506003611bb2565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611b59573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611bac575f60019250925050611bb2565b91505f90505b94509492505050565b5f5b83811015611bd5578181015183820152602001611bbd565b50505f910152565b5f8151808452611bf4816020860160208601611bbb565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611c386020830184611bdd565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611c62575f80fd5b919050565b5f8060408385031215611c78575f80fd5b611c8183611c3f565b946020939093013593505050565b5f805f60608486031215611ca1575f80fd5b611caa84611c3f565b9250611cb860208501611c3f565b9150604084013590509250925092565b5f805f8060608587031215611cdb575f80fd5b611ce485611c3f565b935060208501359250604085013567ffffffffffffffff80821115611d07575f80fd5b818701915087601f830112611d1a575f80fd5b813581811115611d28575f80fd5b886020828501011115611d39575f80fd5b95989497505060200194505050565b5f60208284031215611d58575f80fd5b611c3882611c3f565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152611d9d60e084018a611bdd565b8381036040850152611daf818a611bdd565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611e0f57835183529284019291840191600101611df3565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112611e5d575f80fd5b813567ffffffffffffffff80821115611e7857611e78611e21565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611ebe57611ebe611e21565b81604052838152866020858801011115611ed6575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114611c62575f80fd5b5f805f805f60a08688031215611f19575f80fd5b853567ffffffffffffffff80821115611f30575f80fd5b611f3c89838a01611e4e565b96506020880135915080821115611f51575f80fd5b50611f5e88828901611e4e565b945050611f6d60408701611ef5565b9250611f7b60608701611c3f565b9150611f8960808701611c3f565b90509295509295909350565b5f805f805f805f60e0888a031215611fab575f80fd5b611fb488611c3f565b9650611fc260208901611c3f565b95506040880135945060608801359350611fde60808901611ef5565b925060a0880135915060c0880135905092959891949750929550565b5f806040838503121561200b575f80fd5b61201483611c3f565b915061202260208401611c3f565b90509250929050565b600181811c9082168061203f57607f821691505b60208210810361160d577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b80820180821115610462577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f6120e26060830184611bdd565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b601f82111561146257805f5260205f20601f840160051c8101602085101561213d5750805b601f840160051c820191505b8181101561215c575f8155600101612149565b5050505050565b815167ffffffffffffffff81111561217d5761217d611e21565b6121918161218b845461202b565b84612118565b602080601f8311600181146121e3575f84156121ad5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a82565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561222f57888601518255948401946001909101908401612210565b508582101561226b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201525f6122936040830184611bdd565b949350505050565b5f82516122ac818460208701611bbb565b9190910192915050565b5f602082840312156122c6575f80fd5b505191905056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L2WstETHTokenStorageLayoutJSON), L2WstETHTokenStorageLayout); err != nil { diff --git a/contracts/contracts/lido/L1LidoGateway.sol b/contracts/contracts/lido/L1LidoGateway.sol index f39618612..39c1c3fec 100644 --- a/contracts/contracts/lido/L1LidoGateway.sol +++ b/contracts/contracts/lido/L1LidoGateway.sol @@ -11,6 +11,9 @@ import {GatewayBase} from "../libraries/gateway/GatewayBase.sol"; import {LidoBridgeableTokens} from "./LidoBridgeableTokens.sol"; import {LidoGatewayManager} from "./LidoGatewayManager.sol"; +/** + * @custom:security-contact official@morphl2.io + */ contract L1LidoGateway is L1ERC20Gateway, LidoBridgeableTokens, LidoGatewayManager { /********** * Errors * @@ -39,8 +42,9 @@ contract L1LidoGateway is L1ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag /// @param _l1Token The address of the bridged token in the L1 chain /// @param _l2Token The address of the token minted on the L2 chain when token bridged constructor(address _l1Token, address _l2Token) LidoBridgeableTokens(_l1Token, _l2Token) { - require(_l1Token != address(0), "zero l1token address"); - require(_l2Token != address(0), "zero l2Token address"); + if (_l1Token == address(0) || _l2Token ==address(0)){ + revert ErrorZeroAddress(); + } _disableInitializers(); } @@ -121,9 +125,10 @@ contract L1LidoGateway is L1ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag if (_data.length != 0) revert DepositAndCallIsNotAllowed(); // 2. Generate message passed to L2LidoGateway. + address _l2Token = l2Token; bytes memory _message = abi.encodeCall( IL2ERC20Gateway.finalizeDepositERC20, - (_token, l2Token, _from, _to, _amount, _data) + (_token, _l2Token, _from, _to, _amount, _data) ); uint256 nonce = IL1CrossDomainMessenger(messenger).messageNonce(); @@ -131,6 +136,6 @@ contract L1LidoGateway is L1ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag // 3. Send message to L1CrossDomainMessenger. IL1CrossDomainMessenger(messenger).sendMessage{value: msg.value}(counterpart, 0, _message, _gasLimit, _from); - emit DepositERC20(_token, l2Token, _from, _to, _amount, _data, nonce); + emit DepositERC20(_token, _l2Token, _from, _to, _amount, _data, nonce); } } diff --git a/contracts/contracts/lido/L2LidoGateway.sol b/contracts/contracts/lido/L2LidoGateway.sol index 8ac046d82..da075c747 100644 --- a/contracts/contracts/lido/L2LidoGateway.sol +++ b/contracts/contracts/lido/L2LidoGateway.sol @@ -12,6 +12,9 @@ import {GatewayBase} from "../libraries/gateway/GatewayBase.sol"; import {LidoBridgeableTokens} from "./LidoBridgeableTokens.sol"; import {LidoGatewayManager} from "./LidoGatewayManager.sol"; +/** + * @custom:security-contact official@morphl2.io + */ contract L2LidoGateway is L2ERC20Gateway, LidoBridgeableTokens, LidoGatewayManager { /********** * Errors * @@ -40,8 +43,9 @@ contract L2LidoGateway is L2ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag /// @param _l1Token The address of the bridged token in the L1 chain /// @param _l2Token The address of the token minted on the L2 chain when token bridged constructor(address _l1Token, address _l2Token) LidoBridgeableTokens(_l1Token, _l2Token) { - require(_l1Token != address(0), "zero l1token address"); - require(_l2Token != address(0), "zero l2Token address"); + if (_l1Token == address(0) || _l2Token ==address(0)){ + revert ErrorZeroAddress(); + } _disableInitializers(); } @@ -59,7 +63,7 @@ contract L2LidoGateway is L2ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag /// @notice Initialize the storage of L2LidoGateway v2. /// @param _depositsEnabler The address of user who can enable deposits - /// @param _depositsEnabler The address of user who can disable deposits + /// @param _depositsDisabler The address of user who can disable deposits /// @param _withdrawalsEnabler The address of user who can enable withdrawals /// @param _withdrawalsDisabler The address of user who can disable withdrawals function initializeV2( @@ -152,9 +156,10 @@ contract L2LidoGateway is L2ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag IMorphERC20Upgradeable(_l2Token).burn(_from, _amount); // 3. Generate message passed to L1LidoGateway. + address _l1Token = l1Token; bytes memory _message = abi.encodeCall( IL1ERC20Gateway.finalizeWithdrawERC20, - (l1Token, _l2Token, _from, _to, _amount, _data) + (_l1Token, _l2Token, _from, _to, _amount, _data) ); uint256 nonce = IL2CrossDomainMessenger(messenger).messageNonce(); @@ -162,6 +167,6 @@ contract L2LidoGateway is L2ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag // 4. send message to L2CrossDomainMessenger IL2CrossDomainMessenger(messenger).sendMessage{value: msg.value}(counterpart, 0, _message, _gasLimit); - emit WithdrawERC20(l1Token, _l2Token, _from, _to, _amount, _data, nonce); + emit WithdrawERC20(_l1Token, _l2Token, _from, _to, _amount, _data, nonce); } } diff --git a/contracts/contracts/lido/L2WstETHToken.sol b/contracts/contracts/lido/L2WstETHToken.sol index fcf764086..e79a38529 100644 --- a/contracts/contracts/lido/L2WstETHToken.sol +++ b/contracts/contracts/lido/L2WstETHToken.sol @@ -8,7 +8,20 @@ import {SignatureCheckerUpgradeable} from "@openzeppelin/contracts-upgradeable/u import {MorphStandardERC20} from "../libraries/token/MorphStandardERC20.sol"; +/** + * @custom:security-contact official@morphl2.io + */ contract L2WstETHToken is MorphStandardERC20 { + /********** + * Errors * + **********/ + + /// @dev Thrown when the deadline is expired. + error ErrorExpiredDeadline(); + + /// @dev Thrown when the given signature is invalid. + error ErrorInvalidSignature(); + /************* * Constants * *************/ @@ -33,16 +46,16 @@ contract L2WstETHToken is MorphStandardERC20 { bytes32 r, bytes32 s ) public virtual override(ERC20PermitUpgradeable, IERC20PermitUpgradeable) { - require(block.timestamp <= deadline, "ERC20Permit: expired deadline"); - + if (block.timestamp > deadline) { + revert ErrorExpiredDeadline(); + } bytes32 structHash = keccak256(abi.encode(_PERMIT_TYPEHASH, owner, spender, value, _useNonce(owner), deadline)); bytes32 hash = _hashTypedDataV4(structHash); - require( - SignatureCheckerUpgradeable.isValidSignatureNow(owner, hash, abi.encodePacked(r, s, v)), - "ERC20Permit: invalid signature" - ); + if (!SignatureCheckerUpgradeable.isValidSignatureNow(owner, hash, abi.encodePacked(r, s, v))){ + revert ErrorInvalidSignature(); + } _approve(owner, spender, value); } diff --git a/contracts/contracts/lido/LidoBridgeableTokens.sol b/contracts/contracts/lido/LidoBridgeableTokens.sol index 2da95ba1b..806d43c40 100644 --- a/contracts/contracts/lido/LidoBridgeableTokens.sol +++ b/contracts/contracts/lido/LidoBridgeableTokens.sol @@ -2,6 +2,9 @@ pragma solidity =0.8.24; +/** + * @custom:security-contact official@morphl2.io + */ abstract contract LidoBridgeableTokens { /************* * Constants * @@ -17,6 +20,9 @@ abstract contract LidoBridgeableTokens { * Errors * **********/ + /// @dev Thrown when the given address is `address(0)`. + error ErrorZeroAddress(); + /// @dev Thrown the given `l1Token` is not supported. error ErrorUnsupportedL1Token(); diff --git a/contracts/contracts/lido/LidoGatewayManager.sol b/contracts/contracts/lido/LidoGatewayManager.sol index b70e78832..f9d1247b6 100644 --- a/contracts/contracts/lido/LidoGatewayManager.sol +++ b/contracts/contracts/lido/LidoGatewayManager.sol @@ -8,6 +8,9 @@ import {GatewayBase} from "../libraries/gateway/GatewayBase.sol"; // solhint-disable func-name-mixedcase +/** + * @custom:security-contact official@morphl2.io + */ abstract contract LidoGatewayManager is GatewayBase { using EnumerableSetUpgradeable for EnumerableSetUpgradeable.AddressSet; @@ -128,7 +131,7 @@ abstract contract LidoGatewayManager is GatewayBase { /// @notice Initialize the storage of LidoGatewayManager. /// @param _depositsEnabler The address of user who can enable deposits - /// @param _depositsEnabler The address of user who can disable deposits + /// @param _depositsDisabler The address of user who can disable deposits /// @param _withdrawalsEnabler The address of user who can enable withdrawals /// @param _withdrawalsDisabler The address of user who can disable withdrawals function __LidoGatewayManager_init( diff --git a/contracts/contracts/lido/README.md b/contracts/contracts/lido/README.md new file mode 100644 index 000000000..6b453874d --- /dev/null +++ b/contracts/contracts/lido/README.md @@ -0,0 +1,112 @@ +# Lido's Morph Bridge + +The document outlines the process of bridging ERC20-compatible tokens between the Ethereum and Morph chains. + +This marks the initial phase of Lido's integration into the Morph protocol. The primary objective of this implementation is to establish a solid foundation for Lido's long-term expansion goals on the Morph chain. The broader vision for Lido's integration into Layer 2 solutions includes: + +- Bridging Lido's tokens from Layer 1 to Layer 2 chains +- Enabling instant ETH staking on Layer 2 chains, with users receiving stETH/wstETH immediately on the corresponding Layer 2 +- Maintaining a user experience on Layer 2 that closely resembles that of the Ethereum mainnet +At this stage, the implementation aims to deliver a scalable and reliable solution for Lido to bridge ERC20-compatible tokens between Morph and the Ethereum chain. + +## Security surface overview + +| Statement | Answer | +| -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| It is possible to bridge wstETH forth and back using this bridge | Yes | +| The bridge using a canonical mechanism for message/value passing | Yes | +| The bridge is upgradeable | Yes | +| Upgrade authority for the bridge | Yes | +| Emergency pause/cancel mechanisms and their authorities | TBA | +| The bridged token support permits and ERC-1271 | Yes | +| Are the following things in the scope of this bridge deployment: | | +| - Passing the (w)stETH/USD price feed | No | +| - Passing Lido DAO governance decisions | [Lido DAO Agent](https://etherscan.io/address/0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c) representation via [MorphBridgeExecutor](TBD) | +| Bridges are complicated in that the transaction can succeed on one side and fail on the other. What's the handling mechanism for this issue? | TBA | +| Is there a deployment script that sets all the parameters and authorities correctly? | No, we use hardhat tasks to deploy and perform related permission operations after the test is completed. | +| Is there a post-deploy check script that, given a deployment, checks that all parameters and authorities are set correctly? | No | + +## Morph's Bridging Flow + +The default Morph bridging solution consists of two components: `L1StandardERC20Gateway` and `L2StandardERC20Gateway`. These contracts facilitate the bridging of ERC20 tokens between the Ethereum and Morph chains. + +In the standard bridge, when an ERC20 token is deposited on Layer 1 and sent to the bridge contract, it is "locked" there while an equivalent amount of the L2 token is minted. For withdrawals, the process is reversed: the L2 token amount is burned, and the same amount of L1 tokens is sent to the recipient. + +While the default Morph bridge meets Lido's short-term goal of bridging the wstETH token into Morph, it poses challenges for achieving long-term objectives. For instance, implementing staking from Layer 2 will likely require modifications to both the token and gateway implementations. + +Moreover, Morph offers the flexibility to create a custom bridge solution using the same cross-domain infrastructure as the standard bridge. The only requirement for a custom bridge to be compatible with the default Morph Gateway is the implementation of the `IL1ERC20Gateway` and `IL2ERC20Gateway` interfaces. + +The remainder of the document includes technical specifications for the bridge that Lido will use to transfer tokens between the Ethereum and Morph chains. + + +## Lido's Bridge Implementation + +The current implementation of the token bridge enables the transfer of ERC20-compatible tokens between Ethereum and Morph chains. It also includes administrative features, such as the ability to temporarily disable deposits and withdrawals. This functionality is crucial for quickly addressing potential malicious activities or vulnerabilities within the contracts, as well as facilitating the upgrade process. + +The technical implementation prioritizes the following requirements for the contracts: + +- **Scalability**: The current design must allow for future extensions and new functionalities. +- **Simplicity**: The contracts should be clear, straightforward, and easy for future developers to understand and work with. +- **Gas Efficiency**: The solution should minimize gas costs for users while maintaining clarity and simplicity. + +A high-level overview of the proposed solution can be found in the diagram below: + + +![](https://i.imgur.com/rbIvCr6.png) + +- [**`LidoGatewayManager`**](./LidoGatewayManager.sol): This contract includes administrative methods to manage and monitor the state of the bridging process. +- [**`LidoBridgeableTokens`**](./LidoBridgeableTokens.sol) : This contract implements the logic for validating tokens involved in the bridging process. +- [**`L1LidoGateway`**](./L1LidoGateway.sol): This contract serves as Ethereum's counterpart for bridging registered ERC20-compatible tokens between Ethereum and Morph chains. +- [**`L2LidoGateway`**](./L2LidoGateway.sol): This contract acts as Morph's counterpart for bridging registered ERC20-compatible tokens between Ethereum and Morph chains. +- [**`MorphStandardERC20`**](../libraries/token/MorphStandardERC20.sol): This is an implementation of the `ERC20` token, equipped with administrative methods for minting and burning tokens. +- [**`TransparentUpgradeableProxy`**](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) : This is an ERC1967 proxy that includes additional administrative functionalities. + +## Morph's Bridging Flow + +You can find the general process for bridging tokens through Morph's Lido bridge here: [ETH and ERC20 Token Bridge](https://docs.morphl2.io/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum). + +The goal of cross-chain governance is bridging the Lido DAO governance decisions, voted by the LDO holders on Ethereum, to Morph network. The main component of this bridge is MorphBridgeExecutor contract on L2, which queues the action sets sent from L1 Lido Agent through L1Executor. + +![](https://i.imgur.com/4cgEo63.png) + + +## Deployment Process + +To minimize gas costs for users, the `L1LidoGateway`, `L2LidoGateway`, and `MorphStandardERC20` contracts utilize immutable variables wherever possible. However, some of these variables reference each other; for instance, `L1LidoGateway` refers to `L2LidoGateway` and vice versa. By using proxies, we can initially deploy them without invoking the `initialize` function for each gateway, and then call the `initialize` function with the correct contract addresses. + +Alternatively, we could pre-calculate the future addresses of the deployed contracts off-chain and deploy the implementation using these pre-calculated addresses, but this approach is less fault-tolerant than the first option. + +## Integration Risks + +As an additional component in the token flow chain, the Morph protocol and bridges introduce potential points of failure. The main risks associated with the current integration are outlined below: + +### Minting of Uncollateralized L2 Tokens + +An attack could occur if an attacker gains access to call `L2LidoGateway.finalizeDepositERC20()` directly. In this scenario, they could mint uncollateralized tokens on L2 and later initiate a withdrawal. + +To detect such an attack, off-chain monitoring of minting and deposit/withdrawal events is essential. The following statistics can be tracked based on these events: + +- `l1ERC20TokenBridgedAmount`: Total number of tokens bridged on the L1 bridge contract. +- `l2TokenTotalSupply`: Total number of minted L2 tokens. +- `l2TokenNotFinalizedDeposit`: Total number of locked L1 tokens that have not been finalized and relayed from the L2 bridge. +- `l2TokenNotWithdrawn`: Total number of burned L2 tokens that have not been withdrawn from the L1 bridge. + +The following invariant must always hold true: `l1ERC20TokenBridgedAmount == l2TokenTotalSupply + l2TokenNotWithdrawn + l2TokenNotFinalizedDeposit`. + +If this invariant is violated, Lido will enter a dispute period to suspend both the L1 and L2 bridges. During this time, the bridges will be disabled, preventing the minting of L2 tokens and the withdrawal of minted tokens until the issue is resolved. + +### Attack on L1CrossDomainMessenger + +According to the Morph documentation, the `L1CrossDomainMessenger` contract sends messages from L1 to L2 and executes the challenged L2 messages in the `Rollup`. + +This contract plays a crucial role in L2-to-L1 communication, as all messages from L2 that are finalized by a challenger and verified by Merkle proof are executed on behalf of this contract. + +If there is a vulnerability in the `L1CrossDomainMessenger` or `Rollup` that allows an attacker to send arbitrary messages while bypassing the challenge and Merkle proof, they could potentially drain tokens from the L1 bridge. + +Additionally, the upgradeability of the `L1CrossDomainMessenger` and `Rollup` poses risks. An attacker could exploit this by replacing the implementation with malicious functionality, which could lead to the theft of all locked tokens on the L1 bridge. + +To respond swiftly to such an attack, Lido can implement monitoring of the Proxy contract to raise an alert in the event of an implementation upgrade. + +--- + +Feel free to ask if you need further adjustments or additional information! From 119f2d5b99eee3f258619abbadfad45db6967fcf Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Mon, 20 Jan 2025 17:08:49 +0800 Subject: [PATCH 076/106] fix(tx-submitter): prevent panic by returning error (#713) --- tx-submitter/services/rollup.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 272c258a6..f946ef339 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -1192,7 +1192,7 @@ func (r *Rollup) ReSubmitTx(resend bool, tx *ethtypes.Transaction) (*ethtypes.Tr tip, gasFeeCap, blobFeeCap, err := r.GetGasTipAndCap() if err != nil { - log.Error("get tip and cap", "err", err) + return nil, fmt.Errorf("get gas tip and cap error:%w", err) } if !resend { // bump tip & feeCap From b75462d35cc82e53724241d2b88409da28b1d896 Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Thu, 23 Jan 2025 15:01:44 +0800 Subject: [PATCH 077/106] fix(tx-submitter): update gas fee cap when replacing tip with min tip (#714) --- tx-submitter/services/rollup.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index f946ef339..3e1de9af0 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -1218,6 +1218,19 @@ func (r *Rollup) ReSubmitTx(resend bool, tx *ethtypes.Transaction) (*ethtypes.Tr if r.cfg.MinTip > 0 && tip.Cmp(big.NewInt(int64(r.cfg.MinTip))) < 0 { log.Info("replace tip is too low, update tip to min tip ", "tip", tip, "min_tip", r.cfg.MinTip) tip = big.NewInt(int64(r.cfg.MinTip)) + // recalc feecap + head, err := r.L1Client.HeaderByNumber(context.Background(), nil) + if err != nil { + return nil, fmt.Errorf("get l1 head error:%w", err) + } + if head.BaseFee != nil { + gasFeeCap = new(big.Int).Add( + tip, + new(big.Int).Mul(head.BaseFee, big.NewInt(2)), + ) + } else { + gasFeeCap = new(big.Int).Set(tip) + } } } From 7fce58981d888ed515fb52d5d750b201aa4a16d0 Mon Sep 17 00:00:00 2001 From: Kathy <22675649+anylots@users.noreply.github.com> Date: Fri, 7 Feb 2025 11:29:17 +0800 Subject: [PATCH 078/106] add testnet deploy config (#716) --- MakefileEks.mk | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/MakefileEks.mk b/MakefileEks.mk index 06cf9aba7..0b935d10a 100644 --- a/MakefileEks.mk +++ b/MakefileEks.mk @@ -91,4 +91,68 @@ build-bk-test-morph-test-qanet-to-morph-staking-oracle-qanet: tar -xvzf secret-manager-wrapper.tar.gz start-bk-test-morph-test-qanet-to-morph-staking-oracle-qanet: + /data/secret-manager-wrapper ./staking-oracle + + +# gas-oracle +# testnet +build-bk-prod-morph-prod-testnet-to-morph-gas-price-oracle-holesky: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/gas-oracle/app && cargo build --release + cp gas-oracle/app/target/release/app dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + + +start-bk-prod-morph-prod-testnet-to-morph-gas-price-oracle-holesky: + /data/secret-manager-wrapper ./app + +# prover +# testnet +build-bk-prod-morph-prod-testnet-to-morph-prover-holesky: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/prover/bin/server && RUSTFLAGS="-C target-feature=+avx2,+avx512f" cargo build --release + cp prover/target/release/prover-server dist/ + cp -r prover/configs dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-prod-morph-prod-testnet-to-morph-prover-holesky: + /data/secret-manager-wrapper ./prover-server + +# challenge-handler +# testnet +build-bk-prod-morph-prod-testnet-to-morph-challenge-handler-holesky: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/prover/bin/challenge && cargo build --release + cp prover/bin/challenge/target/release/challenge-handler dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + + +start-bk-prod-morph-prod-testnet-to-morph-challenge-handler-holesky: + /data/secret-manager-wrapper ./challenge-handler + +# shadow-proving +# testnet +build-bk-prod-morph-prod-testnet-to-morph-shadow-proving-holesky: + if [ ! -d dist ]; then mkdir -p dist; fi + cd $(PWD)/prover/bin/shadow-prove && cargo build --release + cp prover/bin/shadow-prove/target/release/shadow-proving dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-prod-morph-prod-testnet-to-morph-shadow-proving-holesky: + /data/secret-manager-wrapper ./shadow-proving + +# staking-oracle +# testnet +build-bk-prod-morph-prod-testnet-to-morph-staking-oracle-holesky: + if [ ! -d dist ]; then mkdir -p dist; fi + env GO111MODULE=on CGO_LDFLAGS="-ldl" CGO_ENABLED=1 go build -v $(LDFLAGS) -o oracle/staking-oracle ./oracle/cmd/staking-oracle + cp oracle/staking-oracle dist/ + aws s3 cp s3://morph-0582-morph-technical-department-testnet-data/testnet/holesky/morph-setup/secret-manager-wrapper.tar.gz ./ + tar -xvzf secret-manager-wrapper.tar.gz + +start-bk-prod-morph-prod-testnet-to-morph-staking-oracle-holesky: /data/secret-manager-wrapper ./staking-oracle \ No newline at end of file From b51aa1206315118f0dcadf4b24759419f99e1849 Mon Sep 17 00:00:00 2001 From: Dmytrol <46675332+Dimitrolito@users.noreply.github.com> Date: Sat, 8 Feb 2025 05:38:23 +0200 Subject: [PATCH 079/106] Fix typos in `rollup.go`, `executor.go`, `staking_upgrade.ts`, and `L2Staking.t.sol` (#717) --- contracts/contracts/test/L2Staking.t.sol | 4 ++-- contracts/tasks/staking_upgrade.ts | 4 ++-- node/core/executor.go | 4 ++-- oracle/oracle/rollup.go | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/contracts/contracts/test/L2Staking.t.sol b/contracts/contracts/test/L2Staking.t.sol index f09d465a3..bd9288372 100644 --- a/contracts/contracts/test/L2Staking.t.sol +++ b/contracts/contracts/test/L2Staking.t.sol @@ -1239,7 +1239,7 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.claimReward(secondStaker, 2); uint256 balanceAfter = morphToken.balanceOf(bob); - // sequncer size = 3 + // sequencer size = 3 // proposal same blocks in epoch 2 // commission = 1 // alice delegate 5 ether morph token @@ -2097,7 +2097,7 @@ contract L2StakingTest is L2StakingBaseTest { l2Staking.claimReward(firstStaker, 0); uint256 balanceAfter = morphToken.balanceOf(alice); - // sequncer size = 3 + // sequencer size = 3 // proposal same blocks in every epoch // commission = 1 // alice delegate 5 ether morph token in epoch 0 - 1, undeletegate at epoch 1. valid reward epoch is 0, 1 diff --git a/contracts/tasks/staking_upgrade.ts b/contracts/tasks/staking_upgrade.ts index 9a237e62d..d9f5e2e7b 100644 --- a/contracts/tasks/staking_upgrade.ts +++ b/contracts/tasks/staking_upgrade.ts @@ -434,7 +434,7 @@ task("l1staking-deploy-init") console.log("BLOCK_NUMBER: %s", blockNumber) const err = await storage(newPath, ImplStorageName.L1StakingStorageName, contract.address.toLocaleLowerCase(), blockNumber || 0) if (err != '') { - console.log(`deploy L1Staking implemention failed ${err}`) + console.log(`deploy L1Staking implementation failed ${err}`) return err } } @@ -898,4 +898,4 @@ task("l2-staking-deploy") ) const rec = await res.wait() console.log(`L2Staking upgrade ${rec.status === 1}, new impl ${staking.address}`) - }) \ No newline at end of file + }) diff --git a/node/core/executor.go b/node/core/executor.go index 90f97e253..a7209526e 100644 --- a/node/core/executor.go +++ b/node/core/executor.go @@ -146,7 +146,7 @@ var _ l2node.L2Node = (*Executor)(nil) func (e *Executor) RequestBlockData(height int64) (txs [][]byte, blockMeta []byte, collectedL1Msgs bool, err error) { if e.l1MsgReader == nil { - err = fmt.Errorf("RequestBlockData is not alllowed to be called") + err = fmt.Errorf("RequestBlockData is not allowed to be called") return } e.logger.Info("RequestBlockData request", "height", height) @@ -208,7 +208,7 @@ func (e *Executor) RequestBlockData(height int64) (txs [][]byte, blockMeta []byt func (e *Executor) CheckBlockData(txs [][]byte, metaData []byte) (valid bool, err error) { if e.l1MsgReader == nil { - return false, fmt.Errorf("RequestBlockData is not alllowed to be called") + return false, fmt.Errorf("RequestBlockData is not allowed to be called") } if len(metaData) == 0 { e.logger.Error("metaData cannot be nil") diff --git a/oracle/oracle/rollup.go b/oracle/oracle/rollup.go index 6c9256b09..c6052fafa 100644 --- a/oracle/oracle/rollup.go +++ b/oracle/oracle/rollup.go @@ -140,7 +140,7 @@ func (o *Oracle) recordRollupEpoch() error { } epochs, err := o.generateRollupEpoch(epochIndex.Int64(), rollupEpoch.EndTime.Int64(), epochTime.Int64(), updateTime, int64(endBlock), int64(header.Time), math.MaxInt64, sets) if err != nil { - return fmt.Errorf("gernerate rollup epoch info error:%v", err) + return fmt.Errorf("generate rollup epoch info error:%v", err) } rollupEpochInfos = append(rollupEpochInfos, epochs...) } From f4698e42295aae56aa241ac420bd8c22b6f79135 Mon Sep 17 00:00:00 2001 From: Ragnar Date: Sat, 8 Feb 2025 05:00:47 +0100 Subject: [PATCH 080/106] fix: improve error handling and code clarity in overflow_test.ts (#711) --- contracts/tasks/overflow_test.ts | 74 ++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 28 deletions(-) diff --git a/contracts/tasks/overflow_test.ts b/contracts/tasks/overflow_test.ts index 2ad741f3d..b674dfabd 100644 --- a/contracts/tasks/overflow_test.ts +++ b/contracts/tasks/overflow_test.ts @@ -81,39 +81,57 @@ task("crossHash") .addParam("message") .addParam("count") .setAction(async (taskArgs, hre) => { - const addr = taskArgs.contractaddr - const message = taskArgs.message - const count = taskArgs.count - - const deployer = await hre.ethers.provider.getSigner(); - const MyContract = await hre.ethers.getContractFactory("L1OverflowTester", deployer); - const contract = MyContract.attach(addr); - - console.log("sending tx for crossHash......") - //const options = {value: ethers.utils.parseEther("1.0")} - const txn = await contract["crossHash(string,uint256)"](message, count, { value: ethers.utils.parseEther("0.002") }) - - //let txn = await contract.crossHash(message, count, options) - await txn.wait(); - console.log(txn) - - }) + try { + const addr = taskArgs.contractaddr; + const message = taskArgs.message; + const count = taskArgs.count; + + const deployer = await hre.ethers.provider.getSigner(); + const MyContract = await hre.ethers.getContractFactory("L1OverflowTester", deployer); + const contract = MyContract.attach(addr); + + console.log("Sending transaction for crossHash..."); + const txn = await contract["crossHash(string,uint256)"](message, count, { + value: ethers.utils.parseEther("0.002") + }); + + const receipt = await txn.wait(); + console.log("Transaction successful:", { + hash: txn.hash, + blockNumber: receipt.blockNumber, + status: receipt.status === 1 ? 'Success' : 'Failed' + }); + } catch (error) { + console.error("Error in crossHash task:", error.message); + throw error; + } + }); task("updateLimit") .addParam("contractaddr") .addParam("gaslimit") .setAction(async (taskArgs, hre) => { - const addr = taskArgs.contractaddr - const gasLimit = taskArgs.gaslimit - const deployer = await hre.ethers.provider.getSigner(); - const MyContract = await hre.ethers.getContractFactory("L1OverflowTester", deployer); - const contract = MyContract.attach(addr); - - console.log("sending tx for updateGasLimit......"); - let txn = await contract.updateGasLimit(gasLimit); - await txn.wait(); - console.log(txn); - }) + try { + const addr = taskArgs.contractaddr; + const gasLimit = taskArgs.gaslimit; + const deployer = await hre.ethers.provider.getSigner(); + const MyContract = await hre.ethers.getContractFactory("L1OverflowTester", deployer); + const contract = MyContract.attach(addr); + + console.log("Sending transaction for updateGasLimit..."); + const txn = await contract.updateGasLimit(gasLimit); + const receipt = await txn.wait(); + + console.log("Transaction successful:", { + hash: txn.hash, + blockNumber: receipt.blockNumber, + status: receipt.status === 1 ? 'Success' : 'Failed' + }); + } catch (error) { + console.error("Error in updateLimit task:", error.message); + throw error; + } + }); task("printResult") .addParam("contractaddr") From 1f705d57285dd5894ede875f09db1549a5f0c7e3 Mon Sep 17 00:00:00 2001 From: Marco Date: Wed, 12 Feb 2025 05:26:04 +0200 Subject: [PATCH 081/106] Fix spelling error (#718) --- contracts/tasks/overflow_test.ts | 4 ++-- oracle/oracle/oracle.go | 2 +- oracle/oracle/reward.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/contracts/tasks/overflow_test.ts b/contracts/tasks/overflow_test.ts index b674dfabd..f7470fd8b 100644 --- a/contracts/tasks/overflow_test.ts +++ b/contracts/tasks/overflow_test.ts @@ -170,8 +170,8 @@ task("upgradeRollup") const upgradeTx = await RollupProxyWithSigner.upgradeTo(rollupNewImpl.address) console.log("upgradeTx hash: ", upgradeTx.hash) - const recipt = await upgradeTx.wait() - console.log("recipt status: ", recipt.status) + const receipt = await upgradeTx.wait() + console.log("receipt status: ", receipt.status) console.log("after upgrade the impl contract is :", await RollupProxy.callStatic.implementation({ from: ethers.constants.AddressZero, diff --git a/oracle/oracle/oracle.go b/oracle/oracle/oracle.go index 5c789e938..8f688313c 100644 --- a/oracle/oracle/oracle.go +++ b/oracle/oracle/oracle.go @@ -63,7 +63,7 @@ func Main() func(ctx *cli.Context) error { log.Info("metrics server enabled", "host", cfg.MetricsHostname, "port", cfg.MetricsPort) } <-(chan struct{})(nil) - log.Info("staking oracle stoped") + log.Info("staking oracle stopped") return nil } } diff --git a/oracle/oracle/reward.go b/oracle/oracle/reward.go index f67ad451e..fd765b37b 100644 --- a/oracle/oracle/reward.go +++ b/oracle/oracle/reward.go @@ -310,7 +310,7 @@ func (o *Oracle) setStartBlock() { if errors.Is(err, ErrRewardNotStart) { log.Info(err.Error()) } else { - log.Error("query reward start falied", "error", err) + log.Error("query reward start failed", "error", err) } time.Sleep(defaultSleepTime) continue From a1c6c5f02fa6d22ee8d1c8fe9b819cfde5a90e59 Mon Sep 17 00:00:00 2001 From: vincent Date: Fri, 14 Feb 2025 09:55:32 +0800 Subject: [PATCH 082/106] Move block context to blob (#649) Co-authored-by: chengwenxi <22697326+chengwenxi@users.noreply.github.com> Co-authored-by: FletcherMan Co-authored-by: curryxbo Co-authored-by: kukoomomo Co-authored-by: Kathy <22675649+anylots@users.noreply.github.com> --- .gitmodules | 2 +- Makefile | 4 +- bindings/bin/l2staking_deployed.hex | 2 +- bindings/bin/rollup_deployed.hex | 2 +- bindings/bindings/l2staking.go | 2 +- bindings/bindings/l2staking_more.go | 2 +- bindings/bindings/rollup.go | 19 +- bindings/bindings/rollup_more.go | 2 +- bindings/go.mod | 4 +- bindings/go.sum | 4 +- .../contracts/l1/rollup/IL1MessageQueue.sol | 2 +- .../IL1MessageQueueWithGasPriceOracle.sol | 2 +- contracts/contracts/l1/rollup/IRollup.sol | 6 +- contracts/contracts/l1/rollup/Rollup.sol | 136 +++---- .../contracts/l2/staking/IDistribute.sol | 2 +- contracts/contracts/l2/system/IMorphToken.sol | 2 +- contracts/contracts/l2/system/MorphToken.sol | 2 +- .../contracts/l2/system/WrappedEther.sol | 2 +- .../libraries/ICrossDomainMessenger.sol | 2 +- .../libraries/callbacks/IERC677Receiver.sol | 2 +- .../libraries/callbacks/IGatewayCallback.sol | 2 +- .../callbacks/IMessageDropCallback.sol | 2 +- .../libraries/codec/BatchCodecV0.sol | 108 ------ .../libraries/codec/BatchHeaderCodecV0.sol | 2 +- .../libraries/codec/BatchHeaderCodecV1.sol | 59 +++ .../contracts/libraries/common/IWhitelist.sol | 2 +- .../token/IMorphERC1155Extension.sol | 2 +- .../libraries/token/IMorphERC20Extension.sol | 2 +- .../libraries/token/IMorphERC721Extension.sol | 2 +- .../libraries/verifier/IRollupVerifier.sol | 2 +- .../libraries/verifier/ISP1Verifier.sol | 2 +- .../libraries/verifier/IZkEvmVerifier.sol | 2 +- .../libraries/verifier/PlonkVerifier.sol | 2 +- .../libraries/verifier/RollupVerifier.sol | 4 +- .../libraries/verifier/SP1VerifierPlonk.sol | 2 +- contracts/contracts/mock/TestUpgrade.sol | 2 +- contracts/contracts/test/Rollup.t.sol | 164 +++----- .../contracts/test/ZkEvmVerifierV1.t.sol | 5 +- contracts/deploy/016-RollupInit.ts | 2 +- contracts/go.mod | 4 +- contracts/go.sum | 4 +- contracts/hardhat.config.ts | 1 + contracts/src/deploy-config/holesky.ts | 2 +- contracts/src/deploy-config/l1.ts | 2 +- contracts/src/deploy-config/qanetl1.ts | 2 +- contracts/src/deploy-config/sepolia.ts | 2 +- contracts/src/deploy-config/testnetl1.ts | 2 +- gas-oracle/app/data/blob_with_context.data | 1 + gas-oracle/app/src/abi/Rollup.json | 21 +- gas-oracle/app/src/da_scalar/calculate.rs | 59 ++- gas-oracle/app/src/da_scalar/l1_scalar.rs | 127 ++++--- go-ethereum | 2 +- node/core/batch.go | 223 ++--------- node/core/batch_commit.go | 113 ++++++ node/core/batch_seal.go | 151 ++++++++ node/db/keys.go | 10 +- node/db/store.go | 1 - node/derivation/batch_info.go | 109 +++++- node/derivation/derivation.go | 62 +-- node/derivation/derivation_test.go | 21 +- node/go.mod | 4 +- node/go.sum | 8 +- node/types/batch.go | 143 ++++--- node/types/batch_header.go | 215 +++++++++++ node/types/batch_test.go | 77 +++- node/types/blob.go | 155 ++++++++ node/types/consensus_message.go | 24 ++ node/types/retryable_client.go | 20 +- ops/devnet-morph/devnet/__init__.py | 2 +- ops/docker/Dockerfile.l2-node | 4 +- ops/docker/Dockerfile.l2-node-1 | 2 +- ops/docker/Dockerfile.l2-node-4 | 2 +- ops/docker/Dockerfile.staking-oracle | 4 +- ops/docker/Dockerfile.submitter | 4 +- ops/l2-genesis/cmd/genesis/cmd.go | 4 +- ops/l2-genesis/go.mod | 4 +- ops/l2-genesis/go.sum | 4 +- .../morph-chain-ops/genesis/layer_two_test.go | 2 +- ops/tools/batchparse/main.go | 3 +- ops/tools/go.mod | 4 +- ops/tools/go.sum | 8 +- ops/tools/multisend/main.go | 2 +- oracle/go.mod | 4 +- oracle/go.sum | 8 +- oracle/oracle/batch.go | 31 +- prover/bin/challenge/src/abi/Rollup.json | 21 +- prover/bin/challenge/src/handler.rs | 80 ++-- prover/bin/challenge/src/main.rs | 4 +- prover/bin/challenge/src/metrics.rs | 2 - .../client/elf/riscv32im-succinct-zkvm-elf | Bin 5102404 -> 5111648 bytes prover/bin/host/src/lib.rs | 2 +- prover/bin/server/src/queue.rs | 2 +- prover/bin/shadow-prove/Cargo.lock | 356 ++++++++++++------ prover/bin/shadow-prove/Cargo.toml | 2 +- prover/bin/shadow-prove/abi/Rollup.json | 21 +- prover/bin/shadow-prove/src/lib.rs | 3 +- prover/bin/shadow-prove/src/main.rs | 13 +- prover/bin/shadow-prove/src/shadow_prove.rs | 11 +- prover/bin/shadow-prove/src/shadow_rollup.rs | 182 ++++----- prover/crates/core/src/batch.rs | 7 +- .../crates/morph-executor/client/src/lib.rs | 22 +- .../client/src/verifier/blob_verifier.rs | 7 +- prover/crates/morph-executor/host/src/lib.rs | 22 +- tx-submitter/go.mod | 4 +- tx-submitter/go.sum | 8 +- tx-submitter/services/rollup.go | 3 +- tx-submitter/utils/utils.go | 8 +- 107 files changed, 1825 insertions(+), 1181 deletions(-) delete mode 100644 contracts/contracts/libraries/codec/BatchCodecV0.sol create mode 100644 contracts/contracts/libraries/codec/BatchHeaderCodecV1.sol create mode 100644 gas-oracle/app/data/blob_with_context.data create mode 100644 node/core/batch_commit.go create mode 100644 node/core/batch_seal.go create mode 100644 node/types/batch_header.go diff --git a/.gitmodules b/.gitmodules index 3b72cbd03..e14290d97 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "go-ethereum"] path = go-ethereum url = https://github.com/morph-l2/go-ethereum.git -branch = main +branch = feature/block_context diff --git a/Makefile b/Makefile index 955efc36a..59a959ce4 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ ################## update dependencies #################### -ETHEREUM_TARGET_VERSION := v1.10.14-0.20241224100051-1582a364edc0 -TENDERMINT_TARGET_VERSION := v0.3.1 +ETHEREUM_TARGET_VERSION := v1.10.14-0.20241226065029-3b9465a03a8c +TENDERMINT_TARGET_VERSION := v0.3.2-0.20250115141431-c84dfe5c8533 ETHEREUM_MODULE_NAME := github.com/morph-l2/go-ethereum TENDERMINT_MODULE_NAME := github.com/morph-l2/tendermint diff --git a/bindings/bin/l2staking_deployed.hex b/bindings/bin/l2staking_deployed.hex index d748c0f81..c99442dd3 100644 --- a/bindings/bin/l2staking_deployed.hex +++ b/bindings/bin/l2staking_deployed.hex @@ -1 +1 @@ -0x608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106cf578063fad99f98146106e2578063fc6facc6146106ea575f80fd5b8063e10911b11461069e578063ed70b343146106a6578063f0261bc2146106c6575f80fd5b8063cce6cf9f116100c3578063cce6cf9f14610643578063d31d83d914610656578063d557714114610677575f80fd5b8063affed0e0146105f1578063b5d2e0dc146105fa578063c64814dd14610619575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a41461059e578063927ede2d146105bd57806396ab994d146105e4575f80fd5b80638da5cb5b146105445780638e21d5fb146105555780639168ae721461057c575f80fd5b80637b05afb5116101785780637b05afb5146104db578063831cfb58146104fa57806384d7d1d414610521575f80fd5b8063746c8ae1146104cb57806376671808146104d3575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104a85780637046529b146104b0578063715018a6146104c3575f80fd5b806343352d611461047a578063439162b514610482578063459598a214610495575f80fd5b80633cb747bf1161022d5780633cb747bf146104065780633d9353fe1461044057806340b5c83714610467575f80fd5b80633b802421146103ea5780633c323a1b146103f3575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103ae57806330158eea146103b75780633385ccc2146103d7575f80fd5b8063174e31c41461037f57806319fac8fd146103925780632cc138be146103a5575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610376575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe3660046145c5565b6106fd565b6040519081526020015b60405180910390f35b6103296103243660046145e0565b610723565b005b61032961033936600461462a565b610901565b61035161034c366004614641565b610a14565b604080516001600160a01b03909416845260208401929092529082015260600161030d565b610303609a5481565b61032961038d366004614641565b610a5c565b6103296103a036600461462a565b610bd4565b61030360985481565b61030360995481565b6103ca6103c53660046146b3565b610cf6565b60405161030d9190614753565b6103296103e53660046145c5565b610f1d565b610303609c5481565b610329610401366004614641565b611557565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161030d565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61032961047536600461462a565b611be6565b6103ca611cf9565b6103296104903660046147f9565b611f15565b6104286104a336600461462a565b612446565b609d54610303565b6103296104be3660046145e0565b61246e565b6103296125c8565b6103296125db565b6103036128cb565b6103036104e93660046145c5565b60a06020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61053461052f3660046145c5565b61293f565b604051901515815260200161030d565b6033546001600160a01b0316610428565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61058f61058a3660046145c5565b612969565b60405161030d93929190614867565b6103036105ac3660046145c5565b60a16020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b6097546105349060ff1681565b61030360a55481565b6103036106083660046145c5565b609e6020525f908152604090205481565b610303610627366004614897565b60a360209081525f928352604080842090915290825290205481565b6103296106513660046148c3565b612a1b565b61066961066436600461490b565b612f87565b60405161030d929190614980565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329613115565b6106b96106b43660046145c5565b613499565b60405161030d91906149a0565b610303609b5481565b6103296106dd3660046145c5565b61352f565b6103296135bc565b6103296106f83660046148c3565b61366a565b6001600160a01b0381165f90815260a26020526040812061071d90613a35565b92915050565b61072b613a3e565b8160a55481146107825760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b61078d836001614a2e565b60a555609e5f6107a060208501856145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f0361084257609d6107d560208401846145c5565b81546001810183555f9283526020808420909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155609d5491609e91610828908601866145c5565b6001600160a01b0316815260208101919091526040015f20555b81609f5f61085360208401846145c5565b6001600160a01b0316815260208101919091526040015f206108758282614b5e565b50610885905060208301836145c5565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208401356108c16040860186614a41565b6040516108d093929190614cc5565b60405180910390a260975460ff161580156108ef5750609954609d5411155b156108fc576108fc613a98565b505050565b610909613a3e565b5f8111801561091a57506099548114155b61098c5760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a650000000000000000000000000000000000000000000000000000000000006064820152608401610779565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff166109e157609d546109e5565b609c545b90505f60995482106109f9576099546109fb565b815b9050609b548114610a0e57610a0e613a98565b50505050565b60a4602052815f5260405f208181548110610a2d575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610a64613c18565b6001600160a01b038216610b1a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610aff575f80fd5b505af1158015610b11573d5f803e3d5ffd5b50505050610bc6565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610baf575f80fd5b505af1158015610bc1573d5f803e3d5ffd5b505050505b610bd06001606555565b5050565b335f908152609e6020526040902054610c2f5760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f776564000000000000000000000000006044820152606401610779565b6014811115610c805760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e00000000000000000000000000006044820152606401610779565b335f90815260a06020526040812082905560975460ff16610ca1575f610cb4565b610ca96128cb565b610cb4906001614a2e565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610d1257610d12614aa2565b604051908082528060200260200182016040528015610d5e57816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610d305790505b5090505f5b83811015610f15576040518060600160405280609f5f888886818110610d8b57610d8b614d18565b9050602002016020810190610da091906145c5565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610ddd57610ddd614d18565b9050602002016020810190610df291906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f888886818110610e2f57610e2f614d18565b9050602002016020810190610e4491906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f206002018054610e7190614acf565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9d90614acf565b8015610ee85780601f10610ebf57610100808354040283529160200191610ee8565b820191905f5260205f20905b815481529060010190602001808311610ecb57829003601f168201915b5050505050815250828281518110610f0257610f02614d18565b6020908102919091010152600101610d63565b509392505050565b610f25613c18565b6001600160a01b0381165f90815260a360209081526040808320338452909152902054610f945760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f000000000000000000006044820152606401610779565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff16610fc0575f610fd3565b610fc86128cb565b610fd3906001614a2e565b6097549091505f9060ff168015610fe8575082155b610ff25781610fff565b609a54610fff9083614a2e565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c51600390920201805473ffffffffffffffffffffffffffffffffffffffff191691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936110b6908490614d45565b90915550506001600160a01b0385165f90815260a2602052604090206110dc9033613c78565b506001600160a01b0385165f908152609e602052604090205484158015611105575060975460ff165b80156111125750609c5481105b15611373576001600160a01b0386165f908152609e602052604081205461113b90600190614d45565b90505b6001609c5461114d9190614d45565b8110156113715760a15f609d838154811061116a5761116a614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d61119f856001614a2e565b815481106111af576111af614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611369575f609d82815481106111ed576111ed614d18565b5f918252602090912001546001600160a01b03169050609d611210836001614a2e565b8154811061122057611220614d18565b5f91825260209091200154609d80546001600160a01b03909216918490811061124b5761124b614d18565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905580609d61128e846001614a2e565b8154811061129e5761129e614d18565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556112de826001614a2e565b609e5f609d85815481106112f4576112f4614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611323826002614a2e565b609e5f609d611333866001614a2e565b8154811061134357611343614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b60010161113e565b505b8415801561139657506001600160a01b0386165f90815260a16020526040902054155b156113b3576001609c5f8282546113ad9190614d45565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611454575f80fd5b505af1158015611466573d5f803e3d5ffd5b505050506114713390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516114cc939291909283526020830191909152604082015260600190565b60405180910390a3841580156114e4575060975460ff165b80156114f25750609b548111155b80156115385750609b546001600160a01b0387165f908152609e602052604090205411806115385750609c546001600160a01b0387165f908152609e6020526040902054115b1561154557611545613a98565b50505050506115546001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906115bd5760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6572000000000000000000000000000000000000000000006044820152606401610779565b6115c5613c18565b5f82116116145760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e740000000000000000000000006044820152606401610779565b61161e3384613c93565b1561166b5760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d6564000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a3602090815260408083203384529091529020546116e95761169c3384613d1c565b156116e95760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d6564000000000000000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a1602052604081208054849290611710908490614a2e565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611747908490614a2e565b90915550506001600160a01b0383165f90815260a26020526040902061176d9033613dd1565b506001600160a01b0383165f90815260a160205260409020548290036117a5576001609c5f82825461179f9190614a2e565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff1680156117cf5750600181115b15611a15575f6117e0600183614d45565b90505b8015611a135760a15f609d6117f9600185614d45565b8154811061180957611809614d18565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d848154811061185a5761185a614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611a01575f609d611892600184614d45565b815481106118a2576118a2614d18565b5f91825260209091200154609d80546001600160a01b03909216925090839081106118cf576118cf614d18565b5f918252602090912001546001600160a01b0316609d6118f0600185614d45565b8154811061190057611900614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d838154811061193f5761193f614d18565b5f9182526020822001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0393909316929092179091558290609e90609d611986600185614d45565b8154811061199657611996614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020556119c5826001614a2e565b609e5f609d85815481106119db576119db614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611a0b81614d58565b9150506117e3565b505b6097545f9060ff16611a27575f611a3a565b611a2f6128cb565b611a3a906001614a2e565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611b6e575f80fd5b505af1158015611b80573d5f803e3d5ffd5b50505050611b95611b8e3390565b3086613de5565b60975460ff168015611ba85750609b5482115b8015611bcd57506099546001600160a01b0386165f908152609e602052604090205411155b15611bda57611bda613a98565b50506108fc6001606555565b611bee613a3e565b60975460ff1615611c415760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c72656164792073746172746564000000000000000000006044820152606401610779565b4281118015611c5a5750611c586201518082614d9a565b155b8015611c6857506098548114155b611cb45760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff811115611d1957611d19614aa2565b604051908082528060200260200182016040528015611d6557816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081611d375790505b5090505f5b609d54811015611f0f576040518060600160405280609f5f609d8581548110611d9557611d95614d18565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110611de157611de1614d18565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d8581548110611e3a57611e3a614d18565b5f9182526020808320909101546001600160a01b0316835282019290925260400190206002018054611e6b90614acf565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9790614acf565b8015611ee25780601f10611eb957610100808354040283529160200191611ee2565b820191905f5260205f20905b815481529060010190602001808311611ec557829003601f168201915b5050505050815250828281518110611efc57611efc614d18565b6020908102919091010152600101611d6a565b50919050565b5f54610100900460ff1615808015611f3357505f54600160ff909116105b80611f4c5750303b158015611f4c57505f5460ff166001145b611fbe5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610779565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561201a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166120705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610779565b5f86116120e55760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f20300000000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f85116121345760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f636873000000006044820152606401610779565b428411801561214d575061214b6201518085614d9a565b155b6121995760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b816121e65760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b6572730000000000000000006044820152606401610779565b6121ef8761404b565b6121f76140a9565b6099869055609a8590556098849055609b8290555f5b609b548110156123685783838281811061222957612229614d18565b905060200281019061223b9190614dad565b609f5f86868581811061225057612250614d18565b90506020028101906122629190614dad565b6122709060208101906145c5565b6001600160a01b0316815260208101919091526040015f206122928282614b5e565b905050609d8484838181106122a9576122a9614d18565b90506020028101906122bb9190614dad565b6122c99060208101906145c5565b8154600180820184555f938452602090932001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612312908290614a2e565b609e5f86868581811061232757612327614d18565b90506020028101906123399190614dad565b6123479060208101906145c5565b6001600160a01b0316815260208101919091526040015f205560010161220d565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561243d575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612455575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561255657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061254b9190614de9565b6001600160a01b0316145b61072b5760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b6125d0613a3e565b6125d95f61404b565b565b6125e3613a3e565b60985442101561265a5760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d65000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f609c54116126ab5760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e6469646174650000000000000000000000000000000000006044820152606401610779565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612868575f5b8181101561285f5760a15f609d838154811061270457612704614d18565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d858154811061275557612755614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612857575f609d828154811061279357612793614d18565b5f91825260209091200154609d80546001600160a01b03909216925090849081106127c0576127c0614d18565b5f91825260209091200154609d80546001600160a01b0390921691849081106127eb576127eb614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d848154811061282a5761282a614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b6001016126e6565b506001016126da565b505f5b609d548110156128c257612880816001614a2e565b609e5f609d848154811061289657612896614d18565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205560010161286b565b506125d9613a98565b5f60985442101561291e5760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f74207374617274656420796574000000000000006044820152606401610779565b62015180609854426129309190614d45565b61293a9190614e04565b905090565b6001600160a01b0381165f90815260a360209081526040808320338452909152812054151561071d565b609f6020525f90815260409020805460018201546002830180546001600160a01b0390931693919261299a90614acf565b80601f01602080910402602001604051908101604052809291908181526020018280546129c690614acf565b8015612a115780601f106129e857610100808354040283529160200191612a11565b820191905f5260205f20905b8154815290600101906020018083116129f457829003601f168201915b5050505050905083565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612b0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af89190614de9565b6001600160a01b0316145b612b755760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b8260a5548114612bc75760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b612bd2846001614a2e565b60a5555f805b83811015612f3857609b54609e5f878785818110612bf857612bf8614d18565b9050602002016020810190612c0d91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205411612c3757600191505b5f609e5f878785818110612c4d57612c4d614d18565b9050602002016020810190612c6291906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba575f6001609e5f888886818110612ca057612ca0614d18565b9050602002016020810190612cb591906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f2054612cdf9190614d45565b90505b609d54612cf190600190614d45565b811015612dc357609d612d05826001614a2e565b81548110612d1557612d15614d18565b5f91825260209091200154609d80546001600160a01b039092169183908110612d4057612d40614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d8481548110612d8357612d83614d18565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190612db6908490614d45565b9091555050600101612ce2565b50609d805480612dd557612dd5614e17565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e90868684818110612e1a57612e1a614d18565b9050602002016020810190612e2f91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f878785818110612e6757612e67614d18565b9050602002016020810190612e7c91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba576001609c5f828254612eb49190614d45565b90915550505b609f5f868684818110612ecf57612ecf614d18565b9050602002016020810190612ee491906145c5565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590612f2e6002830182614567565b5050600101612bd8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618484604051612f6a929190614e44565b60405180910390a18015612f8057612f80613a98565b5050505050565b5f60605f8411612fd95760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a650000000000000000000000000000006044820152606401610779565b6001600160a01b0385165f90815260a260205260409020612ff990613a35565b91508367ffffffffffffffff81111561301457613014614aa2565b60405190808252806020026020018201604052801561303d578160200160208202803683370190505b5090505f61304b8486614e91565b90505f600161305a8682614a2e565b6130649088614e91565b61306e9190614d45565b905061307b600185614d45565b8111156130905761308d600185614d45565b90505b815f5b828211613109576130c7826130a781614ea8565b6001600160a01b038c165f90815260a2602052604090209094509061412d565b85826130d281614ea8565b9350815181106130e4576130e4614d18565b60200260200101906001600160a01b031690816001600160a01b031681525050613093565b50505050935093915050565b61311d613c18565b335f90815260a46020526040812054815b818110156134335760975460ff16158061317e575061314b6128cb565b335f90815260a46020526040902080548390811061316b5761316b614d18565b905f5260205f2090600302016002015411155b1561342157335f90815260a4602052604090208054829081106131a3576131a3614d18565b905f5260205f20906003020160010154836131be9190614a2e565b335f90815260a46020526040812080549295509091839081106131e3576131e3614d18565b5f91825260208220600390910201546001600160a01b0316915060a4816132073390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061323757613237614d18565b905f5260205f2090600302016002015490505f60a45f6132543390565b6001600160a01b03166001600160a01b031681526020019081526020015f20848154811061328457613284614d18565b905f5260205f2090600302016001015490506001856132a39190614d45565b84101561336857335f90815260a4602052604090206132c3600187614d45565b815481106132d3576132d3614d18565b905f5260205f20906003020160a45f6132e93390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061331957613319614d18565b5f91825260209091208254600390920201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a46020526040902080548061338557613385614e17565b5f8281526020812060035f1990930192830201805473ffffffffffffffffffffffffffffffffffffffff19168155600181810183905560029091019190915591556133d09086614d45565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a350505061312e565b61342c816001614a2e565b905061312e565b505f82116134835760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d0000000000000000006044820152606401610779565b61348d3383614138565b50506125d96001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613524575f848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016134d0565b505050509050919050565b613537613a3e565b6001600160a01b0381166135b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610779565b6115548161404b565b6135c4613c18565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b15801561364a575f80fd5b505af115801561365c573d5f803e3d5ffd5b505050506125d96001606555565b613672613a3e565b8260a55481146136c45760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b6136cf846001614a2e565b60a5555f805b83811015612f3857609b54609e5f8787858181106136f5576136f5614d18565b905060200201602081019061370a91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161373457600191505b5f609e5f87878581811061374a5761374a614d18565b905060200201602081019061375f91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139b7575f6001609e5f88888681811061379d5761379d614d18565b90506020020160208101906137b291906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20546137dc9190614d45565b90505b609d546137ee90600190614d45565b8110156138c057609d613802826001614a2e565b8154811061381257613812614d18565b5f91825260209091200154609d80546001600160a01b03909216918390811061383d5761383d614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d848154811061388057613880614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080549091906138b3908490614d45565b90915550506001016137df565b50609d8054806138d2576138d2614e17565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e9086868481811061391757613917614d18565b905060200201602081019061392c91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f87878581811061396457613964614d18565b905060200201602081019061397991906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139b7576001609c5f8282546139b19190614d45565b90915550505b609f5f8686848181106139cc576139cc614d18565b90506020020160208101906139e191906145c5565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590613a2b6002830182614567565b50506001016136d5565b5f61071d825490565b6033546001600160a01b031633146125d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610779565b60995460975460ff1615613abc57609954609c541015613ab75750609c545b613acd565b609954609d541015613acd5750609d545b5f8167ffffffffffffffff811115613ae757613ae7614aa2565b604051908082528060200260200182016040528015613b10578160200160208202803683370190505b5090505f5b82811015613b7d57609d8181548110613b3057613b30614d18565b905f5260205f20015f9054906101000a90046001600160a01b0316828281518110613b5d57613b5d614d18565b6001600160a01b0390921660209283029190910190910152600101613b15565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490613be3908490600401614ec0565b5f604051808303815f87803b158015613bfa575f80fd5b505af1158015613c0c573d5f803e3d5ffd5b50509151609b55505050565b600260655403613c6a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610779565b6002606555565b6001606555565b5f613c8c836001600160a01b038416614396565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613d13576001600160a01b038481165f90815260a46020526040902080549185169183908110613ce357613ce3614d18565b5f9182526020909120600390910201546001600160a01b031603613d0b57600191505061071d565b600101613c96565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613dc99190614ed2565b159392505050565b5f613c8c836001600160a01b038416614479565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e8a9190614ef1565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f409190614ed2565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613fc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fe69190614ef1565b90505f83118015613fff575082613ffd8383614d45565b145b612f805760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166141255760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b6125d96144c5565b5f613c8c8383614541565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156141b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141dd9190614ef1565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614267573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061428b9190614ed2565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa15801561430d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143319190614ef1565b90505f8311801561434a5750826143488383614d45565b145b610a0e5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b5f8181526001830160205260408120548015614470575f6143b8600183614d45565b85549091505f906143cb90600190614d45565b905081811461442a575f865f0182815481106143e9576143e9614d18565b905f5260205f200154905080875f01848154811061440957614409614d18565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061443b5761443b614e17565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061071d565b5f91505061071d565b5f8181526001830160205260408120546144be57508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561071d565b505f61071d565b5f54610100900460ff16613c715760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b5f825f01828154811061455657614556614d18565b905f5260205f200154905092915050565b50805461457390614acf565b5f825580601f10614582575050565b601f0160209004905f5260205f209081019061155491905b808211156145ad575f815560010161459a565b5090565b6001600160a01b0381168114611554575f80fd5b5f602082840312156145d5575f80fd5b8135613c8c816145b1565b5f80604083850312156145f1575f80fd5b82359150602083013567ffffffffffffffff81111561460e575f80fd5b83016060818603121561461f575f80fd5b809150509250929050565b5f6020828403121561463a575f80fd5b5035919050565b5f8060408385031215614652575f80fd5b823561465d816145b1565b946020939093013593505050565b5f8083601f84011261467b575f80fd5b50813567ffffffffffffffff811115614692575f80fd5b6020830191508360208260051b85010111156146ac575f80fd5b9250929050565b5f80602083850312156146c4575f80fd5b823567ffffffffffffffff8111156146da575f80fd5b6146e68582860161466b565b90969095509350505050565b5f81518084525f5b81811015614716576020818501810151868301820152016146fa565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156147eb578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526147d7818601836146f2565b96890196945050509086019060010161477a565b509098975050505050505050565b5f805f805f8060a0878903121561480e575f80fd5b8635614819816145b1565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614849575f80fd5b61485589828a0161466b565b979a9699509497509295939492505050565b6001600160a01b0384168152826020820152606060408201525f61488e60608301846146f2565b95945050505050565b5f80604083850312156148a8575f80fd5b82356148b3816145b1565b9150602083013561461f816145b1565b5f805f604084860312156148d5575f80fd5b83359250602084013567ffffffffffffffff8111156148f2575f80fd5b6148fe8682870161466b565b9497909650939450505050565b5f805f6060848603121561491d575f80fd5b8335614928816145b1565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156149755781516001600160a01b031687529582019590820190600101614950565b509495945050505050565b828152604060208201525f614998604083018461493d565b949350505050565b602080825282518282018190525f919060409081850190868401855b828110156149f457815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016149bc565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561071d5761071d614a01565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a74575f80fd5b83018035915067ffffffffffffffff821115614a8e575f80fd5b6020019150368190038213156146ac575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680614ae357607f821691505b602082108103611f0f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156108fc57805f5260205f20601f840160051c81016020851015614b3f5750805b601f840160051c820191505b81811015612f80575f8155600101614b4b565b8135614b69816145b1565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614bd5575f80fd5b8501803567ffffffffffffffff811115614bed575f80fd5b8036038483011315614bfd575f80fd5b614c1181614c0b8554614acf565b85614b1a565b5f601f821160018114614c44575f8315614c2d57508382018601355b5f19600385901b1c1916600184901b178555614cba565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614c9057868501890135825593880193908901908801614c71565b5084821015614cae575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8181038181111561071d5761071d614a01565b5f81614d6657614d66614a01565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614da857614da8614d6d565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614ddf575f80fd5b9190910192915050565b5f60208284031215614df9575f80fd5b8151613c8c816145b1565b5f82614e1257614e12614d6d565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015614e86578235614e6b816145b1565b6001600160a01b031682529183019190830190600101614e58565b509695505050505050565b808202811582820484141761071d5761071d614a01565b5f5f198203614eb957614eb9614a01565b5060010190565b602081525f613c8c602083018461493d565b5f60208284031215614ee2575f80fd5b81518015158114613c8c575f80fd5b5f60208284031215614f01575f80fd5b505191905056fea164736f6c6343000818000a +0x608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106cf578063fad99f98146106e2578063fc6facc6146106ea575f80fd5b8063e10911b11461069e578063ed70b343146106a6578063f0261bc2146106c6575f80fd5b8063cce6cf9f116100c3578063cce6cf9f14610643578063d31d83d914610656578063d557714114610677575f80fd5b8063affed0e0146105f1578063b5d2e0dc146105fa578063c64814dd14610619575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a41461059e578063927ede2d146105bd57806396ab994d146105e4575f80fd5b80638da5cb5b146105445780638e21d5fb146105555780639168ae721461057c575f80fd5b80637b05afb5116101785780637b05afb5146104db578063831cfb58146104fa57806384d7d1d414610521575f80fd5b8063746c8ae1146104cb57806376671808146104d3575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104a85780637046529b146104b0578063715018a6146104c3575f80fd5b806343352d611461047a578063439162b514610482578063459598a214610495575f80fd5b80633cb747bf1161022d5780633cb747bf146104065780633d9353fe1461044057806340b5c83714610467575f80fd5b80633b802421146103ea5780633c323a1b146103f3575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103ae57806330158eea146103b75780633385ccc2146103d7575f80fd5b8063174e31c41461037f57806319fac8fd146103925780632cc138be146103a5575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610376575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe36600461465b565b6106fd565b6040519081526020015b60405180910390f35b610329610324366004614676565b610723565b005b6103296103393660046146c0565b610901565b61035161034c3660046146d7565b610a14565b604080516001600160a01b03909416845260208401929092529082015260600161030d565b610303609a5481565b61032961038d3660046146d7565b610a5c565b6103296103a03660046146c0565b610bd4565b61030360985481565b61030360995481565b6103ca6103c5366004614749565b610cf6565b60405161030d91906147e9565b6103296103e536600461465b565b610f1d565b610303609c5481565b6103296104013660046146d7565b611557565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161030d565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b6103296104753660046146c0565b611be6565b6103ca611cf9565b61032961049036600461488f565b611f15565b6104286104a33660046146c0565b612446565b609d54610303565b6103296104be366004614676565b61246e565b6103296125c8565b6103296125db565b6103036128cb565b6103036104e936600461465b565b60a06020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61053461052f36600461465b565b61293f565b604051901515815260200161030d565b6033546001600160a01b0316610428565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61058f61058a36600461465b565b612969565b60405161030d939291906148fd565b6103036105ac36600461465b565b60a16020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b6097546105349060ff1681565b61030360a55481565b61030361060836600461465b565b609e6020525f908152604090205481565b61030361062736600461492d565b60a360209081525f928352604080842090915290825290205481565b610329610651366004614959565b612a1b565b6106696106643660046149a1565b612f87565b60405161030d929190614a16565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329613115565b6106b96106b436600461465b565b613499565b60405161030d9190614a36565b610303609b5481565b6103296106dd36600461465b565b61352f565b6103296135bc565b6103296106f8366004614959565b61366a565b6001600160a01b0381165f90815260a26020526040812061071d90613a35565b92915050565b61072b613a3e565b8160a55481146107825760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b61078d836001614ac4565b60a555609e5f6107a0602085018561465b565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f0361084257609d6107d5602084018461465b565b81546001810183555f9283526020808420909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155609d5491609e916108289086018661465b565b6001600160a01b0316815260208101919091526040015f20555b81609f5f610853602084018461465b565b6001600160a01b0316815260208101919091526040015f206108758282614bf4565b506108859050602083018361465b565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208401356108c16040860186614ad7565b6040516108d093929190614d5b565b60405180910390a260975460ff161580156108ef5750609954609d5411155b156108fc576108fc613a98565b505050565b610909613a3e565b5f8111801561091a57506099548114155b61098c5760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a650000000000000000000000000000000000000000000000000000000000006064820152608401610779565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff166109e157609d546109e5565b609c545b90505f60995482106109f9576099546109fb565b815b9050609b548114610a0e57610a0e613a98565b50505050565b60a4602052815f5260405f208181548110610a2d575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610a64613c18565b6001600160a01b038216610b1a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610aff575f80fd5b505af1158015610b11573d5f803e3d5ffd5b50505050610bc6565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610baf575f80fd5b505af1158015610bc1573d5f803e3d5ffd5b505050505b610bd06001606555565b5050565b335f908152609e6020526040902054610c2f5760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f776564000000000000000000000000006044820152606401610779565b6014811115610c805760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e00000000000000000000000000006044820152606401610779565b335f90815260a06020526040812082905560975460ff16610ca1575f610cb4565b610ca96128cb565b610cb4906001614ac4565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610d1257610d12614b38565b604051908082528060200260200182016040528015610d5e57816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610d305790505b5090505f5b83811015610f15576040518060600160405280609f5f888886818110610d8b57610d8b614dae565b9050602002016020810190610da0919061465b565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610ddd57610ddd614dae565b9050602002016020810190610df2919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f888886818110610e2f57610e2f614dae565b9050602002016020810190610e44919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f206002018054610e7190614b65565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9d90614b65565b8015610ee85780601f10610ebf57610100808354040283529160200191610ee8565b820191905f5260205f20905b815481529060010190602001808311610ecb57829003601f168201915b5050505050815250828281518110610f0257610f02614dae565b6020908102919091010152600101610d63565b509392505050565b610f25613c18565b6001600160a01b0381165f90815260a360209081526040808320338452909152902054610f945760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f000000000000000000006044820152606401610779565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff16610fc0575f610fd3565b610fc86128cb565b610fd3906001614ac4565b6097549091505f9060ff168015610fe8575082155b610ff25781610fff565b609a54610fff9083614ac4565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c51600390920201805473ffffffffffffffffffffffffffffffffffffffff191691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936110b6908490614ddb565b90915550506001600160a01b0385165f90815260a2602052604090206110dc9033613c78565b506001600160a01b0385165f908152609e602052604090205484158015611105575060975460ff165b80156111125750609c5481105b15611373576001600160a01b0386165f908152609e602052604081205461113b90600190614ddb565b90505b6001609c5461114d9190614ddb565b8110156113715760a15f609d838154811061116a5761116a614dae565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d61119f856001614ac4565b815481106111af576111af614dae565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611369575f609d82815481106111ed576111ed614dae565b5f918252602090912001546001600160a01b03169050609d611210836001614ac4565b8154811061122057611220614dae565b5f91825260209091200154609d80546001600160a01b03909216918490811061124b5761124b614dae565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905580609d61128e846001614ac4565b8154811061129e5761129e614dae565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556112de826001614ac4565b609e5f609d85815481106112f4576112f4614dae565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611323826002614ac4565b609e5f609d611333866001614ac4565b8154811061134357611343614dae565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b60010161113e565b505b8415801561139657506001600160a01b0386165f90815260a16020526040902054155b156113b3576001609c5f8282546113ad9190614ddb565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611454575f80fd5b505af1158015611466573d5f803e3d5ffd5b505050506114713390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516114cc939291909283526020830191909152604082015260600190565b60405180910390a3841580156114e4575060975460ff165b80156114f25750609b548111155b80156115385750609b546001600160a01b0387165f908152609e602052604090205411806115385750609c546001600160a01b0387165f908152609e6020526040902054115b1561154557611545613a98565b50505050506115546001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906115bd5760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6572000000000000000000000000000000000000000000006044820152606401610779565b6115c5613c18565b5f82116116145760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e740000000000000000000000006044820152606401610779565b61161e3384613c93565b1561166b5760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d6564000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a3602090815260408083203384529091529020546116e95761169c3384613d1c565b156116e95760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d6564000000000000000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a1602052604081208054849290611710908490614ac4565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611747908490614ac4565b90915550506001600160a01b0383165f90815260a26020526040902061176d9033613dd1565b506001600160a01b0383165f90815260a160205260409020548290036117a5576001609c5f82825461179f9190614ac4565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff1680156117cf5750600181115b15611a15575f6117e0600183614ddb565b90505b8015611a135760a15f609d6117f9600185614ddb565b8154811061180957611809614dae565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d848154811061185a5761185a614dae565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611a01575f609d611892600184614ddb565b815481106118a2576118a2614dae565b5f91825260209091200154609d80546001600160a01b03909216925090839081106118cf576118cf614dae565b5f918252602090912001546001600160a01b0316609d6118f0600185614ddb565b8154811061190057611900614dae565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d838154811061193f5761193f614dae565b5f9182526020822001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0393909316929092179091558290609e90609d611986600185614ddb565b8154811061199657611996614dae565b5f9182526020808320909101546001600160a01b031683528201929092526040019020556119c5826001614ac4565b609e5f609d85815481106119db576119db614dae565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611a0b81614dee565b9150506117e3565b505b6097545f9060ff16611a27575f611a3a565b611a2f6128cb565b611a3a906001614ac4565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611b6e575f80fd5b505af1158015611b80573d5f803e3d5ffd5b50505050611b95611b8e3390565b3086613de5565b60975460ff168015611ba85750609b5482115b8015611bcd57506099546001600160a01b0386165f908152609e602052604090205411155b15611bda57611bda613a98565b50506108fc6001606555565b611bee613a3e565b60975460ff1615611c415760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c72656164792073746172746564000000000000000000006044820152606401610779565b4281118015611c5a5750611c586201518082614e30565b155b8015611c6857506098548114155b611cb45760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff811115611d1957611d19614b38565b604051908082528060200260200182016040528015611d6557816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081611d375790505b5090505f5b609d54811015611f0f576040518060600160405280609f5f609d8581548110611d9557611d95614dae565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110611de157611de1614dae565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d8581548110611e3a57611e3a614dae565b5f9182526020808320909101546001600160a01b0316835282019290925260400190206002018054611e6b90614b65565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9790614b65565b8015611ee25780601f10611eb957610100808354040283529160200191611ee2565b820191905f5260205f20905b815481529060010190602001808311611ec557829003601f168201915b5050505050815250828281518110611efc57611efc614dae565b6020908102919091010152600101611d6a565b50919050565b5f54610100900460ff1615808015611f3357505f54600160ff909116105b80611f4c5750303b158015611f4c57505f5460ff166001145b611fbe5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610779565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561201a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166120705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610779565b5f86116120e55760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f20300000000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f85116121345760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f636873000000006044820152606401610779565b428411801561214d575061214b6201518085614e30565b155b6121995760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b816121e65760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b6572730000000000000000006044820152606401610779565b6121ef87614096565b6121f76140f4565b6099869055609a8590556098849055609b8290555f5b609b548110156123685783838281811061222957612229614dae565b905060200281019061223b9190614e43565b609f5f86868581811061225057612250614dae565b90506020028101906122629190614e43565b61227090602081019061465b565b6001600160a01b0316815260208101919091526040015f206122928282614bf4565b905050609d8484838181106122a9576122a9614dae565b90506020028101906122bb9190614e43565b6122c990602081019061465b565b8154600180820184555f938452602090932001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612312908290614ac4565b609e5f86868581811061232757612327614dae565b90506020028101906123399190614e43565b61234790602081019061465b565b6001600160a01b0316815260208101919091526040015f205560010161220d565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561243d575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612455575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561255657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061254b9190614e7f565b6001600160a01b0316145b61072b5760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b6125d0613a3e565b6125d95f614096565b565b6125e3613a3e565b60985442101561265a5760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d65000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f609c54116126ab5760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e6469646174650000000000000000000000000000000000006044820152606401610779565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612868575f5b8181101561285f5760a15f609d838154811061270457612704614dae565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d858154811061275557612755614dae565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612857575f609d828154811061279357612793614dae565b5f91825260209091200154609d80546001600160a01b03909216925090849081106127c0576127c0614dae565b5f91825260209091200154609d80546001600160a01b0390921691849081106127eb576127eb614dae565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d848154811061282a5761282a614dae565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b6001016126e6565b506001016126da565b505f5b609d548110156128c257612880816001614ac4565b609e5f609d848154811061289657612896614dae565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205560010161286b565b506125d9613a98565b5f60985442101561291e5760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f74207374617274656420796574000000000000006044820152606401610779565b62015180609854426129309190614ddb565b61293a9190614e9a565b905090565b6001600160a01b0381165f90815260a360209081526040808320338452909152812054151561071d565b609f6020525f90815260409020805460018201546002830180546001600160a01b0390931693919261299a90614b65565b80601f01602080910402602001604051908101604052809291908181526020018280546129c690614b65565b8015612a115780601f106129e857610100808354040283529160200191612a11565b820191905f5260205f20905b8154815290600101906020018083116129f457829003601f168201915b5050505050905083565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612b0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af89190614e7f565b6001600160a01b0316145b612b755760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b8260a5548114612bc75760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b612bd2846001614ac4565b60a5555f805b83811015612f3857609b54609e5f878785818110612bf857612bf8614dae565b9050602002016020810190612c0d919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f205411612c3757600191505b5f609e5f878785818110612c4d57612c4d614dae565b9050602002016020810190612c62919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba575f6001609e5f888886818110612ca057612ca0614dae565b9050602002016020810190612cb5919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f2054612cdf9190614ddb565b90505b609d54612cf190600190614ddb565b811015612dc357609d612d05826001614ac4565b81548110612d1557612d15614dae565b5f91825260209091200154609d80546001600160a01b039092169183908110612d4057612d40614dae565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d8481548110612d8357612d83614dae565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190612db6908490614ddb565b9091555050600101612ce2565b50609d805480612dd557612dd5614ead565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e90868684818110612e1a57612e1a614dae565b9050602002016020810190612e2f919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f878785818110612e6757612e67614dae565b9050602002016020810190612e7c919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba576001609c5f828254612eb49190614ddb565b90915550505b609f5f868684818110612ecf57612ecf614dae565b9050602002016020810190612ee4919061465b565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590612f2e60028301826145fd565b5050600101612bd8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618484604051612f6a929190614eda565b60405180910390a18015612f8057612f80613a98565b5050505050565b5f60605f8411612fd95760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a650000000000000000000000000000006044820152606401610779565b6001600160a01b0385165f90815260a260205260409020612ff990613a35565b91508367ffffffffffffffff81111561301457613014614b38565b60405190808252806020026020018201604052801561303d578160200160208202803683370190505b5090505f61304b8486614f27565b90505f600161305a8682614ac4565b6130649088614f27565b61306e9190614ddb565b905061307b600185614ddb565b8111156130905761308d600185614ddb565b90505b815f5b828211613109576130c7826130a781614f3e565b6001600160a01b038c165f90815260a26020526040902090945090614178565b85826130d281614f3e565b9350815181106130e4576130e4614dae565b60200260200101906001600160a01b031690816001600160a01b031681525050613093565b50505050935093915050565b61311d613c18565b335f90815260a46020526040812054815b818110156134335760975460ff16158061317e575061314b6128cb565b335f90815260a46020526040902080548390811061316b5761316b614dae565b905f5260205f2090600302016002015411155b1561342157335f90815260a4602052604090208054829081106131a3576131a3614dae565b905f5260205f20906003020160010154836131be9190614ac4565b335f90815260a46020526040812080549295509091839081106131e3576131e3614dae565b5f91825260208220600390910201546001600160a01b0316915060a4816132073390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061323757613237614dae565b905f5260205f2090600302016002015490505f60a45f6132543390565b6001600160a01b03166001600160a01b031681526020019081526020015f20848154811061328457613284614dae565b905f5260205f2090600302016001015490506001856132a39190614ddb565b84101561336857335f90815260a4602052604090206132c3600187614ddb565b815481106132d3576132d3614dae565b905f5260205f20906003020160a45f6132e93390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061331957613319614dae565b5f91825260209091208254600390920201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a46020526040902080548061338557613385614ead565b5f8281526020812060035f1990930192830201805473ffffffffffffffffffffffffffffffffffffffff19168155600181810183905560029091019190915591556133d09086614ddb565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a350505061312e565b61342c816001614ac4565b905061312e565b505f82116134835760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d0000000000000000006044820152606401610779565b61348d3383614183565b50506125d96001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613524575f848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016134d0565b505050509050919050565b613537613a3e565b6001600160a01b0381166135b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610779565b61155481614096565b6135c4613c18565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b15801561364a575f80fd5b505af115801561365c573d5f803e3d5ffd5b505050506125d96001606555565b613672613a3e565b8260a55481146136c45760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b6136cf846001614ac4565b60a5555f805b83811015612f3857609b54609e5f8787858181106136f5576136f5614dae565b905060200201602081019061370a919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161373457600191505b5f609e5f87878581811061374a5761374a614dae565b905060200201602081019061375f919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139b7575f6001609e5f88888681811061379d5761379d614dae565b90506020020160208101906137b2919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f20546137dc9190614ddb565b90505b609d546137ee90600190614ddb565b8110156138c057609d613802826001614ac4565b8154811061381257613812614dae565b5f91825260209091200154609d80546001600160a01b03909216918390811061383d5761383d614dae565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d848154811061388057613880614dae565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080549091906138b3908490614ddb565b90915550506001016137df565b50609d8054806138d2576138d2614ead565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e9086868481811061391757613917614dae565b905060200201602081019061392c919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f87878581811061396457613964614dae565b9050602002016020810190613979919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139b7576001609c5f8282546139b19190614ddb565b90915550505b609f5f8686848181106139cc576139cc614dae565b90506020020160208101906139e1919061465b565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590613a2b60028301826145fd565b50506001016136d5565b5f61071d825490565b6033546001600160a01b031633146125d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610779565b60995460975460ff1615613abc57609954609c541015613ab75750609c545b613acd565b609954609d541015613acd5750609d545b5f8167ffffffffffffffff811115613ae757613ae7614b38565b604051908082528060200260200182016040528015613b10578160200160208202803683370190505b5090505f5b82811015613b7d57609d8181548110613b3057613b30614dae565b905f5260205f20015f9054906101000a90046001600160a01b0316828281518110613b5d57613b5d614dae565b6001600160a01b0390921660209283029190910190910152600101613b15565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490613be3908490600401614f56565b5f604051808303815f87803b158015613bfa575f80fd5b505af1158015613c0c573d5f803e3d5ffd5b50509151609b55505050565b600260655403613c6a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610779565b6002606555565b6001606555565b5f613c8c836001600160a01b03841661442c565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613d13576001600160a01b038481165f90815260a46020526040902080549185169183908110613ce357613ce3614dae565b5f9182526020909120600390910201546001600160a01b031603613d0b57600191505061071d565b600101613c96565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613dc99190614f68565b159392505050565b5f613c8c836001600160a01b03841661450f565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e8a9190614f87565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f409190614f68565b613f8c5760405162461bcd60e51b815260206004820152601360248201527f7472616e7366657246726f6d206661696c6564000000000000000000000000006044820152606401610779565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa15801561400d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140319190614f87565b90505f8311801561404a5750826140488383614ddb565b145b612f805760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166141705760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b6125d961455b565b5f613c8c83836145d7565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614204573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142289190614f87565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af11580156142b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142d69190614f68565b6143225760405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c656400000000000000000000000000000000006044820152606401610779565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156143a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143c79190614f87565b90505f831180156143e05750826143de8383614ddb565b145b610a0e5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b5f8181526001830160205260408120548015614506575f61444e600183614ddb565b85549091505f9061446190600190614ddb565b90508181146144c0575f865f01828154811061447f5761447f614dae565b905f5260205f200154905080875f01848154811061449f5761449f614dae565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806144d1576144d1614ead565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061071d565b5f91505061071d565b5f81815260018301602052604081205461455457508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561071d565b505f61071d565b5f54610100900460ff16613c715760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b5f825f0182815481106145ec576145ec614dae565b905f5260205f200154905092915050565b50805461460990614b65565b5f825580601f10614618575050565b601f0160209004905f5260205f209081019061155491905b80821115614643575f8155600101614630565b5090565b6001600160a01b0381168114611554575f80fd5b5f6020828403121561466b575f80fd5b8135613c8c81614647565b5f8060408385031215614687575f80fd5b82359150602083013567ffffffffffffffff8111156146a4575f80fd5b8301606081860312156146b5575f80fd5b809150509250929050565b5f602082840312156146d0575f80fd5b5035919050565b5f80604083850312156146e8575f80fd5b82356146f381614647565b946020939093013593505050565b5f8083601f840112614711575f80fd5b50813567ffffffffffffffff811115614728575f80fd5b6020830191508360208260051b8501011115614742575f80fd5b9250929050565b5f806020838503121561475a575f80fd5b823567ffffffffffffffff811115614770575f80fd5b61477c85828601614701565b90969095509350505050565b5f81518084525f5b818110156147ac57602081850181015186830182015201614790565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015614881578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b031684528781015188850152860151606087850181905261486d81860183614788565b968901969450505090860190600101614810565b509098975050505050505050565b5f805f805f8060a087890312156148a4575f80fd5b86356148af81614647565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff8111156148df575f80fd5b6148eb89828a01614701565b979a9699509497509295939492505050565b6001600160a01b0384168152826020820152606060408201525f6149246060830184614788565b95945050505050565b5f806040838503121561493e575f80fd5b823561494981614647565b915060208301356146b581614647565b5f805f6040848603121561496b575f80fd5b83359250602084013567ffffffffffffffff811115614988575f80fd5b61499486828701614701565b9497909650939450505050565b5f805f606084860312156149b3575f80fd5b83356149be81614647565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b83811015614a0b5781516001600160a01b0316875295820195908201906001016149e6565b509495945050505050565b828152604060208201525f614a2e60408301846149d3565b949350505050565b602080825282518282018190525f919060409081850190868401855b82811015614a8a57815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101614a52565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561071d5761071d614a97565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614b0a575f80fd5b83018035915067ffffffffffffffff821115614b24575f80fd5b602001915036819003821315614742575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680614b7957607f821691505b602082108103611f0f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156108fc57805f5260205f20601f840160051c81016020851015614bd55750805b601f840160051c820191505b81811015612f80575f8155600101614be1565b8135614bff81614647565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614c6b575f80fd5b8501803567ffffffffffffffff811115614c83575f80fd5b8036038483011315614c93575f80fd5b614ca781614ca18554614b65565b85614bb0565b5f601f821160018114614cda575f8315614cc357508382018601355b5f19600385901b1c1916600184901b178555614d50565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614d2657868501890135825593880193908901908801614d07565b5084821015614d44575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8181038181111561071d5761071d614a97565b5f81614dfc57614dfc614a97565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614e3e57614e3e614e03565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614e75575f80fd5b9190910192915050565b5f60208284031215614e8f575f80fd5b8151613c8c81614647565b5f82614ea857614ea8614e03565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015614f1c578235614f0181614647565b6001600160a01b031682529183019190830190600101614eee565b509695505050505050565b808202811582820484141761071d5761071d614a97565b5f5f198203614f4f57614f4f614a97565b5060010190565b602081525f613c8c60208301846149d3565b5f60208284031215614f78575f80fd5b81518015158114613c8c575f80fd5b5f60208284031215614f97575f80fd5b505191905056fea164736f6c6343000818000a diff --git a/bindings/bin/rollup_deployed.hex b/bindings/bin/rollup_deployed.hex index b23011457..8f137b13b 100644 --- a/bindings/bin/rollup_deployed.hex +++ b/bindings/bin/rollup_deployed.hex @@ -1 +1 @@ -0x608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109b1578063f2fde38b146109d0578063fb1e8b04146109ef575f80fd5b8063ddd8a3dc1461095e578063de8b30351461097d578063dff7827e1461099c575f80fd5b8063cd4edc69116100b7578063cd4edc6914610917578063ce5db8d61461092a578063d279c1911461093f575f80fd5b8063b35dac4e146108ba578063b3e0a509146108d9578063bedb86fb146108f8575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d1461085b578063b31a77d314610886578063b34844251461089b575f80fd5b8063a415d8dc146107f9578063a479265d14610827578063a4f209b01461083c575f80fd5b80638f1d37761161016c5780638f1d3776146106f9578063910129d4146107a957806397fc007c146107da575f80fd5b8063728cdbca146106a457806388b1ea09146106c35780638da5cb5b146106dc575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa146106465780636c578c1d14610671578063715018a614610690575f80fd5b80635ef7a94a1461057b5780635f77cf1d146105db5780636126729014610627575f80fd5b80634a8d544f1161022c5780634a8d544f1461053257806357e0af6c146105455780635c975abb14610564575f80fd5b80632b7ac3f3146104c75780633b70c18a146104fe5780633e001b661461051d575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b3660046140f4565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b50610396610391366004614126565b610a04565b005b3480156103a3575f80fd5b506103966103b2366004614184565b610ad6565b3480156103c2575f80fd5b5061033f6103d13660046140f4565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b506103966104083660046141cc565b610e2f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c3660046140f4565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c3660046140f4565b611326565b34801561047c575f80fd5b5061036961048b3660046140f4565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b63660046140f4565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104e6906001600160a01b031681565b6040516001600160a01b03909116815260200161034b565b348015610509575f80fd5b50609b546104e6906001600160a01b031681565b348015610528575f80fd5b5061036960aa5481565b61039661054036600461420b565b611354565b348015610550575f80fd5b5061039661055f3660046140f4565b611bd7565b34801561056f575f80fd5b5060655460ff1661033f565b348015610586575f80fd5b506105bb6105953660046140f4565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b3480156105e6575f80fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610632575f80fd5b506103966106413660046140f4565b611c82565b348015610651575f80fd5b506103696106603660046140f4565b60ab6020525f908152604090205481565b34801561067c575f80fd5b5061039661068b366004614126565b611e97565b34801561069b575f80fd5b50610396611f54565b3480156106af575f80fd5b506103966106be366004614278565b611f67565b3480156106ce575f80fd5b5060a65461033f9060ff1681565b3480156106e7575f80fd5b506033546001600160a01b03166104e6565b348015610704575f80fd5b506107656107133660046140f4565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b3480156107b4575f80fd5b5061033f6107c33660046140f4565b5f90815260a4602052604090206003015460ff1690565b3480156107e5575f80fd5b506103966107f4366004614126565b6122aa565b348015610804575f80fd5b5061033f610813366004614126565b609f6020525f908152604090205460ff1681565b348015610832575f80fd5b5061036960995481565b348015610847575f80fd5b506103966108563660046140f4565b61238d565b348015610866575f80fd5b50610369610875366004614126565b60a56020525f908152604090205481565b348015610891575f80fd5b5061036960a85481565b3480156108a6575f80fd5b506103966108b53660046142d3565b61243d565b3480156108c5575f80fd5b506103966108d4366004614126565b612682565b3480156108e4575f80fd5b506103966108f33660046141cc565b6126db565b348015610903575f80fd5b50610396610912366004614347565b612a2b565b610396610925366004614362565b612b86565b348015610935575f80fd5b5061036960985481565b34801561094a575f80fd5b50610396610959366004614126565b613152565b348015610969575f80fd5b506097546104e6906001600160a01b031681565b348015610988575f80fd5b5061033f6109973660046140f4565b613211565b3480156109a7575f80fd5b50610369609a5481565b3480156109bc575f80fd5b506103966109cb3660046140f4565b61325b565b3480156109db575f80fd5b506103966109ea366004614126565b6132fe565b3480156109fa575f80fd5b5061036960a95481565b610a0c61338b565b6001600160a01b0381165f908152609f602052604090205460ff1615610a795760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ade61338b565b5f8111610b2d5760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a70565b5f80610b3985856133e5565b915091505f610b4c836001015160c01c90565b5f81815260a160205260409020549091508214610bab5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b5f60a181610bb987856143c5565b81526020019081526020015f205414610c395760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a70565b609d548111610cb05760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b610cbb6001826143d8565b609e555b8315610e2757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610d0781613211565b15610d62575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d529084906143c5565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ddf575060a85481145b15610de9575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610cbf575b505050505050565b60a85415610e7f5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b610e87613400565b5f80610e9384846133e5565b915091505f610ea6836001015160c01c90565b5f81815260a160205260409020549091508214610f055760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b610f0e81611326565b610f5a5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b610f6381613211565b15610fb05760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003015460ff16156110115760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a70565b5f81815260a260205260409020600101544210156110715760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a70565b605983015160a05f6110846001856143d8565b81526020019081526020015f2054146110df5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f81815260a060205260409020541561113a5760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a70565b80609d546001011461118e5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b609d819055600160a35f6111a3866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111f26111e5846011015160c01c90565b600985015160c01c613453565b60a25f6112006001846143d8565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061123990846143d8565b81526020019081526020015f205f905560a45f60018361125991906143d8565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611302866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061134e57505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156113c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e491906143eb565b6114305760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a70565b60a854156114805760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b611488613400565b6114956020830183614406565b60ff16156114e55760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a70565b5f6114f36040840184614426565b915050806115435760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a70565b60608301356115945760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a70565b60808301356115e55760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a70565b5f806115fc6115f76020870187614426565b6133e5565b915091505f61160f836001015160c01c90565b90505f60a1816116208460016143c5565b81526020019081526020015f20541461167b5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a70565b609e5481146116cc5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b5f81815260a1602052604090205482146117285760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a70565b5f81815260ab60205260409020546060870135146117885760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f611797846011015160c01c90565b90505f80806117e96117ac60408c018c614426565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792508891506135109050565b600196909601959485019493840193925090505f80491561180b575f4961182d565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f96118588961185060208f018f614406565b60ff1661368d565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a01526118c7896118a860208e018e614426565b6040516118b6929190614487565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff16156119345760a7545f90815260a460205260409020600201546099544291611927916143c5565b61193191906143d8565b90505b6040518060800160405280428152602001826098544261195491906143c5565b61195e91906143c5565b81526020016119af8f80604001906119769190614426565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061369492505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a479190614496565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590611aaf90611aa9908f018f614426565b5f6136eb565b5f8e8060400190611ac09190614426565b6040518663ffffffff1660e01b8152600401611ae09594939291906144f4565b602060405180830381865afa158015611afb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1f91906143eb565b611b915760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611bdf61338b565b5f81118015611bf057506099548114155b611c3c5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a70565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff16158015611ca257505f5460ff8083169116105b611d145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611d4f5f5460ff1690565b60ff16600214611da15760405162461bcd60e51b815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610a70565b81611e145760405162461bcd60e51b815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610a70565b609e545f90815260ab6020526040902054611e3d57609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611c76565b611e9f61338b565b6001600160a01b0381165f908152609f602052604090205460ff16611f065760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a70565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610acb565b611f5c61338b565b611f655f61373f565b565b5f54610100900460ff1615808015611f8557505f54600160ff909116105b80611f9e5750303b158015611f9e57505f5460ff166001145b6120105760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f805460ff19166001179055801561204e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038616158061206b57506001600160a01b038516155b156120a2576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166120f85760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a70565b6121006137a8565b61210861382c565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156122a1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6122b261338b565b6001600160a01b038116158015906122d85750609c546001600160a01b03828116911614155b6123245760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a70565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b61239561338b565b5f811180156123a5575060648111155b80156123b3575060a9548114155b6123ff5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a70565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c76565b60a8541561248d5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612495613400565b5f806124a186866133e5565b915091505f6124b4836001015160c01c90565b5f81815260a1602052604090205490915082146125135760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b61251c81613211565b6125685760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff1916905560995460029091015442916125c1916143c5565b11612637575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152612632918391906138b0565b6122a1565b612642838686613a0c565b6122a181336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613bbf565b61268a61338b565b60aa80545f90915561269c8282613c8b565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c76565b6126e361338b565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561275a5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a70565b5f8061276684846133e5565b915091505f612779836001015160c01c90565b905080156127c95760405162461bcd60e51b815260206004820152601360248201527f696e76616c696420626174636820696e646578000000000000000000000000006044820152606401610a70565b5f6127d5846079015190565b9050806128245760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a70565b600984015160c01c156128795760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a70565b5f612885856019015190565b036128d25760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a70565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440146128fe856039015190565b1461294b5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a70565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b612a3361338b565b8015612b5457612a41613d36565b60a65460ff1615612b135760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612a959084906143c5565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b612b5c613d90565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612b36565b50565b335f908152609f602052604090205460ff16612be45760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a70565b60a85415612c345760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612c3c613400565b60a65460ff1615612c8f5760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a70565b8167ffffffffffffffff16609d5410612cea5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a160205260409020548114612d515760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b612d648267ffffffffffffffff16611326565b612db05760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612e2b5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a260205260409020600101544210612ebb5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a70565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2f9190614496565b341015612f7e5760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b9976346040516130d091815260200190565b60405180910390a35f609d5460016130e891906143c5565b90505b609e548111613140578267ffffffffffffffff16811461312e576099545f82815260a26020526040812060010180549091906131289084906143c5565b90915550505b8061313881614567565b9150506130eb565b505060a6805460ff1916600117905550565b335f90815260a56020526040812054908190036131b15760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a70565b335f90815260a560205260408120556131ca8282613c8b565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a8260405161320591815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b03161580159061134e5750505f90815260a46020526040902060030154610100900460ff161590565b61326361338b565b5f8111801561327457506098548114155b6132c05760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a70565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c76565b61330661338b565b6001600160a01b0381166133825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a70565b612b838161373f565b6033546001600160a01b03163314611f655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a70565b5f805f6133f28585613dc9565b812090969095509350505050565b60655460ff1615611f655760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a70565b805f0361345e575050565b8082035f5b8281101561350a5761010081840381111561347d57508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b1580156134e0575f80fd5b505af11580156134f2573d5f803e3d5ffd5b50505050610100830192505061010081019050613463565b50505050565b60405183515f9182916020870191908190849061352e908590613e32565b90506002840193505f5b818110156135b257603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613588603c8361459e565b61359290876143c5565b90505f6135a382603a015160f01c90565b97909701965050600101613538565b506020850282016040525b801561367b575f6135d285603a015160f01c90565b90506135e083828b8b613ec7565b92505f6135f1866038015160f01c90565b9050818110156136435760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a70565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016135bd565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f6136af828651613e32565b90505f5b6136be6001836143d8565b8110156136d457603c93909301926001016136b3565b505f6136e1845160c01c90565b9695505050505050565b60605f808080806136fe888a018a6146a2565b955095509550955095505081871061371c5794506137389350505050565b838710613730578295505050505050613738565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166138245760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65613f95565b5f54610100900460ff166138a85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f6561401d565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af1158015613934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139589190614496565b5f86815260a460205260409020600101549091506139779082906143c5565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a5909152812080549091906139b69084906143c5565b90915550506040516139c990849061473f565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613a595760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a70565b5f613a68846001015160c01c90565b90505f613a76856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613aa5876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a848613b67885160f81c90565b858888866040518663ffffffff1660e01b8152600401613b8b95949392919061476b565b5f6040518083038186803b158015613ba1575f80fd5b505afa158015613bb3573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613be3908461459e565b613bed919061479c565b9050613bf981836143d8565b60aa5f828254613c0991906143c5565b90915550506001600160a01b0384165f90815260a5602052604081208054839290613c359084906143c5565b9091555050604051613c4890849061473f565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613d32575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613cda576040519150601f19603f3d011682016040523d82523d5f602084013e613cdf565b606091505b5050905080613d305760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a70565b505b5050565b613d3e613400565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613d733390565b6040516001600160a01b03909116815260200160405180910390a1565b613d986140a2565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613d73565b5f8160f9811015613e1c5760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a70565b6040519150808483378082016040529250929050565b5f613e3e835160f01c90565b9050805f03613e79576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e84603c8261459e565b613e8f9060026143c5565b821461134e576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03613ed6575083613f8d565b609b546001600160a01b03165f5b85811015613f87576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613f4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f6e9190614496565b8852506020909601956001948501949384019301613ee4565b50859150505b949350505050565b5f54610100900460ff166140115760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b6065805460ff19169055565b5f54610100900460ff166140995760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f653361373f565b60655460ff16611f655760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a70565b5f60208284031215614104575f80fd5b5035919050565b80356001600160a01b0381168114614121575f80fd5b919050565b5f60208284031215614136575f80fd5b6137388261410b565b5f8083601f84011261414f575f80fd5b50813567ffffffffffffffff811115614166575f80fd5b60208301915083602082850101111561417d575f80fd5b9250929050565b5f805f60408486031215614196575f80fd5b833567ffffffffffffffff8111156141ac575f80fd5b6141b88682870161413f565b909790965060209590950135949350505050565b5f80602083850312156141dd575f80fd5b823567ffffffffffffffff8111156141f3575f80fd5b6141ff8582860161413f565b90969095509350505050565b5f806040838503121561421c575f80fd5b823567ffffffffffffffff80821115614233575f80fd5b9084019060c08287031215614246575f80fd5b9092506020840135908082111561425b575f80fd5b5083016060818603121561426d575f80fd5b809150509250929050565b5f805f805f8060c0878903121561428d575f80fd5b6142968761410b565b95506142a46020880161410b565b94506142b26040880161410b565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f80604085870312156142e6575f80fd5b843567ffffffffffffffff808211156142fd575f80fd5b6143098883890161413f565b90965094506020870135915080821115614321575f80fd5b5061432e8782880161413f565b95989497509550505050565b8015158114612b83575f80fd5b5f60208284031215614357575f80fd5b81356137388161433a565b5f8060408385031215614373575f80fd5b823567ffffffffffffffff8116811461438a575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561134e5761134e614398565b8181038181111561134e5761134e614398565b5f602082840312156143fb575f80fd5b81516137388161433a565b5f60208284031215614416575f80fd5b813560ff81168114613738575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614459575f80fd5b83018035915067ffffffffffffffff821115614473575f80fd5b60200191503681900382131561417d575f80fd5b818382375f9101908152919050565b5f602082840312156144a6575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b8181101561453e5784516001600160a01b031683529383019391830191600101614519565b505087604086015284810360608601526145598187896144ad565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361459757614597614398565b5060010190565b808202811582820484141761134e5761134e614398565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145f1575f80fd5b8135602067ffffffffffffffff8083111561460e5761460e6145b5565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614651576146516145b5565b6040529384526020818701810194908101925087851115614670575f80fd5b6020870191505b84821015614697576146888261410b565b83529183019190830190614677565b979650505050505050565b5f805f805f8060c087890312156146b7575f80fd5b86359550602087013567ffffffffffffffff808211156146d5575f80fd5b6146e18a838b016145e2565b96506040890135955060608901359150808211156146fd575f80fd5b6147098a838b016145e2565b94506080890135935060a0890135915080821115614725575f80fd5b5061473289828a016145e2565b9150509295509295509295565b5f82515f5b8181101561475e5760208186018101518583015201614744565b505f920191825250919050565b858152846020820152608060408201525f61478a6080830185876144ad565b90508260608301529695505050505050565b5f826147cf577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a +0x608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109b1578063f2fde38b146109d0578063fb1e8b04146109ef575f80fd5b8063ddd8a3dc1461095e578063de8b30351461097d578063dff7827e1461099c575f80fd5b8063cd4edc69116100b7578063cd4edc6914610917578063ce5db8d61461092a578063d279c1911461093f575f80fd5b8063b35dac4e146108ba578063b3e0a509146108d9578063bedb86fb146108f8575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d1461085b578063b31a77d314610886578063b34844251461089b575f80fd5b8063a415d8dc146107f9578063a479265d14610827578063a4f209b01461083c575f80fd5b80638f1d37761161016c5780638f1d3776146106f9578063910129d4146107a957806397fc007c146107da575f80fd5b8063728cdbca146106a457806388b1ea09146106c35780638da5cb5b146106dc575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa146106465780636c578c1d14610671578063715018a614610690575f80fd5b80635ef7a94a1461057b5780635f77cf1d146105db5780636126729014610627575f80fd5b8063428868b51161022c578063428868b51461053257806357e0af6c146105455780635c975abb14610564575f80fd5b80632b7ac3f3146104c75780633b70c18a146104fe5780633e001b661461051d575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b3660046140c8565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b506103966103913660046140fa565b610a04565b005b3480156103a3575f80fd5b506103966103b2366004614158565b610ad6565b3480156103c2575f80fd5b5061033f6103d13660046140c8565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b506103966104083660046141a0565b610e2f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c3660046140c8565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c3660046140c8565b611326565b34801561047c575f80fd5b5061036961048b3660046140c8565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b63660046140c8565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104e6906001600160a01b031681565b6040516001600160a01b03909116815260200161034b565b348015610509575f80fd5b50609b546104e6906001600160a01b031681565b348015610528575f80fd5b5061036960aa5481565b6103966105403660046141df565b611354565b348015610550575f80fd5b5061039661055f3660046140c8565b611bbb565b34801561056f575f80fd5b5060655460ff1661033f565b348015610586575f80fd5b506105bb6105953660046140c8565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b3480156105e6575f80fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610632575f80fd5b506103966106413660046140c8565b611c66565b348015610651575f80fd5b506103696106603660046140c8565b60ab6020525f908152604090205481565b34801561067c575f80fd5b5061039661068b3660046140fa565b611e7b565b34801561069b575f80fd5b50610396611f38565b3480156106af575f80fd5b506103966106be36600461424c565b611f4b565b3480156106ce575f80fd5b5060a65461033f9060ff1681565b3480156106e7575f80fd5b506033546001600160a01b03166104e6565b348015610704575f80fd5b506107656107133660046140c8565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b3480156107b4575f80fd5b5061033f6107c33660046140c8565b5f90815260a4602052604090206003015460ff1690565b3480156107e5575f80fd5b506103966107f43660046140fa565b61228e565b348015610804575f80fd5b5061033f6108133660046140fa565b609f6020525f908152604090205460ff1681565b348015610832575f80fd5b5061036960995481565b348015610847575f80fd5b506103966108563660046140c8565b612371565b348015610866575f80fd5b506103696108753660046140fa565b60a56020525f908152604090205481565b348015610891575f80fd5b5061036960a85481565b3480156108a6575f80fd5b506103966108b53660046142a7565b612421565b3480156108c5575f80fd5b506103966108d43660046140fa565b612742565b3480156108e4575f80fd5b506103966108f33660046141a0565b61279b565b348015610903575f80fd5b5061039661091236600461431b565b612aeb565b61039661092536600461434d565b612c46565b348015610935575f80fd5b5061036960985481565b34801561094a575f80fd5b506103966109593660046140fa565b613212565b348015610969575f80fd5b506097546104e6906001600160a01b031681565b348015610988575f80fd5b5061033f6109973660046140c8565b6132d1565b3480156109a7575f80fd5b50610369609a5481565b3480156109bc575f80fd5b506103966109cb3660046140c8565b61331b565b3480156109db575f80fd5b506103966109ea3660046140fa565b6133be565b3480156109fa575f80fd5b5061036960a95481565b610a0c61344b565b6001600160a01b0381165f908152609f602052604090205460ff1615610a795760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ade61344b565b5f8111610b2d5760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a70565b5f80610b3985856134a5565b915091505f610b4c836001015160c01c90565b5f81815260a160205260409020549091508214610bab5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b5f60a181610bb987856143a2565b81526020019081526020015f205414610c395760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a70565b609d548111610cb05760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b610cbb6001826143b5565b609e555b8315610e2757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610d07816132d1565b15610d62575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d529084906143a2565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ddf575060a85481145b15610de9575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610cbf575b505050505050565b60a85415610e7f5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b610e8761353e565b5f80610e9384846134a5565b915091505f610ea6836001015160c01c90565b5f81815260a160205260409020549091508214610f055760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b610f0e81611326565b610f5a5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b610f63816132d1565b15610fb05760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003015460ff16156110115760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a70565b5f81815260a260205260409020600101544210156110715760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a70565b605983015160a05f6110846001856143b5565b81526020019081526020015f2054146110df5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f81815260a060205260409020541561113a5760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a70565b80609d546001011461118e5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b609d819055600160a35f6111a3866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111f26111e5846011015160c01c90565b600985015160c01c613591565b60a25f6112006001846143b5565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061123990846143b5565b81526020019081526020015f205f905560a45f60018361125991906143b5565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611302866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061134e57505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156113c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e491906143c8565b6114305760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a70565b60a854156114805760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b61148861353e565b61149560208301836143e3565b60ff1615806114b357506114ac60208301836143e3565b60ff166001145b6114ff5760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a70565b60808201356115505760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a70565b60a08201356115a15760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a70565b5f806115b86115b36020860186614403565b6134a5565b915091505f6115cb836001015160c01c90565b90505f60a1816115dc8460016143a2565b81526020019081526020015f2054146116375760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a70565b609e5481146116885760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b5f81815260a1602052604090205482146116e45760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a70565b5f81815260ab60205260409020546080860135146117445760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f611753846011015160c01c90565b90505f61177f6117696060890160408a01614464565b61177960808a0160608b0161447d565b8461364e565b9050611791608088016060890161447d565b6001939093019261ffff1691909101905f8049156117b0575f496117d2565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b905060f96117e360208a018a6143e3565b60ff166001036117f257506101015b6040805182810190915296506118178761180f60208c018c6143e3565b60ff16613692565b60c085901b60018801526118458761183560808c0160608d0161447d565b61ffff1660c01b60099190910152565b60c084811b6011890152601988018490526039880183905260808a0135605989015260a08a0135607989015289013560998801526118a98761188a60208b018b614403565b60405161189892919061449e565b604051809103902060b99190910152565b60d9870186905260016118bf60208b018b6143e3565b60ff16106118f1576118f1876118db60608c0160408d01614464565b67ffffffffffffffff1660c01b60f99190910152565b8087205f86815260a1602090815260408083209390935560ab905290812060a08b0135905560a65460ff16156119505760a7545f90815260a460205260409020600201546099544291611943916143a2565b61194d91906143b5565b90505b6040518060800160405280428152602001826098544261197091906143a2565b61197a91906143a2565b815260200161198f60608d0160408e01614464565b67ffffffffffffffff1681526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3191906144ad565b90525f87815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8790556097546001600160a01b031692506374fe27b79150893590611a9990611a93908c018c614403565b5f613699565b5f611aa760408d018d614403565b6040518663ffffffff1660e01b8152600401611ac795949392919061450b565b602060405180830381865afa158015611ae2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0691906143c8565b611b785760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b5f84815260a16020526040808220549051909186917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050565b611bc361344b565b5f81118015611bd457506099548114155b611c205760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a70565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff16158015611c8657505f5460ff8083169116105b611cf85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611d335f5460ff1690565b60ff16600214611d855760405162461bcd60e51b815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610a70565b81611df85760405162461bcd60e51b815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610a70565b609e545f90815260ab6020526040902054611e2157609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611c5a565b611e8361344b565b6001600160a01b0381165f908152609f602052604090205460ff16611eea5760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a70565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610acb565b611f4061344b565b611f495f6136ed565b565b5f54610100900460ff1615808015611f6957505f54600160ff909116105b80611f825750303b158015611f8257505f5460ff166001145b611ff45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f805460ff191660011790558015612032575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038616158061204f57506001600160a01b038516155b15612086576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166120dc5760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a70565b6120e4613756565b6120ec6137da565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015612285575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b61229661344b565b6001600160a01b038116158015906122bc5750609c546001600160a01b03828116911614155b6123085760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a70565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b61237961344b565b5f81118015612389575060648111155b8015612397575060a9548114155b6123e35760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a70565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c5a565b60a854156124715760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b61247961353e565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156124e5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061250991906143c8565b6125555760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a70565b5f8061256186866134a5565b915091505f612574836001015160c01c90565b5f81815260a1602052604090205490915082146125d35760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b6125dc816132d1565b6126285760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff191690556099546002909101544291612681916143a2565b116126f7575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f757400000000000000000000000000000000000000000000000000918301919091526126f29183919061385e565b612285565b6127028386866139ba565b61228581336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613b6d565b61274a61344b565b60aa80545f90915561275c8282613c39565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c5a565b6127a361344b565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561281a5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a70565b5f8061282684846134a5565b915091505f612839836001015160c01c90565b905080156128895760405162461bcd60e51b815260206004820152601360248201527f696e76616c696420626174636820696e646578000000000000000000000000006044820152606401610a70565b5f612895846079015190565b9050806128e45760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a70565b600984015160c01c156129395760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a70565b5f612945856019015190565b036129925760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a70565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440146129be856039015190565b14612a0b5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a70565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b612af361344b565b8015612c1457612b01613ce4565b60a65460ff1615612bd35760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612b559084906143a2565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b612c1c613d3e565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612bf6565b50565b335f908152609f602052604090205460ff16612ca45760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a70565b60a85415612cf45760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612cfc61353e565b60a65460ff1615612d4f5760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a70565b8167ffffffffffffffff16609d5410612daa5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a160205260409020548114612e115760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b612e248267ffffffffffffffff16611326565b612e705760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612eeb5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a260205260409020600101544210612f7b5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a70565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fef91906144ad565b34101561303e5760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b99763460405161319091815260200190565b60405180910390a35f609d5460016131a891906143a2565b90505b609e548111613200578267ffffffffffffffff1681146131ee576099545f82815260a26020526040812060010180549091906131e89084906143a2565b90915550505b806131f88161457e565b9150506131ab565b505060a6805460ff1916600117905550565b335f90815260a56020526040812054908190036132715760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a70565b335f90815260a5602052604081205561328a8282613c39565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a826040516132c591815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b03161580159061134e5750505f90815260a46020526040902060030154610100900460ff161590565b61332361344b565b5f8111801561333457506098548114155b6133805760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a70565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c5a565b6133c661344b565b6001600160a01b0381166134425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a70565b612c43816136ed565b6033546001600160a01b03163314611f495760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a70565b5f805f6134b28585613d77565b90505f8160ff165f036134d3576134c98686613de7565b9094509050613530565b8160ff166001036134e8576134c98686613e50565b60405162461bcd60e51b815260206004820152601960248201527f556e737570706f727465642062617463682076657273696f6e000000000000006044820152606401610a70565b808420925050509250929050565b60655460ff1615611f495760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a70565b805f0361359c575050565b8082035f5b82811015613648576101008184038111156135bb57508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b15801561361e575f80fd5b505af1158015613630573d5f803e3d5ffd5b505050506101008301925050610100810190506135a1565b50505050565b6040805160c085901b815260f084901b6008820152600a60208502820181019092525f9181016136838161ffff871686613ea3565b82900390912095945050505050565b8082535050565b60605f808080806136ac888a018a6146a2565b95509550955095509550508187106136ca5794506136e69350505050565b8387106136de5782955050505050506136e6565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166137d25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f49613f69565b5f54610100900460ff166138565760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f49613ff1565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af11580156138e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061390691906144ad565b5f86815260a460205260409020600101549091506139259082906143a2565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a5909152812080549091906139649084906143a2565b909155505060405161397790849061473f565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613a075760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a70565b5f613a16846001015160c01c90565b90505f613a24856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613a53876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a848613b15885160f81c90565b858888866040518663ffffffff1660e01b8152600401613b3995949392919061476b565b5f6040518083038186803b158015613b4f575f80fd5b505afa158015613b61573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613b91908461479c565b613b9b91906147b3565b9050613ba781836143b5565b60aa5f828254613bb791906143a2565b90915550506001600160a01b0384165f90815260a5602052604081208054839290613be39084906143a2565b9091555050604051613bf690849061473f565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613ce0575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613c88576040519150601f19603f3d011682016040523d82523d5f602084013e613c8d565b606091505b5050905080613cde5760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a70565b505b5050565b613cec61353e565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613d213390565b6040516001600160a01b03909116815260200160405180910390a1565b613d46614076565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613d21565b5f81613dc55760405162461bcd60e51b815260206004820152601260248201527f456d7074792062617463682068656164657200000000000000000000000000006044820152606401610a70565b82825f818110613dd757613dd76147eb565b919091013560f81c949350505050565b5f8160f9811015613e3a5760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a70565b6040519150808483378082016040529250929050565b5f816101018114613e3a5760405162461bcd60e51b815260206004820181905260248201527f626174636820686561646572206c656e67746820697320696e636f72726563746044820152606401610a70565b5f825f03613eb25750826136e6565b609b546001600160a01b03165f5b84811015613f5f576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613f26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f4a91906144ad565b87525060209095019460019384019301613ec0565b5093949350505050565b5f54610100900460ff16613fe55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b6065805460ff19169055565b5f54610100900460ff1661406d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f49336136ed565b60655460ff16611f495760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a70565b5f602082840312156140d8575f80fd5b5035919050565b80356001600160a01b03811681146140f5575f80fd5b919050565b5f6020828403121561410a575f80fd5b6136e6826140df565b5f8083601f840112614123575f80fd5b50813567ffffffffffffffff81111561413a575f80fd5b602083019150836020828501011115614151575f80fd5b9250929050565b5f805f6040848603121561416a575f80fd5b833567ffffffffffffffff811115614180575f80fd5b61418c86828701614113565b909790965060209590950135949350505050565b5f80602083850312156141b1575f80fd5b823567ffffffffffffffff8111156141c7575f80fd5b6141d385828601614113565b90969095509350505050565b5f80604083850312156141f0575f80fd5b823567ffffffffffffffff80821115614207575f80fd5b9084019060e0828703121561421a575f80fd5b9092506020840135908082111561422f575f80fd5b50830160608186031215614241575f80fd5b809150509250929050565b5f805f805f8060c08789031215614261575f80fd5b61426a876140df565b9550614278602088016140df565b9450614286604088016140df565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f80604085870312156142ba575f80fd5b843567ffffffffffffffff808211156142d1575f80fd5b6142dd88838901614113565b909650945060208701359150808211156142f5575f80fd5b5061430287828801614113565b95989497509550505050565b8015158114612c43575f80fd5b5f6020828403121561432b575f80fd5b81356136e68161430e565b803567ffffffffffffffff811681146140f5575f80fd5b5f806040838503121561435e575f80fd5b61436783614336565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561134e5761134e614375565b8181038181111561134e5761134e614375565b5f602082840312156143d8575f80fd5b81516136e68161430e565b5f602082840312156143f3575f80fd5b813560ff811681146136e6575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614436575f80fd5b83018035915067ffffffffffffffff821115614450575f80fd5b602001915036819003821315614151575f80fd5b5f60208284031215614474575f80fd5b6136e682614336565b5f6020828403121561448d575f80fd5b813561ffff811681146136e6575f80fd5b818382375f9101908152919050565b5f602082840312156144bd575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156145555784516001600160a01b031683529383019391830191600101614530565b505087604086015284810360608601526145708187896144c4565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145ae576145ae614375565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145f1575f80fd5b8135602067ffffffffffffffff8083111561460e5761460e6145b5565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614651576146516145b5565b6040529384526020818701810194908101925087851115614670575f80fd5b6020870191505b8482101561469757614688826140df565b83529183019190830190614677565b979650505050505050565b5f805f805f8060c087890312156146b7575f80fd5b86359550602087013567ffffffffffffffff808211156146d5575f80fd5b6146e18a838b016145e2565b96506040890135955060608901359150808211156146fd575f80fd5b6147098a838b016145e2565b94506080890135935060a0890135915080821115614725575f80fd5b5061473289828a016145e2565b9150509295509295509295565b5f82515f5b8181101561475e5760208186018101518583015201614744565b505f920191825250919050565b858152846020820152608060408201525f61478a6080830185876144c4565b90508260608301529695505050505050565b808202811582820484141761134e5761134e614375565b5f826147e6577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea164736f6c6343000818000a diff --git a/bindings/bindings/l2staking.go b/bindings/bindings/l2staking.go index 759e66a57..504c15bdb 100644 --- a/bindings/bindings/l2staking.go +++ b/bindings/bindings/l2staking.go @@ -46,7 +46,7 @@ type TypesStakerInfo struct { // L2StakingMetaData contains all meta data concerning the L2Staking contract. var L2StakingMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_otherStaking\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epochEffective\",\"type\":\"uint256\"}],\"name\":\"CommissionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"effectiveEpoch\",\"type\":\"uint256\"}],\"name\":\"Delegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"uint256\",\"name\":\"oldTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTime\",\"type\":\"uint256\"}],\"name\":\"RewardStartTimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldSize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSize\",\"type\":\"uint256\"}],\"name\":\"SequencerSetMaxSizeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"name\":\"StakerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"stakerAddresses\",\"type\":\"address[]\"}],\"name\":\"StakerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"effectiveEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"name\":\"Undelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UndelegationClaimed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DISTRIBUTE_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contractICrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MORPH_TOKEN_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_STAKING\",\"outputs\":[{\"internalType\":\"contractStaking\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEQUENCER_CONTRACT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo\",\"name\":\"add\",\"type\":\"tuple\"}],\"name\":\"addStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"candidateNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimCommission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"targetEpochIndex\",\"type\":\"uint256\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimUndelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"commissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"delegateStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"delegations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo\",\"name\":\"add\",\"type\":\"tuple\"}],\"name\":\"emergencyAddStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"emergencyRemoveStakers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pageSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pageIndex\",\"type\":\"uint256\"}],\"name\":\"getAllDelegatorsInPagination\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"delegatorsTotalNumber\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"delegatorsInPage\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getDelegatorsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakerAddressesLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakers\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_stakerAddresses\",\"type\":\"address[]\"}],\"name\":\"getStakesInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getUndelegations\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"internalType\":\"structIL2Staking.Undelegation[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_sequencersMaxSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_undelegateLockEpochs\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rewardStartTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"internalType\":\"structTypes.StakerInfo[]\",\"name\":\"_stakers\",\"type\":\"tuple[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isStakingTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestSequencerSetSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"remove\",\"type\":\"address[]\"}],\"name\":\"removeStakers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardStarted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerSetMaxSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"setCommissionRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakerAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakerDelegations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalDelegationAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakerRankings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tmKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"blsKey\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"undelegateLockEpochs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"undelegateStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"undelegations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockEpoch\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardStartTime\",\"type\":\"uint256\"}],\"name\":\"updateRewardStartTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_sequencerSetMaxSize\",\"type\":\"uint256\"}],\"name\":\"updateSequencerSetMaxSize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x61012060405234801562000011575f80fd5b50604051620050b5380380620050b58339810160408190526200003491620000a7565b7353000000000000000000000000000000000000076080526001600160a01b031660a05273530000000000000000000000000000000000001360c05273530000000000000000000000000000000000001760e05273530000000000000000000000000000000000001461010052620000d6565b5f60208284031215620000b8575f80fd5b81516001600160a01b0381168114620000cf575f80fd5b9392505050565b60805160a05160c05160e05161010051614f15620001a05f395f818161044501528181610a7c01528181610b240152818161140f01528181611b29015281816135ce0152613d5e01525f818161055a0152613bae01525f818161067c01528181613e1f01528181613ed401528181613f7b015281816141720152818161421f01526142c601525f81816104ff015281816124a30152612a5001525f8181610408015281816105c201528181612479015281816124cd01528181612a260152612a7a0152614f155ff3fe608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106cf578063fad99f98146106e2578063fc6facc6146106ea575f80fd5b8063e10911b11461069e578063ed70b343146106a6578063f0261bc2146106c6575f80fd5b8063cce6cf9f116100c3578063cce6cf9f14610643578063d31d83d914610656578063d557714114610677575f80fd5b8063affed0e0146105f1578063b5d2e0dc146105fa578063c64814dd14610619575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a41461059e578063927ede2d146105bd57806396ab994d146105e4575f80fd5b80638da5cb5b146105445780638e21d5fb146105555780639168ae721461057c575f80fd5b80637b05afb5116101785780637b05afb5146104db578063831cfb58146104fa57806384d7d1d414610521575f80fd5b8063746c8ae1146104cb57806376671808146104d3575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104a85780637046529b146104b0578063715018a6146104c3575f80fd5b806343352d611461047a578063439162b514610482578063459598a214610495575f80fd5b80633cb747bf1161022d5780633cb747bf146104065780633d9353fe1461044057806340b5c83714610467575f80fd5b80633b802421146103ea5780633c323a1b146103f3575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103ae57806330158eea146103b75780633385ccc2146103d7575f80fd5b8063174e31c41461037f57806319fac8fd146103925780632cc138be146103a5575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610376575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe3660046145c5565b6106fd565b6040519081526020015b60405180910390f35b6103296103243660046145e0565b610723565b005b61032961033936600461462a565b610901565b61035161034c366004614641565b610a14565b604080516001600160a01b03909416845260208401929092529082015260600161030d565b610303609a5481565b61032961038d366004614641565b610a5c565b6103296103a036600461462a565b610bd4565b61030360985481565b61030360995481565b6103ca6103c53660046146b3565b610cf6565b60405161030d9190614753565b6103296103e53660046145c5565b610f1d565b610303609c5481565b610329610401366004614641565b611557565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161030d565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61032961047536600461462a565b611be6565b6103ca611cf9565b6103296104903660046147f9565b611f15565b6104286104a336600461462a565b612446565b609d54610303565b6103296104be3660046145e0565b61246e565b6103296125c8565b6103296125db565b6103036128cb565b6103036104e93660046145c5565b60a06020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61053461052f3660046145c5565b61293f565b604051901515815260200161030d565b6033546001600160a01b0316610428565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61058f61058a3660046145c5565b612969565b60405161030d93929190614867565b6103036105ac3660046145c5565b60a16020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b6097546105349060ff1681565b61030360a55481565b6103036106083660046145c5565b609e6020525f908152604090205481565b610303610627366004614897565b60a360209081525f928352604080842090915290825290205481565b6103296106513660046148c3565b612a1b565b61066961066436600461490b565b612f87565b60405161030d929190614980565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329613115565b6106b96106b43660046145c5565b613499565b60405161030d91906149a0565b610303609b5481565b6103296106dd3660046145c5565b61352f565b6103296135bc565b6103296106f83660046148c3565b61366a565b6001600160a01b0381165f90815260a26020526040812061071d90613a35565b92915050565b61072b613a3e565b8160a55481146107825760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b61078d836001614a2e565b60a555609e5f6107a060208501856145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f0361084257609d6107d560208401846145c5565b81546001810183555f9283526020808420909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155609d5491609e91610828908601866145c5565b6001600160a01b0316815260208101919091526040015f20555b81609f5f61085360208401846145c5565b6001600160a01b0316815260208101919091526040015f206108758282614b5e565b50610885905060208301836145c5565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208401356108c16040860186614a41565b6040516108d093929190614cc5565b60405180910390a260975460ff161580156108ef5750609954609d5411155b156108fc576108fc613a98565b505050565b610909613a3e565b5f8111801561091a57506099548114155b61098c5760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a650000000000000000000000000000000000000000000000000000000000006064820152608401610779565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff166109e157609d546109e5565b609c545b90505f60995482106109f9576099546109fb565b815b9050609b548114610a0e57610a0e613a98565b50505050565b60a4602052815f5260405f208181548110610a2d575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610a64613c18565b6001600160a01b038216610b1a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610aff575f80fd5b505af1158015610b11573d5f803e3d5ffd5b50505050610bc6565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610baf575f80fd5b505af1158015610bc1573d5f803e3d5ffd5b505050505b610bd06001606555565b5050565b335f908152609e6020526040902054610c2f5760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f776564000000000000000000000000006044820152606401610779565b6014811115610c805760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e00000000000000000000000000006044820152606401610779565b335f90815260a06020526040812082905560975460ff16610ca1575f610cb4565b610ca96128cb565b610cb4906001614a2e565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610d1257610d12614aa2565b604051908082528060200260200182016040528015610d5e57816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610d305790505b5090505f5b83811015610f15576040518060600160405280609f5f888886818110610d8b57610d8b614d18565b9050602002016020810190610da091906145c5565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610ddd57610ddd614d18565b9050602002016020810190610df291906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f888886818110610e2f57610e2f614d18565b9050602002016020810190610e4491906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f206002018054610e7190614acf565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9d90614acf565b8015610ee85780601f10610ebf57610100808354040283529160200191610ee8565b820191905f5260205f20905b815481529060010190602001808311610ecb57829003601f168201915b5050505050815250828281518110610f0257610f02614d18565b6020908102919091010152600101610d63565b509392505050565b610f25613c18565b6001600160a01b0381165f90815260a360209081526040808320338452909152902054610f945760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f000000000000000000006044820152606401610779565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff16610fc0575f610fd3565b610fc86128cb565b610fd3906001614a2e565b6097549091505f9060ff168015610fe8575082155b610ff25781610fff565b609a54610fff9083614a2e565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c51600390920201805473ffffffffffffffffffffffffffffffffffffffff191691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936110b6908490614d45565b90915550506001600160a01b0385165f90815260a2602052604090206110dc9033613c78565b506001600160a01b0385165f908152609e602052604090205484158015611105575060975460ff165b80156111125750609c5481105b15611373576001600160a01b0386165f908152609e602052604081205461113b90600190614d45565b90505b6001609c5461114d9190614d45565b8110156113715760a15f609d838154811061116a5761116a614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d61119f856001614a2e565b815481106111af576111af614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611369575f609d82815481106111ed576111ed614d18565b5f918252602090912001546001600160a01b03169050609d611210836001614a2e565b8154811061122057611220614d18565b5f91825260209091200154609d80546001600160a01b03909216918490811061124b5761124b614d18565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905580609d61128e846001614a2e565b8154811061129e5761129e614d18565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556112de826001614a2e565b609e5f609d85815481106112f4576112f4614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611323826002614a2e565b609e5f609d611333866001614a2e565b8154811061134357611343614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b60010161113e565b505b8415801561139657506001600160a01b0386165f90815260a16020526040902054155b156113b3576001609c5f8282546113ad9190614d45565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611454575f80fd5b505af1158015611466573d5f803e3d5ffd5b505050506114713390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516114cc939291909283526020830191909152604082015260600190565b60405180910390a3841580156114e4575060975460ff165b80156114f25750609b548111155b80156115385750609b546001600160a01b0387165f908152609e602052604090205411806115385750609c546001600160a01b0387165f908152609e6020526040902054115b1561154557611545613a98565b50505050506115546001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906115bd5760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6572000000000000000000000000000000000000000000006044820152606401610779565b6115c5613c18565b5f82116116145760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e740000000000000000000000006044820152606401610779565b61161e3384613c93565b1561166b5760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d6564000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a3602090815260408083203384529091529020546116e95761169c3384613d1c565b156116e95760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d6564000000000000000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a1602052604081208054849290611710908490614a2e565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611747908490614a2e565b90915550506001600160a01b0383165f90815260a26020526040902061176d9033613dd1565b506001600160a01b0383165f90815260a160205260409020548290036117a5576001609c5f82825461179f9190614a2e565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff1680156117cf5750600181115b15611a15575f6117e0600183614d45565b90505b8015611a135760a15f609d6117f9600185614d45565b8154811061180957611809614d18565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d848154811061185a5761185a614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611a01575f609d611892600184614d45565b815481106118a2576118a2614d18565b5f91825260209091200154609d80546001600160a01b03909216925090839081106118cf576118cf614d18565b5f918252602090912001546001600160a01b0316609d6118f0600185614d45565b8154811061190057611900614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d838154811061193f5761193f614d18565b5f9182526020822001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0393909316929092179091558290609e90609d611986600185614d45565b8154811061199657611996614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020556119c5826001614a2e565b609e5f609d85815481106119db576119db614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611a0b81614d58565b9150506117e3565b505b6097545f9060ff16611a27575f611a3a565b611a2f6128cb565b611a3a906001614a2e565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611b6e575f80fd5b505af1158015611b80573d5f803e3d5ffd5b50505050611b95611b8e3390565b3086613de5565b60975460ff168015611ba85750609b5482115b8015611bcd57506099546001600160a01b0386165f908152609e602052604090205411155b15611bda57611bda613a98565b50506108fc6001606555565b611bee613a3e565b60975460ff1615611c415760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c72656164792073746172746564000000000000000000006044820152606401610779565b4281118015611c5a5750611c586201518082614d9a565b155b8015611c6857506098548114155b611cb45760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff811115611d1957611d19614aa2565b604051908082528060200260200182016040528015611d6557816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081611d375790505b5090505f5b609d54811015611f0f576040518060600160405280609f5f609d8581548110611d9557611d95614d18565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110611de157611de1614d18565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d8581548110611e3a57611e3a614d18565b5f9182526020808320909101546001600160a01b0316835282019290925260400190206002018054611e6b90614acf565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9790614acf565b8015611ee25780601f10611eb957610100808354040283529160200191611ee2565b820191905f5260205f20905b815481529060010190602001808311611ec557829003601f168201915b5050505050815250828281518110611efc57611efc614d18565b6020908102919091010152600101611d6a565b50919050565b5f54610100900460ff1615808015611f3357505f54600160ff909116105b80611f4c5750303b158015611f4c57505f5460ff166001145b611fbe5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610779565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561201a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166120705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610779565b5f86116120e55760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f20300000000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f85116121345760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f636873000000006044820152606401610779565b428411801561214d575061214b6201518085614d9a565b155b6121995760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b816121e65760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b6572730000000000000000006044820152606401610779565b6121ef8761404b565b6121f76140a9565b6099869055609a8590556098849055609b8290555f5b609b548110156123685783838281811061222957612229614d18565b905060200281019061223b9190614dad565b609f5f86868581811061225057612250614d18565b90506020028101906122629190614dad565b6122709060208101906145c5565b6001600160a01b0316815260208101919091526040015f206122928282614b5e565b905050609d8484838181106122a9576122a9614d18565b90506020028101906122bb9190614dad565b6122c99060208101906145c5565b8154600180820184555f938452602090932001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612312908290614a2e565b609e5f86868581811061232757612327614d18565b90506020028101906123399190614dad565b6123479060208101906145c5565b6001600160a01b0316815260208101919091526040015f205560010161220d565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561243d575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612455575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561255657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061254b9190614de9565b6001600160a01b0316145b61072b5760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b6125d0613a3e565b6125d95f61404b565b565b6125e3613a3e565b60985442101561265a5760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d65000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f609c54116126ab5760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e6469646174650000000000000000000000000000000000006044820152606401610779565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612868575f5b8181101561285f5760a15f609d838154811061270457612704614d18565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d858154811061275557612755614d18565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612857575f609d828154811061279357612793614d18565b5f91825260209091200154609d80546001600160a01b03909216925090849081106127c0576127c0614d18565b5f91825260209091200154609d80546001600160a01b0390921691849081106127eb576127eb614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d848154811061282a5761282a614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b6001016126e6565b506001016126da565b505f5b609d548110156128c257612880816001614a2e565b609e5f609d848154811061289657612896614d18565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205560010161286b565b506125d9613a98565b5f60985442101561291e5760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f74207374617274656420796574000000000000006044820152606401610779565b62015180609854426129309190614d45565b61293a9190614e04565b905090565b6001600160a01b0381165f90815260a360209081526040808320338452909152812054151561071d565b609f6020525f90815260409020805460018201546002830180546001600160a01b0390931693919261299a90614acf565b80601f01602080910402602001604051908101604052809291908181526020018280546129c690614acf565b8015612a115780601f106129e857610100808354040283529160200191612a11565b820191905f5260205f20905b8154815290600101906020018083116129f457829003601f168201915b5050505050905083565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612b0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af89190614de9565b6001600160a01b0316145b612b755760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b8260a5548114612bc75760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b612bd2846001614a2e565b60a5555f805b83811015612f3857609b54609e5f878785818110612bf857612bf8614d18565b9050602002016020810190612c0d91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205411612c3757600191505b5f609e5f878785818110612c4d57612c4d614d18565b9050602002016020810190612c6291906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba575f6001609e5f888886818110612ca057612ca0614d18565b9050602002016020810190612cb591906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f2054612cdf9190614d45565b90505b609d54612cf190600190614d45565b811015612dc357609d612d05826001614a2e565b81548110612d1557612d15614d18565b5f91825260209091200154609d80546001600160a01b039092169183908110612d4057612d40614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d8481548110612d8357612d83614d18565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190612db6908490614d45565b9091555050600101612ce2565b50609d805480612dd557612dd5614e17565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e90868684818110612e1a57612e1a614d18565b9050602002016020810190612e2f91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f878785818110612e6757612e67614d18565b9050602002016020810190612e7c91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba576001609c5f828254612eb49190614d45565b90915550505b609f5f868684818110612ecf57612ecf614d18565b9050602002016020810190612ee491906145c5565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590612f2e6002830182614567565b5050600101612bd8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618484604051612f6a929190614e44565b60405180910390a18015612f8057612f80613a98565b5050505050565b5f60605f8411612fd95760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a650000000000000000000000000000006044820152606401610779565b6001600160a01b0385165f90815260a260205260409020612ff990613a35565b91508367ffffffffffffffff81111561301457613014614aa2565b60405190808252806020026020018201604052801561303d578160200160208202803683370190505b5090505f61304b8486614e91565b90505f600161305a8682614a2e565b6130649088614e91565b61306e9190614d45565b905061307b600185614d45565b8111156130905761308d600185614d45565b90505b815f5b828211613109576130c7826130a781614ea8565b6001600160a01b038c165f90815260a2602052604090209094509061412d565b85826130d281614ea8565b9350815181106130e4576130e4614d18565b60200260200101906001600160a01b031690816001600160a01b031681525050613093565b50505050935093915050565b61311d613c18565b335f90815260a46020526040812054815b818110156134335760975460ff16158061317e575061314b6128cb565b335f90815260a46020526040902080548390811061316b5761316b614d18565b905f5260205f2090600302016002015411155b1561342157335f90815260a4602052604090208054829081106131a3576131a3614d18565b905f5260205f20906003020160010154836131be9190614a2e565b335f90815260a46020526040812080549295509091839081106131e3576131e3614d18565b5f91825260208220600390910201546001600160a01b0316915060a4816132073390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061323757613237614d18565b905f5260205f2090600302016002015490505f60a45f6132543390565b6001600160a01b03166001600160a01b031681526020019081526020015f20848154811061328457613284614d18565b905f5260205f2090600302016001015490506001856132a39190614d45565b84101561336857335f90815260a4602052604090206132c3600187614d45565b815481106132d3576132d3614d18565b905f5260205f20906003020160a45f6132e93390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061331957613319614d18565b5f91825260209091208254600390920201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a46020526040902080548061338557613385614e17565b5f8281526020812060035f1990930192830201805473ffffffffffffffffffffffffffffffffffffffff19168155600181810183905560029091019190915591556133d09086614d45565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a350505061312e565b61342c816001614a2e565b905061312e565b505f82116134835760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d0000000000000000006044820152606401610779565b61348d3383614138565b50506125d96001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613524575f848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016134d0565b505050509050919050565b613537613a3e565b6001600160a01b0381166135b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610779565b6115548161404b565b6135c4613c18565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b15801561364a575f80fd5b505af115801561365c573d5f803e3d5ffd5b505050506125d96001606555565b613672613a3e565b8260a55481146136c45760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b6136cf846001614a2e565b60a5555f805b83811015612f3857609b54609e5f8787858181106136f5576136f5614d18565b905060200201602081019061370a91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161373457600191505b5f609e5f87878581811061374a5761374a614d18565b905060200201602081019061375f91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139b7575f6001609e5f88888681811061379d5761379d614d18565b90506020020160208101906137b291906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f20546137dc9190614d45565b90505b609d546137ee90600190614d45565b8110156138c057609d613802826001614a2e565b8154811061381257613812614d18565b5f91825260209091200154609d80546001600160a01b03909216918390811061383d5761383d614d18565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d848154811061388057613880614d18565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080549091906138b3908490614d45565b90915550506001016137df565b50609d8054806138d2576138d2614e17565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e9086868481811061391757613917614d18565b905060200201602081019061392c91906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f87878581811061396457613964614d18565b905060200201602081019061397991906145c5565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139b7576001609c5f8282546139b19190614d45565b90915550505b609f5f8686848181106139cc576139cc614d18565b90506020020160208101906139e191906145c5565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590613a2b6002830182614567565b50506001016136d5565b5f61071d825490565b6033546001600160a01b031633146125d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610779565b60995460975460ff1615613abc57609954609c541015613ab75750609c545b613acd565b609954609d541015613acd5750609d545b5f8167ffffffffffffffff811115613ae757613ae7614aa2565b604051908082528060200260200182016040528015613b10578160200160208202803683370190505b5090505f5b82811015613b7d57609d8181548110613b3057613b30614d18565b905f5260205f20015f9054906101000a90046001600160a01b0316828281518110613b5d57613b5d614d18565b6001600160a01b0390921660209283029190910190910152600101613b15565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490613be3908490600401614ec0565b5f604051808303815f87803b158015613bfa575f80fd5b505af1158015613c0c573d5f803e3d5ffd5b50509151609b55505050565b600260655403613c6a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610779565b6002606555565b6001606555565b5f613c8c836001600160a01b038416614396565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613d13576001600160a01b038481165f90815260a46020526040902080549185169183908110613ce357613ce3614d18565b5f9182526020909120600390910201546001600160a01b031603613d0b57600191505061071d565b600101613c96565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613dc99190614ed2565b159392505050565b5f613c8c836001600160a01b038416614479565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e8a9190614ef1565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f409190614ed2565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613fc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fe69190614ef1565b90505f83118015613fff575082613ffd8383614d45565b145b612f805760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166141255760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b6125d96144c5565b5f613c8c8383614541565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156141b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141dd9190614ef1565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614267573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061428b9190614ed2565b506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa15801561430d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143319190614ef1565b90505f8311801561434a5750826143488383614d45565b145b610a0e5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b5f8181526001830160205260408120548015614470575f6143b8600183614d45565b85549091505f906143cb90600190614d45565b905081811461442a575f865f0182815481106143e9576143e9614d18565b905f5260205f200154905080875f01848154811061440957614409614d18565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061443b5761443b614e17565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061071d565b5f91505061071d565b5f8181526001830160205260408120546144be57508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561071d565b505f61071d565b5f54610100900460ff16613c715760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b5f825f01828154811061455657614556614d18565b905f5260205f200154905092915050565b50805461457390614acf565b5f825580601f10614582575050565b601f0160209004905f5260205f209081019061155491905b808211156145ad575f815560010161459a565b5090565b6001600160a01b0381168114611554575f80fd5b5f602082840312156145d5575f80fd5b8135613c8c816145b1565b5f80604083850312156145f1575f80fd5b82359150602083013567ffffffffffffffff81111561460e575f80fd5b83016060818603121561461f575f80fd5b809150509250929050565b5f6020828403121561463a575f80fd5b5035919050565b5f8060408385031215614652575f80fd5b823561465d816145b1565b946020939093013593505050565b5f8083601f84011261467b575f80fd5b50813567ffffffffffffffff811115614692575f80fd5b6020830191508360208260051b85010111156146ac575f80fd5b9250929050565b5f80602083850312156146c4575f80fd5b823567ffffffffffffffff8111156146da575f80fd5b6146e68582860161466b565b90969095509350505050565b5f81518084525f5b81811015614716576020818501810151868301820152016146fa565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156147eb578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b03168452878101518885015286015160608785018190526147d7818601836146f2565b96890196945050509086019060010161477a565b509098975050505050505050565b5f805f805f8060a0878903121561480e575f80fd5b8635614819816145b1565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115614849575f80fd5b61485589828a0161466b565b979a9699509497509295939492505050565b6001600160a01b0384168152826020820152606060408201525f61488e60608301846146f2565b95945050505050565b5f80604083850312156148a8575f80fd5b82356148b3816145b1565b9150602083013561461f816145b1565b5f805f604084860312156148d5575f80fd5b83359250602084013567ffffffffffffffff8111156148f2575f80fd5b6148fe8682870161466b565b9497909650939450505050565b5f805f6060848603121561491d575f80fd5b8335614928816145b1565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156149755781516001600160a01b031687529582019590820190600101614950565b509495945050505050565b828152604060208201525f614998604083018461493d565b949350505050565b602080825282518282018190525f919060409081850190868401855b828110156149f457815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016149bc565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561071d5761071d614a01565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a74575f80fd5b83018035915067ffffffffffffffff821115614a8e575f80fd5b6020019150368190038213156146ac575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680614ae357607f821691505b602082108103611f0f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156108fc57805f5260205f20601f840160051c81016020851015614b3f5750805b601f840160051c820191505b81811015612f80575f8155600101614b4b565b8135614b69816145b1565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614bd5575f80fd5b8501803567ffffffffffffffff811115614bed575f80fd5b8036038483011315614bfd575f80fd5b614c1181614c0b8554614acf565b85614b1a565b5f601f821160018114614c44575f8315614c2d57508382018601355b5f19600385901b1c1916600184901b178555614cba565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614c9057868501890135825593880193908901908801614c71565b5084821015614cae575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8181038181111561071d5761071d614a01565b5f81614d6657614d66614a01565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614da857614da8614d6d565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614ddf575f80fd5b9190910192915050565b5f60208284031215614df9575f80fd5b8151613c8c816145b1565b5f82614e1257614e12614d6d565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015614e86578235614e6b816145b1565b6001600160a01b031682529183019190830190600101614e58565b509695505050505050565b808202811582820484141761071d5761071d614a01565b5f5f198203614eb957614eb9614a01565b5060010190565b602081525f613c8c602083018461493d565b5f60208284031215614ee2575f80fd5b81518015158114613c8c575f80fd5b5f60208284031215614f01575f80fd5b505191905056fea164736f6c6343000818000a", + Bin: "0x61012060405234801562000011575f80fd5b506040516200514b3803806200514b8339810160408190526200003491620000a7565b7353000000000000000000000000000000000000076080526001600160a01b031660a05273530000000000000000000000000000000000001360c05273530000000000000000000000000000000000001760e05273530000000000000000000000000000000000001461010052620000d6565b5f60208284031215620000b8575f80fd5b81516001600160a01b0381168114620000cf575f80fd5b9392505050565b60805160a05160c05160e05161010051614fab620001a05f395f818161044501528181610a7c01528181610b240152818161140f01528181611b29015281816135ce0152613d5e01525f818161055a0152613bae01525f818161067c01528181613e1f01528181613ed401528181613fc6015281816141bd0152818161426a015261435c01525f81816104ff015281816124a30152612a5001525f8181610408015281816105c201528181612479015281816124cd01528181612a260152612a7a0152614fab5ff3fe608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106cf578063fad99f98146106e2578063fc6facc6146106ea575f80fd5b8063e10911b11461069e578063ed70b343146106a6578063f0261bc2146106c6575f80fd5b8063cce6cf9f116100c3578063cce6cf9f14610643578063d31d83d914610656578063d557714114610677575f80fd5b8063affed0e0146105f1578063b5d2e0dc146105fa578063c64814dd14610619575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a41461059e578063927ede2d146105bd57806396ab994d146105e4575f80fd5b80638da5cb5b146105445780638e21d5fb146105555780639168ae721461057c575f80fd5b80637b05afb5116101785780637b05afb5146104db578063831cfb58146104fa57806384d7d1d414610521575f80fd5b8063746c8ae1146104cb57806376671808146104d3575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104a85780637046529b146104b0578063715018a6146104c3575f80fd5b806343352d611461047a578063439162b514610482578063459598a214610495575f80fd5b80633cb747bf1161022d5780633cb747bf146104065780633d9353fe1461044057806340b5c83714610467575f80fd5b80633b802421146103ea5780633c323a1b146103f3575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103ae57806330158eea146103b75780633385ccc2146103d7575f80fd5b8063174e31c41461037f57806319fac8fd146103925780632cc138be146103a5575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610376575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe36600461465b565b6106fd565b6040519081526020015b60405180910390f35b610329610324366004614676565b610723565b005b6103296103393660046146c0565b610901565b61035161034c3660046146d7565b610a14565b604080516001600160a01b03909416845260208401929092529082015260600161030d565b610303609a5481565b61032961038d3660046146d7565b610a5c565b6103296103a03660046146c0565b610bd4565b61030360985481565b61030360995481565b6103ca6103c5366004614749565b610cf6565b60405161030d91906147e9565b6103296103e536600461465b565b610f1d565b610303609c5481565b6103296104013660046146d7565b611557565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161030d565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b6103296104753660046146c0565b611be6565b6103ca611cf9565b61032961049036600461488f565b611f15565b6104286104a33660046146c0565b612446565b609d54610303565b6103296104be366004614676565b61246e565b6103296125c8565b6103296125db565b6103036128cb565b6103036104e936600461465b565b60a06020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61053461052f36600461465b565b61293f565b604051901515815260200161030d565b6033546001600160a01b0316610428565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b61058f61058a36600461465b565b612969565b60405161030d939291906148fd565b6103036105ac36600461465b565b60a16020525f908152604090205481565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b6097546105349060ff1681565b61030360a55481565b61030361060836600461465b565b609e6020525f908152604090205481565b61030361062736600461492d565b60a360209081525f928352604080842090915290825290205481565b610329610651366004614959565b612a1b565b6106696106643660046149a1565b612f87565b60405161030d929190614a16565b6104287f000000000000000000000000000000000000000000000000000000000000000081565b610329613115565b6106b96106b436600461465b565b613499565b60405161030d9190614a36565b610303609b5481565b6103296106dd36600461465b565b61352f565b6103296135bc565b6103296106f8366004614959565b61366a565b6001600160a01b0381165f90815260a26020526040812061071d90613a35565b92915050565b61072b613a3e565b8160a55481146107825760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b61078d836001614ac4565b60a555609e5f6107a0602085018561465b565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f0361084257609d6107d5602084018461465b565b81546001810183555f9283526020808420909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155609d5491609e916108289086018661465b565b6001600160a01b0316815260208101919091526040015f20555b81609f5f610853602084018461465b565b6001600160a01b0316815260208101919091526040015f206108758282614bf4565b506108859050602083018361465b565b6001600160a01b03167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208401356108c16040860186614ad7565b6040516108d093929190614d5b565b60405180910390a260975460ff161580156108ef5750609954609d5411155b156108fc576108fc613a98565b505050565b610909613a3e565b5f8111801561091a57506099548114155b61098c5760405162461bcd60e51b815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a650000000000000000000000000000000000000000000000000000000000006064820152608401610779565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff166109e157609d546109e5565b609c545b90505f60995482106109f9576099546109fb565b815b9050609b548114610a0e57610a0e613a98565b50505050565b60a4602052815f5260405f208181548110610a2d575f80fd5b5f9182526020909120600390910201805460018201546002909201546001600160a01b03909116935090915083565b610a64613c18565b6001600160a01b038216610b1a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044015f604051808303815f87803b158015610aff575f80fd5b505af1158015610b11573d5f803e3d5ffd5b50505050610bc6565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610baf575f80fd5b505af1158015610bc1573d5f803e3d5ffd5b505050505b610bd06001606555565b5050565b335f908152609e6020526040902054610c2f5760405162461bcd60e51b815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f776564000000000000000000000000006044820152606401610779565b6014811115610c805760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e00000000000000000000000000006044820152606401610779565b335f90815260a06020526040812082905560975460ff16610ca1575f610cb4565b610ca96128cb565b610cb4906001614ac4565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610d1257610d12614b38565b604051908082528060200260200182016040528015610d5e57816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610d305790505b5090505f5b83811015610f15576040518060600160405280609f5f888886818110610d8b57610d8b614dae565b9050602002016020810190610da0919061465b565b6001600160a01b03908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610ddd57610ddd614dae565b9050602002016020810190610df2919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f888886818110610e2f57610e2f614dae565b9050602002016020810190610e44919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f206002018054610e7190614b65565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9d90614b65565b8015610ee85780601f10610ebf57610100808354040283529160200191610ee8565b820191905f5260205f20905b815481529060010190602001808311610ecb57829003601f168201915b5050505050815250828281518110610f0257610f02614dae565b6020908102919091010152600101610d63565b509392505050565b610f25613c18565b6001600160a01b0381165f90815260a360209081526040808320338452909152902054610f945760405162461bcd60e51b815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f000000000000000000006044820152606401610779565b6001600160a01b0381165f908152609e60205260408120546097549015919060ff16610fc0575f610fd3565b610fc86128cb565b610fd3906001614ac4565b6097549091505f9060ff168015610fe8575082155b610ff25781610fff565b609a54610fff9083614ac4565b604080516060810182526001600160a01b038781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c51600390920201805473ffffffffffffffffffffffffffffffffffffffff191691909b16178a558251908a015551600290980197909755908452908252829055925191815260a1909252928120805494955091936110b6908490614ddb565b90915550506001600160a01b0385165f90815260a2602052604090206110dc9033613c78565b506001600160a01b0385165f908152609e602052604090205484158015611105575060975460ff165b80156111125750609c5481105b15611373576001600160a01b0386165f908152609e602052604081205461113b90600190614ddb565b90505b6001609c5461114d9190614ddb565b8110156113715760a15f609d838154811061116a5761116a614dae565b5f9182526020808320909101546001600160a01b031683528201929092526040018120549060a190609d61119f856001614ac4565b815481106111af576111af614dae565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611369575f609d82815481106111ed576111ed614dae565b5f918252602090912001546001600160a01b03169050609d611210836001614ac4565b8154811061122057611220614dae565b5f91825260209091200154609d80546001600160a01b03909216918490811061124b5761124b614dae565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905580609d61128e846001614ac4565b8154811061129e5761129e614dae565b5f918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556112de826001614ac4565b609e5f609d85815481106112f4576112f4614dae565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055611323826002614ac4565b609e5f609d611333866001614ac4565b8154811061134357611343614dae565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b60010161113e565b505b8415801561139657506001600160a01b0386165f90815260a16020526040902054155b156113b3576001609c5f8282546113ad9190614ddb565b90915550505b6001600160a01b038681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b158015611454575f80fd5b505af1158015611466573d5f803e3d5ffd5b505050506114713390565b6001600160a01b0316866001600160a01b03167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c846020015187876040516114cc939291909283526020830191909152604082015260600190565b60405180910390a3841580156114e4575060975460ff165b80156114f25750609b548111155b80156115385750609b546001600160a01b0387165f908152609e602052604090205411806115385750609c546001600160a01b0387165f908152609e6020526040902054115b1561154557611545613a98565b50505050506115546001606555565b50565b6001600160a01b0382165f908152609e602052604090205482906115bd5760405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6572000000000000000000000000000000000000000000006044820152606401610779565b6115c5613c18565b5f82116116145760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e740000000000000000000000006044820152606401610779565b61161e3384613c93565b1561166b5760405162461bcd60e51b815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d6564000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a3602090815260408083203384529091529020546116e95761169c3384613d1c565b156116e95760405162461bcd60e51b815260206004820152601060248201527f72657761726420756e636c61696d6564000000000000000000000000000000006044820152606401610779565b6001600160a01b0383165f90815260a1602052604081208054849290611710908490614ac4565b90915550506001600160a01b0383165f90815260a36020908152604080832033845290915281208054849290611747908490614ac4565b90915550506001600160a01b0383165f90815260a26020526040902061176d9033613dd1565b506001600160a01b0383165f90815260a160205260409020548290036117a5576001609c5f82825461179f9190614ac4565b90915550505b6001600160a01b0383165f908152609e602052604090205460975460ff1680156117cf5750600181115b15611a15575f6117e0600183614ddb565b90505b8015611a135760a15f609d6117f9600185614ddb565b8154811061180957611809614dae565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d848154811061185a5761185a614dae565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115611a01575f609d611892600184614ddb565b815481106118a2576118a2614dae565b5f91825260209091200154609d80546001600160a01b03909216925090839081106118cf576118cf614dae565b5f918252602090912001546001600160a01b0316609d6118f0600185614ddb565b8154811061190057611900614dae565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d838154811061193f5761193f614dae565b5f9182526020822001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0393909316929092179091558290609e90609d611986600185614ddb565b8154811061199657611996614dae565b5f9182526020808320909101546001600160a01b031683528201929092526040019020556119c5826001614ac4565b609e5f609d85815481106119db576119db614dae565b5f9182526020808320909101546001600160a01b03168352820192909252604001902055505b80611a0b81614dee565b9150506117e3565b505b6097545f9060ff16611a27575f611a3a565b611a2f6128cb565b611a3a906001614ac4565b6001600160a01b0386165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a36001600160a01b038581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611b6e575f80fd5b505af1158015611b80573d5f803e3d5ffd5b50505050611b95611b8e3390565b3086613de5565b60975460ff168015611ba85750609b5482115b8015611bcd57506099546001600160a01b0386165f908152609e602052604090205411155b15611bda57611bda613a98565b50506108fc6001606555565b611bee613a3e565b60975460ff1615611c415760405162461bcd60e51b815260206004820152601660248201527f72657761726420616c72656164792073746172746564000000000000000000006044820152606401610779565b4281118015611c5a5750611c586201518082614e30565b155b8015611c6857506098548114155b611cb45760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff811115611d1957611d19614b38565b604051908082528060200260200182016040528015611d6557816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081611d375790505b5090505f5b609d54811015611f0f576040518060600160405280609f5f609d8581548110611d9557611d95614dae565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110611de157611de1614dae565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f20600101548152602001609f5f609d8581548110611e3a57611e3a614dae565b5f9182526020808320909101546001600160a01b0316835282019290925260400190206002018054611e6b90614b65565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9790614b65565b8015611ee25780601f10611eb957610100808354040283529160200191611ee2565b820191905f5260205f20905b815481529060010190602001808311611ec557829003601f168201915b5050505050815250828281518110611efc57611efc614dae565b6020908102919091010152600101611d6a565b50919050565b5f54610100900460ff1615808015611f3357505f54600160ff909116105b80611f4c5750303b158015611f4c57505f5460ff166001145b611fbe5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610779565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561201a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b0387166120705760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206f776e6572206164647265737300000000000000000000006044820152606401610779565b5f86116120e55760405162461bcd60e51b815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f20300000000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f85116121345760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f636873000000006044820152606401610779565b428411801561214d575061214b6201518085614e30565b155b6121995760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d65000000000000006044820152606401610779565b816121e65760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420696e697469616c207374616b6572730000000000000000006044820152606401610779565b6121ef87614096565b6121f76140f4565b6099869055609a8590556098849055609b8290555f5b609b548110156123685783838281811061222957612229614dae565b905060200281019061223b9190614e43565b609f5f86868581811061225057612250614dae565b90506020028101906122629190614e43565b61227090602081019061465b565b6001600160a01b0316815260208101919091526040015f206122928282614bf4565b905050609d8484838181106122a9576122a9614dae565b90506020028101906122bb9190614e43565b6122c990602081019061465b565b8154600180820184555f938452602090932001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612312908290614ac4565b609e5f86868581811061232757612327614dae565b90506020028101906123399190614e43565b61234790602081019061465b565b6001600160a01b0316815260208101919091526040015f205560010161220d565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a1801561243d575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d8181548110612455575f80fd5b5f918252602090912001546001600160a01b0316905081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561255657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612527573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061254b9190614e7f565b6001600160a01b0316145b61072b5760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b6125d0613a3e565b6125d95f614096565b565b6125e3613a3e565b60985442101561265a5760405162461bcd60e51b8152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d65000000000000000000000000000000000000000000000000000000006064820152608401610779565b5f609c54116126ab5760405162461bcd60e51b815260206004820152600e60248201527f6e6f6e652063616e6469646174650000000000000000000000000000000000006044820152606401610779565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612868575f5b8181101561285f5760a15f609d838154811061270457612704614dae565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020015f205460a15f609d858154811061275557612755614dae565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541115612857575f609d828154811061279357612793614dae565b5f91825260209091200154609d80546001600160a01b03909216925090849081106127c0576127c0614dae565b5f91825260209091200154609d80546001600160a01b0390921691849081106127eb576127eb614dae565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080609d848154811061282a5761282a614dae565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b6001016126e6565b506001016126da565b505f5b609d548110156128c257612880816001614ac4565b609e5f609d848154811061289657612896614dae565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205560010161286b565b506125d9613a98565b5f60985442101561291e5760405162461bcd60e51b815260206004820152601960248201527f726577617264206973206e6f74207374617274656420796574000000000000006044820152606401610779565b62015180609854426129309190614ddb565b61293a9190614e9a565b905090565b6001600160a01b0381165f90815260a360209081526040808320338452909152812054151561071d565b609f6020525f90815260409020805460018201546002830180546001600160a01b0390931693919261299a90614b65565b80601f01602080910402602001604051908101604052809291908181526020018280546129c690614b65565b8015612a115780601f106129e857610100808354040283529160200191612a11565b820191905f5260205f20905b8154815290600101906020018083116129f457829003601f168201915b5050505050905083565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612b0357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af89190614e7f565b6001600160a01b0316145b612b755760405162461bcd60e51b815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f77656400000000000000000000000000000000000000006064820152608401610779565b8260a5548114612bc75760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b612bd2846001614ac4565b60a5555f805b83811015612f3857609b54609e5f878785818110612bf857612bf8614dae565b9050602002016020810190612c0d919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f205411612c3757600191505b5f609e5f878785818110612c4d57612c4d614dae565b9050602002016020810190612c62919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba575f6001609e5f888886818110612ca057612ca0614dae565b9050602002016020810190612cb5919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f2054612cdf9190614ddb565b90505b609d54612cf190600190614ddb565b811015612dc357609d612d05826001614ac4565b81548110612d1557612d15614dae565b5f91825260209091200154609d80546001600160a01b039092169183908110612d4057612d40614dae565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d8481548110612d8357612d83614dae565b5f9182526020808320909101546001600160a01b0316835282019290925260400181208054909190612db6908490614ddb565b9091555050600101612ce2565b50609d805480612dd557612dd5614ead565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e90868684818110612e1a57612e1a614dae565b9050602002016020810190612e2f919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f878785818110612e6757612e67614dae565b9050602002016020810190612e7c919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f20541115612eba576001609c5f828254612eb49190614ddb565b90915550505b609f5f868684818110612ecf57612ecf614dae565b9050602002016020810190612ee4919061465b565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590612f2e60028301826145fd565b5050600101612bd8565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f618484604051612f6a929190614eda565b60405180910390a18015612f8057612f80613a98565b5050505050565b5f60605f8411612fd95760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420706167652073697a650000000000000000000000000000006044820152606401610779565b6001600160a01b0385165f90815260a260205260409020612ff990613a35565b91508367ffffffffffffffff81111561301457613014614b38565b60405190808252806020026020018201604052801561303d578160200160208202803683370190505b5090505f61304b8486614f27565b90505f600161305a8682614ac4565b6130649088614f27565b61306e9190614ddb565b905061307b600185614ddb565b8111156130905761308d600185614ddb565b90505b815f5b828211613109576130c7826130a781614f3e565b6001600160a01b038c165f90815260a26020526040902090945090614178565b85826130d281614f3e565b9350815181106130e4576130e4614dae565b60200260200101906001600160a01b031690816001600160a01b031681525050613093565b50505050935093915050565b61311d613c18565b335f90815260a46020526040812054815b818110156134335760975460ff16158061317e575061314b6128cb565b335f90815260a46020526040902080548390811061316b5761316b614dae565b905f5260205f2090600302016002015411155b1561342157335f90815260a4602052604090208054829081106131a3576131a3614dae565b905f5260205f20906003020160010154836131be9190614ac4565b335f90815260a46020526040812080549295509091839081106131e3576131e3614dae565b5f91825260208220600390910201546001600160a01b0316915060a4816132073390565b6001600160a01b03166001600160a01b031681526020019081526020015f20838154811061323757613237614dae565b905f5260205f2090600302016002015490505f60a45f6132543390565b6001600160a01b03166001600160a01b031681526020019081526020015f20848154811061328457613284614dae565b905f5260205f2090600302016001015490506001856132a39190614ddb565b84101561336857335f90815260a4602052604090206132c3600187614ddb565b815481106132d3576132d3614dae565b905f5260205f20906003020160a45f6132e93390565b6001600160a01b03166001600160a01b031681526020019081526020015f20858154811061331957613319614dae565b5f91825260209091208254600390920201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091178155600180830154908201556002918201549101555b335f90815260a46020526040902080548061338557613385614ead565b5f8281526020812060035f1990930192830201805473ffffffffffffffffffffffffffffffffffffffff19168155600181810183905560029091019190915591556133d09086614ddb565b604080518481526020810184905291965033916001600160a01b038616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a350505061312e565b61342c816001614ac4565b905061312e565b505f82116134835760405162461bcd60e51b815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d0000000000000000006044820152606401610779565b61348d3383614183565b50506125d96001606555565b6001600160a01b0381165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613524575f848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016134d0565b505050509050919050565b613537613a3e565b6001600160a01b0381166135b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610779565b61155481614096565b6135c4613c18565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b15801561364a575f80fd5b505af115801561365c573d5f803e3d5ffd5b505050506125d96001606555565b613672613a3e565b8260a55481146136c45760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206e6f6e6365000000000000000000000000000000000000006044820152606401610779565b6136cf846001614ac4565b60a5555f805b83811015612f3857609b54609e5f8787858181106136f5576136f5614dae565b905060200201602081019061370a919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f20541161373457600191505b5f609e5f87878581811061374a5761374a614dae565b905060200201602081019061375f919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139b7575f6001609e5f88888681811061379d5761379d614dae565b90506020020160208101906137b2919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f20546137dc9190614ddb565b90505b609d546137ee90600190614ddb565b8110156138c057609d613802826001614ac4565b8154811061381257613812614dae565b5f91825260209091200154609d80546001600160a01b03909216918390811061383d5761383d614dae565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001609e5f609d848154811061388057613880614dae565b5f9182526020808320909101546001600160a01b03168352820192909252604001812080549091906138b3908490614ddb565b90915550506001016137df565b50609d8054806138d2576138d2614ead565b5f8281526020812082015f19908101805473ffffffffffffffffffffffffffffffffffffffff19169055909101909155609e9086868481811061391757613917614dae565b905060200201602081019061392c919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90555f60a15f87878581811061396457613964614dae565b9050602002016020810190613979919061465b565b6001600160a01b03166001600160a01b031681526020019081526020015f205411156139b7576001609c5f8282546139b19190614ddb565b90915550505b609f5f8686848181106139cc576139cc614dae565b90506020020160208101906139e1919061465b565b6001600160a01b0316815260208101919091526040015f908120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590613a2b60028301826145fd565b50506001016136d5565b5f61071d825490565b6033546001600160a01b031633146125d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610779565b60995460975460ff1615613abc57609954609c541015613ab75750609c545b613acd565b609954609d541015613acd5750609d545b5f8167ffffffffffffffff811115613ae757613ae7614b38565b604051908082528060200260200182016040528015613b10578160200160208202803683370190505b5090505f5b82811015613b7d57609d8181548110613b3057613b30614dae565b905f5260205f20015f9054906101000a90046001600160a01b0316828281518110613b5d57613b5d614dae565b6001600160a01b0390921660209283029190910190910152600101613b15565b506040517f9b8201a40000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639b8201a490613be3908490600401614f56565b5f604051808303815f87803b158015613bfa575f80fd5b505af1158015613c0c573d5f803e3d5ffd5b50509151609b55505050565b600260655403613c6a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610779565b6002606555565b6001606555565b5f613c8c836001600160a01b03841661442c565b9392505050565b5f805b6001600160a01b0384165f90815260a46020526040902054811015613d13576001600160a01b038481165f90815260a46020526040902080549185169183908110613ce357613ce3614dae565b5f9182526020909120600390910201546001600160a01b031603613d0b57600191505061071d565b600101613c96565b505f9392505050565b6040517fde6ac9330000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015613da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613dc99190614f68565b159392505050565b5f613c8c836001600160a01b03841661450f565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015613e66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e8a9190614f87565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015613f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f409190614f68565b613f8c5760405162461bcd60e51b815260206004820152601360248201527f7472616e7366657246726f6d206661696c6564000000000000000000000000006044820152606401610779565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa15801561400d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140319190614f87565b90505f8311801561404a5750826140488383614ddb565b145b612f805760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166141705760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b6125d961455b565b5f613c8c83836145d7565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614204573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142289190614f87565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af11580156142b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142d69190614f68565b6143225760405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c656400000000000000000000000000000000006044820152606401610779565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156143a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143c79190614f87565b90505f831180156143e05750826143de8383614ddb565b145b610a0e5760405162461bcd60e51b815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c656400000000006044820152606401610779565b5f8181526001830160205260408120548015614506575f61444e600183614ddb565b85549091505f9061446190600190614ddb565b90508181146144c0575f865f01828154811061447f5761447f614dae565b905f5260205f200154905080875f01848154811061449f5761449f614dae565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806144d1576144d1614ead565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061071d565b5f91505061071d565b5f81815260018301602052604081205461455457508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561071d565b505f61071d565b5f54610100900460ff16613c715760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610779565b5f825f0182815481106145ec576145ec614dae565b905f5260205f200154905092915050565b50805461460990614b65565b5f825580601f10614618575050565b601f0160209004905f5260205f209081019061155491905b80821115614643575f8155600101614630565b5090565b6001600160a01b0381168114611554575f80fd5b5f6020828403121561466b575f80fd5b8135613c8c81614647565b5f8060408385031215614687575f80fd5b82359150602083013567ffffffffffffffff8111156146a4575f80fd5b8301606081860312156146b5575f80fd5b809150509250929050565b5f602082840312156146d0575f80fd5b5035919050565b5f80604083850312156146e8575f80fd5b82356146f381614647565b946020939093013593505050565b5f8083601f840112614711575f80fd5b50813567ffffffffffffffff811115614728575f80fd5b6020830191508360208260051b8501011115614742575f80fd5b9250929050565b5f806020838503121561475a575f80fd5b823567ffffffffffffffff811115614770575f80fd5b61477c85828601614701565b90969095509350505050565b5f81518084525f5b818110156147ac57602081850181015186830182015201614790565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015614881578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b031684528781015188850152860151606087850181905261486d81860183614788565b968901969450505090860190600101614810565b509098975050505050505050565b5f805f805f8060a087890312156148a4575f80fd5b86356148af81614647565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff8111156148df575f80fd5b6148eb89828a01614701565b979a9699509497509295939492505050565b6001600160a01b0384168152826020820152606060408201525f6149246060830184614788565b95945050505050565b5f806040838503121561493e575f80fd5b823561494981614647565b915060208301356146b581614647565b5f805f6040848603121561496b575f80fd5b83359250602084013567ffffffffffffffff811115614988575f80fd5b61499486828701614701565b9497909650939450505050565b5f805f606084860312156149b3575f80fd5b83356149be81614647565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b83811015614a0b5781516001600160a01b0316875295820195908201906001016149e6565b509495945050505050565b828152604060208201525f614a2e60408301846149d3565b949350505050565b602080825282518282018190525f919060409081850190868401855b82811015614a8a57815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101614a52565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561071d5761071d614a97565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614b0a575f80fd5b83018035915067ffffffffffffffff821115614b24575f80fd5b602001915036819003821315614742575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680614b7957607f821691505b602082108103611f0f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156108fc57805f5260205f20601f840160051c81016020851015614bd55750805b601f840160051c820191505b81811015612f80575f8155600101614be1565b8135614bff81614647565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112614c6b575f80fd5b8501803567ffffffffffffffff811115614c83575f80fd5b8036038483011315614c93575f80fd5b614ca781614ca18554614b65565b85614bb0565b5f601f821160018114614cda575f8315614cc357508382018601355b5f19600385901b1c1916600184901b178555614d50565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614d2657868501890135825593880193908901908801614d07565b5084821015614d44575f1960f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8181038181111561071d5761071d614a97565b5f81614dfc57614dfc614a97565b505f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82614e3e57614e3e614e03565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614e75575f80fd5b9190910192915050565b5f60208284031215614e8f575f80fd5b8151613c8c81614647565b5f82614ea857614ea8614e03565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015614f1c578235614f0181614647565b6001600160a01b031682529183019190830190600101614eee565b509695505050505050565b808202811582820484141761071d5761071d614a97565b5f5f198203614f4f57614f4f614a97565b5060010190565b602081525f613c8c60208301846149d3565b5f60208284031215614f78575f80fd5b81518015158114613c8c575f80fd5b5f60208284031215614f97575f80fd5b505191905056fea164736f6c6343000818000a", } // L2StakingABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/l2staking_more.go b/bindings/bindings/l2staking_more.go index c2af631bf..1f7dc0a57 100644 --- a/bindings/bindings/l2staking_more.go +++ b/bindings/bindings/l2staking_more.go @@ -13,7 +13,7 @@ const L2StakingStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\ var L2StakingStorageLayout = new(solc.StorageLayout) -var L2StakingDeployedBin = "0x608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106f6578063fad99f9814610709578063fc6facc614610711575f80fd5b8063e10911b1146106c5578063ed70b343146106cd578063f0261bc2146106ed575f80fd5b8063cce6cf9f116100c3578063cce6cf9f1461066a578063d31d83d91461067d578063d55771411461069e575f80fd5b8063affed0e014610618578063b5d2e0dc14610621578063c64814dd14610640575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a4146105c5578063927ede2d146105e457806396ab994d1461060b575f80fd5b80638da5cb5b1461055e5780638e21d5fb1461057c5780639168ae72146105a3575f80fd5b80637b05afb5116101785780637b05afb5146104f5578063831cfb581461051457806384d7d1d41461053b575f80fd5b8063746c8ae1146104e557806376671808146104ed575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104c25780637046529b146104ca578063715018a6146104dd575f80fd5b806343352d6114610494578063439162b51461049c578063459598a2146104af575f80fd5b80633cb747bf1161022d5780633cb747bf146104135780633d9353fe1461045a57806340b5c83714610481575f80fd5b80633b802421146103f75780633c323a1b14610400575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103bb57806330158eea146103c45780633385ccc2146103e4575f80fd5b8063174e31c41461038c57806319fac8fd1461039f5780632cc138be146103b2575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610383575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe36600461521e565b610724565b6040519081526020015b60405180910390f35b610329610324366004615239565b610757565b005b610329610339366004615283565b6109a8565b61035161034c36600461529a565b610ad5565b6040805173ffffffffffffffffffffffffffffffffffffffff909416845260208401929092529082015260600161030d565b610303609a5481565b61032961039a36600461529a565b610b2a565b6103296103ad366004615283565b610ce3565b61030360985481565b61030360995481565b6103d76103d236600461530c565b610e39565b60405161030d91906153ac565b6103296103f236600461521e565b6110a1565b610303609c5481565b61032961040e36600461529a565b61181a565b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161030d565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b61032961048f366004615283565b61202d565b6103d7612174565b6103296104aa36600461545f565b6123d1565b6104356104bd366004615283565b6129dd565b609d54610303565b6103296104d8366004615239565b612a12565b610329612bba565b610329612bcd565b610303612f80565b61030361050336600461521e565b60a06020525f908152604090205481565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b61054e61054936600461521e565b61300e565b604051901515815260200161030d565b60335473ffffffffffffffffffffffffffffffffffffffff16610435565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b6105b66105b136600461521e565b613045565b60405161030d939291906154cd565b6103036105d336600461521e565b60a16020525f908152604090205481565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b60975461054e9060ff1681565b61030360a55481565b61030361062f36600461521e565b609e6020525f908152604090205481565b61030361064e36600461550a565b60a360209081525f928352604080842090915290825290205481565b610329610678366004615536565b613104565b61069061068b36600461557e565b6137d0565b60405161030d929190615600565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b6103296139ac565b6106e06106db36600461521e565b613df4565b60405161030d9190615620565b610303609b5481565b61032961070436600461521e565b613ea4565b610329613f58565b61032961071f366004615536565b614020565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a260205260408120610751906144fd565b92915050565b61075f614506565b8160a55481146107d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b6107db8360016156bb565b60a555609e5f6107ee602085018561521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f036108cf57609d61083d602084018461521e565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155609d5491609e916108a89086018661521e565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f20555b81609f5f6108e0602084018461521e565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2061090f82826157eb565b5061091f9050602083018361521e565b73ffffffffffffffffffffffffffffffffffffffff167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d602084013561096860408601866156ce565b604051610977939291906159a8565b60405180910390a260975460ff161580156109965750609954609d5411155b156109a3576109a3614587565b505050565b6109b0614506565b5f811180156109c157506099548114155b610a4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a6500000000000000000000000000000000000000000000000000000000000060648201526084016107c7565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610aa257609d54610aa6565b609c545b90505f6099548210610aba57609954610abc565b815b9050609b548114610acf57610acf614587565b50505050565b60a4602052815f5260405f208181548110610aee575f80fd5b5f91825260209091206003909102018054600182015460029092015473ffffffffffffffffffffffffffffffffffffffff909116935090915083565b610b3261472e565b73ffffffffffffffffffffffffffffffffffffffff8216610c0f5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490526044015f604051808303815f87803b158015610bf4575f80fd5b505af1158015610c06573d5f803e3d5ffd5b50505050610cd5565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610cbe575f80fd5b505af1158015610cd0573d5f803e3d5ffd5b505050505b610cdf6001606555565b5050565b335f908152609e6020526040902054610d58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f7765640000000000000000000000000060448201526064016107c7565b6014811115610dc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e000000000000000000000000000060448201526064016107c7565b335f90815260a06020526040812082905560975460ff16610de4575f610df7565b610dec612f80565b610df79060016156bb565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610e5557610e5561572f565b604051908082528060200260200182016040528015610ea157816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610e735790505b5090505f5b83811015611099576040518060600160405280609f5f888886818110610ece57610ece6159fb565b9050602002016020810190610ee3919061521e565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610f2d57610f2d6159fb565b9050602002016020810190610f42919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f888886818110610f9957610f996159fb565b9050602002016020810190610fae919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002018054610ff59061575c565b80601f01602080910402602001604051908101604052809291908181526020018280546110219061575c565b801561106c5780601f106110435761010080835404028352916020019161106c565b820191905f5260205f20905b81548152906001019060200180831161104f57829003601f168201915b5050505050815250828281518110611086576110866159fb565b6020908102919091010152600101610ea6565b509392505050565b6110a961472e565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a36020908152604080832033845290915290205461113f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f0000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609e60205260408120546097549015919060ff16611178575f61118b565b611180612f80565b61118b9060016156bb565b6097549091505f9060ff1680156111a0575082155b6111aa57816111b7565b609a546111b790836156bb565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff8781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a190925292812080549495509193611286908490615a28565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260a2602052604090206112b990336147a8565b5073ffffffffffffffffffffffffffffffffffffffff85165f908152609e6020526040902054841580156112ef575060975460ff165b80156112fc5750609c5481105b156115e85773ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604081205461133290600190615a28565b90505b6001609c546113449190615a28565b8110156115e65760a15f609d8381548110611361576113616159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120549060a190609d6113a38560016156bb565b815481106113b3576113b36159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205411156115de575f609d82815481106113fe576113fe6159fb565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff169050609d61142e8360016156bb565b8154811061143e5761143e6159fb565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169184908110611476576114766159fb565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905580609d6114d18460016156bb565b815481106114e1576114e16159fb565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556115398260016156bb565b609e5f609d858154811061154f5761154f6159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205561158b8260026156bb565b609e5f609d61159b8660016156bb565b815481106115ab576115ab6159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b600101611335565b505b84158015611618575073ffffffffffffffffffffffffffffffffffffffff86165f90815260a16020526040902054155b15611635576001609c5f82825461162f9190615a28565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b1580156116e3575f80fd5b505af11580156116f5573d5f803e3d5ffd5b505050506117003390565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c84602001518787604051611775939291909283526020830191909152604082015260600190565b60405180910390a38415801561178d575060975460ff165b801561179b5750609b548111155b80156117fb5750609b5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e602052604090205411806117fb5750609c5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e6020526040902054115b1561180857611808614587565b50505050506118176001606555565b50565b73ffffffffffffffffffffffffffffffffffffffff82165f908152609e602052604090205482906118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b65720000000000000000000000000000000000000000000060448201526064016107c7565b6118af61472e565b5f8211611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e7400000000000000000000000060448201526064016107c7565b61192233846147d0565b15611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d65640000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a360209081526040808320338452909152902054611a2e576119c73384614880565b15611a2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f72657761726420756e636c61696d65640000000000000000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a1602052604081208054849290611a629084906156bb565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a36020908152604080832033845290915281208054849290611aa69084906156bb565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a260205260409020611ad99033614942565b5073ffffffffffffffffffffffffffffffffffffffff83165f90815260a16020526040902054829003611b1e576001609c5f828254611b1891906156bb565b90915550505b73ffffffffffffffffffffffffffffffffffffffff83165f908152609e602052604090205460975460ff168015611b555750600181115b15611e35575f611b66600183615a28565b90505b8015611e335760a15f609d611b7f600185615a28565b81548110611b8f57611b8f6159fb565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8481548110611c0757611c076159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115611e21575f609d611c4c600184615a28565b81548110611c5c57611c5c6159fb565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921692509083908110611c9657611c966159fb565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16609d611cc4600185615a28565b81548110611cd457611cd46159fb565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d8381548110611d2d57611d2d6159fb565b5f918252602082200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93909316929092179091558290609e90609d611d8c600185615a28565b81548110611d9c57611d9c6159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055611dd88260016156bb565b609e5f609d8581548110611dee57611dee6159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b80611e2b81615a3b565b915050611b69565b505b6097545f9060ff16611e47575f611e5a565b611e4f612f80565b611e5a9060016156bb565b73ffffffffffffffffffffffffffffffffffffffff86165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a373ffffffffffffffffffffffffffffffffffffffff8581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611fa8575f80fd5b505af1158015611fba573d5f803e3d5ffd5b50505050611fcf611fc83390565b3086614963565b60975460ff168015611fe25750609b5482115b8015612014575060995473ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604090205411155b1561202157612021614587565b50506109a36001606555565b612035614506565b60975460ff16156120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f72657761726420616c726561647920737461727465640000000000000000000060448201526064016107c7565b42811180156120bb57506120b96201518082615a9c565b155b80156120c957506098548114155b61212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016107c7565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff8111156121945761219461572f565b6040519080825280602002602001820160405280156121e057816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816121b25790505b5090505f5b609d548110156123cb576040518060600160405280609f5f609d8581548110612210576122106159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff90811684528382019490945260409092018120549092168352609d80549390910192609f92919086908110612269576122696159fb565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f609d85815481106122e9576122e96159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902060020180546123279061575c565b80601f01602080910402602001604051908101604052809291908181526020018280546123539061575c565b801561239e5780601f106123755761010080835404028352916020019161239e565b820191905f5260205f20905b81548152906001019060200180831161238157829003601f168201915b50505050508152508282815181106123b8576123b86159fb565b60209081029190910101526001016121e5565b50919050565b5f54610100900460ff16158080156123ef57505f54600160ff909116105b806124085750303b15801561240857505f5460ff166001145b612494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107c7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156124f0575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff871661256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016107c7565b5f86116125fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016107c7565b5f8511612665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f6368730000000060448201526064016107c7565b428411801561267e575061267c6201518085615a9c565b155b6126e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016107c7565b8161274b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420696e697469616c207374616b65727300000000000000000060448201526064016107c7565b61275487614c0a565b61275c614c80565b6099869055609a8590556098849055609b8290555f5b609b548110156128ff5783838281811061278e5761278e6159fb565b90506020028101906127a09190615aaf565b609f5f8686858181106127b5576127b56159fb565b90506020028101906127c79190615aaf565b6127d590602081019061521e565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2061280482826157eb565b905050609d84848381811061281b5761281b6159fb565b905060200281019061282d9190615aaf565b61283b90602081019061521e565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905561289c9082906156bb565b609e5f8686858181106128b1576128b16159fb565b90506020028101906128c39190615aaf565b6128d190602081019061521e565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2055600101612772565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a180156129d4575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d81815481106129ec575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015612b2e57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612af2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b169190615aeb565b73ffffffffffffffffffffffffffffffffffffffff16145b61075f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016107c7565b612bc2614506565b612bcb5f614c0a565b565b612bd5614506565b609854421015612c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d650000000000000000000000000000000000000000000000000000000060648201526084016107c7565b5f609c5411612cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f6e652063616e64696461746500000000000000000000000000000000000060448201526064016107c7565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612f10575f5b81811015612f075760a15f609d8381548110612d2a57612d2a6159fb565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8581548110612da257612da26159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115612eff575f609d8281548110612ded57612ded6159fb565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921692509084908110612e2757612e276159fb565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169184908110612e5f57612e5f6159fb565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d8481548110612eb857612eb86159fb565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b600101612d0c565b50600101612d00565b505f5b609d54811015612f7757612f288160016156bb565b609e5f609d8481548110612f3e57612f3e6159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055600101612f13565b50612bcb614587565b5f609854421015612fed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f726577617264206973206e6f742073746172746564207965740000000000000060448201526064016107c7565b6201518060985442612fff9190615a28565b6130099190615b06565b905090565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a3602090815260408083203384529091528120541515610751565b609f6020525f908152604090208054600182015460028301805473ffffffffffffffffffffffffffffffffffffffff9093169391926130839061575c565b80601f01602080910402602001604051908101604052809291908181526020018280546130af9061575c565b80156130fa5780601f106130d1576101008083540402835291602001916130fa565b820191905f5260205f20905b8154815290600101906020018083116130dd57829003601f168201915b5050505050905083565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561322057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132089190615aeb565b73ffffffffffffffffffffffffffffffffffffffff16145b6132ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016107c7565b8260a5548114613318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064016107c7565b6133238460016156bb565b60a5555f805b8381101561378157609b54609e5f878785818110613349576133496159fb565b905060200201602081019061335e919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116133a257600191505b5f609e5f8787858181106133b8576133b86159fb565b90506020020160208101906133cd919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156136eb575f6001609e5f888886818110613425576134256159fb565b905060200201602081019061343a919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461347e9190615a28565b90505b609d5461349090600190615a28565b81101561359657609d6134a48260016156bb565b815481106134b4576134b46159fb565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921691839081106134ec576134ec6159fb565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d8481548110613549576135496159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400181208054909190613589908490615a28565b9091555050600101613481565b50609d8054806135a8576135a8615b19565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90868684818110613617576136176159fb565b905060200201602081019061362c919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f87878581811061367e5761367e6159fb565b9050602002016020810190613693919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156136eb576001609c5f8282546136e59190615a28565b90915550505b609f5f868684818110613700576137006159fb565b9050602002016020810190613715919061521e565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600181018290559061377760028301826151b3565b5050600101613329565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f6184846040516137b3929190615b46565b60405180910390a180156137c9576137c9614587565b5050505050565b5f60605f841161383c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f696e76616c696420706167652073697a6500000000000000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260a260205260409020613869906144fd565b91508367ffffffffffffffff8111156138845761388461572f565b6040519080825280602002602001820160405280156138ad578160200160208202803683370190505b5090505f6138bb8486615ba0565b90505f60016138ca86826156bb565b6138d49088615ba0565b6138de9190615a28565b90506138eb600185615a28565b811115613900576138fd600185615a28565b90505b815f5b8282116139a0576139448261391781615bb7565b73ffffffffffffffffffffffffffffffffffffffff8c165f90815260a26020526040902090945090614d1e565b858261394f81615bb7565b935081518110613961576139616159fb565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613903565b50505050935093915050565b6139b461472e565b335f90815260a46020526040812054815b81811015613d745760975460ff161580613a1557506139e2612f80565b335f90815260a460205260409020805483908110613a0257613a026159fb565b905f5260205f2090600302016002015411155b15613d6257335f90815260a460205260409020805482908110613a3a57613a3a6159fb565b905f5260205f2090600302016001015483613a5591906156bb565b335f90815260a4602052604081208054929550909183908110613a7a57613a7a6159fb565b5f918252602082206003909102015473ffffffffffffffffffffffffffffffffffffffff16915060a481613aab3390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208381548110613af557613af56159fb565b905f5260205f2090600302016002015490505f60a45f613b123390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208481548110613b5c57613b5c6159fb565b905f5260205f209060030201600101549050600185613b7b9190615a28565b841015613c7257335f90815260a460205260409020613b9b600187615a28565b81548110613bab57613bab6159fb565b905f5260205f20906003020160a45f613bc13390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208581548110613c0b57613c0b6159fb565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091178155600180830154908201556002918201549101555b335f90815260a460205260409020805480613c8f57613c8f615b19565b5f8281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018181018390556002909101919091559155613d049086615a28565b6040805184815260208101849052919650339173ffffffffffffffffffffffffffffffffffffffff8616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a35050506139c5565b613d6d8160016156bb565b90506139c5565b505f8211613dde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d00000000000000000060448201526064016107c7565b613de83383614d29565b5050612bcb6001606555565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613e99575f8481526020908190206040805160608101825260038602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018082015484860152600290910154918301919091529083529092019101613e38565b505050509050919050565b613eac614506565b73ffffffffffffffffffffffffffffffffffffffff8116613f4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107c7565b61181781614c0a565b613f6061472e565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015f604051808303815f87803b158015614000575f80fd5b505af1158015614012573d5f803e3d5ffd5b50505050612bcb6001606555565b614028614506565b8260a5548114614094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064016107c7565b61409f8460016156bb565b60a5555f805b8381101561378157609b54609e5f8787858181106140c5576140c56159fb565b90506020020160208101906140da919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541161411e57600191505b5f609e5f878785818110614134576141346159fb565b9050602002016020810190614149919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115614467575f6001609e5f8888868181106141a1576141a16159fb565b90506020020160208101906141b6919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546141fa9190615a28565b90505b609d5461420c90600190615a28565b81101561431257609d6142208260016156bb565b81548110614230576142306159fb565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169183908110614268576142686159fb565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d84815481106142c5576142c56159fb565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400181208054909190614305908490615a28565b90915550506001016141fd565b50609d80548061432457614324615b19565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e90868684818110614393576143936159fb565b90506020020160208101906143a8919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f8787858181106143fa576143fa6159fb565b905060200201602081019061440f919061521e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115614467576001609c5f8282546144619190615a28565b90915550505b609f5f86868481811061447c5761447c6159fb565b9050602002016020810190614491919061521e565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018101829055906144f360028301826151b3565b50506001016140a5565b5f610751825490565b60335473ffffffffffffffffffffffffffffffffffffffff163314612bcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107c7565b60995460975460ff16156145ab57609954609c5410156145a65750609c545b6145bc565b609954609d5410156145bc5750609d545b5f8167ffffffffffffffff8111156145d6576145d661572f565b6040519080825280602002602001820160405280156145ff578160200160208202803683370190505b5090505f5b8281101561468657609d818154811061461f5761461f6159fb565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110614659576146596159fb565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101614604565b506040517f9b8201a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690639b8201a4906146f9908490600401615bee565b5f604051808303815f87803b158015614710575f80fd5b505af1158015614722573d5f803e3d5ffd5b50509151609b55505050565b60026065540361479a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107c7565b6002606555565b6001606555565b5f6147c98373ffffffffffffffffffffffffffffffffffffffff8416614fc8565b9392505050565b5f805b73ffffffffffffffffffffffffffffffffffffffff84165f90815260a460205260409020548110156148775773ffffffffffffffffffffffffffffffffffffffff8481165f90815260a4602052604090208054918516918390811061483a5761483a6159fb565b5f91825260209091206003909102015473ffffffffffffffffffffffffffffffffffffffff160361486f576001915050610751565b6001016147d3565b505f9392505050565b6040517fde6ac93300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015614916573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061493a9190615c00565b159392505050565b5f6147c98373ffffffffffffffffffffffffffffffffffffffff84166150ab565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156149f1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a159190615c1f565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015614ab4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ad89190615c00565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614b67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614b8b9190615c1f565b90505f83118015614ba4575082614ba28383615a28565b145b6137c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016107c7565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16614d16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107c7565b612bcb6150f7565b5f6147c9838361518d565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614db7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ddb9190615c1f565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614e72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614e969190615c00565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614f25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614f499190615c1f565b90505f83118015614f62575082614f608383615a28565b145b610acf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016107c7565b5f81815260018301602052604081205480156150a2575f614fea600183615a28565b85549091505f90614ffd90600190615a28565b905081811461505c575f865f01828154811061501b5761501b6159fb565b905f5260205f200154905080875f01848154811061503b5761503b6159fb565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061506d5761506d615b19565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610751565b5f915050610751565b5f8181526001830160205260408120546150f057508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610751565b505f610751565b5f54610100900460ff166147a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107c7565b5f825f0182815481106151a2576151a26159fb565b905f5260205f200154905092915050565b5080546151bf9061575c565b5f825580601f106151ce575050565b601f0160209004905f5260205f209081019061181791905b808211156151f9575f81556001016151e6565b5090565b73ffffffffffffffffffffffffffffffffffffffff81168114611817575f80fd5b5f6020828403121561522e575f80fd5b81356147c9816151fd565b5f806040838503121561524a575f80fd5b82359150602083013567ffffffffffffffff811115615267575f80fd5b830160608186031215615278575f80fd5b809150509250929050565b5f60208284031215615293575f80fd5b5035919050565b5f80604083850312156152ab575f80fd5b82356152b6816151fd565b946020939093013593505050565b5f8083601f8401126152d4575f80fd5b50813567ffffffffffffffff8111156152eb575f80fd5b6020830191508360208260051b8501011115615305575f80fd5b9250929050565b5f806020838503121561531d575f80fd5b823567ffffffffffffffff811115615333575f80fd5b61533f858286016152c4565b90969095509350505050565b5f81518084525f5b8181101561536f57602081850181015186830182015201615353565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015615451578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff1684528781015188850152860151606087850181905261543d8186018361534b565b9689019694505050908601906001016153d3565b509098975050505050505050565b5f805f805f8060a08789031215615474575f80fd5b863561547f816151fd565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff8111156154af575f80fd5b6154bb89828a016152c4565b979a9699509497509295939492505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f615501606083018461534b565b95945050505050565b5f806040838503121561551b575f80fd5b8235615526816151fd565b91506020830135615278816151fd565b5f805f60408486031215615548575f80fd5b83359250602084013567ffffffffffffffff811115615565575f80fd5b615571868287016152c4565b9497909650939450505050565b5f805f60608486031215615590575f80fd5b833561559b816151fd565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156155f557815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016155c3565b509495945050505050565b828152604060208201525f61561860408301846155b0565b949350505050565b602080825282518282018190525f919060409081850190868401855b82811015615681578151805173ffffffffffffffffffffffffffffffffffffffff1685528681015187860152850151858501526060909301929085019060010161563c565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156107515761075161568e565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615701575f80fd5b83018035915067ffffffffffffffff82111561571b575f80fd5b602001915036819003821315615305575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061577057607f821691505b6020821081036123cb577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156109a357805f5260205f20601f840160051c810160208510156157cc5750805b601f840160051c820191505b818110156137c9575f81556001016157d8565b81356157f6816151fd565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe186360301811261587a575f80fd5b8501803567ffffffffffffffff811115615892575f80fd5b80360384830113156158a2575f80fd5b6158b6816158b0855461575c565b856157a7565b5f601f821160018114615908575f83156158d257508382018601355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b17855561599d565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561595457868501890135825593880193908901908801615935565b5084821015615991577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b818103818111156107515761075161568e565b5f81615a4957615a4961568e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82615aaa57615aaa615a6f565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112615ae1575f80fd5b9190910192915050565b5f60208284031215615afb575f80fd5b81516147c9816151fd565b5f82615b1457615b14615a6f565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015615b95578235615b6d816151fd565b73ffffffffffffffffffffffffffffffffffffffff1682529183019190830190600101615b5a565b509695505050505050565b80820281158282048414176107515761075161568e565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615be757615be761568e565b5060010190565b602081525f6147c960208301846155b0565b5f60208284031215615c10575f80fd5b815180151581146147c9575f80fd5b5f60208284031215615c2f575f80fd5b505191905056fea164736f6c6343000818000a" +var L2StakingDeployedBin = "0x608060405234801561000f575f80fd5b50600436106102ec575f3560e01c8063746c8ae111610192578063affed0e0116100e8578063e10911b111610093578063f2fde38b1161006e578063f2fde38b146106f6578063fad99f9814610709578063fc6facc614610711575f80fd5b8063e10911b1146106c5578063ed70b343146106cd578063f0261bc2146106ed575f80fd5b8063cce6cf9f116100c3578063cce6cf9f1461066a578063d31d83d91461067d578063d55771411461069e575f80fd5b8063affed0e014610618578063b5d2e0dc14610621578063c64814dd14610640575f80fd5b80638da5cb5b1161014857806391bd43a41161012357806391bd43a4146105c5578063927ede2d146105e457806396ab994d1461060b575f80fd5b80638da5cb5b1461055e5780638e21d5fb1461057c5780639168ae72146105a3575f80fd5b80637b05afb5116101785780637b05afb5146104f5578063831cfb581461051457806384d7d1d41461053b575f80fd5b8063746c8ae1146104e557806376671808146104ed575f80fd5b80633b8024211161024757806343352d61116101fd57806346cdc18a116101d857806346cdc18a146104c25780637046529b146104ca578063715018a6146104dd575f80fd5b806343352d6114610494578063439162b51461049c578063459598a2146104af575f80fd5b80633cb747bf1161022d5780633cb747bf146104135780633d9353fe1461045a57806340b5c83714610481575f80fd5b80633b802421146103f75780633c323a1b14610400575f80fd5b8063174e31c4116102a75780632e787be3116102825780632e787be3146103bb57806330158eea146103c45780633385ccc2146103e4575f80fd5b8063174e31c41461038c57806319fac8fd1461039f5780632cc138be146103b2575f80fd5b80630eb573af116102d75780630eb573af1461032b5780630f3b70591461033e57806312a3e94714610383575f80fd5b806243b758146102f05780629c6f0c14610316575b5f80fd5b6103036102fe3660046152e8565b610724565b6040519081526020015b60405180910390f35b610329610324366004615303565b610757565b005b61032961033936600461534d565b6109a8565b61035161034c366004615364565b610ad5565b6040805173ffffffffffffffffffffffffffffffffffffffff909416845260208401929092529082015260600161030d565b610303609a5481565b61032961039a366004615364565b610b2a565b6103296103ad36600461534d565b610ce3565b61030360985481565b61030360995481565b6103d76103d23660046153d6565b610e39565b60405161030d9190615476565b6103296103f23660046152e8565b6110a1565b610303609c5481565b61032961040e366004615364565b61181a565b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161030d565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b61032961048f36600461534d565b61202d565b6103d7612174565b6103296104aa366004615529565b6123d1565b6104356104bd36600461534d565b6129dd565b609d54610303565b6103296104d8366004615303565b612a12565b610329612bba565b610329612bcd565b610303612f80565b6103036105033660046152e8565b60a06020525f908152604090205481565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b61054e6105493660046152e8565b61300e565b604051901515815260200161030d565b60335473ffffffffffffffffffffffffffffffffffffffff16610435565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b6105b66105b13660046152e8565b613045565b60405161030d93929190615597565b6103036105d33660046152e8565b60a16020525f908152604090205481565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b60975461054e9060ff1681565b61030360a55481565b61030361062f3660046152e8565b609e6020525f908152604090205481565b61030361064e3660046155d4565b60a360209081525f928352604080842090915290825290205481565b610329610678366004615600565b613104565b61069061068b366004615648565b6137d0565b60405161030d9291906156ca565b6104357f000000000000000000000000000000000000000000000000000000000000000081565b6103296139ac565b6106e06106db3660046152e8565b613df4565b60405161030d91906156ea565b610303609b5481565b6103296107043660046152e8565b613ea4565b610329613f58565b61032961071f366004615600565b614020565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a260205260408120610751906144fd565b92915050565b61075f614506565b8160a55481146107d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064015b60405180910390fd5b6107db836001615785565b60a555609e5f6107ee60208501856152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f036108cf57609d61083d60208401846152e8565b81546001810183555f928352602080842090910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155609d5491609e916108a8908601866152e8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f20555b81609f5f6108e060208401846152e8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2061090f82826158b5565b5061091f905060208301836152e8565b73ffffffffffffffffffffffffffffffffffffffff167f058ecb29c230cd5df283c89e996187ed521393fe4546cd1b097921c4b2de293d60208401356109686040860186615798565b60405161097793929190615a72565b60405180910390a260975460ff161580156109965750609954609d5411155b156109a3576109a3614587565b505050565b6109b0614506565b5f811180156109c157506099548114155b610a4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f696e76616c6964206e65772073657175656e63657220736574206d617820736960448201527f7a6500000000000000000000000000000000000000000000000000000000000060648201526084016107c7565b609980549082905560408051828152602081018490527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a16097545f9060ff16610aa257609d54610aa6565b609c545b90505f6099548210610aba57609954610abc565b815b9050609b548114610acf57610acf614587565b50505050565b60a4602052815f5260405f208181548110610aee575f80fd5b5f91825260209091206003909102018054600182015460029092015473ffffffffffffffffffffffffffffffffffffffff909116935090915083565b610b3261472e565b73ffffffffffffffffffffffffffffffffffffffff8216610c0f5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016635cf20c7b336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490526044015f604051808303815f87803b158015610bf4575f80fd5b505af1158015610c06573d5f803e3d5ffd5b50505050610cd5565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663996cba6883336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604481018490526064015f604051808303815f87803b158015610cbe575f80fd5b505af1158015610cd0573d5f803e3d5ffd5b505050505b610cdf6001606555565b5050565b335f908152609e6020526040902054610d58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6f6e6c79207374616b657220616c6c6f7765640000000000000000000000000060448201526064016107c7565b6014811115610dc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e76616c696420636f6d6d697373696f6e000000000000000000000000000060448201526064016107c7565b335f90815260a06020526040812082905560975460ff16610de4575f610df7565b610dec612f80565b610df7906001615785565b604080518481526020810183905291925033917f6e500db30ce535d38852e318f333e9be41a3fec6c65d234ebb06203c896db9a5910160405180910390a25050565b60605f8267ffffffffffffffff811115610e5557610e556157f9565b604051908082528060200260200182016040528015610ea157816020015b60408051606080820183525f808352602083015291810191909152815260200190600190039081610e735790505b5090505f5b83811015611099576040518060600160405280609f5f888886818110610ece57610ece615ac5565b9050602002016020810190610ee391906152e8565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409091015f908120549091168352910190609f90888886818110610f2d57610f2d615ac5565b9050602002016020810190610f4291906152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f888886818110610f9957610f99615ac5565b9050602002016020810190610fae91906152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002018054610ff590615826565b80601f016020809104026020016040519081016040528092919081815260200182805461102190615826565b801561106c5780601f106110435761010080835404028352916020019161106c565b820191905f5260205f20905b81548152906001019060200180831161104f57829003601f168201915b505050505081525082828151811061108657611086615ac5565b6020908102919091010152600101610ea6565b509392505050565b6110a961472e565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a36020908152604080832033845290915290205461113f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7374616b696e6720616d6f756e74206973207a65726f0000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609e60205260408120546097549015919060ff16611178575f61118b565b611180612f80565b61118b906001615785565b6097549091505f9060ff1680156111a0575082155b6111aa57816111b7565b609a546111b79083615785565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff8781168083525f81815260a36020908152858220338084528183528784208054848901908152888a018b815283875260a486528a87208054600180820183559189528789208c5160039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909b16178a558251908a015551600290980197909755908452908252829055925191815260a190925292812080549495509193611286908490615af2565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260a2602052604090206112b990336147a8565b5073ffffffffffffffffffffffffffffffffffffffff85165f908152609e6020526040902054841580156112ef575060975460ff165b80156112fc5750609c5481105b156115e85773ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604081205461133290600190615af2565b90505b6001609c546113449190615af2565b8110156115e65760a15f609d838154811061136157611361615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120549060a190609d6113a3856001615785565b815481106113b3576113b3615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205411156115de575f609d82815481106113fe576113fe615ac5565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff169050609d61142e836001615785565b8154811061143e5761143e615ac5565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff909216918490811061147657611476615ac5565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905580609d6114d1846001615785565b815481106114e1576114e1615ac5565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055611539826001615785565b609e5f609d858154811061154f5761154f615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205561158b826002615785565b609e5f609d61159b866001615785565b815481106115ab576115ab615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b600101611335565b505b84158015611618575073ffffffffffffffffffffffffffffffffffffffff86165f90815260a16020526040902054155b15611635576001609c5f82825461162f9190615af2565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8681165f81815260a160205260408082205481517f7f683ee30000000000000000000000000000000000000000000000000000000081526004810194909452336024850152604484018990526064840152517f000000000000000000000000000000000000000000000000000000000000000090931692637f683ee392608480820193929182900301818387803b1580156116e3575f80fd5b505af11580156116f5573d5f803e3d5ffd5b505050506117003390565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f92039db29d8c0a1aa1433fe109c69488c8c5e51b23c9de7d303ad80c1fef778c84602001518787604051611775939291909283526020830191909152604082015260600190565b60405180910390a38415801561178d575060975460ff165b801561179b5750609b548111155b80156117fb5750609b5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e602052604090205411806117fb5750609c5473ffffffffffffffffffffffffffffffffffffffff87165f908152609e6020526040902054115b1561180857611808614587565b50505050506118176001606555565b50565b73ffffffffffffffffffffffffffffffffffffffff82165f908152609e602052604090205482906118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b65720000000000000000000000000000000000000000000060448201526064016107c7565b6118af61472e565b5f8211611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964207374616b6520616d6f756e7400000000000000000000000060448201526064016107c7565b61192233846147d0565b15611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f756e64656c65676174696f6e20756e636c61696d65640000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a360209081526040808320338452909152902054611a2e576119c73384614880565b15611a2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f72657761726420756e636c61696d65640000000000000000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260a1602052604081208054849290611a62908490615785565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a36020908152604080832033845290915281208054849290611aa6908490615785565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260a260205260409020611ad99033614942565b5073ffffffffffffffffffffffffffffffffffffffff83165f90815260a16020526040902054829003611b1e576001609c5f828254611b189190615785565b90915550505b73ffffffffffffffffffffffffffffffffffffffff83165f908152609e602052604090205460975460ff168015611b555750600181115b15611e35575f611b66600183615af2565b90505b8015611e335760a15f609d611b7f600185615af2565b81548110611b8f57611b8f615ac5565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8481548110611c0757611c07615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115611e21575f609d611c4c600184615af2565b81548110611c5c57611c5c615ac5565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921692509083908110611c9657611c96615ac5565b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16609d611cc4600185615af2565b81548110611cd457611cd4615ac5565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d8381548110611d2d57611d2d615ac5565b5f918252602082200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93909316929092179091558290609e90609d611d8c600185615af2565b81548110611d9c57611d9c615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055611dd8826001615785565b609e5f609d8581548110611dee57611dee615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055505b80611e2b81615b05565b915050611b69565b505b6097545f9060ff16611e47575f611e5a565b611e4f612f80565b611e5a906001615785565b73ffffffffffffffffffffffffffffffffffffffff86165f81815260a36020908152604080832033808552908352928190205481519081529182018990528181018590525193945090927fc4ad67bad2c1f682946a406d840f1b273f5cd5a53fcc1a03d078d92bfa2e07d09181900360600190a373ffffffffffffffffffffffffffffffffffffffff8581165f81815260a360209081526040808320338085528184528285205486865260a18552838620548287529290945282517fb809af0f000000000000000000000000000000000000000000000000000000008152600481019690965260248601526044850187905260648501839052608485015290881460a4840152517f00000000000000000000000000000000000000000000000000000000000000009093169263b809af0f9260c480820193929182900301818387803b158015611fa8575f80fd5b505af1158015611fba573d5f803e3d5ffd5b50505050611fcf611fc83390565b3086614963565b60975460ff168015611fe25750609b5482115b8015612014575060995473ffffffffffffffffffffffffffffffffffffffff86165f908152609e602052604090205411155b1561202157612021614587565b50506109a36001606555565b612035614506565b60975460ff16156120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f72657761726420616c726561647920737461727465640000000000000000000060448201526064016107c7565b42811180156120bb57506120b96201518082615b66565b155b80156120c957506098548114155b61212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016107c7565b609880549082905560408051828152602081018490527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a15050565b609d546060905f9067ffffffffffffffff811115612194576121946157f9565b6040519080825280602002602001820160405280156121e057816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816121b25790505b5090505f5b609d548110156123cb576040518060600160405280609f5f609d858154811061221057612210615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff90811684528382019490945260409092018120549092168352609d80549390910192609f9291908690811061226957612269615ac5565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101548152602001609f5f609d85815481106122e9576122e9615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020600201805461232790615826565b80601f016020809104026020016040519081016040528092919081815260200182805461235390615826565b801561239e5780601f106123755761010080835404028352916020019161239e565b820191905f5260205f20905b81548152906001019060200180831161238157829003601f168201915b50505050508152508282815181106123b8576123b8615ac5565b60209081029190910101526001016121e5565b50919050565b5f54610100900460ff16158080156123ef57505f54600160ff909116105b806124085750303b15801561240857505f5460ff166001145b612494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107c7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156124f0575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff871661256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e76616c6964206f776e65722061646472657373000000000000000000000060448201526064016107c7565b5f86116125fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73657175656e6365727353697a65206d7573742067726561746572207468616e60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016107c7565b5f8511612665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c696420756e64656c65676174654c6f636b45706f6368730000000060448201526064016107c7565b428411801561267e575061267c6201518085615b66565b155b6126e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f696e76616c6964207265776172642073746172742074696d650000000000000060448201526064016107c7565b8161274b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420696e697469616c207374616b65727300000000000000000060448201526064016107c7565b61275487614c6f565b61275c614ce5565b6099869055609a8590556098849055609b8290555f5b609b548110156128ff5783838281811061278e5761278e615ac5565b90506020028101906127a09190615b79565b609f5f8686858181106127b5576127b5615ac5565b90506020028101906127c79190615b79565b6127d59060208101906152e8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2061280482826158b5565b905050609d84848381811061281b5761281b615ac5565b905060200281019061282d9190615b79565b61283b9060208101906152e8565b8154600180820184555f93845260209093200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905561289c908290615785565b609e5f8686858181106128b1576128b1615ac5565b90506020028101906128c39190615b79565b6128d19060208101906152e8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2055600101612772565b50604080515f8152602081018890527f98b982a120d9be7d9c68d85a1aed8158d1d52e517175bfb3eb4280692f19b1ed910160405180910390a1604080515f8152602081018690527f91c38708087fb4ba51bd0e6a106cc1fbaf340479a2e81d18f2341e8c78f97555910160405180910390a180156129d4575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b609d81815481106129ec575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015612b2e57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015612af2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b169190615bb5565b73ffffffffffffffffffffffffffffffffffffffff16145b61075f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016107c7565b612bc2614506565b612bcb5f614c6f565b565b612bd5614506565b609854421015612c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f63616e2774207374617274206265666f7265207265776172642073746172742060448201527f74696d650000000000000000000000000000000000000000000000000000000060648201526084016107c7565b5f609c5411612cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6e6f6e652063616e64696461746500000000000000000000000000000000000060448201526064016107c7565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555b609d54811015612f10575f5b81811015612f075760a15f609d8381548110612d2a57612d2a615ac5565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460a15f609d8581548110612da257612da2615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020541115612eff575f609d8281548110612ded57612ded615ac5565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921692509084908110612e2757612e27615ac5565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff9092169184908110612e5f57612e5f615ac5565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080609d8481548110612eb857612eb8615ac5565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b600101612d0c565b50600101612d00565b505f5b609d54811015612f7757612f28816001615785565b609e5f609d8481548110612f3e57612f3e615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902055600101612f13565b50612bcb614587565b5f609854421015612fed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f726577617264206973206e6f742073746172746564207965740000000000000060448201526064016107c7565b6201518060985442612fff9190615af2565b6130099190615bd0565b905090565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a3602090815260408083203384529091528120541515610751565b609f6020525f908152604090208054600182015460028301805473ffffffffffffffffffffffffffffffffffffffff90931693919261308390615826565b80601f01602080910402602001604051908101604052809291908181526020018280546130af90615826565b80156130fa5780601f106130d1576101008083540402835291602001916130fa565b820191905f5260205f20905b8154815290600101906020018083116130dd57829003601f168201915b5050505050905083565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561322057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132089190615bb5565b73ffffffffffffffffffffffffffffffffffffffff16145b6132ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f7374616b696e673a206f6e6c79206f74686572207374616b696e6720636f6e7460448201527f7261637420616c6c6f776564000000000000000000000000000000000000000060648201526084016107c7565b8260a5548114613318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064016107c7565b613323846001615785565b60a5555f805b8381101561378157609b54609e5f87878581811061334957613349615ac5565b905060200201602081019061335e91906152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116133a257600191505b5f609e5f8787858181106133b8576133b8615ac5565b90506020020160208101906133cd91906152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156136eb575f6001609e5f88888681811061342557613425615ac5565b905060200201602081019061343a91906152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461347e9190615af2565b90505b609d5461349090600190615af2565b81101561359657609d6134a4826001615785565b815481106134b4576134b4615ac5565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff90921691839081106134ec576134ec615ac5565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d848154811061354957613549615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400181208054909190613589908490615af2565b9091555050600101613481565b50609d8054806135a8576135a8615be3565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e9086868481811061361757613617615ac5565b905060200201602081019061362c91906152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f87878581811061367e5761367e615ac5565b905060200201602081019061369391906152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156136eb576001609c5f8282546136e59190615af2565b90915550505b609f5f86868481811061370057613700615ac5565b905060200201602081019061371591906152e8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810182905590613777600283018261527d565b5050600101613329565b507f3511bf213f9290ba907e91e12a43e8471251e1879580ae5509292a3514c23f6184846040516137b3929190615c10565b60405180910390a180156137c9576137c9614587565b5050505050565b5f60605f841161383c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f696e76616c696420706167652073697a6500000000000000000000000000000060448201526064016107c7565b73ffffffffffffffffffffffffffffffffffffffff85165f90815260a260205260409020613869906144fd565b91508367ffffffffffffffff811115613884576138846157f9565b6040519080825280602002602001820160405280156138ad578160200160208202803683370190505b5090505f6138bb8486615c6a565b90505f60016138ca8682615785565b6138d49088615c6a565b6138de9190615af2565b90506138eb600185615af2565b811115613900576138fd600185615af2565b90505b815f5b8282116139a0576139448261391781615c81565b73ffffffffffffffffffffffffffffffffffffffff8c165f90815260a26020526040902090945090614d83565b858261394f81615c81565b93508151811061396157613961615ac5565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613903565b50505050935093915050565b6139b461472e565b335f90815260a46020526040812054815b81811015613d745760975460ff161580613a1557506139e2612f80565b335f90815260a460205260409020805483908110613a0257613a02615ac5565b905f5260205f2090600302016002015411155b15613d6257335f90815260a460205260409020805482908110613a3a57613a3a615ac5565b905f5260205f2090600302016001015483613a559190615785565b335f90815260a4602052604081208054929550909183908110613a7a57613a7a615ac5565b5f918252602082206003909102015473ffffffffffffffffffffffffffffffffffffffff16915060a481613aab3390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208381548110613af557613af5615ac5565b905f5260205f2090600302016002015490505f60a45f613b123390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208481548110613b5c57613b5c615ac5565b905f5260205f209060030201600101549050600185613b7b9190615af2565b841015613c7257335f90815260a460205260409020613b9b600187615af2565b81548110613bab57613bab615ac5565b905f5260205f20906003020160a45f613bc13390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208581548110613c0b57613c0b615ac5565b5f9182526020909120825460039092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091178155600180830154908201556002918201549101555b335f90815260a460205260409020805480613c8f57613c8f615be3565b5f8281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018181018390556002909101919091559155613d049086615af2565b6040805184815260208101849052919650339173ffffffffffffffffffffffffffffffffffffffff8616917f921046659ea3b3b3f8e8fefd2bece3121b2d929ead94c696a75beedee477fdb6910160405180910390a35050506139c5565b613d6d816001615785565b90506139c5565b505f8211613dde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6e6f204d6f72706820746f6b656e20746f20636c61696d00000000000000000060448201526064016107c7565b613de83383614d8e565b5050612bcb6001606555565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260a460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015613e99575f8481526020908190206040805160608101825260038602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018082015484860152600290910154918301919091529083529092019101613e38565b505050509050919050565b613eac614506565b73ffffffffffffffffffffffffffffffffffffffff8116613f4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107c7565b61181781614c6f565b613f6061472e565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663ac2ac640336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015f604051808303815f87803b158015614000575f80fd5b505af1158015614012573d5f803e3d5ffd5b50505050612bcb6001606555565b614028614506565b8260a5548114614094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c6964206e6f6e63650000000000000000000000000000000000000060448201526064016107c7565b61409f846001615785565b60a5555f805b8381101561378157609b54609e5f8787858181106140c5576140c5615ac5565b90506020020160208101906140da91906152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541161411e57600191505b5f609e5f87878581811061413457614134615ac5565b905060200201602081019061414991906152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115614467575f6001609e5f8888868181106141a1576141a1615ac5565b90506020020160208101906141b691906152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546141fa9190615af2565b90505b609d5461420c90600190615af2565b81101561431257609d614220826001615785565b8154811061423057614230615ac5565b5f91825260209091200154609d805473ffffffffffffffffffffffffffffffffffffffff909216918390811061426857614268615ac5565b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001609e5f609d84815481106142c5576142c5615ac5565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400181208054909190614305908490615af2565b90915550506001016141fd565b50609d80548061432457614324615be3565b5f8281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909101909155609e9086868481811061439357614393615ac5565b90506020020160208101906143a891906152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f60a15f8787858181106143fa576143fa615ac5565b905060200201602081019061440f91906152e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115614467576001609c5f8282546144619190615af2565b90915550505b609f5f86868481811061447c5761447c615ac5565b905060200201602081019061449191906152e8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f90812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018101829055906144f3600283018261527d565b50506001016140a5565b5f610751825490565b60335473ffffffffffffffffffffffffffffffffffffffff163314612bcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107c7565b60995460975460ff16156145ab57609954609c5410156145a65750609c545b6145bc565b609954609d5410156145bc5750609d545b5f8167ffffffffffffffff8111156145d6576145d66157f9565b6040519080825280602002602001820160405280156145ff578160200160208202803683370190505b5090505f5b8281101561468657609d818154811061461f5761461f615ac5565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682828151811061465957614659615ac5565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101614604565b506040517f9b8201a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690639b8201a4906146f9908490600401615cb8565b5f604051808303815f87803b158015614710575f80fd5b505af1158015614722573d5f803e3d5ffd5b50509151609b55505050565b60026065540361479a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107c7565b6002606555565b6001606555565b5f6147c98373ffffffffffffffffffffffffffffffffffffffff8416615092565b9392505050565b5f805b73ffffffffffffffffffffffffffffffffffffffff84165f90815260a460205260409020548110156148775773ffffffffffffffffffffffffffffffffffffffff8481165f90815260a4602052604090208054918516918390811061483a5761483a615ac5565b5f91825260209091206003909102015473ffffffffffffffffffffffffffffffffffffffff160361486f576001915050610751565b6001016147d3565b505f9392505050565b6040517fde6ac93300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015282811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063de6ac93390604401602060405180830381865afa158015614916573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061493a9190615cca565b159392505050565b5f6147c98373ffffffffffffffffffffffffffffffffffffffff8416615175565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156149f1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a159190615ce9565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528581166024830152604482018590529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303815f875af1158015614ab4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ad89190615cca565b614b3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f7472616e7366657246726f6d206661696c65640000000000000000000000000060448201526064016107c7565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614bf09190615ce9565b90505f83118015614c09575082614c078383615af2565b145b6137c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016107c7565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16614d7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107c7565b612bcb6151c1565b5f6147c98383615257565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614e1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614e409190615ce9565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015614ed7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614efb9190615cca565b614f61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7472616e73666572206661696c6564000000000000000000000000000000000060448201526064016107c7565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015614fef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906150139190615ce9565b90505f8311801561502c57508261502a8383615af2565b145b610acf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d6f72706820746f6b656e207472616e73666572206661696c6564000000000060448201526064016107c7565b5f818152600183016020526040812054801561516c575f6150b4600183615af2565b85549091505f906150c790600190615af2565b9050818114615126575f865f0182815481106150e5576150e5615ac5565b905f5260205f200154905080875f01848154811061510557615105615ac5565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061513757615137615be3565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610751565b5f915050610751565b5f8181526001830160205260408120546151ba57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610751565b505f610751565b5f54610100900460ff166147a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107c7565b5f825f01828154811061526c5761526c615ac5565b905f5260205f200154905092915050565b50805461528990615826565b5f825580601f10615298575050565b601f0160209004905f5260205f209081019061181791905b808211156152c3575f81556001016152b0565b5090565b73ffffffffffffffffffffffffffffffffffffffff81168114611817575f80fd5b5f602082840312156152f8575f80fd5b81356147c9816152c7565b5f8060408385031215615314575f80fd5b82359150602083013567ffffffffffffffff811115615331575f80fd5b830160608186031215615342575f80fd5b809150509250929050565b5f6020828403121561535d575f80fd5b5035919050565b5f8060408385031215615375575f80fd5b8235615380816152c7565b946020939093013593505050565b5f8083601f84011261539e575f80fd5b50813567ffffffffffffffff8111156153b5575f80fd5b6020830191508360208260051b85010111156153cf575f80fd5b9250929050565b5f80602083850312156153e7575f80fd5b823567ffffffffffffffff8111156153fd575f80fd5b6154098582860161538e565b90969095509350505050565b5f81518084525f5b818110156154395760208185018101518683018201520161541d565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101561551b578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff1684528781015188850152860151606087850181905261550781860183615415565b96890196945050509086019060010161549d565b509098975050505050505050565b5f805f805f8060a0878903121561553e575f80fd5b8635615549816152c7565b9550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115615579575f80fd5b61558589828a0161538e565b979a9699509497509295939492505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f6155cb6060830184615415565b95945050505050565b5f80604083850312156155e5575f80fd5b82356155f0816152c7565b91506020830135615342816152c7565b5f805f60408486031215615612575f80fd5b83359250602084013567ffffffffffffffff81111561562f575f80fd5b61563b8682870161538e565b9497909650939450505050565b5f805f6060848603121561565a575f80fd5b8335615665816152c7565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156156bf57815173ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161568d565b509495945050505050565b828152604060208201525f6156e2604083018461567a565b949350505050565b602080825282518282018190525f919060409081850190868401855b8281101561574b578151805173ffffffffffffffffffffffffffffffffffffffff16855286810151878601528501518585015260609093019290850190600101615706565b5091979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561075157610751615758565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126157cb575f80fd5b83018035915067ffffffffffffffff8211156157e5575f80fd5b6020019150368190038213156153cf575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061583a57607f821691505b6020821081036123cb577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156109a357805f5260205f20601f840160051c810160208510156158965750805b601f840160051c820191505b818110156137c9575f81556001016158a2565b81356158c0816152c7565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550600160208084013560018401556002830160408501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1863603018112615944575f80fd5b8501803567ffffffffffffffff81111561595c575f80fd5b803603848301131561596c575f80fd5b6159808161597a8554615826565b85615871565b5f601f8211600181146159d2575f831561599c57508382018601355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178555615a67565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015615a1e578685018901358255938801939089019088016159ff565b5084821015615a5b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c198885880101351681555b505060018360011b0185555b505050505050505050565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8181038181111561075157610751615758565b5f81615b1357615b13615758565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82615b7457615b74615b39565b500690565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112615bab575f80fd5b9190910192915050565b5f60208284031215615bc5575f80fd5b81516147c9816152c7565b5f82615bde57615bde615b39565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208082528181018390525f908460408401835b86811015615c5f578235615c37816152c7565b73ffffffffffffffffffffffffffffffffffffffff1682529183019190830190600101615c24565b509695505050505050565b808202811582820484141761075157610751615758565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615cb157615cb1615758565b5060010190565b602081525f6147c9602083018461567a565b5f60208284031215615cda575f80fd5b815180151581146147c9575f80fd5b5f60208284031215615cf9575f80fd5b505191905056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L2StakingStorageLayoutJSON), L2StakingStorageLayout); err != nil { diff --git a/bindings/bindings/rollup.go b/bindings/bindings/rollup.go index 755d06fc3..75ab0ee21 100644 --- a/bindings/bindings/rollup.go +++ b/bindings/bindings/rollup.go @@ -33,7 +33,8 @@ var ( type IRollupBatchDataInput struct { Version uint8 ParentBatchHeader []byte - BlockContexts []byte + LastBlockNumber uint64 + NumL1Messages uint16 PrevStateRoot [32]byte PostStateRoot [32]byte WithdrawalRoot [32]byte @@ -48,8 +49,8 @@ type IRollupBatchSignatureInput struct { // RollupMetaData contains all meta data concerning the Rollup contract. var RollupMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIncorrectBatchLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNoBlockInBatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blockContexts\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_prevStateRoot\",\"type\":\"bytes32\"}],\"name\":\"initialize2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60a060405234801562000010575f80fd5b506040516200493f3803806200493f83398101604081905262000033916200010f565b6001600160401b0381166080526200004a62000051565b506200013e565b5f54610100900460ff1615620000bd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200010d575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000120575f80fd5b81516001600160401b038116811462000137575f80fd5b9392505050565b6080516147e16200015e5f395f81816105ec0152613a7b01526147e15ff3fe608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109b1578063f2fde38b146109d0578063fb1e8b04146109ef575f80fd5b8063ddd8a3dc1461095e578063de8b30351461097d578063dff7827e1461099c575f80fd5b8063cd4edc69116100b7578063cd4edc6914610917578063ce5db8d61461092a578063d279c1911461093f575f80fd5b8063b35dac4e146108ba578063b3e0a509146108d9578063bedb86fb146108f8575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d1461085b578063b31a77d314610886578063b34844251461089b575f80fd5b8063a415d8dc146107f9578063a479265d14610827578063a4f209b01461083c575f80fd5b80638f1d37761161016c5780638f1d3776146106f9578063910129d4146107a957806397fc007c146107da575f80fd5b8063728cdbca146106a457806388b1ea09146106c35780638da5cb5b146106dc575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa146106465780636c578c1d14610671578063715018a614610690575f80fd5b80635ef7a94a1461057b5780635f77cf1d146105db5780636126729014610627575f80fd5b80634a8d544f1161022c5780634a8d544f1461053257806357e0af6c146105455780635c975abb14610564575f80fd5b80632b7ac3f3146104c75780633b70c18a146104fe5780633e001b661461051d575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b3660046140f4565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b50610396610391366004614126565b610a04565b005b3480156103a3575f80fd5b506103966103b2366004614184565b610ad6565b3480156103c2575f80fd5b5061033f6103d13660046140f4565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b506103966104083660046141cc565b610e2f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c3660046140f4565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c3660046140f4565b611326565b34801561047c575f80fd5b5061036961048b3660046140f4565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b63660046140f4565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104e6906001600160a01b031681565b6040516001600160a01b03909116815260200161034b565b348015610509575f80fd5b50609b546104e6906001600160a01b031681565b348015610528575f80fd5b5061036960aa5481565b61039661054036600461420b565b611354565b348015610550575f80fd5b5061039661055f3660046140f4565b611bd7565b34801561056f575f80fd5b5060655460ff1661033f565b348015610586575f80fd5b506105bb6105953660046140f4565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b3480156105e6575f80fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610632575f80fd5b506103966106413660046140f4565b611c82565b348015610651575f80fd5b506103696106603660046140f4565b60ab6020525f908152604090205481565b34801561067c575f80fd5b5061039661068b366004614126565b611e97565b34801561069b575f80fd5b50610396611f54565b3480156106af575f80fd5b506103966106be366004614278565b611f67565b3480156106ce575f80fd5b5060a65461033f9060ff1681565b3480156106e7575f80fd5b506033546001600160a01b03166104e6565b348015610704575f80fd5b506107656107133660046140f4565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b3480156107b4575f80fd5b5061033f6107c33660046140f4565b5f90815260a4602052604090206003015460ff1690565b3480156107e5575f80fd5b506103966107f4366004614126565b6122aa565b348015610804575f80fd5b5061033f610813366004614126565b609f6020525f908152604090205460ff1681565b348015610832575f80fd5b5061036960995481565b348015610847575f80fd5b506103966108563660046140f4565b61238d565b348015610866575f80fd5b50610369610875366004614126565b60a56020525f908152604090205481565b348015610891575f80fd5b5061036960a85481565b3480156108a6575f80fd5b506103966108b53660046142d3565b61243d565b3480156108c5575f80fd5b506103966108d4366004614126565b612682565b3480156108e4575f80fd5b506103966108f33660046141cc565b6126db565b348015610903575f80fd5b50610396610912366004614347565b612a2b565b610396610925366004614362565b612b86565b348015610935575f80fd5b5061036960985481565b34801561094a575f80fd5b50610396610959366004614126565b613152565b348015610969575f80fd5b506097546104e6906001600160a01b031681565b348015610988575f80fd5b5061033f6109973660046140f4565b613211565b3480156109a7575f80fd5b50610369609a5481565b3480156109bc575f80fd5b506103966109cb3660046140f4565b61325b565b3480156109db575f80fd5b506103966109ea366004614126565b6132fe565b3480156109fa575f80fd5b5061036960a95481565b610a0c61338b565b6001600160a01b0381165f908152609f602052604090205460ff1615610a795760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ade61338b565b5f8111610b2d5760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a70565b5f80610b3985856133e5565b915091505f610b4c836001015160c01c90565b5f81815260a160205260409020549091508214610bab5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b5f60a181610bb987856143c5565b81526020019081526020015f205414610c395760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a70565b609d548111610cb05760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b610cbb6001826143d8565b609e555b8315610e2757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610d0781613211565b15610d62575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d529084906143c5565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ddf575060a85481145b15610de9575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610cbf575b505050505050565b60a85415610e7f5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b610e87613400565b5f80610e9384846133e5565b915091505f610ea6836001015160c01c90565b5f81815260a160205260409020549091508214610f055760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b610f0e81611326565b610f5a5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b610f6381613211565b15610fb05760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003015460ff16156110115760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a70565b5f81815260a260205260409020600101544210156110715760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a70565b605983015160a05f6110846001856143d8565b81526020019081526020015f2054146110df5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f81815260a060205260409020541561113a5760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a70565b80609d546001011461118e5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b609d819055600160a35f6111a3866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111f26111e5846011015160c01c90565b600985015160c01c613453565b60a25f6112006001846143d8565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061123990846143d8565b81526020019081526020015f205f905560a45f60018361125991906143d8565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611302866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061134e57505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156113c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e491906143eb565b6114305760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a70565b60a854156114805760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b611488613400565b6114956020830183614406565b60ff16156114e55760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a70565b5f6114f36040840184614426565b915050806115435760405162461bcd60e51b815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610a70565b60608301356115945760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a70565b60808301356115e55760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a70565b5f806115fc6115f76020870187614426565b6133e5565b915091505f61160f836001015160c01c90565b90505f60a1816116208460016143c5565b81526020019081526020015f20541461167b5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a70565b609e5481146116cc5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b5f81815260a1602052604090205482146117285760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a70565b5f81815260ab60205260409020546060870135146117885760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f611797846011015160c01c90565b90505f80806117e96117ac60408c018c614426565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792508891506135109050565b600196909601959485019493840193925090505f80491561180b575f4961182d565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f96118588961185060208f018f614406565b60ff1661368d565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a01526118c7896118a860208e018e614426565b6040516118b6929190614487565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff16156119345760a7545f90815260a460205260409020600201546099544291611927916143c5565b61193191906143d8565b90505b6040518060800160405280428152602001826098544261195491906143c5565b61195e91906143c5565b81526020016119af8f80604001906119769190614426565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061369492505050565b81526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a479190614496565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8990556097546001600160a01b031692506374fe27b791508c3590611aaf90611aa9908f018f614426565b5f6136eb565b5f8e8060400190611ac09190614426565b6040518663ffffffff1660e01b8152600401611ae09594939291906144f4565b602060405180830381865afa158015611afb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1f91906143eb565b611b915760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611bdf61338b565b5f81118015611bf057506099548114155b611c3c5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a70565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff16158015611ca257505f5460ff8083169116105b611d145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611d4f5f5460ff1690565b60ff16600214611da15760405162461bcd60e51b815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610a70565b81611e145760405162461bcd60e51b815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610a70565b609e545f90815260ab6020526040902054611e3d57609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611c76565b611e9f61338b565b6001600160a01b0381165f908152609f602052604090205460ff16611f065760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a70565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610acb565b611f5c61338b565b611f655f61373f565b565b5f54610100900460ff1615808015611f8557505f54600160ff909116105b80611f9e5750303b158015611f9e57505f5460ff166001145b6120105760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f805460ff19166001179055801561204e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038616158061206b57506001600160a01b038516155b156120a2576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166120f85760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a70565b6121006137a8565b61210861382c565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a180156122a1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6122b261338b565b6001600160a01b038116158015906122d85750609c546001600160a01b03828116911614155b6123245760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a70565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b61239561338b565b5f811180156123a5575060648111155b80156123b3575060a9548114155b6123ff5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a70565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c76565b60a8541561248d5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612495613400565b5f806124a186866133e5565b915091505f6124b4836001015160c01c90565b5f81815260a1602052604090205490915082146125135760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b61251c81613211565b6125685760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff1916905560995460029091015442916125c1916143c5565b11612637575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152612632918391906138b0565b6122a1565b612642838686613a0c565b6122a181336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613bbf565b61268a61338b565b60aa80545f90915561269c8282613c8b565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c76565b6126e361338b565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561275a5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a70565b5f8061276684846133e5565b915091505f612779836001015160c01c90565b905080156127c95760405162461bcd60e51b815260206004820152601360248201527f696e76616c696420626174636820696e646578000000000000000000000000006044820152606401610a70565b5f6127d5846079015190565b9050806128245760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a70565b600984015160c01c156128795760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a70565b5f612885856019015190565b036128d25760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a70565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440146128fe856039015190565b1461294b5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a70565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b612a3361338b565b8015612b5457612a41613d36565b60a65460ff1615612b135760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612a959084906143c5565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b612b5c613d90565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612b36565b50565b335f908152609f602052604090205460ff16612be45760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a70565b60a85415612c345760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612c3c613400565b60a65460ff1615612c8f5760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a70565b8167ffffffffffffffff16609d5410612cea5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a160205260409020548114612d515760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b612d648267ffffffffffffffff16611326565b612db05760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612e2b5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a260205260409020600101544210612ebb5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a70565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2f9190614496565b341015612f7e5760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b9976346040516130d091815260200190565b60405180910390a35f609d5460016130e891906143c5565b90505b609e548111613140578267ffffffffffffffff16811461312e576099545f82815260a26020526040812060010180549091906131289084906143c5565b90915550505b8061313881614567565b9150506130eb565b505060a6805460ff1916600117905550565b335f90815260a56020526040812054908190036131b15760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a70565b335f90815260a560205260408120556131ca8282613c8b565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a8260405161320591815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b03161580159061134e5750505f90815260a46020526040902060030154610100900460ff161590565b61326361338b565b5f8111801561327457506098548114155b6132c05760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a70565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c76565b61330661338b565b6001600160a01b0381166133825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a70565b612b838161373f565b6033546001600160a01b03163314611f655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a70565b5f805f6133f28585613dc9565b812090969095509350505050565b60655460ff1615611f655760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a70565b805f0361345e575050565b8082035f5b8281101561350a5761010081840381111561347d57508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b1580156134e0575f80fd5b505af11580156134f2573d5f803e3d5ffd5b50505050610100830192505061010081019050613463565b50505050565b60405183515f9182916020870191908190849061352e908590613e32565b90506002840193505f5b818110156135b257603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613588603c8361459e565b61359290876143c5565b90505f6135a382603a015160f01c90565b97909701965050600101613538565b506020850282016040525b801561367b575f6135d285603a015160f01c90565b90506135e083828b8b613ec7565b92505f6135f1866038015160f01c90565b9050818110156136435760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610a70565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016135bd565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f6136af828651613e32565b90505f5b6136be6001836143d8565b8110156136d457603c93909301926001016136b3565b505f6136e1845160c01c90565b9695505050505050565b60605f808080806136fe888a018a6146a2565b955095509550955095505081871061371c5794506137389350505050565b838710613730578295505050505050613738565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166138245760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f65613f95565b5f54610100900460ff166138a85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f6561401d565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af1158015613934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139589190614496565b5f86815260a460205260409020600101549091506139779082906143c5565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a5909152812080549091906139b69084906143c5565b90915550506040516139c990849061473f565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613a595760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a70565b5f613a68846001015160c01c90565b90505f613a76856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613aa5876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a848613b67885160f81c90565b858888866040518663ffffffff1660e01b8152600401613b8b95949392919061476b565b5f6040518083038186803b158015613ba1575f80fd5b505afa158015613bb3573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613be3908461459e565b613bed919061479c565b9050613bf981836143d8565b60aa5f828254613c0991906143c5565b90915550506001600160a01b0384165f90815260a5602052604081208054839290613c359084906143c5565b9091555050604051613c4890849061473f565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613d32575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613cda576040519150601f19603f3d011682016040523d82523d5f602084013e613cdf565b606091505b5050905080613d305760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a70565b505b5050565b613d3e613400565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613d733390565b6040516001600160a01b03909116815260200160405180910390a1565b613d986140a2565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613d73565b5f8160f9811015613e1c5760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a70565b6040519150808483378082016040529250929050565b5f613e3e835160f01c90565b9050805f03613e79576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e84603c8261459e565b613e8f9060026143c5565b821461134e576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f03613ed6575083613f8d565b609b546001600160a01b03165f5b85811015613f87576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613f4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f6e9190614496565b8852506020909601956001948501949384019301613ee4565b50859150505b949350505050565b5f54610100900460ff166140115760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b6065805460ff19169055565b5f54610100900460ff166140995760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f653361373f565b60655460ff16611f655760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a70565b5f60208284031215614104575f80fd5b5035919050565b80356001600160a01b0381168114614121575f80fd5b919050565b5f60208284031215614136575f80fd5b6137388261410b565b5f8083601f84011261414f575f80fd5b50813567ffffffffffffffff811115614166575f80fd5b60208301915083602082850101111561417d575f80fd5b9250929050565b5f805f60408486031215614196575f80fd5b833567ffffffffffffffff8111156141ac575f80fd5b6141b88682870161413f565b909790965060209590950135949350505050565b5f80602083850312156141dd575f80fd5b823567ffffffffffffffff8111156141f3575f80fd5b6141ff8582860161413f565b90969095509350505050565b5f806040838503121561421c575f80fd5b823567ffffffffffffffff80821115614233575f80fd5b9084019060c08287031215614246575f80fd5b9092506020840135908082111561425b575f80fd5b5083016060818603121561426d575f80fd5b809150509250929050565b5f805f805f8060c0878903121561428d575f80fd5b6142968761410b565b95506142a46020880161410b565b94506142b26040880161410b565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f80604085870312156142e6575f80fd5b843567ffffffffffffffff808211156142fd575f80fd5b6143098883890161413f565b90965094506020870135915080821115614321575f80fd5b5061432e8782880161413f565b95989497509550505050565b8015158114612b83575f80fd5b5f60208284031215614357575f80fd5b81356137388161433a565b5f8060408385031215614373575f80fd5b823567ffffffffffffffff8116811461438a575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561134e5761134e614398565b8181038181111561134e5761134e614398565b5f602082840312156143fb575f80fd5b81516137388161433a565b5f60208284031215614416575f80fd5b813560ff81168114613738575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614459575f80fd5b83018035915067ffffffffffffffff821115614473575f80fd5b60200191503681900382131561417d575f80fd5b818382375f9101908152919050565b5f602082840312156144a6575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b8181101561453e5784516001600160a01b031683529383019391830191600101614519565b505087604086015284810360608601526145598187896144ad565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361459757614597614398565b5060010190565b808202811582820484141761134e5761134e614398565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145f1575f80fd5b8135602067ffffffffffffffff8083111561460e5761460e6145b5565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614651576146516145b5565b6040529384526020818701810194908101925087851115614670575f80fd5b6020870191505b84821015614697576146888261410b565b83529183019190830190614677565b979650505050505050565b5f805f805f8060c087890312156146b7575f80fd5b86359550602087013567ffffffffffffffff808211156146d5575f80fd5b6146e18a838b016145e2565b96506040890135955060608901359150808211156146fd575f80fd5b6147098a838b016145e2565b94506080890135935060a0890135915080821115614725575f80fd5b5061473289828a016145e2565b9150509295509295509295565b5f82515f5b8181101561475e5760208186018101518583015201614744565b505f920191825250919050565b858152846020820152608060408201525f61478a6080830185876144ad565b90508260608301529695505050505050565b5f826147cf577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"lastBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"numL1Messages\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_prevStateRoot\",\"type\":\"bytes32\"}],\"name\":\"initialize2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x60a060405234801562000010575f80fd5b50604051620049833803806200498383398101604081905262000033916200010f565b6001600160401b0381166080526200004a62000051565b506200013e565b5f54610100900460ff1615620000bd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200010d575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f6020828403121562000120575f80fd5b81516001600160401b038116811462000137575f80fd5b9392505050565b6080516148256200015e5f395f81816105ec0152613a2901526148255ff3fe608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd146109b1578063f2fde38b146109d0578063fb1e8b04146109ef575f80fd5b8063ddd8a3dc1461095e578063de8b30351461097d578063dff7827e1461099c575f80fd5b8063cd4edc69116100b7578063cd4edc6914610917578063ce5db8d61461092a578063d279c1911461093f575f80fd5b8063b35dac4e146108ba578063b3e0a509146108d9578063bedb86fb146108f8575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d1461085b578063b31a77d314610886578063b34844251461089b575f80fd5b8063a415d8dc146107f9578063a479265d14610827578063a4f209b01461083c575f80fd5b80638f1d37761161016c5780638f1d3776146106f9578063910129d4146107a957806397fc007c146107da575f80fd5b8063728cdbca146106a457806388b1ea09146106c35780638da5cb5b146106dc575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa146106465780636c578c1d14610671578063715018a614610690575f80fd5b80635ef7a94a1461057b5780635f77cf1d146105db5780636126729014610627575f80fd5b8063428868b51161022c578063428868b51461053257806357e0af6c146105455780635c975abb14610564575f80fd5b80632b7ac3f3146104c75780633b70c18a146104fe5780633e001b661461051d575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b3660046140c8565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b506103966103913660046140fa565b610a04565b005b3480156103a3575f80fd5b506103966103b2366004614158565b610ad6565b3480156103c2575f80fd5b5061033f6103d13660046140c8565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b506103966104083660046141a0565b610e2f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c3660046140c8565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c3660046140c8565b611326565b34801561047c575f80fd5b5061036961048b3660046140c8565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b63660046140c8565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104e6906001600160a01b031681565b6040516001600160a01b03909116815260200161034b565b348015610509575f80fd5b50609b546104e6906001600160a01b031681565b348015610528575f80fd5b5061036960aa5481565b6103966105403660046141df565b611354565b348015610550575f80fd5b5061039661055f3660046140c8565b611bbb565b34801561056f575f80fd5b5060655460ff1661033f565b348015610586575f80fd5b506105bb6105953660046140c8565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b3480156105e6575f80fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610632575f80fd5b506103966106413660046140c8565b611c66565b348015610651575f80fd5b506103696106603660046140c8565b60ab6020525f908152604090205481565b34801561067c575f80fd5b5061039661068b3660046140fa565b611e7b565b34801561069b575f80fd5b50610396611f38565b3480156106af575f80fd5b506103966106be36600461424c565b611f4b565b3480156106ce575f80fd5b5060a65461033f9060ff1681565b3480156106e7575f80fd5b506033546001600160a01b03166104e6565b348015610704575f80fd5b506107656107133660046140c8565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff831693680100000000000000009093046001600160a01b0316929060ff8082169161010090041686565b6040805167ffffffffffffffff90971687526001600160a01b03909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b3480156107b4575f80fd5b5061033f6107c33660046140c8565b5f90815260a4602052604090206003015460ff1690565b3480156107e5575f80fd5b506103966107f43660046140fa565b61228e565b348015610804575f80fd5b5061033f6108133660046140fa565b609f6020525f908152604090205460ff1681565b348015610832575f80fd5b5061036960995481565b348015610847575f80fd5b506103966108563660046140c8565b612371565b348015610866575f80fd5b506103696108753660046140fa565b60a56020525f908152604090205481565b348015610891575f80fd5b5061036960a85481565b3480156108a6575f80fd5b506103966108b53660046142a7565b612421565b3480156108c5575f80fd5b506103966108d43660046140fa565b612742565b3480156108e4575f80fd5b506103966108f33660046141a0565b61279b565b348015610903575f80fd5b5061039661091236600461431b565b612aeb565b61039661092536600461434d565b612c46565b348015610935575f80fd5b5061036960985481565b34801561094a575f80fd5b506103966109593660046140fa565b613212565b348015610969575f80fd5b506097546104e6906001600160a01b031681565b348015610988575f80fd5b5061033f6109973660046140c8565b6132d1565b3480156109a7575f80fd5b50610369609a5481565b3480156109bc575f80fd5b506103966109cb3660046140c8565b61331b565b3480156109db575f80fd5b506103966109ea3660046140fa565b6133be565b3480156109fa575f80fd5b5061036960a95481565b610a0c61344b565b6001600160a01b0381165f908152609f602052604090205460ff1615610a795760405162461bcd60e51b815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b6001600160a01b0381165f818152609f6020908152604091829020805460ff1916600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610ade61344b565b5f8111610b2d5760405162461bcd60e51b815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610a70565b5f80610b3985856134a5565b915091505f610b4c836001015160c01c90565b5f81815260a160205260409020549091508214610bab5760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b5f60a181610bb987856143a2565b81526020019081526020015f205414610c395760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610a70565b609d548111610cb05760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b610cbb6001826143b5565b609e555b8315610e2757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610d07816132d1565b15610d62575f81815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091610d529084906143a2565b909155505060a6805460ff191690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610ddf575060a85481145b15610de9575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610cbf575b505050505050565b60a85415610e7f5760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b610e8761353e565b5f80610e9384846134a5565b915091505f610ea6836001015160c01c90565b5f81815260a160205260409020549091508214610f055760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b610f0e81611326565b610f5a5760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b610f63816132d1565b15610fb05760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003015460ff16156110115760405162461bcd60e51b815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610a70565b5f81815260a260205260409020600101544210156110715760405162461bcd60e51b815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610a70565b605983015160a05f6110846001856143b5565b81526020019081526020015f2054146110df5760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f81815260a060205260409020541561113a5760405162461bcd60e51b815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610a70565b80609d546001011461118e5760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b609d819055600160a35f6111a3866099015190565b815260208101919091526040015f20805460ff191691151591909117905560798301515f82815260a060205260409020556111f26111e5846011015160c01c90565b600985015160c01c613591565b60a25f6112006001846143b5565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab919061123990846143b5565b81526020019081526020015f205f905560a45f60018361125991906143b5565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d611302866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061134e57505f82815260a1602052604090205415155b92915050565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156113c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e491906143c8565b6114305760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a70565b60a854156114805760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b61148861353e565b61149560208301836143e3565b60ff1615806114b357506114ac60208301836143e3565b60ff166001145b6114ff5760405162461bcd60e51b815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610a70565b60808201356115505760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610a70565b60a08201356115a15760405162461bcd60e51b815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610a70565b5f806115b86115b36020860186614403565b6134a5565b915091505f6115cb836001015160c01c90565b90505f60a1816115dc8460016143a2565b81526020019081526020015f2054146116375760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610a70565b609e5481146116885760405162461bcd60e51b815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610a70565b5f81815260a1602052604090205482146116e45760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610a70565b5f81815260ab60205260409020546080860135146117445760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610a70565b5f611753846011015160c01c90565b90505f61177f6117696060890160408a01614464565b61177960808a0160608b0161447d565b8461364e565b9050611791608088016060890161447d565b6001939093019261ffff1691909101905f8049156117b0575f496117d2565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b905060f96117e360208a018a6143e3565b60ff166001036117f257506101015b6040805182810190915296506118178761180f60208c018c6143e3565b60ff16613692565b60c085901b60018801526118458761183560808c0160608d0161447d565b61ffff1660c01b60099190910152565b60c084811b6011890152601988018490526039880183905260808a0135605989015260a08a0135607989015289013560998801526118a98761188a60208b018b614403565b60405161189892919061449e565b604051809103902060b99190910152565b60d9870186905260016118bf60208b018b6143e3565b60ff16106118f1576118f1876118db60608c0160408d01614464565b67ffffffffffffffff1660c01b60f99190910152565b8087205f86815260a1602090815260408083209390935560ab905290812060a08b0135905560a65460ff16156119505760a7545f90815260a460205260409020600201546099544291611943916143a2565b61194d91906143b5565b90505b6040518060800160405280428152602001826098544261197091906143a2565b61197a91906143a2565b815260200161198f60608d0160408e01614464565b67ffffffffffffffff1681526097546020909101906001600160a01b031663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3191906144ad565b90525f87815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e8790556097546001600160a01b031692506374fe27b79150893590611a9990611a93908c018c614403565b5f613699565b5f611aa760408d018d614403565b6040518663ffffffff1660e01b8152600401611ac795949392919061450b565b602060405180830381865afa158015611ae2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0691906143c8565b611b785760405162461bcd60e51b815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a70565b5f84815260a16020526040808220549051909186917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050565b611bc361344b565b5f81118015611bd457506099548114155b611c205760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610a70565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff16158015611c8657505f5460ff8083169116105b611cf85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611d335f5460ff1690565b60ff16600214611d855760405162461bcd60e51b815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610a70565b81611df85760405162461bcd60e51b815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610a70565b609e545f90815260ab6020526040902054611e2157609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611c5a565b611e8361344b565b6001600160a01b0381165f908152609f602052604090205460ff16611eea5760405162461bcd60e51b815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610a70565b6001600160a01b0381165f818152609f60209081526040808320805460ff19169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610acb565b611f4061344b565b611f495f6136ed565b565b5f54610100900460ff1615808015611f6957505f54600160ff909116105b80611f825750303b158015611f8257505f5460ff166001145b611ff45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a70565b5f805460ff191660011790558015612032575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6001600160a01b038616158061204f57506001600160a01b038516155b15612086576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0387166120dc5760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610a70565b6120e4613756565b6120ec6137da565b609780546001600160a01b03808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015612285575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b61229661344b565b6001600160a01b038116158015906122bc5750609c546001600160a01b03828116911614155b6123085760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610a70565b609c80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b61237961344b565b5f81118015612389575060648111155b8015612397575060a9548114155b6123e35760405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610a70565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101611c5a565b60a854156124715760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b61247961353e565b6097546001600160a01b03166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156124e5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061250991906143c8565b6125555760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610a70565b5f8061256186866134a5565b915091505f612574836001015160c01c90565b5f81815260a1602052604090205490915082146125d35760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b6125dc816132d1565b6126285760405162461bcd60e51b815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610a70565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a6805460ff191690556099546002909101544291612681916143a2565b116126f7575f81815260a4602090815260408083206003908101805460ff1916600117905560a2835292819020909201548251808401909352600783527f54696d656f757400000000000000000000000000000000000000000000000000918301919091526126f29183919061385e565b612285565b6127028386866139ba565b61228581336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250613b6d565b61274a61344b565b60aa80545f90915561275c8282613c39565b604080516001600160a01b0384168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101611c5a565b6127a361344b565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea541561281a5760405162461bcd60e51b815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610a70565b5f8061282684846134a5565b915091505f612839836001015160c01c90565b905080156128895760405162461bcd60e51b815260206004820152601360248201527f696e76616c696420626174636820696e646578000000000000000000000000006044820152606401610a70565b5f612895846079015190565b9050806128e45760405162461bcd60e51b815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610a70565b600984015160c01c156129395760405162461bcd60e51b815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610a70565b5f612945856019015190565b036129925760405162461bcd60e51b815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610a70565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440146129be856039015190565b14612a0b5760405162461bcd60e51b815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610a70565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b612af361344b565b8015612c1457612b01613ce4565b60a65460ff1615612bd35760a7545f90815260a460209081526040808320600181015490546801000000000000000090046001600160a01b0316845260a59092528220805491929091612b559084906143a2565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a6805460ff191690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b612c1c613d3e565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612bf6565b50565b335f908152609f602052604090205460ff16612ca45760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610a70565b60a85415612cf45760405162461bcd60e51b815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610a70565b612cfc61353e565b60a65460ff1615612d4f5760405162461bcd60e51b815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610a70565b8167ffffffffffffffff16609d5410612daa5760405162461bcd60e51b815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a160205260409020548114612e115760405162461bcd60e51b815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610a70565b612e248267ffffffffffffffff16611326565b612e705760405162461bcd60e51b815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a460205260409020546801000000000000000090046001600160a01b031615612eeb5760405162461bcd60e51b815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610a70565b67ffffffffffffffff82165f90815260a260205260409020600101544210612f7b5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610a70565b60975f9054906101000a90046001600160a01b03166001600160a01b0316630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fef91906144ad565b34101561303e5760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610a70565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a4909552969096209451855492516001600160a01b031668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909316929092179290921790556001600160a01b03168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b99763460405161319091815260200190565b60405180910390a35f609d5460016131a891906143a2565b90505b609e548111613200578267ffffffffffffffff1681146131ee576099545f82815260a26020526040812060010180549091906131e89084906143a2565b90915550505b806131f88161457e565b9150506131ab565b505060a6805460ff1916600117905550565b335f90815260a56020526040812054908190036132715760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610a70565b335f90815260a5602052604081205561328a8282613c39565b816001600160a01b03167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a826040516132c591815260200190565b60405180910390a25050565b5f81815260a460205260408120546801000000000000000090046001600160a01b03161580159061134e5750505f90815260a46020526040902060030154610100900460ff161590565b61332361344b565b5f8111801561333457506098548114155b6133805760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610a70565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101611c5a565b6133c661344b565b6001600160a01b0381166134425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a70565b612c43816136ed565b6033546001600160a01b03163314611f495760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a70565b5f805f6134b28585613d77565b90505f8160ff165f036134d3576134c98686613de7565b9094509050613530565b8160ff166001036134e8576134c98686613e50565b60405162461bcd60e51b815260206004820152601960248201527f556e737570706f727465642062617463682076657273696f6e000000000000006044820152606401610a70565b808420925050509250929050565b60655460ff1615611f495760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a70565b805f0361359c575050565b8082035f5b82811015613648576101008184038111156135bb57508083035b609b546040517f3c7f528300000000000000000000000000000000000000000000000000000000815260048101859052602481018390526001600160a01b0390911690633c7f5283906044015f604051808303815f87803b15801561361e575f80fd5b505af1158015613630573d5f803e3d5ffd5b505050506101008301925050610100810190506135a1565b50505050565b6040805160c085901b815260f084901b6008820152600a60208502820181019092525f9181016136838161ffff871686613ea3565b82900390912095945050505050565b8082535050565b60605f808080806136ac888a018a6146a2565b95509550955095509550508187106136ca5794506136e69350505050565b8387106136de5782955050505050506136e6565b509293505050505b9392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166137d25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f49613f69565b5f54610100900460ff166138565760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f49613ff1565b60a88390555f83815260a460205260408082205460975491517f45bc4d1000000000000000000000000000000000000000000000000000000000815260048101869052680100000000000000009091046001600160a01b03908116939216906345bc4d10906024016020604051808303815f875af11580156138e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061390691906144ad565b5f86815260a460205260409020600101549091506139259082906143a2565b5f86815260a460209081526040808320546801000000000000000090046001600160a01b0316835260a5909152812080549091906139649084906143a2565b909155505060405161397790849061473f565b604051908190038120906001600160a01b0384169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80613a075760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610a70565b5f613a16846001015160c01c90565b90505f613a24856039015190565b90505f7f0000000000000000000000000000000000000000000000000000000000000000613a53876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c549091506001600160a01b0316632c09a848613b15885160f81c90565b858888866040518663ffffffff1660e01b8152600401613b3995949392919061476b565b5f6040518083038186803b158015613b4f575f80fd5b505afa158015613b61573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a954909190606490613b91908461479c565b613b9b91906147b3565b9050613ba781836143b5565b60aa5f828254613bb791906143a2565b90915550506001600160a01b0384165f90815260a5602052604081208054839290613be39084906143a2565b9091555050604051613bf690849061473f565b604051908190038120906001600160a01b0386169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b8015613ce0575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613c88576040519150601f19603f3d011682016040523d82523d5f602084013e613c8d565b606091505b5050905080613cde5760405162461bcd60e51b815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610a70565b505b5050565b613cec61353e565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613d213390565b6040516001600160a01b03909116815260200160405180910390a1565b613d46614076565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613d21565b5f81613dc55760405162461bcd60e51b815260206004820152601260248201527f456d7074792062617463682068656164657200000000000000000000000000006044820152606401610a70565b82825f818110613dd757613dd76147eb565b919091013560f81c949350505050565b5f8160f9811015613e3a5760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610a70565b6040519150808483378082016040529250929050565b5f816101018114613e3a5760405162461bcd60e51b815260206004820181905260248201527f626174636820686561646572206c656e67746820697320696e636f72726563746044820152606401610a70565b5f825f03613eb25750826136e6565b609b546001600160a01b03165f5b84811015613f5f576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f906001600160a01b0384169063ae453cd590602401602060405180830381865afa158015613f26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f4a91906144ad565b87525060209095019460019384019301613ec0565b5093949350505050565b5f54610100900460ff16613fe55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b6065805460ff19169055565b5f54610100900460ff1661406d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a70565b611f49336136ed565b60655460ff16611f495760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a70565b5f602082840312156140d8575f80fd5b5035919050565b80356001600160a01b03811681146140f5575f80fd5b919050565b5f6020828403121561410a575f80fd5b6136e6826140df565b5f8083601f840112614123575f80fd5b50813567ffffffffffffffff81111561413a575f80fd5b602083019150836020828501011115614151575f80fd5b9250929050565b5f805f6040848603121561416a575f80fd5b833567ffffffffffffffff811115614180575f80fd5b61418c86828701614113565b909790965060209590950135949350505050565b5f80602083850312156141b1575f80fd5b823567ffffffffffffffff8111156141c7575f80fd5b6141d385828601614113565b90969095509350505050565b5f80604083850312156141f0575f80fd5b823567ffffffffffffffff80821115614207575f80fd5b9084019060e0828703121561421a575f80fd5b9092506020840135908082111561422f575f80fd5b50830160608186031215614241575f80fd5b809150509250929050565b5f805f805f8060c08789031215614261575f80fd5b61426a876140df565b9550614278602088016140df565b9450614286604088016140df565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f80604085870312156142ba575f80fd5b843567ffffffffffffffff808211156142d1575f80fd5b6142dd88838901614113565b909650945060208701359150808211156142f5575f80fd5b5061430287828801614113565b95989497509550505050565b8015158114612c43575f80fd5b5f6020828403121561432b575f80fd5b81356136e68161430e565b803567ffffffffffffffff811681146140f5575f80fd5b5f806040838503121561435e575f80fd5b61436783614336565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561134e5761134e614375565b8181038181111561134e5761134e614375565b5f602082840312156143d8575f80fd5b81516136e68161430e565b5f602082840312156143f3575f80fd5b813560ff811681146136e6575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614436575f80fd5b83018035915067ffffffffffffffff821115614450575f80fd5b602001915036819003821315614151575f80fd5b5f60208284031215614474575f80fd5b6136e682614336565b5f6020828403121561448d575f80fd5b813561ffff811681146136e6575f80fd5b818382375f9101908152919050565b5f602082840312156144bd575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b818110156145555784516001600160a01b031683529383019391830191600101614530565b505087604086015284810360608601526145708187896144c4565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145ae576145ae614375565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126145f1575f80fd5b8135602067ffffffffffffffff8083111561460e5761460e6145b5565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614651576146516145b5565b6040529384526020818701810194908101925087851115614670575f80fd5b6020870191505b8482101561469757614688826140df565b83529183019190830190614677565b979650505050505050565b5f805f805f8060c087890312156146b7575f80fd5b86359550602087013567ffffffffffffffff808211156146d5575f80fd5b6146e18a838b016145e2565b96506040890135955060608901359150808211156146fd575f80fd5b6147098a838b016145e2565b94506080890135935060a0890135915080821115614725575f80fd5b5061473289828a016145e2565b9150509295509295509295565b5f82515f5b8181101561475e5760208186018101518583015201614744565b505f920191825250919050565b858152846020820152608060408201525f61478a6080830185876144c4565b90508260608301529695505050505050565b808202811582820484141761134e5761134e614375565b5f826147e6577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea164736f6c6343000818000a", } // RollupABI is the input ABI used to generate the binding from. @@ -1260,23 +1261,23 @@ func (_Rollup *RollupTransactorSession) ClaimReward(receiver common.Address) (*t return _Rollup.Contract.ClaimReward(&_Rollup.TransactOpts, receiver) } -// CommitBatch is a paid mutator transaction binding the contract method 0x4a8d544f. +// CommitBatch is a paid mutator transaction binding the contract method 0x428868b5. // -// Solidity: function commitBatch((uint8,bytes,bytes,bytes32,bytes32,bytes32) batchDataInput, (uint256,bytes,bytes) batchSignatureInput) payable returns() +// Solidity: function commitBatch((uint8,bytes,uint64,uint16,bytes32,bytes32,bytes32) batchDataInput, (uint256,bytes,bytes) batchSignatureInput) payable returns() func (_Rollup *RollupTransactor) CommitBatch(opts *bind.TransactOpts, batchDataInput IRollupBatchDataInput, batchSignatureInput IRollupBatchSignatureInput) (*types.Transaction, error) { return _Rollup.contract.Transact(opts, "commitBatch", batchDataInput, batchSignatureInput) } -// CommitBatch is a paid mutator transaction binding the contract method 0x4a8d544f. +// CommitBatch is a paid mutator transaction binding the contract method 0x428868b5. // -// Solidity: function commitBatch((uint8,bytes,bytes,bytes32,bytes32,bytes32) batchDataInput, (uint256,bytes,bytes) batchSignatureInput) payable returns() +// Solidity: function commitBatch((uint8,bytes,uint64,uint16,bytes32,bytes32,bytes32) batchDataInput, (uint256,bytes,bytes) batchSignatureInput) payable returns() func (_Rollup *RollupSession) CommitBatch(batchDataInput IRollupBatchDataInput, batchSignatureInput IRollupBatchSignatureInput) (*types.Transaction, error) { return _Rollup.Contract.CommitBatch(&_Rollup.TransactOpts, batchDataInput, batchSignatureInput) } -// CommitBatch is a paid mutator transaction binding the contract method 0x4a8d544f. +// CommitBatch is a paid mutator transaction binding the contract method 0x428868b5. // -// Solidity: function commitBatch((uint8,bytes,bytes,bytes32,bytes32,bytes32) batchDataInput, (uint256,bytes,bytes) batchSignatureInput) payable returns() +// Solidity: function commitBatch((uint8,bytes,uint64,uint16,bytes32,bytes32,bytes32) batchDataInput, (uint256,bytes,bytes) batchSignatureInput) payable returns() func (_Rollup *RollupTransactorSession) CommitBatch(batchDataInput IRollupBatchDataInput, batchSignatureInput IRollupBatchSignatureInput) (*types.Transaction, error) { return _Rollup.Contract.CommitBatch(&_Rollup.TransactOpts, batchDataInput, batchSignatureInput) } diff --git a/bindings/bindings/rollup_more.go b/bindings/bindings/rollup_more.go index 3581703c1..126e8accf 100644 --- a/bindings/bindings/rollup_more.go +++ b/bindings/bindings/rollup_more.go @@ -13,7 +13,7 @@ const RollupStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"co var RollupStorageLayout = new(solc.StorageLayout) -var RollupDeployedBin = "0x608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610a0c578063f2fde38b14610a2b578063fb1e8b0414610a4a575f80fd5b8063ddd8a3dc146109ac578063de8b3035146109d8578063dff7827e146109f7575f80fd5b8063cd4edc69116100b7578063cd4edc6914610965578063ce5db8d614610978578063d279c1911461098d575f80fd5b8063b35dac4e14610908578063b3e0a50914610927578063bedb86fb14610946575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d146108a9578063b31a77d3146108d4578063b3484425146108e9575f80fd5b8063a415d8dc14610847578063a479265d14610875578063a4f209b01461088a575f80fd5b80638f1d37761161016c5780638f1d37761461072d578063910129d4146107f757806397fc007c14610828575f80fd5b8063728cdbca146106cb57806388b1ea09146106ea5780638da5cb5b14610703575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa1461066d5780636c578c1d14610698578063715018a6146106b7575f80fd5b80635ef7a94a146105a25780635f77cf1d14610602578063612672901461064e575f80fd5b80634a8d544f1161022c5780634a8d544f1461055957806357e0af6c1461056c5780635c975abb1461058b575f80fd5b80632b7ac3f3146104c75780633b70c18a146105185780633e001b6614610544575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b366004614b80565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b50610396610391366004614bbf565b610a5f565b005b3480156103a3575f80fd5b506103966103b2366004614c1d565b610b83565b3480156103c2575f80fd5b5061033f6103d1366004614b80565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b50610396610408366004614c65565b610f6f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c366004614b80565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c366004614b80565b61156e565b34801561047c575f80fd5b5061036961048b366004614b80565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b6366004614b80565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161034b565b348015610523575f80fd5b50609b546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b34801561054f575f80fd5b5061036960aa5481565b610396610567366004614ca4565b61159c565b348015610577575f80fd5b50610396610586366004614b80565b611f7e565b348015610596575f80fd5b5060655460ff1661033f565b3480156105ad575f80fd5b506105e26105bc366004614b80565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b34801561060d575f80fd5b506106357f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610659575f80fd5b50610396610668366004614b80565b612043565b348015610678575f80fd5b50610369610687366004614b80565b60ab6020525f908152604090205481565b3480156106a3575f80fd5b506103966106b2366004614bbf565b6122a6565b3480156106c2575f80fd5b506103966123b5565b3480156106d6575f80fd5b506103966106e5366004614d11565b6123c8565b3480156106f5575f80fd5b5060a65461033f9060ff1681565b34801561070e575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166104f3565b348015610738575f80fd5b506107a6610747366004614b80565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff8316936801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16929060ff8082169161010090041686565b6040805167ffffffffffffffff909716875273ffffffffffffffffffffffffffffffffffffffff909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b348015610802575f80fd5b5061033f610811366004614b80565b5f90815260a4602052604090206003015460ff1690565b348015610833575f80fd5b50610396610842366004614bbf565b612791565b348015610852575f80fd5b5061033f610861366004614bbf565b609f6020525f908152604090205460ff1681565b348015610880575f80fd5b5061036960995481565b348015610895575f80fd5b506103966108a4366004614b80565b6128b5565b3480156108b4575f80fd5b506103696108c3366004614bbf565b60a56020525f908152604090205481565b3480156108df575f80fd5b5061036960a85481565b3480156108f4575f80fd5b50610396610903366004614d6c565b61297f565b348015610913575f80fd5b50610396610922366004614bbf565b612c4e565b348015610932575f80fd5b50610396610941366004614c65565b612cb4565b348015610951575f80fd5b50610396610960366004614de0565b6130a0565b610396610973366004614dfb565b613233565b348015610983575f80fd5b5061036960985481565b348015610998575f80fd5b506103966109a7366004614bbf565b613948565b3480156109b7575f80fd5b506097546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109e3575f80fd5b5061033f6109f2366004614b80565b613a2e565b348015610a02575f80fd5b50610369609a5481565b348015610a17575f80fd5b50610396610a26366004614b80565b613a85565b348015610a36575f80fd5b50610396610a45366004614bbf565b613b42565b348015610a55575f80fd5b5061036960a95481565b610a67613bf6565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1615610afb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610b8b613bf6565b5f8111610bf4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610af2565b5f80610c008585613c77565b915091505f610c13836001015160c01c90565b5f81815260a160205260409020549091508214610c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b5f60a181610c9a8785614e5e565b81526020019081526020015f205414610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610af2565b609d548111610dc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610af2565b610dd0600182614e71565b609e555b8315610f6757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610e1c81613a2e565b15610ea2575f81815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091610e74908490614e5e565b909155505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610f1f575060a85481145b15610f29575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610dd4575b505050505050565b60a85415610fd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b610fe1613c92565b5f80610fed8484613c77565b915091505f611000836001015160c01c90565b5f81815260a160205260409020549091508214611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b6110828161156e565b6110e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610af2565b6110f181613a2e565b15611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610af2565b5f81815260a4602052604090206003015460ff16156111d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610af2565b5f81815260a2602052604090206001015442101561124d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610af2565b605983015160a05f611260600185614e71565b81526020019081526020015f2054146112d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610af2565b5f81815260a060205260409020541561134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610af2565b80609d54600101146113b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610af2565b609d819055600160a35f6113cd866099015190565b815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905560798301515f82815260a0602052604090205561143a61142d846011015160c01c90565b600985015160c01c613cff565b60a25f611448600184614e71565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906114819084614e71565b81526020019081526020015f205f905560a45f6001836114a19190614e71565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d61154a866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061159657505f82815260a1602052604090205415155b92915050565b60975473ffffffffffffffffffffffffffffffffffffffff166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116469190614e84565b6116ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610af2565b60a85415611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b61171e613c92565b61172b6020830183614e9f565b60ff1615611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610af2565b5f6117a36040840184614ebf565b9150508061180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f626174636820697320656d7074790000000000000000000000000000000000006044820152606401610af2565b6060830135611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610af2565b60808301356118e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610af2565b5f806118fa6118f56020870187614ebf565b613c77565b915091505f61190d836001015160c01c90565b90505f60a18161191e846001614e5e565b81526020019081526020015f205414611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610af2565b609e5481146119fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610af2565b5f81815260a160205260409020548214611a74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610af2565b5f81815260ab6020526040902054606087013514611aee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610af2565b5f611afd846011015160c01c90565b90505f8080611b4f611b1260408c018c614ebf565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250889150613dc99050565b600196909601959485019493840193925090505f804915611b71575f49611b93565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b60408051611f2081019091529850905060f9611bbe89611bb660208f018f614e9f565b60ff16613f60565b60c087811b60018b015285811b60098b015286901b60118a01526019890183905260608c013560598a015260808c013560798a015260a08c013560998a0152611c2d89611c0e60208e018e614ebf565b604051611c1c929190614f20565b604051809103902060b99190910152565b60d98901889052603989018290528089205f88815260a1602090815260408083209390935560ab905290812060808e0135905560a65460ff1615611c9a5760a7545f90815260a460205260409020600201546099544291611c8d91614e5e565b611c979190614e71565b90505b60405180608001604052804281526020018260985442611cba9190614e5e565b611cc49190614e5e565b8152602001611d158f8060400190611cdc9190614ebf565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613f6792505050565b815260975460209091019073ffffffffffffffffffffffffffffffffffffffff1663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015611da3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dc79190614f2f565b90525f89815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e89905560975473ffffffffffffffffffffffffffffffffffffffff1692506374fe27b791508c3590611e3c90611e36908f018f614ebf565b5f613fbe565b5f8e8060400190611e4d9190614ebf565b6040518663ffffffff1660e01b8152600401611e6d959493929190614f8d565b602060405180830381865afa158015611e88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eac9190614e84565b611f38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610af2565b5f86815260a16020526040808220549051909188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050505050565b611f86613bf6565b5f81118015611f9757506099548114155b611ffd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610af2565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff1615801561206357505f5460ff8083169116105b6120ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610af2565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff83161761010017905561212a5f5460ff1690565b60ff16600214612196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610af2565b81612223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610af2565b609e545f90815260ab602052604090205461224c57609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001612037565b6122ae613bf6565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1661233c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610af2565b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610b78565b6123bd613bf6565b6123c65f614012565b565b5f54610100900460ff16158080156123e657505f54600160ff909116105b806123ff5750303b1580156123ff57505f5460ff166001145b61248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610af2565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156124e7575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8616158061251e575073ffffffffffffffffffffffffffffffffffffffff8516155b15612555576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166125d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610af2565b6125da614088565b6125e2614126565b6097805473ffffffffffffffffffffffffffffffffffffffff808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015612788575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b612799613bf6565b73ffffffffffffffffffffffffffffffffffffffff8116158015906127d95750609c5473ffffffffffffffffffffffffffffffffffffffff828116911614155b61283f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610af2565b609c805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b6128bd613bf6565b5f811180156128cd575060648111155b80156128db575060a9548114155b612941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610af2565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101612037565b60a854156129e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b6129f1613c92565b5f806129fd8686613c77565b915091505f612a10836001015160c01c90565b5f81815260a160205260409020549091508214612a89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b612a9281613a2e565b612af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610af2565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556099546002909101544291612b6f91614e5e565b11612c03575f81815260a460209081526040808320600390810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152612bfe918391906141c4565b612788565b612c0e838686614347565b61278881336040518060400160405280600d81526020017f50726f6f66207375636365737300000000000000000000000000000000000000815250614521565b612c56613bf6565b60aa80545f909155612c688282614607565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101612037565b612cbc613bf6565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415612d4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610af2565b5f80612d598484613c77565b915091505f612d6c836001015160c01c90565b90508015612dd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420626174636820696e646578000000000000000000000000006044820152606401610af2565b5f612de2846079015190565b905080612e4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610af2565b600984015160c01c15612eba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610af2565b5f612ec6856019015190565b03612f2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610af2565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014612f59856039015190565b14612fc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610af2565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b6130a8613bf6565b8015613201576130b66146d9565b60a65460ff16156131b35760a7545f90815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091613117908490614e5e565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a150565b61320961475e565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336131d6565b50565b335f908152609f602052604090205460ff166132ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610af2565b60a85415613315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b61331d613c92565b60a65460ff161561338a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610af2565b8167ffffffffffffffff16609d54106133ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a160205260409020548114613480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b6134938267ffffffffffffffff1661156e565b6134f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a4602052604090205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff161561359b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a260205260409020600101544210613645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610af2565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136d39190614f2f565b34101561373c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610af2565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a49095529690962094518554925173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009093169290921792909217905573ffffffffffffffffffffffffffffffffffffffff168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b9976346040516138a891815260200190565b60405180910390a35f609d5460016138c09190614e5e565b90505b609e548111613918578267ffffffffffffffff168114613906576099545f82815260a2602052604081206001018054909190613900908490614e5e565b90915550505b806139108161500d565b9150506138c3565b505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b335f90815260a56020526040812054908190036139c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610af2565b335f90815260a560205260408120556139da8282614607565b8173ffffffffffffffffffffffffffffffffffffffff167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a82604051613a2291815260200190565b60405180910390a25050565b5f81815260a4602052604081205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16158015906115965750505f90815260a46020526040902060030154610100900460ff161590565b613a8d613bf6565b5f81118015613a9e57506098548114155b613b04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610af2565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101612037565b613b4a613bf6565b73ffffffffffffffffffffffffffffffffffffffff8116613bed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610af2565b61323081614012565b60335473ffffffffffffffffffffffffffffffffffffffff1633146123c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610af2565b5f805f613c8485856147b5565b812090969095509350505050565b60655460ff16156123c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610af2565b805f03613d0a575050565b8082035f5b82811015613dc357610100818403811115613d2957508083035b609b546040517f3c7f5283000000000000000000000000000000000000000000000000000000008152600481018590526024810183905273ffffffffffffffffffffffffffffffffffffffff90911690633c7f5283906044015f604051808303815f87803b158015613d99575f80fd5b505af1158015613dab573d5f803e3d5ffd5b50505050610100830192505061010081019050613d0f565b50505050565b60405183515f91829160208701919081908490613de7908590614838565b90506002840193505f5b81811015613e6b57603c81028501805184526020908101517fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001690840152603a830192505f613e41603c83615044565b613e4b9087614e5e565b90505f613e5c82603a015160f01c90565b97909701965050600101613df1565b506020850282016040525b8015613f4e575f613e8b85603a015160f01c90565b9050613e9983828b8b6148cd565b92505f613eaa866038015160f01c90565b905081811015613f16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610af2565b50978801979690960195603c93909301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613e76565b50819003902096919550909350505050565b8082535050565b5f805f6020840190506002810191505f613f82828651614838565b90505f5b613f91600183614e71565b811015613fa757603c9390930192600101613f86565b505f613fb4845160c01c90565b9695505050505050565b60605f80808080613fd1888a018a615148565b9550955095509550955050818710613fef57945061400b9350505050565b83871061400357829550505050505061400b565b509293505050505b9392505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff1661411e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123c66149b5565b5f54610100900460ff166141bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123c6614a75565b60a88390555f83815260a460205260408082205460975491517f45bc4d10000000000000000000000000000000000000000000000000000000008152600481018690526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff908116939216906345bc4d10906024016020604051808303815f875af1158015614255573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142799190614f2f565b5f86815260a46020526040902060010154909150614298908290614e5e565b5f86815260a4602090815260408083205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16835260a5909152812080549091906142e4908490614e5e565b90915550506040516142f79084906151e5565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff84169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b806143ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610af2565b5f6143bd846001015160c01c90565b90505f6143cb856039015190565b90505f7f00000000000000000000000000000000000000000000000000000000000000006143fa876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c5490915073ffffffffffffffffffffffffffffffffffffffff16632c09a8486144c9885160f81c90565b858888866040518663ffffffff1660e01b81526004016144ed959493929190615211565b5f6040518083038186803b158015614503575f80fd5b505afa158015614515573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a9549091906064906145459084615044565b61454f9190615242565b905061455b8183614e71565b60aa5f82825461456b9190614e5e565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f90815260a56020526040812080548392906145a4908490614e5e565b90915550506040516145b79084906151e5565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff86169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80156146d5575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114614663576040519150601f19603f3d011682016040523d82523d5f602084013e614668565b606091505b50509050806146d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610af2565b505b5050565b6146e1613c92565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586147343390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b614766614b14565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33614734565b5f8160f9811015614822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610af2565b6040519150808483378082016040529250929050565b5f614844835160f01c90565b9050805f0361487f576040517f5168407700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61488a603c82615044565b614895906002614e5e565b8214611596576040517f4a969e2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835f036148dc5750836149ad565b609b5473ffffffffffffffffffffffffffffffffffffffff165f5b858110156149a7576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f9073ffffffffffffffffffffffffffffffffffffffff84169063ae453cd590602401602060405180830381865afa15801561496a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061498e9190614f2f565b88525060209096019560019485019493840193016148f7565b50859150505b949350505050565b5f54610100900460ff16614a4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff16614b0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123c633614012565b60655460ff166123c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610af2565b5f60208284031215614b90575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114614bba575f80fd5b919050565b5f60208284031215614bcf575f80fd5b61400b82614b97565b5f8083601f840112614be8575f80fd5b50813567ffffffffffffffff811115614bff575f80fd5b602083019150836020828501011115614c16575f80fd5b9250929050565b5f805f60408486031215614c2f575f80fd5b833567ffffffffffffffff811115614c45575f80fd5b614c5186828701614bd8565b909790965060209590950135949350505050565b5f8060208385031215614c76575f80fd5b823567ffffffffffffffff811115614c8c575f80fd5b614c9885828601614bd8565b90969095509350505050565b5f8060408385031215614cb5575f80fd5b823567ffffffffffffffff80821115614ccc575f80fd5b9084019060c08287031215614cdf575f80fd5b90925060208401359080821115614cf4575f80fd5b50830160608186031215614d06575f80fd5b809150509250929050565b5f805f805f8060c08789031215614d26575f80fd5b614d2f87614b97565b9550614d3d60208801614b97565b9450614d4b60408801614b97565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614d7f575f80fd5b843567ffffffffffffffff80821115614d96575f80fd5b614da288838901614bd8565b90965094506020870135915080821115614dba575f80fd5b50614dc787828801614bd8565b95989497509550505050565b8015158114613230575f80fd5b5f60208284031215614df0575f80fd5b813561400b81614dd3565b5f8060408385031215614e0c575f80fd5b823567ffffffffffffffff81168114614e23575f80fd5b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561159657611596614e31565b8181038181111561159657611596614e31565b5f60208284031215614e94575f80fd5b815161400b81614dd3565b5f60208284031215614eaf575f80fd5b813560ff8116811461400b575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614ef2575f80fd5b83018035915067ffffffffffffffff821115614f0c575f80fd5b602001915036819003821315614c16575f80fd5b818382375f9101908152919050565b5f60208284031215614f3f575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b81811015614fe457845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101614fb2565b50508760408601528481036060860152614fff818789614f46565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361503d5761503d614e31565b5060010190565b808202811582820484141761159657611596614e31565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112615097575f80fd5b8135602067ffffffffffffffff808311156150b4576150b461505b565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156150f7576150f761505b565b6040529384526020818701810194908101925087851115615116575f80fd5b6020870191505b8482101561513d5761512e82614b97565b8352918301919083019061511d565b979650505050505050565b5f805f805f8060c0878903121561515d575f80fd5b86359550602087013567ffffffffffffffff8082111561517b575f80fd5b6151878a838b01615088565b96506040890135955060608901359150808211156151a3575f80fd5b6151af8a838b01615088565b94506080890135935060a08901359150808211156151cb575f80fd5b506151d889828a01615088565b9150509295509295509295565b5f82515f5b8181101561520457602081860181015185830152016151ea565b505f920191825250919050565b858152846020820152608060408201525f615230608083018587614f46565b90508260608301529695505050505050565b5f82615275577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000818000a" +var RollupDeployedBin = "0x608060405260043610610306575f3560e01c8063728cdbca11610191578063b35dac4e116100dc578063ddd8a3dc11610087578063e3fff1dd11610062578063e3fff1dd14610a0c578063f2fde38b14610a2b578063fb1e8b0414610a4a575f80fd5b8063ddd8a3dc146109ac578063de8b3035146109d8578063dff7827e146109f7575f80fd5b8063cd4edc69116100b7578063cd4edc6914610965578063ce5db8d614610978578063d279c1911461098d575f80fd5b8063b35dac4e14610908578063b3e0a50914610927578063bedb86fb14610946575f80fd5b8063a415d8dc1161013c578063abc8d68d11610117578063abc8d68d146108a9578063b31a77d3146108d4578063b3484425146108e9575f80fd5b8063a415d8dc14610847578063a479265d14610875578063a4f209b01461088a575f80fd5b80638f1d37761161016c5780638f1d37761461072d578063910129d4146107f757806397fc007c14610828575f80fd5b8063728cdbca146106cb57806388b1ea09146106ea5780638da5cb5b14610703575f80fd5b80632b7ac3f3116102515780635ef7a94a116101fc57806368589dfa116101d757806368589dfa1461066d5780636c578c1d14610698578063715018a6146106b7575f80fd5b80635ef7a94a146105a25780635f77cf1d14610602578063612672901461064e575f80fd5b8063428868b51161022c578063428868b51461055957806357e0af6c1461056c5780635c975abb1461058b575f80fd5b80632b7ac3f3146104c75780633b70c18a146105185780633e001b6614610544575f80fd5b806313361101116102b157806321e2f9e01161028c57806321e2f9e0146104525780632362f03e146104715780632571098d1461049c575f80fd5b806313361101146103ee57806318463fb01461040d57806318af3b2b14610422575f80fd5b806310d44583116102e157806310d4458314610398578063116a1f42146103b7578063121dcd50146103d9575f80fd5b806304d7721514610311578063059def61146103545780630ceb678014610377575f80fd5b3661030d57005b5f80fd5b34801561031c575f80fd5b5061033f61032b366004614ba2565b60a36020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035f575f80fd5b50610369609d5481565b60405190815260200161034b565b348015610382575f80fd5b50610396610391366004614be1565b610a5f565b005b3480156103a3575f80fd5b506103966103b2366004614c3f565b610b83565b3480156103c2575f80fd5b5061033f6103d1366004614ba2565b609d54101590565b3480156103e4575f80fd5b50610369609e5481565b3480156103f9575f80fd5b50610396610408366004614c87565b610f6f565b348015610418575f80fd5b5061036960a75481565b34801561042d575f80fd5b5061033f61043c366004614ba2565b5f90815260a26020526040902060010154421090565b34801561045d575f80fd5b5061033f61046c366004614ba2565b61156e565b34801561047c575f80fd5b5061036961048b366004614ba2565b60a16020525f908152604090205481565b3480156104a7575f80fd5b506103696104b6366004614ba2565b60a06020525f908152604090205481565b3480156104d2575f80fd5b50609c546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161034b565b348015610523575f80fd5b50609b546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b34801561054f575f80fd5b5061036960aa5481565b610396610567366004614cc6565b61159c565b348015610577575f80fd5b50610396610586366004614ba2565b611f48565b348015610596575f80fd5b5060655460ff1661033f565b3480156105ad575f80fd5b506105e26105bc366004614ba2565b60a26020525f908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b34801561060d575f80fd5b506106357f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200161034b565b348015610659575f80fd5b50610396610668366004614ba2565b61200d565b348015610678575f80fd5b50610369610687366004614ba2565b60ab6020525f908152604090205481565b3480156106a3575f80fd5b506103966106b2366004614be1565b612270565b3480156106c2575f80fd5b5061039661237f565b3480156106d6575f80fd5b506103966106e5366004614d33565b612392565b3480156106f5575f80fd5b5060a65461033f9060ff1681565b34801561070e575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166104f3565b348015610738575f80fd5b506107a6610747366004614ba2565b60a46020525f9081526040902080546001820154600283015460039093015467ffffffffffffffff8316936801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16929060ff8082169161010090041686565b6040805167ffffffffffffffff909716875273ffffffffffffffffffffffffffffffffffffffff909516602087015293850192909252606084015215156080830152151560a082015260c00161034b565b348015610802575f80fd5b5061033f610811366004614ba2565b5f90815260a4602052604090206003015460ff1690565b348015610833575f80fd5b50610396610842366004614be1565b61275b565b348015610852575f80fd5b5061033f610861366004614be1565b609f6020525f908152604090205460ff1681565b348015610880575f80fd5b5061036960995481565b348015610895575f80fd5b506103966108a4366004614ba2565b61287f565b3480156108b4575f80fd5b506103696108c3366004614be1565b60a56020525f908152604090205481565b3480156108df575f80fd5b5061036960a85481565b3480156108f4575f80fd5b50610396610903366004614d8e565b612949565b348015610913575f80fd5b50610396610922366004614be1565b612d28565b348015610932575f80fd5b50610396610941366004614c87565b612d8e565b348015610951575f80fd5b50610396610960366004614e02565b61317a565b610396610973366004614e34565b61330d565b348015610983575f80fd5b5061036960985481565b348015610998575f80fd5b506103966109a7366004614be1565b613a22565b3480156109b7575f80fd5b506097546104f39073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109e3575f80fd5b5061033f6109f2366004614ba2565b613b08565b348015610a02575f80fd5b50610369609a5481565b348015610a17575f80fd5b50610396610a26366004614ba2565b613b5f565b348015610a36575f80fd5b50610396610a45366004614be1565b613c1c565b348015610a55575f80fd5b5061036960a95481565b610a67613cd0565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff1615610afb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6163636f756e7420697320616c72656164792061206368616c6c656e6765720060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc00991015b60405180910390a250565b610b8b613cd0565b5f8111610bf4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f636f756e74206d757374206265206e6f6e7a65726f00000000000000000000006044820152606401610af2565b5f80610c008585613d51565b915091505f610c13836001015160c01c90565b5f81815260a160205260409020549091508214610c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b5f60a181610c9a8785614e89565b81526020019081526020015f205414610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201527f64696e67000000000000000000000000000000000000000000000000000000006064820152608401610af2565b609d548111610dc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f63616e206f6e6c792072657665727420756e46696e616c697a6564206261746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610af2565b610dd0600182614e9c565b609e555b8315610f6757604051829082907ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb4710146905f90a35f81815260a16020526040812055610e1c81613b08565b15610ea2575f81815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a59092528220805491929091610e74908490614e89565b909155505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b5f81815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a85415801590610f1f575060a85481145b15610f29575f60a8555b6001015f81815260a160205260409020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193915081610dd4575b505050505050565b60a85415610fd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b610fe1613e04565b5f80610fed8484613d51565b915091505f611000836001015160c01c90565b5f81815260a160205260409020549091508214611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b6110828161156e565b6110e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610af2565b6110f181613b08565b15611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610af2565b5f81815260a4602052604090206003015460ff16156111d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62617463682073686f756c6420626520726576657274000000000000000000006044820152606401610af2565b5f81815260a2602052604090206001015442101561124d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f626174636820696e206368616c6c656e67652077696e646f77000000000000006044820152606401610af2565b605983015160a05f611260600185614e9c565b81526020019081526020015f2054146112d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610af2565b5f81815260a060205260409020541561134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f626174636820616c7265616479207665726966696564000000000000000000006044820152606401610af2565b80609d54600101146113b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610af2565b609d819055600160a35f6113cd866099015190565b815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905560798301515f82815260a0602052604090205561143a61142d846011015160c01c90565b600985015160c01c613e71565b60a25f611448600184614e9c565b815260208101919091526040015f908120818155600180820183905560028201839055600390910182905560ab91906114819084614e9c565b81526020019081526020015f205f905560a45f6001836114a19190614e9c565b815260208082019290925260409081015f90812080547fffffffff00000000000000000000000000000000000000000000000000000000168155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905583815260a1909252902054817f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d61154a866079015190565b60998701516040805192835260208301919091520160405180910390a35050505050565b5f81815260a260205260408120541580159061159657505f82815260a1602052604090205415155b92915050565b60975473ffffffffffffffffffffffffffffffffffffffff166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116469190614eaf565b6116ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610af2565b60a85415611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b61171e613e04565b61172b6020830183614eca565b60ff16158061174957506117426020830183614eca565b60ff166001145b6117af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e76616c69642076657273696f6e00000000000000000000000000000000006044820152606401610af2565b608082013561181a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610af2565b60a0820135611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6e657720737461746520726f6f74206973207a65726f000000000000000000006044820152606401610af2565b5f8061189c6118976020860186614eea565b613d51565b915091505f6118af836001015160c01c90565b90505f60a1816118c0846001614e89565b81526020019081526020015f205414611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610af2565b609e5481146119a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e636f727265637420626174636820696e64657800000000000000000000006044820152606401610af2565b5f81815260a160205260409020548214611a16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610af2565b5f81815260ab6020526040902054608086013514611a90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610af2565b5f611a9f846011015160c01c90565b90505f611acb611ab56060890160408a01614f4b565b611ac560808a0160608b01614f64565b84613f3b565b9050611add6080880160608901614f64565b6001939093019261ffff1691909101905f804915611afc575f49611b1e565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145b905060f9611b2f60208a018a614eca565b60ff16600103611b3e57506101015b604080518281019091529650611b6387611b5b60208c018c614eca565b60ff16613f7f565b60c085901b6001880152611b9187611b8160808c0160608d01614f64565b61ffff1660c01b60099190910152565b60c084811b6011890152601988018490526039880183905260808a0135605989015260a08a013560798901528901356099880152611bf587611bd660208b018b614eea565b604051611be4929190614f85565b604051809103902060b99190910152565b60d987018690526001611c0b60208b018b614eca565b60ff1610611c3d57611c3d87611c2760608c0160408d01614f4b565b67ffffffffffffffff1660c01b60f99190910152565b8087205f86815260a1602090815260408083209390935560ab905290812060a08b0135905560a65460ff1615611c9c5760a7545f90815260a460205260409020600201546099544291611c8f91614e89565b611c999190614e9c565b90505b60405180608001604052804281526020018260985442611cbc9190614e89565b611cc69190614e89565b8152602001611cdb60608d0160408e01614f4b565b67ffffffffffffffff16815260975460209091019073ffffffffffffffffffffffffffffffffffffffff1663d096c3c6336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015611d73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d979190614f94565b90525f87815260a2602090815260409182902083518155838201516001820155918301516002830155606090920151600390910155609e87905560975473ffffffffffffffffffffffffffffffffffffffff1692506374fe27b79150893590611e0c90611e06908c018c614eea565b5f613f86565b5f611e1a60408d018d614eea565b6040518663ffffffff1660e01b8152600401611e3a959493929190614ff2565b602060405180830381865afa158015611e55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e799190614eaf565b611f05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f746865207369676e617475726520766572696669636174696f6e206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610af2565b5f84815260a16020526040808220549051909186917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a35050505050505050565b611f50613cd0565b5f81118015611f6157506099548114155b611fc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c6964206e65772070726f6f662077696e646f7700000000000000006044820152606401610af2565b609980549082905560408051828152602081018490527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a6191015b60405180910390a15050565b5f54600290610100900460ff1615801561202d57505f5460ff8083169116105b6120b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610af2565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556120f45f5460ff1690565b60ff16600214612160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d757374206861766520696e697469616c697a656421000000000000000000006044820152606401610af2565b816121ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f63616e206e6f742073657420737461746520726f6f742077697468206279746560448201527f73333228302921000000000000000000000000000000000000000000000000006064820152608401610af2565b609e545f90815260ab602052604090205461221657609e545f90815260ab602052604090208290555b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001612001565b612278613cd0565b73ffffffffffffffffffffffffffffffffffffffff81165f908152609f602052604090205460ff16612306576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6163636f756e74206973206e6f742061206368616c6c656e67657200000000006044820152606401610af2565b73ffffffffffffffffffffffffffffffffffffffff81165f818152609f6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527f7feb653c7b1f0d23daeed494225b3f28851cdc8973fcc653866d9b6e205fc0099101610b78565b612387613cd0565b6123905f613fda565b565b5f54610100900460ff16158080156123b057505f54600160ff909116105b806123c95750303b1580156123c957505f5460ff166001145b612455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610af2565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156124b1575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff861615806124e8575073ffffffffffffffffffffffffffffffffffffffff8516155b1561251f576040517fecc6fdf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff871661259c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206c31207374616b696e6720636f6e747261637400000000006044820152606401610af2565b6125a4614050565b6125ac6140ee565b6097805473ffffffffffffffffffffffffffffffffffffffff808a167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609b8054898416908316179055609c805492881692909116821790556098859055609984905560a98390556040515f907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a3604080515f8152602081018690527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a437910160405180910390a1604080515f8152602081018590527f1e3a2094feb4b696dd3d7caea38ad2f41dbdcac3fa3943c7a693aff8a64b0a61910160405180910390a1604080515f8152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b0223910160405180910390a18015612752575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b612763613cd0565b73ffffffffffffffffffffffffffffffffffffffff8116158015906127a35750609c5473ffffffffffffffffffffffffffffffffffffffff828116911614155b612809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206e65772076657269666965720000000000000000000000006044820152606401610af2565b609c805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96905f90a35050565b612887613cd0565b5f81118015612897575060648111155b80156128a5575060a9548114155b61290b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f696e76616c69642070726f6f66207265776172642070657263656e74616765006044820152606401610af2565b60a980549082905560408051828152602081018490527ffb81bce17f015797e11949d3c332e2bf9453faf68f728447426803138f2b02239101612001565b60a854156129b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b6129bb613e04565b60975473ffffffffffffffffffffffffffffffffffffffff166368015791336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015612a41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a659190614eaf565b612acb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6f6e6c7920616374697665207374616b657220616c6c6f7765640000000000006044820152606401610af2565b5f80612ad78686613d51565b915091505f612aea836001015160c01c90565b5f81815260a160205260409020549091508214612b63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b612b6c81613b08565b612bd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f626174636820696e206368616c6c656e676500000000000000000000000000006044820152606401610af2565b5f81815260a4602052604090206003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556099546002909101544291612c4991614e89565b11612cdd575f81815260a460209081526040808320600390810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560a2835292819020909201548251808401909352600783527f54696d656f75740000000000000000000000000000000000000000000000000091830191909152612cd89183919061418c565b612752565b612ce883868661430f565b61275281336040518060400160405280600d81526020017f50726f6f662073756363657373000000000000000000000000000000000000008152506144e9565b612d30613cd0565b60aa80545f909155612d4282826145cf565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527fb1b2058a6969e2d25e47bcaebe8ae21c29a23b2752429315b75e2f4f285f3d879101612001565b612d96613cd0565b5f805260a06020527fb84a74ec6ef4d0e83b6006dfaa014ab4026f9f3b97d186e604d29998a4e808ea5415612e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f67656e6573697320626174636820696d706f72746564000000000000000000006044820152606401610af2565b5f80612e338484613d51565b915091505f612e46836001015160c01c90565b90508015612eb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420626174636820696e646578000000000000000000000000006044820152606401610af2565b5f612ebc846079015190565b905080612f25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7a65726f20737461746520726f6f7400000000000000000000000000000000006044820152606401610af2565b600984015160c01c15612f94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6c31206d65737361676520706f707065642073686f756c6420626520300000006044820152606401610af2565b5f612fa0856019015190565b03613007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7a65726f206461746120686173680000000000000000000000000000000000006044820152606401610af2565b7f010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014613033856039015190565b1461309a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c69642076657273696f6e65642068617368000000000000000000006044820152606401610af2565b5f82815260a1602090815260408083208690558051608081018252428082528184019081528183018581526060830186815288875260a2865284872093518455915160018401555160028301555160039091015560ab825280832084905560a0909152808220839055609e849055609d84905551849184917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f9190a3604080518281525f6020820152849184917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a3505050505050565b613182613cd0565b80156132db576131906146a1565b60a65460ff161561328d5760a7545f90815260a4602090815260408083206001810154905468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16845260a590925282208054919290916131f1908490614e89565b909155505060a7545f90815260a46020526040812080547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600281019190915560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a150565b6132e3614726565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336132b0565b50565b335f908152609f602052604090205460ff16613385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f63616c6c6572206368616c6c656e67657220616c6c6f776564000000000000006044820152606401610af2565b60a854156133ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e656564207265766572740000000000000000000000000000000000000000006044820152606401610af2565b6133f7613e04565b60a65460ff1615613464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f616c726561647920696e206368616c6c656e67650000000000000000000000006044820152606401610af2565b8167ffffffffffffffff16609d54106134d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f626174636820616c72656164792066696e616c697a65640000000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a16020526040902054811461355a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e636f727265637420626174636820686173680000000000000000000000006044820152606401610af2565b61356d8267ffffffffffffffff1661156e565b6135d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6261746368206e6f7420657869737400000000000000000000000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a4602052604090205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1615613675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f626174636820616c7265616479206368616c6c656e67656400000000000000006044820152606401610af2565b67ffffffffffffffff82165f90815260a26020526040902060010154421061371f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f63616e6e6f74206368616c6c656e6765206261746368206f757473696465207460448201527f6865206368616c6c656e67652077696e646f77000000000000000000000000006064820152608401610af2565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d13fd7b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613789573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137ad9190614f94565b341015613816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f696e73756666696369656e742076616c756500000000000000000000000000006044820152606401610af2565b67ffffffffffffffff82811660a78190556040805160c0810182528281523360208083018281523484860190815242606086019081525f6080870181815260a0880182815299825260a49095529690962094518554925173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909316981697909717178355945160018301559151600282015592516003909301805492511515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009093169290921792909217905573ffffffffffffffffffffffffffffffffffffffff168267ffffffffffffffff167f3a6ea19df25b49e7624e313ce7c1ab23984238e93727260db56a81735b1b99763460405161398291815260200190565b60405180910390a35f609d54600161399a9190614e89565b90505b609e5481116139f2578267ffffffffffffffff1681146139e0576099545f82815260a26020526040812060010180549091906139da908490614e89565b90915550505b806139ea81615072565b91505061399d565b505060a680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b335f90815260a5602052604081205490819003613a9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f696e76616c69642062617463684368616c6c656e6765526577617264000000006044820152606401610af2565b335f90815260a56020526040812055613ab482826145cf565b8173ffffffffffffffffffffffffffffffffffffffff167f9c25fa83f414ed363c8d39c98fb3e17567b3431cede71eb062c49d2a63ce247a82604051613afc91815260200190565b60405180910390a25050565b5f81815260a4602052604081205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16158015906115965750505f90815260a46020526040902060030154610100900460ff161590565b613b67613cd0565b5f81118015613b7857506098548114155b613bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f696e76616c6964206e65772066696e616c697a6520706572696f6400000000006044820152606401610af2565b609880549082905560408051828152602081018490527fa577f4223f91f74e2dad65bbb8c30807587ae95d0d34288057bb3ec0d398a4379101612001565b613c24613cd0565b73ffffffffffffffffffffffffffffffffffffffff8116613cc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610af2565b61330a81613fda565b60335473ffffffffffffffffffffffffffffffffffffffff163314612390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610af2565b5f805f613d5e858561477d565b90505f8160ff165f03613d7f57613d758686614807565b9094509050613df6565b8160ff16600103613d9457613d75868661488a565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f556e737570706f727465642062617463682076657273696f6e000000000000006044820152606401610af2565b808420925050509250929050565b60655460ff1615612390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610af2565b805f03613e7c575050565b8082035f5b82811015613f3557610100818403811115613e9b57508083035b609b546040517f3c7f5283000000000000000000000000000000000000000000000000000000008152600481018590526024810183905273ffffffffffffffffffffffffffffffffffffffff90911690633c7f5283906044015f604051808303815f87803b158015613f0b575f80fd5b505af1158015613f1d573d5f803e3d5ffd5b50505050610100830192505061010081019050613e81565b50505050565b6040805160c085901b815260f084901b6008820152600a60208502820181019092525f918101613f708161ffff8716866148f7565b82900390912095945050505050565b8082535050565b60605f80808080613f99888a018a615196565b9550955095509550955050818710613fb7579450613fd39350505050565b838710613fcb578295505050505050613fd3565b509293505050505b9392505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166140e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b6123906149d7565b5f54610100900460ff16614184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b612390614a97565b60a88390555f83815260a460205260408082205460975491517f45bc4d10000000000000000000000000000000000000000000000000000000008152600481018690526801000000000000000090910473ffffffffffffffffffffffffffffffffffffffff908116939216906345bc4d10906024016020604051808303815f875af115801561421d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142419190614f94565b5f86815260a46020526040902060010154909150614260908290614e89565b5f86815260a4602090815260408083205468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff16835260a5909152812080549091906142ac908490614e89565b90915550506040516142bf908490615233565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff84169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b80614376576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c69642062617463682070726f6f66000000000000000000000000006044820152606401610af2565b5f614385846001015160c01c90565b90505f614393856039015190565b90505f7f00000000000000000000000000000000000000000000000000000000000000006143c2876059015190565b6079880151609989015160b98a015160198b015160405160c09690961b7fffffffffffffffff000000000000000000000000000000000000000000000000166020870152602886019490945260488501929092526068840152608883015260a882015260c8810183905260e801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120609c5490915073ffffffffffffffffffffffffffffffffffffffff16632c09a848614491885160f81c90565b858888866040518663ffffffff1660e01b81526004016144b595949392919061525f565b5f6040518083038186803b1580156144cb575f80fd5b505afa1580156144dd573d5f803e3d5ffd5b50505050505050505050565b5f83815260a4602052604081206001015460a95490919060649061450d9084615290565b61451791906152a7565b90506145238183614e9c565b60aa5f8282546145339190614e89565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f90815260a560205260408120805483929061456c908490614e89565b909155505060405161457f908490615233565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff86169087907fe70d3820e244d5f71d1a6395db24f3460e8dca966edc1fd3625b6292880a877a905f90a45050505050565b801561469d575f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f811461462b576040519150601f19603f3d011682016040523d82523d5f602084013e614630565b606091505b505090508061469b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f526f6c6c75703a20455448207472616e73666572206661696c656400000000006044820152606401610af2565b505b5050565b6146a9613e04565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586146fc3390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61472e614b36565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336146fc565b5f816147e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f456d7074792062617463682068656164657200000000000000000000000000006044820152606401610af2565b82825f8181106147f7576147f76152df565b919091013560f81c949350505050565b5f8160f9811015614874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610af2565b6040519150808483378082016040529250929050565b5f816101018114614874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f626174636820686561646572206c656e67746820697320696e636f72726563746044820152606401610af2565b5f825f03614906575082613fd3565b609b5473ffffffffffffffffffffffffffffffffffffffff165f5b848110156149cd576040517fae453cd5000000000000000000000000000000000000000000000000000000008152600481018590525f9073ffffffffffffffffffffffffffffffffffffffff84169063ae453cd590602401602060405180830381865afa158015614994573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149b89190614f94565b87525060209095019460019384019301614921565b5093949350505050565b5f54610100900460ff16614a6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b5f54610100900460ff16614b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610af2565b61239033613fda565b60655460ff16612390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610af2565b5f60208284031215614bb2575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114614bdc575f80fd5b919050565b5f60208284031215614bf1575f80fd5b613fd382614bb9565b5f8083601f840112614c0a575f80fd5b50813567ffffffffffffffff811115614c21575f80fd5b602083019150836020828501011115614c38575f80fd5b9250929050565b5f805f60408486031215614c51575f80fd5b833567ffffffffffffffff811115614c67575f80fd5b614c7386828701614bfa565b909790965060209590950135949350505050565b5f8060208385031215614c98575f80fd5b823567ffffffffffffffff811115614cae575f80fd5b614cba85828601614bfa565b90969095509350505050565b5f8060408385031215614cd7575f80fd5b823567ffffffffffffffff80821115614cee575f80fd5b9084019060e08287031215614d01575f80fd5b90925060208401359080821115614d16575f80fd5b50830160608186031215614d28575f80fd5b809150509250929050565b5f805f805f8060c08789031215614d48575f80fd5b614d5187614bb9565b9550614d5f60208801614bb9565b9450614d6d60408801614bb9565b9350606087013592506080870135915060a087013590509295509295509295565b5f805f8060408587031215614da1575f80fd5b843567ffffffffffffffff80821115614db8575f80fd5b614dc488838901614bfa565b90965094506020870135915080821115614ddc575f80fd5b50614de987828801614bfa565b95989497509550505050565b801515811461330a575f80fd5b5f60208284031215614e12575f80fd5b8135613fd381614df5565b803567ffffffffffffffff81168114614bdc575f80fd5b5f8060408385031215614e45575f80fd5b614e4e83614e1d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561159657611596614e5c565b8181038181111561159657611596614e5c565b5f60208284031215614ebf575f80fd5b8151613fd381614df5565b5f60208284031215614eda575f80fd5b813560ff81168114613fd3575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614f1d575f80fd5b83018035915067ffffffffffffffff821115614f37575f80fd5b602001915036819003821315614c38575f80fd5b5f60208284031215614f5b575f80fd5b613fd382614e1d565b5f60208284031215614f74575f80fd5b813561ffff81168114613fd3575f80fd5b818382375f9101908152919050565b5f60208284031215614fa4575f80fd5b5051919050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f6080820187835260206080602085015281885180845260a08601915060208a0193505f5b8181101561504957845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101615017565b50508760408601528481036060860152615064818789614fab565b9a9950505050505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036150a2576150a2614e5c565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126150e5575f80fd5b8135602067ffffffffffffffff80831115615102576151026150a9565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715615145576151456150a9565b6040529384526020818701810194908101925087851115615164575f80fd5b6020870191505b8482101561518b5761517c82614bb9565b8352918301919083019061516b565b979650505050505050565b5f805f805f8060c087890312156151ab575f80fd5b86359550602087013567ffffffffffffffff808211156151c9575f80fd5b6151d58a838b016150d6565b96506040890135955060608901359150808211156151f1575f80fd5b6151fd8a838b016150d6565b94506080890135935060a0890135915080821115615219575f80fd5b5061522689828a016150d6565b9150509295509295509295565b5f82515f5b818110156152525760208186018101518583015201615238565b505f920191825250919050565b858152846020820152608060408201525f61527e608083018587614fab565b90508260608301529695505050505050565b808202811582820484141761159657611596614e5c565b5f826152da577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(RollupStorageLayoutJSON), RollupStorageLayout); err != nil { diff --git a/bindings/go.mod b/bindings/go.mod index af66cc697..746274140 100644 --- a/bindings/go.mod +++ b/bindings/go.mod @@ -2,9 +2,9 @@ module morph-l2/bindings go 1.22 -replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.1 +replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 -require github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 +require github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c require ( github.com/VictoriaMetrics/fastcache v1.12.2 // indirect diff --git a/bindings/go.sum b/bindings/go.sum index df09b475f..2d2d93023 100644 --- a/bindings/go.sum +++ b/bindings/go.sum @@ -109,8 +109,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= diff --git a/contracts/contracts/l1/rollup/IL1MessageQueue.sol b/contracts/contracts/l1/rollup/IL1MessageQueue.sol index 8f33381f5..3a61d3832 100644 --- a/contracts/contracts/l1/rollup/IL1MessageQueue.sol +++ b/contracts/contracts/l1/rollup/IL1MessageQueue.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.16; +pragma solidity =0.8.24; interface IL1MessageQueue { /********** diff --git a/contracts/contracts/l1/rollup/IL1MessageQueueWithGasPriceOracle.sol b/contracts/contracts/l1/rollup/IL1MessageQueueWithGasPriceOracle.sol index a4f043ed4..275b2b017 100644 --- a/contracts/contracts/l1/rollup/IL1MessageQueueWithGasPriceOracle.sol +++ b/contracts/contracts/l1/rollup/IL1MessageQueueWithGasPriceOracle.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.16; +pragma solidity =0.8.24; interface IL1MessageQueueWithGasPriceOracle { /********** diff --git a/contracts/contracts/l1/rollup/IRollup.sol b/contracts/contracts/l1/rollup/IRollup.sol index 680a550d1..caa0d300c 100644 --- a/contracts/contracts/l1/rollup/IRollup.sol +++ b/contracts/contracts/l1/rollup/IRollup.sol @@ -8,14 +8,16 @@ interface IRollup { /// @param version The version of current batch. /// @param parentBatchHeader The header of parent batch, see the comments of `BatchHeaderV0Codec`. - /// @param blockContexts The block contexts of current batch. + /// @param lastBlockNumber The last block number in this batch + /// @param numL1Messages The number of L1 messages in this batch /// @param prevStateRoot The state root of parent batch. /// @param postStateRoot The state root of current batch. /// @param withdrawalRoot The withdraw trie root of current batch. struct BatchDataInput { uint8 version; bytes parentBatchHeader; - bytes blockContexts; + uint64 lastBlockNumber; + uint16 numL1Messages; bytes32 prevStateRoot; bytes32 postStateRoot; bytes32 withdrawalRoot; diff --git a/contracts/contracts/l1/rollup/Rollup.sol b/contracts/contracts/l1/rollup/Rollup.sol index 905913f94..c44303dcc 100644 --- a/contracts/contracts/l1/rollup/Rollup.sol +++ b/contracts/contracts/l1/rollup/Rollup.sol @@ -4,7 +4,7 @@ pragma solidity =0.8.24; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol"; import {BatchHeaderCodecV0} from "../../libraries/codec/BatchHeaderCodecV0.sol"; -import {BatchCodecV0} from "../../libraries/codec/BatchCodecV0.sol"; +import {BatchHeaderCodecV1} from "../../libraries/codec/BatchHeaderCodecV1.sol"; import {IRollupVerifier} from "../../libraries/verifier/IRollupVerifier.sol"; import {IL1MessageQueue} from "./IL1MessageQueue.sol"; import {IRollup} from "./IRollup.sol"; @@ -220,10 +220,7 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { BatchDataInput calldata batchDataInput, BatchSignatureInput calldata batchSignatureInput ) external payable override onlyActiveStaker nonReqRevert whenNotPaused { - require(batchDataInput.version == 0, "invalid version"); - // check whether the batch is empty - uint256 _blockContextsLength = batchDataInput.blockContexts.length; - require(_blockContextsLength > 0, "batch is empty"); + require(batchDataInput.version == 0 || batchDataInput.version == 1, "invalid version"); require(batchDataInput.prevStateRoot != bytes32(0), "previous state root is zero"); require(batchDataInput.postStateRoot != bytes32(0), "new state root is zero"); @@ -248,41 +245,46 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { uint256 _totalL1MessagesPoppedOverall = BatchHeaderCodecV0.getTotalL1MessagePopped(_batchPtr); // compute the data hash for batch - uint256 _totalL1MessagesPoppedInBatch; - uint256 _totalNumL1Messages; - bytes32 dataHash; - (dataHash, _totalNumL1Messages) = _commitBatch( - batchDataInput.blockContexts, - _totalL1MessagesPoppedInBatch, + bytes32 dataHash = _commitBatch( + batchDataInput.lastBlockNumber, + batchDataInput.numL1Messages, _totalL1MessagesPoppedOverall ); + unchecked { - _totalL1MessagesPoppedInBatch += _totalNumL1Messages; - _totalL1MessagesPoppedOverall += _totalNumL1Messages; + _totalL1MessagesPoppedOverall += batchDataInput.numL1Messages; } assembly { _batchIndex := add(_batchIndex, 1) // increase batch index } bytes32 _blobVersionedHash = (blobhash(0) == bytes32(0)) ? ZERO_VERSIONED_HASH : blobhash(0); - { + { uint256 _headerLength = BatchHeaderCodecV0.BATCH_HEADER_LENGTH; + if (batchDataInput.version == 1) { + _headerLength = BatchHeaderCodecV1.BATCH_HEADER_LENGTH; + } assembly { _batchPtr := mload(0x40) - mstore(0x40, add(_batchPtr, mul(_headerLength, 32))) + mstore(0x40, add(_batchPtr, _headerLength)) } + // store entries, the order matters BatchHeaderCodecV0.storeVersion(_batchPtr, batchDataInput.version); BatchHeaderCodecV0.storeBatchIndex(_batchPtr, _batchIndex); - BatchHeaderCodecV0.storeL1MessagePopped(_batchPtr, _totalL1MessagesPoppedInBatch); + BatchHeaderCodecV0.storeL1MessagePopped(_batchPtr, batchDataInput.numL1Messages); BatchHeaderCodecV0.storeTotalL1MessagePopped(_batchPtr, _totalL1MessagesPoppedOverall); BatchHeaderCodecV0.storeDataHash(_batchPtr, dataHash); + BatchHeaderCodecV0.storeBlobVersionedHash(_batchPtr, _blobVersionedHash); BatchHeaderCodecV0.storePrevStateHash(_batchPtr, batchDataInput.prevStateRoot); BatchHeaderCodecV0.storePostStateHash(_batchPtr, batchDataInput.postStateRoot); BatchHeaderCodecV0.storeWithdrawRootHash(_batchPtr, batchDataInput.withdrawalRoot); BatchHeaderCodecV0.storeSequencerSetVerifyHash(_batchPtr, keccak256(batchSignatureInput.sequencerSets)); BatchHeaderCodecV0.storeParentBatchHash(_batchPtr, _parentBatchHash); - BatchHeaderCodecV0.storeBlobVersionedHash(_batchPtr, _blobVersionedHash); + // store last block number if version >= 1 + if (batchDataInput.version >= 1) { + BatchHeaderCodecV1.storeLastBlockNumber(_batchPtr, batchDataInput.lastBlockNumber); + } committedBatches[_batchIndex] = BatchHeaderCodecV0.computeBatchHash(_batchPtr, _headerLength); committedStateRoots[_batchIndex] = batchDataInput.postStateRoot; uint256 proveRemainingTime = 0; @@ -294,7 +296,7 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { batchDataStore[_batchIndex] = BatchData( block.timestamp, block.timestamp + finalizationPeriodSeconds + proveRemainingTime, - _loadL2BlockNumber(batchDataInput.blockContexts), + batchDataInput.lastBlockNumber, // Before BLS is implemented, the accuracy of the sequencer set uploaded by rollup cannot be guaranteed. // Therefore, if the batch is successfully challenged, only the submitter will be punished. IL1Staking(l1StakingContract).getStakerBitmap(_msgSender()) // => batchSignature.signedSequencersBitmap @@ -475,7 +477,7 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { *****************************/ /// @dev proveState proves a batch by submitting a proof. - function proveState(bytes calldata _batchHeader, bytes calldata _batchProof) external nonReqRevert whenNotPaused { + function proveState(bytes calldata _batchHeader, bytes calldata _batchProof) external nonReqRevert whenNotPaused onlyActiveStaker{ // get batch data from batch header (uint256 memPtr, bytes32 _batchHash) = _loadBatchHeader(_batchHeader); // check batch hash @@ -705,96 +707,64 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { } } + /// @notice Extract the version number from a batch header + /// @param batchHeader The encoded batch header bytes + /// @return version The version of the batch header + function _getBatchVersion(bytes calldata batchHeader) internal pure returns (uint8 version) { + require(batchHeader.length > 0, "Empty batch header"); + version = uint8(batchHeader[0]); // Safe extraction of the first byte + } + /// @dev Internal function to load batch header from calldata to memory. /// @param _batchHeader The batch header in calldata. /// @return _memPtr The start memory offset of loaded batch header. /// @return _batchHash The hash of the loaded batch header. function _loadBatchHeader(bytes calldata _batchHeader) internal pure returns (uint256 _memPtr, bytes32 _batchHash) { + uint8 _version = _getBatchVersion(_batchHeader); + // load to memory uint256 _length; - (_memPtr, _length) = BatchHeaderCodecV0.loadAndValidate(_batchHeader); + if (_version == 0) { + (_memPtr, _length) = BatchHeaderCodecV0.loadAndValidate(_batchHeader); + } else if (_version == 1) { + (_memPtr, _length) = BatchHeaderCodecV1.loadAndValidate(_batchHeader); + } else { + revert("Unsupported batch version"); + } // compute batch hash + // all the versions use the same way to compute batch hash _batchHash = BatchHeaderCodecV0.computeBatchHash(_memPtr, _length); } - /// @dev Internal function to load the latestL2BlockNumber. - /// @param _blockContexts The batch block contexts in memory. - function _loadL2BlockNumber(bytes memory _blockContexts) internal pure returns (uint256) { - uint256 blockPtr; - uint256 batchPtr; - assembly { - batchPtr := add(_blockContexts, 0x20) - blockPtr := add(batchPtr, 2) - } - uint256 _numBlocks = BatchCodecV0.validateBatchLength(batchPtr, _blockContexts.length); - for (uint256 i = 0; i < _numBlocks - 1; i++) { - unchecked { - blockPtr += BatchCodecV0.BLOCK_CONTEXT_LENGTH; - } - } - uint256 l2BlockNumber = BatchCodecV0.getBlockNumber(blockPtr); - return l2BlockNumber; - } - /// @dev Internal function to commit a batch with version 0. - /// @param _blockContexts The encoded block contexts to commit. - /// @param _totalL1MessagesPoppedInBatch The total number of L1 messages popped in current batch. + /// @param _lastBlockNumber The last block number in this batch. + /// @param _numL1Messages The number of L1 messages in this batch /// @param _totalL1MessagesPoppedOverall The total number of L1 messages popped in all batches including current batch. /// @return _dataHash The computed data hash for this batch. - /// @return _totalNumL1MessagesInBatch The total number of L1 message popped in current batch function _commitBatch( - bytes memory _blockContexts, - uint256 _totalL1MessagesPoppedInBatch, + uint64 _lastBlockNumber, + uint16 _numL1Messages, uint256 _totalL1MessagesPoppedOverall - ) internal view returns (bytes32 _dataHash, uint256 _totalNumL1MessagesInBatch) { - uint256 batchPtr; + ) internal view returns (bytes32 _dataHash) { uint256 startDataPtr; uint256 dataPtr; assembly { dataPtr := mload(0x40) startDataPtr := dataPtr - batchPtr := add(_blockContexts, 0x20) // skip batchContexts.length } - uint256 _numBlocks = BatchCodecV0.validateBatchLength(batchPtr, _blockContexts.length); - assembly { - batchPtr := add(batchPtr, 2) // skip numBlocks - } - // concatenate block contexts, use scope to avoid stack too deep - for (uint256 i = 0; i < _numBlocks; i++) { - dataPtr = BatchCodecV0.copyBlockContext(batchPtr, dataPtr, i); - uint256 blockPtr = batchPtr + i * BatchCodecV0.BLOCK_CONTEXT_LENGTH; - uint256 _numL1MessagesInBlock = BatchCodecV0.getNumL1Messages(blockPtr); - unchecked { - _totalNumL1MessagesInBatch += _numL1MessagesInBlock; - } - } assembly { - mstore(0x40, add(dataPtr, mul(_totalNumL1MessagesInBatch, 0x20))) // reserve memory for l1 message hashes + mstore(dataPtr, shl(192, _lastBlockNumber)) // store lastBlockNumber + dataPtr := add(dataPtr, 8) + mstore(dataPtr, shl(240, _numL1Messages)) // store numL1Messages + dataPtr := add(dataPtr, 2) + mstore(0x40, add(dataPtr, mul(_numL1Messages, 0x20))) // reserve memory for l1 message hashes } - // concatenate tx hashes - while (_numBlocks > 0) { - // concatenate l1 message hashes - uint256 _numL1MessagesInBlock = BatchCodecV0.getNumL1Messages(batchPtr); - dataPtr = _loadL1MessageHashes( - dataPtr, - _numL1MessagesInBlock, - _totalL1MessagesPoppedInBatch, - _totalL1MessagesPoppedOverall - ); - uint256 _numTransactionsInBlock = BatchCodecV0.getNumTransactions(batchPtr); - require(_numTransactionsInBlock >= _numL1MessagesInBlock, "num txs less than num L1 msgs"); - unchecked { - _totalL1MessagesPoppedInBatch += _numL1MessagesInBlock; - _totalL1MessagesPoppedOverall += _numL1MessagesInBlock; - - _numBlocks -= 1; - batchPtr += BatchCodecV0.BLOCK_CONTEXT_LENGTH; - } - } + // concatenate l1 message hashes + dataPtr = _loadL1MessageHashes(dataPtr, _numL1Messages, _totalL1MessagesPoppedOverall); // compute data hash and store to memory assembly { @@ -805,13 +775,11 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { /// @dev Internal function to load L1 message hashes from the message queue. /// @param _ptr The memory offset to store the transaction hash. /// @param _numL1Messages The number of L1 messages to load. - /// @param _totalL1MessagesPoppedInBatch The total number of L1 messages popped in current batch. /// @param _totalL1MessagesPoppedOverall The total number of L1 messages popped in all batches including current batch. /// @return uint256 The new memory offset after loading. function _loadL1MessageHashes( uint256 _ptr, uint256 _numL1Messages, - uint256 _totalL1MessagesPoppedInBatch, uint256 _totalL1MessagesPoppedOverall ) internal view returns (uint256) { if (_numL1Messages == 0) { @@ -826,8 +794,6 @@ contract Rollup is IRollup, OwnableUpgradeable, PausableUpgradeable { mstore(_ptr, _hash) _ptr := add(_ptr, 0x20) } - - _totalL1MessagesPoppedInBatch += 1; _totalL1MessagesPoppedOverall += 1; } } diff --git a/contracts/contracts/l2/staking/IDistribute.sol b/contracts/contracts/l2/staking/IDistribute.sol index 39ac3da90..5bb84d0f0 100644 --- a/contracts/contracts/l2/staking/IDistribute.sol +++ b/contracts/contracts/l2/staking/IDistribute.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity =0.8.24; import {EnumerableSetUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol"; diff --git a/contracts/contracts/l2/system/IMorphToken.sol b/contracts/contracts/l2/system/IMorphToken.sol index 2c95581d1..e4ae59a4e 100644 --- a/contracts/contracts/l2/system/IMorphToken.sol +++ b/contracts/contracts/l2/system/IMorphToken.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity =0.8.24; import {IERC20MetadataUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol"; diff --git a/contracts/contracts/l2/system/MorphToken.sol b/contracts/contracts/l2/system/MorphToken.sol index d2a98933a..2665d7d9b 100644 --- a/contracts/contracts/l2/system/MorphToken.sol +++ b/contracts/contracts/l2/system/MorphToken.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity =0.8.24; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/contracts/contracts/l2/system/WrappedEther.sol b/contracts/contracts/l2/system/WrappedEther.sol index 64aa269fd..84e37863d 100644 --- a/contracts/contracts/l2/system/WrappedEther.sol +++ b/contracts/contracts/l2/system/WrappedEther.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity =0.8.24; import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol"; diff --git a/contracts/contracts/libraries/ICrossDomainMessenger.sol b/contracts/contracts/libraries/ICrossDomainMessenger.sol index 9ec8f339d..8d0ee03f8 100644 --- a/contracts/contracts/libraries/ICrossDomainMessenger.sol +++ b/contracts/contracts/libraries/ICrossDomainMessenger.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.9; +pragma solidity =0.8.24; interface ICrossDomainMessenger { /*********** diff --git a/contracts/contracts/libraries/callbacks/IERC677Receiver.sol b/contracts/contracts/libraries/callbacks/IERC677Receiver.sol index fba8d1c9e..2eed96281 100644 --- a/contracts/contracts/libraries/callbacks/IERC677Receiver.sol +++ b/contracts/contracts/libraries/callbacks/IERC677Receiver.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.9; +pragma solidity =0.8.24; interface IERC677Receiver { function onTokenTransfer(address sender, uint256 value, bytes memory data) external; diff --git a/contracts/contracts/libraries/callbacks/IGatewayCallback.sol b/contracts/contracts/libraries/callbacks/IGatewayCallback.sol index c138ca636..0a44f01f1 100644 --- a/contracts/contracts/libraries/callbacks/IGatewayCallback.sol +++ b/contracts/contracts/libraries/callbacks/IGatewayCallback.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.9; +pragma solidity =0.8.24; interface IGatewayCallback { function onGatewayCallback(bytes memory data) external; diff --git a/contracts/contracts/libraries/callbacks/IMessageDropCallback.sol b/contracts/contracts/libraries/callbacks/IMessageDropCallback.sol index 52925e8e4..53961f85e 100644 --- a/contracts/contracts/libraries/callbacks/IMessageDropCallback.sol +++ b/contracts/contracts/libraries/callbacks/IMessageDropCallback.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.9; +pragma solidity =0.8.24; interface IMessageDropCallback { function onDropMessage(bytes memory message) external payable; diff --git a/contracts/contracts/libraries/codec/BatchCodecV0.sol b/contracts/contracts/libraries/codec/BatchCodecV0.sol deleted file mode 100644 index bc2254068..000000000 --- a/contracts/contracts/libraries/codec/BatchCodecV0.sol +++ /dev/null @@ -1,108 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity ^0.8.16; - -/* solhint-disable */ - -/// @dev Below is the encoding for `Batch`, total 60*n+1 bytes. -/// ```text -/// * Field Bytes Type Index Comments -/// * numBlocks 2 uint16 0 The number of blocks in this batch -/// * block[0] 60 BlockContext 1 The first block in this batch -/// * ...... -/// * block[i] 60 BlockContext 60*i+1 The (i+1)'th block in this batch -/// * ...... -/// * block[n-1] 60 BlockContext 60*n-59 The last block in this batch -/// ``` -/// -/// @dev Below is the encoding for `BlockContext`, total 60 bytes. -/// ```text -/// * Field Bytes Type Index Comments -/// * blockNumber 8 uint64 0 The height of this block. -/// * timestamp 8 uint64 8 The timestamp of this block. -/// * baseFee 32 uint256 16 The base fee of this block. -/// * gasLimit 8 uint64 48 The gas limit of this block. -/// * numTransactions 2 uint16 56 The number of transactions in this block, both L1 & L2 txs. -/// * numL1Messages 2 uint16 58 The number of l1 messages in this block. -/// ``` -library BatchCodecV0 { - /// @dev Thrown when no blocks in batch. - error ErrorNoBlockInBatch(); - - /// @dev Thrown when the length of batch is incorrect. - error ErrorIncorrectBatchLength(); - - /// @dev The length of one block context. - uint256 internal constant BLOCK_CONTEXT_LENGTH = 60; - - /// @notice Validate the length of batch. - /// @param batchPtr The start memory offset of the batch in memory. - /// @param _length The length of the batch. - /// @return _numBlocks The number of blocks in current batch. - function validateBatchLength(uint256 batchPtr, uint256 _length) internal pure returns (uint256 _numBlocks) { - _numBlocks = getNumBlocks(batchPtr); - - // should contain at least one block - if (_numBlocks == 0) revert ErrorNoBlockInBatch(); - - // should contain the number of the blocks and block contexts - if (_length != 2 + _numBlocks * BLOCK_CONTEXT_LENGTH) revert ErrorIncorrectBatchLength(); - } - - /// @notice Return the number of blocks in current batch. - /// @param batchPtr The start memory offset of the batch in memory. - /// @return _numBlocks The number of blocks in current batch. - function getNumBlocks(uint256 batchPtr) internal pure returns (uint256 _numBlocks) { - assembly { - _numBlocks := shr(240, mload(batchPtr)) - } - } - - /// @notice Copy the block context to another memory. - /// @param blockPtr The start memory offset of the first block context in memory. - /// @param dstPtr The destination memory offset to store the block context. - /// @param index The index of block context to copy. - /// @return uint256 The new destination memory offset after copy. - function copyBlockContext(uint256 blockPtr, uint256 dstPtr, uint256 index) internal pure returns (uint256) { - // only first 58 bytes is needed. - assembly { - blockPtr := add(blockPtr, mul(BLOCK_CONTEXT_LENGTH, index)) - mstore(dstPtr, mload(blockPtr)) // first 32 bytes - mstore( - add(dstPtr, 0x20), - and(mload(add(blockPtr, 0x20)), 0xffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000) - ) // next 26 bytes - - dstPtr := add(dstPtr, 58) - } - - return dstPtr; - } - - /// @notice Return the number of transactions in current block. - /// @param blockPtr The start memory offset of the block context in memory. - /// @return _numTransactions The number of transactions in current block. - function getNumTransactions(uint256 blockPtr) internal pure returns (uint256 _numTransactions) { - assembly { - _numTransactions := shr(240, mload(add(blockPtr, 56))) - } - } - - /// @notice Return the number of L1 messages in current block. - /// @param blockPtr The start memory offset of the block context in memory. - /// @return _numL1Messages The number of L1 messages in current block. - function getNumL1Messages(uint256 blockPtr) internal pure returns (uint256 _numL1Messages) { - assembly { - _numL1Messages := shr(240, mload(add(blockPtr, 58))) - } - } - - /// @notice Return the number of the block. - /// @param blockPtr The start memory offset of the block context in memory. - /// @return _blockNumber The block number of blockPtr in current block. - function getBlockNumber(uint256 blockPtr) internal pure returns (uint256 _blockNumber) { - assembly { - _blockNumber := shr(192, mload(blockPtr)) - } - } -} diff --git a/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol b/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol index 1c80a4b25..e043816a3 100644 --- a/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol +++ b/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.24; // solhint-disable no-inline-assembly -/// @dev Below is the encoding for `BatchHeader` V0, total 249 + ceil(l1MessagePopped / 256) * 32 bytes. +/// @dev Below is the encoding for `BatchHeader` V0, total 249 /// ```text /// * Field Bytes Type Index Comments /// * version 1 uint8 0 The batch version diff --git a/contracts/contracts/libraries/codec/BatchHeaderCodecV1.sol b/contracts/contracts/libraries/codec/BatchHeaderCodecV1.sol new file mode 100644 index 000000000..5bda27769 --- /dev/null +++ b/contracts/contracts/libraries/codec/BatchHeaderCodecV1.sol @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.24; + +// solhint-disable no-inline-assembly + +/// @dev Below is the encoding for `BatchHeader` V1, total 257 +/// * Field Bytes Type Index Comments +/// * version 1 uint8 0 The batch version +/// * batchIndex 8 uint64 1 The index of the batch +/// * l1MessagePopped 8 uint64 9 Number of L1 messages popped in the batch +/// * totalL1MessagePopped 8 uint64 17 Number of total L1 messages popped after the batch +/// * dataHash 32 bytes32 25 The data hash of the batch +/// * blobVersionedHash 32 bytes32 57 The versioned hash of the blob with this batch’s data +/// * prevStateHash 32 bytes32 89 Preview state root +/// * postStateHash 32 bytes32 121 Post state root +/// * withdrawRootHash 32 bytes32 153 L2 withdrawal tree root hash +/// * sequencerSetVerifyHash 32 bytes32 185 L2 sequencers set verify hash +/// * parentBatchHash 32 bytes32 217 The parent batch hash +/// +/// @dev Below is the feilds for `BatchHeader` V1 +/// * lastBlockNumber 8 uint64 249 The last block number in this batch +/// ``` + +library BatchHeaderCodecV1 { + /// @dev The length of fixed parts of the batch header. + uint256 internal constant BATCH_HEADER_LENGTH = 257; + + /// @notice Load batch header in calldata to memory. + /// @param _batchHeader The encoded batch header bytes in calldata. + /// @return batchPtr The start memory offset of the batch header in memory. + /// @return length The length in bytes of the batch header. + function loadAndValidate(bytes calldata _batchHeader) internal pure returns (uint256 batchPtr, uint256 length) { + length = _batchHeader.length; + require(length == BATCH_HEADER_LENGTH, "batch header length is incorrect"); + // copy batch header to memory. + assembly { + batchPtr := mload(0x40) + calldatacopy(batchPtr, _batchHeader.offset, length) + mstore(0x40, add(batchPtr, length)) + } + } + + /// @notice Get the last block number of the batch. + function getLastBlockNumber(uint256 batchPtr) internal pure returns (uint256 _lastBlockNumber) { + assembly { + _lastBlockNumber := shr(192, mload(add(batchPtr, 249))) + } + } + + /// @notice Store the last block number of the batch. + /// @param batchPtr The start memory offset of the batch header in memory. + /// @param _lastBlockNumber The last block number to store. + function storeLastBlockNumber(uint256 batchPtr, uint256 _lastBlockNumber) internal pure { + assembly { + mstore(add(batchPtr, 249), shl(192, _lastBlockNumber)) + } + } +} diff --git a/contracts/contracts/libraries/common/IWhitelist.sol b/contracts/contracts/libraries/common/IWhitelist.sol index b3278aff1..ed28c3be0 100644 --- a/contracts/contracts/libraries/common/IWhitelist.sol +++ b/contracts/contracts/libraries/common/IWhitelist.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.16; +pragma solidity =0.8.24; interface IWhitelist { /// @notice Emitted when account whitelist status changed. diff --git a/contracts/contracts/libraries/token/IMorphERC1155Extension.sol b/contracts/contracts/libraries/token/IMorphERC1155Extension.sol index 43e3f8047..03a8387ed 100644 --- a/contracts/contracts/libraries/token/IMorphERC1155Extension.sol +++ b/contracts/contracts/libraries/token/IMorphERC1155Extension.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity =0.8.24; // Functions needed on top of the ERC1155 standard to be compliant with the Morph bridge interface IMorphERC1155Extension { diff --git a/contracts/contracts/libraries/token/IMorphERC20Extension.sol b/contracts/contracts/libraries/token/IMorphERC20Extension.sol index ee3be77e9..b549be91d 100644 --- a/contracts/contracts/libraries/token/IMorphERC20Extension.sol +++ b/contracts/contracts/libraries/token/IMorphERC20Extension.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity =0.8.24; // Functions needed on top of the ERC20 standard to be compliant with the Morph bridge interface IMorphERC20Extension { diff --git a/contracts/contracts/libraries/token/IMorphERC721Extension.sol b/contracts/contracts/libraries/token/IMorphERC721Extension.sol index 555048c1f..20ce19c20 100644 --- a/contracts/contracts/libraries/token/IMorphERC721Extension.sol +++ b/contracts/contracts/libraries/token/IMorphERC721Extension.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity =0.8.24; // Functions needed on top of the ERC721 standard to be compliant with the Morph bridge interface IMorphERC721Extension { diff --git a/contracts/contracts/libraries/verifier/IRollupVerifier.sol b/contracts/contracts/libraries/verifier/IRollupVerifier.sol index 29473e6f5..de9e56098 100644 --- a/contracts/contracts/libraries/verifier/IRollupVerifier.sol +++ b/contracts/contracts/libraries/verifier/IRollupVerifier.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.16; +pragma solidity =0.8.24; interface IRollupVerifier { /// @notice Verify aggregate zk proof. diff --git a/contracts/contracts/libraries/verifier/ISP1Verifier.sol b/contracts/contracts/libraries/verifier/ISP1Verifier.sol index d2f99aec4..8c1bccf54 100644 --- a/contracts/contracts/libraries/verifier/ISP1Verifier.sol +++ b/contracts/contracts/libraries/verifier/ISP1Verifier.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity =0.8.24; /// @title SP1 Verifier Interface /// @notice This contract is the interface for the SP1 Verifier. diff --git a/contracts/contracts/libraries/verifier/IZkEvmVerifier.sol b/contracts/contracts/libraries/verifier/IZkEvmVerifier.sol index 40d5bab18..07f0bad8f 100644 --- a/contracts/contracts/libraries/verifier/IZkEvmVerifier.sol +++ b/contracts/contracts/libraries/verifier/IZkEvmVerifier.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.16; +pragma solidity =0.8.24; interface IZkEvmVerifier { /// @notice Verify aggregate zk proof. diff --git a/contracts/contracts/libraries/verifier/PlonkVerifier.sol b/contracts/contracts/libraries/verifier/PlonkVerifier.sol index 087c25f88..cae70f262 100644 --- a/contracts/contracts/libraries/verifier/PlonkVerifier.sol +++ b/contracts/contracts/libraries/verifier/PlonkVerifier.sol @@ -16,7 +16,7 @@ // Code generated by gnark DO NOT EDIT -pragma solidity ^0.8.19; +pragma solidity =0.8.24; contract PlonkVerifier { diff --git a/contracts/contracts/libraries/verifier/RollupVerifier.sol b/contracts/contracts/libraries/verifier/RollupVerifier.sol index 70326e601..b0db9018c 100644 --- a/contracts/contracts/libraries/verifier/RollupVerifier.sol +++ b/contracts/contracts/libraries/verifier/RollupVerifier.sol @@ -1,6 +1,6 @@ -// SPDX-License-Identifier: GPL-3.0 +// SPDX-License-Identifier: MIT -pragma solidity ^0.8.16; +pragma solidity =0.8.24; /* solhint-disable */ library RollupVerifier { diff --git a/contracts/contracts/libraries/verifier/SP1VerifierPlonk.sol b/contracts/contracts/libraries/verifier/SP1VerifierPlonk.sol index 7fd8f3ee2..ee2ae0a0d 100644 --- a/contracts/contracts/libraries/verifier/SP1VerifierPlonk.sol +++ b/contracts/contracts/libraries/verifier/SP1VerifierPlonk.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity =0.8.24; import {ISP1Verifier, ISP1VerifierWithHash} from "./ISP1Verifier.sol"; import {PlonkVerifier} from "./PlonkVerifier.sol"; diff --git a/contracts/contracts/mock/TestUpgrade.sol b/contracts/contracts/mock/TestUpgrade.sol index b814e62ad..8904035c2 100644 --- a/contracts/contracts/mock/TestUpgrade.sol +++ b/contracts/contracts/mock/TestUpgrade.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity =0.8.24; interface TestUpgrade { function va() external view returns (uint256); function vb() external view returns (uint256); diff --git a/contracts/contracts/test/Rollup.t.sol b/contracts/contracts/test/Rollup.t.sol index 8f093c673..92d7d9dd2 100644 --- a/contracts/contracts/test/Rollup.t.sol +++ b/contracts/contracts/test/Rollup.t.sol @@ -1,11 +1,12 @@ // SPDX-License-Identifier: MIT pragma solidity =0.8.24; -import {BatchCodecV0} from "../libraries/codec/BatchCodecV0.sol"; import {L1MessageBaseTest} from "./base/L1MessageBase.t.sol"; import {Types} from "../libraries/common/Types.sol"; import {IRollup} from "../l1/rollup/IRollup.sol"; import {IL1Staking} from "../l1/staking/IL1Staking.sol"; +import {BatchHeaderCodecV0} from "../libraries/codec/BatchHeaderCodecV0.sol"; +import {BatchHeaderCodecV1} from "../libraries/codec/BatchHeaderCodecV1.sol"; contract RollupCommitBatchTest is L1MessageBaseTest { address public caller = address(0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84); @@ -56,9 +57,7 @@ contract RollupCommitBatchTest is L1MessageBaseTest { rollup.importGenesisBatch(batchHeader0); bytes32 batchHash0 = rollup.committedBatches(0); - bytes memory batch; - - // commit batch1, one batch with one block, 1 tx, 1 L1 message, no skip + // commit batch1, verison 0, one batch with one block, 1 tx, 1 L1 message, no skip // => l1 data hash for batch // 0x9ef1e5694bdb014a1eea42be756a8f63bfd8781d6332e9ef3b5126d90c62f110 // => payload for batch header @@ -75,13 +74,13 @@ contract RollupCommitBatchTest is L1MessageBaseTest { // f1f58308e98844ec99e2990d88bfb36e1a30f0e6591e62af90ae6f8498a1b067 // => hash for parent batch header // 00847173b29b238cf319cde79512b7c213e5a8b4138daa7051914c4592b6dfc7 - bytes memory batchHeader1 = new bytes(249); + bytes memory batchHeader1 = new bytes(BatchHeaderCodecV0.BATCH_HEADER_LENGTH); assembly { mstore(add(batchHeader1, 0x20), 0) // version mstore(add(batchHeader1, add(0x20, 1)), shl(192, 1)) // batchIndex = 1 mstore(add(batchHeader1, add(0x20, 9)), shl(192, 1)) // l1MessagePopped = 1 mstore(add(batchHeader1, add(0x20, 17)), shl(192, 1)) // totalL1MessagePopped = 1 - mstore(add(batchHeader1, add(0x20, 25)), 0x9ef1e5694bdb014a1eea42be756a8f63bfd8781d6332e9ef3b5126d90c62f110) // dataHash + mstore(add(batchHeader1, add(0x20, 25)), 0xcf774750b0b5e45500519bc354320a44c42c1e1e4faf0766b1141a7d3e5bc2ea) // dataHash mstore(add(batchHeader1, add(0x20, 57)), 0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014) // l2 tx blob versioned hash mstore(add(batchHeader1, add(0x20, 89)), bytesData1) // prevStateHash mstore(add(batchHeader1, add(0x20, 121)), bytesData1) // postStateHash @@ -92,12 +91,8 @@ contract RollupCommitBatchTest is L1MessageBaseTest { ) // sequencerSetVerifyHash mstore(add(batchHeader1, add(0x20, 217)), batchHash0) // parentBatchHash } - batch = new bytes(2 + 60); - assembly { - mstore(add(batch, 0x20), shl(240, 1)) // numBlocks = 1 - mstore(add(batch, add(0x22, 56)), shl(240, 1)) // numTransactions = 1 - mstore(add(batch, add(0x22, 58)), shl(240, 1)) // numL1Messages = 1 - } + uint64 lastBlockNumber = 1; + uint16 numL1Messages = 1; hevm.mockCall( address(rollup.l1StakingContract()), abi.encodeCall(IL1Staking.isActiveStaker, (address(0))), @@ -110,14 +105,22 @@ contract RollupCommitBatchTest is L1MessageBaseTest { ); hevm.startPrank(address(0)); hevm.expectEmit(true, true, false, true); - emit IRollup.CommitBatch(1, bytes32(0x7764891041982c1f3abd964616bf5c777e752e327779f980a0881ef2bc994324)); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, bytesData1, bytesData1, bytesData3); + emit IRollup.CommitBatch(1, bytes32(0xc1862b08d265f073817a8ce0d7cbb426c16d58a86b93464244ab1d027318642e)); + batchDataInput = IRollup.BatchDataInput( + 0, + batchHeader0, + lastBlockNumber, + numL1Messages, + bytesData1, + bytesData1, + bytesData3 + ); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); assertFalse(rollup.isBatchFinalized(1)); bytes32 batchHash1 = rollup.committedBatches(1); - assertEq(batchHash1, bytes32(0x7764891041982c1f3abd964616bf5c777e752e327779f980a0881ef2bc994324)); + assertEq(batchHash1, bytes32(0xc1862b08d265f073817a8ce0d7cbb426c16d58a86b93464244ab1d027318642e)); bytes32 stateRoot1 = rollup.committedStateRoots(1); assertEq(stateRoot1, bytesData1); @@ -134,18 +137,20 @@ contract RollupCommitBatchTest is L1MessageBaseTest { assertFalse(rollup.batchExist(0)); assertEq(rollup.committedStateRoots(0), 0); - // commit batch2 with 4 blocks, correctly + // commit batch2, verison 1, 4 blocks, correctly // 1. block0 has 3 tx, no L1 messages // 2. block1 has 5 tx, 3 L1 messages, no skips // 3. block2 has 10 tx, 5 L1 messages, even is skipped, last is not skipped // 4. block3 has 300 tx, 256 L1 messages, odd position is skipped, last is not skipped - bytes memory batchHeader2 = new bytes(249); + bytes memory batchHeader2 = new bytes(BatchHeaderCodecV1.BATCH_HEADER_LENGTH); + lastBlockNumber = 5; + numL1Messages = 264; assembly { - mstore(add(batchHeader2, 0x20), 0) // version + mstore(add(batchHeader2, 0x20), shl(248, 1)) // version mstore(add(batchHeader2, add(0x20, 1)), shl(192, 2)) // batchIndex = 2 mstore(add(batchHeader2, add(0x20, 9)), shl(192, 264)) // l1MessagePopped = 264 mstore(add(batchHeader2, add(0x20, 17)), shl(192, 265)) // totalL1MessagePopped = 265 - mstore(add(batchHeader2, add(0x20, 25)), 0x81e7e4ffa69f7496f9377a1e4140fbb16fcc81d8086b44a1316fc77cc2b9a63b) // dataHash + mstore(add(batchHeader2, add(0x20, 25)), 0x688bd49eddb8f52296974c2a243b10b91b305edd68f46190df21a83c13a6e2ec) // dataHash mstore(add(batchHeader2, add(0x20, 57)), 0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014) // l2 tx blob versioned hash mstore(add(batchHeader2, add(0x20, 89)), bytesData1) // prevStateHash mstore(add(batchHeader2, add(0x20, 121)), bytesData1) // postStateHash @@ -155,18 +160,7 @@ contract RollupCommitBatchTest is L1MessageBaseTest { 0xf1f58308e98844ec99e2990d88bfb36e1a30f0e6591e62af90ae6f8498a1b067 ) // sequencerSetVerifyHash mstore(add(batchHeader2, add(0x20, 217)), batchHash1) // parentBatchHash - } - batch = new bytes(2 + 60 * 4); - assembly { - mstore(add(batch, 0x20), shl(240, 4)) // numBlocks = 4 - mstore(add(batch, add(34, 56)), shl(240, 3)) // block0.numTransactions = 3 - mstore(add(batch, add(34, 58)), shl(240, 0)) // block0.numL1Messages = 0 - mstore(add(batch, add(94, 56)), shl(240, 5)) // block1.numTransactions = 5 - mstore(add(batch, add(94, 58)), shl(240, 3)) // block1.numL1Messages = 3 - mstore(add(batch, add(154, 56)), shl(240, 10)) // block2.numTransactions = 10 - mstore(add(batch, add(154, 58)), shl(240, 5)) // block2.numL1Messages = 5 - mstore(add(batch, add(214, 56)), shl(240, 300)) // block3.numTransactions = 300 - mstore(add(batch, add(214, 58)), shl(240, 256)) // block3.numL1Messages = 256 + mstore(add(batchHeader2, add(0x20, 249)), shl(192, lastBlockNumber)) // lastBlockNumber } hevm.prank(multisig); @@ -182,15 +176,23 @@ contract RollupCommitBatchTest is L1MessageBaseTest { ); hevm.startPrank(address(0)); hevm.expectEmit(true, true, false, true); - emit IRollup.CommitBatch(2, bytes32(0x0389812d59b1230ba183f27cbe53955d98a1bce20512048a9b9e062b71403c94)); + emit IRollup.CommitBatch(2, bytes32(0x772132c2e12f21bfc5f2792838e480830f2c1dd2be0f3207b159905a9f321038)); - batchDataInput = IRollup.BatchDataInput(0, batchHeader1, batch, bytesData1, bytesData1, bytesData4); + batchDataInput = IRollup.BatchDataInput( + 1, + batchHeader1, + lastBlockNumber, + numL1Messages, + bytesData1, + bytesData1, + bytesData4 + ); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); assertFalse(rollup.isBatchFinalized(2)); bytes32 batchHash2 = rollup.committedBatches(2); - assertEq(batchHash2, bytes32(0x0389812d59b1230ba183f27cbe53955d98a1bce20512048a9b9e062b71403c94)); + assertEq(batchHash2, bytes32(0x772132c2e12f21bfc5f2792838e480830f2c1dd2be0f3207b159905a9f321038)); bytes32 stateRoot2 = rollup.committedStateRoots(2); assertEq(stateRoot2, bytesData1); @@ -270,28 +272,21 @@ contract RollupTest is L1MessageBaseTest { // only active staker allowed, revert hevm.startPrank(address(0)); hevm.expectRevert("only active staker allowed"); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, new bytes(0), stateRoot, stateRoot, getTreeRoot()); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, 0, 0, stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); // invalid version, revert hevm.startPrank(alice); hevm.expectRevert("invalid version"); - batchDataInput = IRollup.BatchDataInput(1, batchHeader0, new bytes(0), stateRoot, stateRoot, getTreeRoot()); - rollup.commitBatch(batchDataInput, batchSignatureInput); - hevm.stopPrank(); - - // batch is empty, revert - hevm.startPrank(alice); - hevm.expectRevert("batch is empty"); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, new bytes(0), stateRoot, stateRoot, getTreeRoot()); + batchDataInput = IRollup.BatchDataInput(2, batchHeader0, 0, 0, stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); // batch header length incorrect, revert hevm.startPrank(alice); hevm.expectRevert("batch header length too small"); - batchDataInput = IRollup.BatchDataInput(0, new bytes(120), new bytes(1), stateRoot, stateRoot, getTreeRoot()); + batchDataInput = IRollup.BatchDataInput(0, new bytes(120), 0, 0, stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); @@ -301,7 +296,7 @@ contract RollupTest is L1MessageBaseTest { } hevm.startPrank(alice); hevm.expectRevert("incorrect batch index"); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, new bytes(1), stateRoot, stateRoot, getTreeRoot()); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, 0, 0, stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); assembly { @@ -314,7 +309,7 @@ contract RollupTest is L1MessageBaseTest { } hevm.startPrank(alice); hevm.expectRevert("incorrect parent batch hash"); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, new bytes(1), stateRoot, stateRoot, getTreeRoot()); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, 0, 0, stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); assembly { @@ -325,66 +320,20 @@ contract RollupTest is L1MessageBaseTest { // incorrect previous state root, revert hevm.startPrank(alice); hevm.expectRevert("incorrect previous state root"); - batchDataInput = IRollup.BatchDataInput( - 0, - batchHeader0, - new bytes(1), - bytes32(uint256(2)), - stateRoot, - getTreeRoot() - ); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, 0, 0, bytes32(uint256(2)), stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); // incorrect batch header length, revert hevm.startPrank(alice); hevm.expectRevert("batch header length too small"); - batchDataInput = IRollup.BatchDataInput(0, new bytes(248), new bytes(1), stateRoot, stateRoot, getTreeRoot()); - rollup.commitBatch(batchDataInput, batchSignatureInput); - hevm.stopPrank(); - - // no block in batch, revert - bytes memory batch = new bytes(2); - hevm.startPrank(alice); - hevm.expectRevert(BatchCodecV0.ErrorNoBlockInBatch.selector); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, getTreeRoot()); - rollup.commitBatch(batchDataInput, batchSignatureInput); - hevm.stopPrank(); - - // invalid batch length, revert - batch = new bytes(3); - batch[1] = bytes1(uint8(1)); // one block in this batch - hevm.startPrank(alice); - hevm.expectRevert(BatchCodecV0.ErrorIncorrectBatchLength.selector); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, getTreeRoot()); - rollup.commitBatch(batchDataInput, batchSignatureInput); - hevm.stopPrank(); - - // num txs less than num L1 msgs, revert - batch = new bytes(2 + 60); - batch[1] = bytes1(uint8(1)); // one block in this batch - batch[59] = bytes1(uint8(1)); // numTransactions = 1 - batch[61] = bytes1(uint8(3)); // numL1Messages = 3 - hevm.startPrank(alice); - hevm.expectRevert("num txs less than num L1 msgs"); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, getTreeRoot()); - rollup.commitBatch(batchDataInput, batchSignatureInput); - hevm.stopPrank(); - - // invalid batch length, revert - batch = new bytes(2 + 60 + 1); - batch[1] = bytes1(uint8(1)); // one block in this batch - hevm.startPrank(alice); - hevm.expectRevert(BatchCodecV0.ErrorIncorrectBatchLength.selector); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, getTreeRoot()); + batchDataInput = IRollup.BatchDataInput(0, new bytes(248), 0, 0, stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); // commit batch with one chunk, no tx, correctly - batch = new bytes(2 + 60); - batch[1] = bytes1(uint8(1)); // one block in this batch hevm.startPrank(alice); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, getTreeRoot()); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, 1, 0, stateRoot, stateRoot, getTreeRoot()); hevm.deal(address(0), 10 ether); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); @@ -393,7 +342,7 @@ contract RollupTest is L1MessageBaseTest { // batch is already committed, revert hevm.startPrank(alice); hevm.expectRevert("batch already committed"); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, getTreeRoot()); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, 1, 0, stateRoot, stateRoot, getTreeRoot()); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.stopPrank(); } @@ -420,20 +369,18 @@ contract RollupTest is L1MessageBaseTest { bytes32 batchHash0 = rollup.committedBatches(0); // commit one batch - bytes memory batch = new bytes(2 + 60); - batch[1] = bytes1(uint8(1)); // one block in this batch hevm.startPrank(alice); - batchDataInput = IRollup.BatchDataInput(0, batchHeader0, batch, stateRoot, stateRoot, bytes32(uint256(4))); + batchDataInput = IRollup.BatchDataInput(0, batchHeader0, 1, 0, stateRoot, stateRoot, bytes32(uint256(4))); rollup.commitBatch(batchDataInput, batchSignatureInput); // first chunk with too many txs hevm.stopPrank(); - assertEq(rollup.committedBatches(1), 0xb7cb76cf9e9f5878136c1d14e095f5d5b435fe8252cad6eb100e51110033b6ed); + assertEq(rollup.committedBatches(1), 0x25c3e4fee90e53de960c1092746c431ab570eacf8513011902fa65f10c814541); bytes memory batchHeader1 = new bytes(249); assembly { mstore(add(batchHeader1, 0x20), 0) // version mstore(add(batchHeader1, add(0x20, 1)), shl(192, 1)) // batchIndex mstore(add(batchHeader1, add(0x20, 9)), 0) // l1MessagePopped mstore(add(batchHeader1, add(0x20, 17)), 0) // totalL1MessagePopped - mstore(add(batchHeader1, add(0x20, 25)), 0x7cdb9d7f02ea58dfeb797ed6b4f7ea68846e4f2b0e30ed1535fc98b60c4ec809) // dataHash + mstore(add(batchHeader1, add(0x20, 25)), 0xe979da4b80d60a17ce56fa19278c6f3a7e1b43359fb8a8ea46d0264de7d653ab) // dataHash mstore(add(batchHeader1, add(0x20, 57)), 0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014) // l2 tx blob versioned hash mstore(add(batchHeader1, add(0x20, 89)), bytesData1) // prevStateHash mstore(add(batchHeader1, add(0x20, 121)), bytesData1) // postStateHash @@ -448,7 +395,7 @@ contract RollupTest is L1MessageBaseTest { // commit another batch hevm.startPrank(alice); - batchDataInput = IRollup.BatchDataInput(0, batchHeader1, batch, stateRoot, stateRoot, bytes32(uint256(4))); + batchDataInput = IRollup.BatchDataInput(0, batchHeader1, 1, 0, stateRoot, stateRoot, bytes32(uint256(4))); rollup.commitBatch(batchDataInput, batchSignatureInput); // first chunk with too many txs hevm.stopPrank(); @@ -460,9 +407,9 @@ contract RollupTest is L1MessageBaseTest { // incorrect batch hash, revert hevm.expectRevert("incorrect batch hash"); - batchHeader1[0] = bytes1(uint8(1)); // change version to 1 + batchHeader1[1] = bytes1(uint8(1)); // change 2nd byte to 1 rollup.revertBatch(batchHeader1, 1); - batchHeader1[0] = bytes1(uint8(0)); // change back + batchHeader1[1] = bytes1(uint8(0)); // change back // revert middle batch, revert hevm.expectRevert("reverting must start from the ending"); @@ -504,14 +451,7 @@ contract RollupTest is L1MessageBaseTest { hevm.startPrank(alice); hevm.expectRevert("Pausable: paused"); - batchDataInput = IRollup.BatchDataInput( - 0, - new bytes(0), - new bytes(0), - stateRoot, - stateRoot, - bytes32(uint256(4)) - ); + batchDataInput = IRollup.BatchDataInput(0, new bytes(0), 0, 0, stateRoot, stateRoot, bytes32(uint256(4))); rollup.commitBatch(batchDataInput, batchSignatureInput); hevm.expectRevert("Pausable: paused"); diff --git a/contracts/contracts/test/ZkEvmVerifierV1.t.sol b/contracts/contracts/test/ZkEvmVerifierV1.t.sol index 7891058e8..9ff08b2de 100644 --- a/contracts/contracts/test/ZkEvmVerifierV1.t.sol +++ b/contracts/contracts/test/ZkEvmVerifierV1.t.sol @@ -33,13 +33,14 @@ contract EvmTest is Test { } // Prove state success. - function test_ValidProof() public view { + function test_ValidProof() public { ProofFixture memory fixture = loadFixture(); evm.verifyPlonk(fixture.proof, fixture.publicValues); } // Prove state fail. - function testFail_InValidProof() public view { + function testRevert_InValidProof() public { + vm.expectRevert(); ProofFixture memory fixture = loadFixture(); // Create a fake proof. fixture.proof[31] = 0x00; diff --git a/contracts/deploy/016-RollupInit.ts b/contracts/deploy/016-RollupInit.ts index b403642e9..82036f186 100644 --- a/contracts/deploy/016-RollupInit.ts +++ b/contracts/deploy/016-RollupInit.ts @@ -35,7 +35,7 @@ export const RollupInit = async ( const MultipleVersionRollupVerifierImplStorageName = ImplStorageName.MultipleVersionRollupVerifierStorageName console.log('Deploy the MultipleVersionRollupVerifier ...') const MultipleVersionRollupVerifierFactory = await hre.ethers.getContractFactory(MultipleVersionRollupVerifierFactoryName) - const version = [0] + const version = [1] const verifiers = [ZkEvmVerifierV1Address] const MultipleVersionRollupVerifierContract = await MultipleVersionRollupVerifierFactory.deploy(version, verifiers) await MultipleVersionRollupVerifierContract.deployed() diff --git a/contracts/go.mod b/contracts/go.mod index a0850903b..c1f676f6e 100644 --- a/contracts/go.mod +++ b/contracts/go.mod @@ -2,11 +2,11 @@ module morph-l2/contract go 1.22 -replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.1 +replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 require ( github.com/iden3/go-iden3-crypto v0.0.16 - github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 + github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c github.com/stretchr/testify v1.9.0 ) diff --git a/contracts/go.sum b/contracts/go.sum index b4ac2ad1c..df3e167c5 100644 --- a/contracts/go.sum +++ b/contracts/go.sum @@ -25,8 +25,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index 51e3875fa..2d5014453 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -9,6 +9,7 @@ import fs from "fs" import { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } from "hardhat/builtin-tasks/task-names"; import { subtask } from "hardhat/config"; + import "./tasks/deploy" import "./tasks/overflow_test" import "./tasks/check" diff --git a/contracts/src/deploy-config/holesky.ts b/contracts/src/deploy-config/holesky.ts index 4e3601cb4..39886ab3c 100644 --- a/contracts/src/deploy-config/holesky.ts +++ b/contracts/src/deploy-config/holesky.ts @@ -14,7 +14,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c', + programVkey: '0x0067523b285111b45b465b927d56449351e78d802252ccbf4bcf5eae588b7356', // rollup contract config // initialize config finalizationPeriodSeconds: 600, diff --git a/contracts/src/deploy-config/l1.ts b/contracts/src/deploy-config/l1.ts index 60827a8ef..2a57b3049 100644 --- a/contracts/src/deploy-config/l1.ts +++ b/contracts/src/deploy-config/l1.ts @@ -17,7 +17,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c', + programVkey: '0x0067523b285111b45b465b927d56449351e78d802252ccbf4bcf5eae588b7356', // rollup contract config // initialize config finalizationPeriodSeconds: 10, diff --git a/contracts/src/deploy-config/qanetl1.ts b/contracts/src/deploy-config/qanetl1.ts index ea5ddab73..0b29da67a 100644 --- a/contracts/src/deploy-config/qanetl1.ts +++ b/contracts/src/deploy-config/qanetl1.ts @@ -16,7 +16,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c', + programVkey: '0x0067523b285111b45b465b927d56449351e78d802252ccbf4bcf5eae588b7356', // rollup contract config // initialize config finalizationPeriodSeconds: 600, diff --git a/contracts/src/deploy-config/sepolia.ts b/contracts/src/deploy-config/sepolia.ts index cd02472d6..3831e28b8 100644 --- a/contracts/src/deploy-config/sepolia.ts +++ b/contracts/src/deploy-config/sepolia.ts @@ -18,7 +18,7 @@ const config = { /** * ---to---legacy property */ - programVkey: '0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c', + programVkey: '0x0067523b285111b45b465b927d56449351e78d802252ccbf4bcf5eae588b7356', rollupMinDeposit: 0.0001, rollupProofWindow: 86400, rollupGenesisBlockNumber: 0, diff --git a/contracts/src/deploy-config/testnetl1.ts b/contracts/src/deploy-config/testnetl1.ts index 9e91e1162..7362fc926 100644 --- a/contracts/src/deploy-config/testnetl1.ts +++ b/contracts/src/deploy-config/testnetl1.ts @@ -13,7 +13,7 @@ const config = { sequencerWindowSize: 200, channelTimeout: 120, - programVkey: '0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c', + programVkey: '0x0067523b285111b45b465b927d56449351e78d802252ccbf4bcf5eae588b7356', rollupMinDeposit: 1, rollupProofWindow: 100, rollupGenesisBlockNumber: 0, diff --git a/gas-oracle/app/data/blob_with_context.data b/gas-oracle/app/data/blob_with_context.data new file mode 100644 index 000000000..3382e351a --- /dev/null +++ b/gas-oracle/app/data/blob_with_context.data @@ -0,0 +1 @@ +0x00605c484dde002cab0100000000000502090000000066ec47fb000f424000980096800005020a48000b01010c05060d060c0e071d0f0820100914000002f8b40082cf55820d1e843b9aca008502540be40082cbab94b678d52a477dc3a27141006d9e1bdc013ae33fc5b680b844a9059cbb70997970c51812dc3a010c7d01b5000e0d17dc79c801c001a021a4cd5cea6694b10bb76504b7b9ad041d3cfc0ef7002fe44364fb6308c2637d9ba053316ae18ec7cee4b3a8e3ff5bfbeb9421f0530086dcdd4df9aa43f5e2dcbcceb41f80a06148740561c6fa1a689151b45d238d00269ea1cb77eb23ca8f27c237d7c9c51769a05b91e5dc0e28f10950630ad2b30067482bd23068b92dbf32249c1876b909d0956c2001a0433ddb27d0178eb2d800d0f83e21108d3f2f8c9f0bb73636f1e9704a8ad8cf12e9a06b6d1ed518c47300f007a9484d534bdd6dd7bec3f78690532d36ddd445cfdad6532118a793edaf00878311817038864a0be195cb1d0fae365a09ad6bbaef8ccda888bda039d0820049cd66523c6de1cc898cd547e0ca4b3945a73fd8f1c049a4e689183d59228000a0155738e87ad858ddf5358d5d1efcc08331e9a86bfdfab4db8303763555f500783ea0749f0192b31b1fce631f26492be4bec77f10b2e3f7df4c22e482c02500e7d559e5239cb4b14e13ffc3206cedd02c235bfd71902b887c33750098e52f00bd0f18d2d055a07e011f3ff2631f8fdbbc81c1e65f31b4d611233565b59fb200e957174bff46c6d42401a0dee0d8ce4a02a46c4fc41de0b2682940e904694b004bd2125128a6b0ded7eaf090a06653e5811c4655ad869e26dd9097d6732c8800b946fcd1dc054650540f6134a1952577ec3c1a4fbdebb29055fd42c21eccd9001059a1d6f8530001354ab60452adf3fda03cd5341a27bb81df351d19a639b5006e720e97ae3041cbc3265b14ffbfb3a552d026fd93dd4bb2ca29da6b65a1d500409f20baed9144d4840647bb86cfe431466f9894a007728e4601d12a2ff42400c7c110bc6695401c058e86d2ab5dcc96dc23833d7ee52748c24f242809c913001f9a96ed3bb3426d646e2850dba562b878821bf15e8cb1bba00cc20d0d575300bc7eb3eb587a616e8ba6d4560b796af3457246de517751262abf2880a02d2d00b1d7e52eddf7927ad4abbb83bb901a89b0aa62966c6b95f9f83abb60e94ea00066630342c82beb66e1a750570f982c9c3ed1f2b70461901c154a65331b55ea00382901a03f454f43ec01bcb90283ca7594785184d5549776db7e0e2168695c004f2e7753eda037d86f7cfd0e8a1e36ef64f194efef0dcbe5483eeecdff55b6002c5f26bf5b0ca12a80a0433893e15fdd9e8f03a61396981bc76839b8e6fff000165e5b0699d9ee558da239a07fc3d17270bef0a45ca5eb83314536d7068aad0010e3a57acc2f3d60af757245402b02972ca22706dee5e6016becefd45d4a8f0012b2f3fc83b33b03ffafc550fab499a037b614a79eda8a5a36a994c463b28800c745b5cc50533a5bba58698d77346050ab2c01a02d3fb558c49db510127d2f00402c29bd0dae17f38c6297b6f5db27805c3eceb4f3a0058554be81edf262e400d9d2687afd389aa6c5135fa7b8984e4385b8ba424f55582d1a8ff121ea027800326e305cb3ce28adbb471de1cc1d0d49d3ec7aab3264cff540a06bd7ed2832005d6bdb4e3ec732a259ed9ab6864c06cd58a405521005097a4c2e992e6d71c800553de8024fbf08cbe7105bf9e653bdcef329e3084031b07b3d1bb3e09ea05100f957a4855b19c836c110193a4a9d162bdef6d596630645297167fe7a683b2b002f80a0f5ebbe0aaab995099b3d0c0623ac42c60a10ad1b3e0c5581bff3484b00ada365f5a00b89c4e11769623aef0ff8f62278fc7619a46a9cc9e16baee31d00bcc005ab31063001a0bde583db4d5ac3ddcbe1e077bb295849902002ba3d8f00df29da4d89af34ad1a59a06a9d8275cf12082964b1d031f795be0f05dca4ce00c34249063c894e36746a97af31de9dbd6726c87d33bae354fbcc1e6dfdf7cf00b6eae6532c9857a3f8b6ab7106d4a0556ad5ceba0e58b61a5844b2b783fa5200b04399b2673877bfe53a3c652e53d9c63280a0089d9ae24e245e00335448b70095c3943925b7509600aa2722cacff3e356b1e4d5a0017f469dbc012aec1eb90099db1795433216562ecb69ddd0a211f5f124d5a7f8123346274c0d9548d0570081bb6bda1f036f62817a3598b36cf32c06ebce0239e2c013a030c60e6f0e650003d66d23711fadf26b8054f22cdd810f95f59fa6d8c0aea45f7f34bfaeb891008b1fd534dd54c57ea04cd546d746dfc5afa29e16ead074cbe9813516a005a8006e03ba8ef6350fd0049814769620ed514f9ae816527c8fc60e4b4439c50e3500941ec592b6cb85877e39e2002115525178ccc02aa825b0b6679e0bbac5487700b3a0676a6cc3f6e62fe04fbec8f25585dc1fa975c6fbaf714471e83b9d512d000880403601a0f2fd0759a859cc2dec454ecf2f82a0b17333e03515689fe7ea009601b1cbb0900ea032629b6c1bb72bcd0ee339ca7834d04e7062e77611f7f1006d390dd17506654e6d37875a7f98c611b17b99aa1f8af309263b9ddc5d61ad0001c88fc2e8b4f7e3d5b592a01e8720a2febafa908ecfbe74a062005d899e1600ac50e746595f7de1a8a28a4fff3880a0816d178977b777e32c10cf2c1a3b94002b70c897da1f311e0ea4dbe654d74445baa049b58d4776884218515594379d0006fc5a79538bb61b09df46a8ffc0e14cd991583984b96575e465b70555291700555629b8a3c23bcf6baf895b2dec23e28ff78d5c68a005ae47300b7859fca80002e2b42bc648a839ed37da46dd1de7ce03e455132456013a01a080d8bea05000c13a6bc5eb23e92da453210b85f137731df93bdc73182da19a08dea012937c008e453ac6f86b8ffb23ad7c103e351e9ad3a6ce31ba49eac03886488b0e3b3600c32ceade034faecfb0dbc2fb341810e419ae9a984335faab98224b715b2fb000a0568824824950e88dbc26f5c5352f851408c9e2643520b3cf8f7d36e216a80003413c80a02dbdc0742093127f2383ab13da8f76a222f559a815ca470a72cd0076551f0f1547a06d4014af23ed1cd9f6ef558d8b23a38cffbe2f29040b516500a9c3b5bf76cbe71f3d01a0c16bba8cb481523d1c50331cea869048e953a25800424b045d06d71daf7299a35ca02e4adb29397a71f3f77c80c89e76b9b2e15b00c75c21c5c9b07ee7884a1c9dea563e80a03bc0efc9d87f14ae49beb7e65d1a002ff9ce27114a77a2c3c802d2a35f85c1c373a019a4458e87fd43f7cc6fcd6f00e3e15a6311fa239436cc02bfad0673feff22b7d03f01a09232d947630bb0a4008e08d391f5e77ab684d8bf6ff42855d436dae20d1d3d59e5a063473b7b2edb005e553f25bf0ec22feba9d84d8847888769989d8772ab35390b9e4039d8f4f2008e6a0f21e1faf7b2452b7d72389816a23f84b0640264ea42d0e62be9a07f1400e431c449f00d27e43b6659c7ea40509cb88699aa1a84eeca4f28b00591a9410080a01609f6757e86968f406b6e471149005400b151ad7d9e1e4b324f284d4000a78718a05152c4c957025176b0c359dfb4bafbeeda16f7ebcf17a175e99a9a0035d9e6b7b24201a072126b7214c2d534b024317e5deb56e12f02c353f6c9730044a3fba2082b9a68ffa030d361b3fbdf812b9bb57d305bd703adb08ad0d9fc00a5fcfe21947e692a04d5674380a0c6150f1c8a5a8e39f5788baa6c1bd5063f00c4c162d7dfc809f5eab3addcfb971aa04fa0ce293ac900247e108644b1efe800316c154e00dc306dd98e88c2d38fd6fd484401a054617644b9dd81ec4e3adc00ffda3dcbe713617cc8423cdcdbe161e192f6c8e05aa04ebbae889b4332548200cf98ee2f2deabb3ee6faf9dcc9438aa93e22179212ce1b458b9bab51a688730010f2a1acff535cd247e7aba6430128990fd06f8920d9940e85a04e4eb52b8200f042919381f78a4bbd3af3655c6c137c51d8f247691cdbd1cbf19f4680a01e00d893efc0be55fcab80fb26c5aa14f6fe3ab7cdf45f5dda8dde9a5298c0450700a032d5cf06712e7836d23e8373de79e1ee0a48668dde317d1800e849dc913b0006184701a0199d1f2f4544ef7aadd8db842838755d2ba5bc93db5f677bfc3d0031577e6c6f5ea01d2adf5ae68808c5b1357985b26b8129d02fbe622535cde400ec9ca2cf9c62141a4880a0cb5dda4a628541fa566623afe616cce53aae12b0007a4395680076f589b121ce4fa06cc131bad74a32e3000fc19f64e41048c3780051ec043d84bc815683a7b0849e4d496d96b0957809c8ae52149f86dff3c721001dd567280efb4bfd65c7b54bd091e548a02062b20e7b742fb1f13db32f94f4006cee52b591b9f299871708a895872f8a667c4a01a0f76c7f12317bfa8629e900630bcfe59d08807968538982627a9a1a3046e2cdaf5aa02fa9f692a15afd7c0091779ba94f0f225b50bbca93de2366de9a4c910c64d5df154b80a0b984f2c5002b9a3b7bd741315302486ca8381334b9d666f7a08faa2ed79722a676a030b8000a54a7a88b25fed3e90d160e449e84a474fc5e05a771d81fc513c0569de74c0001a07b72115c28aed626266441db9fc38f72a6b51ef7f4b2f9a77731b5488400dae1cda042b2829853687927e841956df5ba9abea7c7a6fa3eb33242ce140a00db26272e4a4d80a05b033e54fc8082d29564e6e5b28251f86e33c35544b3fd0067a0665e4fe37bd10ea007d2cd4e3854ea60f1394ec7e755ec9fd3925cfc10003ed7ef57b8e41e593ddb9e4e45b738e241b464e3b95a4a9411aed52dfadfc400996c1451f34df4c92b57dd3eeca008876723f7a2188539ab02c4e265e3b8f60098385437592eeb1bf70616cc3872bf4fa9d22b5ad20980176decf70e2e97bc0007dbe7cf9438866756b1d7db0bd7fb0bd7a039a67874e17cb0b545fd7a79f5006d0d9af182b12556a6d688b63e4dd3852e474d5001a085fa597a4947215484002a5010e280d65f80c6449cdac9df2c4d08b681def13085a0291ee12a746754004369e60bce58dfad1f2c79e36c4ea6a6fffa21ac4b6882b9505180a0d2c98a00afd7a29d0e8e9981b44e69372bc7eafff536ac204db2016d376a532ee0a02400f6e234884d55ea0d0159280e31eecd58559430747d78899229a73bca2900850052bfe756f8bf9212019a5725abf602616f6ee8cbf4b7f864c25b84a7421e5f005da5a01c9d481bc9b5310375e60ef4a764aaca4a45d2e62aea1f30ec99ef4900f609976453888575e8666ecaece3529b7eba6888dd67f126b7e66bd33c7920005c401aca69d8a04c5697ba8fcd4f972ffcc049e98598047d6245014a2364b800074f9723fa09dc9b5401a049bb5d27d2257af24bdfb68f5e6174bfb24d301500719f0637555941d9b1b104d4a02673925aac7ac9907dfca98d7387709ac322001e222a6869f26acfa353002bd3a955c77ab3ff266c5fb609881f7da4c2ff1c0033c91abbf0a5db7c89ac5be55e047d2da05640c5783e5b84cf5c0eb0375d94004acd350fbc90e3a8d275ea831f3c53d437005680a009e6a7fd6fda5bee1ee1008bce48e0179e1864b2feec22d8efc11187ac36d9e20ca063621af083f2b37b004c4349d71af0306c2745141a53c06ecf1bcae0b08c8ebc3d57d1044f9daa4a0038522228deb9f3833dd524b7070a6a57de01e51ad5c3367b36ada063e8ae5a00c6783040d721ee7bdea411ad4f8b6f06188475ec2c568bedf7e128125801a000469e2cd327501e91dcd82ab516dc498f614df0583ba9dc35e1010683078db40052a01ada9721d329a8ce0f0625838b88d3da0242ccfdf729ee2726740e340600d977f25980a051b9acbaa4c98a48544511ddad09db48eeb2911a26b908252600f85d4eb00f386da05a2ef770f4d9d9caaddef553ebe9a1ceb5d1b1363749fa002307689dfcd69ea6725a885953866bc4bec79d5bd2f5b669964806f89208e20064d0978278b997325749e0a061be40491f53edf6efa80db0c0317eae19f70200e8ba992bba58484c12a1aceff85b01a0a5435acc0ebd4fd3aed45e69e6621100beb18f24f737579d3b2d6a18bb52a832e4a02c2f6efe796b7d3c1a2af8de9f00be37eabb854a42281fb024f2c409f9677c564a5c80a090b9debf2e00203b68002a6e56b4aef1ffe8d9bdc48386f1ef71c1d759e704b6f4a014b38b8b9452e400747150f810f72dcf3683df769cc6d04c40abb2157af21b5ef75da51de6e56b008367f968724e5652d0b8112c3e782427d9a7f4388f143e459d6137a066b96000c4b29ffb2939e21391af55ffe2c74a2f0017ba59904c17f14bb7dfff5c5e0100a0d7cba9180c94f7ad3fa35b24a32990abf0d17dea5fc7f2878420f688dedd00b774a03c2eb0b4155592825603c5a206977b4fba3b608630237fb99168e23000769909b45f80a008e7275e71faf07a2972d1e1a35a9e6aa4967336debbbb6300964f05e6085aba66a0503745ba5f5740086c7432114710896f88d6cc474c7a00ddc9d449348c7783f4c16001a06c525b92e082c31c95d15c0ffba46d615ab4002e68a2ec0dfcf3ddfa4bbeb8cacea02d2518a87357b27568fc22cd7c5422d900ef2bbb82b0f91df9589135271f5ffdf1612cf708e3dd115f9f9de3ebe81d3800c52e7259bb7eba9a631b2e5d2e8c9a5fabeda034ae87e9d74fb69f126f74bc00b7e0d8495d1b42d6350f44b2c03b30938b8f87b26280a0796b4eca5909c0c80060cce4b836704ce91f1b59ba3c2768d0ae992bab9239e7b3a02229c2fa58ae000a35611028f650f84869d555ccbe5caeeb13bacce8a45089f754631717457f007acf89e1433001ffe472733aca40dd96532a9d8fe2e03950c026eab0a01e5b0007a67d09b65bd5c704c0b02e4832282ec0d4b990d55c58957aa68534802764000dabff733464906bf45b570ae67c25c5373c9b47f5f77e741cc27dd90c100a00d3a012db104698136f29b7bca7c4361d6dcf2a46f021c42c579cf5aae5e0fa00a12b2065d50b8871528d15fe0473f49b731329d6ba2f710f3840034733c8d80017bd18c346a01801f8e3f88f7f74ca44e9e9f7f43a09174ab720cbc3dd59b200fc8f263ce417296601a0b5bd8c1ee067d499d876ed3aa6e1174485cef38d2d003d97dc6f0cecd29ca4f3d2a064452e8e67335bea2e5380ebbd59d6dad41c340072e6b4e61b6721a5748f320f9d6780a0451b4c565a1571135a7278ae58f82000364e829738d90797ef632f464ff309b0a0a0152aa127c7b22ad6a4b3431e79004bd623b5cc0213396771a71bf960bd702637ef6801a0843a558d92eec71b770060eda3edb06a97efd6ac6fb1f46dbe79e53c26864ce300a0419deadb418a00009cc26537cabdc9fba3815c023a71771ec4c94536efe3b2e3396980a0b82fc30087831d5ad2d0f31cca02b67491e633492749b04f06fb4b9a105a4ce744a06e00fca93207505087d155e3d2e53f914807353eca57681cb523556ed13077d74e006afc94ef399c1ac106da88c15a90ad6b55112c5596c6b1a8c0b84f84a8e8f7005f3ea016d412fc4feeee2f05c9ae07f258549c1f13c5b14f626a147b4a38b600dbe86d226bad1215aa348c501b526cf1675c1202a798dc76f298b8398512de00c0629696d2c2a072255656388ac3a989daa147ec5c4fe538de8c911666626300c25bf93ebb6b22e16c0e5a6d45cee4a06c8d6833b2e0496a4a4f776201718c008ff0f16c23d2e706e65aa02f54592b4151a09bf42db9d8aeb5602e5b5e1a50003f50aed2f34228b85244a64c6d4c6be08d5e328b93930ea882295779ce0ec80006af9acfee08d5ddae95ac1013a5a022acf9cbe348a6d5f8b8b24e290d111800ef26fd7c909b9f6bf53b5f1b14eb67e06e01a02c2f8ddac09f28bfcc2330b5000166b5a799a8ddfff9f79e495e6da3630de58927a041115fb95e793ed8e29b0069bede5416b74ab45654984bfd4c51866e667542f8286f80a08ae03fc2e0a00019e47ae07b437c50992874c04b902b4121f35eb8fd9f4a1aab2aa00e5ace6f005feb53ba503c5cf157faeeac508cd184818d2a08926f8c8a8aa8ee9e7001a0006fb3c6920d11a2ad66b2ffedba90ecda8e90062d207e68fe28791f2a1efada0086a03312a767def17d60f3f21cdca699b6928cb4ca07c8f433bf18e92d031e0085e2fc710a3cdd007e07e278c232fb91c493849261f50154ec4817dfd68b9e00bcc87bf7e6a00e924876987f3e52fca01464ff89617c09ef0597cc1bff618800565f43f255c4757280a0fe81cb40267c4cd15258016782276e151c5074102800e28231738c52319b1dcde2a06254ad0e238f10de11313730503ef4af9232470068c2f2d569e85b649b99c3c18873397bbe42b74f14764cdb8bc8f3942fd2540036f828c53fb9abc8468a7a1de7d19da074cdd7053891c9e5f62bb1b4a0b803003399cc39f792018deef448fdae7fd9a5f47407d7ebe351cc99f38bdf58ae78009ab72f3e6a1faec54bd1a3772d87742e74d5f4a0295501c3b3257786efb690000b4f0b84d942ea23a4e6f566602c31d7822bfd75c960cad9ad2d8056065b230056c5cf7e32d548d4161517a8fdb606951d7c8c07a1a045f1b8264fbc31386e0027a320d233263bc87f4bbb30f8756d6e3dc435c0bb5fec767a4b6a605d8f5300e7a3b926e547be40cbb84f2a4f45b8d06ec37264faa7891525a0479286737d00a551489089b7df77bb801c4f5d27bf472306e50ae2ef9c40fd2f8e7701a01700e8f7dbf4d8249a695ca0aa89534cb2072c6e17c8f667040fd45c5c05b33a7500a0632712c44f890f8c56e5b4ef0d9515870e1038f350d8512f4dfb651f7a0e00b4907838843b6c7782702243c3ddf6d307a11831022afd6bf88cc8d5cfd2a8002e603185a00423cc572255a6dd40aef3644f5ba5b19db0007b4656ec40ea8200c0f7c318507a7901a0f8146d4afdffdaff96a7ddfce57a8ce4b68dcc396d45007848207432df8c04c43ba05f4a2afc79dda30439f91b8a1ca60b37488d51c600fa411b907a1376a0384cab697a80a087df37455c47e9e11129a44c76d0529d00d5d9bf7fc62b514ff9fd64b84b8cf192a079e19299cff5278b342608b6a70f00d8bec873f746af7a2e4264aa1c37a68a6bd47b80a0429da67993b5df938db700fd4747b2b7e0e1b17444c611f5bd7b8f3394a8003873a01887ddc5919f88d200374c1566365155e36a8cc81a9d052ab1d180e0a1c6607bb07c80a02e16f113005de4e757e78ebb7f71d00ae975b7be53861b6f5de5995d629dedb79fa033c90080441929c6618d856e14a057dab486fa4c0c7cfde6458fff0ad63df77b707d0001a0226fa5c9d4c8a01f950185542c4d156f3efcb5d810fcb5b4903bce2f97005b7807a047ae419c9bd315ced8e9fac4b343687647065645ced5bd071a15e90075f79c9ff77e888ded3df28bac579c42a3001f165fbeded85889124f2d2064004ac70fb88bb170a0686edc60997c99529cbce485a30ef70e3c295d3ce5b8750083d97a9d06bc9e3b397fcaedbd10045426b22579e5da60b78ab4ab25659c4200492f38fdd00d05ae2f0600a002d8a3434c3dc85aa953a9bc86d31947ca1334001d80126eb006b644bf3783451f800f2f41da2873a10b033cad020e2bd7fcd90023087ef8e041883be050dac3ba32b1a049f2dbefb4c1fc301c2020ca516a54003741b0a0ec306fbe675963b9ec2f2647468101a04e4859b18c72255a6439a70091d04f6f73b74b88e6ca11430613fd1722933642dca05e9e4231d2d60c595a003f540409adf143acfb772dc57b8bd156f38dcda9ab383480dfa821784288f0002702229cf8c0834a1a031240104040c811428010fc2708e1254222f803e800005510d5c0caa18801c8a1918328c390819543220294412b501edeb2eac0a9070051419487a307a286200356072a055207560f8a18400f8c3c8c0aa00e5a19500035801cb87a10350872303aa0d2107a607450c500f460e4c0aa0174a09583a80000cac1d50351439001ab039506a107a307450ca003561e460d400f8d0ca81a00401e1c3d881a0419583d1069083d307a2822807a307260d5003ad0ca41540000e5e0ea80aa21c880d5834883d081d5812a06d0012b0fa306a08746065405280007ae1e4405a21c8c0ea834841e18850b9dac47990116605b7826e77425798d0024af93f374725e47ce1f3805e5afe520009cf34b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/gas-oracle/app/src/abi/Rollup.json b/gas-oracle/app/src/abi/Rollup.json index dc4c9bba6..28f7a5c6d 100644 --- a/gas-oracle/app/src/abi/Rollup.json +++ b/gas-oracle/app/src/abi/Rollup.json @@ -15,16 +15,6 @@ "name": "ErrZeroAddress", "type": "error" }, - { - "inputs": [], - "name": "ErrorIncorrectBatchLength", - "type": "error" - }, - { - "inputs": [], - "name": "ErrorNoBlockInBatch", - "type": "error" - }, { "anonymous": false, "inputs": [ @@ -619,9 +609,14 @@ "type": "bytes" }, { - "internalType": "bytes", - "name": "blockContexts", - "type": "bytes" + "internalType": "uint64", + "name": "lastBlockNumber", + "type": "uint64" + }, + { + "internalType": "uint16", + "name": "numL1Messages", + "type": "uint16" }, { "internalType": "bytes32", diff --git a/gas-oracle/app/src/da_scalar/calculate.rs b/gas-oracle/app/src/da_scalar/calculate.rs index 22d409e0c..92b0e537e 100644 --- a/gas-oracle/app/src/da_scalar/calculate.rs +++ b/gas-oracle/app/src/da_scalar/calculate.rs @@ -5,7 +5,6 @@ use ethers::{ use eyre::anyhow; use serde::{Deserialize, Serialize}; use serde_json::Value; -use std::ops::Mul; use super::{ blob::{kzg_to_versioned_hash, Blob}, @@ -17,8 +16,8 @@ use super::{ pub(super) fn extract_tx_payload( indexed_hashes: Vec, sidecars: &[Value], -) -> Result, ScalarError> { - let mut tx_payload = Vec::::new(); +) -> Result>, ScalarError> { + let mut batch_bytes = Vec::>::new(); for i_h in indexed_hashes { if let Some(sidecar) = sidecars.iter().find(|sidecar| { sidecar["index"].as_str().unwrap_or("1000").parse::().unwrap_or(1000) == i_h.index @@ -63,14 +62,14 @@ pub(super) fn extract_tx_payload( let blob_array: [u8; MAX_BLOB_TX_PAYLOAD_SIZE] = decoded_blob.try_into().unwrap(); let blob_struct = Blob(blob_array); - let mut origin_batch = blob_struct.get_origin_batch().map_err(|e| { + let origin_batch = blob_struct.get_origin_batch().map_err(|e| { ScalarError::CalculateError(anyhow!(format!( "Failed to decode blob tx payload: {}", e ))) })?; - tx_payload.append(&mut origin_batch); + batch_bytes.push(origin_batch); } else { return Err(ScalarError::CalculateError(anyhow!(format!( "no blob in response matches desired index: {}", @@ -78,41 +77,35 @@ pub(super) fn extract_tx_payload( )))); } } - Ok(tx_payload) + Ok(batch_bytes) } -pub fn extract_txn_num(block_contexts: Bytes) -> Option { - if block_contexts.is_empty() || block_contexts.len() < 2 { +pub fn extract_txn_count(origin_batch: &Vec, last_block_num: u64) -> Option { + if origin_batch.is_empty() || origin_batch.len() < 8 { return None; } - - let mut txn_in_batch = 0u64; - let mut l1_txn_in_batch = 0u64; - let bs: &[u8] = &block_contexts; - - // decode blocks from batch - // | 2 byte | 60 bytes | ... | 60 bytes | - // | num blocks | block 1 | ... | block n | - // https://github.com/morph-l2/morph/blob/main/contracts/contracts/libraries/codec/BatchCodecV0.sol - let num_blocks: u16 = ((bs[0] as u16) << 8) | (bs[1] as u16); - - for i in 0..num_blocks as usize { - let txs_num = u16::from_be_bytes( - bs.get((60.mul(i) + 2 + 56)..(60.mul(i) + 2 + 58))?.try_into().ok()?, - ); - let l1_txs_num = u16::from_be_bytes( - bs.get((60.mul(i) + 2 + 58)..(60.mul(i) + 2 + 60))?.try_into().ok()?, - ); - txn_in_batch += txs_num as u64; - l1_txn_in_batch += l1_txs_num as u64; + let first_block_num = u64::from_be_bytes(origin_batch[0..8].try_into().unwrap_or_default()); + let block_count = last_block_num - first_block_num + 1; + if origin_batch.len() < 60 * block_count as usize { + log::error!("invalid blob batch len"); + return None; } + let mut txn_count_in_batch = 0u64; + for i in 0..block_count as usize { + let bys = &origin_batch[60 * i + 56..60 * i + 58]; + let num_txn = u16::from_be_bytes(bys.try_into().unwrap_or_default()); + + let bys = &origin_batch[60 * i + 58..60 * i + 60]; + let num_l1_messages = u16::from_be_bytes(bys.try_into().unwrap_or_default()); + if num_txn < num_l1_messages { + log::error!("total_txn_in_batch < l1_txn_in_batch"); + return None; + } - log::debug!("total_txn_in_batch: {:#?}, l1_txn_in_batch: {:#?}", txn_in_batch, l1_txn_in_batch); - if txn_in_batch < l1_txn_in_batch { - log::error!("total_txn_in_batch < l1_txn_in_batch"); - return None; + txn_count_in_batch += (num_txn - num_l1_messages) as u64; } - Some(txn_in_batch - l1_txn_in_batch) + + Some(txn_count_in_batch) } #[derive(Debug, Serialize, Deserialize)] diff --git a/gas-oracle/app/src/da_scalar/l1_scalar.rs b/gas-oracle/app/src/da_scalar/l1_scalar.rs index 485a02bf7..140e8163f 100644 --- a/gas-oracle/app/src/da_scalar/l1_scalar.rs +++ b/gas-oracle/app/src/da_scalar/l1_scalar.rs @@ -5,7 +5,7 @@ use tokio::time::{sleep, Duration}; use super::{ blob_client::BeaconNode, - calculate::{data_and_hashes_from_txs, extract_tx_payload, extract_txn_num}, + calculate::{data_and_hashes_from_txs, extract_tx_payload, extract_txn_count}, error::ScalarError, MAX_BLOB_TX_PAYLOAD_SIZE, }; @@ -227,47 +227,10 @@ impl ScalarUpdater { tx_hash: TxHash, block_num: U64, ) -> Result<(u64, u64), ScalarError> { - //Step1. Get transaction - let tx = self - .l1_provider - .get_transaction(tx_hash) - .await - .map_err(|e| { - ScalarError::Error(anyhow!(format!("l1_provider.get_transaction err: {:#?}", e))) - })? - .ok_or_else(|| { - ScalarError::Error(anyhow!(format!( - "ll1_provider.get_transaction is none, tx_hash= {:#?}", - tx_hash - ))) - })?; - - log::info!("hit self rollup tx hash: {:#?}, blocknum: {:#?}", tx_hash, block_num); - - //Step2. Parse transaction data - let data = tx.input; - if data.is_empty() { - return Err(ScalarError::Error(anyhow!(format!( - "overhead_inspect tx.input is empty, tx_hash= {:#?}", - tx_hash - )))); - } - let param = CommitBatchCall::decode(&data).map_err(|e| { - ScalarError::Error(anyhow!(format!( - "overhead_inspect decode tx.input error, tx_hash= {:#?}, err= {:#?}", - tx_hash, e - ))) - })?; - - let block_contexts: Bytes = param.batch_data_input.block_contexts; - let l2_txn = extract_txn_num(block_contexts).unwrap_or(0); - - //Step3. Calculate l2 data gas - let l2_data_len = self - .calculate_l2_data_len_from_blob(tx_hash, block_num, l2_txn) - .await - .map_err(|e| { - log::error!("calculate_l2_data_len_from_blob error: {:#?}", e); + //Step1. get_data_from_blob + let (l2_data_len, l2_txn) = + self.get_data_from_blob(tx_hash, block_num).await.map_err(|e| { + log::error!("get_data_from_blob error: {:#?}", e); e })?; @@ -292,7 +255,7 @@ impl ScalarUpdater { )))); } - //Step4. Calculate scalar + //Step2. Calculate scalar let commit_scalar = (rollup_gas_used.as_u64() + self.finalize_batch_gas_used) * PRECISION / l2_txn.max(self.txn_per_batch); let blob_scalar = if l2_data_len > 0 { @@ -315,15 +278,11 @@ impl ScalarUpdater { Ok((commit_scalar, blob_scalar)) } - async fn calculate_l2_data_len_from_blob( + async fn get_data_from_blob( &self, tx_hash: TxHash, block_num: U64, - l2_txn: u64, - ) -> Result { - if l2_txn == 0 { - return Ok(0); - } + ) -> Result<(u64, u64), ScalarError> { let blob_tx = self .l1_provider .get_transaction(tx_hash) @@ -351,7 +310,7 @@ impl ScalarUpdater { let indexed_hashes = data_and_hashes_from_txs(&blob_block.transactions, &blob_tx); if indexed_hashes.is_empty() { log::info!("no blob in this batch, batch_tx_hash: {:#?}", tx_hash); - return Ok(0); + return Ok((0, 0)); } // Waiting for the next L1 block to be produced. @@ -387,6 +346,19 @@ impl ScalarUpdater { } }; + // Parse last_block_num + if blob_tx.input.is_empty() { + log::warn!("batch inspect: tx.input is empty, tx_hash = {:#?}", tx_hash); + return Err(ScalarError::Error(anyhow!(format!("commitBatch tx.input empty")))); + } + let param = if let Ok(_param) = CommitBatchCall::decode(&blob_tx.input) { + _param + } else { + log::error!("batch inspect: decode tx.input error, tx_hash = {:#?}", tx_hash); + return Err(ScalarError::Error(anyhow!(format!("decode commitBatch tx.input error",)))); + }; + let last_block_num: u64 = param.batch_data_input.last_block_number; + let indexes: Vec = indexed_hashes.iter().map(|item| item.index).collect(); let sidecars_rt = self .beacon_node @@ -407,16 +379,65 @@ impl ScalarUpdater { )))); } - let tx_payload = extract_tx_payload(indexed_hashes, sidecars)?; + let tx_payloads = extract_tx_payload(indexed_hashes, sidecars)?; + let data_with_txn_count: Vec<(u64, u64)> = tx_payloads + .iter() + .map(|batch: &Vec| { + (batch.len() as u64, extract_txn_count(batch, last_block_num).unwrap_or_default()) + }) + .collect(); + + let (total_size, total_count) = data_with_txn_count + .iter() + .fold((0u64, 0u64), |acc, &(size, count)| (acc.0 + size, acc.1 + count)); - Ok(tx_payload.len() as u64) + Ok((total_size, total_count)) } } #[cfg(test)] mod tests { + use crate::da_scalar::blob::Blob; + use super::*; - use std::{env::var, str::FromStr, sync::Arc}; + use std::{env::var, fs, path::Path, str::FromStr, sync::Arc}; + + #[test] + fn test_blob_data() { + let blob_data_path = Path::new("data/blob_with_context.data"); + let data = fs::read_to_string(blob_data_path).expect("Unable to read file"); + let hex_data: Vec = hex::decode(data.trim()).unwrap(); + + let mut blob_array = [0u8; 131072]; + blob_array.copy_from_slice(&hex_data); + + let blob_struct = Blob(blob_array); + let origin_batch = blob_struct + .get_origin_batch() + .map_err(|e| { + ScalarError::CalculateError(anyhow!(format!( + "Failed to decode blob tx payload: {}", + e + ))) + }) + .unwrap(); + + let mut tx_payloads: Vec> = vec![]; + tx_payloads.push(origin_batch); + + let data_with_txn_count: Vec<(u64, u64)> = tx_payloads + .iter() + .map(|batch: &Vec| { + (batch.len() as u64, extract_txn_count(batch, 328208).unwrap_or_default()) + }) + .collect(); + + let (total_size, total_count) = data_with_txn_count + .iter() + .fold((0u64, 0u64), |acc, &(size, count)| (acc.0 + size, acc.1 + count)); + + println!("total_size: {}, total_count: {}", total_size, total_count) + } #[tokio::test] #[ignore] diff --git a/go-ethereum b/go-ethereum index 1582a364e..3b9465a03 160000 --- a/go-ethereum +++ b/go-ethereum @@ -1 +1 @@ -Subproject commit 1582a364edc0434bec74f3e3933d5a787b7429ac +Subproject commit 3b9465a03a8cebd3e499cd5c0ea110dfc0fbefaf diff --git a/node/core/batch.go b/node/core/batch.go index 2ecb561ba..987c4bf03 100644 --- a/node/core/batch.go +++ b/node/core/batch.go @@ -3,13 +3,11 @@ package node import ( "bytes" "context" - "errors" "fmt" "math/big" "morph-l2/node/types" - "github.com/morph-l2/go-ethereum/accounts/abi/bind" "github.com/morph-l2/go-ethereum/common" eth "github.com/morph-l2/go-ethereum/core/types" "github.com/morph-l2/go-ethereum/crypto" @@ -19,7 +17,7 @@ import ( ) type BatchingCache struct { - parentBatchHeader *types.BatchHeader + parentBatchHeader *types.BatchHeaderBytes prevStateRoot common.Hash // accumulated batch data @@ -30,7 +28,7 @@ type BatchingCache struct { lastPackedBlockHeight uint64 // caches sealedBatchHeader according to the above accumulated batch data - sealedBatchHeader *types.BatchHeader + sealedBatchHeader *types.BatchHeaderBytes sealedSidecar *eth.BlobTxSidecar currentBlockContext []byte @@ -82,7 +80,7 @@ func (e *Executor) CalculateCapWithProposalBlock(currentBlockBytes []byte, curre return false, err } - parentBatchHeader := new(types.BatchHeader) + var parentBatchHeader types.BatchHeaderBytes if len(parentBatchHeaderBytes) == 0 { genesisHeader, err := e.l2Client.HeaderByNumber(context.Background(), big.NewInt(0)) if err != nil { @@ -92,22 +90,24 @@ func (e *Executor) CalculateCapWithProposalBlock(currentBlockBytes []byte, curre if err != nil { return false, err } - parentBatchHeader = &genesisBatchHeader + parentBatchHeader = genesisBatchHeader.Bytes() } else { - *parentBatchHeader, err = types.DecodeBatchHeader(parentBatchHeaderBytes) - if err != nil { - return false, err - } + parentBatchHeader = parentBatchHeaderBytes } var txsPayload []byte var l1TxHashes []common.Hash - var totalL1MessagePopped = parentBatchHeader.TotalL1MessagePopped var lastHeightBeforeCurrentBatch uint64 var lastBlockStateRoot common.Hash var lastBlockWithdrawRoot common.Hash var l2TxNum int + totalL1MessagePopped, err := parentBatchHeader.TotalL1MessagePopped() + if err != nil { + e.logger.Error("failed to get totalL1MessagePopped from parentBatchHeader", "error", err) + return false, err + } + for i, blockBz := range blocks { wBlock := new(types.WrappedBlock) if err = wBlock.UnmarshalBinary(blockBz); err != nil { @@ -128,7 +128,7 @@ func (e *Executor) CalculateCapWithProposalBlock(currentBlockBytes []byte, curre if err != nil { return false, err } - l1TxNum := int(totalL1MessagePopped - totalL1MessagePoppedBefore) // include skipped L1 messages + l1TxNum := int(totalL1MessagePopped - totalL1MessagePoppedBefore) e.logger.Info("fetched block", "block height", wBlock.Number, "involved transaction count", len(transactions[i]), "l2 tx num", l2TxNum, "l1 tx num", l1TxNum) blockContext := wBlock.BlockContextBytes(l2TxNum+l1TxNum, l1TxNum) e.batchingCache.batchData.Append(blockContext, txsPayload, l1TxHashes) @@ -137,7 +137,7 @@ func (e *Executor) CalculateCapWithProposalBlock(currentBlockBytes []byte, curre } // make sure passed block is the next block of the last packed block - curHeight, err := heightFromBCBytes(currentBlockBytes) + curHeight, err := types.HeightFromBlockBytes(currentBlockBytes) if err != nil { return false, err } @@ -145,7 +145,7 @@ func (e *Executor) CalculateCapWithProposalBlock(currentBlockBytes []byte, curre return false, fmt.Errorf("wrong propose height passed. lastPackedBlockHeight: %d, passed height: %d", e.batchingCache.lastPackedBlockHeight, curHeight) } - e.batchingCache.parentBatchHeader = parentBatchHeader + e.batchingCache.parentBatchHeader = &parentBatchHeader header, err := e.l2Client.HeaderByNumber(context.Background(), big.NewInt(int64(lastHeightBeforeCurrentBatch))) if err != nil { return false, err @@ -155,13 +155,15 @@ func (e *Executor) CalculateCapWithProposalBlock(currentBlockBytes []byte, curre e.batchingCache.withdrawRoot = lastBlockWithdrawRoot // initialize latest batch index - e.metrics.BatchIndex.Set(float64(e.batchingCache.parentBatchHeader.BatchIndex)) + index, _ := e.batchingCache.parentBatchHeader.BatchIndex() + e.metrics.BatchIndex.Set(float64(index)) } - height, err := heightFromBCBytes(currentBlockBytes) + block, err := types.WrappedBlockFromBytes(currentBlockBytes) if err != nil { return false, err } + height := block.Number if height <= e.batchingCache.lastPackedBlockHeight { return false, fmt.Errorf("wrong propose height passed. lastPackedBlockHeight: %d, passed height: %d", e.batchingCache.lastPackedBlockHeight, height) } else if height > e.batchingCache.lastPackedBlockHeight+1 { // skipped some blocks, cache is dirty. need rebuild the cache @@ -176,163 +178,13 @@ func (e *Executor) CalculateCapWithProposalBlock(currentBlockBytes []byte, curre return false, err } - exceeded, err := e.batchingCache.batchData.EstimateCompressedSizeWithNewPayload(e.batchingCache.currentTxsPayload) - - return exceeded, err -} - -// SealBatch seals the accumulated blocks into a batch -// It should be called after CalculateBatchSizeWithProposalBlock which ensure the accumulated blocks is correct. -func (e *Executor) SealBatch() ([]byte, []byte, error) { - if e.batchingCache.IsEmpty() { - return nil, nil, errors.New("failed to seal batch. No data found in batch cache") - } - - sidecar, err := types.EncodeTxsPayloadToBlob(e.batchingCache.batchData.TxsPayload()) - if err != nil { - return nil, nil, err - } - blobHashes := []common.Hash{types.EmptyVersionedHash} - if sidecar != nil && len(sidecar.Blobs) > 0 { - blobHashes = sidecar.BlobHashes() - } - - sequencerSetVerifyHash, err := e.sequencerCaller.SequencerSetVerifyHash(nil) - if err != nil { - return nil, nil, fmt.Errorf("failed to get sequencerSetVerifyHash, err: %w", err) - } - - block, err := wrappedBlockFromBytes(e.batchingCache.currentBlockBytes) - if err != nil { - return nil, nil, err - } - l1MessagePopped := e.batchingCache.totalL1MessagePopped - e.batchingCache.parentBatchHeader.TotalL1MessagePopped - var skippedL1MessageBitmap []byte - if block.Timestamp < e.UpgradeBatchTime { - e.logger.Info("waiting upgrade batch time", "upgradeBatchTime", e.UpgradeBatchTime, "current block time", block.Timestamp, "remaining seconds", e.UpgradeBatchTime-block.Timestamp) - if l1MessagePopped > 0 { // 32 zero bytes when before upgrading and has L1 message in batch - skippedL1MessageBitmap = make([]byte, 32) - } - } - - batchHeader := types.BatchHeader{ - Version: 0, - BatchIndex: e.batchingCache.parentBatchHeader.BatchIndex + 1, - L1MessagePopped: l1MessagePopped, - TotalL1MessagePopped: e.batchingCache.totalL1MessagePopped, - DataHash: e.batchingCache.batchData.DataHash(), - BlobVersionedHash: blobHashes[0], // currently we only have one blob - PrevStateRoot: e.batchingCache.prevStateRoot, - PostStateRoot: e.batchingCache.postStateRoot, - WithdrawalRoot: e.batchingCache.withdrawRoot, - SequencerSetVerifyHash: sequencerSetVerifyHash, - ParentBatchHash: e.batchingCache.parentBatchHeader.Hash(), - SkippedL1MessageBitmap: skippedL1MessageBitmap, - } - e.batchingCache.sealedBatchHeader = &batchHeader - e.batchingCache.sealedSidecar = sidecar - batchHash := e.batchingCache.sealedBatchHeader.Hash() - e.logger.Info("Sealed batch header", "batchHash", batchHash.Hex()) - e.logger.Info(fmt.Sprintf("===batchIndex: %d \n===L1MessagePopped: %d \n===TotalL1MessagePopped: %d \n===dataHash: %x \n===blockNum: %d \n===SkippedL1MessageBitmap: %s \n===ParentBatchHash: %x \n", - batchHeader.BatchIndex, - batchHeader.L1MessagePopped, - batchHeader.TotalL1MessagePopped, - batchHeader.DataHash, - e.batchingCache.batchData.BlockNum(), - batchHeader.SkippedL1MessageBitmap, - batchHeader.ParentBatchHash)) - blockContexts, _ := e.batchingCache.batchData.Encode() - e.logger.Info(fmt.Sprintf("===blockContexts: %x \n", blockContexts)) - - return batchHash[:], e.batchingCache.sealedBatchHeader.Encode(), nil -} - -// CommitBatch commit the sealed batch. It does nothing if no batch header is sealed. -// It is supposed to be called when the current block is confirmed. -func (e *Executor) CommitBatch(currentBlockBytes []byte, currentTxs tmtypes.Txs, blsDatas []l2node.BlsData) error { - if e.batchingCache.IsEmpty() || e.batchingCache.sealedBatchHeader == nil { // nothing to commit - return nil - } - - // reconstruct current block context - // it is possible that the confirmed current block is different from the existing cached current block context - if !bytes.Equal(currentBlockBytes, e.batchingCache.currentBlockBytes) || - !bytes.Equal(currentTxs.Hash(), e.batchingCache.currentTxsHash) { - e.logger.Info("current block is changed, reconstructing current context...") - if err := e.setCurrentBlock(currentBlockBytes, currentTxs); err != nil { - return err - } - } - - blockContexts, err := e.batchingCache.batchData.Encode() - if err != nil { - return err - } - - curHeight, err := heightFromBCBytes(e.batchingCache.currentBlockBytes) - if err != nil { - return err - } - - var batchSigs []eth.BatchSignature - if !e.devSequencer { - batchSigs, err = e.ConvertBlsDatas(blsDatas) - if err != nil { - return err - } - } - - currentIndex := e.batchingCache.parentBatchHeader.BatchIndex + 1 - - // The batch needs the sequencer set info at the end height of the batch, which is equal to current height - 1. - callOpts := &bind.CallOpts{ - BlockNumber: big.NewInt(int64(curHeight - 1)), - } - sequencerSetBytes, err := e.sequencerCaller.GetSequencerSetBytes(callOpts) - if err != nil { - e.logger.Error("failed to GetSequencerSetBytes", "query at height of", curHeight-1, "error", err) - return err - } - - if err = e.l2Client.CommitBatch(context.Background(), ð.RollupBatch{ - Version: 0, - Index: currentIndex, - Hash: e.batchingCache.sealedBatchHeader.Hash(), - ParentBatchHeader: e.batchingCache.parentBatchHeader.Encode(), - CurrentSequencerSetBytes: sequencerSetBytes, - BlockContexts: blockContexts, - SkippedL1MessageBitmap: e.batchingCache.sealedBatchHeader.SkippedL1MessageBitmap, - PrevStateRoot: e.batchingCache.prevStateRoot, - PostStateRoot: e.batchingCache.postStateRoot, - WithdrawRoot: e.batchingCache.withdrawRoot, - Sidecar: e.batchingCache.sealedSidecar, - }, batchSigs); err != nil { - return err + var exceeded bool + if e.isBatchUpgraded(block.Timestamp) { + exceeded, err = e.batchingCache.batchData.WillExceedCompressedSizeLimit(e.batchingCache.currentBlockContext, e.batchingCache.currentTxsPayload) + } else { + exceeded, err = e.batchingCache.batchData.EstimateCompressedSizeWithNewPayload(e.batchingCache.currentTxsPayload) } - - // update newest batch index - e.metrics.BatchIndex.Set(float64(currentIndex)) - - // commit sealed batch header; move current block into the next batch - e.batchingCache.parentBatchHeader = e.batchingCache.sealedBatchHeader - e.batchingCache.prevStateRoot = e.batchingCache.postStateRoot - e.batchingCache.sealedBatchHeader = nil - e.batchingCache.sealedSidecar = nil - - _, _, totalL1MessagePopped, _, err := ParsingTxs(e.batchingCache.currentTxs, e.batchingCache.totalL1MessagePopped) - if err != nil { - return err - } - e.batchingCache.totalL1MessagePopped = totalL1MessagePopped - e.batchingCache.postStateRoot = e.batchingCache.currentStateRoot - e.batchingCache.withdrawRoot = e.batchingCache.currentWithdrawRoot - e.batchingCache.lastPackedBlockHeight = curHeight - e.batchingCache.batchData = types.NewBatchData() - e.batchingCache.batchData.Append(e.batchingCache.currentBlockContext, e.batchingCache.currentTxsPayload, e.batchingCache.currentL1TxsHashes) - e.batchingCache.ClearCurrent() - - e.logger.Info("Committed batch", "batchIndex", currentIndex) - return nil + return exceeded, err } func (e *Executor) AppendBlsData(height int64, batchHash []byte, data l2node.BlsData) error { @@ -366,7 +218,7 @@ func (e *Executor) PackCurrentBlock(currentBlockBytes []byte, currentTxs tmtypes } } - curHeight, err := heightFromBCBytes(currentBlockBytes) + curHeight, err := types.HeightFromBlockBytes(currentBlockBytes) if err != nil { return err } @@ -442,7 +294,7 @@ func ParsingTxs(transactions tmtypes.Txs, totalL1MessagePoppedBefore uint64) (tx return } -func GenesisBatchHeader(genesisHeader *eth.Header) (types.BatchHeader, error) { +func GenesisBatchHeader(genesisHeader *eth.Header) (types.BatchHeaderV0, error) { wb := types.WrappedBlock{ ParentHash: genesisHeader.ParentHash, Miner: genesisHeader.Coinbase, @@ -458,8 +310,7 @@ func GenesisBatchHeader(genesisHeader *eth.Header) (types.BatchHeader, error) { batchData := types.NewBatchData() batchData.Append(blockContext, nil, nil) - return types.BatchHeader{ - Version: 0, + return types.BatchHeaderV0{ BatchIndex: 0, L1MessagePopped: 0, TotalL1MessagePopped: 0, @@ -482,7 +333,9 @@ func (e *Executor) ConvertBlsDatas(blsDatas []l2node.BlsData) (ret []eth.BatchSi } func (e *Executor) ConvertBlsData(blsData l2node.BlsData) (*eth.BatchSignature, error) { - val, found := e.valsByTmKey[[32]byte(blsData.Signer)] + var signer [32]byte + copy(signer[:], blsData.Signer) + val, found := e.valsByTmKey[signer] if !found { return nil, fmt.Errorf("found invalid validator: %x", blsData.Signer) } @@ -495,18 +348,6 @@ func (e *Executor) ConvertBlsData(blsData l2node.BlsData) (*eth.BatchSignature, return &bs, nil } -func wrappedBlockFromBytes(blockBytes []byte) (*types.WrappedBlock, error) { - var curBlock = new(types.WrappedBlock) - if err := curBlock.UnmarshalBinary(blockBytes); err != nil { - return nil, err - } - return curBlock, nil -} - -func heightFromBCBytes(blockBytes []byte) (uint64, error) { - curBlock, err := wrappedBlockFromBytes(blockBytes) - if err != nil { - return 0, err - } - return curBlock.Number, nil +func (e *Executor) isBatchUpgraded(blockTime uint64) bool { + return blockTime >= e.UpgradeBatchTime } diff --git a/node/core/batch_commit.go b/node/core/batch_commit.go new file mode 100644 index 000000000..c0f161768 --- /dev/null +++ b/node/core/batch_commit.go @@ -0,0 +1,113 @@ +package node + +import ( + "bytes" + "context" + "fmt" + "math/big" + "morph-l2/node/types" + + "github.com/morph-l2/go-ethereum/accounts/abi/bind" + eth "github.com/morph-l2/go-ethereum/core/types" + "github.com/tendermint/tendermint/l2node" + tmtypes "github.com/tendermint/tendermint/types" +) + +// CommitBatch commits the sealed batch. It does nothing if no batch header is sealed. +// It should be called when the current block is confirmed. +func (e *Executor) CommitBatch(currentBlockBytes []byte, currentTxs tmtypes.Txs, blsDatas []l2node.BlsData) error { + // If no batch data is available, do nothing + if e.batchingCache.IsEmpty() || e.batchingCache.sealedBatchHeader == nil { + return nil + } + + // Reconstruct current block context if needed + if !bytes.Equal(currentBlockBytes, e.batchingCache.currentBlockBytes) || !bytes.Equal(currentTxs.Hash(), e.batchingCache.currentTxsHash) { + e.logger.Info("Current block has changed. Reconstructing current context...") + if err := e.setCurrentBlock(currentBlockBytes, currentTxs); err != nil { + return fmt.Errorf("failed to set current block: %w", err) + } + } + + // Get current block height + curHeight, err := types.HeightFromBlockBytes(e.batchingCache.currentBlockBytes) + if err != nil { + return fmt.Errorf("failed to parse current block height: %w", err) + } + + // Convert BlsData to batch signatures (if applicable) + var batchSigs []eth.BatchSignature + if !e.devSequencer { + batchSigs, err = e.ConvertBlsDatas(blsDatas) + if err != nil { + return fmt.Errorf("failed to convert BLS data: %w", err) + } + } + + // Get the sequencer set at current height - 1 + callOpts := &bind.CallOpts{BlockNumber: big.NewInt(int64(curHeight - 1))} + sequencerSetBytes, err := e.sequencerCaller.GetSequencerSetBytes(callOpts) + if err != nil { + e.logger.Error("Failed to GetSequencerSetBytes", "blockHeight", curHeight-1, "error", err) + return fmt.Errorf("failed to get sequencer set bytes: %w", err) + } + + // Encode batch data and commit batch to L2 client + blockContexts, err := e.batchingCache.batchData.Encode() + if err != nil { + return fmt.Errorf("failed to encode block contexts: %w", err) + } + + version, err := e.batchingCache.sealedBatchHeader.Version() + if err != nil { + return fmt.Errorf("failed to get batch version: %w", err) + } + + parentBatchIndex, _ := e.batchingCache.parentBatchHeader.BatchIndex() + hash, _ := e.batchingCache.sealedBatchHeader.Hash() + l1MessagePopped, _ := e.batchingCache.sealedBatchHeader.L1MessagePopped() + // Construct the batch and commit it + if err = e.l2Client.CommitBatch(context.Background(), ð.RollupBatch{ + Version: uint(version), + Index: parentBatchIndex + 1, + Hash: hash, + ParentBatchHeader: *e.batchingCache.parentBatchHeader, + CurrentSequencerSetBytes: sequencerSetBytes, + BlockContexts: blockContexts, + PrevStateRoot: e.batchingCache.prevStateRoot, + PostStateRoot: e.batchingCache.postStateRoot, + WithdrawRoot: e.batchingCache.withdrawRoot, + Sidecar: e.batchingCache.sealedSidecar, + LastBlockNumber: e.batchingCache.lastPackedBlockHeight, + NumL1Messages: uint16(l1MessagePopped), + }, batchSigs); err != nil { + return fmt.Errorf("failed to commit batch to L2 client: %w", err) + } + + // Update batch index metric + e.metrics.BatchIndex.Set(float64(parentBatchIndex + 1)) + + // Commit the batch and reset the cache for the next batch + e.commitSealedBatch(curHeight) + + e.logger.Info("Committed batch", "batchIndex", parentBatchIndex+1) + return nil +} + +// commitSealedBatch commits the sealed batch and resets cache for the next batch. +func (e *Executor) commitSealedBatch(curHeight uint64) { + e.batchingCache.parentBatchHeader = e.batchingCache.sealedBatchHeader + e.batchingCache.prevStateRoot = e.batchingCache.postStateRoot + e.batchingCache.sealedBatchHeader = nil + e.batchingCache.sealedSidecar = nil + + e.batchingCache.totalL1MessagePopped = e.batchingCache.totalL1MessagePoppedAfterCurBlock + e.batchingCache.postStateRoot = e.batchingCache.currentStateRoot + e.batchingCache.withdrawRoot = e.batchingCache.currentWithdrawRoot + e.batchingCache.lastPackedBlockHeight = curHeight + + // Reset batch data and current context + e.batchingCache.batchData = types.NewBatchData() + e.batchingCache.batchData.Append(e.batchingCache.currentBlockContext, e.batchingCache.currentTxsPayload, e.batchingCache.currentL1TxsHashes) + e.batchingCache.ClearCurrent() +} diff --git a/node/core/batch_seal.go b/node/core/batch_seal.go new file mode 100644 index 000000000..be02cdfe1 --- /dev/null +++ b/node/core/batch_seal.go @@ -0,0 +1,151 @@ +package node + +import ( + "errors" + "fmt" + + "morph-l2/node/types" + + "github.com/morph-l2/go-ethereum/common" + eth "github.com/morph-l2/go-ethereum/core/types" +) + +// SealBatch seals the accumulated blocks into a batch. +// It ensures proper compression and data preparation based on the batch version. +// It should be called after CalculateBatchSizeWithProposalBlock which ensure the accumulated blocks is correct. +func (e *Executor) SealBatch() ([]byte, []byte, error) { + // Ensure the batching cache is not empty + if e.batchingCache.IsEmpty() { + return nil, nil, errors.New("failed to seal batch: batch cache is empty") + } + + // Parse the current block from the cache + block, err := types.WrappedBlockFromBytes(e.batchingCache.currentBlockBytes) + if err != nil { + return nil, nil, fmt.Errorf("failed to parse current block: %w", err) + } + + // Compress and get data hash based on batch version + compressedPayload, batchDataHash, err := e.handleBatchSealing(block.Timestamp) + if err != nil { + return nil, nil, err + } + + // Generate sidecar for blob data + sidecar, err := types.MakeBlobTxSidecar(compressedPayload) + if err != nil { + return nil, nil, fmt.Errorf("failed to create blob sidecar: %w", err) + } + + // Retrieve sequencer verification hash + sequencerSetVerifyHash, err := e.sequencerCaller.SequencerSetVerifyHash(nil) + if err != nil { + return nil, nil, fmt.Errorf("failed to get sequencer set verification hash: %w", err) + } + + // Create batch header + batchHeader := e.createBatchHeader(batchDataHash, sidecar, sequencerSetVerifyHash, block.Timestamp) + + // Cache the sealed header and sidecar + e.batchingCache.sealedBatchHeader = &batchHeader + e.batchingCache.sealedSidecar = sidecar + + batchHash, err := batchHeader.Hash() + if err != nil { + return nil, nil, fmt.Errorf("failed to hash sealed batch header: %w", err) + } + // Log information about the sealed batch + e.logSealedBatch(batchHeader, batchHash) + // Return the batch hash and encoded batch header + return batchHash[:], batchHeader, nil +} + +// handleBatchSealing determines which version to use for compression and calculates the data hash. +func (e *Executor) handleBatchSealing(blockTimestamp uint64) ([]byte, common.Hash, error) { + var ( + compressedPayload []byte + batchDataHash common.Hash + err error + ) + + // Check if the batch should use the upgraded version + if e.isBatchUpgraded(blockTimestamp) { + compressedPayload, err = types.CompressBatchBytes(e.batchingCache.batchData.TxsPayloadV2()) + if err != nil { + return nil, common.Hash{}, fmt.Errorf("failed to compress upgraded payload: %w", err) + } + + if len(compressedPayload) <= types.MaxBlobBytesSize { + batchDataHash, err = e.batchingCache.batchData.DataHashV2() + if err != nil { + return nil, common.Hash{}, fmt.Errorf("failed to calculate upgraded data hash: %w", err) + } + return compressedPayload, batchDataHash, nil + } + } + + // Fallback to old version if upgraded is not used + compressedPayload, err = types.CompressBatchBytes(e.batchingCache.batchData.TxsPayload()) + if err != nil { + return nil, common.Hash{}, fmt.Errorf("failed to compress payload: %w", err) + } + batchDataHash = e.batchingCache.batchData.DataHash() + + return compressedPayload, batchDataHash, nil +} + +// createBatchHeader creates a BatchHeader from the given parameters. +func (e *Executor) createBatchHeader(dataHash common.Hash, sidecar *eth.BlobTxSidecar, sequencerSetVerifyHash common.Hash, blockTimestamp uint64) types.BatchHeaderBytes { + blobHashes := []common.Hash{types.EmptyVersionedHash} + if sidecar != nil && len(sidecar.Blobs) > 0 { + blobHashes = sidecar.BlobHashes() + } + + parentBatchHeaderTotalL1, _ := e.batchingCache.parentBatchHeader.TotalL1MessagePopped() + + l1MessagePopped := e.batchingCache.totalL1MessagePopped - parentBatchHeaderTotalL1 + + parentBatchIndex, _ := e.batchingCache.parentBatchHeader.BatchIndex() + parentBatchHash, _ := e.batchingCache.parentBatchHeader.Hash() + batchHeaderV0 := types.BatchHeaderV0{ + BatchIndex: parentBatchIndex + 1, + L1MessagePopped: l1MessagePopped, + TotalL1MessagePopped: e.batchingCache.totalL1MessagePopped, + DataHash: dataHash, + BlobVersionedHash: blobHashes[0], + PrevStateRoot: e.batchingCache.prevStateRoot, + PostStateRoot: e.batchingCache.postStateRoot, + WithdrawalRoot: e.batchingCache.withdrawRoot, + SequencerSetVerifyHash: sequencerSetVerifyHash, + ParentBatchHash: parentBatchHash, + } + if e.isBatchUpgraded(blockTimestamp) { + batchHeaderV1 := types.BatchHeaderV1{ + BatchHeaderV0: batchHeaderV0, + LastBlockNumber: e.batchingCache.lastPackedBlockHeight, + } + return batchHeaderV1.Bytes() + } + + return batchHeaderV0.Bytes() +} + +// logSealedBatch logs the details of the sealed batch for debugging purposes. +func (e *Executor) logSealedBatch(batchHeader types.BatchHeaderBytes, batchHash common.Hash) { + e.logger.Info("Sealed batch header", "batchHash", batchHash.Hex()) + batchIndex, _ := batchHeader.BatchIndex() + l1MessagePopped, _ := batchHeader.L1MessagePopped() + totalL1MessagePopped, _ := batchHeader.TotalL1MessagePopped() + dataHash, _ := batchHeader.DataHash() + parentBatchHash, _ := batchHeader.ParentBatchHash() + e.logger.Info(fmt.Sprintf("===batchIndex: %d \n===L1MessagePopped: %d \n===TotalL1MessagePopped: %d \n===dataHash: %x \n===blockNum: %d \n===ParentBatchHash: %x \n", + batchIndex, + l1MessagePopped, + totalL1MessagePopped, + dataHash, + e.batchingCache.batchData.BlockNum(), + parentBatchHash)) + + blockContexts, _ := e.batchingCache.batchData.Encode() + e.logger.Info(fmt.Sprintf("===blockContexts: %x \n", blockContexts)) +} diff --git a/node/db/keys.go b/node/db/keys.go index 334009223..b0d50ddcd 100644 --- a/node/db/keys.go +++ b/node/db/keys.go @@ -3,8 +3,9 @@ package db import "encoding/binary" var ( - syncedL1HeightKey = []byte("LastSyncedL1Height") - L1MessagePrefix = []byte("l1") + syncedL1HeightKey = []byte("LastSyncedL1Height") + L1MessagePrefix = []byte("l1") + BatchBlockNumberPrefix = []byte("batch") derivationL1HeightKey = []byte("LastDerivationL1Height") ) @@ -20,3 +21,8 @@ func encodeEnqueueIndex(index uint64) []byte { func L1MessageKey(enqueueIndex uint64) []byte { return append(L1MessagePrefix, encodeEnqueueIndex(enqueueIndex)...) } + +// BatchBlockNumberKey = BatchBlockNumberKeyPrefix + batchIndex (uint64 big endian) +func BatchBlockNumberKey(batchIndex uint64) []byte { + return append(BatchBlockNumberPrefix, encodeEnqueueIndex(batchIndex)...) +} diff --git a/node/db/store.go b/node/db/store.go index dcabfc091..1a87a227c 100644 --- a/node/db/store.go +++ b/node/db/store.go @@ -121,7 +121,6 @@ func (s *Store) ReadL1MessageByIndex(index uint64) *types.L1Message { } return &l1Msg - } func (s *Store) WriteLatestDerivationL1Height(latest uint64) { diff --git a/node/derivation/batch_info.go b/node/derivation/batch_info.go index 17d4fe88a..4c1470aa0 100644 --- a/node/derivation/batch_info.go +++ b/node/derivation/batch_info.go @@ -1,16 +1,20 @@ package derivation import ( + "bytes" "encoding/binary" "fmt" + "io" "math/big" "github.com/morph-l2/go-ethereum/common" + "github.com/morph-l2/go-ethereum/common/hexutil" eth "github.com/morph-l2/go-ethereum/core/types" geth "github.com/morph-l2/go-ethereum/eth" "github.com/morph-l2/go-ethereum/eth/catalyst" "morph-l2/node/types" + "morph-l2/node/zstd" ) type BlockContext struct { @@ -53,9 +57,9 @@ type BatchInfo struct { lastBlockNumber uint64 firstBlockNumber uint64 - root common.Hash - withdrawalRoot common.Hash - skippedL1MessageBitmap *big.Int + root common.Hash + withdrawalRoot common.Hash + parentTotalL1MessagePopped uint64 } func (bi *BatchInfo) FirstBlockNumber() uint64 { @@ -76,29 +80,103 @@ func (bi *BatchInfo) TxNum() uint64 { // ParseBatch This method is externally referenced for parsing Batch func (bi *BatchInfo) ParseBatch(batch geth.RPCRollupBatch) error { + parentBatchHeader := types.BatchHeaderBytes(batch.ParentBatchHeader) + parentBatchIndex, err := parentBatchHeader.BatchIndex() + if err != nil { + return fmt.Errorf("decode batch header index error:%v", err) + } + totalL1MessagePopped, err := parentBatchHeader.TotalL1MessagePopped() + if err != nil { + return fmt.Errorf("decode batch header totalL1MessagePopped error:%v", err) + } + bi.parentTotalL1MessagePopped = totalL1MessagePopped bi.root = batch.PostStateRoot + bi.batchIndex = parentBatchIndex + 1 bi.withdrawalRoot = batch.WithdrawRoot - // If skipMap is zero value, there are no msgs that can be skipped - if len(batch.SkippedL1MessageBitmap[:]) != 0 { - bi.skippedL1MessageBitmap = new(big.Int).SetBytes(batch.SkippedL1MessageBitmap[:]) - } bi.version = uint64(batch.Version) tq := newTxQueue() + var rawBlockContexts hexutil.Bytes + var txsData []byte + var blockCount uint64 + if batch.Version > 0 { + parentVersion, err := parentBatchHeader.Version() + if err != nil { + return fmt.Errorf("decode batch header version error:%v", err) + } + if parentVersion == 0 { + if len(batch.Sidecar.Blobs) == 0 { + return fmt.Errorf("blobs length can not be zero") + } + blobData, err := types.RetrieveBlobBytes(&batch.Sidecar.Blobs[0]) + if err != nil { + return err + } + batchBytes, err := zstd.DecompressBatchBytes(blobData) + if err != nil { + return fmt.Errorf("decompress batch bytes error:%v", err) + } + var startBlock BlockContext + if err := startBlock.Decode(batchBytes[:60]); err != nil { + return fmt.Errorf("decode chunk block context error:%v", err) + } + blockCount = batch.LastBlockNumber - startBlock.Number + 1 + } else { + parentBatchBlock, err := parentBatchHeader.LastBlockNumber() + if err != nil { + return fmt.Errorf("decode batch header lastBlockNumber error:%v", err) + } + blockCount = batch.LastBlockNumber - parentBatchBlock + } + + } + // If BlockContexts is not nil, the block context should not be included in the blob. + // Therefore, the required length must be zero. + length := blockCount * 60 for _, blob := range batch.Sidecar.Blobs { blobCopy := blob - data, err := types.DecodeTxsFromBlob(&blobCopy) + blobData, err := types.RetrieveBlobBytes(&blobCopy) + if err != nil { + return err + } + batchBytes, err := zstd.DecompressBatchBytes(blobData) if err != nil { return err } - tq.enqueue(data) + reader := bytes.NewReader(batchBytes) + if batch.BlockContexts == nil { + if len(batchBytes) < int(length) { + rawBlockContexts = append(rawBlockContexts, batchBytes...) + length -= uint64(len(batchBytes)) + reader.Reset(nil) + } else { + bcBytes := make([]byte, length) + _, err = reader.Read(bcBytes) + if err != nil { + return fmt.Errorf("read block context error:%s", err.Error()) + } + rawBlockContexts = append(rawBlockContexts, bcBytes...) + length = 0 + } + } + data, err := io.ReadAll(reader) + if err != nil { + return fmt.Errorf("read txBytes error:%s", err.Error()) + } + txsData = append(txsData, data...) } - - blockNum := binary.BigEndian.Uint16(batch.BlockContexts[:2]) - rawBlockContexts := batch.BlockContexts[2:] + if batch.BlockContexts != nil { + blockCount = uint64(binary.BigEndian.Uint16(batch.BlockContexts[:2])) + rawBlockContexts = batch.BlockContexts[2 : 60*blockCount+2] + } + data, err := types.DecodeTxsFromBytes(txsData) + if err != nil { + return err + } + tq.enqueue(data) var txsNum uint64 var l1MsgNum uint64 - blockContexts := make([]*BlockContext, int(blockNum)) - for i := 0; i < int(blockNum); i++ { + blockContexts := make([]*BlockContext, int(blockCount)) + for i := 0; i < int(blockCount); i++ { var block BlockContext if err := block.Decode(rawBlockContexts[i*60 : i*60+60]); err != nil { return fmt.Errorf("decode chunk block context error:%v", err) @@ -106,7 +184,7 @@ func (bi *BatchInfo) ParseBatch(batch geth.RPCRollupBatch) error { if i == 0 { bi.firstBlockNumber = block.Number } - if i == int(blockNum)-1 { + if i == int(blockCount)-1 { bi.lastBlockNumber = block.Number } var safeL2Data catalyst.SafeL2Data @@ -138,7 +216,6 @@ func (bi *BatchInfo) ParseBatch(batch geth.RPCRollupBatch) error { } bi.txNum += txsNum bi.blockContexts = blockContexts - return nil } diff --git a/node/derivation/derivation.go b/node/derivation/derivation.go index 0b4eeb137..a3fc43fbe 100644 --- a/node/derivation/derivation.go +++ b/node/derivation/derivation.go @@ -48,8 +48,9 @@ type Derivation struct { l1BeaconClient *L1BeaconClient L2ToL1MessagePasser *bindings.L2ToL1MessagePasser - rollupABI *abi.ABI - legacyRollupABI *abi.ABI // before remove skipMap + rollupABI *abi.ABI + legacyRollupABI *abi.ABI // before remove skipMap + beforeMoveBlockCtxABI *abi.ABI db Database @@ -95,6 +96,10 @@ func NewDerivationClient(ctx context.Context, cfg *Config, syncer *sync.Syncer, if err != nil { return nil, err } + beforeMoveBlockCtxAbi, err := types.BeforeMoveBlockCtxABI.GetAbi() + if err != nil { + return nil, err + } ctx, cancel := context.WithCancel(ctx) logger = logger.With("module", "derivation") metrics := PrometheusMetrics("morphnode") @@ -118,6 +123,7 @@ func NewDerivationClient(ctx context.Context, cfg *Config, syncer *sync.Syncer, rollup: rollup, rollupABI: rollupAbi, legacyRollupABI: legacyRollupAbi, + beforeMoveBlockCtxABI: beforeMoveBlockCtxAbi, logger: logger, RollupContractAddress: cfg.RollupContractAddress, confirmations: cfg.L1.Confirmations, @@ -329,8 +335,8 @@ func (d *Derivation) fetchRollupDataByTxHash(txHash common.Hash, blockNumber uin func (d *Derivation) UnPackData(data []byte) (geth.RPCRollupBatch, error) { var batch geth.RPCRollupBatch - if bytes.Equal(d.rollupABI.Methods["commitBatch"].ID, data[:4]) { - args, err := d.rollupABI.Methods["commitBatch"].Inputs.Unpack(data[4:]) + if bytes.Equal(d.beforeMoveBlockCtxABI.Methods["commitBatch"].ID, data[:4]) { + args, err := d.beforeMoveBlockCtxABI.Methods["commitBatch"].Inputs.Unpack(data[4:]) if err != nil { return batch, fmt.Errorf("submitBatches Unpack error:%v", err) } @@ -365,13 +371,35 @@ func (d *Derivation) UnPackData(data []byte) (geth.RPCRollupBatch, error) { WithdrawalRoot [32]uint8 "json:\"withdrawalRoot\"" }) batch = geth.RPCRollupBatch{ - Version: uint(rollupBatchData.Version), - ParentBatchHeader: rollupBatchData.ParentBatchHeader, - BlockContexts: rollupBatchData.BlockContexts, - SkippedL1MessageBitmap: rollupBatchData.SkippedL1MessageBitmap, - PrevStateRoot: common.BytesToHash(rollupBatchData.PrevStateRoot[:]), - PostStateRoot: common.BytesToHash(rollupBatchData.PostStateRoot[:]), - WithdrawRoot: common.BytesToHash(rollupBatchData.WithdrawalRoot[:]), + Version: uint(rollupBatchData.Version), + ParentBatchHeader: rollupBatchData.ParentBatchHeader, + BlockContexts: rollupBatchData.BlockContexts, + PrevStateRoot: common.BytesToHash(rollupBatchData.PrevStateRoot[:]), + PostStateRoot: common.BytesToHash(rollupBatchData.PostStateRoot[:]), + WithdrawRoot: common.BytesToHash(rollupBatchData.WithdrawalRoot[:]), + } + } else if bytes.Equal(d.rollupABI.Methods["commitBatch"].ID, data[:4]) { + args, err := d.rollupABI.Methods["commitBatch"].Inputs.Unpack(data[4:]) + if err != nil { + return batch, fmt.Errorf("submitBatches Unpack error:%v", err) + } + rollupBatchData := args[0].(struct { + Version uint8 "json:\"version\"" + ParentBatchHeader []uint8 "json:\"parentBatchHeader\"" + LastBlockNumber uint64 "json:\"lastBlockNumber\"" + NumL1Messages uint16 "json:\"numL1Messages\"" + PrevStateRoot [32]uint8 "json:\"prevStateRoot\"" + PostStateRoot [32]uint8 "json:\"postStateRoot\"" + WithdrawalRoot [32]uint8 "json:\"withdrawalRoot\"" + }) + batch = geth.RPCRollupBatch{ + Version: uint(rollupBatchData.Version), + ParentBatchHeader: rollupBatchData.ParentBatchHeader, + LastBlockNumber: rollupBatchData.LastBlockNumber, + NumL1Messages: rollupBatchData.NumL1Messages, + PrevStateRoot: common.BytesToHash(rollupBatchData.PrevStateRoot[:]), + PostStateRoot: common.BytesToHash(rollupBatchData.PostStateRoot[:]), + WithdrawRoot: common.BytesToHash(rollupBatchData.WithdrawalRoot[:]), } } else { return batch, types.ErrNotCommitBatchTx @@ -380,25 +408,20 @@ func (d *Derivation) UnPackData(data []byte) (geth.RPCRollupBatch, error) { } func (d *Derivation) parseBatch(batch geth.RPCRollupBatch, l2Height uint64) (*BatchInfo, error) { - parentBatchHeader, err := types.DecodeBatchHeader(batch.ParentBatchHeader) - if err != nil { - return nil, fmt.Errorf("decode batch header error:%v", err) - } batchInfo := new(BatchInfo) if err := batchInfo.ParseBatch(batch); err != nil { return nil, fmt.Errorf("parse batch error:%v", err) } - if err := d.handleL1Message(batchInfo, parentBatchHeader.TotalL1MessagePopped, l2Height); err != nil { + if err := d.handleL1Message(batchInfo, batchInfo.parentTotalL1MessagePopped, l2Height); err != nil { return nil, fmt.Errorf("handle l1 message error:%v", err) } - batchInfo.batchIndex = parentBatchHeader.BatchIndex + 1 return batchInfo, nil } func (d *Derivation) handleL1Message(rollupData *BatchInfo, parentTotalL1MessagePopped, l2Height uint64) error { totalL1MessagePopped := parentTotalL1MessagePopped for bIndex, block := range rollupData.blockContexts { - // This may happen to nodes started from sanpshot, in which case we will no longer handle L1Msg + // This may happen to nodes started from snapshot, in which case we will no longer handle L1Msg if block.Number <= l2Height { continue } @@ -413,9 +436,6 @@ func (d *Derivation) handleL1Message(rollupData *BatchInfo, parentTotalL1Message totalL1MessagePopped += uint64(block.l1MsgNum) if len(l1Messages) > 0 { for _, l1Message := range l1Messages { - if rollupData.skippedL1MessageBitmap != nil && rollupData.skippedL1MessageBitmap.Bit(int(l1Message.QueueIndex)-int(parentTotalL1MessagePopped)) == 1 { - continue - } transaction := eth.NewTx(&l1Message.L1MessageTx) l1Transactions = append(l1Transactions, transaction) } diff --git a/node/derivation/derivation_test.go b/node/derivation/derivation_test.go index 6d16c0a0c..653ce96ce 100644 --- a/node/derivation/derivation_test.go +++ b/node/derivation/derivation_test.go @@ -11,9 +11,9 @@ import ( ) var ( - errorData = "0x92f65af30000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e0000000000000000000000000000000000000000000000000000000000000098000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000006a02b8abfcc1aa740eb6330093a5ef9c1d09c39672c390926de6db9089554b620322b8abfcc1aa740eb6330093a5ef9c1d09c39672c390926de6db9089554b6203227ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75700000000000000000000000000000000000000000000000000000000000006c00000000000000000000000000000000000000000000000000000000000000059000000000000000127000000000000000000000000000000006a5279896e0503ca805ecdb9208afa1ae78e214ceae183cf59fba3a8788e4598b0cd5e7bf4073160681199a5f107e15ec96c350840ebedb522a79c73615037b9000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004b11400000000000015520000000065e43bfb000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015530000000065e43c02000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015540000000065e43c08000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015550000000065e43c0f000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015560000000065e43c15000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015570000000065e43c1c000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015580000000065e43c22000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015590000000065e43c280000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155a0000000065e43c2f0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155b0000000065e43c350000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155c0000000065e43c3c0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155d0000000065e43c420000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155e0000000065e43c490000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155f0000000065e43c4f000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015600000000065e43c56000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015610000000065e43c5c000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015620000000065e43c62000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015630000000065e43c69000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015640000000065e43c6f000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015650000000065e43c7600000000000000000000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001656c61193a9eca0201811fc18e071ee949910f696d7464fb3ed32ce9e9f022967f03962fb34c8533f0d01c13e808f4c000000000000000000000000000000000a066efeb662c0804b6c35a0be989a5fbd6a229261b12a176195772febca89e806e3fa2bebe19f95c7491af5afc7334e000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001656c61193a9eca0201811fc18e071ee949910f696d7464fb3ed32ce9e9f022967f03962fb34c8533f0d01c13e808f4c000000000000000000000000000000000a066efeb662c0804b6c35a0be989a5fbd6a229261b12a176195772febca89e806e3fa2bebe19f95c7491af5afc7334e" - legacyData = "0xd63b3549000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000260292474b44bd10019728c36f474d43e57f666da244f857f10155d3b1df986d37700ba12e4dbe3733969348ffaf757b9225bdc7a3c48a5119f9a31256bbaa206fd6c0ab4151eda56c3b5b3f680e5100a43957ccb5aed62431468c550838e42f6df00000000000000000000000000000000000000000000000000000000000000f9000000000000008a98000000000000000000000000000001fbabd382d81484e2b0dc54e4d50d5767c312cd80d9c333217cc54d2a7395b06e650146a9e49d91463c241819423fac7ffa814a0a04473cace0e7a00b42da68ecd00a75fef5e27def60bbd05a3d76a3ca335df4d182a33e63c7f6c8e7890fe323f2292474b44bd10019728c36f474d43e57f666da244f857f10155d3b1df986d3776c0ab4151eda56c3b5b3f680e5100a43957ccb5aed62431468c550838e42f6dffed06619f2ec164eedb2121c02eda056059e58b8651d8b73785ab73f8aa3a555ac69de82ab218b900846f782176e21f0fa200cd8d8e8a70f64624e80d45d68a800000000000000000000000000000000000000000000000000000000000000000000000000003e000100000000000776ed00000000672b021600000000000000000000000000000000000000000000000000000000000f42400000000001c9c38003f9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000004e4600000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000b6346ded94fc61b637763610d0c59846b77810800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000b6346ded94fc61b637763610d0c59846b77810800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b6346ded94fc61b637763610d0c59846b778108000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000002c6d7a4e30d442f8d1acdc5068b604b75d1fc37673a07d51e0e56f3cbe28c36fa177a7d490b0147b89dbcc9e496f7d80000000000000000000000000000000001dddd9c85d12fb203286351cd1def0e5e830194ccc8ca494420adaa75db7613bf4cbe61fb316b8df2ec89eeda2b04e1" - data = "0x4a8d544f000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000260292474b44bd10019728c36f474d43e57f666da244f857f10155d3b1df986d37700ba12e4dbe3733969348ffaf757b9225bdc7a3c48a5119f9a31256bbaa206fd6c0ab4151eda56c3b5b3f680e5100a43957ccb5aed62431468c550838e42f6df00000000000000000000000000000000000000000000000000000000000000f9000000000000008a98000000000000000000000000000001fbabd382d81484e2b0dc54e4d50d5767c312cd80d9c333217cc54d2a7395b06e650146a9e49d91463c241819423fac7ffa814a0a04473cace0e7a00b42da68ecd00a75fef5e27def60bbd05a3d76a3ca335df4d182a33e63c7f6c8e7890fe323f2292474b44bd10019728c36f474d43e57f666da244f857f10155d3b1df986d3776c0ab4151eda56c3b5b3f680e5100a43957ccb5aed62431468c550838e42f6dffed06619f2ec164eedb2121c02eda056059e58b8651d8b73785ab73f8aa3a555ac69de82ab218b900846f782176e21f0fa200cd8d8e8a70f64624e80d45d68a800000000000000000000000000000000000000000000000000000000000000000000000000003e000100000000000776ed00000000672b021600000000000000000000000000000000000000000000000000000000000f42400000000001c9c38003f9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000004e4600000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000b6346ded94fc61b637763610d0c59846b77810800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000b6346ded94fc61b637763610d0c59846b77810800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b6346ded94fc61b637763610d0c59846b778108000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000002c6d7a4e30d442f8d1acdc5068b604b75d1fc37673a07d51e0e56f3cbe28c36fa177a7d490b0147b89dbcc9e496f7d80000000000000000000000000000000001dddd9c85d12fb203286351cd1def0e5e830194ccc8ca494420adaa75db7613bf4cbe61fb316b8df2ec89eeda2b04e1" + errorData = "0x92f65af30000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e0000000000000000000000000000000000000000000000000000000000000098000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000006a02b8abfcc1aa740eb6330093a5ef9c1d09c39672c390926de6db9089554b620322b8abfcc1aa740eb6330093a5ef9c1d09c39672c390926de6db9089554b6203227ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75700000000000000000000000000000000000000000000000000000000000006c00000000000000000000000000000000000000000000000000000000000000059000000000000000127000000000000000000000000000000006a5279896e0503ca805ecdb9208afa1ae78e214ceae183cf59fba3a8788e4598b0cd5e7bf4073160681199a5f107e15ec96c350840ebedb522a79c73615037b9000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004b11400000000000015520000000065e43bfb000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015530000000065e43c02000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015540000000065e43c08000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015550000000065e43c0f000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015560000000065e43c15000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015570000000065e43c1c000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015580000000065e43c22000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015590000000065e43c280000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155a0000000065e43c2f0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155b0000000065e43c350000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155c0000000065e43c3c0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155d0000000065e43c420000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155e0000000065e43c490000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000155f0000000065e43c4f000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015600000000065e43c56000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015610000000065e43c5c000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015620000000065e43c62000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015630000000065e43c69000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015640000000065e43c6f000000000000000000000000000000000000000000000000000000000000000000000000009896800000000000000000000015650000000065e43c7600000000000000000000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001656c61193a9eca0201811fc18e071ee949910f696d7464fb3ed32ce9e9f022967f03962fb34c8533f0d01c13e808f4c000000000000000000000000000000000a066efeb662c0804b6c35a0be989a5fbd6a229261b12a176195772febca89e806e3fa2bebe19f95c7491af5afc7334e000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001656c61193a9eca0201811fc18e071ee949910f696d7464fb3ed32ce9e9f022967f03962fb34c8533f0d01c13e808f4c000000000000000000000000000000000a066efeb662c0804b6c35a0be989a5fbd6a229261b12a176195772febca89e806e3fa2bebe19f95c7491af5afc7334e" + legacyData = "0xd63b3549000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000260292474b44bd10019728c36f474d43e57f666da244f857f10155d3b1df986d37700ba12e4dbe3733969348ffaf757b9225bdc7a3c48a5119f9a31256bbaa206fd6c0ab4151eda56c3b5b3f680e5100a43957ccb5aed62431468c550838e42f6df00000000000000000000000000000000000000000000000000000000000000f9000000000000008a98000000000000000000000000000001fbabd382d81484e2b0dc54e4d50d5767c312cd80d9c333217cc54d2a7395b06e650146a9e49d91463c241819423fac7ffa814a0a04473cace0e7a00b42da68ecd00a75fef5e27def60bbd05a3d76a3ca335df4d182a33e63c7f6c8e7890fe323f2292474b44bd10019728c36f474d43e57f666da244f857f10155d3b1df986d3776c0ab4151eda56c3b5b3f680e5100a43957ccb5aed62431468c550838e42f6dffed06619f2ec164eedb2121c02eda056059e58b8651d8b73785ab73f8aa3a555ac69de82ab218b900846f782176e21f0fa200cd8d8e8a70f64624e80d45d68a800000000000000000000000000000000000000000000000000000000000000000000000000003e000100000000000776ed00000000672b021600000000000000000000000000000000000000000000000000000000000f42400000000001c9c38003f9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000004e4600000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000b6346ded94fc61b637763610d0c59846b77810800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000b6346ded94fc61b637763610d0c59846b77810800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b6346ded94fc61b637763610d0c59846b778108000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000002c6d7a4e30d442f8d1acdc5068b604b75d1fc37673a07d51e0e56f3cbe28c36fa177a7d490b0147b89dbcc9e496f7d80000000000000000000000000000000001dddd9c85d12fb203286351cd1def0e5e830194ccc8ca494420adaa75db7613bf4cbe61fb316b8df2ec89eeda2b04e1" + beforeMoveBctxData = "0x4a8d544f000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000260292474b44bd10019728c36f474d43e57f666da244f857f10155d3b1df986d37700ba12e4dbe3733969348ffaf757b9225bdc7a3c48a5119f9a31256bbaa206fd6c0ab4151eda56c3b5b3f680e5100a43957ccb5aed62431468c550838e42f6df00000000000000000000000000000000000000000000000000000000000000f9000000000000008a98000000000000000000000000000001fbabd382d81484e2b0dc54e4d50d5767c312cd80d9c333217cc54d2a7395b06e650146a9e49d91463c241819423fac7ffa814a0a04473cace0e7a00b42da68ecd00a75fef5e27def60bbd05a3d76a3ca335df4d182a33e63c7f6c8e7890fe323f2292474b44bd10019728c36f474d43e57f666da244f857f10155d3b1df986d3776c0ab4151eda56c3b5b3f680e5100a43957ccb5aed62431468c550838e42f6dffed06619f2ec164eedb2121c02eda056059e58b8651d8b73785ab73f8aa3a555ac69de82ab218b900846f782176e21f0fa200cd8d8e8a70f64624e80d45d68a800000000000000000000000000000000000000000000000000000000000000000000000000003e000100000000000776ed00000000672b021600000000000000000000000000000000000000000000000000000000000f42400000000001c9c38003f9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000004e4600000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000b6346ded94fc61b637763610d0c59846b77810800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000b6346ded94fc61b637763610d0c59846b77810800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000b096665645994775eeba8aa114752d569734dcb40000000000000000000000003a587733d38e5487d2a7e81d84625f25c99ab3a1000000000000000000000000675cfc328f9f2e79a51e499b2be44462270572fe000000000000000000000000b6346ded94fc61b637763610d0c59846b778108000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000002c6d7a4e30d442f8d1acdc5068b604b75d1fc37673a07d51e0e56f3cbe28c36fa177a7d490b0147b89dbcc9e496f7d80000000000000000000000000000000001dddd9c85d12fb203286351cd1def0e5e830194ccc8ca494420adaa75db7613bf4cbe61fb316b8df2ec89eeda2b04e1" ) func TestUnPackData(t *testing.T) { @@ -21,9 +21,12 @@ func TestUnPackData(t *testing.T) { require.NoError(t, err) legacyRollupAbi, err := types.LegacyRollupMetaData.GetAbi() require.NoError(t, err) + beforeMoveBlockCtxABI, err := types.BeforeMoveBlockCtxABI.GetAbi() + require.NoError(t, err) d := Derivation{ - rollupABI: rollupAbi, - legacyRollupABI: legacyRollupAbi, + rollupABI: rollupAbi, + legacyRollupABI: legacyRollupAbi, + beforeMoveBlockCtxABI: beforeMoveBlockCtxABI, } errorTxData, err := hexutil.Decode(errorData) require.NoError(t, err) @@ -36,11 +39,11 @@ func TestUnPackData(t *testing.T) { LegacyBatchInfo := new(BatchInfo) err = LegacyBatchInfo.ParseBatch(legacyBatch) require.NoError(t, err) - txData, err := hexutil.Decode(data) + beforeMoveBctxTxData, err := hexutil.Decode(beforeMoveBctxData) require.NoError(t, err) - batch, err := d.UnPackData(txData) + beforeMoveBctxBatch, err := d.UnPackData(beforeMoveBctxTxData) require.NoError(t, err) - batchInfo := new(BatchInfo) - err = batchInfo.ParseBatch(batch) + beforeMoveBctxBatchInfo := new(BatchInfo) + err = beforeMoveBctxBatchInfo.ParseBatch(beforeMoveBctxBatch) require.NoError(t, err) } diff --git a/node/go.mod b/node/go.mod index 031fa72e6..560d05a0f 100644 --- a/node/go.mod +++ b/node/go.mod @@ -2,7 +2,7 @@ module morph-l2/node go 1.22 -replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.1 +replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 require ( github.com/cenkalti/backoff/v4 v4.1.3 @@ -10,7 +10,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/golang-lru v1.0.2 github.com/klauspost/compress v1.17.9 - github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 + github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c github.com/prometheus/client_golang v1.17.0 github.com/spf13/viper v1.13.0 github.com/stretchr/testify v1.9.0 diff --git a/node/go.sum b/node/go.sum index 868e83176..0791c3e4f 100644 --- a/node/go.sum +++ b/node/go.sum @@ -360,10 +360,10 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= -github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= -github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 h1:qhBMCyTQ/ezOpeqHGKjr4qSN/B/bGFByuYjQqDt5wiw= +github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= diff --git a/node/types/batch.go b/node/types/batch.go index 12b95cd96..c9746dfc7 100644 --- a/node/types/batch.go +++ b/node/types/batch.go @@ -8,7 +8,6 @@ import ( "github.com/morph-l2/go-ethereum/accounts/abi/bind" "github.com/morph-l2/go-ethereum/common" - "github.com/morph-l2/go-ethereum/common/hexutil" "github.com/morph-l2/go-ethereum/crypto" ) @@ -17,86 +16,15 @@ var ( LegacyRollupMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIncorrectBatchLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNoBlockInBatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blockContexts\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"skippedL1MessageBitmap\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", } -) - -type BatchHeader struct { - // Encoded in BatchHeaderV0Codec - Version uint8 - BatchIndex uint64 - L1MessagePopped uint64 - TotalL1MessagePopped uint64 - DataHash common.Hash - BlobVersionedHash common.Hash - PrevStateRoot common.Hash - PostStateRoot common.Hash - WithdrawalRoot common.Hash - SequencerSetVerifyHash common.Hash - ParentBatchHash common.Hash - SkippedL1MessageBitmap hexutil.Bytes - - //cache - EncodedBytes hexutil.Bytes -} - -// Encode encodes the BatchHeader into RollupV2 BatchHeaderV0Codec Encoding. -func (b *BatchHeader) Encode() []byte { - if len(b.EncodedBytes) > 0 { - return b.EncodedBytes - } - batchBytes := make([]byte, 249+len(b.SkippedL1MessageBitmap)) - batchBytes[0] = b.Version - binary.BigEndian.PutUint64(batchBytes[1:], b.BatchIndex) - binary.BigEndian.PutUint64(batchBytes[9:], b.L1MessagePopped) - binary.BigEndian.PutUint64(batchBytes[17:], b.TotalL1MessagePopped) - copy(batchBytes[25:], b.DataHash[:]) - copy(batchBytes[57:], b.BlobVersionedHash[:]) - copy(batchBytes[89:], b.PrevStateRoot[:]) - copy(batchBytes[121:], b.PostStateRoot[:]) - copy(batchBytes[153:], b.WithdrawalRoot[:]) - copy(batchBytes[185:], b.SequencerSetVerifyHash[:]) - copy(batchBytes[217:], b.ParentBatchHash[:]) - copy(batchBytes[249:], b.SkippedL1MessageBitmap[:]) - b.EncodedBytes = batchBytes - return batchBytes -} - -// Hash calculates the hash of the batch header. -func (b *BatchHeader) Hash() common.Hash { - if len(b.EncodedBytes) == 0 { - b.Encode() - } - - return crypto.Keccak256Hash(b.EncodedBytes) -} - -// DecodeBatchHeader attempts to decode the given byte slice into a BatchHeader. -func DecodeBatchHeader(data []byte) (BatchHeader, error) { - if len(data) < 249 { - return BatchHeader{}, fmt.Errorf("insufficient data for BatchHeader") - } - b := BatchHeader{ - Version: data[0], - - BatchIndex: binary.BigEndian.Uint64(data[1:9]), - L1MessagePopped: binary.BigEndian.Uint64(data[9:17]), - TotalL1MessagePopped: binary.BigEndian.Uint64(data[17:25]), - DataHash: common.BytesToHash(data[25:57]), - BlobVersionedHash: common.BytesToHash(data[57:89]), - PrevStateRoot: common.BytesToHash(data[89:121]), - PostStateRoot: common.BytesToHash(data[121:153]), - WithdrawalRoot: common.BytesToHash(data[153:185]), - SequencerSetVerifyHash: common.BytesToHash(data[185:217]), - ParentBatchHash: common.BytesToHash(data[217:249]), - SkippedL1MessageBitmap: data[249:], - - EncodedBytes: data, + BeforeMoveBlockCtxABI = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainID\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIncorrectBatchLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNoBlockInBatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"winner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"res\",\"type\":\"string\"}],\"name\":\"ChallengeRes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChallengeRewardClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"}],\"name\":\"ChallengeState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProveRemainingClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateChallenger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"UpdateFinalizationPeriodSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPercent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPercent\",\"type\":\"uint256\"}],\"name\":\"UpdateProofRewardPercent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWindow\",\"type\":\"uint256\"}],\"name\":\"UpdateProofWindow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_2_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"batchChallengeReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchChallenged\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchChallengedSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchDataStore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"originTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizeTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"batchInsideChallengeWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batchHash\",\"type\":\"bytes32\"}],\"name\":\"challengeState\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"challenges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"batchIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"challengeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"challengeSuccess\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"finished\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimProveRemaining\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blockContexts\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIRollup.BatchDataInput\",\"name\":\"batchDataInput\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"signedSequencersBitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSets\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structIRollup.BatchSignatureInput\",\"name\":\"batchSignatureInput\",\"type\":\"tuple\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"committedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizationPeriodSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"finalizeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inChallenge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1StakingContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalizationPeriodSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_proofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_prevStateRoot\",\"type\":\"bytes32\"}],\"name\":\"initialize2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengerAddress\",\"type\":\"address\"}],\"name\":\"isChallenger\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isChallenger\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1StakingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCommittedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofRewardPercent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveRemaining\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_batchProof\",\"type\":\"bytes\"}],\"name\":\"proveState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeChallenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revertReqIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPeriod\",\"type\":\"uint256\"}],\"name\":\"updateFinalizePeriodSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newWindow\",\"type\":\"uint256\"}],\"name\":\"updateProofWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newProofRewardPercent\",\"type\":\"uint256\"}],\"name\":\"updateRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRoots\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", } - return b, nil -} +) type BatchData struct { blockContexts []byte l1TxHashes []byte + l1TxNum uint16 blockNum uint16 txsPayload []byte @@ -121,6 +49,7 @@ func (cks *BatchData) Append(blockContext, txsPayload []byte, l1TxHashes []commo for _, txHash := range l1TxHashes { cks.l1TxHashes = append(cks.l1TxHashes, txHash.Bytes()...) } + cks.l1TxNum += uint16(len(l1TxHashes)) } // Encode encodes the data into bytes @@ -160,10 +89,47 @@ func (cks *BatchData) DataHash() common.Hash { return crypto.Keccak256Hash(bz) } +// DataHashV2 computes the Keccak-256 hash of the batch data, incorporating +// the last block height, L1 transaction count, and L1 transaction hashes. +func (cks *BatchData) DataHashV2() (common.Hash, error) { + // Validate blockContexts length + if len(cks.blockContexts) < 60 { + return common.Hash{}, fmt.Errorf("blockContexts too short, length: %d", len(cks.blockContexts)) + } + + // Extract the last 60 bytes + lastBlockContext := cks.blockContexts[len(cks.blockContexts)-60:] + + // Parse block height + height, err := HeightFromBlockContextBytes(lastBlockContext) + if err != nil { + return common.Hash{}, fmt.Errorf("failed to parse blockContext: context length=%d, lastBlockContext=%x, err=%w", + len(cks.blockContexts), lastBlockContext, err) + } + + // Compute the hash + return cks.calculateHash(height), nil +} + +func (cks *BatchData) calculateHash(height uint64) common.Hash { + // Preallocate memory for efficiency + hashData := make([]byte, 8+2+len(cks.l1TxHashes)) // 8 bytes for height, 2 bytes for l1TxNum + copy(hashData[:8], Uint64ToBigEndianBytes(height)) + copy(hashData[8:10], Uint16ToBigEndianBytes(cks.l1TxNum)) + copy(hashData[10:], cks.l1TxHashes) + + return crypto.Keccak256Hash(hashData) +} + func (cks *BatchData) TxsPayload() []byte { return cks.txsPayload } +// TxsPayloadV2 returns the bytes combining the block contexts with the tx payload +func (cks *BatchData) TxsPayloadV2() []byte { + return append(cks.blockContexts, cks.txsPayload...) +} + func (cks *BatchData) BlockNum() uint16 { return cks.blockNum } func (cks *BatchData) EstimateCompressedSizeWithNewPayload(txPayload []byte) (bool, error) { @@ -177,3 +143,28 @@ func (cks *BatchData) EstimateCompressedSizeWithNewPayload(txPayload []byte) (bo } return len(compressed) > MaxBlobBytesSize, nil } + +func (cks *BatchData) combinePayloads(newBlockContext, newTxPayload []byte) []byte { + totalLength := len(cks.blockContexts) + len(newBlockContext) + len(cks.txsPayload) + len(newTxPayload) + combined := make([]byte, totalLength) + copy(combined, cks.blockContexts) + copy(combined[len(cks.blockContexts):], newBlockContext) + copy(combined[len(cks.blockContexts)+len(newBlockContext):], cks.txsPayload) + copy(combined[len(cks.blockContexts)+len(newBlockContext)+len(cks.txsPayload):], newTxPayload) + return combined +} + +// WillExceedCompressedSizeLimit checks if the size of the combined block contexts +// and transaction payloads (after compression) exceeds the maximum allowed size. +func (cks *BatchData) WillExceedCompressedSizeLimit(newBlockContext, newTxPayload []byte) (bool, error) { + // Combine the existing and new block contexts and transaction payloads + combinedBytes := cks.combinePayloads(newBlockContext, newTxPayload) + if len(combinedBytes) <= MaxBlobBytesSize { + return false, nil + } + compressed, err := zstd.CompressBatchBytes(combinedBytes) + if err != nil { + return false, fmt.Errorf("compression failed: %w", err) + } + return len(compressed) > MaxBlobBytesSize, nil +} diff --git a/node/types/batch_header.go b/node/types/batch_header.go new file mode 100644 index 000000000..d8832a7e8 --- /dev/null +++ b/node/types/batch_header.go @@ -0,0 +1,215 @@ +package types + +import ( + "encoding/binary" + "errors" + + "github.com/morph-l2/go-ethereum/common" + "github.com/morph-l2/go-ethereum/common/hexutil" + "github.com/morph-l2/go-ethereum/crypto" +) + +type ( + BatchHeaderBytes []byte +) + +const ( + expectedLengthV0 = 249 + expectedLengthV1 = 257 + + BatchHeaderVersion0 = 0 + BatchHeaderVersion1 = 1 +) + +var ( + ErrInvalidBatchHeaderLength = errors.New("invalid BatchHeaderBytes length") + ErrInvalidBatchHeaderVersion = errors.New("invalid BatchHeaderBytes version") + ErrEmptyBatchHeaderBytes = errors.New("empty BatchHeaderBytes") + ErrNotFoundInBatchHeader = errors.New("not found in BatchHeaderBytes") +) + +func (b BatchHeaderBytes) validate() error { + version, err := b.Version() + if err != nil { + return err + } + switch version { + case BatchHeaderVersion0: + if len(b) != expectedLengthV0 { + return ErrInvalidBatchHeaderLength + } + case BatchHeaderVersion1: + if len(b) != expectedLengthV1 { + return ErrInvalidBatchHeaderLength + } + default: + return ErrInvalidBatchHeaderVersion + } + return nil +} + +func (b BatchHeaderBytes) Bytes() []byte { + return b[:] +} + +func (b BatchHeaderBytes) Hash() (common.Hash, error) { + if err := b.validate(); err != nil { + return common.Hash{}, err + } + return crypto.Keccak256Hash(b), nil +} + +func (b BatchHeaderBytes) Version() (uint8, error) { + if len(b) == 0 { + return 0, ErrEmptyBatchHeaderBytes + } + return b[0], nil +} + +func (b BatchHeaderBytes) BatchIndex() (uint64, error) { + if err := b.validate(); err != nil { + return 0, err + } + return binary.BigEndian.Uint64(b[1:9]), nil +} + +func (b BatchHeaderBytes) L1MessagePopped() (uint64, error) { + if err := b.validate(); err != nil { + return 0, err + } + return binary.BigEndian.Uint64(b[9:17]), nil +} + +func (b BatchHeaderBytes) TotalL1MessagePopped() (uint64, error) { + if err := b.validate(); err != nil { + return 0, err + } + return binary.BigEndian.Uint64(b[17:25]), nil +} + +func (b BatchHeaderBytes) DataHash() (common.Hash, error) { + if err := b.validate(); err != nil { + return common.Hash{}, err + } + return common.BytesToHash(b[25:57]), nil +} + +func (b BatchHeaderBytes) BlobVersionedHash() (common.Hash, error) { + if err := b.validate(); err != nil { + return common.Hash{}, err + } + return common.BytesToHash(b[57:89]), nil +} + +func (b BatchHeaderBytes) PrevStateRoot() (common.Hash, error) { + if err := b.validate(); err != nil { + return common.Hash{}, err + } + return common.BytesToHash(b[89:121]), nil +} + +func (b BatchHeaderBytes) PostStateRoot() (common.Hash, error) { + if err := b.validate(); err != nil { + return common.Hash{}, err + } + return common.BytesToHash(b[121:153]), nil +} + +func (b BatchHeaderBytes) WithdrawalRoot() (common.Hash, error) { + if err := b.validate(); err != nil { + return common.Hash{}, err + } + return common.BytesToHash(b[153:185]), nil +} + +func (b BatchHeaderBytes) SequencerSetVerifyHash() (common.Hash, error) { + if err := b.validate(); err != nil { + return common.Hash{}, err + } + return common.BytesToHash(b[185:217]), nil +} + +func (b BatchHeaderBytes) ParentBatchHash() (common.Hash, error) { + if err := b.validate(); err != nil { + return common.Hash{}, err + } + return common.BytesToHash(b[217:249]), nil +} + +func (b BatchHeaderBytes) LastBlockNumber() (uint64, error) { + if err := b.validate(); err != nil { + return 0, err + } + version, _ := b.Version() + if version < 1 { + return 0, errors.New("LastBlockNumber is not available in version 0") + } + return binary.BigEndian.Uint64(b[249:257]), nil +} + +// structed batch header for version 0 +type BatchHeaderV0 struct { + BatchIndex uint64 + L1MessagePopped uint64 + TotalL1MessagePopped uint64 + DataHash common.Hash + BlobVersionedHash common.Hash + PrevStateRoot common.Hash + PostStateRoot common.Hash + WithdrawalRoot common.Hash + SequencerSetVerifyHash common.Hash + ParentBatchHash common.Hash + + //cache + EncodedBytes hexutil.Bytes +} + +func (b BatchHeaderV0) Bytes() BatchHeaderBytes { + if len(b.EncodedBytes) > 0 { + return BatchHeaderBytes(b.EncodedBytes) + } + batchBytes := make([]byte, expectedLengthV0) + batchBytes[0] = BatchHeaderVersion0 + binary.BigEndian.PutUint64(batchBytes[1:], b.BatchIndex) + binary.BigEndian.PutUint64(batchBytes[9:], b.L1MessagePopped) + binary.BigEndian.PutUint64(batchBytes[17:], b.TotalL1MessagePopped) + copy(batchBytes[25:], b.DataHash[:]) + copy(batchBytes[57:], b.BlobVersionedHash[:]) + copy(batchBytes[89:], b.PrevStateRoot[:]) + copy(batchBytes[121:], b.PostStateRoot[:]) + copy(batchBytes[153:], b.WithdrawalRoot[:]) + copy(batchBytes[185:], b.SequencerSetVerifyHash[:]) + copy(batchBytes[217:], b.ParentBatchHash[:]) + b.EncodedBytes = batchBytes + return batchBytes +} + +type BatchHeaderV1 struct { + BatchHeaderV0 + LastBlockNumber uint64 + + //cache + EncodedBytes hexutil.Bytes +} + +func (b BatchHeaderV1) Bytes() BatchHeaderBytes { + if len(b.EncodedBytes) > 0 { + return BatchHeaderBytes(b.EncodedBytes) + } + batchBytes := make([]byte, expectedLengthV1) + batchBytes[0] = BatchHeaderVersion1 + binary.BigEndian.PutUint64(batchBytes[1:], b.BatchIndex) + binary.BigEndian.PutUint64(batchBytes[9:], b.L1MessagePopped) + binary.BigEndian.PutUint64(batchBytes[17:], b.TotalL1MessagePopped) + copy(batchBytes[25:], b.DataHash[:]) + copy(batchBytes[57:], b.BlobVersionedHash[:]) + copy(batchBytes[89:], b.PrevStateRoot[:]) + copy(batchBytes[121:], b.PostStateRoot[:]) + copy(batchBytes[153:], b.WithdrawalRoot[:]) + copy(batchBytes[185:], b.SequencerSetVerifyHash[:]) + copy(batchBytes[217:], b.ParentBatchHash[:]) + binary.BigEndian.PutUint64(batchBytes[249:], b.LastBlockNumber) + + b.EncodedBytes = batchBytes + return batchBytes +} diff --git a/node/types/batch_test.go b/node/types/batch_test.go index 25dc43e36..97a3393e8 100644 --- a/node/types/batch_test.go +++ b/node/types/batch_test.go @@ -2,16 +2,15 @@ package types import ( "math/big" + "morph-l2/bindings/bindings" "testing" "github.com/morph-l2/go-ethereum/common" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/rand" ) func TestBatchHeader(t *testing.T) { - expectedBatchHeader := BatchHeader{ - Version: 0, + expectedBatchHeaderV0 := BatchHeaderV0{ BatchIndex: 10, L1MessagePopped: 5, TotalL1MessagePopped: 20, @@ -22,22 +21,62 @@ func TestBatchHeader(t *testing.T) { WithdrawalRoot: common.BigToHash(big.NewInt(103)), SequencerSetVerifyHash: common.BigToHash(big.NewInt(104)), ParentBatchHash: common.BigToHash(big.NewInt(200)), - SkippedL1MessageBitmap: rand.Bytes(10), } - bytes := expectedBatchHeader.Encode() + batchHeaderBytes := expectedBatchHeaderV0.Bytes() - decoded, err := DecodeBatchHeader(bytes) - require.NoError(t, err) - require.EqualValues(t, expectedBatchHeader.Version, decoded.Version) - require.EqualValues(t, expectedBatchHeader.BatchIndex, decoded.BatchIndex) - require.EqualValues(t, expectedBatchHeader.L1MessagePopped, decoded.L1MessagePopped) - require.EqualValues(t, expectedBatchHeader.TotalL1MessagePopped, decoded.TotalL1MessagePopped) - require.EqualValues(t, expectedBatchHeader.DataHash, decoded.DataHash) - require.EqualValues(t, expectedBatchHeader.BlobVersionedHash, decoded.BlobVersionedHash) - require.EqualValues(t, expectedBatchHeader.PrevStateRoot, decoded.PrevStateRoot) - require.EqualValues(t, expectedBatchHeader.PostStateRoot, decoded.PostStateRoot) - require.EqualValues(t, expectedBatchHeader.WithdrawalRoot, decoded.WithdrawalRoot) - require.EqualValues(t, expectedBatchHeader.SequencerSetVerifyHash, decoded.SequencerSetVerifyHash) - require.EqualValues(t, expectedBatchHeader.ParentBatchHash, decoded.ParentBatchHash) - require.EqualValues(t, expectedBatchHeader.SkippedL1MessageBitmap, decoded.SkippedL1MessageBitmap) + version, err := batchHeaderBytes.Version() + require.NoError(t, err) + batchIndex, err := batchHeaderBytes.BatchIndex() + require.NoError(t, err) + l1MessagePopped, err := batchHeaderBytes.L1MessagePopped() + require.NoError(t, err) + totalL1MessagePopped, err := batchHeaderBytes.TotalL1MessagePopped() + require.NoError(t, err) + dataHash, err := batchHeaderBytes.DataHash() + require.NoError(t, err) + blobVersionedHash, err := batchHeaderBytes.BlobVersionedHash() + require.NoError(t, err) + prevStateRoot, err := batchHeaderBytes.PrevStateRoot() + require.NoError(t, err) + postStateRoot, err := batchHeaderBytes.PostStateRoot() + require.NoError(t, err) + withdrawalRoot, err := batchHeaderBytes.WithdrawalRoot() + require.NoError(t, err) + sequencerSetVerifyHash, err := batchHeaderBytes.SequencerSetVerifyHash() + require.NoError(t, err) + parentBatchHash, err := batchHeaderBytes.ParentBatchHash() + require.NoError(t, err) + + require.EqualValues(t, 0, version) + require.EqualValues(t, expectedBatchHeaderV0.BatchIndex, batchIndex) + require.EqualValues(t, expectedBatchHeaderV0.L1MessagePopped, l1MessagePopped) + require.EqualValues(t, expectedBatchHeaderV0.TotalL1MessagePopped, totalL1MessagePopped) + require.EqualValues(t, expectedBatchHeaderV0.DataHash, dataHash) + require.EqualValues(t, expectedBatchHeaderV0.BlobVersionedHash, blobVersionedHash) + require.EqualValues(t, expectedBatchHeaderV0.PrevStateRoot, prevStateRoot) + require.EqualValues(t, expectedBatchHeaderV0.PostStateRoot, postStateRoot) + require.EqualValues(t, expectedBatchHeaderV0.WithdrawalRoot, withdrawalRoot) + require.EqualValues(t, expectedBatchHeaderV0.SequencerSetVerifyHash, sequencerSetVerifyHash) + require.EqualValues(t, expectedBatchHeaderV0.ParentBatchHash, parentBatchHash) + + expectedBatchHeaderV1 := BatchHeaderV1{ + BatchHeaderV0: expectedBatchHeaderV0, + LastBlockNumber: 1000, + }.Bytes() + version, err = expectedBatchHeaderV1.Version() + require.NoError(t, err) + lastBlockNumber, err := expectedBatchHeaderV1.LastBlockNumber() + require.NoError(t, err) + require.EqualValues(t, 1, version) + require.EqualValues(t, 1000, lastBlockNumber) +} + +func TestMethodID(t *testing.T) { + beforeSkipABI, err := LegacyRollupMetaData.GetAbi() + require.NoError(t, err) + beforeMoveBlockCtxABI, err := BeforeMoveBlockCtxABI.GetAbi() + require.NoError(t, err) + currentABI, err := bindings.RollupMetaData.GetAbi() + require.NoError(t, err) + require.NotEqualValues(t, beforeSkipABI.Methods["commitBatch"].ID, beforeMoveBlockCtxABI.Methods["commitBatch"].ID, currentABI.Methods["commitBatch"].ID) } diff --git a/node/types/blob.go b/node/types/blob.go index a6b86e26a..05070d7b3 100644 --- a/node/types/blob.go +++ b/node/types/blob.go @@ -110,6 +110,17 @@ func MakeBlobTxSidecar(blobBytes []byte) (*eth.BlobTxSidecar, error) { }, nil } +func CompressBatchBytes(batchBytes []byte) ([]byte, error) { + if len(batchBytes) == 0 { + return nil, nil + } + compressedBatchBytes, err := zstd.CompressBatchBytes(batchBytes) + if err != nil { + return nil, fmt.Errorf("failed to compress batch bytes, err: %w", err) + } + return compressedBatchBytes, nil +} + func EncodeTxsPayloadToBlob(batchBytes []byte) (*eth.BlobTxSidecar, error) { if len(batchBytes) == 0 { return MakeBlobTxSidecar(batchBytes) @@ -238,6 +249,150 @@ func DecodeTxsFromBlob(blob *kzg4844.Blob) (eth.Transactions, error) { return txs, nil } +func DecodeBlocksFromBlob(blob *kzg4844.Blob) (eth.Transactions, error) { + if isEmptyBlob(blob) { + return eth.Transactions{}, nil + } + data, err := RetrieveBlobBytes(blob) + if err != nil { + return nil, err + } + batchBytes, err := zstd.DecompressBatchBytes(data) + if err != nil { + return nil, err + } + reader := bytes.NewReader(batchBytes) + txs := make(eth.Transactions, 0) + for { + var ( + firstByte byte + fullTxBytes []byte + innerTx eth.TxData + err error + ) + if err = binary.Read(reader, binary.BigEndian, &firstByte); err != nil { + // if the blob byte array is completely consumed, then break the loop + if err == io.EOF { + break + } + return nil, err + } + // zero byte is found after valid tx bytes, break the loop + if firstByte == 0 { + break + } + + switch firstByte { + case eth.AccessListTxType: + if err := binary.Read(reader, binary.BigEndian, &firstByte); err != nil { + return nil, err + } + innerTx = new(eth.AccessListTx) + case eth.DynamicFeeTxType: + if err := binary.Read(reader, binary.BigEndian, &firstByte); err != nil { + return nil, err + } + innerTx = new(eth.DynamicFeeTx) + default: + if firstByte <= 0xf7 { // legacy tx first byte must be greater than 0xf7(247) + return nil, fmt.Errorf("not supported tx type: %d", firstByte) + } + innerTx = new(eth.LegacyTx) + } + + // we support the tx types of LegacyTxType/AccessListTxType/DynamicFeeTxType + //if firstByte == eth.AccessListTxType || firstByte == eth.DynamicFeeTxType { + // // the firstByte here is used to indicate tx type, so skip it + // if err := binary.Read(reader, binary.BigEndian, &firstByte); err != nil { + // return nil, err + // } + //} else if firstByte <= 0xf7 { // legacy tx first byte must be greater than 0xf7(247) + // return nil, fmt.Errorf("not supported tx type: %d", firstByte) + //} + fullTxBytes, err = extractInnerTxFullBytes(firstByte, reader) + if err != nil { + return nil, err + } + if err = rlp.DecodeBytes(fullTxBytes, innerTx); err != nil { + return nil, err + } + txs = append(txs, eth.NewTx(innerTx)) + } + return txs, nil +} + +func DecodeTxsFromBytes(txsBytes []byte) (eth.Transactions, error) { + //if isEmptyBlob(blob) { + // return eth.Transactions{}, nil + //} + //data, err := RetrieveBlobBytes(blob) + //if err != nil { + // return nil, err + //} + //batchBytes, err := zstd.DecompressBatchBytes(data) + //if err != nil { + // return nil, err + //} + reader := bytes.NewReader(txsBytes) + txs := make(eth.Transactions, 0) + for { + var ( + firstByte byte + fullTxBytes []byte + innerTx eth.TxData + err error + ) + if err = binary.Read(reader, binary.BigEndian, &firstByte); err != nil { + // if the blob byte array is completely consumed, then break the loop + if err == io.EOF { + break + } + return nil, err + } + // zero byte is found after valid tx bytes, break the loop + if firstByte == 0 { + break + } + + switch firstByte { + case eth.AccessListTxType: + if err := binary.Read(reader, binary.BigEndian, &firstByte); err != nil { + return nil, err + } + innerTx = new(eth.AccessListTx) + case eth.DynamicFeeTxType: + if err := binary.Read(reader, binary.BigEndian, &firstByte); err != nil { + return nil, err + } + innerTx = new(eth.DynamicFeeTx) + default: + if firstByte <= 0xf7 { // legacy tx first byte must be greater than 0xf7(247) + return nil, fmt.Errorf("not supported tx type: %d", firstByte) + } + innerTx = new(eth.LegacyTx) + } + + // we support the tx types of LegacyTxType/AccessListTxType/DynamicFeeTxType + //if firstByte == eth.AccessListTxType || firstByte == eth.DynamicFeeTxType { + // // the firstByte here is used to indicate tx type, so skip it + // if err := binary.Read(reader, binary.BigEndian, &firstByte); err != nil { + // return nil, err + // } + //} else if firstByte <= 0xf7 { // legacy tx first byte must be greater than 0xf7(247) + // return nil, fmt.Errorf("not supported tx type: %d", firstByte) + //} + fullTxBytes, err = extractInnerTxFullBytes(firstByte, reader) + if err != nil { + return nil, err + } + if err = rlp.DecodeBytes(fullTxBytes, innerTx); err != nil { + return nil, err + } + txs = append(txs, eth.NewTx(innerTx)) + } + return txs, nil +} + func isEmptyBlob(blob *kzg4844.Blob) bool { for _, b := range blob { if b != 0 { diff --git a/node/types/consensus_message.go b/node/types/consensus_message.go index 1fdbe491d..94742380b 100644 --- a/node/types/consensus_message.go +++ b/node/types/consensus_message.go @@ -3,6 +3,7 @@ package types import ( "bytes" "encoding/binary" + "fmt" "math/big" "github.com/morph-l2/go-ethereum/common" @@ -145,3 +146,26 @@ func (wb *WrappedBlock) DecodeBlockContext(bc []byte) (uint16, uint16, error) { } return txsNum, l1MsgNum, nil } + +func WrappedBlockFromBytes(blockBytes []byte) (*WrappedBlock, error) { + var curBlock = new(WrappedBlock) + if err := curBlock.UnmarshalBinary(blockBytes); err != nil { + return nil, err + } + return curBlock, nil +} + +func HeightFromBlockBytes(blockBytes []byte) (uint64, error) { + curBlock, err := WrappedBlockFromBytes(blockBytes) + if err != nil { + return 0, err + } + return curBlock.Number, nil +} + +func HeightFromBlockContextBytes(blockContextBytes []byte) (uint64, error) { + if len(blockContextBytes) != 60 { + return 0, fmt.Errorf("wrong block context bytes length, input: %x", blockContextBytes) + } + return binary.BigEndian.Uint64(blockContextBytes[:8]), nil +} diff --git a/node/types/retryable_client.go b/node/types/retryable_client.go index cf874ab81..3d3ad949d 100644 --- a/node/types/retryable_client.go +++ b/node/types/retryable_client.go @@ -3,6 +3,7 @@ package types import ( "context" "math/big" + "strings" "github.com/cenkalti/backoff/v4" "github.com/morph-l2/go-ethereum" @@ -15,13 +16,14 @@ import ( ) const ( - ConnectionRefused = "connection refused" - EOFError = "EOF" - JWTStaleToken = "stale token" - JWTExpiredToken = "token is expired" - MinerClosed = "miner closed" - ExecutionAborted = "execution aborted" - Timeout = "timed out" + ConnectionRefused = "connection refused" + EOFError = "EOF" + JWTStaleToken = "stale token" + JWTExpiredToken = "token is expired" + MinerClosed = "miner closed" + ExecutionAborted = "execution aborted" + Timeout = "timed out" + DiscontinuousBlockError = "discontinuous block number" ) type RetryableClient struct { @@ -220,7 +222,7 @@ func (rc *RetryableClient) CodeAt(ctx context.Context, contract common.Address, return } -// currently we want every error retryable +// currently we want every error retryable, except the DiscontinuousBlockError func retryableError(err error) bool { // return strings.Contains(err.Error(), ConnectionRefused) || // strings.Contains(err.Error(), EOFError) || @@ -229,5 +231,5 @@ func retryableError(err error) bool { // strings.Contains(err.Error(), MinerClosed) || // strings.Contains(err.Error(), ExecutionAborted) || // strings.Contains(err.Error(), Timeout) - return true + return !strings.Contains(err.Error(), DiscontinuousBlockError) } diff --git a/ops/devnet-morph/devnet/__init__.py b/ops/devnet-morph/devnet/__init__.py index ba151512b..061c35350 100644 --- a/ops/devnet-morph/devnet/__init__.py +++ b/ops/devnet-morph/devnet/__init__.py @@ -229,7 +229,7 @@ def devnet_deploy(paths, args): run_command(['docker', 'compose', '-f', 'docker-compose-4nodes.yml', 'up', - '-d'], check=False, cwd=paths.ops_dir, + '--no-recreate','-d'], check=False, cwd=paths.ops_dir, env={ 'MORPH_PORTAL': addresses['Proxy__L1MessageQueueWithGasPriceOracle'], 'MORPH_ROLLUP': addresses['Proxy__Rollup'], diff --git a/ops/docker/Dockerfile.l2-node b/ops/docker/Dockerfile.l2-node index 940ca9dfd..eab8377ee 100644 --- a/ops/docker/Dockerfile.l2-node +++ b/ops/docker/Dockerfile.l2-node @@ -1,5 +1,5 @@ # Build Stage -FROM morph/go-ubuntu-builder:go-1.22-ubuntu as builder +FROM ghcr.io/morph-l2/go-ubuntu-builder:go-1.22-ubuntu as builder # Set working directory and copy necessary files COPY . /morph @@ -9,7 +9,7 @@ WORKDIR /morph/node RUN make build # Final Stage -FROM morph/go-ubuntu-builder:go-1.22-ubuntu +FROM ghcr.io/morph-l2/go-ubuntu-builder:go-1.22-ubuntu # Update and install dependencies, then clean up unnecessary files RUN apt-get -qq update \ diff --git a/ops/docker/Dockerfile.l2-node-1 b/ops/docker/Dockerfile.l2-node-1 index 4ef95807d..0e86e94cd 100644 --- a/ops/docker/Dockerfile.l2-node-1 +++ b/ops/docker/Dockerfile.l2-node-1 @@ -1,5 +1,5 @@ # Build Geth in a stock Go builder container -FROM morph/go-ubuntu-builder:go-1.22-ubuntu as builder +FROM ghcr.io/morph-l2/go-ubuntu-builder:go-1.22-ubuntu as builder COPY . /morph WORKDIR /morph/node RUN make build diff --git a/ops/docker/Dockerfile.l2-node-4 b/ops/docker/Dockerfile.l2-node-4 index bbcc23c1b..40b0119a2 100644 --- a/ops/docker/Dockerfile.l2-node-4 +++ b/ops/docker/Dockerfile.l2-node-4 @@ -1,5 +1,5 @@ # Build Geth in a stock Go builder container -FROM morph/go-ubuntu-builder:go-1.22-ubuntu as builder +FROM ghcr.io/morph-l2/go-ubuntu-builder:go-1.22-ubuntu as builder RUN apt-get -qq update \ && apt-get -qq install -y --no-install-recommends ca-certificates COPY . /morph diff --git a/ops/docker/Dockerfile.staking-oracle b/ops/docker/Dockerfile.staking-oracle index eadeaa28e..5d78373ee 100644 --- a/ops/docker/Dockerfile.staking-oracle +++ b/ops/docker/Dockerfile.staking-oracle @@ -1,4 +1,4 @@ -FROM morph/go-ubuntu-builder:go-1.22-ubuntu as builder +FROM ghcr.io/morph-l2/go-ubuntu-builder:go-1.22-ubuntu as builder # Copy source code and build application COPY . /morph @@ -6,7 +6,7 @@ WORKDIR /morph/oracle RUN make build # Deploy stage using the same base image (morph/go-ubuntu-builder:go-1.22-ubuntu) -FROM morph/go-ubuntu-builder:go-1.22-ubuntu +FROM ghcr.io/morph-l2/go-ubuntu-builder:go-1.22-ubuntu # Install only necessary dependencies (e.g., ca-certificates for networking) RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && rm -rf /var/lib/apt/lists/* diff --git a/ops/docker/Dockerfile.submitter b/ops/docker/Dockerfile.submitter index 726530c23..5d84686ad 100644 --- a/ops/docker/Dockerfile.submitter +++ b/ops/docker/Dockerfile.submitter @@ -1,5 +1,5 @@ # Build Geth in a stock Go builder container -FROM morph/go-ubuntu-builder:go-1.22-ubuntu as builder +FROM ghcr.io/morph-l2/go-ubuntu-builder:go-1.22-ubuntu as builder COPY . /morph @@ -8,7 +8,7 @@ WORKDIR /morph/tx-submitter RUN make build # Pull Geth into a second stage deploy alpine container -FROM morph/go-ubuntu-builder:go-1.22-ubuntu +FROM ghcr.io/morph-l2/go-ubuntu-builder:go-1.22-ubuntu RUN apt-get -qq update \ && apt-get -qq install -y --no-install-recommends ca-certificates diff --git a/ops/l2-genesis/cmd/genesis/cmd.go b/ops/l2-genesis/cmd/genesis/cmd.go index 30f249e54..aac68d399 100644 --- a/ops/l2-genesis/cmd/genesis/cmd.go +++ b/ops/l2-genesis/cmd/genesis/cmd.go @@ -115,11 +115,11 @@ var Subcommands = cli.Commands{ if err != nil { return err } - fmt.Printf("generated genesis batch header bytes: %x \n", genesisBatchHeader.Encode()) + fmt.Printf("generated genesis batch header bytes: %x \n", genesisBatchHeader.Bytes()) if err := writeGenesisFile(genBatchHeaderFile, genesisBatchHeader); err != nil { return err } - genesisBatchHeaderBytes = genesisBatchHeader.EncodedBytes + genesisBatchHeaderBytes = genesisBatchHeader.Bytes() } rollupConfig, err := config.RollupConfig(l1StartBlock, l2GenesisBlockHash, l2GenesisBlock.Number().Uint64(), l2GenesisBlock.Root(), withdrawRoot, genesisBatchHeaderBytes) diff --git a/ops/l2-genesis/go.mod b/ops/l2-genesis/go.mod index cd5ed08c0..baee14bf0 100644 --- a/ops/l2-genesis/go.mod +++ b/ops/l2-genesis/go.mod @@ -2,11 +2,11 @@ module morph-l2/morph-deployer go 1.22 -replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.1 +replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 require ( github.com/holiman/uint256 v1.2.4 - github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 + github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c github.com/stretchr/testify v1.9.0 github.com/urfave/cli v1.22.14 ) diff --git a/ops/l2-genesis/go.sum b/ops/l2-genesis/go.sum index fbb92ea29..e8a16264d 100644 --- a/ops/l2-genesis/go.sum +++ b/ops/l2-genesis/go.sum @@ -143,8 +143,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= diff --git a/ops/l2-genesis/morph-chain-ops/genesis/layer_two_test.go b/ops/l2-genesis/morph-chain-ops/genesis/layer_two_test.go index 8ce0e6ae8..56f945ac7 100644 --- a/ops/l2-genesis/morph-chain-ops/genesis/layer_two_test.go +++ b/ops/l2-genesis/morph-chain-ops/genesis/layer_two_test.go @@ -80,5 +80,5 @@ func Test_BuildL2DeveloperGenesis(t *testing.T) { l2GenesisBlock := l2Genesis.ToBlock(nil) genesisBatchHeader, err := node.GenesisBatchHeader(l2GenesisBlock.Header()) require.NoError(t, err) - t.Logf("generated genesis batch header bytes: %x \n", genesisBatchHeader.Encode()) + t.Logf("generated genesis batch header bytes: %x \n", genesisBatchHeader.Bytes()) } diff --git a/ops/tools/batchparse/main.go b/ops/tools/batchparse/main.go index 3b1b9a441..429756a1d 100644 --- a/ops/tools/batchparse/main.go +++ b/ops/tools/batchparse/main.go @@ -3,9 +3,10 @@ package main import ( "context" "fmt" - "morph-l2/node/derivation" "github.com/morph-l2/go-ethereum/ethclient" + + "morph-l2/node/derivation" ) var ( diff --git a/ops/tools/go.mod b/ops/tools/go.mod index 81a7b0bd3..348b937a5 100644 --- a/ops/tools/go.mod +++ b/ops/tools/go.mod @@ -2,10 +2,10 @@ module morph-l2/tools go 1.22 -replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.1 +replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 require ( - github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 + github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c github.com/tendermint/tendermint v0.35.9 ) diff --git a/ops/tools/go.sum b/ops/tools/go.sum index 471b75e08..22b9bac33 100644 --- a/ops/tools/go.sum +++ b/ops/tools/go.sum @@ -163,10 +163,10 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= -github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= -github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 h1:qhBMCyTQ/ezOpeqHGKjr4qSN/B/bGFByuYjQqDt5wiw= +github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= diff --git a/ops/tools/multisend/main.go b/ops/tools/multisend/main.go index 672542790..c32653651 100644 --- a/ops/tools/multisend/main.go +++ b/ops/tools/multisend/main.go @@ -46,7 +46,7 @@ func main() { start := time.Now() var count int for { - if count == 10000000 || time.Now().Sub(start) > duration { + if count == 10000000 || time.Since(start) > duration { fmt.Println("completed") break } diff --git a/oracle/go.mod b/oracle/go.mod index e2846a6e8..5622af61e 100644 --- a/oracle/go.mod +++ b/oracle/go.mod @@ -2,12 +2,12 @@ module morph-l2/oracle go 1.22 -replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.1 +replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 require ( github.com/go-kit/kit v0.12.0 github.com/morph-l2/externalsign v0.3.1 - github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 + github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c github.com/prometheus/client_golang v1.17.0 github.com/stretchr/testify v1.9.0 github.com/tendermint/tendermint v0.35.9 diff --git a/oracle/go.sum b/oracle/go.sum index 54788c16b..d087a3498 100644 --- a/oracle/go.sum +++ b/oracle/go.sum @@ -175,10 +175,10 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/morph-l2/externalsign v0.3.1 h1:UYFDZFB0L85A4rDvuwLNBiGEi0kSmg9AZ2v8Q5O4dQo= github.com/morph-l2/externalsign v0.3.1/go.mod h1:b6NJ4GUiiG/gcSJsp3p8ExsIs4ZdphlrVALASnVoGJE= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= -github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= -github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 h1:qhBMCyTQ/ezOpeqHGKjr4qSN/B/bGFByuYjQqDt5wiw= +github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= diff --git a/oracle/oracle/batch.go b/oracle/oracle/batch.go index 4270bc117..2384637c9 100644 --- a/oracle/oracle/batch.go +++ b/oracle/oracle/batch.go @@ -10,6 +10,7 @@ import ( "morph-l2/bindings/bindings" "morph-l2/node/derivation" + nodetypes "morph-l2/node/types" "morph-l2/oracle/backoff" "github.com/morph-l2/go-ethereum/accounts/abi/bind" @@ -154,13 +155,29 @@ func (o *Oracle) getBatchSubmissionByLogs(rLogs []types.Log, recordBatchSubmissi WithdrawalRoot [32]uint8 "json:\"withdrawalRoot\"" }) batch = eth.RPCRollupBatch{ - Version: uint(rollupBatchData.Version), - ParentBatchHeader: rollupBatchData.ParentBatchHeader, - BlockContexts: rollupBatchData.BlockContexts, - SkippedL1MessageBitmap: rollupBatchData.SkippedL1MessageBitmap, - PrevStateRoot: common.BytesToHash(rollupBatchData.PrevStateRoot[:]), - PostStateRoot: common.BytesToHash(rollupBatchData.PostStateRoot[:]), - WithdrawRoot: common.BytesToHash(rollupBatchData.WithdrawalRoot[:]), + Version: uint(rollupBatchData.Version), + ParentBatchHeader: rollupBatchData.ParentBatchHeader, + BlockContexts: rollupBatchData.BlockContexts, + //SkippedL1MessageBitmap: rollupBatchData.SkippedL1MessageBitmap, + PrevStateRoot: common.BytesToHash(rollupBatchData.PrevStateRoot[:]), + PostStateRoot: common.BytesToHash(rollupBatchData.PostStateRoot[:]), + WithdrawRoot: common.BytesToHash(rollupBatchData.WithdrawalRoot[:]), + } + parentBatchHeader := nodetypes.BatchHeaderBytes(batch.ParentBatchHeader) + parentVersion, err := parentBatchHeader.Version() + if err != nil { + return fmt.Errorf("decode parent batch version error:%v", err) + } + if batch.Version == 1 && parentVersion == 0 { + parentBatchIndex, err := parentBatchHeader.BatchIndex() + if err != nil { + return fmt.Errorf("decode parent batch index error:%v", err) + } + parentBatch, err := o.l2Client.GetRollupBatchByIndex(o.ctx, parentBatchIndex) + if err != nil { + return fmt.Errorf("get parent batch error:%v", err) + } + batch.Sidecar = parentBatch.Sidecar } } else { continue diff --git a/prover/bin/challenge/src/abi/Rollup.json b/prover/bin/challenge/src/abi/Rollup.json index dc4c9bba6..28f7a5c6d 100644 --- a/prover/bin/challenge/src/abi/Rollup.json +++ b/prover/bin/challenge/src/abi/Rollup.json @@ -15,16 +15,6 @@ "name": "ErrZeroAddress", "type": "error" }, - { - "inputs": [], - "name": "ErrorIncorrectBatchLength", - "type": "error" - }, - { - "inputs": [], - "name": "ErrorNoBlockInBatch", - "type": "error" - }, { "anonymous": false, "inputs": [ @@ -619,9 +609,14 @@ "type": "bytes" }, { - "internalType": "bytes", - "name": "blockContexts", - "type": "bytes" + "internalType": "uint64", + "name": "lastBlockNumber", + "type": "uint64" + }, + { + "internalType": "uint16", + "name": "numL1Messages", + "type": "uint16" }, { "internalType": "bytes32", diff --git a/prover/bin/challenge/src/handler.rs b/prover/bin/challenge/src/handler.rs index dc40a1407..cdb8ea429 100644 --- a/prover/bin/challenge/src/handler.rs +++ b/prover/bin/challenge/src/handler.rs @@ -1,4 +1,4 @@ -use crate::abi::rollup_abi::{CommitBatchCall, Rollup, RollupErrors}; +use crate::abi::rollup_abi::{CommitBatchCall, Rollup}; use crate::external_sign::ExternalSign; use crate::metrics::METRICS; use crate::util::read_env_var; @@ -152,7 +152,7 @@ impl ChallengeHandler { None => continue, }; - let mut batch_info = match batch_inspect(l1_provider, challenged_rollup_hash).await { + let mut batch_info = match batch_inspect(l1_rollup, l1_provider, batch_index, challenged_rollup_hash).await { Some(mut b) => { b.batch_index = batch_index; b.parent_batch_hash = batch_hash.as_bytes().try_into().unwrap_or_default(); @@ -161,15 +161,15 @@ impl ChallengeHandler { None => continue, }; - let blocks = &batch_info.blocks_info; + let blocks_len = batch_info.end_block - batch_info.start_block + 1; log::info!( "batch info: batch index = {:#?}, blocks len = {:#?}, start_block = {:#?}, end_block = {:#?}", batch_info.batch_index, - blocks.len(), - blocks.first().unwrap_or(&0u64), - blocks.last().unwrap_or(&0u64), + batch_info.end_block - batch_info.start_block + 1, + batch_info.start_block, + batch_info.end_block, ); - METRICS.blocks_len.set(blocks.len() as i64); + METRICS.blocks_len.set((batch_info.end_block - batch_info.start_block + 1) as i64); if let Some(batch_proof) = query_proof(batch_index).await { if !batch_proof.proof_data.is_empty() { @@ -183,8 +183,8 @@ impl ChallengeHandler { // Step4. Make a call to the Prove server. let request = ProveRequest { batch_index, - start_block: *blocks.first().unwrap_or(&0u64), - end_block: *blocks.last().unwrap_or(&0u64), + start_block: batch_info.start_block, + end_block: batch_info.end_block, rpc: l2_rpc.to_owned(), }; let rt = tokio::task::spawn_blocking(move || util::call_prover(serde_json::to_string(&request).unwrap(), "/prove_batch")) @@ -218,7 +218,7 @@ impl ChallengeHandler { } // Step5. query proof and prove onchain state. - let mut max_waiting_time: usize = 1600 * blocks.len(); //block_prove_time =30min + let mut max_waiting_time: usize = 1600 * blocks_len as usize; //block_prove_time =30min while max_waiting_time > 300 { sleep(Duration::from_secs(300)).await; max_waiting_time -= 300; @@ -408,7 +408,8 @@ async fn detecte_challenge_event(latest: U64, l1_rollup: &RollupType, l1_provide struct BatchInfo { version: u8, batch_index: u64, - blocks_info: Vec, + start_block: u64, + end_block: u64, l1_message_popped: u64, total_l1_message_popped: u64, data_hash: [u8; 32], @@ -420,7 +421,14 @@ struct BatchInfo { parent_batch_hash: [u8; 32], } -async fn batch_inspect(l1_provider: &Provider, hash: TxHash) -> Option { +async fn batch_inspect(l1_rollup: &RollupType, l1_provider: &Provider, batch_index: u64, hash: TxHash) -> Option { + let prev_batch_last_bn: U256 = match l1_rollup.batch_data_store(U256::from(batch_index - 1)).await { + Ok(s) => s.2, + Err(e) => { + log::error!("l1_rollup.batch_data_store err: {:#?}", e); + return None; + } + }; //Step1. Get transaction let result = l1_provider.get_transaction(hash).await; let tx = match result { @@ -452,15 +460,17 @@ async fn batch_inspect(l1_provider: &Provider, hash: TxHash) -> Option Option<(Vec, u64)> { - if block_contexts.is_empty() { - return None; - } - - let mut blocks: Vec = vec![]; - let mut txn_in_batch = 0u32; - let mut total_l1_txn = 0u64; - let bs: &[u8] = &block_contexts; - - // decode blocks from batch - // | 2 bytes | 60 bytes | ... | 60 bytes | - // | num blocks | block 1 | ... | block n | - let num_blocks: u16 = ((bs[0] as u16) << 8) | (bs[1] as u16); - - for i in 0..num_blocks as usize { - let block_num = u64::from_be_bytes(bs.get((60.mul(i) + 2)..(60.mul(i) + 2 + 8))?.try_into().unwrap()); - let txs_num = u16::from_be_bytes(bs.get((60.mul(i) + 2 + 56)..(60.mul(i) + 2 + 58))?.try_into().unwrap()); - let l1_txs_num = u16::from_be_bytes(bs.get((60.mul(i) + 2 + 58)..(60.mul(i) + 2 + 60))?.try_into().unwrap()); - txn_in_batch += txs_num as u32; - total_l1_txn += l1_txs_num as u64; - - blocks.push(block_num); - } - - METRICS.txn_len.set(txn_in_batch.into()); - log::info!("total_l2txn_in_batch: {:#?}", txn_in_batch); - log::debug!("num_blocks: {:#?}, decode_blocks: {:#?}", num_blocks, blocks); - Some((blocks, total_l1_txn)) -} - async fn send_transaction( contract: Address, calldata: Option, @@ -589,11 +569,7 @@ async fn sign_tx( pub fn contract_error(e: ContractError) -> String { let error_msg = if let Some(contract_err) = e.as_revert() { - if let Some(data) = RollupErrors::decode_with_selector(contract_err.as_ref()) { - format!("exec error: {:?}", data) - } else { - format!("unknown contract error: {:?}", contract_err) - } + format!("contract error: {:?}", contract_err) } else { format!("error: {:?}", e) }; diff --git a/prover/bin/challenge/src/main.rs b/prover/bin/challenge/src/main.rs index 04d3c15c7..f134ac403 100644 --- a/prover/bin/challenge/src/main.rs +++ b/prover/bin/challenge/src/main.rs @@ -48,10 +48,8 @@ async fn metric_mng() { fn register_metrics() { // detected batch index. REGISTRY.register(Box::new(METRICS.detected_batch_index.clone())).unwrap(); - // chunks len. + // blocks len. REGISTRY.register(Box::new(METRICS.blocks_len.clone())).unwrap(); - // txn len. - REGISTRY.register(Box::new(METRICS.txn_len.clone())).unwrap(); // prover status. REGISTRY.register(Box::new(METRICS.verify_result.clone())).unwrap(); // wallet balance. diff --git a/prover/bin/challenge/src/metrics.rs b/prover/bin/challenge/src/metrics.rs index 4e014ab10..480d01f26 100644 --- a/prover/bin/challenge/src/metrics.rs +++ b/prover/bin/challenge/src/metrics.rs @@ -4,7 +4,6 @@ use prometheus::{Gauge, IntGauge, Registry}; pub struct Metrics { pub detected_batch_index: IntGauge, pub blocks_len: IntGauge, - pub txn_len: IntGauge, pub verify_result: IntGauge, pub wallet_balance: Gauge, } @@ -14,7 +13,6 @@ lazy_static! { pub static ref METRICS: Metrics = Metrics { detected_batch_index: IntGauge::new("detected_batch_index", "detected batch index").expect("detected metric can be created"), blocks_len: IntGauge::new("blocks_len", "blocks len").expect("blocks_len metric can be created"), - txn_len: IntGauge::new("txn_len", "txn len").expect("txn_len metric can be created"), verify_result: IntGauge::new("verify_result", "verify result").expect("verify metric can be created"), wallet_balance: Gauge::new("handler_wallet_balance", "handler wallet balance").expect("wallet metric can be created"), }; diff --git a/prover/bin/client/elf/riscv32im-succinct-zkvm-elf b/prover/bin/client/elf/riscv32im-succinct-zkvm-elf index ca87163232c341a0188c6401f56bc2c04b710786..a44a17da7b604608722d7463ea8c3246b5dfe7d3 100755 GIT binary patch delta 969113 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 z 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 #dRU54VWVLkJIJ^>kv2f79x!7>#0 zcK!j&P+a8P`S0{_C@yfGh-E0=;`|Jjp*Y?74=h9RX6K&&@E4ZTGNU6T&;Qd2$XLA9 zZQ(0ehT_(4fz;jnnN5b`T`qqHmZ4ZTXg-#qIQ-#p+It7fP~6ll-}qk+IYV)kTmD=u zL$T~&`24?w0Aq2YlUraDmZ4bP>OYPUL$UfoEJLw+8J3|~{SB6(Sbg*!t}2FN_2pQG zVjMmHmlD`|urK%p%TTNfoRDY~4#nyzScYPC8J3|~{STI*Sba)Lqi`rz&%!bkcMAXh zABU`xKo&zSCn6je8l*M~hvFjVY%D{uzBjxW%TPRBj~JGrc(to70aR z=+*Wsu#CLBWd4(ps7YF*aOl+rF2XYO>SehC%h0R&U$6|lOWpFBdp8P)Uag;vW$4xV zDl9{9_%|V0-@*H^L5#dXrh5Zo3;`K>b%9bWlZo!ZUorRJH#vWM%v)pb+#tFB`pEqK zUw4S!j1@HBFL@6yjCn=Ozr>umfAaFPVtzX`^S>U#0~;nUkQ?*zn17DBM|yG}nilgb zG4IugdYS*VQw)%R@q(D&kNLpH$@S;Qd@r`0?uVFrHfhBF|1-UEJ^{M{n_@n?X>x;8 zu&u9*`M_q$`LQuS)vOWozuADq0m&;kC+7QO{x0UO2PQ9n9kv^|E|zcDJV;(3r+KpP z!?uC#F?TsAIX^Y#SFzo}{SQvA9~#60#W8;y^KmVb8@M*+ikSCnnOvWP?FI!8!~#FW z-2IT`1qx$+C+34&CD)I^_6U|HJ4pPQ97vpYXmSG!v29>;%xzmI54{s(ektbt+t_;M z|MQaqDT$JpYhym;Fxx;%Vga^8^TwFl9G;xN)LQ2MCke<{tV8kNF`tonc6;BmT_Utm0LZ#)r81JNrbF$I_K9H77d_W;f~ z!{DRr0cad9o=ZkY^V722V6@{2^~h7-!-vQ2Y@4nyXOK{?0 z^ZdVxz{VB6U^T8Weijcb_4#t~8t-*@^NZf=al6;N-@`fYxf>jgdE1Y87wsM9{}Ha! z%_Okc9MVT|q47q%1-EpkY!9w8`C~WowHhqHqAjO%7_Kt;LcIDNzd<+P1_8ZZ&sh-x z*+TVgIPLw+`tN+a=B)X*qyh4+2}mdX$650!A9DoA%LYllhqLDU;Gh!)vPvmfK#oYBv*s_w(g)N9So(naDlC0SJvAU8ok#;SaoR=xPpd!btobK#Q}PEBkPZ0E zS@T=*(PsIEn&Y4{8ZTDXEMoHc(n&Lz*+{lX2n-&yk|coO+$ zF8{u>=0C=>$-8gQGyZ)V1+-uvd@BXIg~vNxY8Zu}klH=~$-*X+Y(&i%$) zSY}sw?g;1q76p8GECKgLqf4+%pVOV!VwpaxT?2bx(J-7o+qwKOEVJia_r;~Dlr8-|n94(BmgCa1-2 zg^yyHobucXYOzdC42a<#_ng=;oSfto$Pt)@Wpdh>M*j;B2?3d%(p-bhCh;>i5Bmm2 zVws$@fd{cnPPuM{Kj3h3Vyu<+x?hEvoEEzcF2pi9WjnuvWpXMC+yVz*oxBGZ#k?Zs zpJP60a`N&sV}2v%##5qG9_TsGbpiFNn0Lk8|C;1Jvn1wiF?YQ-xqfEkpuW>p#R^(Y z^}SRM>A0AmjXCYQ7G$J~?;zXQ9+V+q(^{aDO(G50ADX_hW83 zE4hBmEI$9YD_j*T_$}t%vy&T`7xQ~Dx0sV$pBM9^b7Fh+Ypmepx%DGeG;qZHX3UM| zCD#v)`Ri|bn46O8uZ{W5 zm|NVOJQ9vgc93{HIgr>D^XUtcC!5=2{wC%Vi<0Z-U^}4cSa$n5f z#@u;Pa{ZK;Uy6C}TTHz?|DR1j9-VY@xg+K;Vm@jy*LgU5MU%}HF|UpJ-Uz8Rztf$`4NQ)?)Z9|ZI~s4{eDkFA9H)P>HL|P3GG;`(A%n`~ludUT?E^J4YLwn%HX#D&PX4w)`60m~s&Pr>%CcRKd3+C3-DO%G4We1dZSQ2R`JcuIOZfAb5U zGj3%5&v$_%`EXbcVWIP+(T&1G9=<6>1Ak#TBHVv{87@yE-q#bpb2no-^FSO$6kegwOM=@W{*fl!{XlKELBhSdK_j>QmT&XYjaN zvcu)YbIcKtPPz=YX8CIO2FEd9L}qbmA<+p3IW(x}a5#Y>nELRP6yn4t-zVnbm3T9G zdB0${vot45qK#9HtP?rOXRPu=G8+wdAaB^;AR zUoj3CXJY#+8mCD9JHLFtfWVS5eqgu~ml)rJ*BHN!H~;J#cnA0X)%ydS{ipXP+|MkZ zx|Pe^IOt5Eoe7MOpuMK9hiq6O)}aKMl(%P|wD43e-2@jmC?y9D(S?^Z#80( z^>Wh6O@tfCPq5B4A(nxo_Zn(l`7xQtuX>S6S%UV__8}u}mKC)qN_x#@^pO4q+)%om* z6x@L2GHLD}m;b}k%bU6lxQ3xsF3W-Las78jLK%3f-3t1SYZSgQnSo_woQ>rO>d2XO zd84pTWXb#&77(yU;EkAnHHTP+)+XB+Seo>#|6i>I&a6*XnYapXARoQ>&u4ha*ue=o zQPPPY!b@@e`~Ou0=1Ra7{2>b*;2YSDSDO6M-;h7Z=R4u`CVxIIGoFPDTKf7M@n-UY zuJCCBy$|sPWq6?R%ed(YJ)=*{*@s5eypwsTuRjnM9OiupPCMNDaGZIh_fdFm+nzz9 zK+YizUL6JM57~8i7h9;4QwiRAjBj8SE^6<+8ZR||R@}ko%kjjE{oC{3;i(q~{*WK= zE!Xw2eu0*_ng#R-osO$a0~7E@lfPTs(J%i19+K~ue;a3FnQNpE{Eo8%Q;@Np*{ri~ z;AmWRoOdTYu8a2xc(QROUe?v;Pr+M{_wI+~6h^O<#F;qQVLHha0xKy9Z%Ek270$Xq zDJ~_i)9IJany<#|$?I&|>buCA&%hhZ1|0nz^S|7|M6c9DCki&3k?sV%1D{KQ9I{+z ztsjefvIF{`R*Rf9e;byoO1%`zWvIUYyCAv_HBdrgTasM(PSI zM^ybLmQJjG52w>-WS3=!{t8?`3lcl{!2k;M?e~t(nm++cFIM-&Q;oCmeB74;S;2T` zt-lIOCsqg75s+T2fkG_3UVS63GYvlNtoi4$^lEhl&N6-z%T=KH_i&zfkocIuR3Aue z!FG202K!g-o;OyfhrPNhL76LBJ;j&P%-G(R*-kpy5SRbtG`<G0`uE8?$Ep>ho%Sg&(7%rbU zgU|mNsyDk07=UGN2>;u!JpV5yAY=0ex4&Gs0U z>pshE;ICK)vO?#~0qhVXp-%5Junbi4U%kTl|1|n)=Wpp`+s;oeIA%n$ zdyPzX5c6%Lk~d%zwj1!n1;eLaJ`nfI^gaZq_x3&-H)sT2f13A&ct>!$4~&%s`gvc5*BBSzym37f1+qbm?p1jGKwtj>-gTz; zC%7Wp`*U1Rp5La=d@V`NO<-;c>&g|HG}%_fGqP_XEt(-WZQC z`4&Gg|5sk(Z;?);V5uoM3%`4*e-r5%yvF1M{4n_@oLHIdR^bgM{|p{UUT4!UagE7; z_XG3)ZZ<%!0%_oYAL&FR{2m;NC(?l2@kqWuZfEl6;67#puE$v>KL>B4eciw(aIVQe z7Z7-w1`c&A*oLQ?f*M>)1AH7AZa@pZGquFzkHBqNUh~;_waE|18(F@wTYeU> zL<4$`ZpI^gL1GC$m^_c1;SqQRPd53ta4mT~0(E$?$^VD5&GH?7<}$6%Gyk7R;5Z8O z99@Lh*B9`?BhF+G^g-lyTy66A;oU5+-w#-iZLfb1Cr0@rwh=F*z3{n0p8t>gg+oF? zct^uNUgOLThx?o`#UD7p`Q)QlO5!D4 zGCH)3|NNIr0vY+f;4Lg8oi6Y`t{U(CF(;Tq$g@CodId;dK( z@f(4{Fd(bsz8uRTi(VW7EJsMa_pi|rQa8kMgw)Nj93gcJywZH9qz#sV&%OVinrKTv zu2Ws01D1h9-37}ypze-k;8LHAjg0r!9;txaf{I3O{5;&Iv9Z1rCi>&#EIF~$Mf(d*5NzR(@gU6EB zk#wB1=C8yBj<00|IgjrvLeDf1Xz59&WvBa4?p8xOQ^S#}T*< z%ROOpx5tBdRFiu~=@Vf-=1*c?!K0gPKlp)wUBPiYyV(`|hwTEVot0dF1Ge?UdA76l z_h8%pm)O(?i6?m0vkUx+?E)w9tY;QT?8CF3tv?gn`bF5*U&OPZt$zsndglM_1ndIO z@^EMm>EAJ*!n2{xH|E*UuHZcESHNFHz_$HMd3LO?m*@Xg1ndGoW4pl1JWSRvKz%9? zkG8%)w)F?|ENM4zRLu7qhtK~Lc-XWHJRS2NF~7mXr`@3adDyfYG#J|rI*f-;+x}SZ z==pzz4}`t=8lFz=3SPi=1^;2Yg7we<(^aBAy^V_RR#!>G*vXX*R@W6Ve<&vG~6 zP7`|8e;i-!%vHuKCGkC;d!@hO_!-Y1=WnrE{?3Dl@oBjA~e*n<=Q^LudYpWGo`=U31b7hJ(y!AKSprVn&(CnY+GEuj{a+#>xV7W@vZSfX-2m#sP!Ooh`!EzO;M`5{&)Oi5`=_DGs z6lY*P#J4(Y{x00sEyxs-h z;H>!~+}-4#bJqMz_+;Nc-~Vs{E%+IqLV?~!AM$Tx%^!{jl4l?c5BZtSnjeDCH2G=H znxBQU>o6P4n%|7an*3gSB5Qs>e2L3*|HJ?5aRDvpg~yo&E^*fU zcs$S@ZAWYsvHJzWn}CYGRiQXu*GYW>gU7JMfXDSo2-*JgkR! zl(XjZ@B))x;H>#u@vY?d3+I0}pxgztU>&}P0=cc04gASj^S|L0CVyB;WX-q3Pn-NX z&YB;NTgv+Z(fr4M3L)?^3+Th=d}m$Y7W|gUzu>I-SMf&jjR}Ms?5z1Zyv^h@QX|(t z{~tqOr&+;JXKi2<{)fDt(;J*MzYwR5_xb0YHD7@nk=IjJ6Ithf-hv@;AO(8eAHG*) zZQy9!hCH1n+{5#nH9r!!Bd>XM2 z?eG}0{16;SKnu<%a4FWIb&j*RhfTg!gUFgc0PKR7+I=G)-IOn#8F=7->RQ9hdgr@Md_%)!T+2A*`*{Ij^L$!~Mk z{P*}IlRv0YWX-q6y~)e>55vi1pbKchIk<0F5ap*iYkoHFZ}Lw#Ykn<0%jCay*8C1U zMDjBK$$Z_saTL&kL-8=vzyN2>55}WR{(5K4&%&ck{&8o`ufh4`1D&n5x_}mZhc7n` z9M~kX=3C(jCg0y#^Jn9$P5wG(%@^XS1-$>S8&DbrqC7|B89c)@@RhSRupQ4f`2(6p z*8Cy(Mw36oS@YSrsDSxjN4lwDz)wa2zKsSn|CqBj@HAd(@?Sb@{#$&%$v0~jS@SJ% zNni^4NdRlXS$LJnU+b*-nRvCyuX5J>Q}|i(ddv2Ov*xRD@CpTb3Ys2}mJn+}3tVYd zaJsYR&%|$={58&+pMf`+_8)cD{OSXk|35YbTPP4~!8iCblW%fhWX&Ipzap=Dc$%~3 z2jLy$8xxSLY>Knyryt1t{|5znj#pA3)`BPTZj=AqS@YX)D(`yfb3$X@mltdPAlw-1 zEnQz{%?}I+97KU`;bdnmn1}c8uuixch!v!imdsdIf2tD z(2v)%oV8#89ztG^(ACbGza9@KuY0({S@VzM3(4yd`qbIwgTz(>;TwlxguiAZ=3Ogo z;AbrFf~kMUMaH|ayvwEey$((b-$hgJkL6u4bu%pQnnf>}{|RiV52Pjz$2G=Bd&w8$sWUdDy>d z_ncV3SFu=OH9`4ID8RD9_0FGSS)Y6zKYahc%@w?TPN3WsjKQ)(DUb%1V_iV}J+=)l zFdHCy{0yGIz;AGw(_-46AcNOxxgie&zmJ^F%xY*CRbm@%nQxIyYK%?e}>_h~^VTI|0m z-NQNBh?GQcyn%dcX^&Gp!CCWH%{C|vFVMZ%DjcM>qTyeW^@Ep9%Gjm`+R%pcyVAF>_K3uSzs*AT;>-Tho#d*FTP@lIfV6|j0fOT-4VUtS?f!% z9AWh;97re8z-j{0iPXzI=EPX`14ofFeugB8K)bC;GBkGM<`jGmw*7Exs9C8h8 zrJw;moq%-0hHWBiz8RKIq;7$8abs71nzQByV(Am=!C3l)I;Rcu|6Brx5RnxI6o|E8 z9+pn0UVx?3sc*$)xHAD+zT8>!>+lX!zaC2;)BJm~Lg_Rb*odXms6WH4aaRJeg1rxm ztoepmI;FZ9mQJZ|f%9=k0uP8YC#URL+vQ+U$uMkjAdk;FMh~( z+J!iGroT$c@FMJPNP@&S1e(wA1&t5qoKc{^aMTm`Gx>Zxo4npo+=7>y6)wTesMnG1 z6}*cb(#!OF+@LvC6f`?BvNq5HZy+yUp$sPzXU$K>JIFVX*^c%;b=Le>cxOq^ zM7~>oVB5%&=lV-Y3?`7Xyk}yWD=2rC0?Dt#b>z1qS-}bIB1=~CnK;LsqKol^xN(@} zkImvcu%5E#akr>Gdj78_FqeRSbE(Nu973#rLtf(}?VAbO=Hx?t&)>h4&2wfbZ%y;|KDOQ%*3z(wYx z-m|e>CDHoXfT0BBGSme|VmZX>(OAxz`V!pFcs!Oqp!rEyPNDi*ET>RC19QsU`q_Xv z1m>E8o3L~mUEmfhol1QNmUF1S7t1MBKZrMAee$Vt*8GR~vl-0)TJUce@D1$Mp4p5B zny`d)vg4e!fo}LW^4cdxJ8S+DyqkPuxBOyf&EJXl59mbt!(p#V0BgaUSUQ>dT`ZkY z{SlU-RsAWJkyHH@-moyc-rr&wIW_+y4rDCWKrMl##(&~! zP|NrIin*(nPOa|EUA6Rj^_EHe{;ymX8o1;tu5iZkrEHPhmOqYVY+vTQd@^PQvQP2_ z!-i%9Wb!!?=dALVT_(;m?t=@APwxJK+lQ`e=2Lv*z=09eqT< zuD=Lxp`1N$*dvG#I^76I-wx0rfU4r%b&A%OO_(jOB=` z>#!Wr@Fnm6|4l#+p%x@MN2f%+50*}&PRG(G)CXYc6Y7>&`h@y0EPYJf4r?c8{B4lv zNWi~p_xw&TmrkRXVV|pcI>ucol3qU#ORrw+{4SPruK9zwD&(B&RdIr8U#^N#c;M>r z2+R1Nk{C^3Hvv88i=Cs5N=e)y4Ls$~`J2v~ufpkt{+$1TTT`#+ywh=!wf=Y<{VYc~ z|D+~*5NO8&TF?jQt@S<~w}0My5T45l<(5n?%Lj0V*?_n3WUSZuZ@Br3e)+%fxL0vB z|D`1M5GXe1XumG3KnlWFO5y~vlOKaijQ@w%7+;Mmji=*{I9fmZ zFpogBDOiLv%nCQ*I+Ndu?FMhh6=nx&@TaeUl^YJ6 zMIfAhoi*PL%OO_x!f9-9^x7wph2<1!zCYGpFP%Oc>+$CwwR`TH%9lpjLhho&$>l37 zTO6K4CYvL!W2~o7=>G>Sz|xELyWo#u=|jC~SFVy{`EGe@J%XwGB)-Mz#`hHR`$B;U zoIQ*GnQXk*Z2sf1arzv-D{lM>mP4HBHu$`7j{q;Z%&y1w$7ceZw$Asdxj5Ke=>s|eEeCSB7gtk)y@%r(savPHY(Tdf?j!>{F# zvqAc|TNYy3pk-XhlCQ(EL7Cihi7((3+5cp^%B)b1z=ybGbI(K`TOo5vtK%a_8^!vL zXZ~+6%U`F1C`kLXXJVpT;8tf{;7+`2wy%E`H<;t^0c&tGtnUG}IDy-CQ-2z6ZR)QG z2ux;$x`L~4d$U2sI1}qfG;iRRCchI`vwRi}$R1{%7+KrvgNIPB_Y322mRUZyoj|+K z{C__C+*upgigU>4xfQhU7FqM1@l?~`2)xF$x6E1Vm*Z;k_49vP_b8wR`{Aaa`y zcQQT*=i)3DkUbvntjkZr#pH)@Mr98w!&@9M>4P$IYnMJ}?yTHu+p!#u1~>%l%Jk;zj~1%^`dmx8CB9z>Bz(aV6eG zy*{}7f>T+c-omx&L8mkAoq==A@`G_Md6}NW&;PF@kY@_!;G=0!JIxb#qRE%x`DO#Y z!MC{vhp0$)Sit0ygg3febd0*xC-kYRpN5f;4gTG*`UAhaPqpr z?Rs*AO#V3B;0u35Gx6o@V7knIvc(q@m_k7BVi)1*SfA~l$0JMwuiwLcp zmzaENFHR|WJ!PHo8p%iVAHU5`V2fFxFV1EGeaE8!_cklI3y;LQ$LsLGFZ~`?;l0Vr zIhGy#6X%$G%E@Vo&pBe@|NobQP6Vc!f|Kx48qk4f46ZQw@pv?O-J?6PzpQxn!!@S< zA-v;Tzkw@pryYF%KaVYx>$Cy$CIKX`ltg1(WZWE={^awma0B)rdZi{Zu#AlAqj7uV zPB_!}1YCYgkX^q(CV~0p|7f0qWvJ8!`(YVM)n{Vqbm}2kE-UqLELVX#7f&@Fi{}R> zFphv+M!LWRESHUXGG1wXJuWjY#O3Dy_uU{i`64V=m9}>q4&<`az)}LzDb)Al9mXYi zm+>kr1CQ3P#?tB3&te$~)#X^O0`5||EHV4E(+v2)`I`ATm|a1K52>jjQ7X)8#l$9jSt2$|LgLt zvD`nXj|>RN4TJ{TW4VD)ABW|JLER0vH|~Y)Ems!yui8De*Ym?>Og>!+${o}7)A>7K zT$Z~TIK)920l6;wxm&Q;=JMk*dIv;7!+G4L(m?pQjc>tnS!OUWNCVw&Y7`z3y=%S} z%Ms9fyce)+u=>pfjlv`5Zd!vxf3wAM&o%*9o9p~)oW0Xu_fzo*;~6;Lcs5>Qd?Vgi z=a*lIGwY8a^Z)GxCf5h}s1(mNegH2qUXJZu@MCzT$v=h5jGx2y6upG&Ujci3%rxFM zV~@wVQ*aumMD`%dJxKK6kjWm)SRS4;EJs9LR>XfY#d?nO7qUDXpoe?~mK{>>z_P>Q zK;A|>b`kH(5tvFq{2-P+(glXy!Y?G@lU@EUY;U_?GkYYb@JGBMr5DxmN=fX*BT~J8 z#{=hu?MLtbAAU+&;vxb%+ntF=V4dBj;PF_e=Vdstmv3-6E+-%E0JF&kd=(BmCH@DO z;&6xX(Wf#wHJ9bX`8Orek-+2|1}6$R1u`2B$JICa1!m!m#-+H@coSY@oXWW?G470) z7>~en#nJr_?|u`QYzm&h`Np5(9OJaUy!~$61$Q$Zh1(g=!_AFX<1}3V`Tyqx>gM}B z-sd#l8ExwiaYNj7t{;e+;Vk18_y*%Pc%yM!Ty5L|*UdH0|6K^|F$LXmCg&`Ar6x|s z(rMIvan52teGkCWXEc8{mOiB(ilq;!N8+pInRg^c6S$g!aAcwn-0Z9iEXLA_)OTX( zbn0Te#U>| z9OHj+zVTkCGyhLEf&B=~HEx2J7$1a7j1R?YjE}&T#>e1|#+`As@rkE1|J$LlCk6gh zyXQ|vLb=Xsc=uUGzGgG|$z=LS_-MsIH55yy(t+v@EPY1Zh>=bPqWLr`%YVwiC7rfE zmVxfj#k?mYy;>Kza4|oPX8Zt_k!z)E;NCkMg}wYN*T5H8I<1?{5~rFSkdg2*T-eTE zMFlwLXz!~60_}?iCrYG2I?Y?S%D8Pm-Yz!_bigIXUGVy2e1qL_S$pr3ah*Bjeev(c z!2kkXZ}y$&Y+PtQG#ZLa%}wP?`MV#mJL1McL zXh99Wk^=oXofc9 z`TcWe&3}!bCa+IE>HQ;X{s3G~UMI6Y&YC|RzopB|^Zx`F(1OYMBh$bG&YEA2x02UA z+~BPFPjC%+Jw+)4B5QtM{4aSq!r}A(2`-=onYhUU|BlDS&YHg*w;``z(OBZF`Frq* zwn_*C*7;b{K{OGLtT3lrEtp`Qc{E>JmdF{k!J8OO@UPZpK&i^xAKnv#L zGP8mwoi)D}SCZGuY^$^8x8sk<>u1Z&&Wx=27I-^({{BgHnVjYVS}+jTQlR;(oi%?Q z-c4S6d5N>;SK<8_$aMLSoi+bCZeGOvuWvByb5~_^_z)V<74&e{2KrzbIn}3Q z89CL1u$^1Z!Twdd=Md(W#YYFd!Vd~%ayVmtqj0R=C|{$&zue5HS`4+lSxS8PT}(a< zo%*CR7R$(~bH{QlLvuT~e8;7H`pwY1(=GoLmZ4emJ??Il_&uOOojit_EtJV)2Hw)a zkL9y*#z!k=42L!g7z)+mv z5Js=m#7HcMR6QE^HogSs8jr`*jVIw^<7;ubaWI2`y-em{|Ek@yiCZc;hpXMg>22IG zNuMZjZy*dP3lKz~5NTvHn#1YChDGKGWOfFXclmIpwZCNIXwK&ao~~z^7W$ zsS4c!*K?W3RnU*ElFRTtELXu0=OgcF6kY|IzXr=yp!v74Tm=QL{;+$g$62A7|E?k+ zS3yfx@CKHvASy^nR1~uSeMGPGl=~Pba0c~q6L}i$%^_9K#kt0BVCiF;-}nAT;VBBu z_wN&f2uP>Vf(2MQjrv_I=TP0`0Y08LJ{K=DE4U3;7=MJNPwDapEyJ$;@cDl@fef?4 zyKt8AW}Ii->OoduoQt;_-;eG41H&ImKEkWKx&Psu-efwRjC@bwuEXhc3Av@@^X{`F zLteZog}0KIt}6N7&S4t&#nt5XJ0e#*Ykn%;!Vzh%^Z!Ex66g1-|H8m#XIU>mzK^#dx#vBD~A^d0GBe>UI9FCeTs>v?zD2P0r!z*SHsMZ+rBt{NIbfP7aCQP~_uGv%n%ed66HAZx@r-4R{GJ zHXFDDFEc*yTy8>_`{i5W!k2o5@4tlm(1t)+O|R%bp|DS*@#LR+B`V3vIbMdRe(4)n zj)!dXUWF^n3O~lHjT7f_igx(=eei}`_49pJaXbOpfat|XGFUc1-3LpjiC(FR)3F>e z^&q?l(?!Bla<#MOufuXg)d3zDn7}*&a*niM0Un3-E_ki8=3m5e3e>OS=~&+Dls@sJ zv*v4YnW_I12hvHj;9mlpjrSTF^=i%Uhj*EL6D+-0^9Nz+#Ogz_bXxThSUR=(n4!%7 z_74bmrl98T?D~QevGj6XpeG)J^(~fsXU+c)OD9xM#L@}X*I?-r>ghw7|E1GtU^WFC zjOSxJJ1)ZhRl8@2u?$@0IP+)UXI{kcNrx3^r-`kdLd3pYCLf}XW3F;8ZL}M12O9Bc?tJ%MnqZi{*%^ z&&RUI>I<dUE?`-gQ{8mxA%H1)E=ZMbP8-~M;? z?T7PEgG7y4Kvqy|EDf|7$;ftsZ{SG0+xQr~@kF2Rj7z(DpNQ=a^~B*Tn*VC|Oj*S@ zpJ;Hi+k+igR;YW_?J?e%WCfZ(RU4pQHgG)N+}*EmBA$M`xr%U+aV0Lm_4EJF1nif^ ze#3Q{zQJ9%Wa!D!hg6)h>`@$%?2{8kd?q8~#N9aCtl%}AYy1-~Hg0hNN9cB*|MfcW zOQ75o6ku6F^y07I;q>7rC-`HQ;R;{EotF4L+#z}619Le=roB^eYm>hmSKV&r|0M*r zm<3+JHO4<+IRd&tzu;`sV59exl0z~v@? z#6|3ZaW<|oz7`i4KZK_nzl($2Ca{Y@sd3xU91-KexOj};gQ2*S*}$2&xACL6wed!r z#t|LJA&`OYztPP95{O>>(a5~06R8{ET$68vrPpfyKs?>}5L{$@I4(9m3e)N8m+zPt zM4e6>Jf4CoQ_urTpU`|CTw{DX-fcVxr*p)#{v6!eco^2rEOQ+Q%@FbQ#pk9lm z&o~E(7YRtG(Sld89V*|%{>7hOdxS3-Fw(V_@AonGkHRugwPXGj-;1S_=DGa4W_cMY z|H8ZTwG;FF{~v)8Hb4iW_G5T!)%ZNT#CSU1XuJZiG2Va|7w8K3WA?b;oxc6VSRPK* zGXHlZ&`kq)IBsq{3$HOQ#g)dJ@J8d*i+LB#xHGOc8+blWbNTT7|5*g;Ou=Kg(-gl4 zt8vA(-fQs^vx2QSo8|QsZkN1q4Q^n*S@kQHBhE|aKYss@fE>c;#lV2&6sXhkqeHIV zAIl!8n_}4k^}$&7P~95K5mg_F$INvx6Pd4t4=Nf0@ zCC2CB5^*&DrzS=aSYrw|s1b9!VI5^c@zJXb7dS7(y|GWEjFQN)|&XmeLOz zOGDZ7{@i;$JD+v`d!5g@=bn4cx#!$_zu$fLCSGs+9^O5}6!;Md3A6kTtMCNlwK(}M zAO9AY8gIa9cl-DzY`bJT_FG-!AL6M0qkFgxP^*5+}akWWI|GVgJ?V72%E@XEE`SL5JY@9S~I1^^o>3ib@xcN-fVg@Q&M|%( z%L!zPBzrfPPh3$rHH|9>(qAeU9^@igg7KPD3K>RI0V$rcJ*8H-Z|;0c%N>7I*~90rls1Hefkmxr=vwiP!NQP<;iK1FDzq z74KmVC?_}^*SHEY|HK97lTiMkuW=quDDl1&?^x_T9;Y&>+EF37kG~I3GFM4CE;Rlb z&t2yC--atb4lVOvT<|*yB{e=n1K!c#{V(3u=$&u{FD6^bTR_?3f_<@6DB9wKWZWHx zeM|-WJ8L`(ONE=(|6wFZjWt6KwtaRk_8Y(d^BVsHk`^hIhf%sL*TkiXr{e4beFbmD z+Ya`=6IUOKqxnBBxSNFH6MTmIv8}*-?6 zu@>a}_#s&0(ecU9k%X$BeTJ^M@E7myxL~XIvDj9yFZNqqW8*7)3`d0u_=kVeLhrrG zyg&uAPL4b<${!tH&R`q~x!VT@MRJ`|p{>qQq1-^=bvp(|-*P2>^Ocb`UWgOx21cLz z5l@;BS>p%dJmN!0kn$f69rI`O7zrh0$aERHUlmyk$i%COr@MHyv&O&1^~Bf7C#4)9 zZDM4Ncg3sg2Sz_aMSQF{MuKLzf`sgyG?9F?N`}SG8efWM{4+4v9T&x0UmaQFiMVKw zFYf?6B#!nDx40k$C%5oE0>_px>Ql)e*Ksxp#m3j-;C}x)eu|4n1;z){uuy2fH->GI`Q%kzJNuhE-i*lheRE^F!IAL61`-k;)}*4|&>v^L&fV_Tsgu;1z$ zk6IC9@n8pit#;K4?s7RmCAnnOzKEql>WOdgVKT0D@i(wkP^aofEEQ63GzXM3ZaaxL zr>24j#7Njp6Y3q%0Gyia&)^hXN&I*YC|z`=b95H*!8LAw^<-?%_!jK9y2jg$r9!di zNJ!lO7(6=NQk$MWzKF#`Bz+f8&D^5p29oK*KC&H-6sAL zPJGxm`Es0U{1)zKyb@;{e=PYIg!78b|9oGc1m7oZf-kY(>Kc!JlRF%C&@P#P<&45l zwRm=1ilxPRNNKcaSGr6pp!qMuQUUe7bb+)e^Ix>XwOE-X!+CsQ-~k9mh5Dj|RPQ7jdF7)uKuO?mR2k#DiIF!NuOkoqoXNP&kq zuQM$mVt%p-JZ*4&(M=9E6)j4N18)5s()m;8GE(#N$VEa42bj}N*& za#SdPy^hO>Yai!0YkUNrM+LQyZ^l*R*Dik1S@XY&W7Vcf%SkAsfN)gPE}QVmj=ssa zqel(T}Mq7N4c?08LcF=?q$RHI^55V?=$WyUx z@@(uk{sptKwCD|ZRJyOg&3o;C>kT~r`>n2VKh|&Ap@?L;j_=&7z!z{$hVP>F&QTe0 z!A87}xOP#8$&odliYqul?V@2Z5*pY+`)I1O?r-Ja2ej&j&>95#tb&d7L(xmODG|zu1_FG+Jnz7_R85j2QComW<#6#q{ zK>q%HvP*~xi3_IU^@IHmx8gQKz3;$7&hWkqk6L(k(3t|{j9I?BG<4dqKvBodQ(!}bku(XK!IxH=sz7e}IC-YyMAVz}U>KYIHplvv4bUA(p zOAB-%lT4j0K5QE{VK~v?p;%f>m*Z7fnmqhY3Gw7gURs&>xma2#S=R<~m z?f{=)Y0|JyiBC5blu`WzuDsHZfyFra5r18;!96DW__uhoX@OciMB>r>9~W%jE5q+N zxY`%63uhYd!TH85Zl=IVKL0*A^&0PXIMetb+~Zo-|ESsHg2PDIMuNH%4mhJ|ix0Zt z>{4AmTL(SyDC6UCzVV4zT159BgzY>t6tlVG)1>JiaR)>VWoneE_be=DEL|XOyPB`% z(&YWzd%TCRw2;RC5_3Qu11EjXTQcIcZvPorT1X%De#F_OvE1lyJmOmiFRo$k=L{0r zAr4>v1qB$N8P%9*^t%2EyyQCHViWOhtpHcmd|WZv#~;P{Q@o$RLF`7Ku$Y7rIjH{OL~Q%u4h5=x9)Ol3L7XGn{1M!lTFCcwS1 zoUyt;mI|q}aF+3~(8HVJIa68xvyK?ulyEK?>>$a-e&gwtF(EBdL86R_1)uWea=M^B z*~AmLY^4QfxcJ$0X@En>OVnR}!SlcLi6)#_%{|+r)UdEsI4?}a(n3d4fXowb zVQC>9WWibzS8c;S3coZ;!bRqcWul4U z-nX6{6i|TN_dn;%@#K&}8D9MI$wBT>QTzvIjo0FSBStqZPD!`WRNwhA6+4iGHYUSB zoV&qiI29KdXXEN0ef(@(veA1K9&gHv;ZY4fJ{_+fniaH>E|c~D9TMi59k$_wfBg=> z;|Y!44Y;Dkpy&i?fq(JJle2$(u34?-^Y0uIqyTNQbFtJ= zor|S~qKz)X(xmFKSk74eKP)Gto`mh7z5zFF^8SCSNsvB&1lOFN6_g}JXY{3Wv{PL0 zEuNB_)ifqra}z7pcp~05i+Iau|3S_gAA(mtkQGd&QMv!&OQ0m=7iR@y-45}Ek#&dG zSawh+;;d@#{c*-arvy_!jShGluA~L@IbaD+ICpe(RnSRa;>1a(1Phax|D^(bZjBQ3 z0R8deX{Q7g(M@7d;;iu}@%XvK-K*ApZi}q(b~uFtW|ANi*NIpvsPRF#bnK}xCQ1D5 z7YR9+NrG%~!I^l{^`{2Q+^g8>IDP7=K@YyfDHVPjPc>)s3+^|;@BbSvzS?^yo^A4X zyq!CyYl(-)r@*cxEHoL;!BT-}3aBr{(!|jgA6$Yz!r=`JRlLhtd{k!-qFMoT!a&6`21t>dMcF95#)sC;LN*Y zKEnefOnA_H0hR)zEiPDu%gh-)jitb7<0TZfXZSMqTV3P!?|D~D{%}w-)xR!rJ%2gl zZ%CN&xIf?zc(rk@_z55X1!q0&{VSgGvUfdRX#6)`_r8w@(^>!1KlKT%NLZXP*i||% zNW}Jx4#0lnYq&r1RVxmVbpTfd%kL^I`-jhVIK||b6Fd=b8#p*9k*{je3D-_%{g;Gj ziwh=`VfKi@O*7jQ&Kh4V1r`l%TJ64a*7!P{yVRGr0rx2L{u%eH@ZLI|nQz`opHN4J z!d2e8aLNzfdvMN1?-qB^1ta}L)6+SsP<(Jawk>!f_8aexVJKmu&;8B& zf4FwPA+C(L;A)(9ly?CxF%^0Y_Z#iwrFatYXyeQ6&$=Bnp$yv^zl#0FXEtB+Rck!} zqxf$u2MBLa=<{-uUry*dykw@Yz>j$DtR}~TO(Z1GZ%PQZ;f%%Jb=X#D7xo)p&Hjmd zKn}2(L>Ywp)He4$dwGx9pYdPUc*LE|)vx*kcEJ_K8F+_rPn`DJkm$jKQGC5~R4M*` z01qdwF2w6;vGAUdasMnX)VTcpdl?C3B-F|o;GdkefM4+3<-Wk*@bK5YcjDEiPyfMk zz-Xhy8O>X;HP(&!r>^nLnzmtq`sj7=Iv%GvW0|R>NlUPtk@`z4XP{2}jxQ|e88Rk% z{lE_pQQ>m8fBgn-yG?lqZshHEWY&KU(ALyQ22C$KmNV2lpv#@3T63R|6DoZRT!V|M zyl=pjeTN29d4V7;`ZUh@Ye;y0I5sqjbHM#c z2u2TW`pc&?oV9@AxF2ynz)WY2&%v{a>j5gAHU1fHlRGq6NP?VT>w9pF1kKQvgi^fD zWjM`Q<7eT*F++oV7k}AVm>u}n6z6Bn|lk)ujr8v{XSKY_@UwDzvu$By2CPQ#PYeT+|x5C4T z^IfyB0>|PBCVw7Iyu|0f6sH=G$JxdcV2?aRqQeVJLxZJo9r~lW-@4!3ETwjbQ znD~4=$@pX-kUz`i3^NJaXJX5q!eJGcU`#0gYTKTvqUnJ^n4tz!G>`64VQ7;W*v)3_fFKO2_k-_Kow zX7~zA3#h-taviIG!g3v}f5CFytAE4GFwd@G3mp1jWR0ic6~uXA68-+qnJz&yjKJ@> z4AO*Coi%KX2uGz#L$`yfNXH?uu=EbBgl9 zcR<_|K8K~e@G`|+wzrkz#hN~HX*2~&jl0g{>vJs6x;WkD937O8W^r1fkN@nf@vS(A zcs>cT_>7nzS>xy9QKMsi;wU7cx7Ltdp2b6qtML*F)B?W7^N8zWl<+V!rODq5ml==2 z<8Sl(UxX`SWZ>yJ95gdYC^8x5;5EeCx%diPV&WBe197=+mqE7`mz#JU-bq~lFgbMr zmz{}s#<4cJqnmyx>?{(b1)`0g*Td2R>M?kf@x^$G`K`Edcr5YG>>w4Ic!z4`WHD;@SY)^U#s%$3 znEU;Ny#&HU1PHu-;c-2_8PpSKv#$@<$(EhbL?ts_Q?mL`aYt zM;qT(!@G@t#aR@n@p>!=Q2&kdjf0ZrP2LLot*&w4?|kw)jrBi`Q6{5)8VS;bdKoRl zazMQbc49fh8Lo>?{)6vya7K%r=VLh|mi_QD-ihS|hHz9VKhab`u7aa*!WM2Y!t0(U zKQ~P9O*9&(Z1K*+$=kgz!R>$bz8n{FKM`&5!ByA}y6dpt_?oZS-G2pAqlF|?Q()Kv zRH)WD+KGR=jT3$w8f1|mgQ(-8$Qn<_CFX|aY`nvG3Le7#n*SCYlO3XsxtxSDEFZSY zT)xy<<1gbP^BK|WSPr1^x3N9r_p#sV8b2|X6aHn9tpBD)zmj3ut)rWMD&>&JnP{+H zMniB7`DJF47P!|rI!IjbAg(v@Uz|1mD-H@r2Q5jE6HIv`MxXBBCQ%j-lBPTnS$DVv zPpTUl{iieH-#Tl2Jq~{NO}Y^u#{r}j}bfBO6<$4Dq312bp1!+5+9 z_jSGx&o%{=<5bfkKjYQAe1ThW58`}u9F}+RlgtYy|0%e~-#&lrG!pFZew>Aen+zlI zkllWVF}TY3V##j~Fbh}w>+=`m(njwGaX$HbMiu1qe-g@D41==81s~$HmfoM@#MZ-t z9xbCT>ikq>&7Xnqra=8M+L5?lqThcE&NaRmPiZpi|2Pt4P(&MlVu4#?SHs`|XN@nw z(#PsWSo&D~G?p$^FU8V@>X)%}ak$Cz|LY`tLBeUI$e{VjS$FsaOP{NM!_vp>`=}_y@!!RB!;j3Z~!&GU#>wzH@XC{$(R>pFFJTvORin zWQ`w#3-%w@blKkRtnvGBH0ZsKISIcz=frQ@nqa0uJ@wglz@4VZZUW z;ybzNr2Hb8=&0Z;Sjvx0aS2^G135s6^SxLOkSAZOVTU?XpqxRwXLw`M$ycB~&P(?` z1Q(t-EXb9gZl{Z{z$?4?_(Z(qHr9WAPdA^0Ww-gMawX0*{uSpNr##ElY&;le8DE8m z8$X1LkMR{)h?n(=`GiFzNR6W{E_e!8j~*6%u*ezwiIXoI7NofEfL!z(6IbrApo&i{ zGSyoB&3-gitr3}&=z_@JZ@O@?KTeBWhqyQ z$$vJ^FbB91w=piocB+2{$7;^-XZ$<~a>m*MFJn1F^>WO3rcuD%pYpR32?eB+5&#*D@b zo@f0pBq4mXq5_YRL97{`#EjA=KZj+IYWziPr`p$WrHQ|ZWejNk_ppo+^+z!hqz^S= z6_!3zuf;NG)Zb$1WAz3sU83HErAyS?aW2*yl9U%BYdm%Y2{X(N>DW#rM`OS7s};NX zyWT#G`WDf=aNZuCoVcvgTSe~kFTZ}vJTTtH&u-+`ZkZ?6yW8|F+?vQdP!-K9{Qs}G zq(BDYZn=z@XgJ~^Y{g~9b$Ge)F8r(U9-PVnqK$9MzsMUE<9)ESkZj@l-;M-1gJ_En4#IMV>cg;{ zk-8I>Gf;QKMaDgGnep*hnq2drh-)Lu`p4^c66#Hcp;-D%cQ_N)4U7JrE?4Fr zXY#YLI=sYP?j8O*?tvE?kH+g5Ghr7prf$VOO#C@qL-|7}O_u9FLYwu!frQdK{l{iq zUgomI`s{W#PQA-F;V8WR9`6fqxjEo;oIJlS!6D(sw z{W)G@{1uii()f3;u>MP*Xu?lqkS|`kC$66n)i`VXdpy+azt3xtHQo;A5|@`;asvIGH6F_% zVFDTS8x2=FYlds^9mMqv7CLMEaV%GfdNG!(Nc}v{;O%*|wF;JD8N@Cg3s#UIqu3<` z71+-8A7H=LHI9+FodUz_Jib+M3R8C$qdt>NGEvRo1|*#^rGNYNF_uxUQ*$CWBr=F2 zv;Hq4p{OZ=pX1|PWzgsjqvDgo%WAeez|G8ba^33z`!dtXb*>)LDk+>NR=PW&m#|#M za+OF0k8Yh5US)l7oV@?9GG{0=;TBwMuG`=6ynFq1T#rkQ|H9SA|Kf!EeEt^8nFoy9 z;Kci*IP))Gzat^TC5R8iD~%749p?E0JK|9by}ROqMc&I^>>pNA*lutgb!FBVc{TY-}0Ufjx7-TX=bWkqCGA7i!v5c9RCJbql z6gE)`6_6W}A}lQuU1ssYN-Qm+2T0f_DI8QauEOVF83PIK7VKLrgDiZ7!wIGDn-q?* zg)V;uW(@KEU*7AHVbFd_VIRt?La9IuOCO!@{5F;*ALHE3G^t!QXW%JM_(6CMu6TM_ zR6e8VRcCgW5`s5y+FbMhe=A5>zl0s+x+TMYD4IqE-+1FH96o3;D9?A+cpjE6QO7PNLHbM+#$#!6^+YUZs4l?L zr0Scnw4k~WOP8qcz|sQh*;r24ITqYUf;6#an1|(z)sJF(Rg_}C@z-*UVi}}5k34JQ zGKk;DQ)p3{$mFs<;H}6}8NC1RKtdrIq*%$2?;K^|^8s9B;$_Yne+6f9Ln8b0uWEv? z@eY1BBy!8(UtDk8hwZ3SS{;!<-)ci^mh{r$j;I1_6Nti!b?{{}q6 zRA39vsPrxLJI)RruK#ht-y|g8=L_umPD1cJ)(@42<6fAhA#9-++|*%WvwUP%RXBDxzVf8@{T0el(pPOiKP zoM+;dcq-+$b@4y&1l;ud|3|z>pP3zw#52tfBk)`kzW^W00ky)@ahZwVgY(#5r|#Er z4%RNK#kC)?{zn^MyCI>040_L(vXYsK1E>e%&8C2fIQe7W0+aFgrb3V7-X{JWPBZZ@ zao)$~`TqwJ?j(cu(Z25|1dm}ogFd*z6nHWoPF%;x6*vp)8P3Ia5YETJCw!2}8OuD= zAdZosEwG1#9>(z>a6mJP_rv2&{6Jh}d>CGNkFUTm+26#^##3hd6P$u$301xVg(Or{ z0QZ>TpnMJ|%<%<&iHDf{-{VAcz~6l5Zu5C9qGy+{2}Xqxyg`2h6#83 zk6tI^^(J13+kEOPJQD}x*Cu}%XPS699&S!x6P{w?J3fpt2uuNoRr3DcWJt$_oS}}1 zb8zNoz5=vFWlIxY*>s8`m4(A0we;wJ&f!p0~#PFDh6TGmsWZH?;#1M z&yK@KaGA)Hi%iXV&XA4Y2g3b{>t{x@oi%B^lo{w|iwFx+JQuOy+E1nG4- z;P1}5Lj(SjI6v_a#yfu+S>qX4t^##0oQ%7;{JG8=zX%^syc-GJ|HKC~U4mwqgXOAF zKY-=3R4>5u@sT9R{vSANyb8-zpb8;239(_rWqXt53o*(}w3SEpQ46Ye~>2nF-Fi!?k!5aXsTloHhOgmZ@6( z3~rA*lOPqYcGmbe_yppy4lYB>)lq_G*bmFpsoo#UWvcFgCmSD*<+9ay7rfH=C|qrP z3}#}|^*=u7LqfgDa1xf8N((#%%gm-e4a>ZsJ`2mdpdN{3UQmz0qp)^SQE2n+wOJ%w zLI%Czc*R)@cmvDCqJ9U<#G?KX%S@;K6w6Gf{sNa7e~l|*CgBGXRvT}`>y5YK9maK7 zre;0BE-X{GdJmSVUESjI=&o744~}J-4DCpedo;~(5SDv5^Y)kCq|6|2w0au28;f#sf2JsQhBqxwHsZtKNRWHHzQR-#vH~t#FE${t!63QY`Ug?a(@?@m{EoW&vKDOg3 z3-6fZE!)}2ya+T2_q9(7uWR`)4)Pjqg*kvcnthE^)(;Dx73D6r)0)UpCHOWyE?M9w zsuB3Rhy9b&R9sBl-Ll1kr%4z~fm*;4yv>~PE3$)$zln1e`sMW(JOJxG;6Yz-nVI~D z<0ZtyUsh!%JRPrWinIQWAYmFA^d9dPT-%f(E|`uVB(C@QFXGMq41#qyVS_(`TAXhx zlw3{x5&xyu0k|y==NVc5$CFTRc9@F~Aww(a0^${Tyg5K6oE zQpQ>?I}^{u-w>A;3D^HT5^R%Sg4dZHF2jlU`$2d$PW#cH@noD#AL{`h#{*3KSv-Td zzGYjBr(n7)djB7M$wXszXoIs&6CaOru^!+e+|R^k;w5JPdu4wPpi_CdaQi=j*PHlfxHT2lF8vGV z{6q^z>mR*blMr-e2dzL)JYF({TU>AgUO-$&@g=y(#Q%p^n)m~_%)}qXS5X1IfA|Q` zz%jmt6P|HB3GHkB0r%iEGH4TKe9gnD@kpGE^|G6W?HIWok22-W!2Qe^x)&GLn&W{@!3 zWGKcp6rk}p@G=vB5BH=3`hMUyyxPQfVSC2Aaq`c;0&(AR6B{F;2VEdj=|z%YGW-{3 zoA|rVIwn5E1txyvy2u*uflEwz$Kg??3r@nZbtc1L63WSt>&C=YIN0QCd_7Jzz6Gy; zz>k5&IM>9>aDnl1Tw+|Yj`cr<0(9!#N`_#wKVUs>KX-KSA6KCxzT=+H#Jk~Zh@a@< zBXG8fUw~_f>mZ$uCz<#?-?9EDJm@pLPKMPc!@Ib|oZ)tCoA3|Z`xjr~zi^=`Fa3Mg z0^@V=B;%W6BovdN_vugKWhTRFywdm|oLKJ<821Cq??e6sdf);RKMog~J|BSRnRsj{ z36o3#lW>j6a3dZ*&mW)^r|$F>Sc-FuU&U=q{tbABiEqJ`{&=zAp!M|mpT58&a6Sd- zOm#X=H}R3U#2jE6wr5y`3rzl5c%f;5xp-bvob~S!5~?Xs-{Dl^ilz*4!RI)4zK`$5 zn@zms1|}90&&0{Q{0W_i`x&2#8^|9HdRhOkBB8`&xIr?Q3N6BwCjKlgG6!6XcbNG1 zc$tas^JDWCXoux8myPv@@B5J;mszyM2Zv$*iX=Yhgyk~RcsKkk*3bP$IBR?~UPHVU z333B-o3qAeV7V;WWc`Z|?jd0_2|Crj?yNh!jsGOBZ@0HNYkUWmc|`pu&cxCQQh`oC zMb>yXd;{^LWgq0*5!Amv&QG(kBIAHv%*>96h z$iXrZsn5kS5vg-=HSS7+RN!`JjnBk?5!W{+%bYd70yA;B<5NHd2^mZbJzarYoppyg zd>(OKD^fQ`)_7+u6PY>#7vf$dNCihaYkUlT{vpmYo? zS>x~EzliG#hHcIo{~gQBsBXY1F%tTcA~o#tGYKZcQCOy4-QgH4Go!i>z8UL#zI8Oqr~2h9d&jc>wRi0fVP0h=RhJO#_#u08_GlaV?d%Wb~;=oks|WTFX~Se{(e zCt!IHQ4hfKprSq%%cGP!8_T1X`fM!E4eC)?9$eJ13rLU$2TjPw^1QCT49k;@dIFXw z9rd+Xo@~@pusj#2r(t=HP#0l&j&P0zvq+FMmH`fT)kg z@_s-z=3oA`3JLN;All-Cepp^es0U$rgP|UV%F= zocOnQF|H0Bu0L_X10>A-$7gsLPulJM7|!0~U5eBG^?n9#Hhuxy7I+2wt*&vx{(QNO zHYzH_RDGlYfI3H~JR%0rw04gq0&Qnb+dmZ#z2TOw-#=i?#+gt<0p4u>NZSy-3Jt<9FzdJF>&zu>O2|-8rgId@wdFz>oU>VL5=tCt<0u`UWf& zR!_y{F_Ul`33kxTz<#T1+`t%+Caoq>#!M=&YNg4yIgiHD#2O!U7++kbi;7+RJ4}-Y zE1mD5d~N?g`gAD?g-N~zUc$MH{2k4AI2&t=wb{nRh56~1aQQwSzggnn^?>IqakOPuRJKKO*HdTgKnf5w@_2arL=KyrO#&3`bKL8VT`GG^4B z@w<2s39|oL&QRtbp3O)|pbMgn9~{E%jW5RO#^Z2r<16tH<7@CJle@h!L@bU6R< z^h!dJ$uJYoHJ*b@jUT|vj2GaQ#*1*Z@zc20cqy*OhsyD#Norhzw!rr|i9w`aLfL0$ zWR17OM-y-5_V4ek@hmKZRy_=7V_9G1c-J_G=Pz9_nS{w?(5d!uXDwhcmQk&K9?Mj# zUWR2VR@*s&29dpNQ>Ez#tQsugVTJCV#APED1dh_tVQ2csAA4 zHS&JE-o)qO zUxC+g0(u)W7jMG)U7WY^Uzk5s39p?kxF{{EFyog`4@p?&62v=kh4DYQ$~f*Xo-mDD z<67gkc!%+Uc(?H(xJ{?90@3`@k%aan^pHVC1*SPi11l~l!dcM{;W^C0^~S}x_v3zr zcthfhAzd*x;_}YEi?-slC#1{6^N$Y>{+kw{03CFv;7l^;i<${|RJcRbgb(4BO57-0CAkrOhj9SgmnGC5|-=Ux7tnrapt_t-SELVm4Vm#J( z94;`v63eL9{MR(bqRT=PCX>P5Io^Ux*+E}9FLu`a&*Kk>>l@~;oi+Xgma9g+5zAGh z-WnreKSsUI?FTbUi#07v*s_ta+RrLvq+HZ zR1=D^T&L;>v8;~jg?OFu<5(6OjW5Qs*r=b!vK*_IVOiXq`TJ=SWOdUF6lCtbXeMVp;vvYkAEf_Y0Y_zx@C7!+D)3Hwa+@9*5-yLA?~q zdadrzfm<+B;3Zg=V?DrgSe9$`PAtoQ=~vCMWPxr=)OZ43}fdtH(0YsQ)xwDmSSI#kCBE zA1{lQtiN1Xhmug#G$^6;_bxs4rdasH}NSrow&aEc>=dL<$Z>e zd!H7azqG)YBn%;g^tntlaV=;f;~u!TDPS}nKmpMf7hH@hi0ec)3x9<5)zvGw%`?{U3pLA^(J11TP|h& z*CzaygdHYBE&hrE^ftU*%jRRGJ#OE}x4Yn9}fv|99{@6aNU;8-I>RQJ#*ee{gKb3H}UPv}zgT8z7_JhNJdv+3bd- z7p`TH>Fdl~XUb=b5B`IXrVI4J<4$Ld&&Dza)UkU>7)ye_Sb4))GgM$1gz68li~)5O zmOfXn!P1558Z3iU{XLd3;LPvmkTB0D1Y2-9KAjxWB?s*nSqnG}OB1U*;S_wP%b(+{ z@pG|sfjSpU7epKD|3xHBB|#53(^+?zgQbhq4`Asc^#Uw|P`wDtpi@7MWsIqpVi|W?K9-qL{Rx(tQ~f!XxnBJhmbF0r9hRwFHr5}0u$2Uv z`=c#B_yx<{ul^0oVx-=QW%W}3gJtnj$0bHnv${2wsaV|>%UZxD>mPrxO@b^Q(Z(Na zV_7`Z9kEQs>aJK;KXrH9lFLwiESBY0-51Mcs~(8uvUTf!d@z^ zyu5` zTw~6#T{|u-6Yq~VnG+g^ZHxU6SC5GKmrfsq3I2ee;NV;z&q$6O^?O{<6ZaslJ`Sgv zE;$L0HSxhXleoT!yb8~VnGDyHkoAIZ@)BHQ;)`*ck^X>XcpC-k4a_%qu8IGMXAsve zOx(YD1^36XHluuj2a_&N>8AuWQlRO>76))gl;;cF2j`o3Z(MH*ycnkw*VS(p9&Yl#g4-LfKY;Z= z!6fW=AcM~M1T1|PZG6ECpN{oQ`2uA$3QHHN*J9~o z^|x5Ygn9#(F%fO7|C>mVL8TeCV;KYLKd=l^^WolLT!7>%APr^*KO+E$7Oeg@#XpbF}@ih zeH_kIJikw4IhE_4MKFwKcH!GVCVnlJLDZL{$oqpU%>iY(orM=(;^&PyxcDVM6RyB- z;zT)rxlA^a@DU06ab)tr^tsvLB)kf@mIIRiGF*an@wykUz`A;tqB#`&iF;Xw{4Jtt?l**U5)-zvZhi0j0Xk`h_tN8tB~>kEu*XN{kY<%HCu@aB7Rs5^FNL!8860#FY)}Z8J;IW28ntZE-_w# zrH?gUfve2l%6@=lP-(mh%a~HH!7_%_HTW1kfB6a9?@91mU1LYyV#z38NupdOccycb zNdbD5e1yY3c5lJ%=*oBGY#b-!f$T3=Nv$bgu96mqu>Pk_kam%S`^yaiz)s^`Wf)*(O86VZ1)a`p)MVJQ3?n=>@o-$v++6 zg!QFW8SZhlZ^7j_^)-LL@DonN+CoXORGQT6a4^mygI)!v;7qf_1Z=zH8eC}hzX8w2 z6KFB%(h6to()V%NGGBq%4iXwn0XuQRBwnq$0tOu(Sqm6~Cz%4S#zo}s;qrgxtogsd zWyIArIQiwKdrap4Be>%sL0^&dz`gMq>>+)AK3-|!x8fz&_yX_1?XUH|3l|&Ti|frG zei$!riu3nVkCU*NGtvrtiq|z|hzr(A0mk3q#OwS4H{x{T?Gk^*Pu(dU=^_(P!}HYg z`F{opwuZgLnt^z4oKAuIg5qKvm_axTUq$>{*J7_=Y2s*$58lAiqUv|>G%Sl(`1jLW zU4mw)!_p<{UAP46r(m7ZB5S-GmM&8F#8p`Tb|%+Z;}_vA#E+NtPx^SKOVA8+u#8gm z130lbr^yR&CUJdf^?|eIufi7-*N59(&Klo?We~gdmmhHHL?4mRjU=g1FK6AMHiDm9r&%v^`s2{+x_^21)#MjLF zzla2xt2M*ZSf*a}QY=%m`ekhIdSAzWt83ivNWNLc%qnY#EZ^s0nQ7H;OMX3nS&zRb zA?12MvHXN{%>lRJ0VZBAapT>%Uw-V)-N7)JTkJzyJBf#b$7f3>o=v&cXshukVk?H zI^E$?EPbdRj|VZTyOAJ$dcU*A=i|$W_jU1=&Kmz1%T=LXjs0aCYZH7)g5UU8)5daH z?!iT748(V%g>Lj?qBX8Jm))_r44+D&QsE1owE~y8{GsLf|8f$1joJiPVZZV3$c&{z z_u{dA;2}K8_z`T&d&2B5U%`CFI3@*tNJ610pb8foufYQf{Q+xm+O6K-qbrdBE_6Ol}y)4dz- z4~Q>u@e8mVFr2uEFT`@ZrvIPvJqdC~m2QWA8GM6*Gp==>j^zwB{t=cl3O{tB!2OPD zUZFOo!qUP=;G?mOgym$AH=&YYsWW8b8xFYI#9JN}S>yZSsZ>bX zNd{eSyo3Dt?$K_pv*w?VhZphuUrdS|aF4qGNifq`A0|A_=Px_?#I9-IMMiW zTyA_7E_%a1NzKE>Z?OJT!LY{fk?-7o*RxG_jUfjcMX0e}kn(HNGClq)9d5 zXA<(}=QMd6exA5~qp?HJ$eRCfEM1`Pf~5=8M`3Al^)XnwMBS$+>wo)lpKuZx>~((% z_FG-!d0b}FLg5(UvU?Cqi-cW>JM`c$%CLU#XC{_Gs<&LHneyba9M_Zezj&4(#s4G2 z_`AHX#_3d02jzTRWa5wFn%O@86F7_fI;K9w!*OfQLdL`{EagR8e6Tx4!VvRh6W5EW zmJB+|yF2R+$6`5vx-XUks0U)(f`hT&>Kfy_^IbAdV3f=Y%$%_t666eOIie)IjHN|t z*h~B~mKF&oCVaXnP@3>^Tt3IQzyv(xP2XY<;TqyPvDG?9m5Pf6zmQN*hJ2|Jjdc1k zkzI!1Y&_~-{;pCgM0|;}#$Uv>#MQ6jGFn7mRIbPAR7ksI-%Or{o6Pf19}-H~K{H&8 zN8@Ztls=p3936lk`*8Wy_hUJrdOrRJOO<5*_nbBU5ta&to2>t0{kt*tz`iE`6%`AHmYcB`$wG4*S?mEIA`F zT`DuD9Pn8zT|B{gH>QhYO$Rt<6yJKKkM#hLW9eh9&`vCUtQE>Wk1vtZ$C`fumOgH9 z2ly3-ee5c9>iL*1?&0E9IHQD{M0rOOUN)n-=c7;aoqxd6$9fNVSuXc@^s!c8-WW_D zmb=St&4t`#(naO$FE^p>^Y|JrU6|wI1=v=w60eJyChYj1=1n?zFR#M3MLJ*9yhX0Z zwnZwjZGqH_n|HxP9J7PseG+6)Xp^SqHy;z%VLK*1#&%3}x}X%hcG z-3+o@E^S_5^wj;P@GBWAjQ_w>R{0$o zaJ}&!T)5iD4xc#V%A7$aeaNjL=Oec>~7#G8$~;*x3~?~YT~dLN4y z8~4TeU;6k!ocon`Y_KHM_=MAOk?}crp7D9O!T3VF?rXpQC3yTd-k0Nqjow$`n$ym@|Ir>r(-+w-G%*D*LeKcq_B^5=6eK77wcvF2bM05208D) zPans>C8AGtqInEUAL|Y~vGlQC6=z!ck@3ScJnqb`wp5m@Z9m@$)X{%j$T7 z^HW&5I4obj|KC7@^sye`jPXffA8UmcV(DY8(63nfSo3FH!T-*pj~m2`LVPf+N&cv<-qtE|;@Cjj)o^W+jhR}Co8THyCKVaJ;$4+YABDZ7P0$*a= z1>LUEF~RyPeRvBAeo({(Utl{Xj=Hw_n22FJCe~t`zx#E~eJi$O>MOOZ|5AaT1 z*nKMBf0aJhd%)MGasz_%T>&TG!c>WMCVU@DpKAsFn8sH!=+g#wfV@J!sAOisN3nEa zp?kXi7uyP+8@si66F#$-<8EsnAA@a+EWx%#8nJDWb8m0n0#9Mv1+fMa?4UTOh?__= zCZ57}OzgpSOpKb|d`vutZT|Q>ntKd3`^SQ^<_SUTJDV4H(O!N9+dicH-hE_enf^!9!M7r*UqP+r0J8oz<7jNidc zmu-yqmmiYgx4Om=7tmxJpu#PmJ$bN@3Jh_6lQWbv$aI6W~JSuY+Q^B$gkgwegjX#oN(9$KjX2cy!}t&!)&wvp|~bS zpK}?6I}9aZoyl+xew+ey5Z;8hnRpRSFco+KCt)q`8(eF~RLcP^gF{XJOdK0Bd5o>4LGhqZ;?z+=t+@8dNbP%FFx7nu0pxX3tRAn*S-ngbp)uw_t(Te}vy z05@PAq|-v4dnSh(`0CIGK0#vEv{q-{W^X> zyc}x_{1>mqddBzQm1h5W_*UZDCGX+YCjM!RgwZBL1Fkn2;s^056=$R~Sx-FR9DhcA z@we=+XLKp%vWhMuF1+!0Jo)oUk;|~sIm*EM|IbLMGzC^m0mk3pocH|u{Qg;7HY0om zvheJ4y@%o2k={9YzI<;UE9!hK^NRX1+z>i^{)`VMkRTI>X1Es1 zWv8BkW%*Q3!?OIUi?A%e>RDKpUv)8-Ct`ODD^9CYj{f@6g#iM{o;Q!DqSRgu8h#;SMS`$z{kPL9Y8; z_ayV$Jv>NoovYi-;q^S%xq1wi>sd zXrEy#-eJ50PssK0ow&jHZ(KIU#~bnR3%pyNiZAru50AglJpb=cLbb`z0q5uW9S+AS z|MBjE=Ncb{(=PJyV{naeAH4cvA3sSP%l8SVkg(hMG@N{ikDrAn8IQ!HF7@#-c)jt( zc=;qBABU4?cwdQQRd@M>Ye*Pt2Hj+A2i+~$Z*`5;C-Y!IpXv*SlLsY9pEf-m&&ATE z%iS2;f~8CKaXu@H=YQ$b*)GF_S-g0}y2CaseOlt;r=G&&w)CkRr1QmeS&EDQiO1s! z&ZnKq<2csx=VR$oEr08&JpW6dYK;aC<|7iUJIuk-r@F%iEPdMG4siUCq^M6_h3*j3 zg*{xn-B3P)!FpLfjHOHST|6x|jKA3+L0>RDg{4om0$-iR4)mFR$aF$BPrGzcIR(h0 z+hi2fX1pHf&W+-%KYYi7gj$y%-i8-G;0yR2r#$H0fJ=@4#d#0;c*0;Nrg`4` zisySL23clQ7q0NX7NWopH^>zJLroc7b;<-2Msg-nhq0-u-b_m3J0STPdrn zTmOfVU}w4a1=AC@@J!C{}eiREW8eVF3ngEM)Nh$lGD#nPvGfS<8+saB}pv8?xWsa9wf zmM)Fy4(mveKGhw19mi)l^l5`TKp_tM)K%yUF%TV1S`ws5v_-m|*t|t<#I^;hu_~GcFloOJdQs3gNO7A{Hc>XUnJM$N9P8uv9J~;6~Z4~e%UL7IH7 zv&J9BUz&LAeV3paKEWHwpg$h_r?bX)<6Wi#-G)Whcu(Bs1OLV&*IDBi;r7JcE1g&{ z(zGMBEwaWt<3UaP^Zb97OVA7>@#&_3 zY0eri!sioDBte?^1!s-Ff-fbmU9{d=<3Ho;h=(mK&;R>pM+ust1D;L>{p+<;oi(0~ z?0n!3} zoi#oXSDW~FXN^z9KM?OA>#r0r-z8{<$MBzI&@=ehS>vm5JQIt?|8drM+!?%4A+CeC zhqK0y!)e5s|Drzpk4w-D|HZw`0q$|u_*~qdxL#&&J8S%Xd^&Ocosb>Q8vhgL5pVkY zzfNaH37VlBzFabpAT4yRv&M7rwZwIl-|npOnK)+lU*@dw6?hhL=D+9w8(o5C*oxvf#=5}>wEOWa$1KT^QUf6GSjeU7x!P*fEs@)Am-Q7GGFtLPZ%#+RW_wfBZ z9KLGB*JGJ_)&I=lL4&np0Hw@5<}byv)+~1U54=B#wSo8l z{oD@cksx!uy0@vZtaf=gXN_OoF2R{!cwdI?8BZ|#%b(rs8pHho`72!o9^!a8F$&aM zqHE0#a=?digE_!sxYjiBV%)phSD*}M8!yLs#ua#yaV3rwnS|9O*aNKnKVNSHrq#Iq z@2{EOMx{a+gh2>{K^P>1p@}dEVQhmCLXs`S6WU}eLI_a^VWRA5Y z=lL&ly8Ig*%Rjf?;VnzF5gY>_p>V7S`@_|rhkHIuwi^OxaSD=K;K5G+F0ko8!Cl^L zexSkMPd$R$??foULr*Bq4QvsH!c);}wN9YFAK3Jd;i50Antva#dv(U9?+s5tH{K8K zw%C~c?;s2%ZcrTomp41`Iz3$N_!Ri5w~kAClcJX9G4Nog-wKaLx3zz^*y(S;wdm>Q zrTu>;hAGbBZ}>}^$UZL9<4Cq&r|$v}CILGi)WD0JemY#~^l|Vir{4k3otHh*N%#Lb z7`lFCO;V7&4cAeC;!wj?aGBE!kK)@eWMBo{5$@;oJ>faT-z3C86&~dD!SH6pr-icp z|8@+coWs5FILD8|D~OX?m_QxG&OYk`tY9=$bR)&0WV4Q^!mRb zIRwM?Bw$T?5uAJ-TOYDTsxSP{w!t0{jf#gfL-045S?MT08C}7wATqj6R^QTUm zVK~ZV&=(%!5;z*(1>FYK74R6RkB09c1Jj>`r#k%wcpvoAP=KZI9P})I3h*n2IvlzM zhfR-ZIV-k;7rO+vgO}lNW28S^{PuC_G*%bo;3{~}klrJ3Ih=0C=pVu(-{$$h8Iof; zKrD$(-WKlpZRC#dT*vFe^IU@a!ZqJT{{!L0PCpNx{e9GjNuS65Z>QWz7%JY0C43W} z$e^(Tu2clp3FFO<W!n<0^Q4GAIj8 zIust`GMosHBE3U{{#sy=z+b3=Rp2ZXChx;J)yNDBF*G>-0#=PoUjl3GHvSP-fs7mA zgJ8Y9tue6i@fn+50;|Br+Z@mSuO>D_DGpkAjCX~#kQkT4S{aRd!*u#)Dujy~gLkS{ICm!CL!`FNL*I8jpmvcNkxj z!=RPT3}av|6vj8hnzzOiV6Ak<_rO}XjHkd_2aF$qHLZ=O!&>`|b5CPf>W?I=Tm=%Fd{}XPHZkOlXPsrHx?cuKI=`o$}-zUcegE^cCYauZ{1=hl0 zd?u`g#rRy9g`}A;gvU9)1ir^{4z6ovuK)joVHSqYB%x6|J+Ni)G^~Zjcoy8z{{AWc zFT;z_LyeN31DpQ}SPPNypYR-e0YUqJ6NUyHD)3MNwm&gri%@VMOScnTdO9geu_8a18v8hf60V zFgFyi_jrC8MSSC{U}b1mRuf!&73ev*W25p*_rHSVB@CshLD>`}bKuc5neA@Bz*Xql z9d!uZrzT^0%fA91h+Z2Gsgnbn{vbT(*LX;6eNx8F`+s{3BV8YLfy>;D#0}u9o!$*r z0kcq;Yzg}o>jB5m*t9lXs2Z1GRF~cXD}BEIK>6vz+S|E*PlDWCPx)S085*~ukJUnH z3y{E0E(0}bbzT9Eb-FG*Y8=b|ip)QpKj`C8&Os6W>sS%$vIrDUp(uI6>GH34EdNj8 z{wu1Id3dYK*8f+=X>@pFxMU^w|HlM}lT$++gahHam66YaN4^*L|6Aa3j$eQ${LLE? zG^sLN2~T$VW+$`#Ic#+eefS3Le{hx=+9KQlD zcIp2N=X`>{VklY_6Ziw}@&SX4QLTlkdo2r-OW<&L;h)jJzjVhZz+L}}dM#YHCh{4z z?Ef<{j0;^b5eKpL(S2|wP1--`?*%sfV^~dY{JA*&PMRzQ$@g%>yK$B@!fTxWU$r@| z*Z+wLv^s@B;BqCp|CIUaB)H3 z<{DlBSI`CfrS&UJrUuR&3X{iS4N~Koum-8|bFc=bac(vS4LUQt2G4dp51#M%eR#3s zg|Nni#s30M-jBRQtTB`Z9?8Jzn94YpG+^*6*YAqZ9GKTEJer1!wY0MEtZ};L`DUjw zOA2EPZ3X-Ewu576Z2FpoP5vbq3k$ja-Pt)P!6V^1m*BB*mj$r~HL%a%R2N?h(ICf4 z?`pVvtG>wyy^hbIoD(=Ll&*i@z%absfOPlLG;4w(f|rO0T{X-95d(xk8ueMh3|vycKhA%MA%NjbKz;Q zJ&0TZ&mz4FGE|@UJtJc);NkFG#aI1RfJ-pcW3Y8#3cQ8{?DhFIfh~c8GkJ%DCeA`( z(jG496DzPTTf_tGWe?mcW7>0f>!ZGl5M6d@CBjFmSkA}<88PsV7 zo`g$atH2lV2M??9&9!4FqpeoE`hG_<>=NW`@u7vUIicR^b6sIP9Fi6P$63f9vaO4 zUvfyS(R3V^l7Q9dGbI390o$J2a@uu(`?>gC;Iczwdh5fh9B%^mpa8=|mmZwMu<)e5 zNi7B~6b}Xl34HAap6TZK6Yx`x>){5+FTx39CJTkh9Jq_)H{nej=jLPR?+hQoS{f~Z zMX;7qYrN&F)_&Pn`35WgL^ebVlq~`w@td%n`>(6=F(rONEVJ)S`9bv7E#_Pgb zI*p5A%@X6yV66+r-C<2z-hcQo=!gj);f>|UH{i&&_ZDeoB?YT8xMxH5*iPMSvs3}IINY^^ebS^65~;@mU83& z!kV@Uw0~hT4uh7;Ebv(^Seu3ML|D_*_&!+k*mx?eX>0sAtXX3`6V|LUeh$_`MbQ3J zn9RnYl`0E`$!oAyD&u*u79!*KVa;RXg|McT@fWb2aCE*{0>{wU)O8|Pzf8-yY5h4= zeuP2uba8k+{_wkb?Uq4ecQkHOm|Z`KzX{2-oT7q0!_(ePSIj}|{0z6s9R{(dWlK`z2VOUK{dbebC23h+356MAP18g!ooHvP+??EjOUL;DM95?6pO z@HE)o58Eth z3T%3tVXS26c3vn8Z2BJX8gx7HoD$gdGjkZ$T016ib6|6r0I!E`3A_^6^f%xVbgSXY zz^4BNm!ew>ZGBP3rssCRurChQ#K#6UhZ^_@bbB&-ZD7;K!Y85I%V_n1O@9%-5Zwy+ zL*St2lI0k3I9L;J{O^n{ffD$?=+;Gt1~&aj_!bv`L}1geg70zqV}UcB{r^b}596>Q z7L9=~0$T!0;MwR_gU%OcZ2J1}Jf~L#HvM3DA-c8j1%Xpt`~Srle#F6=_`blFz*KmZ z%ix2+rhfvrW~H=g)_QoxrniUJL$_zcy9bt@?*IE>*aipdf-?eJ0)ydQoPK*?)9;3R zq1zyx8`$)B;Jz;YpMkUdX@MpT{c*5!`SzD&YzdUX$GZ$p3~c%-ur@E_Ghyw1#^=J? z{fsY!wfkk~4+?Mz2JLp{kb`@=+wcE@wHcXyJzVejCRn?h>9@n|Zq0l*><=XO!)eg| zubW2a-^CAw*evWD59e_p(Pm=baCi*X=D{tW^e)&s95^Pk_S*sDC|G-i9WZWzwK^b_%aS4+Ma7eg0H~Z?=6E4_wz#|^opP# z4Qv0m*YoazwH<2~={DXsFy{&W{(CU&Foh$NOYlNiCz>Hae;(HESPrYeYhdke_N~{4 ztx3^!B6)*e`V9yG%PQ|-FXr2ce?x^cB~BEhljWte+*AwC*E)#rzayNR z=?nuf3^_BNP)>r!(qwZfo>sD^(~z<7IDH8d`RRUzX&;5qQ-7?j>AflWVi1pB{AY=(1j z7~tmpg|KR1`X#WR$2mBL#-{%`R+l^u4?I8C_(^!Y<7bt?tRd0iCAj>8$gjda!?)lV z8k^cZ$ggHd(5B&gPFDf`g8RAjlFM7Bmurh5hQ_9jj+Maf@I05m-tZb)#0JqovD43n zJFYvR`7b7q5B^ymg~^>k56t-wgRkL(a14!2?>)dT9Ld0HSm$&V@I$zGXl$|1;K7c+ zg2xYw`uA|mFISZOj3I``rW?ty8_)OC8nV!=aJn+=c7;!%DA^K@p|PolWBK=mYiSX! z)f$8s!m}?51=9Wh;TVQr97}jPJZgC4tKf<2#U`(V(*)C83zHdQbS<^Y;IqJ4p$e15 zA-?gqu(bf|Pf_wCh8P-~mOEArIxtHXxdL^8lS^X(*N3NE6KCCGZHx+rX3O zrn=U@f}|8f&HFLJuJB67R>LtgHqCp8-Sn1zJOd(s zZ6?P$2i15eT=h}R@M3tC>w=5n~}_lWwC%A;L*QCUI*^B!rlMh z5JTO{=&&g~*YQ@cFW`1?42?}YJ5~V>g&Tg4=~ct^e?~qA?z)=&KMMuP2^dQMjt;eO zjpH-m9{)srFg&Iy@=(|pa5x+TUr3nBiH8EzFb&m$BjJYMbKC^db2$vZVxUAxao{&+ z@WulLu!U#cC-}i3Jdaf6e}&6HHNF#`p8nY~Wy>G6ghvz}63S4JOo5AAM}AoGb8VvG zaSRRZB0mYQDT-VV&n}Mq0_yyfs6CCWaOm0Oyop$6$CK zgG#uRR8+&;sIfBa$c2IU4VQsx{4G3ht5~2P;i9f_?eBUeo6pu!-v}<-GxFwFvj5L< zhOKd^+9x{f04u>P6ehdCHIDa$M>*aXu5)}K>|3ZW97AK%_&R?7uLOEv)inC3j)%?g z@W9Jx0o7nhxGz}!BxAt&AK?;Ii<|@ZcNMq*?s;ge(8chu6AwvB!#g7NxnRgj#dkU3 zLF>l{1WVz`Cm)i`Qx`F)%CE}U{CmTLPl*{+!i$M-+w*yFgX0Ns$p%r+y@H|48GeBi z$HiB3>(%jraCZ_sKrKX(&JCOuh}{iV1&l9&E40$3f%k%86)CV8 z_zx#lwZM*WztPcuH@LzTXfJqw$NRw}jCK8g5C#<>3x&y{ure?{3idTR9*&{0>GOvf zq!hre4R4>$&1?$XKkOCnz$y?!C>`XTS=dwnRXF|rUo{5R*jBom8RaT*d5BQ!GSny^ z0oS@3Uzu0HYn;C>RIYcd_;qmEb!mZB|AOTAV907!kgSF)aWGE)!)CGJfaV_*Y!8>i z)@A+SDwu^X?UE~ke-^(m83pf*u69$GJsvphzlF(63_Wp3n+S(50$T!0U}b3hqjYzj z&;Y9drvDE6E?Wb~z@Oo`Cb0HDHOXce%KsZ{+#NoI1ns8L;qZ9aYCJsXmf;m}4SL#T zRA6dg(;pA;f-wyf^$5{+$^~n#ZTZE1iBG-1_=Bi!O%G#=m{=zZdT6^hd7a*!(39YXyf7aVT*P zU&6!CSxM6j*ZMCjm($mSZ*m#*hAW(21)qj)uV4&?tDQa~hhaGmR-=dDTIVnW?y*sv z_lw|uaB(P5yX!geIRACvk)&t$`}cuoIsG7bxQm|~f}vmPRK6{-2Z8z5_r7h?cj-ycY~)m-WRTO+y|cN_(*t`;}hYAz^p$7$>|v8IEVA$ zd5$lE7dXBeUgUTzyu|VC@G{5u!bPq{ABAUSU7G#=?;{McPxvAttc52Fg~`{jrjhYd zSo7NW7g*EOcqLqGKe1q)_zTvoFg>{;o3_pSe_IS1gyzr@9^^j5u`aApYY|kb*K6Ie-8{=O3k4ctaZWo09ez^xC+*&H$EKh>Sn z)b1wse+!DR6%Iaw?eZe*>{$MX=J_AxbQS1$$MU}@&;PQU+-);OxH2!o-Ehf`aWA+p zFM+AfU-93a$w#a3FA07AxYJdDci{^3^h!%hf9~eYkhMZV(hVNs90mq9{VaGgdOD~` z;K{(I*TZ$_rMl;X{&Qf{e}!jl9M2QEO>f~u;|zV^3da|~wXm%Ncfr+8e-$3$csacA zrr2V?!Hb<HUR-XeG-x_N;3|H2?V%$rwgrus;%gO<;>K2G*!Gz8Rhe+bQ>jz^1X*Q#uY@%yoA>{} zF!-f6nUD=ii_jL{r(QutHdW8=FoD1{t+d<>0{#n)Id;4LLQibj^#$ z;E`@nJpua+>fsm~n_hIR^uNjcZT;sVlylHh+UQsj*1dyMvdgd-_8D#l$I#f+-Lc{y zl;?kFs$2dz9GMs4Jos$agcs%|aEbF*fpdw%8aOK?OEX-V!=VC;R=Tb3 z!~mN^4|wpVajiZIp67T3JPQBeA^!7$E&gnHmh=A+UgOeV4(F6X7Wfbeh7oWD2CaOX z-IcNFTfs`uxCdO~?t<+ItAM8O3i~c9hhu1L>U~$<{{OGM2m|vXob6amd@Wpb2fH1q zss+CboMlpw`~>$zPk*$Ee)zk`^vzh|u9+D52Y9&S!K3eqyc!A9;gG(2=jGLZdIP57K5+#3^^4Ns+pJJ2K=6FgX zpz(ch|3{74|E6LX)@&$99*0Leo(ZdoErI7?jhQU)@;dxIycY(w(2s#lZ-5)z#pv&F z2`!Wc?f+{q^u%Car`dK=#+Ja2um+v+Zmv!X|SKyXTdQvHm(0Or(pcGcj&3waj@bWPk}Wnn3mL^OQQx1 z8ufZ{NL=v@9~gjnN|y3V&+=!v=;QLh9iHQLd-}8_@BmnSYWx7KF105jzrpI#al!xm z<^ofHEhJ+wR6Q2^_$Kk@ah}hD2RQy7E}I_xe}?BfUI7oA5%oXe;wK_E!PVky|0zh? zOlHtM867&nHBUue2Oi>hL%4_n?Msa`==Ki`68Md%{M~0f4ue&pEEFb3!>Ul&{|b}i zF${7JC&RvvPlsdRNvC7A;AnWEE8q?AV#nj*%BN$6?u4sKxc;{%8n0p)P!gNG0UqHB z^gDcy<2CSf$A$Oublhat#6J57_BH$rj-j!s z;(6X7#eXhFP2+(SQ0dhNUhMo;z`yTh|L;*B<}JN)(0%NNa2EJ17hDC~{(V_s(?`P7 z>4IVm>eENyfiC`ZcrLnKDSZaN2e%LYZST*qU%Ln$?`IacKHUJG;`GhorRX+j4}s@7 z{b+d77V(M474RabUkhK2-Z>QDi5!My&f$4@7!G!|`W?K+>C53VbSuEdQ@9RzHn!MS zaE;?q_zYK|&z}4v1#7%I6)7N@{ z?L5ZMB|R}zJ{N1y8?JU-1y>P4(?)%KAzbhD%i)XB?GepXc#hMbfEPHP1uto4_W#!~ zoZu2@g#8%!11@?#7VvMl#Br+!d2z|{TJU3}#~qloz&+vWSuy_JaPmT6-T$t@(8CPy z!SFPfz)-l->BHd}=r%^Cz?ubFC`=xOHR_F@fHmrkpM^hzH7nBV|0Tg-4nM(5aNx|C z)?kB&GB$lvShK*mJG?3+s4hApu<6Ib>T~0hV2vSy)}O*;AcpQ3>==GyV2f}YtWj@# zH(UYREtt81O@9~Gm@)nc)}S>099EZy{kJe#f79Daf|4UK<=HOP$rgf)+ild0LP zF>VKI9Wd?$YfKog537sA`dgTE!=OGjhpk}0)NT*Q(Acz#V=blq;aWFFj)x~Z{ukVJ z%kZKTEj}9V1?Oxbc>=>q3ShhluED{$?Zb=#rBY6~K5MSOqrT09FRZ-C)(&cuQC{HtqrU+cFmoJ7G|b z&7mhu37dIuST!=e0`^^WFdRc;Q$NS*qCs%k%ZDU&IO$4Dp)7|X3kAuN;9#tO7dbtj zf56}C%i&cNuoy?R;Kq-#kZl!L&V%4Fuyv`@%k`QQ3orx+@dOHICG`5!L03d&p|If9 z7(bt9;qUdA;RXt5cS3)Dl>L7`1}jl<9fwB8N^se0F@poq%kQ%;Xq)tfhfFbUmsG=J zh@S;6Jm9I0{{`2>_DiVi>e&Bfun6ODcnh|*`}x48zYMFu#&5tXuVuZS}XThW-x~?u=>n+LwE>m*M9(X5EPH@Od8K%YSvClt1FN4Rs1jOdw=kZK8*1!FnE}rAKAO7OO z=^$tS%Xg>?4yh1EdD$B=!zYv>JP`-0k=MIS%XA-qo{KMgGi(3ffC$Y7xEnmEdpyzf zfhW?(c8VPePksB4WFe!}3Ly3wdY%*fO@9-vC%qC3>Hhy4hDz&WX6LcfIgn5QJ8~)F z$oVZZ@O&lyp5?#L`Cp6fc`RH;`o-G+G!5!8RAI1nKnWDR-!enb-{9|A{>6Fz^ZyV2 zf%uu8UjJlcU~yiAnh#nQ!1Hnv@cbJ*Ag==R^Wu9hnLz=hXV+g@0a`DJ8E%7v=TdlF z)?{gm9S1LUd=)%>>)2(F!DWusLLEPj=^KaZzk*~T5xm0}@DLKPE?Mgd4ir;t;b@n1 zhBYX&P?)R_PjELJHh~{Nw|Bn|4s8DY;3v0Y|F@;~;>^&T;N|dBB%rp@7?~Q_5_lZe zC^nu6FN6;d{$B<*{aaXr+W059^1kN%zirZpL8H>eVtpUL*>9J;_70~TQecqD8`wEY8{-UpuU{11cuW^^!$?W$Di{_O#cjYar54x`R5(x1P7l$?WZvT**(93zvp-1if!T%>o2$) zY}0t_rx^o|bJZ9Q#$cPvW$+QOO}hu-{;=N*dM%CxdJkPqoQ1;VV|X$@tup=`p6~Q; z;DwQM$qyJliH2l3TttSJz;AFdZ0khHGZ~w{4Xhd(m%^p6T^%16*z}WNwLlhl{(l+< zHJLe_1*=7j&xh3_#uvdO+@EB+46a6RZn41TUk9rNjh}#Il5=*4Nm_J-Lv%8Up0@%Y(J}xhGaDnYFzUd)VE27J8lOzcL!~}HXK7^(|WM) zjn8Rq6`&R;HQtFFfK{PhDRZ7Wiq=!>^au`j!fKJsfiLGS=#&<~x@$VD0(Qe+t-p~g zfVH--(C+A-iI(*GI<$b!Q~Tgh#c@tgPYO8B4TR;;j{#%n#pVcjOb)sdQj7=TIvY>K zcn_ZEcn!SLv0{z>CMy8#uVEPt;%%Sh;YM&UeWK$X(LF1E(URsqO?E@~EWL-*#T6N= z|M_c*L{JN4p>49C3P6eZfF>$mKMI`bg~<^3Zge}W+!fgLdttSR@k8(|*lv=(A2^)n z3X_Ex)MOUn3wRM+j6nrh>$!|g?+mL+jn{|$pxgwGfxkxy`$2ieQ*F~0Dp&nADt~2A zX^<=nysb+>gX+M%4Ej1<&jyaj%itKN+n@|hP7Vdh1?b{z{$WrU;`->{ICz#m-|6{$ z8UFct*KgyPkiX|E@rOhHp#aq`!nHVfRs!?BZ<(OyvG{ww1s22Y+(e3QA%L|+*WiW?5arg+f`^u*VHhmEM6?%INs^Kkx zO}_*F3Ek%ToWQ2P39oYTe|v%ZNivwjY8(oC#00i^F=Nw9;m+t*!{Y**eiFP1y0y^g zz^2~-m!ew>Kbs2%b9f2vjf1UhKL$3v0q%!x4?Q<|DPz;OfKNrY0`?1R`cd$C=+?ry z%Y(rju7)qc!TRX&z^2cHuW|`|8QAo1;jvEdGCO0_H-IOghp#u~lKq3h9Qwf1aIhK- z4Q%>w_<5(_AK3JV;n&fvi5CPm{Zsf8^sI$BPqz7AW-x~i@b@l*Jp!BF3toY4)9lQ^ zrk@KJve4K~%L#!^zXx6)J?#QrPrnfi=I}0DVh-qk1vWi-xlOVIx{dN30-L@IT<+r6 z1UCIt_&{`RQR)4pvB6*tx4=~{gBJsvJ_pv)YWx`Ijz>{u`rD-k$qOStv|OFwELM z4x(+~1&&MM(jB6{E8Np@Ib7+uH|z&tB^*Oz(;;xp>CO9ptK{d`83WX)tB&0avW@6t zC1`I!eMOh3iR(y3`o9;^MQ}y%Kk{=16$LIv*O(X&tH5>{_%W;k+ZfpR3ob-*L`ZKy z5uxXo{5fYheb@k3yAoTU`z9QW?pd`P@N;b9e7*pGum2m)&7(xN87RU;m%zO^c$VJ! zmzEiLeh7ch@*kGx@A0KIP0iH!4Kn1c;n7jlJa{MYh#PM57 z&+&V&WcCpTi$J{svy@_y@SOH2N=xdpiCNu5`Q__IFzfa&y?fokKgg zzvH#xV;rvsk8->bJl^r<@NKziA%VEtQrG4KA7KozCXw5o;G zhc<2Qh1F*^ZN7%pWx8Z3;DOfmUr``3F#o}@y1@J&ht)#cr2d6T1FROwboT#Uzvgoc zE`edNx**G-FnJnQlUstTU=6zT0Kqif>l-#JxNped6If$r)4-c7;cZITUi&%;))**} zo+E)t7}Uq5A;MR%`p`;T;kwAy0Y3|B&^?n(vc}Dld_Dz#)3yIePZs|gr&T_mL4EZf6Yk}dvMF%;0zKjT-rH{<>ulqmvO5*41Rlk#8w*O@XNDWGv z5?@OM&$15xBNlKhx|%c#TnWKyG2=U6wTST~c={CMcF6;<)`7797A22jh@r7*2JF{? z@40QJ0;MmmGfhu?gAZUb$d*ucP1_q_^?5moh-=v0RO5+(=ffI9mBGIi>i}JzYmTth zw|v5z1eb*f$HMAkOYmA)UC=Y=&$t5Htne-L0lH_RC6iqXE<~UFM=mz09LiSx|MTZW z$k(Sk|F6-->7g_XICU?U_1*~?GjnZbonzDc&FD{ z2OLYE@_%qo{Bz!6Zw!leZaM8{uZ|fgLC>e-@A(|~IpW)ukNkVAX&HY&OU@c8EeknW>-7Y?-1UCH7T)Op@&<$xuoqInZX=7!qai+h(Y&w_6%(L zzVIw`JG2f8Z2Ecd>oJ4mj=-i*f)_RG?Eh~DgE`EH8*%82K?PVH*z|%oSt)mlH7pHm z`mS&%bZg?10-Jssyajr?z3ck_hF~y<@o*m;wDPF{F9kOJRXB%k53U;moBlgI0o^{3 zy~SG@o4zeP4P7mqUjH8z4CXKZejW$A2Xu8{)31Z)ptr}M0?rI<`g8C*t^nT#HvK2~ zTXZUry-%{iyv$$@-Qa(4utC%(u<3`v9a(5>5DpJ)`W5g-=;@^!1$;QL>C@oh>B|r4 z{#Tehg<(e`*k8b29M~d!2Unq6f!29DW79W;k43lJat8!9y$T+TZVxmr3>@}fezc6? zN*rudPYG-ZJOYn#8GIPn^v~e?(5*$3lFU@aFS4u;AY#@DLvHXm2SAC!mwR<9_wd1@5<>m3_QJt{h)iD%WE~UeOLZl-VIO}RTD{ra1wp00;JQB ztKpwv6~Hb|%YNY90(T?wLRb~lpwyViJ&i#%vO)MKtQr>whmBkTb7bc`5-0eSPr8dpNsBU`Z%YHhqsAis3o)i4JCnmhkk8a zM(}(w{+^X!NxSHOIlAxTtKk?Lo34YKyEw<)@6F!i1_T){z)O94Dy#w-|MM>E05vKN z`g*+np%$}+wZq={#&vgI(Us9I{epdU;W- zq3oXb#NYG2@NfoYx^VGA!vkLuSYd@E|D_AXL`gX9I(0FH9Eo8hqtQIuh2Ob7*fk6d4 zBjx7%|Aon53>qXBVJPh9@o+c>z8?WM&tsQp$rx}{YZ3i+Q$?rUw=R7serx^o=ti-ja%gw zGN>p~y0(V|#1`S&pd0I7)xdZxy60Qq`D9?z_(gb`W5t{6;-~Y^8-5^y=jCwG?(y}^ zjX$A9OOC`aCmNFD;6;v4f_qYfEb#g#+{^J<@JP2# zoDcg?16>4b3|agUu*Ogp*#EA^pguN-|HA4c&|Rtp(F2zP*cV$dLc zFRoT5x(}nh6b0MrQwFjG<{M?*A^(TXsuEts#H~f_6cnqqZDo~ge;w%&- z#|Pb5|4uB9dOrUPf3KegXDyzN|Dt3Nh8P-~&V_xGU+8od@D6wu84e_p6;Paog5;~9 z8|&YajiTPn+5X3uaERa?eu8_H$Nm3+&lvTNmB4V9;9cmRC&M$*eF4Q;C`f(`dX|4^ z;(5+Nj>Q|t2>HC61iZcyu4Yu*Yu}qKf{Cv~rnQhb3kAuMnI7`DKHelc9E-ysxSSZ4 zfY=haHt5D<;Z=LIym>v@`PZX+ei81!JNv(1$$EB+87N`TONrq57r4uwG5$uMvlLSR zOYcCqo8xogj*gXnX|AMYhNX^gSAvf3hD*rMevUa89_%6xzOV+7@qyC$<3`4P;a*NZ0v_e~ z7MA(jz})q0fXkPIqU*!S{d&NYt$R>3vUCTia|9P6xj6hV9g5SVX$U}@uhG)AF%(A z#GpZF4%fgMbjD*~4NBviVGTm#39!bH@jbAXZsRGimTu!m;O6aKzbBcFA%@1Lr(wVO zR4nI4AxpE8&~7;z)>>~D8uMW-#pOZYy`fXu=R3gKu7|@K6Sh4+4{Okh)4wP2HwLY2 ztN0C$GPtI(kckShGUIR2jYlYmgosc$TZ6cF(WjkxWx6 zr1MX3tjxX(LLV>pNl{BOUKMS>1llS9}S}4 zF|2Y4Zt)Gz0UfI#GfQIu^SK}XUOy6ExmUb9J^~&9+wS-fJWsmzKNaA83?H}%f5Y!P z?y-b#f;c`Jp6~by_+7^j!|ym=0Ke_H2`+}4zbCQ%w~Sg0)}+V4#e2u^$c==HVACIk zD;<9X4|eejzGEqNTnd*vJ`P^67uWxm;8hq#IETmJRgM?JHI7?-Pk|io1TS%XJUqtn zD0rgdX>i?MZvX!j!z|~ZKCUm1econiHt1y6e%Kz?pv*#H(izrErN&)h4LakE;34qo z7}VtligV7PF9wZDi*N+2L1=sotU+pgBCHlLJ_S~v8lMTPOO4Nk)dj{E!a4Pk87{#v zz;O;%lbik@Sbc1KJv_qkO|Y8W^xI)Ix$)g_o#XqLvj3~e&Ea7j<~g1QYt)+l6s%Eg z{5-5tZ~Q-4v%>gwShL3XZCJC)_=BanY}%RO6C4D+h01v zOu-N0SAw49QIO>3VyNyN=k*G>7}gyPjnd72%-;<_zw@d5>kyWhd-c&>`W)Cx+n_;$wTO#Wv>c)y8n5D609SFIf!S# zOUb~t&(GjR`^GM5`!j>oaTz?=@d@x4*gk&vA9zHjXV3qqVVLJ4dk_a39ds2; zS+rW-CTZs~+zBqqn-#_VNIx6@+|j^6hDAiT3{r=X;Dn&3NCx-7rTfJ$kbR{ROap)V z4_%zz(n;&xQg7Fg=~@24q1WLtfwgfEk8(Bk`Vm354E68qBVznx(8c4jd7ip?eQc(O z{3*aKO3>BlMYzWC4{$%nO0oK=m|@pOx(FWVGW7bfK~GCUel_r|`{m-GxE8|*GO*Wb zo`7rrb7<0jQ&s37iezMvLLj|G4i5 z_i!w~DK#i@{610V9C%E=15)5noQ1}jXdLS*p-SF*> zmCl0NSb(|c;vvm@1>?^o4UFNGx$uIWQ(T2wl942-c@we>CWpp8hR6 zJ;tAr!$F3{2$q0%SQ&IhR2>z%oDmcF3te2@T%(ryzQ1RB8j<)1!aundO6OngSuw%$ za1hTWh84)`GlFgjJ_D~BN(;C#)8p)z-rwlr1ui|O=aPy)G6zdg|E_Tfd#J5@S zJ>1~*M))qLcU#4&*jU%UeK6FS0UioZf^F2_4c`Yhe?1X?#QCp)A9lRipKQOdU0JCG z)kRq-Ncy5%3(^0YJS`oLz`;k5u9Yhb*&y_M4E~-^glAnG{ZEJc?-NhG=fk5eN_CAt zPBa*vro=Xn?}rCf3`hp0D!+h)6UT@D#d+c1F@pi{W3C0Rh6lI;jD@E;y&j$px7Gfu zmFpV}lU;?)4YYJ--6K=ra5TehIcQv(Xw((Xh2}CHyIzvq5$~hPfF0pefG90^Nx&u5t^F z*MAPWRY3oyOLc0<#*F6`_`|BdLP7E;hR-R06-ZWXzgY+gIPU&82{_&!UiIJT-xHqV z23>D>vGeZ(mtNy)SdC%em_w6cw2@Z6Tj7b*h6|TvRjtQ>8FvM}&e<*5iks{?283zO?$T?rZAsPr7)3hP3~^t+mJY=;<5!J-6T#X)QiZ^60{ zF@6u$m5%Yp@LWIqaG4CZhe+zJQF;D*4akB8ej{iVRBzY4GA^oGEu{|}Z*{x@tSccaP&Zf?BF0<7x==Ch0qaZ{ zuKx>@oiI#v4n1KVN-e_Pu+D_W6|l~P#(iL&0gVrbbw)Hk2G$|fxCX9+!~V-_H5hb+ zGKaHaoluM~fOUj29uDgWWt@X`gfqSd)(OdYEUXif@pzaMlI{P6$z2$9t!EDR!8*|x zKMd}(McYpHp8CVAx(_e&j;xT>|)``b>9{jnk|IP3L25pzdpTgSDjlY7meHt%? zwR;*bhjnRX{5!1O(D-jyyP#2Mjv(8m|jCKPcqh@J5Qz92%QSV1IA; zSzfErZM$Nf4|t6CGpsA6HM)TTZ|magUa^wO`R%m|2hVaC<+k6$(3erb^t~UJr;FhM z`?uWR=Q@AI_k1t@o{@9OqPz&J96v~e`DAEsv&|2zgmp;!5LSV*P?&rQuY_$oZ{0Ry z)7OGkVB=10b1j>=D-JO z6eQ0E2V?y^%;_(piwCiG+U2>|mj~U)Uo<|ZFT3a5Z$$70IZU`UMp%t5o`~Ht^!oAb zGF|ahM}?lZ#rP+qi%YRve5dD*mqHzmAw7N z7%Im}qyBT}Z(UZ~TtN1}zi^0#tOjG69pIw2Ned?7xlV73?ztoE3%o8ILt|4h++5)F z{eS0>KEugNV1K9UCl-Bt0vuBgbGp^A_3g0>&PMk<1hxXQ{uU+wb_pnh5pZ(}$>1ud zTLwK`29wY|Pl3nNg|<$-1J}d;I$%f^U+aHCvI>V_NLkHQIU&{{pZ~@`UoXC+rN8IG zwK(5EcM_n)lKGlQ}!NQ#KyS=Qvvm_aA>k<`e3hFcyu^<$j(hSdVbmGDH^7P9jK zH}C($FsO+v!lkhFk-BIk97AK%HL&lZJs9P4|-OptOYBbz8YPePQ$P+c>VD9sh+k!X%r+!W0*?| z*rD@sctlrB<_ZkS0r6Y^=fDjl zXruO4cnG?&GFWw2EYNK9ap*f>*ING*Jkt4Z(2>0Xf4`Eh%DDuF1qUUpBoxL^j2T>t zE*^|zOR3jC4SE_e#82*t@l(6w#rWs)9jcwfcQ`C?HBbVhoW9Q5S(jxQ@)HhNU0}Q^ zywLGhuv*mg?bg=!ugJg*JL7OHT#P|YctT*)YhiVP@fon1*my9kE-)SnKM&g@ox1~@ ze*fC+|Ei%G9>&2>yJ>I?jZII%e%d|nbj_NDuv&;`Rn1-GTWsx4nVzM|PdsuMK0Pol z487o0upeZ@rnKxs&u8H8`5d?&|6%Tdh1fE@Bk0EI{40GpI!N$*4-q^|pP%RNc?$lX za=jr%+mjA3gf6q_j?^*seb(TK+e@jC_GK&b&A=B41 zNBDpFW&HE?>5o|knZM_`_&2kze-#Ek-ZFyccZlFw{{5%5^!K~~f6wx-oF4r@MPCvI zJ^f#pEXI&9=(13ld?IIGzNrnGu_Gs^UKpc?R6g@pEu@$FIO;;&lFnG0(C>wo8F=262%gK~WiPdS@F?~L@O)|TH+>{LwUYh60*f{qg@ylXnSkd< zh~QcNtzVA*)6qRkAL#U_(LGDA$-NR2NDYo>5uwJh^vQEt`g?vEf6wyo@mfoN&vWt5 zc|#guZe9e(?+~Gf;{|ZngW_iO58T?Z(i{9n%k(_=Scm=J8x&!&i?Gu=+>&uDed(Jm z6ZG5@f6wx-n%C0b^WN*Q|9gWX)VT;1B$! zKQj0K6(JgwUNY>%mJvM9!QZp|Cp-T)(LGDA|EOhpk=g&}6CoN3l8@l2Zs}bFFNN*f zFm2b(SP5(Q>IM5l=_qzbt(22l({$}OXfF)XntODsuD}Dce83uKMeVZ+}hEFomr0G2y z5_la}lcvArf=~FHk5JI0JxM?r9N-FM_Xn1_CO;Y7vkE`*le9}T{<6&^7*al+2%Z(8 z=cg_E(DOO?d%gfZhZ@==oV(z&;Pm{!|Gx?kOm*_NwSU~AmKk_nP6W>?(5yWFo}agj z@A)_4dsh60FYwRyzpMpPgA|Iinh2g{UGQbg3_KUC$Ayg3+rh)Bp;ERAPWh^3d~udP zF1r#T-(gK&1kdI8dsYE^ejPLDjqbS;o<)J|!sdK<-a+pD|2r`(at^P;6CF3eb&i!` z(f2XKO}cVEK+ghC)!<5-X7u^Cu=?Ee9pN(%V*fY8ZWuI3jQ4^yh>Z7x&vSebJjC&# z@CA;KgfDb_96ZeNN$|gO&TtxriyfZ@s}HRJ=fjscz6ie5@n!I3@a9BNpFbGb;@81y zQR64zoSM`O^%&Gg#xKJ3Q8Ukh)kUVi3Hyahof9)pbMtKb`2)c%ASUtS++*do{7J zInFiZI;DMN39iOLO={emufS=Pmy>~3x<#&rTIv3T{m=87;AOq@$>#8m=sT!}B-l5w=|{jSu<mfF2e5Up7(*D!{4^kGvIp1H^EEbVhXA*n+4B;?Pav@ z;i9VaHzV2ef7NK^vRI>hUbmR%czJrqpQC>ph*-s>9 z1cNy|1FH{>Ux3%Z=D#$s>A%40Q{$Dey1@7^ct_a2n6&lADTniing~OKdy!}tcpoCz zLR1sj5Yv2wT)TOrsHvJCxO!RGnJ||_j|G$Z0EDoCeO5nG^mcVLQW5T## z6S@GlZ$6d=HhouEgUq-bUIyEB#A)K3b2tlw2BAebANC8=MQ{v_O_#xbVLFT5QtLo3 zoU~cJ#onNKZhWPSZwpt>kLr7H@H_>saI@kaxZ1G_GodlgihN#$f4*L_BKrTc3D^I{ zB)By()#N?8vG%(b*a=nvvcO+RfK>qFz2REN6>z=dgW(Z}ME`zp?|zYw>c;i|4bCtC zhsO_#4*!CE7Yu}BXlyzg_FXWspmW-S_Lb}(VP#lNByG>7g`Ly|5w-r&Hiulbolz0yN>^x%H-8J|7VuCd+@B^WO>G zb5FPyf4^G}SQ!W1$>@=}{y!bVkh}!?eJfgr>_j0?thBVYgNkxJnu{bo_B{U z@(MW8#ji#8drIU8Zk65~JMQrHe8TW+4Q={?}y=(#PiXz4vV7|h{#SkuV(WVoMuBl2`u zv&Qsu;E}NHhPMSaeIk4tx_!do^^CLn>xlF=22CrA@Bus%-UWjS_)lQdTbE?h%D6q; zfWK~9$$$62rtbr5Rv8}vcdusuw}->$riSP+4Av;O2$#WCu)PWWU|`c9gEh*HXTpAE zd>)RWvFT;FCU?3;XqEKjHk$@j8Ru&4-<`R-)vTDx@DRV@60o&C`6mv#@1#5a2_8d% z>=3*C7F@o=MU+A{|Ic!Ug*enXZnah0=9~I)*T1fTI57{5fSWzMAyJwojwB|jBXz!UIb5c8K{M7)@j*7 zp4;WNCPU}Y5uWM#>~MIn%kUC-gySjj7{~9zYaIUtFLS*0HXK?V=c+L*a)!&`d5#~1 z>m0uaPjsvrR&U<2hMw2p?^*uCqJK93Cq#qv#B<@c93u1dRV6XQB6N-NEEFc4V6~ue zS6HLocw<1F@d|j2<3Hh!{bTw~aL<&}@yC6-9_;7Np#$9C@jCEA#~Z?aZQm4*p|NQz z*q?g)w(gv!pROw$3_f%5kU^dm%%g0paTYtdW8{Ae*oR{qwp;J z?RsDSGoAlO=y2NpNZeY*u!sn@J1IiP?y&&vwxbUnuMH;yTKW%kdO5o1-f&One-=FL zICuSjJ_gk=3rtH`H88#meiODM)q{aeuY*+q<0s%HaC&Q&7W+J~>EFOfjuM&S2Mk4U z`n`T4blpB<(>H-t1LG}WKM1#jV`ywDgZ&`fv!HW22Kt5b#h&Qa{yZFPZ0e6;#15eRN-?rnOc3}Una~Tf6VHRxr`Bm^Dr`N&D zTmm1#MJ|J+l%@6LxSj6+SHZTO9}CaL-?sBBOWFSu=TL`3F%Gt$f2;&t28BCv@#yp& z;n7Z4i*?;K4%&PkfWOyI%3+vK0ql%68eZiJ^d!8rykD|Rea0+VdnamK8*5Y!7dt); z9^vBO0FQyYQxZ+vXW{8i&n>|)0K*o+q4UmdliAKeHBbSvkgXG*_r~AzesGm5(AjVg z$G5`ek+bo)V4s-5Y#b`wD1QyErq6ex1gb$p;H*G=x((K#HC_X2kQo=2v9~xbf;Gmn z!2aI}g9e#J=n89)8E*`0kQtZ28Y9Nrz#1dQrLe|`@vgAOh;cbQ!C3o$Zwyn-09V5G zjt_z7Ip+!;7_r`8brpAz<#Bh4#&V36Jfv7 z&2qY3Dfuz>33|rq_$x@hz%b;Lc(Zw}UARp~0c=+62Cso_Avp=|i2vr4LWA;JxD+;h z23+e{h3&s@9OTWM=1&rfh>-8FxFSaQ3Vpsyu;Z@083o&&(>>v$Q)2;?fscQx{9Ss| z7gXl$|1xBOmqv)-`8>Fo3@B?_WBHBj6aDW%AKJrmGgNK}wi-xZ-T;LqOhle@-86M?$ z1w7O7pYR;VP4KIZ+w9ghdChSL_>G)1tb<{m;|*c;xs`ZRSbc816|6ot-VRQ?C^c}V zg#E199gcx-#lbm0Z9XsRtUk#`F^9~}*Xo@1sr@C>Q(*O>onpU))nYmg>X5o+`_5^T zZy9(XtQOI(A^jm(En@s*`_8%K4GigfIymgup>x_q#zSDWh(&l3R+m@-euvd1>2^*0 zy*hSIyTtSnux8a5y$8%4l&4|Mf|Y?+bj)>5N9h)!guAcJ?RILoRp9+yli5PzNBzIh zJ)Z{mKdt4VbfKFiW6?dQ>tBO&xETk}x5Kq0XbTJFN(NWOY4<;L&(eqVjr!~8WAfsA zJ=chXHzMZ`Li4F^gMrYcK)EDx7Z_dun79MV|DD3ZP7hTFFrEr`Me|kUf&JwM+I#f z{|oLV*8Z<)r7-BImI->kjtHLRKiB!+h`yLVDxC#B#TGI!z6(|XjPHfj#o76Ti|&Uo z#L(FE80`D_NvEp|z6c3qaf*^}oUY%HF3pSov(pv7c+a!|A%6<6DTWvto3?~~0k(Cz z5;!VLAVeujj&r&SP?Hz`6sMKz zZeDr|oSs%d(%m@5!1lxsQ)gRjA0)_xVJzGK$pFT%=jPB^n2 z=Mu0Q`3$c@_k1nv3oypTXZ>qzx(S0XK;;%4(gdstZ*vhW!$q!!|3mkz78^b&w!mxX zz5s8z^jLpcC@}Z}T+}B^aAMd_KXeh&0_@!~!8ULVjZN)gpI&FDEB@XtKI5+_`Tt1! z68NZ!Vz9XdgRM3^G1zM{;Pm@!c%uKl z1^v%9Jke8ci6Nr$u>cP|_RwZyM!)u)V~ycZ;O%2L9I*A@{y+SH?OpzNC@v~sEj$oO zZ$xbQsRFeIKVCk1pvjhjT5xs?hVyKAV(=G(0k1^|ZLJMY^y^#D-)F-U{acb=l#dF$ zXUjkgK5oI_GaH^596qXfj}!v7{@edYFTnO5Il_h~ddiC)mgQpz(#T-%^5X&9yZl5O z1FGN@!1e;3!mJ^BWA!`TmY)h--h$sX9B-754A-|{$XYO<8jrHc#M8jr;eP_QSNIhh zJyrM(!1fA%-Y!=grQ2%!wvB*l+-7uhhKB;S{@edYE?_&u0vq1w;_0>u9}B!4CSH1S zt|jG3WU#lO%EpjdPy^Ur;7jOoVz?WONXp0C@>2yaXu(gn;fdd}(Jj{hD{UEw!NwL0 zp0MGG!9M`oEA)&FPxRlkp#Q;!C;Eeq-XkLbTmS9%&*FiUU2V7@H_F}Sq_gWGL*VsKXr`ulBoqJO&u{rfgN(d)ZgF! z_(H(;0+-t8sldwt+Y4NLe;%h_i;9z;xXQ|}^NUAn(UFU+7CnXxc9`%T7F+ng18=Xu zHj5#0?*HRi!1fBno)r9c14|Wn(aaD1Pc1&sg5fV_22cS1dkcnb%d9arddyzI65#D{ z5U{<%F@s*LKl}d}jUVhaJ|3G;Vz5@$xZEHBOa;zv!Ek{MPZeI&g5MGw-l*_B;4jxd zd?W%H=m+tiIQuO>-+~_i-rjhdRT`Kbb52!67BY(T!U zWgv#%wP5%o;7;=gAg6{ac!ceu{A&kj>m;004lCG`7QPGM4K}zR;N^hnrj_W20xrH& zAD}h#6hHXz!*(0NNP=%0z-=}}Fc$C*z?~$6(*YOUIe>q>j_?Zse_+eM0`S*>3uXR0 z08d&ofQRp){2Kr-)pyirWR;;GwpHL3?3w}EIQUo){5;_Aeo1jfL2$4VC!3E`+A^8H zOBMV9K2Pz_a1s8pF*rLSKib3TS78VWc23sr!JCcFurZBF;qv*vDeWehn<)P}!1@C@ zX>GA2_$ZC5(qB_%7vE8X^&JnBQW8JzH1x>1X>BvagBJ*R>0fI2M=J=vbSexGwhC=r zgjw)pjai|li$Q<$0Bwcj_x8nD|9`n%SUNjvhiX3~LvqCc?V!vsMMsw+iWR9!Dq!Fx z*rqQ^Yn@~Te!LVdB9BRlKlL))8*W5|B-z4C08_|@;S&EF;9uvbxdQ_6yX0~dK*3?w z$_$@g4k>=Xg0J}#;Ah0kXd>u)1DulA*#nyZQ|vdR2QR)2J#uN4*#r8-wYb%?{V?!$7#eNxPk`6j;8*TI z1)Hocyx~stpbbBB9So5O+0a1_QT}?!0Nw}AlMQIR3qtuzjUlwUb|ZdBb{J^Z=<>Uv ztGCveaO@t;QyYHpy>Lvj;ok+^u-VFAb{}R1LNI&{dja*x6@b4!SY!6U$AF6i|2k>qi?90j3ih7o6 zOJoD)1EvTGJ0yHRVC{0-G~10I7GG}((U7*eJX)&U>M#*-h_?{%mdmTPowCB; z0qz8NgUmk^=lgM3Y?ey+Y`{f_jNxBOA^Q6PZ`9!uX-un+4$0;3evL8gb!e_OZ+NvS zbZ-LQenVUpP(f z+xz*~?x;&U=b^$O=l>n>&Lc{-?_`UsI|E--YHGs4dKa{)v6^3w^gw~H0hT?m2yoAHt2O$_75M4eXZWGhfidQeW?au) zZSAi$W*6TJc!~`^q!)zrr!i)Mvk3-0U7}J2-vGR}XSFs}Rw&&YdSqU;DRj>OK5$O8 zR?P8O|C4=kwFl;-%ViBW0xn!otu2x8k$u7Ni!s_NS-``9mv%N7w9)+i&;Sg{GMWEj zz=h#zZIsL(IU-kEfoc4;#6J#rCHOZ`1!(>E^+$#}bfL^}7vR{ewDy2(!8d>@G}{!} zr9+FLh_HMbU3vy!3f*Gpk(&WmURk3Zko_u_}X z1(uY~9hj>n7gU)Aya;$5;8$dY1`Gnc2+OmC&jeglSH&Zn(h&RvxVYY;zoHlg0&n#2 z;K7gq(62Do|Hb%W#bTefRMvPa;10>Sxs5Izf-XMaXKo_@47kHkzqTB2x2V9k0q-5+ z*NP;4(NM_Dz8b#6A^fF)?W^f0fW>Mm*Z=Y(o6qa@fbDwVkfWN<>qfw{?u(n#_F=%k z_OizON5HYZ)#eaX4Z}2FRIS}3D|jv7;>Fe4bYuPh9zRsJDK)$J#G`W&6}gn#Xs87Y z@XV*;W*5H!xS(yRSwMVvuGY|})I3}+2VD4;U)wBY<`uxJ=BBkH<&c$(z}hi4uIa^6 zO3%X&yH~}vN(coN_y*vqe~oJ&Nc^x8)cEGO7L)kpfM@k9H5JjDfOqsQH7nTj7|6(V z*fB}^>3|z%V+SOA;10mAoE_KA#petBpmi_RiX?&Ght+U?+}!2rfNz>*EmqG1o^W#w zH!x6z+xT;}&mN3xH^~-G1ib9G(b{&|1GfR5cZB%XJk5gl34a9q{|Zqf`k{LOtJ5tt z+62j98Q@N}Rp!3^cfjjTwPwNjLCoXnRi>WU2RMcNMY4rwhcK%E50~&Bz%v1FmhjXt zDx^*%1iRI2Wy zCt~${!8&ZlPk@lF#>q#P7np+eKh+uQy=?LQ_+k5;v^nj%pMo0VtcS9>Ogs;`pogVs zjy^S4qlkyoWs4dBQy8wPvVhwGQ`D?=693{?mH8DqAgZ834c!T zAZxiDb{3Z7PS$Fu1C9YMlKkGMAEwxTh@TCiE4KE8%QkdEI6c4inJi#sX`Z%aXi)1b zTio%iJRbkIQZhUXFvW^BHXJVlrdY5Be9xRbeAq0`zY$42p#Kj)tUNys7c9|b|6T}& z*N)T{BXS637;I>qlypbId-smicF1Y=Z@^2pj>JO~Nq=6R zw)mrw+AfLz>HIwH$S2~)E?Cz_Uy!F2J{i|0$pV%Fp8ikE!0@*V^RxqRrcK2%_o6(l z?+(H zX8|w&CatZKGEjFzp5}|1CKavSsyuBY`1O?)o(1@U0~Q>l|M%gC7m(pd zS%K45Lr4aVG_7L2Z-o&3I?^<$Oaz?Nj@6)nd5f+De9ys=+5>WoKfXOri+wZFTq}Cr zk*Cf3ex!D!#QzTXfzYwqaL6BL5WF)_E66)m>o8a_oDO)IeysL_Y~hW7e_al|?BW*y z@4DhxQ!n&ihaLmILAH1i;C5FXYYx$4fX6L6miqzI5bUG;OTe$KT>l5IM~lJ0=(6hp zue4!7$L#pd&ZJq3*8vuXZeYCb$!Y=^cbJceof)o4?1{0Z>V|BN;j*SN=_M^=x5{+CCgnoW7ys*R(x;dsDL z6?zKr_LoL!yQN-;ZO+ry?i!^{C=&QJfWJF9O8Zq#+jdW&!hcxsS%CK*I$E19rG5wC zNujj1L>~1jw&amVrEc1CFTxLYTkU&*xt}k_oR;UIPvvPn*H>vV%uA}^=})6(N0pkZ z-BHgp*8@4vHizGD0l)klgfgvrhpyjgrghsu%LK${OJ1 z;qr69J3qmeO?LTVFJT(rS_Q?Fc1_&dtY)$|j<#rmt|+OpF`i+a6` zd5sKM@p%iE0si1Qz__O)hMNKR{J263$u9o_@T}G4+Fpqt^a^@#M?(90w#Yvn@RU8J zrcmzzy!MK66RvwTPt*5aP^yiS4F8267J^{9oMr{DK}bL_L00ImfVa0zm~h9pF|C@) zHGB@7S8yfZ*sOB%pz<2vwa6RCHb_sk$P{1Dp-kVGy zP?dm>`!G+t>DdZxuRNY#2>8f*Dz%xU+fkv-fS0~rq1_~<{tLjd?G^lc!h|o>KZ2%v zrBZugxFDzoJmtX(ZKo8fEr5q_sL(nU2>gPNp-ASIYu`zHTg=a;3oLjQ;C3%mYD;B< zUI9Geatxu&f5ILN+2|<&aX@Wm^IJt|`|>Nxg8#r|9ylDzzoDMQ;Hv zxEVtvTeR?V)+b%0`#E+=4 zK3OXQOq#FXFJSQ882;@RD&Qi(JASS*x7nNjiy?eujJ8Ae*lGVm1viY*d~()25BL>q zVvSAfIln@40{;Q{^YuSB2LXXmz*77`1$=jSJ}i~hSRMs@T|vHf05%-MAn^|1wL8X` zw&5Y2^R-(~t~QO=7j((jZh8~^fOUwnmtV zl72vOzBcOoYSX+QADpjEomH(pYuNwaISLVwf3()?0mBd|)CQjkIFyTnh-|^r!}EDu zaLihvc)|$1b|kTe0N7?C|?g>ME- zFQfQ0Ll5@21sd$l$$a^xSyc^q#ZUPDk#RxrD1PX0FlFushWrIW*2X$`j9!mVEX_!p zo6_-jp~q|{l}7HBTW z*A^rH3R!`5tqR@m)kN`ifW+kI1G z+WoHHgf3rGqb-#9F9CPB4Hc5`kj?qpa=<$!zdFEEZ?7>;ueSnD-C@zcy&2PB3w|&d zbbbPg;!dkV;{X?~uQ89$mjiBhSB+LA3%un?bonDS=2`Jgz!M0T70BI!3O#C7s1op0 ztbWE~wp7Ot^YDYw;!S{g_q!#ypM@sy?fbBjV*F231 zK5bpm41Eql43i6loSR&>y$G3k5k4YP2!8;)7T0=E6Tr7e{HK?oYHc=}DK8_YbIw?8 zuk3*{Ux7??9cx}VEO-@)W=D;=y8Q~c!<#jxVeyjJ^0gg+SI7$g4tVOntTA8qI`Du) z9FOz=gdI@5?^rT$8sJ-djy1>l=r=Hr5rAmAtk4pI_gh!B^>5~DFLcA5ki@6n0>3YD zyq55!chIAs*Jw-Rta$$e%#weP6=pnI{}+9XE?zU%yg<0%Q%oyckNofReEuMDxopww zy%0J)J~IrJi@t}w3^kg?isS%Io=FeFv50kso)=6%2$hmY0TVGQ{Cf7J9?zc@FMAO*^L#1*4KNn#&DRi1)R@)4iB9|qlX3N0~M+(!0of=;q=i>z< zz4`1Z3rr(C4@Jwt*_7k&1WeIz3|Pa!7%svKNqT5(EG`cN-c`M+>uhth12IHY;p(&gu85WYsy>C{-e=lAmYy`ze1+J%7kC ztKPDK{s8gLqM5t{(O6KSUaI}*k8pwjJ7r)+SGJ{HvPRFM{c%oA9Z)kV?T=2Qt`;e( zL3ufT3I>f-#QKf;L14p1DrDpvJ}pG8=IAgn6e%-f7&UGv@$;es?2UyLady$_RA(LS z4rI~pU;wPuWX&H`;Hyi)^arV?YK)^#J6){~{veltK!81UMr9w} zbK-@m-^$AazG>GE6HF=`^resE>%4phToD4qk(t0;AWhzhMj^;41vu?&Q*4pd)}qE@T2kO|)FywkZ*=t_%U*ql#LgYFZ`64|Iw zzvzkp^B)W(Q`WT&1R`qSU1#N&^%Vnx&;!xJU(-$%c|ZkllWMS&ThDC{Z{( zpe`OUT0df}{*zP}R(DQi7dCovS$l6C7*HSJfVuz$q*@rSu>A?Bk9&}Ho>v)X$>Ky| zP9VnSkEtBP62*xw>~F=1$vLqwd+NF4Vk|j0QHX|P2(W$!B77ysSVX2NEPck7Ois{9 z7Au3F>l$8AP}7~Hven+mCnrE;n)+D#eR8fvoE8T?(>_zq>c}+pf%N<2k`l>cb@2Pb zy5qEL-2v(|#P2hkAO*}xzI5A4>d#{4`nhW0gQzZ+ak&~o!VGn!dvE*wJhKqYEF@DZ zF_h(|kM!n848KomOpvK}cibY%LN+ zHsOkAZla#?pl42Xzj|H#eyWVpsw(4!iy=e$kfNwkIfD?2tl#X&$=bm zg${};2RgZ`;drDvvD8joVvFf@oU_fAEKaH_XHVmx8sx@~ESUR4>KfM{a#XZqTG?{^ zA@ynFhn;{1kZ<^+Z0qnuH=Xw-wk<)Q+_oT*MOCxdFZ%i9C@)6=R{L}>TUAVbM*8^{ zj2ECh4fPT~pGTZ3i=u);ZJ{l#Rgt46$}rD|IA?}U3UiNJrh@Fck17h;_Tog4Z7E4~ z$%#eSjvLCR=LF;Ijgmwi^IuffphLtkx}hvup*%bNT-#+n_89xCT*JKRk4D*sHi-}$ z>rZsc35D5!t1Cyb{_T?hBCK~HaYjxk$|mL{irIq)%k$ac#mD8c@z0Q59=;c}=d6 zde3pYq7VSjIm<1N?!scoN)~D{EH;PXknU*-vkvYd^%aOuobqyXphvIRxB4OVeO1UD zpe*XdPv|fdO*{4YXkc3LxJkte&SkGORHWF}szkRo5mvUgtdYgWV4_9B?BzeF&(&$N zM7Uj&TLIO^L46VNQmr;Cq#vSAl~EUXe-;wy&)oN!XNN!RRc}jX{8=azKevF|``E<_ z=Z|Kp?h5Z__;06USnqikw2=gOZ?niSUX2oxqAZHY`3r*_Z8o1k3&Qo02hQYgG(;8eCXqp6VIb z!5HriKi9U7W2-m24~_8-Cz+(OvRJ)hywCkunK+^PNH@iBfS|I}wGw=vIfeT6E*9TZ z_H9{3o1>LSEC>_lEy;kl5!a8!6154ySjYclai+wI%t?4>2Tc2w{m_46=4)#jQzC`g zlmAigZj32=_{2naWwG<)nuV7kDw~bf-9hjU6Yk%d770m*B^R38%?snG^$sqZOxg*Jg*? zy&(LN2)k~7;w;wpR;Z?d3zA1Cg=FzVGT7R@8S2AL!C*Ah6l{#w$Lr#e`bd2s+~g0( zn&LrV!X=yrvu9S>$!+}Xy4Ncj+63s_Q^YQM{J6u|wD!p(JKz=#JpBa$arnB8KJbXQ=~M{gEfxrnO-)SB}bQcU|-KJtJbY; zfM-YWI|;6Ly|bE|PLHg5*z)D@$Qp)630gu+DE>8N&y&hB5@yIctNB=4cJK^&TVypQ z**mN7p9!AuqLY}U4lSiM~4oTyA97KWk~R*fHTWQ zmE8+DnP?(*UmS|D0Sl5N+CW4nSN43oDXF(%Z!Sn3%{I(P4rLR+EbDEoueHJ2Xk$DQ zuB~f`*VflZW0AT#=+4H*hPsAeBp$)W!Dzd8RxbaR{mG3$7tGB`=ayGwH3ir^t5^}t zLCZwY*u0VE+Mg+J^Q^9Hn`e!&r}`!PvxnQj7|1Pbu^_ASCr-?Xh1mWz$*Ju2FUxwe zr_V};Mqyou#pFVQgmFcKWSkmaUQQ{hB~KYQ5+CB0jtJyM}Czm&sX_IN46}z@(BVbM3)_GfIH8;lIS@}$j@g+FUmuW-u zvmIZSbv+aoponi8yV#%T%Qhzx$Ljnl5+fWB%MnJx+y;6UXBpnSvkF@`*qb{>(CF?n zoEvh=%R!_*#iSb}XhV&`G$*;1$A)&yEA9%bqBM7%9-R9o(1#GN!>+C1CLjg5*~ z6?GZuJwH#KKlb{Nsy=M#+Oi?s)`!bhz8~=W)H~NQYIzpT{g&Js zuUnd&JLb9NwPh9iU+zkxNa3Is^$bgjWo7hipJm1I&YE#8(K9Y;u-?c8-IFb*xoTEv zR)bZ|;;K6=t65aQd1AGkS1?tytgG&{uEY4!GOuISj6IvVW6dp^?1H||I}0p^AG2il zsjAfw=XBv3qb8L8I2*sMqB|S^Sy}rcYfLf^2^+AjyvQ(_d1WpMMA*u!%K9ni5Bk`x z+bW7ze_qypkSFtCn9Y5^@@UHvw|Zh?nDUMd-obniC@fyqwTfr4bikw?sIiA^E+D$g zCK2XYPAN9OmRZiTNLaXuu$5UZ1EJo0X~#jAQ;Hov_qA0M3LG^#q39m&53EEu0~T9B z*?N{a&77#{7w%}QR7goQ&d&I@G{FA+ZCQI|;flrB+!Js|d*|6@N9%AJMEm%*g!UNN zb{PHwa2F6eNVs#0je>6)KW>zlBf&Q{e62E9s%U*(C>)JOMDg>C3!*Sj@+|y+^)fCoK~0PS})etPSBG-zr^MI`7SBOih3qj);kP! zhLN_mW1dCPB^+7E`M&|SXKHE~tLg{K$vHg|Ls-#*R0sCweu<;lQzrODzeGRW+?4IY z#Rtdxk4O~d_@nHN1*zdo2cXkY0Zi2^9N>QXt)wWU5c#cRmP6}wYljrDoWLD2+w+>I zCxyIDBaeaCTWr$;aZeR)XmDKa@&U2TzTQ>Axj~-cWL_8L=ND!(>y?!!`=I5EsgRfN zRQU5U@66WyiFaPhh1)xCFdIEeW`8{C4Y1oDOU%)^N+ufENF{obhWfRK$&5%0dnT{CSF6KL&&e7Xv))RCdW;sG8FTCA+b&s*=a* z)@7V$y8@6Vs;W!tTFy$#smXzRFPm-2fpr1_`ojixVaYNa(oFHC@mn0JGqCUxi zIpi?jCt05p#P#Fr75E!w&umSwo}wSI{J~Hes-L@{F*tAGf&g-Lo|){HTT(K!c22{r z#swuM?5k_jgV{-I(&KZAE7+tp=?UziHL3R9n?kWjtS;p9)y4fyF<%hDSK$E6YX6Zq zAt&Ug+l&G1p+U*^?8AQ~qJy|wJg&cE{NzA)-p1Vq68zvEV$p4hhH>Pa0zM?kSZ?5M zZfx6(Gb{aOAW7r#TzvB_QYI3%p5B9!^V@{jDccjX@aOsMiFrA2QO2)j?7Q8GL)b%m z69w$rrxJbIlm8IBk=cf)66fNQY{=7zMIG?sn|=#&pXSxKVcq#|aPmZ82RxHlia&Qe zlenDxicf$1xFWWrO`-$)@YPh|>VG5#us=PUI65aBW&78ry0Pg)lY>WCCw_;awMI4) zFzGt8=926tD}QBZpC+?UzmXg*EIh?PgenJc|hMCthmPAxM{{a4_Ig&U86w zuHU7i$+*X}uID|g6%=k3d>TMTA^~|jf`m8-BjL6uf~mu9j0j3s3sAYNjV&f&kUI>O zmxIVlIa)&&6m}GysIpMPT)Fe2S}vF_nwvkM;zZn*BppAvu3@h(N)9kw#=Ltw6l85i zq>I>yVNh=mKbz>mitb3|vZXIToSy5KJY89w$iPS*4*XwgKL!ssk)}!8vnt%%LtJEv z^E9XfLE19&ALTY0KgxYBQhf8uvD^`lr{t@AU}X>mq%79(N6aX-8Mdn;K!w__!Mb7f zZl;^?HkVzx=a4}eJlVnrQng{$lN@iZSsYocy8~~w>QbS@TB_PGIP5BCRh^-FkUJyc zVv=u`ve+|w9tbSeLB64wJDFOlXST6od!pJ@c@51MH}PCkP3Pl`f=c14lJ7-@a{=ab z+%TRXk*UI&>nk2G3UZ;wK`vKpN;ysnJO^l@oat2~=>#HE7kcBJHc_eTbbo-Gj6`9o zA_EIJ-<1j~q06XP+Qo?9sNY12B$lU~j#inLQ{fII$kg?jpIg`jm1B3e>TTU`)jNxG zh+q0TqTN{-_KX+qL?wG$pHt$gPW=36C0eGwh#KBBRG9NgSZ^(UV#i5jS;)VP+CWt5 zS_;7w#QF!aEY77i#~JUwlaV2)giKQ5pnv@Gxf+p~a&7y~lxumFgnZI=Mky+Y50~LF zg5PLTir;ADMGAwd%cNO|^zw)21hf;yci?}BhO~pc<}JoQR7jIx>=tp613-P9(&Xo&zZqW!5hX!>AFc z02Oq;ILV~{rTEw*T6kAc+NP=7=h~sj(KvDG|RwZ3AJ%w?TWHR<{h>Zi@FnSMktGFiV8l+ifd+ZJ`KR zo6C;t%6wOj>(6%YD?cR17h`)yB}M`jXFGZ&XJDfubO81^^2kW3EY?Ts*}iw5OJznS zNUf=~P)QRyk!2x-)}u<7is|z5T`E#4A`5|)Cn=&bMbD)$qb#u$5><3GdS6j4_}eZ- zHUt?zzCuvg@2@9j=J;W?nqJnGUAQALU8h4h>2{I_`jbU#@TilM(A-t56FtPCQq0yX zOgws3Lo`{;I`MQvXg>Fv$&cy-F&I3nreJ5hHUizJIZhUHD?KH$*ACH^c9dHyVp zq<)2Sxo)=3dKcneW2!KZtfts&?x%RYnOzA%64Zsu@+?%Su#-0K*81`ePgGg|_tT@; z^!pOMS-~;MZpZku*_0vx+P0mEv$L^J`w_YVG`-nj17R?lurtw_O?d9O?reMSWH+7f zQLzofDq*N#q_R-KI0)0;kLWXPMjg(U(iz^bgDeZR%C7@NVOi)F8M}+B*iyZ?-Ed`L zIPhmQ1UR+bR9Mk^-NRwZFW(AK-ECx^RAPTYRPHiA&Te@1!xU(YrISc!kZ7_xVD-mk zM((b}Je{9ONTLu=QC5Q@D+-g#j4|jH;f+niJrm_Ef8*I25$z z1aSD_L(A<^6tb5e^$?`b99nTTpjfuEt*MpqBLM4%6gBrthvs(MKo&YUAcG!Jb6R(b zqYs|#k+J8J5|9p_RD`;s3y=+qPTxe^ONg2Dr6L zw#Z{(yV=}&19ag|DmKcBK1v+PX75fM!KS}4t_S;HEZMa!EJF1ALW*hi)Z6K zhk_-TuU5Khp~4bHWHh2QN*Rn&j^?F+yfi1OW<#sHdTa-zDT~OmSgnjhFsQty`VrP; zM?f0=s4(u8j(B4;eExUx3JdrrG3(g)fe>f5h#}Ozl zhSyjT*105E$hL1zEbP%58AqVQ7}H1LF?Q~#WK~;)CL-uONTP5q<7aUitf09^KuY#H zQdy`r|8C57J$3No+Zw2dY| z2MH>b_My>lG<S%~v zyf@L0t$jZo6g#1kuM^$c!hp%nPA4xxB0`Db!VxuhUm|&$ut9RcH|=dRS9bij@N}I1 zU1GE_{uO_lC_K_d9@$5k#$MYkPu5fn_2 z@}bDapI!!L3&KLhtJ_LpIO>bhGTIvVY^RpG?4MhDLq$UDl9S7iRv$v~x;jXwAQZ(< zK`vcm?-}vBI>@i@T9Wk2d@{z`%(kCge!Q|nDpUab{b%UGVUx=zDN_aTg!q<&pxQRM z{7vPq2#Api3GEQdLTLxcb-tk_B-BHQpE}GQ@i=S4BZiZ5`3hxo+7J;^La?xL22S#o z;i4#jlk~j*CVD8m!W7K2IcY$Is6HyMcZ@g90mu-iQQvL_gyT;r3n#RI&{iSK15IJU z5b7#q_@60wzXXJ~3UQ}DQwlPj{p02xWrC zXXVwv#L|dii{0cZBt`?V_j1?SQiL4 z*2d$(c(4Ip8?iu>uioESS632XwXau^! zXlQ(leDalvPCp8xCsJIbIGRh0NC`73VQHHrszB`)DWVlA z!g30EUjPd3*2jM{o)h6mc*+?$@qo-~jP&!M9Naxb&`G}(`jwx##IJmfl}WRHwue2< z`Z!}3%jHK!ms`H9o@}jKGw-Zi<*Dg%EBdE5TXm777$mB?+;SB5tbui$^Ui985%bJz zo%Ou4@?pCb?UXF^-dON6nRPMiSrfk7wqB!pCbn zk_UITwg4*4BU6cbyTmSm9wn(Z4=bE;3+`17b*7}%X+X>=;?i{?Y|}|X)EjBNaB^kK zxf&f}yBTTKOudD$nwBO{_F`LuCwl56u&{`}v7Eb#yvkuax+J@u*s9(wsx7x{sEv70 z^JE4el|y7uR2)w6kbIm(lj?U$+(v6-9iO5BK>~tPT*cOvJ5w#H43tGx+S~R zcySa5{5kZh*dr@@y<4)cXZPB!DLnXzS56eWRBd9>3<&Bp1^CM5RoxQ)`du-rxpDL2 zs+VxrTt&7*gTjkkT|vv!R5Qbl{uSk!)zGhyL9+{Ch!q)z^vQYP~u4Mu9 z&YQ&&AzW3Yce`hGEyJ;QC9+UG0g7;UT@r@-H+m(TY_I3MDul<3WaNPE$G-ue)5FF> zcH^(5-Pjc~Dx@)b=U-A?*n%;YRSc=l1qelm%_%r=Zh@%$wl@sJRtP>A)_Dj%R1_ij z*joqi)vKbr%Z}Sr)GxUvhkbWG;?b?VuWZn2mN=80abfayb~qfIn7*lO5F0-r89SBu z(_I_=;RYIdV!|QpsOd*;ui=k02ohC+%I7#-vC)sBo#ajf2!p}@*uQi4(17Go?D-+d z!`bg^;8kSC?mLP+lW64)1jU;h7(^&3_M4RA=SD~ai)~BPcjKNFREDtHfEqDY*zZG= zJqHsH1Pzhg5Ee%mZ0JY1x+BSY3`(AxgBK;&4oWuBi;`2fC(dpg2>IAQwIX{ z6~D~mZW+|yqIXVJ*mB@~JAY(I-WlBJhcPn;$8e{l-;AQjof4mFe0W&0H_I83?oVO# zx>Kk|9#fA8(R*uHawlwnB$gr)7ey83keIi^$C)Am^B={$g;|k9V&1}k7EsW~xscN< zhd3AV5atk{{p7AnkWdi(f}J1)(c{00JoJoRCm)9-p(u%Osvw)VXP3>Vl*&;~ z9$0O!RcN$z*V8S327|buC_-KQh3~7N@)UpFI!aq+KF=vEK3pw|P@gLB)8%qV%`vul zvphGu(urLZrY`h;9vx3mVFbC8B!$wL(H7x`tymi20C_cG&@Ddz&(!i7`on0sCuzuX*mbJr?oKD^?Pepl2f`GBf~H%u`A%A(4>*h^qC# z;|+v^nMQ^NATo6&NwKdL_t4m=pchmP4)!ntp54noMyIrqM?^pwMu6IBNVtN4b0aZ{ zsy&Q=cg1J`1eLU)jPO1>qN5<9G#jE6Mqn=Fo`^|SgGL+yN(pNMrG!GK6e)BN#wqmn zT%9jPoX*(nU}9wRhm7HK!fgK84cJT$aq&r$b{G<2Kfy+jcnK)S)^L5ad5A4w93-k z0M&_0-#q7Cfg-Y?3h3%qLnDv?wMSjm+2aUg=s>-h9oh&aKt*IB%-CrdZ5O*pqE{0L zZrr4Av8#8qTqjUO7F6;MmMYdv8|$uic_TIek!53YQ8x)9{(!tR=4G^yPB-D?Zqk^0 zRJClx!RkJ;Df`uoJE*0YTajRf*Z_s(T%tUH@H0agfpgjh5%#K89D%{LBKUZa$9Cqk z*Ld<5#1k#4&ykY)94WbeAY}-jcq~SJBOY~$6hAWrBeCXB(Yv7@aq|`Vm=fEQ%?#6} z`E0=hbv!sM1|LW_za;Qu1=b$99ud|y@^$SEaz0I4iGUp{0fdgUDqWHg%= zwm2HNoeToZY56rh{c8noJ;he?Qy?%xmoN6u%}hfqB_4a4)Ew(Y8(21?M1eC zg}tOB&nArV2z7~kvWjn~jMBM}3)fZVw?88Iu(?XZWV?*HNuLZ+=nhU5G+t^`kWQ~A z8c(&c7G$xJvOm>!E8{()3&GD-bJY2G8r$m zb*hiEDsOp$us_xIu8t)cjxt)^%D2M)RNJ!%sC7CV;-Pb>YcsrWU#e$uhiCubn5UfZOI2?H;HMkd9Mts~ zzry!s%&)G!FVH%f7B9T5<}dss!7OZY@}oe(SloQ~-!dq`X+g_1&|C3ZFBKH>M$AIz z9uv%B`If;3F4JuxOFRdZ`xh(ryP}6fTnv)J22<`Y$%fT3I09apQE-IiwOK6pLGfB3 zsJ5LD4rn-PO#dY@pY1#`IY|AA95!dX#G>0({K;m^hdT|T5cDli%l+JryTbx3BExNy&Z#=_g!b@<05r8j`QSo4xbwSFgIK5bx(h^0^uJFjo^0e0^-xNy&c3 z7w$bpUA`2yMQrjC*Kl~#w3CusbJ%~5FFVeB^5{k7M~tEH__E`b#}{Eis5`@1oaiXd zGbeFbVJdwsydTAT*03$=vu9IcZ1woE1%_9yXBXq@zwFfHo$THTWydKuUq%mz2-8P| zTe;LEKt>OU(A`@@Nu>E|;bC$TZmsG06!@ujPK>Oys;%`e_SqP~E@ zoFd{0L=+biZoCjm0{f>Ht#NA%*Mbp#ZEllWSChAhClJX(+sSYO5!*Km+-EQLlro+` z1j3`LjRV5nJ(7jPS3o$gM_M>_oZxDa67d8gSt#QG?3hnZO)h4APbk}}tXyOOfe3jA zKzy=Tt7QNI#K#nr&CWvZ%0&hch`@u27pgAiGJrsoTof8$By~E_XHYIOfIt+{%Q&ga z%FtqAkO2gu^bH^?R6)mdH1<*mATa#IvbgdJ0SB}C6U!1K)aO?aPd#ouv8-Pq)lF#n zC^S8X;%vZz(*=NZfY~Hj)-loDkliU8$CdfW|u)O!CZ)(dr zv^xtk6_@w)k2#vP2&fbbH^xE@zWSy>Q=~Q=Y78MbLon1(8wuCq%Lm5X@yy8?qh@e~ z3$XcPD#x%hdL_@q%>n<(91l-EQJf(TmJMYMrz0>U&Z?cKC1UK6(-WyS5q8}ZsWLYF zlyZa)J0np|5&RymPXyVE0NC`##7LH&hSZ+ML@`@BKhd4NNZ`NLCkL^>bOievQd?fk zb~NB)0~byQIUap;@}B^({acZ1S}k%-o@tOjSWDdM%15%2I;86ALC*O;1TY7#XuNK| z`b0I}itl+WIgs5_k4j^&2)-BO;0}UkXly`k9F2HkdjPN>e}zBZ*hUoAa5idvOCx^! z{Om-Sb#Fqdc9u~A1`uO7e_kTQy3Qajvc-P}07PwLBF+kC5`vc*WGeu$$ImPu#D1EI zs=&jImzq2ic_2!>K2HI_M{M6{LN4ALqt61-jenp{cb|ni1s*_Ge2mnMhag9fv+>jC zvyd8(6zF)NYtANyve4eM03hlCFKRUa)@=crz4e+Ek=(&q#Ckom34}$l`*lVxSkNxkRsP8Ue-NxQ80bL zc5Xt?iO9CDp9dzFw?*E9`JfuO0VP(?M~M+CG0s-c2mX5ex_SZs5xqM|4D0v>#7=hc z%K(U^5m?@m>T?puvoVVj!`QZS&?P@DC?Cdtr&RbHq((19>ajym;e!9Ay0VKFqUc8n z@gyMz9}0x869o5vgn0Uqqy$Hv3-Ct5&eO+qW#s zJ#rqv=i3|Lxd0Iqp|^A;h? z-RB|o5T(AL)HjqGya=fgi;-%e)GSKfNvZoO^$DfEq||`LNF8-PQqw6l6R9?FHvd`# zs7MYQ+m+pOKB{-g!!^U$7nI3=Bx;i!hTa)+0V;}|3(JpU4Hs~#iOWH?WB6DM^9872 z?Pm1Bjtfxp>+(=@q`Ixz*q*haEDy810 z)L$soJs+v}D0MQWdR;{MC^dyrZ&QjkFMyd z?MtB%CSQVrCY#_B1Tqusb1A^;ZRo4r1!I(s(s6H|iy9Svi8_+KVF#|g7T0rjrVmK&<*;WF3 z^fkc#eA-2nF25m?_JOuxS#OrN9Fq#KYLT7=Z&lxq8uk-66@ zWUes53kkdo;Of4Rv=0e-#()wx0vdB+vOoLRh_a*D8T-mQv$0nuyM@SSUhc|0cLaRj z;*UWO-k2DzduBKHo1QuO^*=wfcxN>Zc*m7^=T&Z5j4iz|sTdp6zi1jmR0B5L+f~LsLQYjAc*pqQU`RUC=E9j~81J zl}S{_G6Q6w(wmuG~%HYgz zoWZ@xY(nE9GnRG3o2zaKjb%CYB(p;7cxQF5H+|9AJS8Hgq#?oFJwr{W!VILm1hkSF z-SNnZFp@@PtjihC=2|8n@2pgSc&z4~mnNwY8u9IOwXU(eXPipV&Ca*{8lCc5S#7n+ zLJ3a#yhXN{ess(j+BBLhWrT&i9%j8 ztGX4$cqm7!Wkx-$XSUby$V6%~W(B+Q>_)D9W#33eOkZ^Nq_b?#-dWX`VQy(wL42WAGJls_7Ic}ciAG#88>Q$@Ap4y-2ainVQP2XOeys6EZs@cgK7}cTYa`cCr zS8bo0$UFeH{*SQRmnM5C?+73;D97gN*HKU8jMlPB%%R0zzkgt}tHkCphpYSV}x$DBK! zHJw^^7JK!(bo-NV`yCD-j7~J}N7QA+S%s=7OU;(PdN-?&2yGZYXsqiPQ6+PZi!9hHc%ZTrWz&xpPIrt}cD_smog zyZy?l9_-weXcjbk*r`ws{N)>XQzJZz^ae09=2&`RrPC! zG2dya{7usrrta>?Vl%3TUUA>}>P`2JPxWYaR}?_l&6?3(HQ)@R2ex z0vSH;()^2(@t89Udg8pu==TgouuG;VuW-Z9pH&9?#f_;6o9!X@&)=51C?_L_+t;OvHl2G%>WMaN+PYLd`(a(m&rVvO>c;NcR2Cs) zMQ68G-@d7A6dQF{sz+w#bXs3|S89YacJ^@Gb$s~4*!G#eO!wVz&>t~k++l3?-Kn1L zIbL$jaZhSs#yU*gneNSI-II#3m)4{kSkvaz1oq86sh*zVh|jJ&3zMom#vNHy#1(m9 zSM9`vwHbpCNEQVXGuYbuQvKQ9ds96pXAm#dlEN-Ckll74)Wf;=IS3)Jv5ftH$^8fs zkbA!a8OKg`!H&$xbm;@B0Q=+q)LcWxr9v`oc_?;@seDC7ZrM`z!n=|$`o*q>R=l~rRMz6|5vZu5rP=>w+8noioq* zF1W2OxWo24^E}A~ce@L2pChiAjr=~;y5N3s!Bze2T;6rS zWg5cT#c&|`%ncbm=t6mw8}dUpr0*9OwwJjf-*!VD^Gu)7WcSGj=?!tDu8}d;%VRC9(kw>+Y8;0uel)yw0B{<&<*)dXXG%}r$aj9G7KF)jLmUFKIM!&igi8A zrM69O$S2&8ojSU(o#uvo#0_~!t_#~KZpi!HkiWYjCw6ivbDbOVXCO0gainwN?7XzY z9*Aea7l888-CQ|L&UfVyX0Nzp*m2d^2rEC_xd@(NlS>BfVtI6dM;+F>WPso0Sf>{5 z_%qz{uIlW}ooD#NE5pJrE*u`Mj<7GgIClYe|2(6sGY6jGUtSqfg&rKXdSwW7^Wbo| zO9t+>+PAwi2cF?NmkivW_0S&99FQTxmh^D$NuFW9O9o$0XHnqAzt_{X_%Iva%Ok_H zE*ZF&Y`nKK2cF??UKs}U@!)WiSBAX49vm+9%J8#G2JY!QtDkcbJi{KB4BQ9!^$E&hdx7`IdHG*l`a`}3~`nMPJF>o z5ANT3WoS6knFIIxe%B=f_XI!wC}$2l!!uqPV#6FcaF_50J@5mMPIvFx+CT#zg*B9Kk}v)1Tn&NY!Di=(*GoR&)n$K{FLZm%wb+i1f3pWF4-~{3U5P+pkOY zWlyieMexj-V|ugcCF$cmKOz+@;x-h6o7G8i{a895}C0+kqdI2l;5vXb=4?D=ET zJv^Hdk=LpjxTrQoUcY4IpxBh4xOdCILNw(^pGs5Yy=?|As!fqsS{XSgHbq{TW?&(j zQXEieioD9qz(uhsQF+6ck%MAWMM4hEv zH06?zN>khaB4WcF~%ZWlF7alX%6}I7^9oYn(N^XwB2*Dy{K5 zt3*{P@jFY2a%=p~%ALJYiF4SG6$Y$iF#|C1)f?n+jGC~_dCnGazmU2 zM7<%-vMz*d$`~afbC!42)&!gdM7cEqXIU4mxvE;FH34UNS8k27fT*{|S=L2swxpC= z<1FvWt#OtT_0~8GylBlgX{FXU3%zPRFrejS?HBp<18iWt#KB3(VEMTQ)-Q~&?~pbSxVGf<1Fyh8il1MY0hQ!$EQ!$HcV1#jkC}zx5imY z)LY{$@S-)JoTStmXQ5YZjmyoDdTX2oUbLogvPx@Q@43`YoDpX!QErXPEf?EAS!Jn- zILo{8us91yxiSw&S!V;zs2IemPRZ;924o?desWbI+kR5jz)eq_l76FY#w*fhFWGub z`oCLooK+Rolvk#RtvMroO=hpEL2UXoC$F?(_TV(9tLQ=Opd;NNRyjR$_izVu=7#*z z4LQ2jh3!f=Hmdc26ueoI4&Ic9s&K!7#%`O>u)VL81P8RvPNgdD;k|>2eDl)xZ)-!x?(oJ$*H_zw$%l9*o@3Rt^8@pNkC?9G*vBra}>3q zm$)D=a6`W8hAg_&h3z?R$miXVy)JWMJIf8Z%?;UQnG4%SH{@nFWbWlo1BQ6YKR~Ho zdby)k6Opxly4*>`Ba3E##GA@WvFJ;wlY|5Ld;;3 za<=l$R4!vLrRvzp?;=7R2Y-1f)t$}QoXTSp66FCl=&STlmUubk%Q&e2emON@)4G>a z&$MBI*HYs*^?NPVD~G+YD}5&Ya}xXhopd2<+LfNgW)Qgiopg8hr&Z}Go93-bPiw<2 zUzI+E4Y?sbhi$$d|KzN~KdS&1G=)RaNT?oz&=6>B3WnKf&!-o$O}9ZBXRb}B*tXli zXw_}$f$X#A(iah;Gt0jj@xQpNH0IP~mciZ6rO##?wxjtVo56Oz4u0P}mp+|+^n&r* z&}Wh2TwZbF!X>`{4&;01we)HcQm^O@bl9F9sq=KtK@T_$8otiU{fN9d$ZMHa!wwFL zl4snPXJVmP32Cu!!9gdbpxO>;dThZW8xE~z&|#Kl+VD}Tl==3gd$MOfOcgQ)+20iT zC^exC>#{r5z*fJ8snKOmstfzP?-*F+x+XfY8#^ZkuvOctIGD%Ac1iSPKb}!7z-|p^ zo(Co6!zUvH!BDiJHU`De!1nh}1lZc0W$oEHT@zhcF%#5`9lPk{r95 zz))YKlAjUSu+yLo^a8k%z_ss`b!AHlG&tw67kZ&DKf6(6&SPc00rCd&j^DnktOHx! z8x+=WgZd+ciH_-%y9|Cf7z98UwYptl*|9NrE~A{S8f#`o`Ki)CymykR*BdykApO zQ=q{gsS7l)rG*F&N-~fisSWw!jkQha1Vq*^Zn>SOW7dS7ExxT&5ExXU1^N1sI^4eVW^)i*B$|9`Gc#Z$}YRI+q|5%GU>MmoG@PFjNSvXgN-QF!R zm~CGNf#9<614#g6p_;@X#Wp;Gtz+Gz09QVMEc5?{-+1bfEl4eWI6Yo~FaF&?e7o65 z4SodJfkaX8GlVJju#s9zS@>^{KWU^sc*00^dDKWPTot031#pM&1y{9Ja!(XFmLnN+S`%ZaZma*F=`X<0l0P(hWOei&>%jr zk5W~*=J;|0enUzQ@n1Ir!Lx*^zotJa5FOaFj|f_s@7TwTe0NemaEh_iW}fnb^ouiYY&R53gf#g4?%^6 zH3B4I4NwDx%f9XwAe*f2ciGix630p<*j*F{d{D;dIF(H$8ony{rPByFHQ7wg*kiml zCJz%6(S`&m&>rIh9}sDn(qqQH%Wm}tICf{w?04?D_dDl&=iGCCzcXjg=XR$Trke}~ ztI;AV(}l+*c&$8}7m0jay?<1&n9MvbD=5^+&PokDNf~`3%l%dOQM)iwMehIB;ooF4 ziVhqv%wyXz7vl5D6e9BJle{~hQC_H>*u-38KPSo z_}&*Y8L72ZQ7BF?VJyDwh|?P;nk^QA=jS4$+r-}2>rzRN7hCv0&5Y(Fe1!FpHjZ|^ z$7DC@eRj=fZf6&po)vQwarip-yQT|Nh?_Me;>spFM{7vHv>Zu?oSU3#yGSW1hLvl} z1mmg~yyeBEt11ds7p^RE8+mOPojfE~dJ=%Vd{taa4_~brgfC#X9lS`U>h02`YLB!WYum|+{)<$FZ`14%IN3@W_*5-b1ebZs%Gkm<(8^f0 z^tLa%MBM4%5#Y5T=L#LeP>aAG!Ho=!GlX=e|048T?K;?MC{-@$++JFQO;u!2 zT(d^v80=9>JH{aCIyGQfr(Gv6>7zKchOtycGbJKzk1Y`2?_sBHTYGKsfI{wn+f7<* z?q^M0#Sm;SwT0lh7FvUkL4V-Z5i0)I03oRApadkgaNQT|axRZHDyvnDu&kC0H}?$g zCPkuG^jI-)f}WA5enm_!2T#y?=nugrDX?XpzGXe<%&Pj52JGK4yASs1#U|}c4%PE~Sb_}%N&3ZsS&`tY;6*EU+ z^&p!$3Cws(dUM0!xx+@)gLzX%8|C1mHg2kSd%4v!gPap^p_(4k6%?#xGV3WZsC?4% zB?hpQfPD7V*?froSl-@6PX-yq0$!$rI+i!J>=10@<)+;f5P*ZVoRM}9=do%xr6|z^ z%&Vn2I9tonU$0UT_yftpxwq_La?~k$M-4REBT=iH6(YZUh06U^R^v|WES;>ht46LLqdea`#G) z@$X<8nT{tyXN%ZBSvns%O5%<)P7m(J^P<$qL^F1Lk~;-?3DUYzQ{L~*OI3BA8>jl`8tWIr`B%+B!(p*^k!o?isLDlaw<|uVu6~iK zZX*V|T~mT?uzX`9qIy^!VtHsIvK6^<@336l<4V@>y>0v(SpABq(qrc>iw>uHT-vZh u9M4%1q#DmzSUkAid#gc`<{tA=h8+m{W)7T6s{D;cPT|uuD=01rgF9b delta 975013 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 BY%ImGVr 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


3%|QGqF%3v|NBF+vH}OyL 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 Bt9k$c diff --git a/prover/bin/host/src/lib.rs b/prover/bin/host/src/lib.rs index 928db6cb9..7c8147173 100644 --- a/prover/bin/host/src/lib.rs +++ b/prover/bin/host/src/lib.rs @@ -145,7 +145,7 @@ mod tests { std::env::set_var("TRUSTED_SETUP_4844", "../../configs/4844_trusted_setup.txt"); let blob_info: BlobInfo = populate_kzg(&blob).unwrap(); - let (versioned_hash, batch_data) = BlobVerifier::verify(&blob_info).unwrap(); + let (versioned_hash, batch_data) = BlobVerifier::verify(&blob_info, 1).unwrap(); println!( "versioned_hash: {:?}, batch_data len: {:?}", hex::encode(versioned_hash.as_slice()), diff --git a/prover/bin/server/src/queue.rs b/prover/bin/server/src/queue.rs index a32609d74..b82e1bffc 100644 --- a/prover/bin/server/src/queue.rs +++ b/prover/bin/server/src/queue.rs @@ -117,7 +117,7 @@ fn save_batch_header(blocks: &mut Vec, batch_index: u64) { blocks.iter_mut().for_each(|blobk| blobk.flatten()); let batch_info = EVMVerifier::verify(blocks).unwrap(); let blob_info = morph_executor_host::get_blob_info(blocks).unwrap(); - let (versioned_hash, _) = BlobVerifier::verify(&blob_info).unwrap(); + let (versioned_hash, _) = BlobVerifier::verify(&blob_info, blocks.len()).unwrap(); // Save batch_header // | batch_data_hash | versioned_hash | sequencer_root | diff --git a/prover/bin/shadow-prove/Cargo.lock b/prover/bin/shadow-prove/Cargo.lock index 539489b81..e671567f5 100644 --- a/prover/bin/shadow-prove/Cargo.lock +++ b/prover/bin/shadow-prove/Cargo.lock @@ -30,6 +30,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if 1.0.0", + "getrandom", "once_cell", "version_check", "zerocopy", @@ -67,9 +68,9 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8367891bf380210abb0d6aa30c5f85a9080cb4a066c4d5c5acadad630823751b" +checksum = "59febb24956a41c29bb5f450978fbe825bd6456b3f80586c8bd558dc882e7b6a" dependencies = [ "alloy-consensus", "alloy-contract", @@ -100,23 +101,40 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" +checksum = "e88e1edea70787c33e11197d3f32ae380f3db19e6e061e539a5bcf8184a6b326" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-serde", + "alloy-trie", + "auto_impl", "c-kzg", + "derive_more", + "serde", +] + +[[package]] +name = "alloy-consensus-any" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b1bb53f40c0273cd1975573cd457b39213e68584e36d1401d25fd0398a1d65" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", "serde", ] [[package]] name = "alloy-contract" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eefe64fd344cffa9cf9e3435ec4e93e6e9c3481bc37269af988bf497faf4a6a" +checksum = "1b668c78c4b1f12f474ede5a85e8ce550d0aa1ef7d49fd1d22855a43b960e725" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -129,14 +147,14 @@ dependencies = [ "alloy-transport", "futures", "futures-util", - "thiserror", + "thiserror 2.0.9", ] [[package]] name = "alloy-core" -version = "0.8.5" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce854562e7cafd5049189d0268d6e5cba05fe6c9cb7c6f8126a79b94800629c" +checksum = "c618bd382f0bc2ac26a7e4bfae01c9b015ca8f21b37ca40059ae35a7e62b3dc6" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -147,9 +165,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.8.5" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b499852e1d0e9b8c6db0f24c48998e647c0d5762a01090f955106a7700e4611" +checksum = "41056bde53ae10ffbbf11618efbe1e0290859e5eab0fe9ef82ebdb62f12a866f" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -175,20 +193,21 @@ dependencies = [ [[package]] name = "alloy-eip7702" -version = "0.1.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d319bb544ca6caeab58c39cea8921c55d924d4f68f2c60f24f914673f9a74a" +checksum = "4c986539255fb839d1533c128e190e557e52ff652c9ef62939e233a81dd93f7e" dependencies = [ "alloy-primitives", "alloy-rlp", + "derive_more", "serde", ] [[package]] name = "alloy-eips" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" +checksum = "5f9fadfe089e9ccc0650473f2d4ef0a28bc015bbca5631d9f0f09e49b557fdb3" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -204,20 +223,21 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a7a18afb0b318616b6b2b0e2e7ac5529d32a966c673b48091c9919e284e6aca" +checksum = "2b2a4cf7b70f3495788e74ce1c765260ffe38820a2a774ff4aacb62e31ea73f9" dependencies = [ "alloy-primitives", "alloy-serde", + "alloy-trie", "serde", ] [[package]] name = "alloy-json-abi" -version = "0.8.5" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a438d4486b5d525df3b3004188f9d5cd1d65cd30ecc41e5a3ccef6f6342e8af9" +checksum = "c357da577dfb56998d01f574d81ad7a1958d248740a7981b205d69d65a7da404" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -227,29 +247,31 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3c717b5298fad078cd3a418335b266eba91b511383ca9bd497f742d5975d5ab" +checksum = "e29040b9d5fe2fb70415531882685b64f8efd08dfbd6cc907120650504821105" dependencies = [ "alloy-primitives", "alloy-sol-types", "serde", "serde_json", - "thiserror", + "thiserror 2.0.9", "tracing", ] [[package]] name = "alloy-network" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3705ce7d8602132bcf5ac7a1dd293a42adc2f183abf5907c30ac535ceca049" +checksum = "510cc00b318db0dfccfdd2d032411cfae64fc144aef9679409e014145d3dacc4" dependencies = [ "alloy-consensus", + "alloy-consensus-any", "alloy-eips", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives", + "alloy-rpc-types-any", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", @@ -257,15 +279,18 @@ dependencies = [ "async-trait", "auto_impl", "futures-utils-wasm", - "thiserror", + "serde", + "serde_json", + "thiserror 2.0.9", ] [[package]] name = "alloy-network-primitives" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" +checksum = "9081c099e798b8a2bba2145eb82a9a146f01fc7a35e9ab6e7b43305051f97550" dependencies = [ + "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-serde", @@ -274,16 +299,17 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.5" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "260d3ff3bff0bb84599f032a2f2c6828180b0ea0cd41fdaf44f39cef3ba41861" +checksum = "6259a506ab13e1d658796c31e6e39d2e2ee89243bcc505ddc613b35732e0a430" dependencies = [ "alloy-rlp", "bytes", "cfg-if 1.0.0", "const-hex", "derive_more", - "hashbrown", + "foldhash", + "hashbrown 0.15.2", "hex-literal", "indexmap", "itoa", @@ -301,9 +327,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927f708dd457ed63420400ee5f06945df9632d5d101851952056840426a10dc5" +checksum = "dc2dfaddd9a30aa870a78a4e1316e3e115ec1e12e552cbc881310456b85c1f24" dependencies = [ "alloy-chains", "alloy-consensus", @@ -323,21 +349,24 @@ dependencies = [ "futures", "futures-utils-wasm", "lru", + "parking_lot", "pin-project", "reqwest 0.12.7", + "schnellru", "serde", "serde_json", - "thiserror", + "thiserror 2.0.9", "tokio", "tracing", "url", + "wasmtimer", ] [[package]] name = "alloy-rlp" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +checksum = "f542548a609dca89fcd72b3b9f355928cf844d4363c5eed9c5273a3dd225e097" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -346,22 +375,23 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" +checksum = "5a833d97bf8a5f0f878daf2c8451fff7de7f9de38baa5a45d936ec718d81255a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] name = "alloy-rpc-client" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d82952dca71173813d4e5733e2c986d8b04aea9e0f3b0a576664c232ad050a5" +checksum = "531137b283547d5b9a5cafc96b006c64ef76810c681d606f28be9781955293b6" dependencies = [ "alloy-json-rpc", + "alloy-primitives", "alloy-transport", "alloy-transport-http", "futures", @@ -374,35 +404,47 @@ dependencies = [ "tower 0.5.1", "tracing", "url", + "wasmtimer", ] [[package]] name = "alloy-rpc-types" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64333d639f2a0cf73491813c629a405744e16343a4bc5640931be707c345ecc5" +checksum = "3410a472ce26c457e9780f708ee6bd540b30f88f1f31fdab7a11d00bd6aa1aee" dependencies = [ + "alloy-primitives", "alloy-rpc-types-eth", "alloy-serde", "serde", ] +[[package]] +name = "alloy-rpc-types-any" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed98e1af55a7d856bfa385f30f63d8d56be2513593655c904a8f4a7ec963aa3e" +dependencies = [ + "alloy-consensus-any", + "alloy-rpc-types-eth", + "alloy-serde", +] + [[package]] name = "alloy-rpc-types-eth" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83aa984386deda02482660aa31cb8ca1e63d533f1c31a52d7d181ac5ec68e9b8" +checksum = "8737d7a6e37ca7bba9c23e9495c6534caec6760eb24abc9d5ffbaaba147818e1" dependencies = [ "alloy-consensus", + "alloy-consensus-any", "alloy-eips", "alloy-network-primitives", "alloy-primitives", "alloy-rlp", "alloy-serde", "alloy-sol-types", - "cfg-if 1.0.0", "derive_more", - "hashbrown", "itertools 0.13.0", "serde", "serde_json", @@ -410,9 +452,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" +checksum = "5851bf8d5ad33014bd0c45153c603303e730acc8a209450a7ae6b4a12c2789e2" dependencies = [ "alloy-primitives", "serde", @@ -421,23 +463,23 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307324cca94354cd654d6713629f0383ec037e1ff9e3e3d547212471209860c0" +checksum = "7e10ca565da6500cca015ba35ee424d59798f2e1b85bc0dd8f81dafd401f029a" dependencies = [ "alloy-primitives", "async-trait", "auto_impl", "elliptic-curve", "k256", - "thiserror", + "thiserror 2.0.9", ] [[package]] name = "alloy-signer-local" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fabe917ab1778e760b4701628d1cae8e028ee9d52ac6307de4e1e9286ab6b5f" +checksum = "47fababf5a745133490cde927d48e50267f97d3d1209b9fc9f1d1d666964d172" dependencies = [ "alloy-consensus", "alloy-network", @@ -446,28 +488,28 @@ dependencies = [ "async-trait", "k256", "rand", - "thiserror", + "thiserror 2.0.9", ] [[package]] name = "alloy-sol-macro" -version = "0.8.5" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68e7f6e8fe5b443f82b3f1e15abfa191128f71569148428e49449d01f6f49e8b" +checksum = "d9d64f851d95619233f74b310f12bcf16e0cbc27ee3762b6115c14a84809280a" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.5" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b96ce28d2fde09abb6135f410c41fad670a3a770b6776869bd852f1df102e6f" +checksum = "6bf7ed1574b699f48bf17caab4e6e54c6d12bc3c006ab33d58b1e227c1c3559f" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", @@ -477,16 +519,16 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.5" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "906746396a8296537745711630d9185746c0b50c033d5e9d18b0a6eba3d53f90" +checksum = "8c02997ccef5f34f9c099277d4145f183b422938ed5322dc57a089fe9b9ad9ee" dependencies = [ "alloy-json-abi", "const-hex", @@ -495,15 +537,15 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.78", + "syn 2.0.91", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.5" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc85178909a49c8827ffccfc9103a7ce1767ae66a801b69bdc326913870bf8e6" +checksum = "ce13ff37285b0870d0a0746992a4ae48efaf34b766ae4c2640fa15e5305f8e73" dependencies = [ "serde", "winnow", @@ -511,9 +553,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.5" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86a533ce22525969661b25dfe296c112d35eb6861f188fd284f8bd4bb3842ae" +checksum = "1174cafd6c6d810711b4e00383037bdb458efc4fe3dbafafa16567e0320c54d8" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -524,9 +566,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33616b2edf7454302a1d48084db185e52c309f73f6c10be99b0fe39354b3f1e9" +checksum = "538a04a37221469cac0ce231b737fd174de2fdfcdd843bdd068cb39ed3e066ad" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -534,18 +576,19 @@ dependencies = [ "futures-utils-wasm", "serde", "serde_json", - "thiserror", + "thiserror 2.0.9", "tokio", "tower 0.5.1", "tracing", "url", + "wasmtimer", ] [[package]] name = "alloy-transport-http" -version = "0.3.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a944f5310c690b62bbb3e7e5ce34527cbd36b2d18532a797af123271ce595a49" +checksum = "2ed40eb1e1265b2911512f6aa1dcece9702d078f5a646730c45e39e2be00ac1c" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -556,6 +599,22 @@ dependencies = [ "url", ] +[[package]] +name = "alloy-trie" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e428104b2445a4f929030891b3dbf8c94433a8349ba6480946bf6af7975c2f6" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "arrayvec", + "derive_more", + "nybbles", + "serde", + "smallvec", + "tracing", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -706,6 +765,9 @@ name = "arrayvec" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +dependencies = [ + "serde", +] [[package]] name = "async-compression" @@ -742,7 +804,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] @@ -753,7 +815,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] @@ -775,7 +837,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] @@ -1027,9 +1089,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.12.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -1120,7 +1182,7 @@ checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", - "hashbrown", + "hashbrown 0.14.5", "lock_api", "once_cell", "parking_lot_core", @@ -1164,7 +1226,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", "unicode-xid", ] @@ -1338,7 +1400,7 @@ dependencies = [ "log", "nu-ansi-term", "regex", - "thiserror", + "thiserror 1.0.64", ] [[package]] @@ -1347,6 +1409,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "foreign-types" version = "0.3.2" @@ -1433,7 +1501,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] @@ -1536,6 +1604,12 @@ dependencies = [ "tracing", ] +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" + [[package]] name = "hashbrown" version = "0.14.5" @@ -1544,6 +1618,15 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash", "serde", ] @@ -1810,7 +1893,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.14.5", "serde", ] @@ -1970,7 +2053,7 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" dependencies = [ - "hashbrown", + "hashbrown 0.14.5", ] [[package]] @@ -2104,7 +2187,20 @@ checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", +] + +[[package]] +name = "nybbles" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a62e678a89501192cc5ebf47dcbc656b608ae5e1c61c9251fe35230f119fe3" +dependencies = [ + "alloy-rlp", + "const-hex", + "proptest", + "serde", + "smallvec", ] [[package]] @@ -2145,7 +2241,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] @@ -2234,7 +2330,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.64", "ucd-trie", ] @@ -2255,7 +2351,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] @@ -2334,14 +2430,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -2373,7 +2469,7 @@ dependencies = [ "procfs", "protobuf", "spin", - "thiserror", + "thiserror 1.0.64", ] [[package]] @@ -2730,6 +2826,17 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "schnellru" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" +dependencies = [ + "ahash", + "cfg-if 1.0.0", + "hashbrown 0.13.2", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2814,7 +2921,7 @@ checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] @@ -2932,6 +3039,9 @@ name = "smallvec" version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +dependencies = [ + "serde", +] [[package]] name = "socket2" @@ -2984,7 +3094,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] @@ -3006,9 +3116,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.78" +version = "2.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81b9b4733a9c8b8aaa20634df36eeb68cc0c0669f2e18fb287006b496a14195d" +checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" dependencies = [ "proc-macro2", "quote", @@ -3017,14 +3127,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.5" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab661c8148c2261222a4d641ad5477fd4bea79406a99056096a0b41b35617a5" +checksum = "219389c1ebe89f8333df8bdfb871f6631c552ff399c23cac02480b6088aad8f0" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] @@ -3097,7 +3207,16 @@ version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.64", +] + +[[package]] +name = "thiserror" +version = "2.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc" +dependencies = [ + "thiserror-impl 2.0.9", ] [[package]] @@ -3108,7 +3227,18 @@ checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.91", ] [[package]] @@ -3170,7 +3300,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] @@ -3337,7 +3467,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] @@ -3505,7 +3635,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", "wasm-bindgen-shared", ] @@ -3539,7 +3669,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3550,6 +3680,20 @@ version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +[[package]] +name = "wasmtimer" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0048ad49a55b9deb3953841fa1fc5858f0efbcb7a18868c899a360269fac1b23" +dependencies = [ + "futures", + "js-sys", + "parking_lot", + "pin-utils", + "slab", + "wasm-bindgen", +] + [[package]] name = "web-sys" version = "0.3.70" @@ -3824,7 +3968,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] @@ -3844,7 +3988,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.78", + "syn 2.0.91", ] [[package]] diff --git a/prover/bin/shadow-prove/Cargo.toml b/prover/bin/shadow-prove/Cargo.toml index 5768b2ca0..becb4ceac 100644 --- a/prover/bin/shadow-prove/Cargo.toml +++ b/prover/bin/shadow-prove/Cargo.toml @@ -10,7 +10,7 @@ repository = "https://github.com/morph-l2/morph/tree/main/prover" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -alloy = { version = "0.3", features = [ +alloy = { version = "0.8", features = [ "contract", "signer-local", "rpc-types-eth", diff --git a/prover/bin/shadow-prove/abi/Rollup.json b/prover/bin/shadow-prove/abi/Rollup.json index dc4c9bba6..28f7a5c6d 100644 --- a/prover/bin/shadow-prove/abi/Rollup.json +++ b/prover/bin/shadow-prove/abi/Rollup.json @@ -15,16 +15,6 @@ "name": "ErrZeroAddress", "type": "error" }, - { - "inputs": [], - "name": "ErrorIncorrectBatchLength", - "type": "error" - }, - { - "inputs": [], - "name": "ErrorNoBlockInBatch", - "type": "error" - }, { "anonymous": false, "inputs": [ @@ -619,9 +609,14 @@ "type": "bytes" }, { - "internalType": "bytes", - "name": "blockContexts", - "type": "bytes" + "internalType": "uint64", + "name": "lastBlockNumber", + "type": "uint64" + }, + { + "internalType": "uint16", + "name": "numL1Messages", + "type": "uint16" }, { "internalType": "bytes32", diff --git a/prover/bin/shadow-prove/src/lib.rs b/prover/bin/shadow-prove/src/lib.rs index e13074918..80f58da96 100644 --- a/prover/bin/shadow-prove/src/lib.rs +++ b/prover/bin/shadow-prove/src/lib.rs @@ -9,5 +9,6 @@ pub mod util; #[derive(Clone, Debug)] pub struct BatchInfo { pub batch_index: u64, - pub blocks: Vec, + pub start_block: u64, + pub end_block: u64, } diff --git a/prover/bin/shadow-prove/src/main.rs b/prover/bin/shadow-prove/src/main.rs index e5ce82eb1..dc8302b4e 100644 --- a/prover/bin/shadow-prove/src/main.rs +++ b/prover/bin/shadow-prove/src/main.rs @@ -34,6 +34,7 @@ async fn main() { let l1_verify_rpc: String = read_parse_env("SHADOW_PROVING_VERIFY_L1_RPC"); let l1_rpc: String = read_parse_env("SHADOW_PROVING_L1_RPC"); + let l2_rpc: String = read_parse_env("SHADOW_PROVING_L2_RPC"); let private_key: String = read_parse_env("SHADOW_PROVING_PRIVATE_KEY"); let rollup: String = read_parse_env("SHADOW_PROVING_L1_ROLLUP"); @@ -41,9 +42,12 @@ async fn main() { let signer: PrivateKeySigner = private_key.parse().expect("parse PrivateKeySigner"); let wallet: EthereumWallet = EthereumWallet::from(signer.clone()); - let provider: RootProvider> = + let l1_provider: RootProvider> = ProviderBuilder::new().on_http(l1_rpc.parse().expect("parse l1_rpc to Url")); + let l2_provider: RootProvider> = + ProviderBuilder::new().on_http(l2_rpc.parse().expect("parse l2_rpc to Url")); + let verify_provider: RootProvider> = ProviderBuilder::new().on_http(l1_verify_rpc.parse().expect("parse l1_rpc to Url")); @@ -55,7 +59,8 @@ async fn main() { let batch_syncer = BatchSyncer::new( Address::from_str(&rollup).unwrap(), Address::from_str(&shadow_rollup).unwrap(), - provider.clone(), + l1_provider.clone(), + l2_provider.clone(), l1_signer.clone(), ); @@ -227,7 +232,7 @@ async fn test_prove_batch() { ); let tx_hash = B256::from_str(&next_tx_hash).unwrap(); - let batch_header = shadow_prove::shadow_rollup::batch_header_inspect(&provider, tx_hash) + let batch_header = shadow_proving::shadow_rollup::batch_header_inspect(&provider, tx_hash) .await .ok_or_else(|| "Failed to inspect batch header".to_string()) .unwrap(); @@ -261,7 +266,7 @@ async fn test_prove_batch() { let rt = shadow_tx.send().await.unwrap(); println!("commitBatch success: {:?}", rt.tx_hash()); - let batch_info = BatchInfo { batch_index, blocks: vec![1000001, 1000002] }; + let batch_info = BatchInfo { batch_index, start_block: 1000001, end_block: 1000002 }; shadow_prover.prove(batch_info).await.unwrap(); } diff --git a/prover/bin/shadow-prove/src/shadow_prove.rs b/prover/bin/shadow-prove/src/shadow_prove.rs index dd3e5094e..12e950fd8 100644 --- a/prover/bin/shadow-prove/src/shadow_prove.rs +++ b/prover/bin/shadow-prove/src/shadow_prove.rs @@ -93,8 +93,7 @@ async fn handle_with_prover( { let l2_rpc = var("SHADOW_PROVING_L2_RPC").expect("Cannot detect L2_RPC env var"); let batch_index = batch_info.batch_index; - let blocks = &batch_info.blocks; - let blocks_len = blocks.len(); + let blocks_len = batch_info.end_block - batch_info.start_block + 1; METRICS.shadow_blocks_len.set(blocks_len as i64); METRICS.shadow_batch_index.set(batch_index as i64); @@ -106,7 +105,7 @@ async fn handle_with_prover( "Start prove batch of: {:?}, blocks.len = {:?}, block_start = {:#?}", batch_index, blocks_len, - blocks[0] + batch_info.start_block ); // Query existing proof @@ -121,8 +120,8 @@ async fn handle_with_prover( // Request the proverServer to prove. let request = ProveRequest { batch_index, - start_block: *blocks.first().unwrap_or(&0u64), - end_block: *blocks.last().unwrap_or(&0u64), + start_block: batch_info.start_block, + end_block: batch_info.end_block, rpc: l2_rpc.to_owned(), shadow: true, }; @@ -155,7 +154,7 @@ async fn handle_with_prover( } // Step5. query proof and prove onchain state. - let mut max_waiting_time: usize = 1600 * blocks_len; //block_prove_time =30min + let mut max_waiting_time: usize = 1600 * blocks_len as usize; //block_prove_time =30min while max_waiting_time > 300 { sleep(Duration::from_secs(300)).await; max_waiting_time -= 300; // Query results every 5 minutes. diff --git a/prover/bin/shadow-prove/src/shadow_rollup.rs b/prover/bin/shadow-prove/src/shadow_rollup.rs index 31402ae4b..6c41d8488 100644 --- a/prover/bin/shadow-prove/src/shadow_rollup.rs +++ b/prover/bin/shadow-prove/src/shadow_rollup.rs @@ -1,5 +1,6 @@ use crate::{metrics::METRICS, util::read_env_var, BatchInfo}; use alloy::{ + consensus::Transaction, network::{Network, ReceiptResponse}, primitives::{Address, Bytes, TxHash, U256, U64}, providers::{Provider, RootProvider}, @@ -10,7 +11,6 @@ use alloy::{ Transport, }, }; -use std::ops::Mul; use crate::{ Rollup::{self, RollupInstance}, @@ -20,6 +20,7 @@ use crate::{ #[derive(Clone, Debug)] pub struct BatchSyncer { l1_provider: RootProvider>, + l2_provider: RootProvider>, l1_rollup: RollupInstance, RootProvider>>, l1_shadow_rollup: ShadowRollupInstance, } @@ -33,13 +34,14 @@ where pub fn new( rollup_address: Address, shadow_rollup_address: Address, - provider: RootProvider>, + l1_provider: RootProvider>, + l2_provider: RootProvider>, wallet: P, ) -> Self { - let l1_rollup = Rollup::RollupInstance::new(rollup_address, provider.clone()); + let l1_rollup = Rollup::RollupInstance::new(rollup_address, l1_provider.clone()); let l1_shadow_rollup = ShadowRollup::new(shadow_rollup_address, wallet); - Self { l1_provider: provider, l1_rollup, l1_shadow_rollup } + Self { l1_provider, l2_provider, l1_rollup, l1_shadow_rollup } } /** @@ -55,6 +57,7 @@ where U64::from(latest), &self.l1_rollup, &self.l1_provider, + &self.l2_provider, ) .await { @@ -74,7 +77,7 @@ where // Assembling a batche of the same commitment. #[rustfmt::skip] - // Below is the encoding for `BatchHeader`, reference: morph-repo/contracts/contracts/libraries/codec/BatchHeaderCodecV0.sol + // Below is the encoding for `BatchHeader`, reference: morph-repo/contracts/contracts/libraries/codec/BatchHeaderCodecV1.sol // // * Field Bytes Type Index Comments // * version 1 uint8 0 The batch version @@ -89,6 +92,8 @@ where // * sequencerSetVerifyHash 32 bytes32 185 L2 sequencers set verify hash // * parentBatchHash 32 bytes32 217 The parent batch hash // * skippedL1MessageBitmap dynamic uint256[] 249 A bitmap to indicate which L1 messages are skipped in the batch + // @dev Below is the feilds for `BatchHeader` V1 + // * lastBlockNumber 8 uint64 249 The last block number in this batch // ``` let batch_store = ShadowRollup::BatchStore { prevStateRoot: batch_header @@ -156,6 +161,7 @@ async fn get_committed_batch( latest: U64, l1_rollup: &RollupInstance, l1_provider: &RootProvider>, + l2_provider: &RootProvider>, ) -> Result, String> where P: Provider + Clone, @@ -177,29 +183,16 @@ where log::warn!("There have been no commit_batch logs for the last 600 blocks"); return Ok(None); } - if logs.len() < 2 { + if logs.len() < 3 { log::warn!("No enough commit_batch logs for the last 600 blocks"); return Ok(None); } logs.sort_by(|a, b| a.block_number.unwrap().cmp(&b.block_number.unwrap())); - // A rollup commit_batch_input contains prev batch_header. - let next_tx_hash = match logs.last() { - Some(log) => log.transaction_hash.unwrap_or_default(), - - None => { - return Err("find commit_batch log error".to_string()); - } - }; - let batch_header = batch_header_inspect(l1_provider, next_tx_hash) - .await - .ok_or_else(|| "Failed to inspect batch header".to_string())?; - - let (batch_index, tx_hash) = match logs.get(logs.len() - 2) { + let batch_index = match logs.get(logs.len() - 2) { Some(log) => { let _index = U256::from_be_slice(log.topics()[1].as_slice()); - let _tx_hash = log.transaction_hash.unwrap_or_default(); - (_index.to::(), _tx_hash) + _index.to::() } None => { return Err("find commit_batch log error".to_string()); @@ -209,16 +202,17 @@ where if batch_index == 0 { return Err(String::from("batch_index is 0")); } - let (blocks, total_txn_count) = match batch_blocks_inspect(l1_provider, tx_hash).await { - Some(block_txn) => block_txn, - None => return Err(String::from("batch_blocks_inspect none")), - }; + let (blocks, total_txn_count) = + match batch_blocks_inspect(l1_rollup, l2_provider, batch_index).await { + Some(block_txn) => block_txn, + None => return Err(String::from("batch_blocks_inspect none")), + }; - if blocks.is_empty() { + if blocks.0 <= blocks.1 { return Err(String::from("blocks is empty")); } - if blocks.len() > read_env_var("SHADOW_PROVING_MAX_BLOCK", 300) { + if blocks.1 - blocks.0 + 1 > read_env_var("SHADOW_PROVING_MAX_BLOCK", 300) { log::warn!("Too many blocks in the latest batch to shadow prove"); return Ok(None); } @@ -228,7 +222,20 @@ where return Ok(None); } - let batch_info: BatchInfo = BatchInfo { batch_index, blocks }; + let batch_info: BatchInfo = + BatchInfo { batch_index, start_block: blocks.0, end_block: blocks.1 }; + + // A rollup commit_batch_input contains prev batch_header. + let next_tx_hash = match logs.last() { + Some(log) => log.transaction_hash.unwrap_or_default(), + + None => { + return Err("find commit_batch log error".to_string()); + } + }; + let batch_header = batch_header_inspect(l1_provider, next_tx_hash) + .await + .ok_or_else(|| "Failed to inspect batch header".to_string())?; log::info!("Found the committed batch, batch index = {:#?}", batch_index); Ok(Some((batch_info, batch_header))) @@ -253,7 +260,7 @@ pub async fn batch_header_inspect( }; //Step2. Parse transaction data - let data = tx.input; + let data = tx.input(); if data.is_empty() { log::warn!("batch inspect: tx.input is empty, tx_hash = {:#?}", hash); @@ -269,74 +276,51 @@ pub async fn batch_header_inspect( Some(parent_batch_header) } -async fn batch_blocks_inspect( - l1_provider: &RootProvider>, - hash: TxHash, -) -> Option<(Vec, u32)> { - //Step1. Get transaction - let result = l1_provider.get_transaction_by_hash(hash).await; - let tx = match result { - Ok(Some(tx)) => tx, - Ok(None) => { - log::error!("l1_provider.get_transaction is none"); - return None; - } +async fn batch_blocks_inspect( + l1_rollup: &RollupInstance, + l2_provider: &RootProvider>, + batch_index: u64, +) -> Option<((u64, u64), u64)> +where + P: Provider + Clone, + T: Transport + Clone, + N: Network, +{ + let prev_bn = match l1_rollup.batchDataStore(U256::from(batch_index - 1)).call().await { + Ok(s) => s.blockNumber.to::(), Err(e) => { - log::error!("l1_provider.get_transaction err: {:#?}", e); + log::error!("l1_rollup.batch_data_store err: {:#?}", e); return None; } }; - //Step2. Parse transaction data - let data = tx.input; - - if data.is_empty() { - log::warn!("batch inspect: tx.input is empty, tx_hash = {:#?}", hash); - return None; - } - let param = if let Ok(_param) = Rollup::commitBatchCall::abi_decode(&data, false) { - _param - } else { - log::error!("batch inspect: decode tx.input error, tx_hash = {:#?}", hash); - return None; + let current_bn = match l1_rollup.batchDataStore(U256::from(batch_index)).call().await { + Ok(s) => s.blockNumber.to::(), + Err(e) => { + log::error!("l1_rollup.batch_data_store err: {:#?}", e); + return None; + } }; - let block_contexts: Bytes = param.batchDataInput.blockContexts; - decode_blocks(block_contexts) -} -fn decode_blocks(block_contexts: Bytes) -> Option<(Vec, u32)> { - if block_contexts.is_empty() || block_contexts.len() < 2 { - return Some((vec![], 0)); - } - - let mut blocks: Vec = vec![]; - let mut txn_in_batch = 0u32; - let bs: &[u8] = &block_contexts; - - // decode blocks from batch - // | 2 byte | 60 bytes | ... | 60 bytes | - // | num blocks | block 1 | ... | block n | - // https://github.com/morph-l2/morph/blob/main/contracts/contracts/libraries/codec/BatchCodecV0.sol - let num_blocks: u16 = ((bs[0] as u16) << 8) | (bs[1] as u16); - - for i in 0..num_blocks as usize { - let block_num = - u64::from_be_bytes(bs.get((60.mul(i) + 2)..(60.mul(i) + 2 + 8))?.try_into().ok()?); - let txs_num = u16::from_be_bytes( - bs.get((60.mul(i) + 2 + 56)..(60.mul(i) + 2 + 58))?.try_into().ok()?, - ); - txn_in_batch += txs_num as u32; - blocks.push(block_num); + let mut total_tx_count: u64 = 0; + for i in prev_bn + 1..current_bn + 1 { + total_tx_count += l2_provider + .get_block_transaction_count_by_number(i.into()) + .await + .unwrap_or_default() + .unwrap_or_default(); } - METRICS.shadow_txn_len.set(txn_in_batch.into()); log::info!( "decode_blocks, blocks_len: {:#?}, start_block: {:#?}, txn_in_batch: {:?}", - num_blocks, - blocks.first().unwrap_or(&0), - txn_in_batch + current_bn - prev_bn, + prev_bn + 1, + total_tx_count ); - Some((blocks, txn_in_batch)) + + METRICS.shadow_txn_len.set(total_tx_count as i64); + + Some(((prev_bn + 1, current_bn), total_tx_count)) } async fn is_prove_success( @@ -363,24 +347,6 @@ where Some(is_prove_success) } -#[tokio::test] -async fn test_decode_blocks() { - use std::{fs::File, io::Read, str::FromStr}; - - env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("debug")).init(); - - let mut file = File::open("./src/input.data").unwrap(); - let mut contents = String::new(); - file.read_to_string(&mut contents).unwrap(); - let input = Bytes::from_str(contents.as_str()).unwrap(); - - let param = Rollup::commitBatchCall::abi_decode(&input, false).unwrap(); - let blocks: Bytes = param.batchDataInput.blockContexts; - let rt = decode_blocks(blocks).unwrap(); - assert!(rt.0.len() == 11); - assert!(rt.0[3] == 1112u64); -} - #[tokio::test] async fn test_sync_batch() { use alloy::{ @@ -395,13 +361,18 @@ async fn test_sync_batch() { let l1_rpc: String = var("SHADOW_PROVING_VERIFY_L1_RPC").unwrap_or( var("SHADOW_PROVING_L1_RPC").expect("Shadow prove cannot detect L1_RPC env var"), ); + let l2_rpc: String = var("SHADOW_PROVING_VERIFY_L2_RPC").unwrap_or( + var("SHADOW_PROVING_L2_RPC").expect("Shadow prove cannot detect L2_RPC env var"), + ); let private_key = var("SHADOW_PROVING_PRIVATE_KEY") .expect("Cannot detect SHADOW_PROVING_PRIVATE_KEY env var"); let signer: PrivateKeySigner = private_key.parse().unwrap(); let wallet: EthereumWallet = EthereumWallet::from(signer.clone()); - let provider: RootProvider> = + let l1_provider: RootProvider> = ProviderBuilder::new().on_http(l1_rpc.parse().unwrap()); + let l2_provider: RootProvider> = + ProviderBuilder::new().on_http(l2_rpc.parse().unwrap()); let rollup = var("SHADOW_PROVING_L1_ROLLUP").expect("Cannot detect L1_ROLLUP env var"); let shadow_rollup = @@ -415,7 +386,8 @@ async fn test_sync_batch() { let bs = BatchSyncer::new( Address::from_str(&rollup).unwrap(), Address::from_str(&shadow_rollup).unwrap(), - provider, + l1_provider, + l2_provider, l1_signer, ); bs.sync_batch().await.unwrap(); diff --git a/prover/crates/core/src/batch.rs b/prover/crates/core/src/batch.rs index 9a394579a..202de0809 100644 --- a/prover/crates/core/src/batch.rs +++ b/prover/crates/core/src/batch.rs @@ -31,9 +31,10 @@ impl BatchInfo { let post_state_root = traces.last().expect("at least 1 block needed").root_after(); let mut data_hasher = Keccak::v256(); - for trace in traces.iter() { - trace.hash_da_header(&mut data_hasher); - } + data_hasher.update(&traces.last().unwrap().number().to_be_bytes()); + let num_l1_txs: u16 = traces.iter().map(|x| x.num_l1_txs()).sum::() as u16; + data_hasher.update(&num_l1_txs.to_be_bytes()); + for trace in traces.iter() { trace.hash_l1_msg(&mut data_hasher); } diff --git a/prover/crates/morph-executor/client/src/lib.rs b/prover/crates/morph-executor/client/src/lib.rs index 6b1457b41..2e630930a 100644 --- a/prover/crates/morph-executor/client/src/lib.rs +++ b/prover/crates/morph-executor/client/src/lib.rs @@ -1,17 +1,31 @@ pub mod types; mod verifier; use alloy::hex; -use sbv_primitives::{TxTrace, B256}; +use sbv_primitives::{Block, TxTrace, B256}; use sbv_utils::dev_info; use types::input::ClientInput; pub use verifier::{blob_verifier::BlobVerifier, evm_verifier::EVMVerifier}; pub fn verify(input: &ClientInput) -> Result { // Verify DA - let (versioned_hash, batch_data) = BlobVerifier::verify(&input.blob_info).unwrap(); + let num_blocks = input.l2_traces.len(); + let (versioned_hash, batch_data) = BlobVerifier::verify(&input.blob_info, num_blocks).unwrap(); println!("cycle-tracker-start: traces-to-data"); + let mut batch_from_trace: Vec = Vec::with_capacity(num_blocks * 60); let mut tx_bytes: Vec = vec![]; for trace in &input.l2_traces { + // BlockContext + let mut block_ctx: Vec = Vec::with_capacity(60); + block_ctx.extend_from_slice(&trace.number().to_be_bytes()); + block_ctx.extend_from_slice(&trace.timestamp().to::().to_be_bytes()); + block_ctx + .extend_from_slice(&trace.base_fee_per_gas().unwrap_or_default().to_be_bytes::<32>()); + block_ctx.extend_from_slice(&trace.gas_limit().to::().to_be_bytes()); + block_ctx.extend_from_slice(&(trace.transactions.len() as u16).to_be_bytes()); + block_ctx.extend_from_slice(&(trace.num_l1_txs() as u16).to_be_bytes()); + batch_from_trace.extend(block_ctx); + + // Collect txns let x = trace .transactions .iter() @@ -20,8 +34,10 @@ pub fn verify(input: &ClientInput) -> Result { .collect::>(); tx_bytes.extend(x); } + batch_from_trace.extend(tx_bytes); + println!("cycle-tracker-end: traces-to-data"); - assert_eq!(batch_data, tx_bytes, "blob data mismatch!"); + assert_eq!(batch_data, batch_from_trace, "blob data mismatch!"); // Verify EVM exec. println!("cycle-tracker-start: evm-verify"); diff --git a/prover/crates/morph-executor/client/src/verifier/blob_verifier.rs b/prover/crates/morph-executor/client/src/verifier/blob_verifier.rs index 12835f4e1..c0b3986dc 100644 --- a/prover/crates/morph-executor/client/src/verifier/blob_verifier.rs +++ b/prover/crates/morph-executor/client/src/verifier/blob_verifier.rs @@ -10,13 +10,16 @@ use crate::types::{blob::get_origin_batch, input::BlobInfo}; pub struct BlobVerifier; impl BlobVerifier { - pub fn verify(blob_info: &BlobInfo) -> Result<(B256, Vec), anyhow::Error> { + pub fn verify( + blob_info: &BlobInfo, + num_blocks: usize, + ) -> Result<(B256, Vec), anyhow::Error> { // decode println!("cycle-tracker-start: decode_blob"); let origin_batch = get_origin_batch(&blob_info.blob_data).unwrap(); cfg_if::cfg_if! { if #[cfg(not(target_os = "zkvm"))] { - let tx_list = crate::types::blob::decode_transactions(origin_batch.as_slice()); + let tx_list = crate::types::blob::decode_transactions(&origin_batch.as_slice()[num_blocks*60..]); println!("decoded tx_list_len: {:?}", tx_list.len()); } } diff --git a/prover/crates/morph-executor/host/src/lib.rs b/prover/crates/morph-executor/host/src/lib.rs index 5f0de76f4..05249a592 100644 --- a/prover/crates/morph-executor/host/src/lib.rs +++ b/prover/crates/morph-executor/host/src/lib.rs @@ -1,6 +1,6 @@ use anyhow::anyhow; use morph_executor_utils::read_env_var; -use sbv_primitives::{types::BlockTrace, TxTrace}; +use sbv_primitives::{types::BlockTrace, Block, TxTrace}; use std::{io::Write, path::Path, sync::Arc}; use zstd_util::{init_zstd_encoder, N_BLOCK_SIZE_TARGET}; @@ -39,9 +39,23 @@ pub fn get_blob_info(block_trace: &Vec) -> Result) -> [u8; BLOB_DATA_SIZE] { - // collect txns + let num_blocks = block_trace.len(); + let mut batch_from_trace: Vec = Vec::with_capacity(num_blocks * 60); let mut tx_bytes: Vec = vec![]; for trace in block_trace { + // BlockContext + // https://github.com/morph-l2/morph/blob/main/contracts/contracts/libraries/codec/BatchCodecV0.sol + let mut block_ctx: Vec = Vec::with_capacity(60); + block_ctx.extend_from_slice(&trace.number().to_be_bytes()); + block_ctx.extend_from_slice(&trace.timestamp().to::().to_be_bytes()); + block_ctx + .extend_from_slice(&trace.base_fee_per_gas().unwrap_or_default().to_be_bytes::<32>()); + block_ctx.extend_from_slice(&trace.gas_limit().to::().to_be_bytes()); + block_ctx.extend_from_slice(&(trace.transactions.len() as u16).to_be_bytes()); + block_ctx.extend_from_slice(&(trace.num_l1_txs() as u16).to_be_bytes()); + batch_from_trace.extend(block_ctx); + + // Collect txns let x = trace .transactions .iter() @@ -50,8 +64,8 @@ pub fn get_blob_data(block_trace: &Vec) -> [u8; BLOB_DATA_SIZE] { .collect::>(); tx_bytes.extend(x); } - - encode_blob(tx_bytes) + batch_from_trace.extend(tx_bytes); + encode_blob(batch_from_trace) } pub fn encode_blob(tx_bytes: Vec) -> [u8; 131072] { diff --git a/tx-submitter/go.mod b/tx-submitter/go.mod index 587aa4f78..ed2e824bd 100644 --- a/tx-submitter/go.mod +++ b/tx-submitter/go.mod @@ -2,12 +2,12 @@ module morph-l2/tx-submitter go 1.22 -replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.1 +replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 require ( github.com/holiman/uint256 v1.2.4 github.com/morph-l2/externalsign v0.3.1 - github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 + github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c github.com/prometheus/client_golang v1.17.0 github.com/stretchr/testify v1.9.0 github.com/tendermint/tendermint v0.35.9 diff --git a/tx-submitter/go.sum b/tx-submitter/go.sum index e310519f5..f47a4ef96 100644 --- a/tx-submitter/go.sum +++ b/tx-submitter/go.sum @@ -164,10 +164,10 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/morph-l2/externalsign v0.3.1 h1:UYFDZFB0L85A4rDvuwLNBiGEi0kSmg9AZ2v8Q5O4dQo= github.com/morph-l2/externalsign v0.3.1/go.mod h1:b6NJ4GUiiG/gcSJsp3p8ExsIs4ZdphlrVALASnVoGJE= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= -github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= -github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= -github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= +github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 h1:qhBMCyTQ/ezOpeqHGKjr4qSN/B/bGFByuYjQqDt5wiw= +github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 3e1de9af0..a8d6e108f 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -693,7 +693,8 @@ func (r *Rollup) rollup() error { rollupBatch := bindings.IRollupBatchDataInput{ Version: uint8(batch.Version), ParentBatchHeader: batch.ParentBatchHeader, - BlockContexts: batch.BlockContexts, + LastBlockNumber: batch.LastBlockNumber, + NumL1Messages: batch.NumL1Messages, PrevStateRoot: batch.PrevStateRoot, PostStateRoot: batch.PostStateRoot, WithdrawalRoot: batch.WithdrawRoot, diff --git a/tx-submitter/utils/utils.go b/tx-submitter/utils/utils.go index bcfc02051..3f9a251bc 100644 --- a/tx-submitter/utils/utils.go +++ b/tx-submitter/utils/utils.go @@ -38,8 +38,8 @@ func Loop(ctx context.Context, period time.Duration, f func()) { func ParseFBatchIndex(calldata []byte) uint64 { abi, _ := bindings.RollupMetaData.GetAbi() parms, _ := abi.Methods["finalizeBatch"].Inputs.Unpack(calldata[4:]) - batchHeader, _ := ntype.DecodeBatchHeader(parms[0].([]byte)) - return batchHeader.BatchIndex + batchIndex, _ := ntype.BatchHeaderBytes(parms[0].([]byte)).BatchIndex() + return batchIndex } func ParseParentBatchIndex(calldata []byte) uint64 { @@ -121,10 +121,10 @@ func ParseBusinessInfo(tx *types.Transaction, a *abi.ABI) []interface{} { if err != nil { log.Error("unpack finalizeBatch error", "err", err) } - batchHeader, _ := ntype.DecodeBatchHeader(parms[0].([]byte)) + batchIndex, _ := ntype.BatchHeaderBytes(parms[0].([]byte)).BatchIndex() res = append(res, "method", method, - "finalizedIndex", batchHeader.BatchIndex, + "finalizedIndex", batchIndex, ) } From 9e1d0ded38c0ee2ccdaa962dad99b100a7579981 Mon Sep 17 00:00:00 2001 From: kukoo Date: Mon, 17 Feb 2025 14:51:09 +0800 Subject: [PATCH 083/106] Add lido gateway upgrade script (#721) --- contracts/scripts/lido_impl_deploy.ts | 26 +++ contracts/tasks/proxy_upgrade.ts | 307 +------------------------- 2 files changed, 36 insertions(+), 297 deletions(-) create mode 100644 contracts/scripts/lido_impl_deploy.ts diff --git a/contracts/scripts/lido_impl_deploy.ts b/contracts/scripts/lido_impl_deploy.ts new file mode 100644 index 000000000..f4af1539d --- /dev/null +++ b/contracts/scripts/lido_impl_deploy.ts @@ -0,0 +1,26 @@ +const hre = require("hardhat"); +import 'dotenv/config'; +const { ethers } = hre; + +const L1WstETHAddr = process.env.L1WSTETH; +const L2WstETHAddr = process.env.L2WSTETH; + +async function main() { + if (!ethers.utils.isAddress(L1WstETHAddr) || !ethers.utils.isAddress(L2WstETHAddr)) { + throw new Error("token address invalid"); + } + + const L1LidoGatewayFactory = await ethers.getContractFactory("L1LidoGateway"); + const L2LidoGatewayFactory = await ethers.getContractFactory("L2LidoGateway"); + + const l1LidoGatewayImpl = await L1LidoGatewayFactory.deploy(L1WstETHAddr, L2WstETHAddr) + const l2LidoGatewayImpl = await L2LidoGatewayFactory.deploy(L1WstETHAddr, L2WstETHAddr) + await l1LidoGatewayImpl.deployed() + await l2LidoGatewayImpl.deployed() + console.log(`impl deployed l1LidoGatewayImpl ${l1LidoGatewayImpl.address}, l2LidoGatewayImpl ${l2LidoGatewayImpl.address}`) +} + +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); \ No newline at end of file diff --git a/contracts/tasks/proxy_upgrade.ts b/contracts/tasks/proxy_upgrade.ts index 88b2fb4bb..3beefe9ce 100644 --- a/contracts/tasks/proxy_upgrade.ts +++ b/contracts/tasks/proxy_upgrade.ts @@ -3,315 +3,28 @@ import "@nomiclabs/hardhat-ethers"; import "@nomiclabs/hardhat-waffle"; import { task } from "hardhat/config"; -import { ethers } from "ethers"; - -import fs from "fs"; -import { ContractFactoryName } from "../src/types" -import { predeploys } from "../src" - -// yarn hardhat upgradeProxy --proxyaddr 0x0165878a594ca255338adfa4d48449f69242eb8f --newimpladdr 0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae --network l1 -task("upgradeProxy") - .addParam("proxyaddr") - .addParam("newimpladdr") - .setAction(async (taskArgs, hre) => { - const ProxyFactory = await hre.ethers.getContractFactory('Proxy') - const proxy = ProxyFactory.attach(taskArgs.proxyaddr) - console.log("before upgrade the impl contract is :", await proxy.connect(hre.waffle.provider).callStatic.implementation({ - from: ethers.constants.AddressZero, - })) - const res = await proxy.upgradeTo(taskArgs.newimpladdr) - - const receipt = await res.wait() - console.log(`receipt status : ${receipt.status}`) - console.log("after upgrade the impl contract is :", await proxy.connect(hre.waffle.provider).callStatic.implementation({ - from: ethers.constants.AddressZero, - })) - }); task("upgradeProxyWithPorxyAdmin") .addParam("proxyadminaddr") .addParam("proxyaddr") .addParam("newimpladdr") .setAction(async (taskArgs, hre) => { - const ProxyAdminFactory = await hre.ethers.getContractAt('TransparentUpgradeableProxy', taskArgs.proxyadminaddr) - const proxyAdmin = ProxyAdminFactory.attach(taskArgs.proxyadminaddr) + if (!hre.ethers.utils.isAddress(taskArgs.proxyadminaddr) || !hre.ethers.utils.isAddress(taskArgs.proxyaddr) + || !hre.ethers.utils.isAddress(taskArgs.newimpladdr)) { + throw new Error("token address invalid"); + } - const ProxyFactory = await hre.ethers.getContractFactory('Proxy') - const proxy = ProxyFactory.attach(taskArgs.proxyaddr) + const proxyAdmin = await hre.ethers.getContractAt('ProxyAdmin', taskArgs.proxyadminaddr) + + const proxy = await hre.ethers.getContractAt('ITransparentUpgradeableProxy', taskArgs.proxyaddr) console.log("before upgrade the impl contract is :", await proxy.connect(hre.waffle.provider).callStatic.implementation({ - from: ethers.constants.AddressZero, + from: taskArgs.proxyadminaddr, })) const res = await proxyAdmin.upgrade(taskArgs.proxyaddr, taskArgs.newimpladdr) const receipt = await res.wait() console.log(`receipt status : ${receipt.status}`) console.log("after upgrade the impl contract is :", await proxy.connect(hre.waffle.provider).callStatic.implementation({ - from: ethers.constants.AddressZero, + from: taskArgs.proxyadminaddr, })) - }); - -// Proxy__L1StandardBridge?? -// Proxy__L1CrossDomainMessenger?? - -/* -Proxy__MorphPortal - -cast call 0xdc64a140aa3e981100a9beca4e685f962f0cf6c9 "GUARDIAN()(address)" --rpc-url http://127.0.0.1:9545 -0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 - -cast call 0xdc64a140aa3e981100a9beca4e685f962f0cf6c9 "SYSTEM_CONFIG()(address)" --rpc-url http://127.0.0.1:9545 -0x8A791620dd6260079BF849Dc5567aDC3F2FdC318 - -cast call 0xdc64a140aa3e981100a9beca4e685f962f0cf6c9 "l1Messenger()(address)" --rpc-url http://127.0.0.1:9545 -0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 - -cast call 0xdc64a140aa3e981100a9beca4e685f962f0cf6c9 "ROLLUP()(address)" --rpc-url http://127.0.0.1:9545 -0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e - -yarn hardhat upgradeMorphPortalImpl --guardian 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 \ ---systemconfigproxyaddr 0x8A791620dd6260079BF849Dc5567aDC3F2FdC318 \ ---rollupproxyaddr 0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e \ ---l1cdmproxyaddr 0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 --network l1 - -cast logs --from-block 0 --to-block `cast bn` --address 0x8a791620dd6260079bf849dc5567adc3f2fdc318 `cast sig-event "AdminChanged(address,address)"` --rpc-url http://127.0.0.1:9545 - -cast abi-decode --input "AnyFuncName(address,address)" 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3 - -yarn hardhat upgradeProxyWithPorxyAdmin --proxyadminaddr 0x5FbDB2315678afecb367f032d93F642f64180aa3 \ ---proxyaddr 0xdc64a140aa3e981100a9beca4e685f962f0cf6c9 --newimpladdr 0x4c5859f0F772848b2D91F1D83E2Fe57935348029 \ ---network l1 -*/ -task("upgradeMorphPortalImpl") - .addParam("guardian") - .addParam("systemconfigproxyaddr") - .addParam("rollupproxyaddr") - .addParam("l1cdmproxyaddr") - .setAction(async (taskArgs, hre) => { - const guardian = taskArgs.guardian - const systemconfigproxyaddr = taskArgs.systemconfigproxyaddr - const rollupproxyaddr = taskArgs.rollupproxyaddr - const l1cdmproxyaddr = taskArgs.l1cdmproxyaddr - - const MorphPortalFactory = await hre.ethers.getContractFactory("MorphPortal"); - const morphportalNewImpl = await MorphPortalFactory.deploy( - guardian, - true, - systemconfigproxyaddr, - rollupproxyaddr, - l1cdmproxyaddr, - ); - await morphportalNewImpl.deployed() - console.log("new morphportalNewImpl contract address: ", morphportalNewImpl.address) - }) - -/* -Proxy__MorphMintableERC20Factory - -cast call 0xa513e6e4b8f2a923d98304ec87f64353c4d5c853 "BRIDGE()(address)" --rpc-url http://127.0.0.1:9545 -0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0 - -yarn hardhat upgradeMorphMintableERC20FactoryImpl --l1stbproxyaddr 0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0 --network l1 - -cast logs --from-block 0 --to-block `cast bn` --address 0xa513e6e4b8f2a923d98304ec87f64353c4d5c853 `cast sig-event "AdminChanged(address,address)"` --rpc-url http://127.0.0.1:9545 - -cast abi-decode --input "AnyFuncName(address,address)" 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3 - -yarn hardhat upgradeProxyWithPorxyAdmin --proxyadminaddr 0x5FbDB2315678afecb367f032d93F642f64180aa3 \ ---proxyaddr 0xa513e6e4b8f2a923d98304ec87f64353c4d5c853 --newimpladdr 0x2bdCC0de6bE1f7D2ee689a0342D76F52E8EFABa3 \ ---network l1 -*/ -task("upgradeMorphMintableERC20FactoryImpl") - .addParam("l1stbproxyaddr") - .setAction(async (taskArgs, hre) => { - const l1stbproxyaddr = taskArgs.l1stbproxyaddr - - const MorphMintableERC20FactoryFactory = await hre.ethers.getContractFactory("MorphMintableERC20Factory"); - const MorphMintableERC20FactoryNewImpl = await MorphMintableERC20FactoryFactory.deploy(l1stbproxyaddr); - await MorphMintableERC20FactoryNewImpl.deployed() - console.log("new MorphMintableERC20FactoryNewImpl contract address: ", MorphMintableERC20FactoryNewImpl.address) - }) - -/* -Proxy__L1ERC721Bridge - -cast call 0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6 "MESSENGER()(address)" --rpc-url http://127.0.0.1:9545 -0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 - -cast call 0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6 "OTHER_BRIDGE()(address)" --rpc-url http://127.0.0.1:9545 -0x4200000000000000000000000000000000000014 - -yarn hardhat upgradeL1ERC721BridgeImpl --l1cdmproxyaddr 0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 --otherbridgeaddr 0x4200000000000000000000000000000000000014 --network l1 - -cast logs --from-block 0 --to-block `cast bn` --address 0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6 `cast sig-event "AdminChanged(address,address)"` --rpc-url http://127.0.0.1:9545 - -cast abi-decode --input "AnyFuncName(address,address)" 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3 - -yarn hardhat upgradeProxyWithPorxyAdmin --proxyadminaddr 0x5FbDB2315678afecb367f032d93F642f64180aa3 \ ---proxyaddr 0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6 --newimpladdr 0x7bc06c482DEAd17c0e297aFbC32f6e63d3846650 \ ---network l1 -*/ -task("upgradeL1ERC721BridgeImpl") - .addParam("l1cdmproxyaddr") - .addParam("otherbridgeaddr") - .setAction(async (taskArgs, hre) => { - const l1cdmproxyaddr = taskArgs.l1cdmproxyaddr - const otherbridgeaddr = taskArgs.otherbridgeaddr - - const L1ERC721BridgeFactory = await hre.ethers.getContractFactory("L1ERC721Bridge"); - const L1ERC721BridgeNewImpl = await L1ERC721BridgeFactory.deploy(l1cdmproxyaddr, otherbridgeaddr); - await L1ERC721BridgeNewImpl.deployed() - console.log("new L1ERC721BridgeNewImpl contract address: ", L1ERC721BridgeNewImpl.address) - }) - -/* -Proxy__SystemConfig - -yarn hardhat upgradeSystemConfigImpl --syscfgproxyaddr 0x8a791620dd6260079bf849dc5567adc3f2fdc318 --network l1 - -cast logs --from-block 0 --to-block `cast bn` --address 0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6 `cast sig-event "AdminChanged(address,address)"` --rpc-url http://127.0.0.1:9545 - -cast abi-decode --input "AnyFuncName(address,address)" 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3 - -yarn hardhat upgradeProxyWithPorxyAdmin --proxyadminaddr 0x5FbDB2315678afecb367f032d93F642f64180aa3 \ ---proxyaddr 0x8a791620dd6260079bf849dc5567adc3f2fdc318 --newimpladdr 0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1 \ ---network l1 -*/ -task("upgradeSystemConfigImpl") - .addParam("syscfgproxyaddr") - .setAction(async (taskArgs, hre) => { - - const syscfgFactory = await hre.ethers.getContractFactory('SystemConfig') - const syscfg = syscfgFactory.attach(taskArgs.syscfgproxyaddr) - - const owner = await syscfg.connect(hre.waffle.provider).callStatic.owner({ - from: ethers.constants.AddressZero, - }) - const overhead = await syscfg.connect(hre.waffle.provider).callStatic.overhead({ - from: ethers.constants.AddressZero, - }) - const scalar = await syscfg.connect(hre.waffle.provider).callStatic.scalar({ - from: ethers.constants.AddressZero, - }) - const batcherHash = await syscfg.connect(hre.waffle.provider).callStatic.batcherHash({ - from: ethers.constants.AddressZero, - }) - const gasLimit = await syscfg.connect(hre.waffle.provider).callStatic.gasLimit({ - from: ethers.constants.AddressZero, - }) - const p2pSequencerAddress = "0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc" - const resourceConfig = await syscfg.connect(hre.waffle.provider).callStatic.resourceConfig({ - from: ethers.constants.AddressZero, - }) - - const SyscfgNewImpl = await syscfgFactory.deploy(owner, overhead, scalar, batcherHash, gasLimit, p2pSequencerAddress, resourceConfig); - await SyscfgNewImpl.deployed() - console.log("new SyscfgNewImpl contract address: ", SyscfgNewImpl.address) - }) - -/* -Proxy__SystemDictator - -yarn hardhat upgradeSystemDictatorImpl --network l1 - -yarn hardhat upgradeProxy --proxyaddr 0x610178da211fef7d417bc0e6fed39f05609ad788 --newimpladdr 0xFD471836031dc5108809D173A067e8486B9047A3 --network l1 -*/ -task("upgradeSystemDictatorImpl") - .setAction(async (taskArgs, hre) => { - const SystemDictatorFactory = await hre.ethers.getContractFactory("SystemDictator"); - const SystemDictatorNewImpl = await SystemDictatorFactory.deploy(); - await SystemDictatorNewImpl.deployed() - console.log("new SystemDictatorNewImpl contract address: ", SystemDictatorNewImpl.address) - }) - -/* -Proxy__Rollup - -cast call 0xb7f8bc63bbcad18155201308c8f3540b07f84f5e "layer2ChainId()(uint64)" --rpc-url http://127.0.0.1:9545 -53077 - -cast call 0xb7f8bc63bbcad18155201308c8f3540b07f84f5e "MESSENGER()(address)" --rpc-url http://127.0.0.1:9545 -0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 - -yarn hardhat upgradeRollupImpl --chainid 53077 --l1cdmproxyaddr 0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 --network l1 - -yarn hardhat upgradeProxy --proxyaddr 0xb7f8bc63bbcad18155201308c8f3540b07f84f5e --newimpladdr 0x1429859428C0aBc9C2C47C8Ee9FBaf82cFA0F20f --network l1 -*/ -task("upgradeRollupProxy") - .addParam("proxyadminaddr") - .addParam("rollupproxyaddr") - .addParam("chainid") - .setAction(async (taskArgs, hre) => { - const ProxyAdminFactory = await hre.ethers.getContractFactory('ProxyAdmin') - const proxyAdmin = ProxyAdminFactory.attach(taskArgs.proxyadminaddr) - // upgrade - const chainID = taskArgs.chainid - const RollupFactory = await hre.ethers.getContractFactory("Rollup"); - const rollupNewImpl = await RollupFactory.deploy(chainID); - await rollupNewImpl.deployed() - console.log("new rollupNewImpl contract address: ", rollupNewImpl.address) - if (!hre.ethers.utils.isAddress(taskArgs.rollupproxyaddr) || !hre.ethers.utils.isAddress(rollupNewImpl.address)) { - console.log(`not address ${taskArgs.rollupproxyaddr} ${rollupNewImpl.address}`) - return - } - const res = await proxyAdmin.upgrade(taskArgs.rollupproxyaddr, rollupNewImpl.address) - const rec = await res.wait() - console.log(`upgrade rollup ${rec.status === 1}`) - }) - -/* -Proxy__GasOracle - -EnableCurie - -yarn hardhat gasOracleEnableCurie --gasoracleproxyaddr 0x530000000000000000000000000000000000000f --network l2 -*/ -task("gasOracleEnableCurie") - .addParam("gasoracleproxyaddr") - .setAction(async (taskArgs, hre) => { - if (!hre.ethers.utils.isAddress(taskArgs.gasoracleproxyaddr)) { - console.log( - `GasOracle proxy address check failed ${taskArgs.gasoracleproxyaddr}` - ) - return - } - - let iGasOracle = await hre.ethers.getContractAt("GasPriceOracle", taskArgs.gasoracleproxyaddr) - let isCurie = await iGasOracle.isCurie() - - if (isCurie) { - console.log("Already set isCurie") - return - } - - // enable curie - const res = await iGasOracle.enableCurie() - const rec = await res.wait() - isCurie = await iGasOracle.isCurie() - console.log(`Enable curie ${isCurie === true ? "succeed" : "failed"}`) - }) - -/* -Proxy__GasOracle - -yarn hardhat gasOracleProxy-upgrade --l2config ../ops/l2-genesis/deploy-config/qanet-deploy-config.json --network qanetl2 -*/ - -task("gasOracleProxy-upgrade") - .addParam("l2config") - .setAction(async (taskArgs, hre) => { - const data = fs.readFileSync(taskArgs.l2config); - // @ts-ignore - const l2Config = JSON.parse(data); - - const GasPriceOracleFactory = await hre.ethers.getContractFactory("GasPriceOracle") - const gasOracleProxyNewImpl = await GasPriceOracleFactory.deploy(l2Config.gasPriceOracleOwner) - await gasOracleProxyNewImpl.deployed() - let blockNumber = await hre.ethers.provider.getBlockNumber() - console.log(`GasPriceOracle new impl deploy at ${gasOracleProxyNewImpl.address} and height ${blockNumber}`) - - const ProxyAdminFactory = await hre.ethers.getContractFactory(ContractFactoryName.ProxyAdmin) - const proxyAdmin = ProxyAdminFactory.attach(predeploys.ProxyAdmin) - let res = await proxyAdmin.upgrade(predeploys.GasPriceOracle, gasOracleProxyNewImpl.address) - let rec = await res.wait() - console.log(`upgrade gasOracleProxy ${rec.status == 1 ? "success" : "failed"}`) - }) \ No newline at end of file + }); \ No newline at end of file From a407b46e86a0e3082659a814bd9ade8c3392f4cf Mon Sep 17 00:00:00 2001 From: FletcherMan Date: Tue, 25 Feb 2025 10:54:58 +0800 Subject: [PATCH 084/106] update go-ethereum dependency (#723) --- .gitmodules | 2 +- Makefile | 2 +- bindings/go.mod | 2 +- bindings/go.sum | 4 ++-- contracts/go.mod | 2 +- contracts/go.sum | 4 ++-- go-ethereum | 2 +- go.work.sum | 4 ++++ node/go.mod | 2 +- node/go.sum | 4 ++-- ops/l2-genesis/go.mod | 2 +- ops/l2-genesis/go.sum | 4 ++-- ops/l2-genesis/morph-chain-ops/genesis/config.go | 3 +++ ops/l2-genesis/morph-chain-ops/genesis/genesis.go | 6 ++++++ ops/tools/go.mod | 2 +- ops/tools/go.sum | 4 ++-- oracle/go.mod | 2 +- oracle/go.sum | 4 ++-- tx-submitter/go.mod | 2 +- tx-submitter/go.sum | 4 ++-- 20 files changed, 37 insertions(+), 24 deletions(-) diff --git a/.gitmodules b/.gitmodules index e14290d97..3b72cbd03 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "go-ethereum"] path = go-ethereum url = https://github.com/morph-l2/go-ethereum.git -branch = feature/block_context +branch = main diff --git a/Makefile b/Makefile index 59a959ce4..d695d2cfd 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ ################## update dependencies #################### -ETHEREUM_TARGET_VERSION := v1.10.14-0.20241226065029-3b9465a03a8c +ETHEREUM_TARGET_VERSION := v1.10.14-0.20250218031646-de5160c106de TENDERMINT_TARGET_VERSION := v0.3.2-0.20250115141431-c84dfe5c8533 ETHEREUM_MODULE_NAME := github.com/morph-l2/go-ethereum diff --git a/bindings/go.mod b/bindings/go.mod index 746274140..c6e19ebc2 100644 --- a/bindings/go.mod +++ b/bindings/go.mod @@ -4,7 +4,7 @@ go 1.22 replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 -require github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c +require github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de require ( github.com/VictoriaMetrics/fastcache v1.12.2 // indirect diff --git a/bindings/go.sum b/bindings/go.sum index 2d2d93023..8341ef8c7 100644 --- a/bindings/go.sum +++ b/bindings/go.sum @@ -109,8 +109,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de h1:NOzYvFCuqWZ0bg2GAcC2S9cwd1rThSCTwyJCT8Iwfgc= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= diff --git a/contracts/go.mod b/contracts/go.mod index c1f676f6e..cced1fb2e 100644 --- a/contracts/go.mod +++ b/contracts/go.mod @@ -6,7 +6,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/iden3/go-iden3-crypto v0.0.16 - github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c + github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de github.com/stretchr/testify v1.9.0 ) diff --git a/contracts/go.sum b/contracts/go.sum index df3e167c5..d70de2f97 100644 --- a/contracts/go.sum +++ b/contracts/go.sum @@ -25,8 +25,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de h1:NOzYvFCuqWZ0bg2GAcC2S9cwd1rThSCTwyJCT8Iwfgc= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= diff --git a/go-ethereum b/go-ethereum index 3b9465a03..de5160c10 160000 --- a/go-ethereum +++ b/go-ethereum @@ -1 +1 @@ -Subproject commit 3b9465a03a8cebd3e499cd5c0ea110dfc0fbefaf +Subproject commit de5160c106deeae615de11c6b72dc64109d18767 diff --git a/go.work.sum b/go.work.sum index 597fdaeeb..e42173204 100644 --- a/go.work.sum +++ b/go.work.sum @@ -765,6 +765,10 @@ github.com/morph-l2/go-ethereum v1.10.14-0.20241028101924-8c247ffe3315 h1:egBq7X github.com/morph-l2/go-ethereum v1.10.14-0.20241028101924-8c247ffe3315/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0 h1:w0RXAFr/x9fWNgQkcrmSnZseYCNkbBFDWgEIfSqhCeY= github.com/morph-l2/go-ethereum v1.10.14-0.20241224100051-1582a364edc0/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de h1:NOzYvFCuqWZ0bg2GAcC2S9cwd1rThSCTwyJCT8Iwfgc= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/tendermint v0.3.1 h1:yqyM3/p9sCNmFSsIFeIxS5RBgXHWqbtyNHx16I9cIZ0= +github.com/morph-l2/tendermint v0.3.1/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/node/go.mod b/node/go.mod index 560d05a0f..d298192af 100644 --- a/node/go.mod +++ b/node/go.mod @@ -10,7 +10,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/golang-lru v1.0.2 github.com/klauspost/compress v1.17.9 - github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c + github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de github.com/prometheus/client_golang v1.17.0 github.com/spf13/viper v1.13.0 github.com/stretchr/testify v1.9.0 diff --git a/node/go.sum b/node/go.sum index 0791c3e4f..c83da4eb5 100644 --- a/node/go.sum +++ b/node/go.sum @@ -360,8 +360,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de h1:NOzYvFCuqWZ0bg2GAcC2S9cwd1rThSCTwyJCT8Iwfgc= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 h1:qhBMCyTQ/ezOpeqHGKjr4qSN/B/bGFByuYjQqDt5wiw= github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/ops/l2-genesis/go.mod b/ops/l2-genesis/go.mod index baee14bf0..9102c3db9 100644 --- a/ops/l2-genesis/go.mod +++ b/ops/l2-genesis/go.mod @@ -6,7 +6,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/holiman/uint256 v1.2.4 - github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c + github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de github.com/stretchr/testify v1.9.0 github.com/urfave/cli v1.22.14 ) diff --git a/ops/l2-genesis/go.sum b/ops/l2-genesis/go.sum index e8a16264d..38c073c78 100644 --- a/ops/l2-genesis/go.sum +++ b/ops/l2-genesis/go.sum @@ -143,8 +143,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de h1:NOzYvFCuqWZ0bg2GAcC2S9cwd1rThSCTwyJCT8Iwfgc= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= diff --git a/ops/l2-genesis/morph-chain-ops/genesis/config.go b/ops/l2-genesis/morph-chain-ops/genesis/config.go index 9102c780e..650e283b9 100644 --- a/ops/l2-genesis/morph-chain-ops/genesis/config.go +++ b/ops/l2-genesis/morph-chain-ops/genesis/config.go @@ -125,6 +125,9 @@ type DeployConfig struct { //MorphTokenDailyInflationRate uint64 `json:"morphTokenDailyInflationRate"` FundDevAccounts bool `json:"fundDevAccounts"` + + // Upgrade configs + Morph203Time *uint64 `json:"morph203Time,omitempty"` } // GetDeployedAddresses will get the deployed addresses of deployed L1 contracts diff --git a/ops/l2-genesis/morph-chain-ops/genesis/genesis.go b/ops/l2-genesis/morph-chain-ops/genesis/genesis.go index 89f6ca4ad..3e896273d 100644 --- a/ops/l2-genesis/morph-chain-ops/genesis/genesis.go +++ b/ops/l2-genesis/morph-chain-ops/genesis/genesis.go @@ -35,6 +35,11 @@ func NewL2Genesis(config *DeployConfig, block *types.Block) (*core.Genesis, erro sequencerFeeVaultReceipt = predeploys.L2TxFeeVaultAddr } + var morph203Time *uint64 + if config.Morph203Time != nil { + morph203Time = config.Morph203Time + } + morphChainConfig := params.ChainConfig{ ChainID: new(big.Int).SetUint64(config.L2ChainID), HomesteadBlock: big.NewInt(0), @@ -55,6 +60,7 @@ func NewL2Genesis(config *DeployConfig, block *types.Block) (*core.Genesis, erro ShanghaiBlock: big.NewInt(0), BernoulliBlock: big.NewInt(0), CurieBlock: big.NewInt(0), + Morph203Time: morph203Time, TerminalTotalDifficulty: big.NewInt(0), Morph: params.MorphConfig{ UseZktrie: true, diff --git a/ops/tools/go.mod b/ops/tools/go.mod index 348b937a5..d7301b8d3 100644 --- a/ops/tools/go.mod +++ b/ops/tools/go.mod @@ -5,7 +5,7 @@ go 1.22 replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 require ( - github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c + github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de github.com/tendermint/tendermint v0.35.9 ) diff --git a/ops/tools/go.sum b/ops/tools/go.sum index 22b9bac33..e1249465b 100644 --- a/ops/tools/go.sum +++ b/ops/tools/go.sum @@ -163,8 +163,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de h1:NOzYvFCuqWZ0bg2GAcC2S9cwd1rThSCTwyJCT8Iwfgc= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 h1:qhBMCyTQ/ezOpeqHGKjr4qSN/B/bGFByuYjQqDt5wiw= github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/oracle/go.mod b/oracle/go.mod index 5622af61e..0a5b7651e 100644 --- a/oracle/go.mod +++ b/oracle/go.mod @@ -7,7 +7,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/go-kit/kit v0.12.0 github.com/morph-l2/externalsign v0.3.1 - github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c + github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de github.com/prometheus/client_golang v1.17.0 github.com/stretchr/testify v1.9.0 github.com/tendermint/tendermint v0.35.9 diff --git a/oracle/go.sum b/oracle/go.sum index d087a3498..cbef7f1fa 100644 --- a/oracle/go.sum +++ b/oracle/go.sum @@ -175,8 +175,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/morph-l2/externalsign v0.3.1 h1:UYFDZFB0L85A4rDvuwLNBiGEi0kSmg9AZ2v8Q5O4dQo= github.com/morph-l2/externalsign v0.3.1/go.mod h1:b6NJ4GUiiG/gcSJsp3p8ExsIs4ZdphlrVALASnVoGJE= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de h1:NOzYvFCuqWZ0bg2GAcC2S9cwd1rThSCTwyJCT8Iwfgc= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 h1:qhBMCyTQ/ezOpeqHGKjr4qSN/B/bGFByuYjQqDt5wiw= github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= diff --git a/tx-submitter/go.mod b/tx-submitter/go.mod index ed2e824bd..b4b15955b 100644 --- a/tx-submitter/go.mod +++ b/tx-submitter/go.mod @@ -7,7 +7,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/holiman/uint256 v1.2.4 github.com/morph-l2/externalsign v0.3.1 - github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c + github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de github.com/prometheus/client_golang v1.17.0 github.com/stretchr/testify v1.9.0 github.com/tendermint/tendermint v0.35.9 diff --git a/tx-submitter/go.sum b/tx-submitter/go.sum index f47a4ef96..b5990fb1a 100644 --- a/tx-submitter/go.sum +++ b/tx-submitter/go.sum @@ -164,8 +164,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/morph-l2/externalsign v0.3.1 h1:UYFDZFB0L85A4rDvuwLNBiGEi0kSmg9AZ2v8Q5O4dQo= github.com/morph-l2/externalsign v0.3.1/go.mod h1:b6NJ4GUiiG/gcSJsp3p8ExsIs4ZdphlrVALASnVoGJE= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c h1:We0UnGcfs8wOSegGa97NjUE/6dZHE4ASuIWDuYBa+u8= -github.com/morph-l2/go-ethereum v1.10.14-0.20241226065029-3b9465a03a8c/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de h1:NOzYvFCuqWZ0bg2GAcC2S9cwd1rThSCTwyJCT8Iwfgc= +github.com/morph-l2/go-ethereum v1.10.14-0.20250218031646-de5160c106de/go.mod h1:sMJCfHOBzVRDkM2yF/Hy+oUk2rgC0CQZHTLs0cyzhhk= github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533 h1:qhBMCyTQ/ezOpeqHGKjr4qSN/B/bGFByuYjQqDt5wiw= github.com/morph-l2/tendermint v0.3.2-0.20250115141431-c84dfe5c8533/go.mod h1:TtCzp9l6Z6yDUiwv3TbqKqw8Q8RKp3fSz5+adO1/Y8w= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= From ee19580d29cf70fe0f60183b988e3be0af66db7c Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Mon, 3 Mar 2025 17:46:39 +0800 Subject: [PATCH 085/106] small improvements for submitter (#727) * fix last indexed blockbum not load * refactor logs for feesum --- tx-submitter/entry.go | 4 ++++ tx-submitter/event/indexer.go | 4 ++++ tx-submitter/services/rollup.go | 6 +++--- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/tx-submitter/entry.go b/tx-submitter/entry.go index b44be5628..bc5675fcd 100644 --- a/tx-submitter/entry.go +++ b/tx-submitter/entry.go @@ -193,6 +193,10 @@ func Main() func(ctx *cli.Context) error { return fmt.Errorf("failed to connect leveldb: %w", err) } eventInfoStorage := event.NewEventInfoStorage(ldb) + err = eventInfoStorage.Load() + if err != nil { + return err + } eventIndexer := event.NewEventIndexer(l1Client, new(big.Int).SetUint64(cfg.L1StakingDeployedBlockNumber), filter, cfg.EventIndexStep, eventInfoStorage) // new rotator rotator := services.NewRotator(common.HexToAddress(cfg.L2SequencerAddress), common.HexToAddress(cfg.L2GovAddress), eventIndexer) diff --git a/tx-submitter/event/indexer.go b/tx-submitter/event/indexer.go index 0ba87ab5b..ab9058395 100644 --- a/tx-submitter/event/indexer.go +++ b/tx-submitter/event/indexer.go @@ -91,6 +91,9 @@ func (ei *EventIndexer) index(client *ethclient.Client, fromBlock, toBlock *big. endBlock := toBlock.Uint64() startBlock := endBlock - ei.indexStep lastProcessedBlock := fromBlock.Uint64() + if startBlock < lastProcessedBlock { + startBlock = lastProcessedBlock + } logFilter := ei.GetFilter() // Find the last unprocessed log @@ -123,6 +126,7 @@ func (ei *EventIndexer) index(client *ethclient.Client, fromBlock, toBlock *big. } } } + log.Info("backward indexing", "block_num", startBlock, "target_num", lastProcessedBlock) // update query range endBlock = startBlock if endBlock <= lastProcessedBlock+ei.indexStep { diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index a8d6e108f..9b0b6e964 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -1348,7 +1348,7 @@ func (r *Rollup) InitFeeMetricsSum() error { return fmt.Errorf("get data from leveldb faild, key: %s, %w", rollupSumKey, err) } } - log.Info("rollupFeeSum: %f", rollupFeeSum) + log.Info(fmt.Sprintf("rollupFeeSum: %f", rollupFeeSum)) finalizeFeeSum, err := r.ldb.GetFloat(finalizeSumKey) if err != nil { log.Warn("read finalizeFeeSum from leveldb failed", "error", err) @@ -1361,7 +1361,7 @@ func (r *Rollup) InitFeeMetricsSum() error { return fmt.Errorf("get data from leveldb faild, key: %s, %w", finalizeSumKey, err) } } - log.Info("finalizeFeeSum: %f", finalizeFeeSum) + log.Info(fmt.Sprintf("finalizeFeeSum: %f", finalizeFeeSum)) collectedL1FeeSum, err := r.ldb.GetFloat(collectedL1FeeSumKey) if err != nil { log.Warn("read collectedL1FeeSum from leveldb failed", "error", err) @@ -1375,7 +1375,7 @@ func (r *Rollup) InitFeeMetricsSum() error { } } r.collectedL1FeeSum = collectedL1FeeSum - log.Info("collectedL1FeeSum: %f", collectedL1FeeSum) + log.Info(fmt.Sprintf("collectedL1FeeSum: %f", collectedL1FeeSum)) r.rollupFeeSum = rollupFeeSum r.finalizeFeeSum = finalizeFeeSum From db42adcdaeccc0aa262ac39c445742ff888382b8 Mon Sep 17 00:00:00 2001 From: WorldDogs <33647825+WorldDogs@users.noreply.github.com> Date: Tue, 4 Mar 2025 12:11:42 +0800 Subject: [PATCH 086/106] Add ChainID to DynamicFeeTx constructor (#728) Co-authored-by: WorldDogs --- tx-submitter/services/rollup.go | 1 + 1 file changed, 1 insertion(+) diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 9b0b6e964..7525c0483 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -1239,6 +1239,7 @@ func (r *Rollup) ReSubmitTx(resend bool, tx *ethtypes.Transaction) (*ethtypes.Tr switch tx.Type() { case ethtypes.DynamicFeeTxType: newTx = ethtypes.NewTx(ðtypes.DynamicFeeTx{ + ChainID: tx.ChainId(), To: tx.To(), Nonce: tx.Nonce(), GasFeeCap: gasFeeCap, From 19d494497f3c91c8bb53b98972a1c88993a85603 Mon Sep 17 00:00:00 2001 From: WorldDogs Date: Tue, 11 Mar 2025 11:12:15 +0800 Subject: [PATCH 087/106] feat: enhance batch cache with node fetching capability - Add BatchFetcher interface for fetching batch data from nodes - Modify BatchCache to fetch from nodes when cache misses - Add BatchFetcher implementation in services - Update tests with proper mock and concurrent testing - Add Clear method to BatchCache - Improve thread safety for concurrent operations This change allows BatchCache to automatically fetch data from nodes when the requested batch is not found in cache, improving the service reliability and reducing manual handling of cache misses. --- tx-submitter/iface/batch_fetcher.go | 10 ++ tx-submitter/services/batch_fetcher.go | 33 +++++ tx-submitter/types/batch_cache.go | 53 +++++++- tx-submitter/types/batch_cache_test.go | 164 +++++++++++++++++++++++-- 4 files changed, 243 insertions(+), 17 deletions(-) create mode 100644 tx-submitter/iface/batch_fetcher.go create mode 100644 tx-submitter/services/batch_fetcher.go diff --git a/tx-submitter/iface/batch_fetcher.go b/tx-submitter/iface/batch_fetcher.go new file mode 100644 index 000000000..2dccd84f4 --- /dev/null +++ b/tx-submitter/iface/batch_fetcher.go @@ -0,0 +1,10 @@ +package iface + +import ( + "github.com/morph-l2/go-ethereum/eth" +) + +// BatchFetcher defines the interface for fetching batch data from nodes +type BatchFetcher interface { + GetRollupBatchByIndex(index uint64) (*eth.RPCRollupBatch, error) +} \ No newline at end of file diff --git a/tx-submitter/services/batch_fetcher.go b/tx-submitter/services/batch_fetcher.go new file mode 100644 index 000000000..826c49443 --- /dev/null +++ b/tx-submitter/services/batch_fetcher.go @@ -0,0 +1,33 @@ +package services + +import ( + "context" + "fmt" + "morph-l2/tx-submitter/iface" + + "github.com/morph-l2/go-ethereum/eth" +) + +type BatchFetcher struct { + l2Clients []iface.L2Client +} + +func NewBatchFetcher(l2Clients []iface.L2Client) *BatchFetcher { + return &BatchFetcher{ + l2Clients: l2Clients, + } +} + +func (bf *BatchFetcher) GetRollupBatchByIndex(index uint64) (*eth.RPCRollupBatch, error) { + // Try each L2 client until we get a successful response + for _, client := range bf.l2Clients { + batch, err := client.GetRollupBatchByIndex(context.Background(), index) + if err != nil { + continue + } + if batch != nil { + return batch, nil + } + } + return nil, fmt.Errorf("failed to get batch %d from any L2 client", index) +} diff --git a/tx-submitter/types/batch_cache.go b/tx-submitter/types/batch_cache.go index 7e6794f1d..481704a93 100644 --- a/tx-submitter/types/batch_cache.go +++ b/tx-submitter/types/batch_cache.go @@ -3,27 +3,61 @@ package types import ( "sync" + "morph-l2/tx-submitter/iface" + "github.com/morph-l2/go-ethereum/eth" + "github.com/morph-l2/go-ethereum/log" ) type BatchCache struct { + m sync.RWMutex batchCache map[uint64]*eth.RPCRollupBatch - m sync.Mutex + fetcher iface.BatchFetcher } -func NewBatchCache() *BatchCache { +// NewBatchCache creates a new batch cache instance +func NewBatchCache(fetcher iface.BatchFetcher) *BatchCache { return &BatchCache{ batchCache: make(map[uint64]*eth.RPCRollupBatch), + fetcher: fetcher, } } +// Get retrieves a batch from the cache by its index +// If not found in cache, tries to fetch from node func (b *BatchCache) Get(batchIndex uint64) (*eth.RPCRollupBatch, bool) { - b.m.Lock() - defer b.m.Unlock() - + // First try to get from cache + b.m.RLock() batch, ok := b.batchCache[batchIndex] - return batch, ok + b.m.RUnlock() + + if ok { + return batch, true + } + + // If not in cache, try to fetch from node + if b.fetcher != nil { + fetchedBatch, err := b.fetcher.GetRollupBatchByIndex(batchIndex) + if err != nil { + log.Warn("Failed to fetch batch from node", + "index", batchIndex, + "error", err) + return nil, false + } + + if fetchedBatch != nil { + // Store in cache for future use + b.m.Lock() + b.batchCache[batchIndex] = fetchedBatch + b.m.Unlock() + + return fetchedBatch, true + } + } + + return nil, false } + func (b *BatchCache) Set(batchIndex uint64, batch *eth.RPCRollupBatch) { b.m.Lock() defer b.m.Unlock() @@ -37,3 +71,10 @@ func (b *BatchCache) Delete(batchIndex uint64) { delete(b.batchCache, batchIndex) } + +// Clear removes all entries from the batch cache +func (bc *BatchCache) Clear() { + bc.m.Lock() + defer bc.m.Unlock() + bc.batchCache = make(map[uint64]*eth.RPCRollupBatch) +} diff --git a/tx-submitter/types/batch_cache_test.go b/tx-submitter/types/batch_cache_test.go index f07d6411e..a0bfce195 100644 --- a/tx-submitter/types/batch_cache_test.go +++ b/tx-submitter/types/batch_cache_test.go @@ -1,21 +1,163 @@ package types import ( + "sync" "testing" - - "github.com/stretchr/testify/require" + "github.com/morph-l2/go-ethereum/eth" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" ) +// MockBatchFetcher implements the BatchFetcher interface for testing +type MockBatchFetcher struct { + mock.Mock +} + +func (m *MockBatchFetcher) GetRollupBatchByIndex(index uint64) (*eth.RPCRollupBatch, error) { + args := m.Called(index) + if args.Get(0) == nil { + return nil, args.Error(1) + } + return args.Get(0).(*eth.RPCRollupBatch), args.Error(1) +} + func TestBatchCache(t *testing.T) { + t.Run("Get non-existent batch - fetch from node", func(t *testing.T) { + mockFetcher := new(MockBatchFetcher) + cache := NewBatchCache(mockFetcher) + + expectedBatch := ð.RPCRollupBatch{ + Version: 1, + } + mockFetcher.On("GetRollupBatchByIndex", uint64(1)).Return(expectedBatch, nil).Once() + + batch, ok := cache.Get(1) + assert.True(t, ok) + assert.Equal(t, expectedBatch, batch) + + mockFetcher.AssertExpectations(t) + + // Second get should use cache + batch, ok = cache.Get(1) + assert.True(t, ok) + assert.Equal(t, expectedBatch, batch) + }) + + t.Run("Get non-existent batch - fetch fails", func(t *testing.T) { + mockFetcher := new(MockBatchFetcher) + cache := NewBatchCache(mockFetcher) + + mockFetcher.On("GetRollupBatchByIndex", uint64(2)).Return(nil, assert.AnError).Once() + + batch, ok := cache.Get(2) + assert.False(t, ok) + assert.Nil(t, batch) + + mockFetcher.AssertExpectations(t) + }) + + t.Run("Set and Get batch", func(t *testing.T) { + mockFetcher := new(MockBatchFetcher) + cache := NewBatchCache(mockFetcher) + + batch := ð.RPCRollupBatch{ + Version: 1, + } + + cache.Set(3, batch) + + gotBatch, ok := cache.Get(3) + assert.True(t, ok) + assert.Equal(t, batch, gotBatch) + }) + + t.Run("Delete batch", func(t *testing.T) { + mockFetcher := new(MockBatchFetcher) + cache := NewBatchCache(mockFetcher) + + batch := ð.RPCRollupBatch{ + Version: 1, + } + + cache.Set(4, batch) + gotBatch, ok := cache.Get(4) + assert.True(t, ok) + assert.Equal(t, batch, gotBatch) + + cache.Delete(4) + + // Setup mock for fetching after delete + mockFetcher.On("GetRollupBatchByIndex", uint64(4)).Return(nil, assert.AnError).Once() + + gotBatch, ok = cache.Get(4) + assert.False(t, ok) + assert.Nil(t, gotBatch) + + mockFetcher.AssertExpectations(t) + }) + + t.Run("Clear cache", func(t *testing.T) { + mockFetcher := new(MockBatchFetcher) + cache := NewBatchCache(mockFetcher) + + batch1 := ð.RPCRollupBatch{Version: 1} + batch2 := ð.RPCRollupBatch{Version: 2} + + cache.Set(5, batch1) + cache.Set(6, batch2) + + cache.Clear() + + // Setup mocks for fetching after clear + mockFetcher.On("GetRollupBatchByIndex", uint64(5)).Return(nil, assert.AnError).Once() + mockFetcher.On("GetRollupBatchByIndex", uint64(6)).Return(nil, assert.AnError).Once() + + gotBatch, ok := cache.Get(5) + assert.False(t, ok) + assert.Nil(t, gotBatch) + + gotBatch, ok = cache.Get(6) + assert.False(t, ok) + assert.Nil(t, gotBatch) + + mockFetcher.AssertExpectations(t) + }) + + t.Run("Concurrent access", func(t *testing.T) { + mockFetcher := new(MockBatchFetcher) + cache := NewBatchCache(mockFetcher) + + // Pre-set a batch to avoid nil pointer in concurrent access + testBatch := ð.RPCRollupBatch{Version: 7} + cache.Set(7, testBatch) + + // Setup mock expectation to allow any number of calls + mockFetcher.On("GetRollupBatchByIndex", uint64(7)).Return(testBatch, nil).Maybe() + + // Use mutex to protect cache operations + var mu sync.Mutex + + var wg sync.WaitGroup + for i := 0; i < 10; i++ { + wg.Add(1) + go func() { + defer wg.Done() + + mu.Lock() + batch, ok := cache.Get(7) + if ok && batch != nil { + cache.Set(7, batch) + } + mu.Unlock() + }() + } - cache := NewBatchCache() - cache.Set(1, nil) - _, ok := cache.Get(1) - require.True(t, ok) - cache.Delete(1) - _, ok = cache.Get(1) - require.False(t, ok) - _, ok = cache.Get(2) - require.False(t, ok) + wg.Wait() + // Final validation of cache state + batch, ok := cache.Get(7) + assert.True(t, ok) + assert.NotNil(t, batch) + assert.Equal(t, testBatch.Version, batch.Version) + }) } From 2e8e530ae55ac846fb9e51277bdca7f6f2f803a2 Mon Sep 17 00:00:00 2001 From: WorldDogs Date: Tue, 11 Mar 2025 11:48:36 +0800 Subject: [PATCH 088/106] fix: add BatchFetcher to Rollup service initialization Pass BatchFetcher instance to BatchCache constructor in Rollup service to enable fetching batch data from L2 nodes when cache misses occur. --- tx-submitter/services/rollup.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 7525c0483..84b1fbb34 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -100,7 +100,9 @@ func NewRollup( bm *l1checker.BlockMonitor, eventInfoStorage *event.EventInfoStorage, ) *Rollup { - + // Create batch fetcher + batchFetcher := NewBatchFetcher(l2Clients) + return &Rollup{ ctx: ctx, metrics: metrics, @@ -115,9 +117,9 @@ func NewRollup( abi: abi, rotator: rotator, cfg: cfg, - signer: ethtypes.LatestSignerForChainID(chainId), + signer: ethtypes.NewLondonSigner(chainId), externalRsaPriv: rsaPriv, - batchCache: types.NewBatchCache(), + batchCache: types.NewBatchCache(batchFetcher), ldb: ldb, bm: bm, eventInfoStorage: eventInfoStorage, From 2923e24b41bef8b10807d31df97f4c7c85907955 Mon Sep 17 00:00:00 2001 From: WorldDogs Date: Tue, 11 Mar 2025 12:02:38 +0800 Subject: [PATCH 089/106] refactor: lint --- tx-submitter/iface/batch_fetcher.go | 6 ++---- tx-submitter/services/batch_fetcher.go | 7 ++++++- tx-submitter/services/rollup.go | 1 - tx-submitter/types/batch_cache_test.go | 26 ++++++++++++++------------ 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/tx-submitter/iface/batch_fetcher.go b/tx-submitter/iface/batch_fetcher.go index 2dccd84f4..0bf3bb16d 100644 --- a/tx-submitter/iface/batch_fetcher.go +++ b/tx-submitter/iface/batch_fetcher.go @@ -1,10 +1,8 @@ package iface -import ( - "github.com/morph-l2/go-ethereum/eth" -) +import "github.com/morph-l2/go-ethereum/eth" // BatchFetcher defines the interface for fetching batch data from nodes type BatchFetcher interface { GetRollupBatchByIndex(index uint64) (*eth.RPCRollupBatch, error) -} \ No newline at end of file +} diff --git a/tx-submitter/services/batch_fetcher.go b/tx-submitter/services/batch_fetcher.go index 826c49443..f87b11fdc 100644 --- a/tx-submitter/services/batch_fetcher.go +++ b/tx-submitter/services/batch_fetcher.go @@ -20,14 +20,19 @@ func NewBatchFetcher(l2Clients []iface.L2Client) *BatchFetcher { func (bf *BatchFetcher) GetRollupBatchByIndex(index uint64) (*eth.RPCRollupBatch, error) { // Try each L2 client until we get a successful response + var lastErr error for _, client := range bf.l2Clients { batch, err := client.GetRollupBatchByIndex(context.Background(), index) if err != nil { + lastErr = err continue } if batch != nil { return batch, nil } } - return nil, fmt.Errorf("failed to get batch %d from any L2 client", index) + if lastErr != nil { + return nil, fmt.Errorf("failed to get batch %d from any L2 client: %w", index, lastErr) + } + return nil, fmt.Errorf("batch %d not found in any L2 client", index) } diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 84b1fbb34..06c255466 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -102,7 +102,6 @@ func NewRollup( ) *Rollup { // Create batch fetcher batchFetcher := NewBatchFetcher(l2Clients) - return &Rollup{ ctx: ctx, metrics: metrics, diff --git a/tx-submitter/types/batch_cache_test.go b/tx-submitter/types/batch_cache_test.go index a0bfce195..ecaa597db 100644 --- a/tx-submitter/types/batch_cache_test.go +++ b/tx-submitter/types/batch_cache_test.go @@ -3,7 +3,9 @@ package types import ( "sync" "testing" + "github.com/morph-l2/go-ethereum/eth" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) @@ -25,7 +27,7 @@ func TestBatchCache(t *testing.T) { t.Run("Get non-existent batch - fetch from node", func(t *testing.T) { mockFetcher := new(MockBatchFetcher) cache := NewBatchCache(mockFetcher) - + expectedBatch := ð.RPCRollupBatch{ Version: 1, } @@ -46,7 +48,7 @@ func TestBatchCache(t *testing.T) { t.Run("Get non-existent batch - fetch fails", func(t *testing.T) { mockFetcher := new(MockBatchFetcher) cache := NewBatchCache(mockFetcher) - + mockFetcher.On("GetRollupBatchByIndex", uint64(2)).Return(nil, assert.AnError).Once() batch, ok := cache.Get(2) @@ -59,7 +61,7 @@ func TestBatchCache(t *testing.T) { t.Run("Set and Get batch", func(t *testing.T) { mockFetcher := new(MockBatchFetcher) cache := NewBatchCache(mockFetcher) - + batch := ð.RPCRollupBatch{ Version: 1, } @@ -74,7 +76,7 @@ func TestBatchCache(t *testing.T) { t.Run("Delete batch", func(t *testing.T) { mockFetcher := new(MockBatchFetcher) cache := NewBatchCache(mockFetcher) - + batch := ð.RPCRollupBatch{ Version: 1, } @@ -85,24 +87,24 @@ func TestBatchCache(t *testing.T) { assert.Equal(t, batch, gotBatch) cache.Delete(4) - + // Setup mock for fetching after delete mockFetcher.On("GetRollupBatchByIndex", uint64(4)).Return(nil, assert.AnError).Once() - + gotBatch, ok = cache.Get(4) assert.False(t, ok) assert.Nil(t, gotBatch) - + mockFetcher.AssertExpectations(t) }) t.Run("Clear cache", func(t *testing.T) { mockFetcher := new(MockBatchFetcher) cache := NewBatchCache(mockFetcher) - + batch1 := ð.RPCRollupBatch{Version: 1} batch2 := ð.RPCRollupBatch{Version: 2} - + cache.Set(5, batch1) cache.Set(6, batch2) @@ -126,7 +128,7 @@ func TestBatchCache(t *testing.T) { t.Run("Concurrent access", func(t *testing.T) { mockFetcher := new(MockBatchFetcher) cache := NewBatchCache(mockFetcher) - + // Pre-set a batch to avoid nil pointer in concurrent access testBatch := ð.RPCRollupBatch{Version: 7} cache.Set(7, testBatch) @@ -136,13 +138,13 @@ func TestBatchCache(t *testing.T) { // Use mutex to protect cache operations var mu sync.Mutex - + var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.Add(1) go func() { defer wg.Done() - + mu.Lock() batch, ok := cache.Get(7) if ok && batch != nil { From 2293719916740d3ae9bef09412c1b53d090e7081 Mon Sep 17 00:00:00 2001 From: WorldDogs Date: Tue, 11 Mar 2025 12:12:04 +0800 Subject: [PATCH 090/106] refactor: remove unnecessary mutex in batch cache test --- tx-submitter/types/batch_cache_test.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tx-submitter/types/batch_cache_test.go b/tx-submitter/types/batch_cache_test.go index ecaa597db..9c880c537 100644 --- a/tx-submitter/types/batch_cache_test.go +++ b/tx-submitter/types/batch_cache_test.go @@ -136,21 +136,16 @@ func TestBatchCache(t *testing.T) { // Setup mock expectation to allow any number of calls mockFetcher.On("GetRollupBatchByIndex", uint64(7)).Return(testBatch, nil).Maybe() - // Use mutex to protect cache operations - var mu sync.Mutex - var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.Add(1) go func() { defer wg.Done() - mu.Lock() batch, ok := cache.Get(7) if ok && batch != nil { cache.Set(7, batch) } - mu.Unlock() }() } From 7e58a886adda4cfb1ba67dabead544e2a34e0fd4 Mon Sep 17 00:00:00 2001 From: WorldDogs Date: Wed, 19 Mar 2025 15:18:44 +0800 Subject: [PATCH 091/106] refactor: update signer to use LatestSignerForChainID Replaced the LondonSigner with LatestSignerForChainID in the Rollup service initialization to ensure compatibility with the latest Ethereum chain standards. --- tx-submitter/services/rollup.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 06c255466..6bae3d9ef 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -116,7 +116,7 @@ func NewRollup( abi: abi, rotator: rotator, cfg: cfg, - signer: ethtypes.NewLondonSigner(chainId), + signer: ethtypes.LatestSignerForChainID(chainId), externalRsaPriv: rsaPriv, batchCache: types.NewBatchCache(batchFetcher), ldb: ldb, From f61bd47da40ace123f49372206a986f0d3af83bc Mon Sep 17 00:00:00 2001 From: WorldDogs Date: Fri, 21 Mar 2025 14:00:08 +0800 Subject: [PATCH 092/106] feat(tx-submitter): optimize rollup transaction processing (squashed PR #680) --- tx-submitter/.gitignore | 61 +- tx-submitter/constants/methods.go | 8 + tx-submitter/db/db.go | 6 +- tx-submitter/db/interface.go | 10 + tx-submitter/event/indexer.go | 29 +- tx-submitter/event/storage.go | 73 +- tx-submitter/event/storage_test.go | 22 +- tx-submitter/iface/metrics.go | 7 + tx-submitter/iface/reorg_detector.go | 13 + tx-submitter/localpool/journal.go | 2 +- tx-submitter/metrics/metrics.go | 166 ++- tx-submitter/mock/db.go | 55 + tx-submitter/mock/event_storage.go | 26 + tx-submitter/mock/journal.go | 34 + tx-submitter/mock/l1client.go | 240 ++++ tx-submitter/mock/l1mock.go | 87 -- tx-submitter/mock/l1staking.go | 62 + tx-submitter/mock/l2client.go | 214 +++ tx-submitter/mock/reorg_detector.go | 49 + tx-submitter/mock/rollup.go | 91 ++ tx-submitter/services/batch_fetcher.go | 3 +- tx-submitter/services/pendingtx.go | 312 +++-- tx-submitter/services/pendingtx_test.go | 31 - tx-submitter/services/reorg.go | 121 ++ tx-submitter/services/rollup.go | 1220 ++++++++++++----- tx-submitter/services/rollup_handle_test.go | 240 ++++ tx-submitter/services/rollup_test.go | 383 +++++- tx-submitter/services/rotator.go | 28 +- tx-submitter/services/utils.go | 39 +- tx-submitter/types/batch_cache.go | 21 +- tx-submitter/types/batch_cache_test.go | 49 +- .../types/batch_cache_validation_test.go | 135 ++ tx-submitter/types/tx.go | 13 + tx-submitter/utils/methods.go | 12 + tx-submitter/utils/methods_test.go | 69 + tx-submitter/utils/utils.go | 80 +- tx-submitter/utils/utils_test.go | 31 +- 37 files changed, 3253 insertions(+), 789 deletions(-) create mode 100644 tx-submitter/constants/methods.go create mode 100644 tx-submitter/db/interface.go create mode 100644 tx-submitter/iface/metrics.go create mode 100644 tx-submitter/iface/reorg_detector.go create mode 100644 tx-submitter/mock/db.go create mode 100644 tx-submitter/mock/event_storage.go create mode 100644 tx-submitter/mock/journal.go create mode 100644 tx-submitter/mock/l1client.go delete mode 100644 tx-submitter/mock/l1mock.go create mode 100644 tx-submitter/mock/l1staking.go create mode 100644 tx-submitter/mock/l2client.go create mode 100644 tx-submitter/mock/reorg_detector.go create mode 100644 tx-submitter/mock/rollup.go delete mode 100644 tx-submitter/services/pendingtx_test.go create mode 100644 tx-submitter/services/reorg.go create mode 100644 tx-submitter/services/rollup_handle_test.go create mode 100644 tx-submitter/types/batch_cache_validation_test.go create mode 100644 tx-submitter/types/tx.go diff --git a/tx-submitter/.gitignore b/tx-submitter/.gitignore index 7ef51ca15..835c4a0e4 100644 --- a/tx-submitter/.gitignore +++ b/tx-submitter/.gitignore @@ -1,9 +1,56 @@ -.idea -.env* -build -tx-submitter +# IDE and Editor files +.idea/ +.vscode/ +*.swp +*.swo +*~ + +# OS generated files .DS_Store -.vscode -*.log +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# Go specific +*.exe +*.exe~ +*.dll +*.so +*.dylib +*.test +*.out +go.work + +# Binary files +tx-submitter +**/tx-submitter +build/ *debug_bin* -journal.rlp \ No newline at end of file + +# Config and Environment files +.env* + +# Test and Debug files +test/ +testleveldb/ +test_data/ +debug/ +*.test +*.log +*.pprof +cpu.prof +mem.prof +trace.out + +# Coverage reports +coverage.txt + +# Transaction files +journal.rlp +journal*.rlp + +# Temporary files +tmp/ \ No newline at end of file diff --git a/tx-submitter/constants/methods.go b/tx-submitter/constants/methods.go new file mode 100644 index 000000000..aefe24d06 --- /dev/null +++ b/tx-submitter/constants/methods.go @@ -0,0 +1,8 @@ +package constants + +const ( + // MethodCommitBatch is the method name for committing a batch + MethodCommitBatch = "commitBatch" + // MethodFinalizeBatch is the method name for finalizing a batch + MethodFinalizeBatch = "finalizeBatch" +) diff --git a/tx-submitter/db/db.go b/tx-submitter/db/db.go index d6913390b..ce62bd6eb 100644 --- a/tx-submitter/db/db.go +++ b/tx-submitter/db/db.go @@ -8,10 +8,11 @@ import ( "morph-l2/tx-submitter/utils" "github.com/morph-l2/go-ethereum/ethdb/leveldb" + "github.com/syndtr/goleveldb/leveldb/errors" ) var ( - ErrKeyNotFound = fmt.Errorf("not found") + ErrKeyNotFound = errors.ErrNotFound ) type Db struct { @@ -55,6 +56,9 @@ func (d *Db) GetString(key string) (string, error) { defer d.m.Unlock() v, err := d.db.Get([]byte(key)) if err != nil { + if err == errors.ErrNotFound { + return "", ErrKeyNotFound + } return "", fmt.Errorf("failed to get key from leveldb %w", err) } return string(v), nil diff --git a/tx-submitter/db/interface.go b/tx-submitter/db/interface.go new file mode 100644 index 000000000..0bec57f6f --- /dev/null +++ b/tx-submitter/db/interface.go @@ -0,0 +1,10 @@ +package db + +// Database defines the interface for database operations +type Database interface { + GetString(key string) (string, error) + PutString(key, val string) error + GetFloat(key string) (float64, error) + PutFloat(key string, val float64) error + Close() error +} diff --git a/tx-submitter/event/indexer.go b/tx-submitter/event/indexer.go index ab9058395..dc517ba72 100644 --- a/tx-submitter/event/indexer.go +++ b/tx-submitter/event/indexer.go @@ -16,10 +16,10 @@ type EventIndexer struct { deployBlock *big.Int // Block number of contract deployment filterQuery ethereum.FilterQuery indexStep uint64 // index step - storage *EventInfoStorage + storage IEventStorage } -func NewEventIndexer(client *ethclient.Client, deployedBlock *big.Int, filter ethereum.FilterQuery, indexStep uint64, storage *EventInfoStorage) *EventIndexer { +func NewEventIndexer(client *ethclient.Client, deployedBlock *big.Int, filter ethereum.FilterQuery, indexStep uint64, storage IEventStorage) *EventIndexer { return &EventIndexer{ client: client, deployBlock: deployedBlock, @@ -32,8 +32,8 @@ func NewEventIndexer(client *ethclient.Client, deployedBlock *big.Int, filter et func (l *EventIndexer) Index() { log.Info("event indexer started") - if l.storage.BlockProcessed == 0 { - l.storage.BlockProcessed = l.deployBlock.Uint64() + if l.storage.BlockProcessed() == 0 { + l.storage.SetBlockProcessed(l.deployBlock.Uint64()) err := l.storage.Store() if err != nil { log.Error("failed to store initial block number", "error", err) @@ -45,7 +45,6 @@ func (l *EventIndexer) Index() { defer ticker.Stop() for range ticker.C { - // Get the current block number currentBlock, err := l.client.BlockNumber(context.Background()) if err != nil { @@ -53,35 +52,33 @@ func (l *EventIndexer) Index() { continue } - if currentBlock <= l.storage.BlockProcessed { - log.Info("no new block to index", "current_block", currentBlock, "last_processed_block", l.storage.BlockProcessed) + if currentBlock <= l.storage.BlockProcessed() { + log.Info("no new block to index", "current_block", currentBlock, "last_processed_block", l.storage.BlockProcessed()) continue } // Perform indexing operation - indexedEventInfo, err := l.index(l.client, big.NewInt(int64(l.storage.BlockProcessed)), big.NewInt(int64(currentBlock))) + indexedEventInfo, err := l.index(l.client, big.NewInt(int64(l.storage.BlockProcessed())), big.NewInt(int64(currentBlock))) if err != nil { log.Error("indexing operation failed", "error", err) continue } if indexedEventInfo != nil { - l.storage.EventInfo = *indexedEventInfo + l.storage.SetBlockProcessed(indexedEventInfo.BlockProcessed) } else { - l.storage.EventInfo = EventInfo{ - BlockProcessed: currentBlock, - } + l.storage.SetBlockProcessed(currentBlock) } + // Update storage err = l.storage.Store() if err != nil { log.Error("event index complete, failed to update storage", "error", err) } else { - log.Info("event index complete, storage updated", "processed_block", l.storage.EventInfo.BlockProcessed, "block_time", l.storage.EventInfo.BlockTime) + info := l.storage.EventInfo() + log.Info("event index complete, storage updated", "processed_block", info.BlockProcessed, "block_time", info.BlockTime) } - } - } // filter logs from from_block to to_block @@ -143,6 +140,6 @@ func (ei *EventIndexer) index(client *ethclient.Client, fromBlock, toBlock *big. func (l *EventIndexer) GetFilter() ethereum.FilterQuery { return l.filterQuery } -func (l *EventIndexer) GetStorage() *EventInfoStorage { +func (l *EventIndexer) GetStorage() IEventStorage { return l.storage } diff --git a/tx-submitter/event/storage.go b/tx-submitter/event/storage.go index d77f857f7..e40b83ed8 100644 --- a/tx-submitter/event/storage.go +++ b/tx-submitter/event/storage.go @@ -7,12 +7,16 @@ import ( "morph-l2/tx-submitter/db" "morph-l2/tx-submitter/params" - "morph-l2/tx-submitter/utils" ) type IEventStorage interface { Store() error Load() error + BlockProcessed() uint64 + SetBlockProcessed(blockNum uint64) + BlockTime() uint64 + SetBlockTime(blockTime uint64) + EventInfo() EventInfo } type EventInfo struct { @@ -21,21 +25,20 @@ type EventInfo struct { } type EventInfoStorage struct { - EventInfo - db *db.Db - mu sync.Mutex + eventInfo EventInfo + db db.Database + mu sync.RWMutex } -func NewEventInfoStorage(db *db.Db) *EventInfoStorage { +func NewEventInfoStorage(db db.Database) *EventInfoStorage { return &EventInfoStorage{ db: db, } } func (e *EventInfoStorage) Store() error { - // Convert struct to JSON string - jsonData, err := json.Marshal(e.EventInfo) + jsonData, err := json.Marshal(e.eventInfo) if err != nil { return fmt.Errorf("failed to convert struct to JSON: %w", err) } @@ -49,31 +52,57 @@ func (e *EventInfoStorage) Store() error { } return nil } + func (e *EventInfoStorage) Load() error { e.mu.Lock() defer e.mu.Unlock() - evnetInfo, err := e.db.GetString(params.EventInfoKey) + + jsonStr, err := e.db.GetString(params.EventInfoKey) if err != nil { - if utils.ErrStringMatch(err, db.ErrKeyNotFound) { - e.EventInfo = EventInfo{} - jsonData, err := json.Marshal(e.EventInfo) - if err != nil { - return fmt.Errorf("failed to marshal json: %w", err) - } - err = e.db.PutString(params.EventInfoKey, string(jsonData)) - if err != nil { - return fmt.Errorf("failed to init eventinfo to db: %w", err) - } + if err == db.ErrKeyNotFound { + // Initialize with default values if not found + e.eventInfo = EventInfo{} return nil } - return fmt.Errorf("failed to load eventinfo from db: %w", err) + return fmt.Errorf("failed to read from db: %w", err) } - // parse json data to struct - err = json.Unmarshal([]byte(evnetInfo), &e.EventInfo) + err = json.Unmarshal([]byte(jsonStr), &e.eventInfo) if err != nil { - return fmt.Errorf("failed to unmarshal JSON: %w", err) + return fmt.Errorf("failed to parse JSON: %w", err) } return nil } + +func (e *EventInfoStorage) BlockProcessed() uint64 { + e.mu.RLock() + defer e.mu.RUnlock() + return e.eventInfo.BlockProcessed +} + +func (e *EventInfoStorage) SetBlockProcessed(blockNum uint64) { + e.mu.Lock() + defer e.mu.Unlock() + e.eventInfo.BlockProcessed = blockNum +} + +func (e *EventInfoStorage) BlockTime() uint64 { + e.mu.RLock() + defer e.mu.RUnlock() + return e.eventInfo.BlockTime +} + +func (e *EventInfoStorage) SetBlockTime(blockTime uint64) { + e.mu.Lock() + defer e.mu.Unlock() + e.eventInfo.BlockTime = blockTime +} + +// EventInfo returns a copy of the current event info. +// This ensures thread safety without exposing the internal state. +func (e *EventInfoStorage) EventInfo() EventInfo { + e.mu.RLock() + defer e.mu.RUnlock() + return e.eventInfo +} diff --git a/tx-submitter/event/storage_test.go b/tx-submitter/event/storage_test.go index 74e78b094..2299bab52 100644 --- a/tx-submitter/event/storage_test.go +++ b/tx-submitter/event/storage_test.go @@ -2,27 +2,39 @@ package event import ( "morph-l2/tx-submitter/db" + "os" + "path/filepath" "testing" "github.com/stretchr/testify/require" ) func TestEventInfoStorage(t *testing.T) { + // Create a unique test directory + testDir := filepath.Join(t.TempDir(), "testleveldb") - db, err := db.New("./testleveldb") + // Cleanup before test (in case it exists) + os.RemoveAll(testDir) + + // Cleanup after test + t.Cleanup(func() { + os.RemoveAll(testDir) + }) + + db, err := db.New(testDir) require.NoError(t, err) storage := NewEventInfoStorage(db) err = storage.Load() require.NoError(t, err) - storage.BlockTime = 100 - storage.BlockProcessed = 100 + storage.SetBlockTime(100) + storage.SetBlockProcessed(100) err = storage.Store() require.NoError(t, err) storage2 := NewEventInfoStorage(db) err = storage2.Load() require.NoError(t, err) - require.Equal(t, storage.BlockTime, storage2.BlockTime) - require.Equal(t, storage.BlockProcessed, storage2.BlockProcessed) + require.Equal(t, storage.BlockTime(), storage2.BlockTime()) + require.Equal(t, storage.BlockProcessed(), storage2.BlockProcessed()) } diff --git a/tx-submitter/iface/metrics.go b/tx-submitter/iface/metrics.go new file mode 100644 index 000000000..6b34a82d2 --- /dev/null +++ b/tx-submitter/iface/metrics.go @@ -0,0 +1,7 @@ +package iface + +type IMetrics interface { + // Reorg metrics + IncReorgs() + SetReorgDepth(depth float64) +} diff --git a/tx-submitter/iface/reorg_detector.go b/tx-submitter/iface/reorg_detector.go new file mode 100644 index 000000000..896c4db37 --- /dev/null +++ b/tx-submitter/iface/reorg_detector.go @@ -0,0 +1,13 @@ +package iface + +import "context" + +// IReorgDetector defines the interface for chain reorganization detection +type IReorgDetector interface { + // DetectReorg checks if a chain reorganization has occurred + // Returns: + // - bool: whether a reorg was detected + // - uint64: the depth of the reorg (number of blocks from head) + // - error: any error that occurred during detection + DetectReorg(ctx context.Context) (bool, uint64, error) +} diff --git a/tx-submitter/localpool/journal.go b/tx-submitter/localpool/journal.go index ca918f106..5b17d07cc 100644 --- a/tx-submitter/localpool/journal.go +++ b/tx-submitter/localpool/journal.go @@ -82,7 +82,7 @@ func (j *Journal) ParseAllTxs() ([]*types.Transaction, error) { content, err := readFileContent(j.path) if err != nil { - return nil, fmt.Errorf("failed to parse txs: %w", err) + return nil, fmt.Errorf("failed to read journal file: %w", err) } if len(content) == 0 { diff --git a/tx-submitter/metrics/metrics.go b/tx-submitter/metrics/metrics.go index 2b09d467c..1f153c85f 100644 --- a/tx-submitter/metrics/metrics.go +++ b/tx-submitter/metrics/metrics.go @@ -4,111 +4,157 @@ import ( "net" "net/http" "strconv" + "sync/atomic" "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promauto" "github.com/prometheus/client_golang/prometheus/promhttp" ) -const metricsNamespace = "submitter" - +// Metrics represents the metrics collection for the tx-submitter type Metrics struct { - RpcErrors prometheus.Counter WalletBalance prometheus.Gauge - RollupCostSum prometheus.Counter - FinalizeCostSum prometheus.Counter + RpcErrors prometheus.Counter + RollupCostSum prometheus.Gauge + FinalizeCostSum prometheus.Gauge RollupCost prometheus.Gauge FinalizeCost prometheus.Gauge - CollectedL1FeeSum prometheus.Counter - CollectedL1Fee prometheus.Gauge + CollectedL1FeeSum prometheus.Gauge IndexerBlockProcessed prometheus.Gauge + reorgs prometheus.Counter + reorgDepthVal uint64 + reorgCountVal uint64 + confirmedTxs *prometheus.CounterVec } +// NewMetrics creates a new Metrics instance func NewMetrics() *Metrics { - - return &Metrics{ - RpcErrors: promauto.NewCounter(prometheus.CounterOpts{ - Name: "submitter_rpc_errors", - Help: "Number of RPC errors encountered", - Namespace: metricsNamespace, + m := &Metrics{ + WalletBalance: prometheus.NewGauge(prometheus.GaugeOpts{ + Name: "tx_submitter_wallet_balance", + Help: "Current balance of the submitter wallet in ETH", }), - WalletBalance: promauto.NewGauge(prometheus.GaugeOpts{ - Name: "submitter_wallet_balance", - Help: "Wallet balance", - Namespace: metricsNamespace, + RpcErrors: prometheus.NewCounter(prometheus.CounterOpts{ + Name: "tx_submitter_rpc_errors_total", + Help: "Total number of RPC errors encountered", }), - RollupCostSum: promauto.NewCounter(prometheus.CounterOpts{ - Name: "submitter_rollup_cost_sum", - Help: "Rollup cost", - Namespace: metricsNamespace, + RollupCostSum: prometheus.NewGauge(prometheus.GaugeOpts{ + Name: "tx_submitter_rollup_cost_sum", + Help: "Total cost of rollup transactions in ETH", }), - FinalizeCostSum: promauto.NewCounter(prometheus.CounterOpts{ - Name: "submitter_finalize_cost_sum", - Help: "Finalize cost", - Namespace: metricsNamespace, + FinalizeCostSum: prometheus.NewGauge(prometheus.GaugeOpts{ + Name: "tx_submitter_finalize_cost_sum", + Help: "Total cost of finalize transactions in ETH", }), - RollupCost: promauto.NewGauge(prometheus.GaugeOpts{ - Name: "submitter_rollup_cost", - Help: "Rollup cost", - Namespace: metricsNamespace, + RollupCost: prometheus.NewGauge(prometheus.GaugeOpts{ + Name: "tx_submitter_rollup_cost", + Help: "Current rollup transaction cost in ETH", }), - FinalizeCost: promauto.NewGauge(prometheus.GaugeOpts{ - Name: "submitter_finalize_cost", - Help: "Finalize cost", - Namespace: metricsNamespace, + FinalizeCost: prometheus.NewGauge(prometheus.GaugeOpts{ + Name: "tx_submitter_finalize_cost", + Help: "Current finalize transaction cost in ETH", }), - CollectedL1Fee: promauto.NewGauge(prometheus.GaugeOpts{ - Name: "submitter_collected_l1_fee", - Help: "Collected L1 fee for every batch", - Namespace: metricsNamespace, + CollectedL1FeeSum: prometheus.NewGauge(prometheus.GaugeOpts{ + Name: "tx_submitter_collected_l1_fee_sum", + Help: "Total L1 fees collected in ETH", }), - CollectedL1FeeSum: promauto.NewCounter(prometheus.CounterOpts{ - Name: "submitter_collected_l1_fee_sum", - Help: "Collected L1 fee for all batches committed ", - Namespace: metricsNamespace, + IndexerBlockProcessed: prometheus.NewGauge(prometheus.GaugeOpts{ + Name: "tx_submitter_indexer_block_processed", + Help: "Latest block number processed by the indexer", }), - - IndexerBlockProcessed: promauto.NewGauge(prometheus.GaugeOpts{ - Name: "submitter_indexer_block_processed", - Help: "Indexer block processed", - Namespace: metricsNamespace, + reorgs: prometheus.NewCounter(prometheus.CounterOpts{ + Name: "tx_submitter_reorgs_total", + Help: "Total number of chain reorganizations detected", }), + confirmedTxs: prometheus.NewCounterVec( + prometheus.CounterOpts{ + Name: "tx_submitter_confirmed_txs_total", + Help: "Total number of confirmed transactions by type", + }, + []string{"type"}, + ), } -} -func (m *Metrics) Serve(hostname string, port uint64) (*http.Server, error) { - mux := http.NewServeMux() - mux.Handle("/metrics", promhttp.Handler()) - srv := new(http.Server) - srv.Addr = net.JoinHostPort(hostname, strconv.FormatUint(port, 10)) - srv.Handler = mux - err := srv.ListenAndServe() - return srv, err + return m } +// SetWalletBalance sets the wallet balance metric func (m *Metrics) SetWalletBalance(balance float64) { m.WalletBalance.Set(balance) } +// IncRpcErrors increments the RPC error counter func (m *Metrics) IncRpcErrors() { m.RpcErrors.Inc() } +// SetRollupCost sets the rollup cost metrics func (m *Metrics) SetRollupCost(cost float64) { - m.RollupCostSum.Add(cost) + m.RollupCostSum.Set(cost) m.RollupCost.Set(cost) } +// SetFinalizeCost sets the finalize cost metrics func (m *Metrics) SetFinalizeCost(cost float64) { - m.FinalizeCostSum.Add(cost) + m.FinalizeCostSum.Set(cost) m.FinalizeCost.Set(cost) } +// SetCollectedL1Fee sets the collected L1 fee metric func (m *Metrics) SetCollectedL1Fee(cost float64) { - m.CollectedL1FeeSum.Add(cost) - m.CollectedL1Fee.Set(cost) + m.CollectedL1FeeSum.Set(cost) } +// SetIndexerBlockProcessed sets the indexer block processed metric func (m *Metrics) SetIndexerBlockProcessed(blockNumber uint64) { m.IndexerBlockProcessed.Set(float64(blockNumber)) } + +// IncReorgs increments the reorg counter +func (m *Metrics) IncReorgs() { + atomic.AddUint64(&m.reorgCountVal, 1) + m.reorgs.Inc() +} + +// SetReorgDepth sets the reorg depth metric +func (m *Metrics) SetReorgDepth(depth float64) { + atomic.StoreUint64(&m.reorgDepthVal, uint64(depth)) +} + +// GetReorgDepth gets the current reorg depth +func (m *Metrics) GetReorgDepth() float64 { + return float64(atomic.LoadUint64(&m.reorgDepthVal)) +} + +// GetReorgCount gets the current reorg count +func (m *Metrics) GetReorgCount() float64 { + return float64(atomic.LoadUint64(&m.reorgCountVal)) +} + +// IncTxConfirmed increments the confirmed transaction counter for a given type +func (m *Metrics) IncTxConfirmed(txType string) { + m.confirmedTxs.WithLabelValues(txType).Inc() +} + +func (m *Metrics) Serve(hostname string, port uint64) (*http.Server, error) { + mux := http.NewServeMux() + mux.Handle("/metrics", promhttp.Handler()) + srv := new(http.Server) + srv.Addr = net.JoinHostPort(hostname, strconv.FormatUint(port, 10)) + srv.Handler = mux + err := srv.ListenAndServe() + return srv, err +} + +// UnregisterMetrics unregisters all metrics from the default registry +func (m *Metrics) UnregisterMetrics() { + prometheus.Unregister(m.WalletBalance) + prometheus.Unregister(m.RpcErrors) + prometheus.Unregister(m.RollupCostSum) + prometheus.Unregister(m.FinalizeCostSum) + prometheus.Unregister(m.RollupCost) + prometheus.Unregister(m.FinalizeCost) + prometheus.Unregister(m.CollectedL1FeeSum) + prometheus.Unregister(m.IndexerBlockProcessed) + prometheus.Unregister(m.reorgs) + prometheus.Unregister(m.confirmedTxs) +} diff --git a/tx-submitter/mock/db.go b/tx-submitter/mock/db.go new file mode 100644 index 000000000..2eb44844f --- /dev/null +++ b/tx-submitter/mock/db.go @@ -0,0 +1,55 @@ +package mock + +import ( + "strconv" + "sync" + + "morph-l2/tx-submitter/db" +) + +type MockDB struct { + store map[string]string + m sync.RWMutex +} + +func NewMockDB() *MockDB { + return &MockDB{ + store: make(map[string]string), + } +} + +func (d *MockDB) GetString(key string) (string, error) { + d.m.RLock() + defer d.m.RUnlock() + if val, ok := d.store[key]; ok { + return val, nil + } + return "", db.ErrKeyNotFound +} + +func (d *MockDB) PutString(key, val string) error { + d.m.Lock() + defer d.m.Unlock() + d.store[key] = val + return nil +} + +func (d *MockDB) GetFloat(key string) (float64, error) { + d.m.RLock() + defer d.m.RUnlock() + if val, ok := d.store[key]; ok { + return strconv.ParseFloat(val, 64) + } + return 0, db.ErrKeyNotFound +} + +func (d *MockDB) PutFloat(key string, val float64) error { + d.m.Lock() + defer d.m.Unlock() + d.store[key] = strconv.FormatFloat(val, 'f', -1, 64) + return nil +} + +func (d *MockDB) Close() error { + return nil +} diff --git a/tx-submitter/mock/event_storage.go b/tx-submitter/mock/event_storage.go new file mode 100644 index 000000000..e26087720 --- /dev/null +++ b/tx-submitter/mock/event_storage.go @@ -0,0 +1,26 @@ +package mock + +import ( + "morph-l2/tx-submitter/event" +) + +// MockEventInfoStorage is a mock implementation of the EventInfoStorage +type MockEventInfoStorage struct { + event.EventInfoStorage +} + +// NewMockEventInfoStorage creates a new mock EventInfoStorage +func NewMockEventInfoStorage() *event.EventInfoStorage { + mockDB := NewMockDB() + return event.NewEventInfoStorage(mockDB) +} + +// Store implements the Store method +func (m *MockEventInfoStorage) Store() error { + return nil +} + +// Load implements the Load method +func (m *MockEventInfoStorage) Load() error { + return nil +} diff --git a/tx-submitter/mock/journal.go b/tx-submitter/mock/journal.go new file mode 100644 index 000000000..abe25dec6 --- /dev/null +++ b/tx-submitter/mock/journal.go @@ -0,0 +1,34 @@ +package mock + +import ( + "github.com/morph-l2/go-ethereum/core/types" +) + +// MockJournal is a mock implementation of the journal interface for testing +type MockJournal struct { + txs []*types.Transaction +} + +func NewMockJournal() *MockJournal { + return &MockJournal{ + txs: make([]*types.Transaction, 0), + } +} + +func (j *MockJournal) Init() error { + return nil +} + +func (j *MockJournal) AppendTx(tx *types.Transaction) error { + j.txs = append(j.txs, tx) + return nil +} + +func (j *MockJournal) ParseAllTxs() ([]*types.Transaction, error) { + return j.txs, nil +} + +func (j *MockJournal) Clean() error { + j.txs = make([]*types.Transaction, 0) + return nil +} diff --git a/tx-submitter/mock/l1client.go b/tx-submitter/mock/l1client.go new file mode 100644 index 000000000..92565d65c --- /dev/null +++ b/tx-submitter/mock/l1client.go @@ -0,0 +1,240 @@ +package mock + +import ( + "context" + "fmt" + "math/big" + + "github.com/morph-l2/go-ethereum" + "github.com/morph-l2/go-ethereum/common" + "github.com/morph-l2/go-ethereum/core/types" + "github.com/morph-l2/go-ethereum/ethclient" +) + +// L1ClientWrapper is a mock implementation of the L1 client interface +type L1ClientWrapper struct { + *ethclient.Client + Block *types.Block + TipCap *big.Int + SendTxErr error + MockReorg bool + MockReorgDepth uint64 + CallContractErr error + CallContractResult []byte + CodeAtErr error + CodeAtResult []byte + BaseFee *big.Int + Header *types.Header + // Track transactions and their status + transactions map[common.Hash]*types.Transaction + receipts map[common.Hash]*types.Receipt + // Track block history for reorg simulation + blockHistory map[uint64]*types.Block + // Track original block hashes before reorg + originalHashes map[uint64]common.Hash +} + +// FilterLogs implements iface.Client. +func (l *L1ClientWrapper) FilterLogs(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) { + panic("unimplemented") +} + +// NonceAt implements iface.Client. +func (l *L1ClientWrapper) NonceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (uint64, error) { + panic("unimplemented") +} + +// PendingCodeAt implements iface.Client. +func (l *L1ClientWrapper) PendingCodeAt(ctx context.Context, account common.Address) ([]byte, error) { + panic("unimplemented") +} + +// SubscribeFilterLogs implements iface.Client. +func (l *L1ClientWrapper) SubscribeFilterLogs(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { + panic("unimplemented") +} + +// SuggestGasPrice implements iface.Client. +func (l *L1ClientWrapper) SuggestGasPrice(ctx context.Context) (*big.Int, error) { + panic("unimplemented") +} + +// NewL1ClientWrapper creates a new mock L1 client wrapper +func NewL1ClientWrapper() *L1ClientWrapper { + header := &types.Header{ + Number: big.NewInt(100), + Time: uint64(1234567890), + BaseFee: big.NewInt(1e9), + ExcessBlobGas: new(uint64), + } + *header.ExcessBlobGas = 0 + block := types.NewBlockWithHeader(header) + return &L1ClientWrapper{ + Client: nil, + Block: block, + TipCap: big.NewInt(1e9), + BaseFee: big.NewInt(1e9), + Header: header, + transactions: make(map[common.Hash]*types.Transaction), + receipts: make(map[common.Hash]*types.Receipt), + blockHistory: make(map[uint64]*types.Block), + originalHashes: make(map[uint64]common.Hash), + } +} + +// BlockNumber returns the current block number +func (l *L1ClientWrapper) BlockNumber(ctx context.Context) (uint64, error) { + if l.Block != nil { + return l.Block.NumberU64(), nil + } + return 0, nil +} + +// HeaderByNumber returns the block header at the given number +func (l *L1ClientWrapper) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error) { + if l.Header != nil { + if l.Header.ExcessBlobGas == nil { + l.Header.ExcessBlobGas = new(uint64) + *l.Header.ExcessBlobGas = 0 + } + return l.Header, nil + } + return nil, ethereum.NotFound +} + +// BlockByNumber returns the block at the given number +func (l *L1ClientWrapper) BlockByNumber(ctx context.Context, number *big.Int) (*types.Block, error) { + if number == nil { + return l.Block, nil + } + + blockNum := number.Uint64() + if l.MockReorg && blockNum > l.MockReorgDepth { + // If we haven't stored the original hash, store it + if _, ok := l.originalHashes[blockNum]; !ok { + if block, ok := l.blockHistory[blockNum]; ok { + l.originalHashes[blockNum] = block.Hash() + } + } + + // Return a block with a different hash to simulate reorg + header := &types.Header{ + Number: number, + Time: uint64(1234567890), + ParentHash: common.HexToHash("0x" + fmt.Sprintf("%x", blockNum+1)), + BaseFee: big.NewInt(1e9), + ExcessBlobGas: new(uint64), + } + *header.ExcessBlobGas = 0 + block := types.NewBlockWithHeader(header) + l.blockHistory[blockNum] = block + l.SimulateReorg() + return block, nil + } + + if block, ok := l.blockHistory[blockNum]; ok { + return block, nil + } + + // For blocks before reorg depth, return blocks with consistent hashes + header := &types.Header{ + Number: number, + Time: uint64(1234567890), + ParentHash: common.HexToHash("0x" + fmt.Sprintf("%x", blockNum)), + BaseFee: big.NewInt(1e9), + ExcessBlobGas: new(uint64), + } + *header.ExcessBlobGas = 0 + block := types.NewBlockWithHeader(header) + l.blockHistory[blockNum] = block + return block, nil +} + +func (l *L1ClientWrapper) CallContract(ctx context.Context, msg ethereum.CallMsg, blockNumber *big.Int) ([]byte, error) { + if l.CallContractErr != nil { + return nil, l.CallContractErr + } + return l.CallContractResult, nil +} + +func (l *L1ClientWrapper) TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) { + if l.MockReorg { + // During reorg, all transactions should be considered missing + return nil, ethereum.NotFound + } + if receipt, ok := l.receipts[txHash]; ok { + return receipt, nil + } + return nil, ethereum.NotFound +} + +func (l *L1ClientWrapper) TransactionByHash(ctx context.Context, hash common.Hash) (tx *types.Transaction, isPending bool, err error) { + if l.MockReorg { + // During reorg, all transactions should be considered missing + return nil, false, ethereum.NotFound + } + if tx, ok := l.transactions[hash]; ok { + // If there's no receipt, the transaction is pending + // If there's a receipt, the transaction is not pending + _, hasReceipt := l.receipts[hash] + return tx, !hasReceipt, nil + } + return nil, false, ethereum.NotFound +} + +func (l *L1ClientWrapper) PendingNonceAt(ctx context.Context, account common.Address) (uint64, error) { + return 0, nil +} + +func (l *L1ClientWrapper) SuggestGasTipCap(ctx context.Context) (*big.Int, error) { + return l.TipCap, nil +} + +func (l *L1ClientWrapper) EstimateGas(ctx context.Context, msg ethereum.CallMsg) (uint64, error) { + return 21000, nil +} + +func (l *L1ClientWrapper) SendTransaction(ctx context.Context, tx *types.Transaction) error { + if l.SendTxErr != nil { + return l.SendTxErr + } + l.transactions[tx.Hash()] = tx + if !l.MockReorg { + // Only create a receipt if we're not in reorg mode + l.receipts[tx.Hash()] = &types.Receipt{ + TxHash: tx.Hash(), + BlockNumber: l.Block.Number(), + Status: 1, // Success + } + } + return nil +} + +func (l *L1ClientWrapper) BalanceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (*big.Int, error) { + return big.NewInt(1e18), nil +} + +// CodeAt mocks the CodeAt method +func (l *L1ClientWrapper) CodeAt(ctx context.Context, contract common.Address, blockNumber *big.Int) ([]byte, error) { + if l.CodeAtErr != nil { + return nil, l.CodeAtErr + } + return l.CodeAtResult, nil +} + +// SimulateReorg simulates a reorg by clearing transaction receipts +func (l *L1ClientWrapper) SimulateReorg() { + l.receipts = make(map[common.Hash]*types.Receipt) +} + +func (l *L1ClientWrapper) AddTx(tx *types.Transaction) { + l.transactions[tx.Hash()] = tx +} +func (l *L1ClientWrapper) AddReceipt(receipt *types.Receipt) { + l.receipts[receipt.TxHash] = receipt +} + +// ClearReceipts removes all receipts to simulate reorg +func (l *L1ClientWrapper) ClearReceipts() { + l.receipts = make(map[common.Hash]*types.Receipt) +} diff --git a/tx-submitter/mock/l1mock.go b/tx-submitter/mock/l1mock.go deleted file mode 100644 index 10dccef62..000000000 --- a/tx-submitter/mock/l1mock.go +++ /dev/null @@ -1,87 +0,0 @@ -package mock - -import ( - "context" - "math/big" - - "github.com/morph-l2/go-ethereum" - "github.com/morph-l2/go-ethereum/common" - "github.com/morph-l2/go-ethereum/core/types" -) - -type L1ClientWrapper struct { - Block *types.Block - TipCap *big.Int -} - -func NewL1ClientWrapper() *L1ClientWrapper { - return &L1ClientWrapper{} -} - -func (c *L1ClientWrapper) BlockByNumber(ctx context.Context, number *big.Int) (*types.Block, error) { - return nil, nil -} - -func (c *L1ClientWrapper) BalanceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (*big.Int, error) { - return big.NewInt(0), nil -} - -func (c *L1ClientWrapper) TransactionByHash(ctx context.Context, hash common.Hash) (tx *types.Transaction, isPending bool, err error) { - return nil, false, nil -} - -func (c *L1ClientWrapper) NonceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (uint64, error) { - return 0, nil -} - -func (c *L1ClientWrapper) TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) { - return nil, nil -} - -func (c *L1ClientWrapper) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error) { - return c.Block.Header(), nil -} - -func (c *L1ClientWrapper) BlockNumber(ctx context.Context) (uint64, error) { - return c.Block.NumberU64(), nil -} - -func (c *L1ClientWrapper) SubscribeNewHead(ctx context.Context, ch chan<- *types.Header) (ethereum.Subscription, error) { - ch <- c.Block.Header() - return nil, nil -} - -func (c *L1ClientWrapper) SetBlock(block *types.Block) { - c.Block = block -} -func (c *L1ClientWrapper) CodeAt(ctx context.Context, contract common.Address, blockNumber *big.Int) ([]byte, error) { - return nil, nil -} - -func (c *L1ClientWrapper) CallContract(ctx context.Context, call ethereum.CallMsg, blockNumber *big.Int) ([]byte, error) { - return nil, nil -} -func (c *L1ClientWrapper) PendingCodeAt(ctx context.Context, account common.Address) ([]byte, error) { - return nil, nil -} -func (c *L1ClientWrapper) PendingNonceAt(ctx context.Context, account common.Address) (uint64, error) { - return 0, nil -} -func (c *L1ClientWrapper) SuggestGasPrice(ctx context.Context) (*big.Int, error) { - return big.NewInt(0), nil -} -func (c *L1ClientWrapper) SuggestGasTipCap(ctx context.Context) (*big.Int, error) { - return c.TipCap, nil -} -func (c *L1ClientWrapper) EstimateGas(ctx context.Context, call ethereum.CallMsg) (gas uint64, err error) { - return 0, nil -} -func (c *L1ClientWrapper) SendTransaction(ctx context.Context, tx *types.Transaction) error { - return nil -} -func (c *L1ClientWrapper) FilterLogs(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) { - return nil, nil -} -func (c *L1ClientWrapper) SubscribeFilterLogs(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { - return nil, nil -} diff --git a/tx-submitter/mock/l1staking.go b/tx-submitter/mock/l1staking.go new file mode 100644 index 000000000..08939b834 --- /dev/null +++ b/tx-submitter/mock/l1staking.go @@ -0,0 +1,62 @@ +package mock + +import ( + "math/big" + + "github.com/morph-l2/go-ethereum/accounts/abi/bind" + "github.com/morph-l2/go-ethereum/common" +) + +// MockL1Staking is a mock implementation of IL1Staking +type MockL1Staking struct { + activeStakers []common.Address +} + +// NewMockL1Staking creates a new mock L1Staking instance +func NewMockL1Staking() *MockL1Staking { + return &MockL1Staking{ + activeStakers: []common.Address{}, + } +} + +// IsStaker implements IL1Staking +func (m *MockL1Staking) IsStaker(opts *bind.CallOpts, addr common.Address) (bool, error) { + for _, staker := range m.activeStakers { + if staker == addr { + return true, nil + } + } + return false, nil +} + +// GetStakersBitmap implements IL1Staking +func (m *MockL1Staking) GetStakersBitmap(opts *bind.CallOpts, _stakers []common.Address) (*big.Int, error) { + bitmap := big.NewInt(0) + for i, staker := range _stakers { + for _, activeStaker := range m.activeStakers { + if staker == activeStaker { + bitmap.SetBit(bitmap, i, 1) + } + } + } + return bitmap, nil +} + +// GetActiveStakers implements IL1Staking +func (m *MockL1Staking) GetActiveStakers(opts *bind.CallOpts) ([]common.Address, error) { + return m.activeStakers, nil +} + +// GetStakers implements IL1Staking +func (m *MockL1Staking) GetStakers(opts *bind.CallOpts) ([255]common.Address, error) { + var result [255]common.Address + for i := 0; i < len(m.activeStakers) && i < 255; i++ { + result[i] = m.activeStakers[i] + } + return result, nil +} + +// SetActiveStakers sets the active stakers for testing +func (m *MockL1Staking) SetActiveStakers(stakers []common.Address) { + m.activeStakers = stakers +} diff --git a/tx-submitter/mock/l2client.go b/tx-submitter/mock/l2client.go new file mode 100644 index 000000000..4613b5b0b --- /dev/null +++ b/tx-submitter/mock/l2client.go @@ -0,0 +1,214 @@ +package mock + +import ( + "context" + "math/big" + "time" + + "github.com/morph-l2/go-ethereum" + "github.com/morph-l2/go-ethereum/common" + "github.com/morph-l2/go-ethereum/core/types" + "github.com/morph-l2/go-ethereum/eth" +) + +// L2ClientWrapper is a mock implementation of iface.L2Client +type L2ClientWrapper struct { + CallContractErr error + CallContractResult []byte + BlockByNumberErr error + Block *types.Block + Balance *big.Int + TipCap *big.Int + reorgDepth int64 + reorgCount int64 + sequencerSet []common.Address + BaseFee *big.Int +} + +func NewL2ClientWrapper() *L2ClientWrapper { + // Create mock CallContractResult for epoch update time + // Return a timestamp from 1 hour ago + timestamp := time.Now().Add(-1 * time.Hour).Unix() + result := make([]byte, 32) + big.NewInt(timestamp).FillBytes(result) + + // Create a mock sequencer set with two addresses + mockAddr1 := common.HexToAddress("0x1111111111111111111111111111111111111111") + mockAddr2 := common.HexToAddress("0x2222222222222222222222222222222222222222") + sequencerSet := []common.Address{mockAddr1, mockAddr2} + + return &L2ClientWrapper{ + TipCap: big.NewInt(1e9), + Balance: big.NewInt(1e18), + CallContractResult: result, + sequencerSet: sequencerSet, + BaseFee: big.NewInt(1e9), + } +} + +// CallContract implements the CallContract method +func (l *L2ClientWrapper) CallContract(ctx context.Context, msg ethereum.CallMsg, blockNumber *big.Int) ([]byte, error) { + if l.CallContractErr != nil { + return nil, l.CallContractErr + } + + // If calling the sequencer set method, return the mock sequencer set + if msg.Data != nil && len(msg.Data) >= 4 { + methodID := msg.Data[:4] + // Method ID for GetSequencerSet2() + if string(methodID) == "\x77\xd7\xdf\xfb" { + // Encode the sequencer set into bytes + result := make([]byte, 0) + // First 32 bytes for offset + offset := make([]byte, 32) + big.NewInt(32).FillBytes(offset) + result = append(result, offset...) + // Next 32 bytes for length + length := make([]byte, 32) + big.NewInt(int64(len(l.sequencerSet))).FillBytes(length) + result = append(result, length...) + // Then the addresses + for _, addr := range l.sequencerSet { + addrBytes := make([]byte, 32) + copy(addrBytes[12:], addr.Bytes()) + result = append(result, addrBytes...) + } + return result, nil + } + } + + return l.CallContractResult, nil +} + +// BlockByNumber implements the BlockByNumber method +func (l *L2ClientWrapper) BlockByNumber(ctx context.Context, number *big.Int) (*types.Block, error) { + if l.BlockByNumberErr != nil { + return nil, l.BlockByNumberErr + } + if l.Block != nil { + return l.Block, nil + } + return nil, ethereum.NotFound +} + +// HeaderByNumber implements the HeaderByNumber method +func (l *L2ClientWrapper) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error) { + if l.Block != nil { + return l.Block.Header(), nil + } + return nil, ethereum.NotFound +} + +// BlockNumber implements the BlockNumber method +func (l *L2ClientWrapper) BlockNumber(ctx context.Context) (uint64, error) { + if l.Block != nil { + return l.Block.NumberU64(), nil + } + return 0, nil +} + +// GetReorgDepth returns the mock reorg depth +func (l *L2ClientWrapper) GetReorgDepth() int64 { + return l.reorgDepth +} + +// GetReorgCount returns the mock reorg count +func (l *L2ClientWrapper) GetReorgCount() int64 { + return l.reorgCount +} + +// SetReorgDepth sets the mock reorg depth +func (l *L2ClientWrapper) SetReorgDepth(depth int64) { + l.reorgDepth = depth +} + +// SetReorgCount sets the mock reorg count +func (l *L2ClientWrapper) SetReorgCount(count int64) { + l.reorgCount = count +} + +// BalanceAt implements the BalanceAt method +func (l *L2ClientWrapper) BalanceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (*big.Int, error) { + if l.Balance != nil { + return l.Balance, nil + } + return big.NewInt(0), nil +} + +// TransactionByHash implements the TransactionByHash method +func (l *L2ClientWrapper) TransactionByHash(ctx context.Context, hash common.Hash) (*types.Transaction, bool, error) { + return nil, false, ethereum.NotFound +} + +// NonceAt implements the NonceAt method +func (l *L2ClientWrapper) NonceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (uint64, error) { + return 0, nil +} + +// TransactionReceipt implements the TransactionReceipt method +func (l *L2ClientWrapper) TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) { + return nil, ethereum.NotFound +} + +// CodeAt implements bind.ContractCaller +func (l *L2ClientWrapper) CodeAt(ctx context.Context, contract common.Address, blockNumber *big.Int) ([]byte, error) { + return nil, nil +} + +// PendingCodeAt implements bind.ContractCaller +func (l *L2ClientWrapper) PendingCodeAt(ctx context.Context, account common.Address) ([]byte, error) { + return nil, nil +} + +// PendingNonceAt implements bind.ContractTransactor +func (l *L2ClientWrapper) PendingNonceAt(ctx context.Context, account common.Address) (uint64, error) { + return 0, nil +} + +// SuggestGasPrice implements bind.ContractTransactor +func (l *L2ClientWrapper) SuggestGasPrice(ctx context.Context) (*big.Int, error) { + return big.NewInt(1e9), nil +} + +// EstimateGas implements bind.ContractTransactor +func (l *L2ClientWrapper) EstimateGas(ctx context.Context, call ethereum.CallMsg) (uint64, error) { + return 21000, nil +} + +// SendTransaction implements bind.ContractTransactor +func (l *L2ClientWrapper) SendTransaction(ctx context.Context, tx *types.Transaction) error { + return nil +} + +// FilterLogs implements bind.ContractFilterer +func (l *L2ClientWrapper) FilterLogs(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) { + return nil, nil +} + +// SubscribeFilterLogs implements bind.ContractFilterer +func (l *L2ClientWrapper) SubscribeFilterLogs(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { + return nil, nil +} + +// GetBlockTraceByNumber implements L2Client +func (l *L2ClientWrapper) GetBlockTraceByNumber(ctx context.Context, number *big.Int) (*types.BlockTrace, error) { + return nil, nil +} + +// GetRollupBatchByIndex implements L2Client +func (l *L2ClientWrapper) GetRollupBatchByIndex(ctx context.Context, batchIndex uint64) (*eth.RPCRollupBatch, error) { + return nil, nil +} + +// SuggestGasTipCap implements the SuggestGasTipCap method +func (l *L2ClientWrapper) SuggestGasTipCap(ctx context.Context) (*big.Int, error) { + if l.TipCap != nil { + return l.TipCap, nil + } + return big.NewInt(1e9), nil +} + +// GetSequencerSet2 implements IL2Sequencer +func (m *L2ClientWrapper) GetSequencerSet2() ([]common.Address, error) { + return m.sequencerSet, nil +} diff --git a/tx-submitter/mock/reorg_detector.go b/tx-submitter/mock/reorg_detector.go new file mode 100644 index 000000000..a2eea182f --- /dev/null +++ b/tx-submitter/mock/reorg_detector.go @@ -0,0 +1,49 @@ +package mock + +import ( + "context" + "sync" + + "morph-l2/tx-submitter/iface" +) + +// MockReorgDetector implements the IReorgDetector interface for testing +type MockReorgDetector struct { + mu sync.RWMutex + + // Mock return values + detectReorgReturn struct { + hasReorg bool + reorgDepth uint64 + err error + } +} + +// Ensure MockReorgDetector implements IReorgDetector +var _ iface.IReorgDetector = (*MockReorgDetector)(nil) + +// NewMockReorgDetector creates a new instance of MockReorgDetector +func NewMockReorgDetector() *MockReorgDetector { + m := &MockReorgDetector{} + // Initialize with default values + m.detectReorgReturn.hasReorg = false + m.detectReorgReturn.reorgDepth = 0 + m.detectReorgReturn.err = nil + return m +} + +// DetectReorg implements IReorgDetector.DetectReorg +func (m *MockReorgDetector) DetectReorg(ctx context.Context) (bool, uint64, error) { + m.mu.RLock() + defer m.mu.RUnlock() + return m.detectReorgReturn.hasReorg, m.detectReorgReturn.reorgDepth, m.detectReorgReturn.err +} + +// SetDetectReorgReturn sets the return values for the DetectReorg method +func (m *MockReorgDetector) SetDetectReorgReturn(hasReorg bool, reorgDepth uint64, err error) { + m.mu.Lock() + defer m.mu.Unlock() + m.detectReorgReturn.hasReorg = hasReorg + m.detectReorgReturn.reorgDepth = reorgDepth + m.detectReorgReturn.err = err +} diff --git a/tx-submitter/mock/rollup.go b/tx-submitter/mock/rollup.go new file mode 100644 index 000000000..6dd534ffd --- /dev/null +++ b/tx-submitter/mock/rollup.go @@ -0,0 +1,91 @@ +package mock + +import ( + "math/big" + + "github.com/morph-l2/go-ethereum/core/types" + + "github.com/morph-l2/go-ethereum/accounts/abi/bind" + + "morph-l2/bindings/bindings" +) + +// MockRollup implements the IRollup interface for testing +type MockRollup struct { + lastCommittedBatchIndex *big.Int + lastFinalizedBatchIndex *big.Int + insideChallengeWindow bool + batchExists bool + batchTx *types.Transaction + finalizeTx *types.Transaction +} + +// NewMockRollup creates a new instance of MockRollup +func NewMockRollup() *MockRollup { + return &MockRollup{ + lastCommittedBatchIndex: big.NewInt(0), + lastFinalizedBatchIndex: big.NewInt(0), + insideChallengeWindow: false, + batchExists: false, + } +} + +// LastCommittedBatchIndex implements IRollup +func (m *MockRollup) LastCommittedBatchIndex(opts *bind.CallOpts) (*big.Int, error) { + return m.lastCommittedBatchIndex, nil +} + +// CommitBatch implements IRollup +func (m *MockRollup) CommitBatch(opts *bind.TransactOpts, batchDataInput bindings.IRollupBatchDataInput, batchSignatureInput bindings.IRollupBatchSignatureInput) (*types.Transaction, error) { + return m.batchTx, nil +} + +// LastFinalizedBatchIndex implements IRollup +func (m *MockRollup) LastFinalizedBatchIndex(opts *bind.CallOpts) (*big.Int, error) { + return m.lastFinalizedBatchIndex, nil +} + +// FinalizeBatch implements IRollup +func (m *MockRollup) FinalizeBatch(opts *bind.TransactOpts, data []byte) (*types.Transaction, error) { + return m.finalizeTx, nil +} + +// BatchInsideChallengeWindow implements IRollup +func (m *MockRollup) BatchInsideChallengeWindow(opts *bind.CallOpts, batchIndex *big.Int) (bool, error) { + return m.insideChallengeWindow, nil +} + +// BatchExist implements IRollup +func (m *MockRollup) BatchExist(opts *bind.CallOpts, batchIndex *big.Int) (bool, error) { + return m.batchExists, nil +} + +// SetLastCommittedBatchIndex sets the mock value for LastCommittedBatchIndex +func (m *MockRollup) SetLastCommittedBatchIndex(index *big.Int) { + m.lastCommittedBatchIndex = index +} + +// SetLastFinalizedBatchIndex sets the mock value for LastFinalizedBatchIndex +func (m *MockRollup) SetLastFinalizedBatchIndex(index *big.Int) { + m.lastFinalizedBatchIndex = index +} + +// SetBatchInsideChallengeWindow sets the mock value for BatchInsideChallengeWindow +func (m *MockRollup) SetBatchInsideChallengeWindow(inside bool) { + m.insideChallengeWindow = inside +} + +// SetBatchExists sets the mock value for BatchExist +func (m *MockRollup) SetBatchExists(exists bool) { + m.batchExists = exists +} + +// SetFinalizeTx sets the mock value for FinalizeBatch transaction +func (m *MockRollup) SetFinalizeTx(tx *types.Transaction) { + m.finalizeTx = tx +} + +// SetBatchTx sets the mock value for CommitBatch transaction +func (m *MockRollup) SetBatchTx(tx *types.Transaction) { + m.batchTx = tx +} diff --git a/tx-submitter/services/batch_fetcher.go b/tx-submitter/services/batch_fetcher.go index f87b11fdc..7c658ab81 100644 --- a/tx-submitter/services/batch_fetcher.go +++ b/tx-submitter/services/batch_fetcher.go @@ -27,7 +27,8 @@ func (bf *BatchFetcher) GetRollupBatchByIndex(index uint64) (*eth.RPCRollupBatch lastErr = err continue } - if batch != nil { + // Validate that batch exists and has signatures before returning + if batch != nil && len(batch.Signatures) > 0 { return batch, nil } } diff --git a/tx-submitter/services/pendingtx.go b/tx-submitter/services/pendingtx.go index 53276fb7a..fc5ac18c2 100644 --- a/tx-submitter/services/pendingtx.go +++ b/tx-submitter/services/pendingtx.go @@ -4,230 +4,298 @@ import ( "fmt" "sort" "sync" + "sync/atomic" "time" "morph-l2/bindings/bindings" - journal "morph-l2/tx-submitter/localpool" + "morph-l2/tx-submitter/constants" + "morph-l2/tx-submitter/types" "morph-l2/tx-submitter/utils" "github.com/morph-l2/go-ethereum/accounts/abi" "github.com/morph-l2/go-ethereum/common" - "github.com/morph-l2/go-ethereum/core/types" + ethtypes "github.com/morph-l2/go-ethereum/core/types" "github.com/morph-l2/go-ethereum/log" ) -type TxInfo struct { - sendTime uint64 - tx *types.Transaction +const ( + // MethodCommitBatch is the method name for committing a batch + MethodCommitBatch = "commitBatch" + // MethodFinalizeBatch is the method name for finalizing a batch + MethodFinalizeBatch = "finalizeBatch" +) - queryTimes uint64 +// Journal defines the interface for transaction journaling +type Journal interface { + Init() error + AppendTx(tx *ethtypes.Transaction) error + ParseAllTxs() ([]*ethtypes.Transaction, error) + Clean() error } +// PendingTxs represents the pending transactions pool type PendingTxs struct { - mu sync.Mutex + mu sync.RWMutex - txinfos map[common.Hash]TxInfo + txinfos map[common.Hash]*types.TxRecord pnonce uint64 // pending nonce - failedIndex *uint64 - pindex uint64 // pending batch index + pindex uint64 // pending batch index + pfinalize uint64 - pfinalize uint64 commitBatchId []byte finalizeBatchId []byte - // journal - journal *journal.Journal + journal Journal } -func NewPendingTxs(cid []byte, fid []byte, journal *journal.Journal) *PendingTxs { - return &PendingTxs{ - txinfos: make(map[common.Hash]TxInfo), - commitBatchId: cid, - finalizeBatchId: fid, +// NewPendingTxs creates a new PendingTxs instance +func NewPendingTxs(commitBatchMethodId, finalizeBatchMethodId []byte, journal Journal) *PendingTxs { + pt := &PendingTxs{ + txinfos: make(map[common.Hash]*types.TxRecord), journal: journal, + commitBatchId: commitBatchMethodId, + finalizeBatchId: finalizeBatchMethodId, } + return pt } -func (pt *PendingTxs) Store(tx *types.Transaction) error { - err := pt.journal.AppendTx(tx) - if err != nil { - return fmt.Errorf("failed to store tx: %v", err) +// Store persists a transaction to the journal +func (pt *PendingTxs) Store(tx *ethtypes.Transaction) error { + if tx == nil { + return fmt.Errorf("cannot store nil transaction") + } + if err := pt.journal.AppendTx(tx); err != nil { + return fmt.Errorf("failed to store tx: %w", err) } return nil } +// dump persists all transactions to the journal func (pt *PendingTxs) dump() error { - err := pt.journal.Clean() - if err != nil { - return fmt.Errorf("failed to dump tx: %v", err) + if err := pt.journal.Clean(); err != nil { + return fmt.Errorf("failed to clean journal: %w", err) } + txinfos := pt.getAll() for _, info := range txinfos { - err := pt.journal.AppendTx(info.tx) - if err != nil { - return fmt.Errorf("failed to store tx: %v", err) + if err := pt.journal.AppendTx(info.Tx); err != nil { + return fmt.Errorf("failed to store tx: %w", err) } } return nil } -func (pt *PendingTxs) Add(tx *types.Transaction) { +// Add adds a transaction to the pending pool +func (pt *PendingTxs) Add(tx *ethtypes.Transaction) error { + if tx == nil { + return fmt.Errorf("cannot add nil transaction") + } + pt.mu.Lock() defer pt.mu.Unlock() - pt.txinfos[tx.Hash()] = TxInfo{ - sendTime: uint64(time.Now().Unix()), - tx: tx, + + hash := tx.Hash() + pt.txinfos[hash] = &types.TxRecord{ + Tx: tx, + SendTime: uint64(time.Now().Unix()), + QueryTimes: 0, + Confirmed: false, } - err := pt.journal.AppendTx(tx) - if err != nil { - log.Error("failed to append pending txs", "err", err) + if err := pt.journal.AppendTx(tx); err != nil { + delete(pt.txinfos, hash) + return fmt.Errorf("failed to append tx to journal: %w", err) } + + return nil } -func (pt *PendingTxs) Remove(txHash common.Hash) { +// Remove removes a transaction from the pending pool +func (pt *PendingTxs) Remove(txHash common.Hash) error { pt.mu.Lock() defer pt.mu.Unlock() - delete(pt.txinfos, txHash) - err := pt.dump() - if err != nil { - log.Error("failed to dump pending txs", "err", err) + if _, exists := pt.txinfos[txHash]; !exists { + return nil // tx already removed } -} - -// Recover from mempool -func (pt *PendingTxs) Recover(txs []*types.Transaction, a *abi.ABI) { - // restore state from mempool - if len(txs) > 0 { - var pbindex, pfindex uint64 - - for _, tx := range txs { - pt.Add(tx) - - method := utils.ParseMethod(tx, a) - if method == "commitBatch" { - - index := utils.ParseParentBatchIndex(tx.Data()) - if index > pbindex { - pbindex = index - } - } else if method == "finalizeBatch" { - findex := utils.ParseFBatchIndex(tx.Data()) - if findex > pfindex { - pfindex = findex - } - } - } - - pt.SetPindex(pbindex) - pt.SetPFinalize(pfindex) - pt.SetNonce(txs[len(txs)-1].Nonce()) - log.Info("Recover from mempool", - "tx_count", len(txs), - "max_batch_index", pbindex, - "max_finalize_index", pfindex, - "max_nonce", pt.pnonce, - ) - } else { - log.Info("journal tx is empty") - } + delete(pt.txinfos, txHash) + return pt.dump() } -func (pt *PendingTxs) GetAll() []TxInfo { - pt.mu.Lock() - defer pt.mu.Unlock() +// GetAll returns all pending transactions in nonce order +func (pt *PendingTxs) GetAll() []*types.TxRecord { + pt.mu.RLock() + defer pt.mu.RUnlock() return pt.getAll() } -func (pt *PendingTxs) getAll() []TxInfo { - // copy txs and return - txs := make([]TxInfo, 0, len(pt.txinfos)) + +func (pt *PendingTxs) getAll() []*types.TxRecord { + txs := make([]*types.TxRecord, 0, len(pt.txinfos)) for _, tx := range pt.txinfos { txs = append(txs, tx) } - // sort by nonce sort.SliceStable(txs, func(i, j int) bool { - return txs[i].tx.Nonce() < txs[j].tx.Nonce() + return txs[i].Tx.Nonce() < txs[j].Tx.Nonce() }) return txs } -func (pt *PendingTxs) Get(txHash common.Hash) (TxInfo, bool) { - pt.mu.Lock() - defer pt.mu.Unlock() - tx, ok := pt.txinfos[txHash] - return tx, ok +// GetTxRecord returns a transaction record by its hash +func (pt *PendingTxs) GetTxRecord(hash common.Hash) *types.TxRecord { + pt.mu.RLock() + defer pt.mu.RUnlock() + return pt.txinfos[hash] } +// IncQueryTimes increments the query times for a transaction +// only for missing tx func (pt *PendingTxs) IncQueryTimes(txHash common.Hash) { pt.mu.Lock() defer pt.mu.Unlock() - pt.txinfos[txHash] = TxInfo{tx: pt.txinfos[txHash].tx, queryTimes: pt.txinfos[txHash].queryTimes + 1, sendTime: pt.txinfos[txHash].sendTime} + if tx, ok := pt.txinfos[txHash]; ok { + tx.QueryTimes++ + } } -func (pt *PendingTxs) TrySetFailedBatchIndex(index uint64) { +// MarkConfirmed marks a transaction as confirmed +func (pt *PendingTxs) MarkConfirmed(hash common.Hash) { pt.mu.Lock() defer pt.mu.Unlock() - - // failed index must be less than pindex - if index > pt.pindex { - return + if record, exists := pt.txinfos[hash]; exists { + record.Confirmed = true } - - pt.failedIndex = &index } -func (pt *PendingTxs) SetPindex(index uint64) { + +// ClearConfirmedTxs marks all confirmed transactions as unconfirmed +func (pt *PendingTxs) ClearConfirmedTxs() { pt.mu.Lock() defer pt.mu.Unlock() - pt.pindex = index + for _, record := range pt.txinfos { + if record.Confirmed { + log.Info("Marking transaction as unconfirmed due to reorg", + "hash", record.Tx.Hash().String(), + "nonce", record.Tx.Nonce()) + record.Confirmed = false + } + } } +// SetNonce sets the pending nonce func (pt *PendingTxs) SetNonce(nonce uint64) { - pt.mu.Lock() - defer pt.mu.Unlock() - pt.pnonce = nonce + atomic.StoreUint64(&pt.pnonce, nonce) } -func (pt *PendingTxs) SetPFinalize(finalize uint64) { - pt.mu.Lock() - defer pt.mu.Unlock() - pt.pfinalize = finalize +// GetNonce gets the current pending nonce +func (pt *PendingTxs) GetNonce() uint64 { + return atomic.LoadUint64(&pt.pnonce) } -func (pt *PendingTxs) RemoveRollupRestriction() { - pt.mu.Lock() - defer pt.mu.Unlock() +// SetPindex sets the pending index +func (pt *PendingTxs) SetPindex(index uint64) { + atomic.StoreUint64(&pt.pindex, index) +} - pt.failedIndex = nil +// GetPindex gets the current pending index +func (pt *PendingTxs) GetPindex() uint64 { + return atomic.LoadUint64(&pt.pindex) } -func (pt *PendingTxs) HaveFailed() bool { - return pt.failedIndex != nil +// SetPFinalize sets the pending finalize index +func (pt *PendingTxs) SetPFinalize(finalize uint64) { + atomic.StoreUint64(&pt.pfinalize, finalize) } -func (pt *PendingTxs) ExistedIndex(index uint64) bool { +// GetPFinalize gets the current pending finalize index +func (pt *PendingTxs) GetPFinalize() uint64 { + return atomic.LoadUint64(&pt.pfinalize) +} - txs := pt.GetAll() +// ExistedIndex checks if a batch index exists +func (pt *PendingTxs) ExistedIndex(index uint64) bool { + txs := pt.GetAll() // already has RLock + abi, err := bindings.RollupMetaData.GetAbi() + if err != nil { + log.Error("Failed to get ABI", "err", err) + return false + } - abi, _ := bindings.RollupMetaData.GetAbi() - pt.mu.Lock() - defer pt.mu.Unlock() for i := len(txs) - 1; i >= 0; i-- { - tx := txs[i].tx - if utils.ParseMethod(tx, abi) == "commitBatch" { + tx := txs[i].Tx + if utils.ParseMethod(tx, abi) == constants.MethodCommitBatch { pindex := utils.ParseParentBatchIndex(tx.Data()) + 1 if index == pindex { return true } + } + } + return false +} + +// Recover recovers transactions from the journal +func (pt *PendingTxs) Recover(txs []*ethtypes.Transaction, abi *abi.ABI) error { + if len(txs) == 0 { + return nil + } + log.Info("Starting to recover transactions", "count", len(txs)) + + var maxCommitBatchIndex, maxFinalizeBatchIndex uint64 + + for _, tx := range txs { + // Get method name + method := utils.ParseMethod(tx, abi) + + // Get batch index based on method + var batchIndex uint64 + if method == constants.MethodCommitBatch { + batchIndex = utils.ParseParentBatchIndex(tx.Data()) + 1 + if batchIndex > maxCommitBatchIndex { + maxCommitBatchIndex = batchIndex + } + } else if method == constants.MethodFinalizeBatch { + batchIndex = utils.ParseFBatchIndex(tx.Data()) + if batchIndex > maxFinalizeBatchIndex { + maxFinalizeBatchIndex = batchIndex + } } + // Log transaction details + log.Info("Recovering transaction", + "hash", tx.Hash().String(), + "method", method, + "batch_index", batchIndex, + "nonce", tx.Nonce(), + "gas", tx.Gas(), + "gas_tip_cap", tx.GasTipCap().String(), + "gas_fee_cap", tx.GasFeeCap().String(), + "blob_gas", tx.BlobGas(), + "blob_fee_cap", tx.BlobGasFeeCap(), + "blob_hashes_count", len(tx.BlobHashes()), + "value", tx.Value().String(), + "size", tx.Size(), + "type", tx.Type(), + ) + + if err := pt.Add(tx); err != nil { + return fmt.Errorf("failed to add tx during recovery: %w", err) + } } - return false + pt.SetPindex(maxCommitBatchIndex) + pt.SetPFinalize(maxFinalizeBatchIndex) + pt.SetNonce(txs[len(txs)-1].Nonce()) + + log.Info("Recovered from mempool", + "tx_count", len(txs), + "max_batch_index", maxCommitBatchIndex, + "max_finalize_index", maxFinalizeBatchIndex, + "max_nonce", pt.GetNonce(), + ) + + return nil } diff --git a/tx-submitter/services/pendingtx_test.go b/tx-submitter/services/pendingtx_test.go deleted file mode 100644 index 71cb9ab76..000000000 --- a/tx-submitter/services/pendingtx_test.go +++ /dev/null @@ -1,31 +0,0 @@ -package services - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func TestSetFailedStatus(t *testing.T) { - // index 2 failed -> set failed index 2 success - pt := NewPendingTxs(nil, nil, nil) - pt.SetPindex(2) - require.Nil(t, pt.failedIndex) - pt.TrySetFailedBatchIndex(2) - require.NotNil(t, pt.failedIndex) - require.EqualValues(t, 2, *pt.failedIndex) - - // failed index =2 - // new failed index = 3 - // set failed index failed - pt = NewPendingTxs(nil, nil, nil) - failedIndex := uint64(2) - pt.failedIndex = &failedIndex - pt.TrySetFailedBatchIndex(3) - require.EqualValues(t, 2, *pt.failedIndex) - - // set failed index without pindex -> failed - pt = NewPendingTxs(nil, nil, nil) - pt.TrySetFailedBatchIndex(2) - require.Nil(t, pt.failedIndex) -} diff --git a/tx-submitter/services/reorg.go b/tx-submitter/services/reorg.go new file mode 100644 index 000000000..a030b8508 --- /dev/null +++ b/tx-submitter/services/reorg.go @@ -0,0 +1,121 @@ +package services + +import ( + "context" + "fmt" + "math/big" + "sync" + + "morph-l2/tx-submitter/iface" + + "github.com/morph-l2/go-ethereum/common" + "github.com/morph-l2/go-ethereum/log" +) + +// ReorgDetector tracks chain reorganizations +type ReorgDetector struct { + mu sync.RWMutex + + // Track the last N block hashes and numbers + blockHistory []blockInfo + maxHistory int + + l1Client iface.Client + metrics iface.IMetrics +} + +type blockInfo struct { + number uint64 + hash common.Hash +} + +func NewReorgDetector(l1Client iface.Client, metrics iface.IMetrics) *ReorgDetector { + return &ReorgDetector{ + blockHistory: make([]blockInfo, 0), + maxHistory: 5, // Track last 50 blocks + l1Client: l1Client, + metrics: metrics, + } +} + +// DetectReorg checks if a reorg has occurred by comparing current chain with tracked history +func (r *ReorgDetector) DetectReorg(ctx context.Context) (bool, uint64, error) { + r.mu.Lock() + defer r.mu.Unlock() + + if len(r.blockHistory) == 0 { + // First run, initialize history + return false, 0, r.updateHistory(ctx) + } + + // Get latest block + latestBlock, err := r.l1Client.BlockByNumber(ctx, nil) + if err != nil { + return false, 0, fmt.Errorf("failed to get latest block: %w", err) + } + + // Check each block in history to find reorg point + reorgDepth := uint64(0) + for i, info := range r.blockHistory { + block, err := r.l1Client.BlockByNumber(ctx, new(big.Int).SetUint64(info.number)) + if err != nil { + return false, 0, fmt.Errorf("failed to get block %d: %w", info.number, err) + } + + if block.Hash() != info.hash { + // Reorg detected + reorgDepth = latestBlock.NumberU64() - info.number + log.Warn("Chain reorganization detected", + "depth", reorgDepth, + "old_hash", info.hash, + "new_hash", block.Hash(), + "block_number", info.number) + + // Update metrics + r.metrics.IncReorgs() + r.metrics.SetReorgDepth(float64(reorgDepth)) + + // Truncate history before reorg point and rebuild + r.blockHistory = r.blockHistory[:i] + err = r.updateHistory(ctx) + return true, reorgDepth, err + } + } + + // No reorg, just update history + return false, 0, r.updateHistory(ctx) +} + +// updateHistory updates the tracked block history +func (r *ReorgDetector) updateHistory(ctx context.Context) error { + latest, err := r.l1Client.BlockByNumber(ctx, nil) + if err != nil { + return fmt.Errorf("failed to get latest block: %w", err) + } + + // Add new blocks to history + currentNum := latest.NumberU64() + startNum := currentNum + if len(r.blockHistory) > 0 { + startNum = r.blockHistory[len(r.blockHistory)-1].number + 1 + } + + for num := startNum; num <= currentNum; num++ { + block, err := r.l1Client.BlockByNumber(ctx, new(big.Int).SetUint64(num)) + if err != nil { + return fmt.Errorf("failed to get block %d: %w", num, err) + } + + r.blockHistory = append(r.blockHistory, blockInfo{ + number: num, + hash: block.Hash(), + }) + } + + // Trim history if too long + if len(r.blockHistory) > r.maxHistory { + r.blockHistory = r.blockHistory[len(r.blockHistory)-r.maxHistory:] + } + + return nil +} diff --git a/tx-submitter/services/rollup.go b/tx-submitter/services/rollup.go index 6bae3d9ef..754c4182c 100644 --- a/tx-submitter/services/rollup.go +++ b/tx-submitter/services/rollup.go @@ -20,6 +20,7 @@ import ( ethtypes "github.com/morph-l2/go-ethereum/core/types" "github.com/morph-l2/go-ethereum/crypto" "github.com/morph-l2/go-ethereum/crypto/bls12381" + "github.com/morph-l2/go-ethereum/crypto/kzg4844" "github.com/morph-l2/go-ethereum/eth" "github.com/morph-l2/go-ethereum/log" "github.com/morph-l2/go-ethereum/params" @@ -27,6 +28,7 @@ import ( "github.com/tendermint/tendermint/blssignatures" "morph-l2/bindings/bindings" + "morph-l2/tx-submitter/constants" "morph-l2/tx-submitter/db" "morph-l2/tx-submitter/event" "morph-l2/tx-submitter/iface" @@ -79,6 +81,16 @@ type Rollup struct { batchCache *types.BatchCache bm *l1checker.BlockMonitor eventInfoStorage *event.EventInfoStorage + reorgDetector iface.IReorgDetector + // Cache for current submitter info + submitterCache struct { + submitter common.Address + submitterIdx uint64 + lastUpdateTime time.Time + mu sync.RWMutex + } + // Cache refresh interval + submitterCacheTimeout time.Duration } func NewRollup( @@ -100,29 +112,32 @@ func NewRollup( bm *l1checker.BlockMonitor, eventInfoStorage *event.EventInfoStorage, ) *Rollup { - // Create batch fetcher batchFetcher := NewBatchFetcher(l2Clients) - return &Rollup{ - ctx: ctx, - metrics: metrics, - l1RpcClient: l1RpcClient, - L1Client: l1, - Rollup: rollup, - Staking: staking, - L2Clients: l2Clients, - privKey: priKey, - chainId: chainId, - rollupAddr: rollupAddr, - abi: abi, - rotator: rotator, - cfg: cfg, - signer: ethtypes.LatestSignerForChainID(chainId), - externalRsaPriv: rsaPriv, - batchCache: types.NewBatchCache(batchFetcher), - ldb: ldb, - bm: bm, - eventInfoStorage: eventInfoStorage, - } + reorgDetector := NewReorgDetector(l1, metrics) + r := &Rollup{ + ctx: ctx, + metrics: metrics, + l1RpcClient: l1RpcClient, + L1Client: l1, + Rollup: rollup, + Staking: staking, + L2Clients: l2Clients, + privKey: priKey, + chainId: chainId, + rollupAddr: rollupAddr, + abi: abi, + rotator: rotator, + cfg: cfg, + signer: ethtypes.LatestSignerForChainID(chainId), + externalRsaPriv: rsaPriv, + batchCache: types.NewBatchCache(batchFetcher), + ldb: ldb, + bm: bm, + eventInfoStorage: eventInfoStorage, + reorgDetector: reorgDetector, + submitterCacheTimeout: 5 * time.Second, // Cache submitter info for 5 seconds + } + return r } func (r *Rollup) Start() error { @@ -139,12 +154,13 @@ func (r *Rollup) Start() error { log.Crit("journal file init failed", "err", err) } // pendingtxs - r.pendingTxs = NewPendingTxs(r.abi.Methods["commitBatch"].ID, r.abi.Methods["finalizeBatch"].ID, jn) + r.pendingTxs = NewPendingTxs(r.abi.Methods[constants.MethodCommitBatch].ID, r.abi.Methods[constants.MethodFinalizeBatch].ID, jn) txs, err := jn.ParseAllTxs() if err != nil { - log.Error("parse l1 mempool error", "error", err) - } else { - r.pendingTxs.Recover(txs, r.abi) + log.Crit("parse l1 mempool error", "error", err) + } + if err := r.pendingTxs.Recover(txs, r.abi); err != nil { + log.Crit("failed to recover pending transactions", "error", err) } // init fee metrics sum @@ -225,177 +241,531 @@ func (r *Rollup) Start() error { } func (r *Rollup) ProcessTx() error { + // Check for reorgs first with exponential backoff retry + _, _, err := r.detectReorgWithRetry() + if err != nil { + log.Warn("Failed to check for reorgs", "error", err) + } - // case 1: in mempool - // -> check timeout - // case 2: no in mempool - // case 2.1: discarded - // case 2.2: tx included -> success - // case 2.3: tx included -> failed - // -> reset index to failed index - - // get all local txs + // Get all local transactions txRecords := r.pendingTxs.GetAll() if len(txRecords) == 0 { return nil } - // query tx status + // Check if this submitter should process transactions + if err := r.checkSubmitterTurn(); err != nil { + if err == errNotMyTurn { + // Get current submitter index for logging + activeSubmitter, activeIndex, _ := r.rotator.CurrentSubmitter(r.L2Clients, r.Staking) + + // Calculate rotation timing information + past := (time.Now().Unix() - r.rotator.startTime.Int64()) % r.rotator.epoch.Int64() + start := time.Now().Unix() - past + end := start + r.rotator.epoch.Int64() + timeLeft := end - time.Now().Unix() + + // Format timestamps for human readability + endTimeFormatted := utils.FormatTime(big.NewInt(end)) + timeLeftFormatted := fmt.Sprintf("%dm%ds", timeLeft/60, timeLeft%60) + + log.Info("Awaiting turn for transaction processing", + "current_submitter", activeSubmitter.Hex(), + "submitter_index", activeIndex, + "total_submitters", len(r.rotator.GetSubmitterSet()), + "next_rotation", endTimeFormatted, + "time_remaining", timeLeftFormatted) + return nil + } + return err + } + + // Process each transaction for _, txRecord := range txRecords { + if err := r.processSingleTx(txRecord); err != nil { + log.Error("Transaction processing failed", + "tx_hash", txRecord.Tx.Hash().String(), + "error", err) + return fmt.Errorf("transaction processing failed: %w", err) + } + } + + return nil +} + +// Helper function to detect reorgs with retry +func (r *Rollup) detectReorgWithRetry() (bool, uint64, error) { + var lastErr error + for i := range 3 { // Try up to 3 times + hasReorg, depth, err := r.reorgDetector.DetectReorg(r.ctx) + if err == nil { + return hasReorg, depth, nil + } + lastErr = err + time.Sleep(time.Duration(i+1) * time.Second) // Exponential backoff + } + return false, 0, lastErr +} + +var errNotMyTurn = errors.New("not my turn") + +func (r *Rollup) checkSubmitterTurn() error { + if r.cfg.PriorityRollup { + return nil + } + activeSubmitter, submitterIndex, err := r.getCachedSubmitter() + if err != nil { + return fmt.Errorf("rollup: get current submitter err, %w", err) + } + + myAddress := r.WalletAddr().Hex() + activeAddress := activeSubmitter.Hex() + isMyTurn := activeAddress == myAddress + + // Calculate rotation timing information + past := (time.Now().Unix() - r.rotator.startTime.Int64()) % r.rotator.epoch.Int64() + start := time.Now().Unix() - past + end := start + r.rotator.epoch.Int64() + timeLeft := end - time.Now().Unix() + + // Format timestamps for human readability + startTimeFormatted := utils.FormatTime(big.NewInt(start)) + endTimeFormatted := utils.FormatTime(big.NewInt(end)) + timeLeftFormatted := fmt.Sprintf("%dm%ds", timeLeft/60, timeLeft%60) + + if !isMyTurn { + log.Debug("Not active submitter", + "active_submitter", activeAddress, + "index", submitterIndex, + "my_address", myAddress, + "total_submitters", len(r.rotator.GetSubmitterSet()), + "rotation_end", endTimeFormatted, + "time_remaining", timeLeftFormatted) + return errNotMyTurn + } + + log.Info("Active submitter status", + "index", submitterIndex, + "total_submitters", len(r.rotator.GetSubmitterSet()), + "rotation_start", startTimeFormatted, + "rotation_end", endTimeFormatted, + "time_remaining", timeLeftFormatted) + return nil +} + +// Handle chain reorganization +func (r *Rollup) handleReorg(depth uint64) error { + // Update metrics + r.metrics.SetReorgDepth(float64(depth)) + r.metrics.IncReorgs() + return nil +} + +// Process a single transaction +func (r *Rollup) processSingleTx(txRecord *types.TxRecord) error { + rtx := txRecord.Tx + method := utils.ParseMethod(rtx, r.abi) + + log.Info("Processing transaction", + "hash", rtx.Hash().String(), + "nonce", rtx.Nonce(), + "method", method, + "query_times", txRecord.QueryTimes) + + // Check transaction status + status, err := r.getTxStatus(rtx) + if err != nil { + return fmt.Errorf("get tx status error: %w", err) + } - rtx := txRecord.tx - method := utils.ParseMethod(rtx, r.abi) - log.Info("process tx", "hash", rtx.Hash().String(), "nonce", rtx.Nonce(), "method", method) - // query tx - _, ispending, err := r.L1Client.TransactionByHash(context.Background(), txRecord.tx.Hash()) + switch status.state { + case txStatusPending: + return r.handlePendingTx(txRecord, rtx, method) + case txStatusConfirmed: + // Get current block number + currentBlock, err := r.L1Client.BlockNumber(context.Background()) if err != nil { - if !utils.ErrStringMatch(err, ethereum.NotFound) { - return fmt.Errorf("query tx error:%w, tx: %s, nonce: %d", err, rtx.Hash().String(), rtx.Nonce()) + return fmt.Errorf("get current block number error: %v", err) + } + + // Check confirmation depth + if status.receipt != nil && currentBlock >= status.receipt.BlockNumber.Uint64()+6 { + // Update fee metrics before removing the transaction + if err := r.updateFeeMetrics(rtx, status.receipt, method); err != nil { + log.Error("Failed to update fee metrics", + "error", err, + "tx_hash", rtx.Hash().String()) } - r.pendingTxs.IncQueryTimes(rtx.Hash()) // not found in mempool, increase query times - } else { - log.Info("query tx success", "hash", rtx.Hash().Hex(), "pending", ispending) + + // Transaction has 6 confirmations, remove it from tracking + log.Info("Removing confirmed tx from tracking after 6 blocks", + "tx_hash", rtx.Hash().String(), + "block_number", status.receipt.BlockNumber.Uint64(), + "current_block", currentBlock, + "gas_used", status.receipt.GasUsed, + "effective_gas_price", status.receipt.EffectiveGasPrice, + "method", method) + if err := r.pendingTxs.Remove(rtx.Hash()); err != nil { + log.Error("failed to remove transaction", "hash", rtx.Hash().String(), "error", err) + } + r.metrics.IncTxConfirmed(method) + return nil } + return r.handleConfirmedTx(txRecord, rtx, method) + case txStatusMissing: + return r.handleMissingTx(txRecord, rtx, method) + default: + return fmt.Errorf("unknown transaction status: %v", status.state) + } +} - // exist in mempool - if ispending { - if txRecord.sendTime+uint64(r.cfg.TxTimeout.Seconds()) < uint64(time.Now().Unix()) { - log.Info("tx timeout", "tx", rtx.Hash().Hex(), "nonce", rtx.Nonce(), "method", method) - newtx, err := r.ReSubmitTx(false, rtx) - if err != nil { - log.Error("resubmit tx", "error", err, "tx", rtx.Hash().Hex(), "nonce", rtx.Nonce()) - return fmt.Errorf("resubmit tx error:%w", err) - } else { - log.Info("replace success", "old_tx", rtx.Hash().Hex(), "new_tx", newtx.Hash().String(), "nonce", rtx.Nonce()) - r.pendingTxs.Remove(rtx.Hash()) - r.pendingTxs.Add(newtx) - } +// updateFeeMetrics updates all fee-related metrics for a confirmed transaction +func (r *Rollup) updateFeeMetrics(tx *ethtypes.Transaction, receipt *ethtypes.Receipt, method string) error { + txFeeEth := calcFee(tx, receipt) + txFeeFloat, _ := txFeeEth.Float64() + + // Update metrics based on transaction type + if method == constants.MethodCommitBatch { + r.rollupFeeSum += txFeeFloat + r.metrics.RollupCostSum.Add(txFeeFloat) + r.metrics.RollupCost.Set(txFeeFloat) + // Update leveldb + err := r.ldb.PutFloat(rollupSumKey, r.rollupFeeSum) + if err != nil { + return fmt.Errorf("failed to update rollup fee sum in leveldb: %w", err) + } + + // Calculate and update L1 fee metrics + batchIndex := utils.ParseParentBatchIndex(tx.Data()) + 1 + batch, ok := r.batchCache.Get(batchIndex) + if ok { + collectedL1Fee := new(big.Float).Quo(new(big.Float).SetInt(batch.CollectedL1Fee.ToInt()), new(big.Float).SetInt(big.NewInt(params.Ether))) + collectedL1FeeFloat, _ := collectedL1Fee.Float64() + + // Update metrics + r.collectedL1FeeSum += collectedL1FeeFloat + r.metrics.CollectedL1FeeSum.Add(collectedL1FeeFloat) + + // Update leveldb + err := r.ldb.PutFloat(collectedL1FeeSumKey, r.collectedL1FeeSum) + if err != nil { + log.Error("failed to update collected L1 fee sum in leveldb", "error", err) } - } else { // not in mempool - receipt, err := r.L1Client.TransactionReceipt(context.Background(), rtx.Hash()) + + log.Info("Updated L1 fee metrics", + "batch_index", batchIndex, + "l1_fee_eth", collectedL1FeeFloat) + } else { + log.Warn("batch not found in cache", "batch_index", batchIndex) + } + } else if method == constants.MethodFinalizeBatch { + r.finalizeFeeSum += txFeeFloat + r.metrics.FinalizeCostSum.Add(txFeeFloat) + r.metrics.FinalizeCost.Set(txFeeFloat) + // Update leveldb + err := r.ldb.PutFloat(finalizeSumKey, r.finalizeFeeSum) + if err != nil { + return fmt.Errorf("failed to update finalize fee sum in leveldb: %w", err) + } + } + + return nil +} + +type txStatus struct { + state int + receipt *ethtypes.Receipt +} + +const ( + txStatusPending = iota + txStatusConfirmed + txStatusMissing +) + +func (r *Rollup) getTxStatus(tx *ethtypes.Transaction) (*txStatus, error) { + receipt, err := r.L1Client.TransactionReceipt(context.Background(), tx.Hash()) + if err == nil { + return &txStatus{state: txStatusConfirmed, receipt: receipt}, nil + } + + if !utils.ErrStringMatch(err, ethereum.NotFound) { + return nil, fmt.Errorf("query tx receipt error: %w", err) + } + + // Check mempool + _, isPending, err := r.L1Client.TransactionByHash(context.Background(), tx.Hash()) + if err != nil { + if !utils.ErrStringMatch(err, ethereum.NotFound) { + return nil, fmt.Errorf("query tx error: %w", err) + } + return &txStatus{state: txStatusMissing}, nil + } + + if isPending { + return &txStatus{state: txStatusPending}, nil + } + + return &txStatus{state: txStatusMissing}, nil +} + +func (r *Rollup) handlePendingTx(txRecord *types.TxRecord, tx *ethtypes.Transaction, method string) error { + // Check for timeout + if txRecord.SendTime+uint64(r.cfg.TxTimeout.Seconds()) < uint64(time.Now().Unix()) { + log.Info("Transaction timed out", + "tx", tx.Hash().Hex(), + "nonce", tx.Nonce(), + "method", method) + + // Try to replace the transaction with higher gas price + return r.replaceTimedOutTx(tx) + } + + // Check if transaction might fail + if method == constants.MethodCommitBatch { + batchIndex := utils.ParseParentBatchIndex(tx.Data()) + 1 + lastCommitted, err := r.Rollup.LastCommittedBatchIndex(nil) + if err != nil { + return fmt.Errorf("get last committed batch index error: %w", err) + } + + if batchIndex <= lastCommitted.Uint64() { + // This batch is already committed by another submitter + log.Info("Batch already committed by another submitter, trying to cancel transaction", + "batch_index", batchIndex, + "last_committed", lastCommitted.Uint64(), + "tx_hash", tx.Hash().String()) + + // Try to cancel the transaction since it will fail + cancelTx, err := r.CancelTx(tx) if err != nil { - log.Error("query tx receipt error", "tx", rtx.Hash().String(), "nonce", rtx.Nonce(), "error", err) - if !utils.ErrStringMatch(err, ethereum.NotFound) { - return err - } + log.Error("Failed to cancel commit batch transaction", + "error", err, + "tx", tx.Hash().Hex(), + "nonce", tx.Nonce(), + "gas", tx.Gas(), + "gas_tip_cap", tx.GasTipCap().String(), + "gas_fee_cap", tx.GasFeeCap().String(), + "blob_fee_cap", tx.BlobGasFeeCap().String(), + "batch_index", batchIndex, + "last_committed", lastCommitted.Uint64()) + return fmt.Errorf("cancel commit batch transaction failed: %w", err) + } - // sr.pendingTxs.txinfos - if txRecord.queryTimes >= 5 { - log.Warn("tx discarded", - "hash", rtx.Hash().String(), - "nonce", rtx.Nonce(), - "query_times", txRecord.queryTimes, - ) - replacedtx, err := r.ReSubmitTx(true, rtx) - if err != nil { - log.Error("resend discarded tx", "old_tx", rtx.Hash().String(), "nonce", rtx.Nonce(), "error", err) - if utils.ErrStringMatch(err, core.ErrNonceTooLow) { - log.Info("discarded tx removed", - "hash", rtx.Hash().String(), - "nonce", rtx.Nonce(), - "method", method, - ) - r.pendingTxs.Remove(rtx.Hash()) - return nil - } - return fmt.Errorf("resend discarded tx: %w", err) - } else { - r.pendingTxs.Remove(rtx.Hash()) - } - r.pendingTxs.Add(replacedtx) - log.Info("resend discarded tx", "old_tx", rtx.Hash().String(), "new_tx", replacedtx.Hash().String(), "nonce", replacedtx.Nonce()) - } else { - log.Info("tx is not found, neither in mempool nor in block", "hash", rtx.Hash().String(), "nonce", rtx.Nonce(), "query_times", txRecord.queryTimes) - } - } else { - logs := utils.ParseBusinessInfo(rtx, r.abi) - logs = append(logs, - "block", receipt.BlockNumber, - "hash", rtx.Hash().String(), - "status", receipt.Status, - "gas_used", receipt.GasUsed, - "type", rtx.Type(), - "nonce", rtx.Nonce(), - "blob_fee_cap", rtx.BlobGasFeeCap(), - "blob_gas", rtx.BlobGas(), - "tx_size", rtx.Size(), - "gas_limit", rtx.Gas(), - "gas_price", rtx.GasPrice(), - ) + log.Info("Successfully sent cancel transaction for commit batch", + "old_tx", tx.Hash().Hex(), + "new_tx", cancelTx.Hash().String(), + "nonce", tx.Nonce()) + if err := r.pendingTxs.Remove(tx.Hash()); err != nil { + log.Error("failed to remove transaction", "hash", tx.Hash().String(), "error", err) + } + if err := r.pendingTxs.Add(cancelTx); err != nil { + log.Error("failed to add cancel transaction", "hash", cancelTx.Hash().String(), "error", err) + } + return nil + } + } else if method == constants.MethodFinalizeBatch { + batchIndex := utils.ParseFBatchIndex(tx.Data()) + lastFinalized, err := r.Rollup.LastFinalizedBatchIndex(nil) + if err != nil { + return fmt.Errorf("get last finalized batch index error: %w", err) + } - log.Info("tx included", - logs..., - ) + if batchIndex <= lastFinalized.Uint64() { + // This batch is already finalized by another submitter + log.Info("Batch already finalized by another submitter, trying to cancel transaction", + "batch_index", batchIndex, + "last_finalized", lastFinalized.Uint64(), + "tx_hash", tx.Hash().String()) - if receipt.Status != ethtypes.ReceiptStatusSuccessful { - // if tx is commitBatch - if method == "commitBatch" { - parentindex := utils.ParseParentBatchIndex(rtx.Data()) - index := parentindex + 1 - - // prevent the SetFailedStatus operation from - // happening between RemoveRollupRestriction - // and SetPindex in the rollup function - r.rollupFinalizeMu.Lock() - r.pendingTxs.TrySetFailedBatchIndex(index) - r.rollupFinalizeMu.Unlock() - - } - - } else { - if method == "commitBatch" && r.pendingTxs.failedIndex != nil { - log.Info("fail revover", "failed_index", r.pendingTxs.failedIndex) - r.pendingTxs.RemoveRollupRestriction() - } - } + // Try to cancel the transaction since it will fail + cancelTx, err := r.CancelTx(tx) + if err != nil { + log.Error("Failed to cancel finalize batch transaction", + "error", err, + "tx", tx.Hash().Hex(), + "nonce", tx.Nonce(), + "gas", tx.Gas(), + "gas_tip_cap", tx.GasTipCap().String(), + "gas_fee_cap", tx.GasFeeCap().String(), + "blob_fee_cap", tx.BlobGasFeeCap().String(), + "batch_index", batchIndex, + "last_finalized", lastFinalized.Uint64()) + return fmt.Errorf("cancel finalize batch transaction failed: %w", err) + } - r.pendingTxs.Remove(rtx.Hash()) - // set metrics - fee := calcFee(receipt) - if fee == 0 { - log.Warn("fee is zero", "hash", rtx.Hash().Hex()) - } - if method == "commitBatch" { - r.rollupFeeSum += fee - err = r.ldb.PutFloat(rollupSumKey, r.rollupFeeSum) - if err != nil { - log.Warn("put rollup fee sum error", "error", err) - } - r.metrics.SetRollupCost(fee) - index := utils.ParseParentBatchIndex(rtx.Data()) + 1 - batch, ok := r.batchCache.Get(index) - if ok { - collectedL1FeeFloat := ToEtherFloat((*big.Int)(batch.CollectedL1Fee)) - r.collectedL1FeeSum += collectedL1FeeFloat - err = r.ldb.PutFloat(collectedL1FeeSumKey, r.collectedL1FeeSum) - if err != nil { - log.Warn("put collected l1 fee sum error", "error", err) - } - r.metrics.SetCollectedL1Fee(ToEtherFloat((*big.Int)(batch.CollectedL1Fee))) - // remove batch from cache - r.batchCache.Delete(index) - } else { - log.Warn("batch not found in batchCache while set collect fee metrics", - "index", index, - ) - } - - } else if method == "finalizeBatch" { - r.finalizeFeeSum += fee - err = r.ldb.PutFloat(finalizeSumKey, r.finalizeFeeSum) - if err != nil { - log.Warn("put finalize fee sum error", "error", err) - } - r.metrics.SetFinalizeCost(fee) - } + log.Info("Successfully sent cancel transaction for finalize batch", + "old_tx", tx.Hash().Hex(), + "new_tx", cancelTx.Hash().String(), + "nonce", tx.Nonce()) + if err := r.pendingTxs.Remove(tx.Hash()); err != nil { + log.Error("failed to remove transaction", "hash", tx.Hash().String(), "error", err) + } + if err := r.pendingTxs.Add(cancelTx); err != nil { + log.Error("failed to add cancel transaction", "hash", cancelTx.Hash().String(), "error", err) } + return nil + } + } + + return nil +} + +func (r *Rollup) replaceTimedOutTx(tx *ethtypes.Transaction) error { + newTx, err := r.ReSubmitTx(false, tx) + if err != nil { + log.Error("Failed to resubmit transaction", + "error", err, + "tx", tx.Hash().Hex(), + "nonce", tx.Nonce()) + return fmt.Errorf("resubmit tx error: %w", err) + } + + log.Info("Successfully replaced transaction", + "old_tx", tx.Hash().Hex(), + "new_tx", newTx.Hash().String(), + "nonce", tx.Nonce()) + if err := r.pendingTxs.Remove(tx.Hash()); err != nil { + log.Error("failed to remove transaction", "hash", tx.Hash().String(), "error", err) + } + if err := r.pendingTxs.Add(newTx); err != nil { + log.Error("failed to add new transaction", "hash", newTx.Hash().String(), "error", err) + } + return nil +} + +func (r *Rollup) handleMissingTx(txRecord *types.TxRecord, tx *ethtypes.Transaction, method string) error { + r.pendingTxs.IncQueryTimes(tx.Hash()) + + // Mark transaction as unconfirmed since it's missing + txRecord.Confirmed = false + + // Only resubmit after several retries + if txRecord.QueryTimes >= 5 { + return r.handleDiscardedTx(txRecord, tx, method) + } + + log.Info("Transaction not found in mempool or chain", + "hash", tx.Hash().String(), + "nonce", tx.Nonce(), + "query_times", txRecord.QueryTimes) + + return nil +} + +func (r *Rollup) handleDiscardedTx(txRecord *types.TxRecord, tx *ethtypes.Transaction, method string) error { + log.Warn("Transaction discarded", + "hash", tx.Hash().String(), + "nonce", tx.Nonce(), + "query_times", txRecord.QueryTimes) + + // Try to resubmit with original parameters + replacedTx, err := r.ReSubmitTx(true, tx) + if err != nil { + if utils.ErrStringMatch(err, core.ErrNonceTooLow) { + // Transaction was probably confirmed in a reorg + log.Info("Discarded transaction removed (nonce too low)", + "hash", tx.Hash().String(), + "nonce", tx.Nonce(), + "method", method) + if err := r.pendingTxs.Remove(tx.Hash()); err != nil { + log.Error("failed to remove transaction", "hash", tx.Hash().String(), "error", err) + } + return nil } + return fmt.Errorf("resend discarded tx: %w", err) + } + if err := r.pendingTxs.Remove(tx.Hash()); err != nil { + log.Error("failed to remove transaction", "hash", tx.Hash().String(), "error", err) } + if err := r.pendingTxs.Add(replacedTx); err != nil { + log.Error("failed to add replaced transaction", "hash", replacedTx.Hash().String(), "error", err) + } + log.Info("Successfully resubmitted discarded transaction", + "old_tx", tx.Hash().String(), + "new_tx", replacedTx.Hash().String(), + "nonce", replacedTx.Nonce()) return nil +} + +// handleConfirmedTx handles a confirmed transaction +func (r *Rollup) handleConfirmedTx(txRecord *types.TxRecord, tx *ethtypes.Transaction, txType string) error { + status, err := r.getTxStatus(tx) + if err != nil { + return fmt.Errorf("get tx status error: %w", err) + } + + // Get current block number for confirmation count + currentBlock, err := r.L1Client.BlockNumber(context.Background()) + if err != nil { + return fmt.Errorf("get current block number error: %w", err) + } + + confirmations := currentBlock - status.receipt.BlockNumber.Uint64() + log.Info("Transaction confirmation status", + "hash", tx.Hash().String(), + "block_number", status.receipt.BlockNumber.Uint64(), + "current_block", currentBlock, + "confirmations", confirmations) + + method := utils.ParseMethod(tx, r.abi) + if status.receipt.Status == ethtypes.ReceiptStatusFailed { + if method == constants.MethodCommitBatch { + batchIndex := utils.ParseParentBatchIndex(tx.Data()) + 1 + lastCommitted, err := r.Rollup.LastCommittedBatchIndex(nil) + if err != nil { + return fmt.Errorf("get last committed batch index error: %w", err) + } + + if batchIndex <= lastCommitted.Uint64() { + // Another submitter has already committed this batch + log.Warn("Batch commit transaction failed but batch is already committed by another submitter", "batch_index", batchIndex, "tx_hash", tx.Hash().String()) + // Clean up batch from cache since it's already committed + r.batchCache.Delete(batchIndex) + } else { + // Contract bug detected - batch is not committed by anyone else but our transaction failed + log.Warn("Critical error: batch commit transaction failed and batch is not committed by anyone", "batch_index", batchIndex, "tx_hash", tx.Hash().String()) + } + } else if method == constants.MethodFinalizeBatch { + batchIndex := utils.ParseFBatchIndex(tx.Data()) + lastFinalized, err := r.Rollup.LastFinalizedBatchIndex(nil) + if err != nil { + return fmt.Errorf("get last finalized batch index error: %w", err) + } + + if batchIndex <= lastFinalized.Uint64() { + // Another submitter has already finalized this batch + log.Warn("Batch finalize transaction failed but batch is already finalized by another submitter", "batch_index", batchIndex, "tx_hash", tx.Hash().String()) + } else { + // Contract bug detected - batch is not finalized by anyone else but our transaction failed + log.Warn("Critical error: batch finalize transaction failed and batch is not finalized by anyone", "batch_index", batchIndex, "tx_hash", tx.Hash().String()) + } + } + } else { // Transaction succeeded + // Get current block number for confirmation count only for successful transactions + currentBlock, err := r.L1Client.BlockNumber(context.Background()) + if err != nil { + return fmt.Errorf("get current block number error: %w", err) + } + confirmations := currentBlock - status.receipt.BlockNumber.Uint64() + if method == constants.MethodCommitBatch { + batchIndex := utils.ParseParentBatchIndex(tx.Data()) + 1 + log.Info("Successfully committed batch", "batch_index", batchIndex, "tx_hash", tx.Hash().String(), "block_number", status.receipt.BlockNumber.Uint64(), "gas_used", status.receipt.GasUsed, "confirm", confirmations) + + // Clean up batch from cache after successful commit + r.batchCache.Delete(batchIndex) + } else if method == constants.MethodFinalizeBatch { + batchIndex := utils.ParseFBatchIndex(tx.Data()) + log.Info("Successfully finalized batch", "batch_index", batchIndex, "tx_hash", tx.Hash().String(), "block_number", status.receipt.BlockNumber.Uint64(), "gas_used", status.receipt.GasUsed, "confirm", confirmations) + } + } + + r.pendingTxs.MarkConfirmed(tx.Hash()) + return nil } func (r *Rollup) finalize() error { @@ -550,7 +920,9 @@ func (r *Rollup) finalize() error { r.pendingTxs.SetNonce(signedTx.Nonce()) r.pendingTxs.SetPFinalize(target.Uint64()) - r.pendingTxs.Add(signedTx) + if err := r.pendingTxs.Add(signedTx); err != nil { + log.Error("failed to add signed transaction", "hash", signedTx.Hash().String(), "error", err) + } } return nil @@ -558,9 +930,9 @@ func (r *Rollup) finalize() error { } func (r *Rollup) rollup() error { - + // Get current block height if !r.cfg.PriorityRollup { - cur, err := r.rotator.CurrentSubmitter(r.L2Clients, r.Staking) + activeSubmitter, activeIndex, err := r.getCachedSubmitter() if err != nil { return fmt.Errorf("rollup: get current submitter err, %w", err) } @@ -569,23 +941,24 @@ func (r *Rollup) rollup() error { if err != nil { return fmt.Errorf("failed to load storage in rollup: %w", err) } - log.Info("indexer info", - "block_processed", r.eventInfoStorage.EventInfo.BlockProcessed, - "event_latest_emit_time", r.eventInfoStorage.EventInfo.BlockTime, - ) + log.Debug("Indexer status", + "blocks_processed", r.eventInfoStorage.BlockProcessed(), + "last_event_time", r.eventInfoStorage.BlockTime()) + // get current blocknumber blockNumber, err := r.L1Client.BlockNumber(context.Background()) if err != nil { return fmt.Errorf("failed to get block number in rollup: %w", err) } // set metrics - r.metrics.SetIndexerBlockProcessed(r.eventInfoStorage.EventInfo.BlockProcessed) + r.metrics.SetIndexerBlockProcessed(r.eventInfoStorage.BlockProcessed()) // check if indexed block number is too old - if blockNumber > r.eventInfoStorage.EventInfo.BlockProcessed+100 { - log.Info("indexed block number is too old, wait indexer to catch up", + if blockNumber > r.eventInfoStorage.BlockProcessed()+100 { + log.Info("Indexer sync required", "module", r.GetModuleName(), - "block_number", blockNumber, - "processed_block", r.eventInfoStorage.EventInfo.BlockProcessed) + "current_block", blockNumber, + "processed_block", r.eventInfoStorage.BlockProcessed(), + "blocks_behind", blockNumber-r.eventInfoStorage.BlockProcessed()) return nil } @@ -593,30 +966,52 @@ func (r *Rollup) rollup() error { start := time.Now().Unix() - past end := start + r.rotator.epoch.Int64() - log.Info("rotator info", - "turn", cur.Hex(), - "cur", r.WalletAddr(), - "start", start, - "end", end, - "now", time.Now().Unix(), - ) - - if cur.Hex() == r.WalletAddr().Hex() { - left := end - time.Now().Unix() - if left < r.cfg.RotatorBuffer { - log.Info("rollup time not enough, wait next turn", "left", left) + // Calculate time remaining in current turn + timeLeft := end - time.Now().Unix() + myAddress := r.WalletAddr().Hex() + activeAddress := activeSubmitter.Hex() + isMyTurn := activeAddress == myAddress + totalSubmitters := len(r.rotator.GetSubmitterSet()) + + // Format timestamps for human readability + startTimeFormatted := utils.FormatTime(big.NewInt(start)) + endTimeFormatted := utils.FormatTime(big.NewInt(end)) + timeLeftFormatted := fmt.Sprintf("%dm%ds", timeLeft/60, timeLeft%60) + + log.Info("Rotation status", + "submitter_index", activeIndex, + "active_submitter", activeAddress, + "my_address", myAddress, + "total_submitters", totalSubmitters, + "is_my_turn", isMyTurn, + "rotation_start", startTimeFormatted, + "rotation_end", endTimeFormatted, + "time_remaining", timeLeftFormatted) + + if isMyTurn { + if timeLeft < r.cfg.RotatorBuffer { + bufferFormatted := fmt.Sprintf("%dm%ds", r.cfg.RotatorBuffer/60, r.cfg.RotatorBuffer%60) + log.Info("Insufficient time for rollup", + "time_remaining", timeLeftFormatted, + "buffer_required", bufferFormatted) return nil } - log.Info("start to rollup") + log.Info("Starting rollup", + "submitter_index", activeIndex, + "total_submitters", totalSubmitters) } else { - log.Info("wait for my turn") + log.Debug("Skipping rollup - not active submitter", + "active_index", activeIndex, + "active_submitter", activeAddress) return nil } } if len(r.pendingTxs.txinfos) > int(r.cfg.MaxTxsInPendingPool) { - log.Info("too many txs in mempool, wait") + log.Info("Pending pool full", + "current_size", len(r.pendingTxs.txinfos), + "max_size", r.cfg.MaxTxsInPendingPool) return nil } @@ -628,65 +1023,31 @@ func (r *Rollup) rollup() error { } cindex := cindexBig.Uint64() - if r.pendingTxs.failedIndex != nil && cindex >= *r.pendingTxs.failedIndex { - r.pendingTxs.RemoveRollupRestriction() + switch { + case r.pendingTxs.pindex != 0: + batchIndex = max(cindex, r.pendingTxs.pindex) + 1 + default: + batchIndex = cindex + 1 } - if r.pendingTxs.failedIndex != nil { - batchIndex = *r.pendingTxs.failedIndex - } else { - if r.pendingTxs.pindex != 0 { - if cindex > r.pendingTxs.pindex { - batchIndex = cindex + 1 - } else { - batchIndex = r.pendingTxs.pindex + 1 - } + log.Debug("Batch status", + "last_committed", cindex, + "next_batch", batchIndex, + "current_processing", r.pendingTxs.pindex) - } else { - batchIndex = cindex + 1 - } - } - - var failedIndex uint64 - if r.pendingTxs.failedIndex != nil { - failedIndex = *r.pendingTxs.failedIndex - } - log.Info("batch index info", - "last_committed_batch_index", cindex, - "batch_index_will_get", batchIndex, - "pending_index", r.pendingTxs.pindex, - "failed_index", failedIndex, - ) if r.pendingTxs.ExistedIndex(batchIndex) { - log.Info("batch index already committed", "index", batchIndex) + log.Debug("Batch already committed", + "batch_index", batchIndex) return nil } - if r.pendingTxs.failedIndex != nil && batchIndex > *r.pendingTxs.failedIndex { - log.Warn("rollup rejected", "index", batchIndex) + batch, ok := r.batchCache.Get(batchIndex) + if !ok { + log.Info("Batch not found in cache", + "batch_index", batchIndex) return nil } - batch, err := GetRollupBatchByIndex(batchIndex, r.L2Clients) - if err != nil { - return fmt.Errorf("get rollup batch by index err:%v", err) - } - - // check if the batch is valid - if batch == nil { - log.Info("new batch not found, wait for the next turn") - return nil - } - - if len(batch.Signatures) == 0 { - log.Info("length of batch signature is empty, wait for the next turn") - return nil - } - - // set batch cache - // it shoud be removed after the batch is committed - r.batchCache.Set(batchIndex, batch) - signature, err := r.buildSignatureInput(batch) if err != nil { return err @@ -712,122 +1073,133 @@ func (r *Rollup) rollup() error { if err != nil { return fmt.Errorf("pack calldata error:%v", err) } + // Estimate gas for transaction gas, err := r.EstimateGas(r.WalletAddr(), r.rollupAddr, calldata, gasFeeCap, tip) if err != nil { - log.Warn("estimate gas failed", "err", err) - // have failed tx & estimate err -> no rough estimate - if r.pendingTxs.HaveFailed() { - log.Warn("estimate gas err, wait failed tx fixed", - "err", err, - "try_update_pooled_pending_index", cindex+1, - ) - r.pendingTxs.TrySetFailedBatchIndex(cindex + 1) - return nil - } - + log.Warn("Estimate gas failed", "batch_index", batchIndex, "error", err) + // Use rough estimation based on L1 message count if r.cfg.RoughEstimateGas { msgcnt := utils.ParseL1MessageCnt(batch.BlockContexts) gas = r.RoughRollupGasEstimate(msgcnt) - log.Info("rough estimate rollup tx gas", "gas", gas, "msgcnt", msgcnt) + log.Info("Using rough gas estimation", + "batch_index", batchIndex, + "gas_limit", gas, + "l1_messages", msgcnt) } else { - log.Warn("no rough estimate gas, return") return nil } } - // add buffer to gas + // Apply gas buffer gas = r.BumpGas(gas) - // calc nonce - var nonce uint64 - if r.pendingTxs.pnonce != 0 { - nonce = r.pendingTxs.pnonce + 1 - } else { - nonce, err = r.L1Client.PendingNonceAt(context.Background(), r.WalletAddr()) - if err != nil { - return fmt.Errorf("query layer1 nonce error:%v", err.Error()) - } + // Get next nonce + nonce := r.getNextNonce() + if nonce == 0 { + return fmt.Errorf("failed to get next nonce") } - var tx *ethtypes.Transaction - if len(batch.Sidecar.Blobs) > 0 { - versionedHashes := make([]common.Hash, 0) - for _, commit := range batch.Sidecar.Commitments { - versionedHashes = append(versionedHashes, kZGToVersionedHash(commit)) - } - // blob tx - tx = ethtypes.NewTx(ðtypes.BlobTx{ - ChainID: uint256.MustFromBig(r.chainId), - Nonce: nonce, - GasTipCap: uint256.MustFromBig(big.NewInt(tip.Int64())), - GasFeeCap: uint256.MustFromBig(big.NewInt(gasFeeCap.Int64())), - Gas: gas, - To: r.rollupAddr, - Data: calldata, - BlobFeeCap: uint256.MustFromBig(blobFee), - BlobHashes: versionedHashes, - Sidecar: ðtypes.BlobTxSidecar{ - Blobs: batch.Sidecar.Blobs, - Commitments: batch.Sidecar.Commitments, - Proofs: batch.Sidecar.Proofs, - }, - }) - - } else { - tx = ethtypes.NewTx(ðtypes.DynamicFeeTx{ - ChainID: r.chainId, - Nonce: nonce, - GasTipCap: tip, - GasFeeCap: gasFeeCap, - Gas: gas, - To: &r.rollupAddr, - Data: calldata, - }) + // Create and sign transaction + tx, err := r.createRollupTx(batch, nonce, gas, tip, gasFeeCap, blobFee, calldata) + if err != nil { + return fmt.Errorf("failed to create rollup tx: %w", err) } signedTx, err := r.Sign(tx) if err != nil { - return fmt.Errorf("sign tx error:%v", err) + return fmt.Errorf("failed to sign tx: %w", err) } - log.Info("rollup tx info", - "batch_index", batchIndex, - "hash", signedTx.Hash().String(), - "type", signedTx.Type(), - "nonce", signedTx.Nonce(), - "gas", signedTx.Gas(), - "tip", signedTx.GasTipCap().String(), - "fee_cap", signedTx.GasFeeCap().String(), - "blob_fee_cap", signedTx.BlobGasFeeCap(), - "blob_gas", signedTx.BlobGas(), - "size", signedTx.Size(), - "blob_len", len(signedTx.BlobHashes()), - ) + // Log transaction details before sending + r.logTxInfo(signedTx, batchIndex) - err = r.SendTx(signedTx) - if err != nil { - log.Error("send tx to mempool", "error", err.Error()) - if utils.ErrStringMatch(err, core.ErrNonceTooLow) { - // adjust nonce - n1, _, err := utils.ParseNonce(err.Error()) - if err != nil { - return fmt.Errorf("parse nonce err: %w", err) - } - r.pendingTxs.SetNonce(n1 - 1) - log.Info("update pnonce", "nonce", n1-1) - } - return fmt.Errorf("send tx error:%v", err.Error()) - } else { - log.Info("rollup tx send to mempool succuess", "hash", signedTx.Hash().String()) + // Send transaction + if err := r.SendTx(signedTx); err != nil { + return fmt.Errorf("failed to send tx: %w", err) + } - r.pendingTxs.SetPindex(batchIndex) - r.pendingTxs.SetNonce(tx.Nonce()) - r.pendingTxs.Add(signedTx) + // Update pending state + r.pendingTxs.SetPindex(batchIndex) + r.pendingTxs.SetNonce(tx.Nonce()) + if err := r.pendingTxs.Add(signedTx); err != nil { + log.Error("Failed to track transaction", "error", err) } return nil } +func (r *Rollup) getNextNonce() uint64 { + if r.pendingTxs.pnonce != 0 { + return r.pendingTxs.pnonce + 1 + } + + nonce, err := r.L1Client.PendingNonceAt(context.Background(), r.WalletAddr()) + if err != nil { + log.Error("Failed to get nonce", "error", err) + return 0 + } + return nonce +} + +func (r *Rollup) createRollupTx(batch *eth.RPCRollupBatch, nonce, gas uint64, tip, gasFeeCap, blobFee *big.Int, calldata []byte) (*ethtypes.Transaction, error) { + if len(batch.Sidecar.Blobs) > 0 { + return r.createBlobTx(batch, nonce, gas, tip, gasFeeCap, blobFee, calldata) + } + return r.createDynamicFeeTx(nonce, gas, tip, gasFeeCap, calldata) +} + +func (r *Rollup) createBlobTx(batch *eth.RPCRollupBatch, nonce, gas uint64, tip, gasFeeCap, blobFee *big.Int, calldata []byte) (*ethtypes.Transaction, error) { + versionedHashes := make([]common.Hash, 0, len(batch.Sidecar.Commitments)) + for _, commit := range batch.Sidecar.Commitments { + versionedHashes = append(versionedHashes, kZGToVersionedHash(commit)) + } + + return ethtypes.NewTx(ðtypes.BlobTx{ + ChainID: uint256.MustFromBig(r.chainId), + Nonce: nonce, + GasTipCap: uint256.MustFromBig(big.NewInt(tip.Int64())), + GasFeeCap: uint256.MustFromBig(big.NewInt(gasFeeCap.Int64())), + Gas: gas, + To: r.rollupAddr, + Data: calldata, + BlobFeeCap: uint256.MustFromBig(blobFee), + BlobHashes: versionedHashes, + Sidecar: ðtypes.BlobTxSidecar{ + Blobs: batch.Sidecar.Blobs, + Commitments: batch.Sidecar.Commitments, + Proofs: batch.Sidecar.Proofs, + }, + }), nil +} + +func (r *Rollup) createDynamicFeeTx(nonce, gas uint64, tip, gasFeeCap *big.Int, calldata []byte) (*ethtypes.Transaction, error) { + return ethtypes.NewTx(ðtypes.DynamicFeeTx{ + ChainID: r.chainId, + Nonce: nonce, + GasTipCap: tip, + GasFeeCap: gasFeeCap, + Gas: gas, + To: &r.rollupAddr, + Data: calldata, + }), nil +} + +func (r *Rollup) logTxInfo(tx *ethtypes.Transaction, batchIndex uint64) { + log.Info("Rollup transaction created", + "batch_index", batchIndex, + "hash", tx.Hash().String(), + "type", tx.Type(), + "nonce", tx.Nonce(), + "gas", tx.Gas(), + "tip", tx.GasTipCap().String(), + "fee_cap", tx.GasFeeCap().String(), + "blob_fee_cap", tx.BlobGasFeeCap(), + "blob_gas", tx.BlobGas(), + "size", tx.Size(), + "blob_count", len(tx.BlobHashes()), + ) +} + func (r *Rollup) buildSignatureInput(batch *eth.RPCRollupBatch) (*bindings.IRollupBatchSignatureInput, error) { blsSignatures := batch.Signatures if len(blsSignatures) == 0 { @@ -906,6 +1278,8 @@ func (r *Rollup) GetGasTipAndCap() (*big.Int, *big.Int, *big.Int, error) { var blobFee *big.Int if head.ExcessBlobGas != nil { blobFee = eip4844.CalcBlobFee(*head.ExcessBlobGas) + // Set to 3x to handle blob market congestion + blobFee = new(big.Int).Mul(blobFee, big.NewInt(3)) } log.Info("fee info after bump", @@ -1142,7 +1516,9 @@ func (r *Rollup) SendTx(tx *ethtypes.Transaction) error { // after send tx // add to pending txs if r.pendingTxs != nil { - r.pendingTxs.Add(tx) + if err := r.pendingTxs.Add(tx); err != nil { + log.Error("failed to add transaction", "hash", tx.Hash().String(), "error", err) + } } return nil @@ -1270,11 +1646,23 @@ func (r *Rollup) ReSubmitTx(resend bool, tx *ethtypes.Transaction) (*ethtypes.Tr } + // weiToGwei converts wei value to gwei string representation + weiToGwei := func(wei *big.Int) string { + if wei == nil { + return "0" + } + gwei := new(big.Float).Quo( + new(big.Float).SetInt(wei), + new(big.Float).SetInt64(1e9), + ) + return gwei.Text('f', 6) + } + log.Info("new tx info", "tx_type", newTx.Type(), - "gas_tip", tip.String(), //todo: convert to gwei - "gas_fee_cap", gasFeeCap.String(), //todo: convert to gwei - "blob_fee_cap", blobFeeCap.String(), //todo: convert to gwei + "gas_tip_gwei", weiToGwei(tip), + "gas_fee_cap_gwei", weiToGwei(gasFeeCap), + "blob_fee_cap_gwei", weiToGwei(blobFeeCap), ) // sign tx newTx, err = r.Sign(newTx) @@ -1388,3 +1776,155 @@ func (r *Rollup) InitFeeMetricsSum() error { r.metrics.CollectedL1FeeSum.Add(r.collectedL1FeeSum) return nil } + +// ClearPendingTxs clears all pending transactions +func (p *PendingTxs) ClearPendingTxs() { + p.txinfos = make(map[common.Hash]*types.TxRecord) +} + +// MarkUnconfirmed marks a transaction as unconfirmed in the pending pool +func (p *PendingTxs) MarkUnconfirmed(hash common.Hash) { + if txRecord, ok := p.txinfos[hash]; ok { + txRecord.Confirmed = false + } +} + +// CancelTx creates a new transaction with empty calldata to cancel the original transaction +func (r *Rollup) CancelTx(tx *ethtypes.Transaction) (*ethtypes.Transaction, error) { + if tx == nil { + return nil, errors.New("nil tx") + } + + log.Info("canceling transaction", + "hash", tx.Hash().String(), + "gas_fee_cap", tx.GasFeeCap().String(), + "gas_tip", tx.GasTipCap().String(), + "blob_fee_cap", tx.BlobGasFeeCap().String(), + "gas", tx.Gas(), + "nonce", tx.Nonce(), + ) + + tip, gasFeeCap, blobFeeCap, err := r.GetGasTipAndCap() + if err != nil { + return nil, fmt.Errorf("get gas tip and cap error:%w", err) + } + + // bump tip & feeCap + bumpedFeeCap := calcThresholdValue(tx.GasFeeCap(), tx.Type() == ethtypes.BlobTxType) + bumpedTip := calcThresholdValue(tx.GasTipCap(), tx.Type() == ethtypes.BlobTxType) + + // if bumpedTip > tip + if bumpedTip.Cmp(tip) > 0 { + tip = bumpedTip + } + + if bumpedFeeCap.Cmp(gasFeeCap) > 0 { + gasFeeCap = bumpedFeeCap + } + + if tx.Type() == ethtypes.BlobTxType { + bumpedBlobFeeCap := calcThresholdValue(tx.BlobGasFeeCap(), tx.Type() == ethtypes.BlobTxType) + if bumpedBlobFeeCap.Cmp(blobFeeCap) > 0 { + blobFeeCap = bumpedBlobFeeCap + } + } + + var newTx *ethtypes.Transaction + switch tx.Type() { + case ethtypes.DynamicFeeTxType: + newTx = ethtypes.NewTx(ðtypes.DynamicFeeTx{ + ChainID: tx.ChainId(), + To: tx.To(), + Nonce: tx.Nonce(), + GasFeeCap: gasFeeCap, + GasTipCap: tip, + Gas: tx.Gas(), + Value: tx.Value(), + Data: []byte{}, // Empty calldata for cancellation + }) + case ethtypes.BlobTxType: + // For blob transactions, we need to keep one empty blob + var emptyBlob kzg4844.Blob + emptyCommitment, err := kzg4844.BlobToCommitment(&emptyBlob) + if err != nil { + return nil, fmt.Errorf("failed to create empty blob commitment: %w", err) + } + emptyProof, err := kzg4844.ComputeBlobProof(&emptyBlob, emptyCommitment) + if err != nil { + return nil, fmt.Errorf("failed to create empty blob proof: %w", err) + } + + newTx = ethtypes.NewTx(ðtypes.BlobTx{ + ChainID: uint256.MustFromBig(tx.ChainId()), + Nonce: tx.Nonce(), + GasTipCap: uint256.MustFromBig(tip), + GasFeeCap: uint256.MustFromBig(gasFeeCap), + Gas: tx.Gas(), + To: *tx.To(), + Value: uint256.MustFromBig(tx.Value()), + Data: []byte{}, // Empty calldata for cancellation + BlobFeeCap: uint256.MustFromBig(blobFeeCap), + BlobHashes: []common.Hash{kZGToVersionedHash(emptyCommitment)}, + Sidecar: ðtypes.BlobTxSidecar{ + Blobs: []kzg4844.Blob{emptyBlob}, + Commitments: []kzg4844.Commitment{emptyCommitment}, + Proofs: []kzg4844.Proof{emptyProof}, + }, + }) + default: + return nil, fmt.Errorf("cancel unknown tx type:%v", tx.Type()) + } + + log.Info("new cancel tx info", + "tx_type", newTx.Type(), + "gas_tip_gwei", utils.WeiToGwei(tip), + "gas_fee_cap_gwei", utils.WeiToGwei(gasFeeCap), + "blob_fee_cap_gwei", utils.WeiToGwei(blobFeeCap), + ) + + // sign tx + newTx, err = r.Sign(newTx) + if err != nil { + return nil, fmt.Errorf("sign tx error:%w", err) + } + + // send tx + err = r.SendTx(newTx) + if err != nil { + return nil, fmt.Errorf("send tx error:%w", err) + } + + return newTx, nil +} + +// Add this method to get cached submitter info +func (r *Rollup) getCachedSubmitter() (common.Address, uint64, error) { + r.submitterCache.mu.RLock() + if time.Since(r.submitterCache.lastUpdateTime) < r.submitterCacheTimeout { + defer r.submitterCache.mu.RUnlock() + return r.submitterCache.submitter, r.submitterCache.submitterIdx, nil + } + r.submitterCache.mu.RUnlock() + + // Need to update cache + r.submitterCache.mu.Lock() + defer r.submitterCache.mu.Unlock() + + // Double check after acquiring write lock + if time.Since(r.submitterCache.lastUpdateTime) < r.submitterCacheTimeout { + return r.submitterCache.submitter, r.submitterCache.submitterIdx, nil + } + + // Get fresh data + submitter, idx, err := r.rotator.CurrentSubmitter(r.L2Clients, r.Staking) + if err != nil { + return common.Address{}, 0, err + } + + // Update cache with proper type conversion + r.submitterCache.submitter = *submitter + r.submitterCache.submitterIdx = uint64(idx) + r.submitterCache.lastUpdateTime = time.Now() + + return *submitter, uint64(idx), nil +} diff --git a/tx-submitter/services/rollup_handle_test.go b/tx-submitter/services/rollup_handle_test.go new file mode 100644 index 000000000..64f03b197 --- /dev/null +++ b/tx-submitter/services/rollup_handle_test.go @@ -0,0 +1,240 @@ +package services + +import ( + "context" + "math/big" + "testing" + "time" + + "github.com/morph-l2/go-ethereum" + "github.com/morph-l2/go-ethereum/common" + "github.com/morph-l2/go-ethereum/core" + ethtypes "github.com/morph-l2/go-ethereum/core/types" + "github.com/morph-l2/go-ethereum/crypto" + "github.com/stretchr/testify/require" + + "morph-l2/bindings/bindings" + "morph-l2/tx-submitter/event" + "morph-l2/tx-submitter/iface" + "morph-l2/tx-submitter/metrics" + "morph-l2/tx-submitter/mock" + "morph-l2/tx-submitter/types" + "morph-l2/tx-submitter/utils" +) + +// setupTestRollup creates a test Rollup instance with mocked dependencies +func setupTestRollup(t *testing.T) (*Rollup, *mock.L1ClientWrapper, *mock.L2ClientWrapper, *mock.MockRollup) { + // Create mock clients + l1Mock := mock.NewL1ClientWrapper() + l2Mock := mock.NewL2ClientWrapper() + + // Set mock values for gas estimation + l1Mock.BaseFee = big.NewInt(1e9) // 1 gwei + l1Mock.TipCap = big.NewInt(1e9) // 1 gwei + + // Create a private key for testing + privateKey, err := crypto.GenerateKey() + require.NoError(t, err) + + // Create mock metrics + metrics := metrics.NewMetrics() + t.Cleanup(func() { + metrics.UnregisterMetrics() + }) + + // Create mock event storage + eventStorage := mock.NewMockEventInfoStorage() + err = eventStorage.Load() + require.NoError(t, err) + + // Initialize event storage with test data + eventStorage.SetBlockProcessed(1000) + eventStorage.SetBlockTime(uint64(time.Now().Unix())) + err = eventStorage.Store() + require.NoError(t, err) + + // Create mock event indexer + indexer := event.NewEventIndexer( + nil, // We don't need a real ethclient.Client for testing + big.NewInt(0), + ethereum.FilterQuery{}, + 100, + eventStorage, + ) + + // Create mock rotator + rotator := NewRotator(common.Address{}, common.Address{}, indexer) + + // Create mock L1Staking + l1Staking := mock.NewMockL1Staking() + // Set some test stakers + testStakers := []common.Address{ + common.HexToAddress("0x1111111111111111111111111111111111111111"), + common.HexToAddress("0x2222222222222222222222222222222222222222"), + } + l1Staking.SetActiveStakers(testStakers) + + // Create rollup config + defaultCfg := utils.Config{ + MaxTip: 10e9, + MaxBaseFee: 100e9, + MinTip: 1e9, + TipFeeBump: 100, + TxTimeout: 10 * time.Second, + PriorityRollup: true, + } + + // Create mock journal + mockJournal := mock.NewMockJournal() + + // Create mock rollup + mockRollup := mock.NewMockRollup() + + // Get Rollup ABI + rollupAbi, err := bindings.RollupMetaData.GetAbi() + require.NoError(t, err) + require.NotNil(t, rollupAbi) + + // Create rollup instance + rollup := NewRollup( + context.Background(), + metrics, + nil, + l1Mock, + []iface.L2Client{l2Mock}, + mockRollup, + l1Staking, + big.NewInt(1), + privateKey, + common.Address{}, + rollupAbi, + defaultCfg, + nil, + rotator, + nil, + nil, + eventStorage, + ) + + // Initialize pending transactions + rollup.pendingTxs = NewPendingTxs([]byte{}, []byte{}, mockJournal) + + // Initialize reorg detector + // Use the mock implementation for controlled testing + mockReorgDetector := mock.NewMockReorgDetector() + rollup.reorgDetector = mockReorgDetector + + return rollup, l1Mock, l2Mock, mockRollup +} + +// TestHandleDiscardedTx tests the handling of discarded transactions +func TestHandleDiscardedTx(t *testing.T) { + r, l1Mock, _, _ := setupTestRollup(t) + + // Create a test transaction + tx := ethtypes.NewTx(ðtypes.DynamicFeeTx{ + ChainID: big.NewInt(1), + Nonce: 1, + GasTipCap: big.NewInt(1e9), + GasFeeCap: big.NewInt(2e9), + Gas: 21000, + To: &common.Address{}, + }) + + txRecord := &types.TxRecord{ + Tx: tx, + SendTime: uint64(time.Now().Unix()), + QueryTimes: 5, // Set high enough to trigger discard handling + } + + // Test case 1: Transaction was confirmed in a reorg + l1Mock.SendTxErr = core.ErrNonceTooLow + err := r.handleDiscardedTx(txRecord, tx, "commitBatch") + require.NoError(t, err) + require.Equal(t, 0, len(r.pendingTxs.GetAll()), "Transaction should be removed from pending pool") + + // Test case 2: Successful resubmission + l1Mock.SendTxErr = nil + tx = ethtypes.NewTx(ðtypes.DynamicFeeTx{ + ChainID: big.NewInt(1), + Nonce: 2, + GasTipCap: big.NewInt(1e9), + GasFeeCap: big.NewInt(2e9), + Gas: 21000, + To: &common.Address{}, + }) + txRecord.Tx = tx + + err = r.handleDiscardedTx(txRecord, tx, "commitBatch") + require.NoError(t, err) + require.Equal(t, 1, len(r.pendingTxs.GetAll()), "New transaction should be added to pending pool") +} + +// TestHandleReorg tests the handling of chain reorganizations +func TestHandleReorg(t *testing.T) { + r, _, _, _ := setupTestRollup(t) + + // Test reorg handling + depth := uint64(2) + err := r.handleReorg(depth) + require.NoError(t, err) + + // Verify metrics + require.Equal(t, float64(depth), r.metrics.GetReorgDepth()) + require.Equal(t, float64(1), r.metrics.GetReorgCount()) + +} + +// TestHandleMissingTx tests the handling of missing transactions +func TestHandleMissingTx(t *testing.T) { + r, l1Mock, _, _ := setupTestRollup(t) + + // Create a test transaction + tx := ethtypes.NewTx(ðtypes.DynamicFeeTx{ + ChainID: big.NewInt(1), + Nonce: 1, + GasTipCap: big.NewInt(1e9), + GasFeeCap: big.NewInt(2e9), + Gas: 21000, + To: &common.Address{}, + }) + + // Test case 1: Transaction with low query times + txRecord := &types.TxRecord{ + Tx: tx, + SendTime: uint64(time.Now().Unix()), + QueryTimes: 2, + } + + // add record to localpool + r.pendingTxs.txinfos[tx.Hash()] = txRecord + + err := r.handleMissingTx(txRecord, tx, "commitBatch") + require.NoError(t, err) + record := r.pendingTxs.GetTxRecord(tx.Hash()) + require.NotNil(t, record, "Transaction record should exist") + require.Equal(t, uint64(3), record.QueryTimes) + + // Test case 2: Transaction with high query times + oldHash := tx.Hash() + txRecord.QueryTimes = 5 + // Set up mock for successful resubmission + l1Mock.SendTxErr = nil + err = r.handleMissingTx(txRecord, tx, "commitBatch") + require.NoError(t, err) + + // The old transaction should be removed + record = r.pendingTxs.GetTxRecord(oldHash) + require.Nil(t, record, "Old transaction should be removed") + + // Find the new transaction by checking all pending transactions + found := false + for _, txRecord := range r.pendingTxs.GetAll() { + if txRecord.Tx.Nonce() == tx.Nonce() { + found = true + require.Equal(t, uint64(0), txRecord.QueryTimes, "New transaction should have reset query times") + break + } + } + require.True(t, found, "New transaction should exist in pending pool") +} diff --git a/tx-submitter/services/rollup_test.go b/tx-submitter/services/rollup_test.go index b8045b4ab..abbca1045 100644 --- a/tx-submitter/services/rollup_test.go +++ b/tx-submitter/services/rollup_test.go @@ -1,19 +1,16 @@ package services import ( - "context" "math/big" "testing" - "morph-l2/tx-submitter/mock" - "morph-l2/tx-submitter/utils" - + "github.com/holiman/uint256" "github.com/morph-l2/go-ethereum/common" "github.com/morph-l2/go-ethereum/core/types" - "github.com/morph-l2/go-ethereum/crypto" - - "github.com/holiman/uint256" + "github.com/morph-l2/go-ethereum/crypto/kzg4844" "github.com/stretchr/testify/require" + + "morph-l2/tx-submitter/utils" ) func TestSendTx(t *testing.T) { @@ -55,26 +52,18 @@ func TestSendTx(t *testing.T) { } func TestGetGasTipAndCap(t *testing.T) { - l1Mock := mock.NewL1ClientWrapper() initTip := big.NewInt(1e9) - baseFee := big.NewInt(1e9) - excessBlobGas := uint64(1) block := types.NewBlockWithHeader( &types.Header{ - BaseFee: baseFee, - ExcessBlobGas: &excessBlobGas, + BaseFee: baseFee, }, ) + + r, l1Mock, _, _ := setupTestRollup(t) l1Mock.TipCap = initTip l1Mock.Block = block - config := utils.Config{ - MaxTip: 10e9, - MaxBaseFee: 100e9, - MinTip: 1e9, - TipFeeBump: 100, - } - r := NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, nil, common.Address{}, nil, config, nil, nil, nil, nil, nil) + tip, feecap, blobfee, err := r.GetGasTipAndCap() require.NoError(t, err) require.NotNil(t, tip) @@ -82,13 +71,12 @@ func TestGetGasTipAndCap(t *testing.T) { require.NotNil(t, blobfee) require.Equal(t, initTip, tip) - config = utils.Config{ - MaxTip: 10e9, - MaxBaseFee: 100e9, - MinTip: 1e9, - TipFeeBump: 200, - } - r = NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, nil, common.Address{}, nil, config, nil, nil, nil, nil, nil) + // Test with different TipFeeBump + r, l1Mock, _, _ = setupTestRollup(t) + l1Mock.TipCap = initTip + l1Mock.Block = block + r.cfg.TipFeeBump = 200 + tip, feecap, blobfee, err = r.GetGasTipAndCap() require.NoError(t, err) require.NotNil(t, tip) @@ -96,60 +84,335 @@ func TestGetGasTipAndCap(t *testing.T) { require.NotNil(t, blobfee) require.Equal(t, tip, initTip.Mul(initTip, big.NewInt(2))) - config = utils.Config{ - MaxTip: 10e9, - MaxBaseFee: baseFee.Uint64() - 1, - MinTip: 1e9, - TipFeeBump: 200, - } - r = NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, nil, common.Address{}, nil, config, nil, nil, nil, nil, nil) + // Test with base fee too high + r, l1Mock, _, _ = setupTestRollup(t) + l1Mock.TipCap = initTip + l1Mock.Block = block + r.cfg.MaxBaseFee = baseFee.Uint64() - 1 + _, _, _, err = r.GetGasTipAndCap() require.ErrorContains(t, err, "base fee is too high") - config = utils.Config{ - MaxTip: initTip.Uint64() - 1, - MaxBaseFee: 100e9, - MinTip: 1e9, - TipFeeBump: 200, - } - r = NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, nil, nil, common.Address{}, nil, config, nil, nil, nil, nil, nil) + // Test with tip too high + r, l1Mock, _, _ = setupTestRollup(t) + l1Mock.TipCap = initTip + l1Mock.Block = block + r.cfg.MaxTip = initTip.Uint64() - 1 + _, _, _, err = r.GetGasTipAndCap() require.ErrorContains(t, err, "tip is too high") - } func TestReSubmitTx(t *testing.T) { - l1Mock := mock.NewL1ClientWrapper() - initTip := big.NewInt(1e9) + marketTip := big.NewInt(3e9) // 3 Gwei market tip + baseFee := big.NewInt(2e9) // 2 Gwei base fee + block := types.NewBlockWithHeader( + &types.Header{ + BaseFee: baseFee, + }, + ) + + r, l1Mock, _, _ := setupTestRollup(t) + l1Mock.TipCap = marketTip + l1Mock.Block = block + r.cfg.MaxTip = 10e12 + r.cfg.MaxBaseFee = 100e9 + r.cfg.MinTip = 1e9 + r.cfg.TipFeeBump = 0 // no bump for replace mode + + // Test nil tx + _, err := r.ReSubmitTx(false, nil) + require.ErrorContains(t, err, "nil tx") + + t.Run("DynamicFeeTx", func(t *testing.T) { + oldDynamicTx := types.NewTx(&types.DynamicFeeTx{ + ChainID: big.NewInt(1), + Nonce: 1, + GasTipCap: big.NewInt(2e9), // 2 Gwei + GasFeeCap: big.NewInt(10e9), // 10 Gwei + Gas: 100000, + To: &common.Address{}, + Value: big.NewInt(0), + Data: []byte{1, 2, 3, 4}, + }) + + // Test Replace Mode + t.Run("Replace", func(t *testing.T) { + newTx, err := r.ReSubmitTx(false, oldDynamicTx) + require.NoError(t, err) + require.NotNil(t, newTx) + + // Verify fields preserved + require.Equal(t, oldDynamicTx.Nonce(), newTx.Nonce()) + require.Equal(t, oldDynamicTx.Gas(), newTx.Gas()) + require.Equal(t, oldDynamicTx.Data(), newTx.Data()) + require.Equal(t, oldDynamicTx.Value(), newTx.Value()) + + // Verify fees are at least 1.1x of original + originalTip := oldDynamicTx.GasTipCap() + newTip := newTx.GasTipCap() + expectedTip := new(big.Int).Mul(originalTip, big.NewInt(110)) + expectedTip = expectedTip.Div(expectedTip, big.NewInt(100)) + require.True(t, newTip.Cmp(expectedTip) >= 0, "new tip should be at least 1.1x of original") + + originalFeeCap := oldDynamicTx.GasFeeCap() + newFeeCap := newTx.GasFeeCap() + expectedFeeCap := new(big.Int).Mul(originalFeeCap, big.NewInt(110)) + expectedFeeCap = expectedFeeCap.Div(expectedFeeCap, big.NewInt(100)) + require.True(t, newFeeCap.Cmp(expectedFeeCap) >= 0, "new fee cap should be at least 1.1x of original") + }) + + // Test Resubmit Mode + t.Run("Resubmit", func(t *testing.T) { + newTx, err := r.ReSubmitTx(true, oldDynamicTx) + require.NoError(t, err) + require.NotNil(t, newTx) + + // Verify fields preserved + require.Equal(t, oldDynamicTx.Nonce(), newTx.Nonce()) + require.Equal(t, oldDynamicTx.Gas(), newTx.Gas()) + require.Equal(t, oldDynamicTx.Data(), newTx.Data()) + require.Equal(t, oldDynamicTx.Value(), newTx.Value()) + require.Equal(t, oldDynamicTx.ChainId(), newTx.ChainId()) + + // Verify fees are market prices + require.Equal(t, marketTip.Uint64(), newTx.GasTipCap().Uint64(), "new tip should be market price") + require.True(t, newTx.GasFeeCap().Cmp(baseFee) > 0, "new fee cap should be higher than base fee") + }) + }) + + t.Run("BlobTx", func(t *testing.T) { + oldBlobTx := types.NewTx(&types.BlobTx{ + ChainID: uint256.MustFromBig(big.NewInt(1)), + Nonce: 2, + GasTipCap: uint256.MustFromBig(big.NewInt(2e9)), + GasFeeCap: uint256.MustFromBig(big.NewInt(10e9)), + Gas: 200000, + To: common.Address{}, + Value: uint256.NewInt(0), + Data: []byte{1, 2, 3, 4}, + BlobFeeCap: uint256.MustFromBig(big.NewInt(5e9)), + BlobHashes: []common.Hash{{1}}, + Sidecar: &types.BlobTxSidecar{ + Blobs: []kzg4844.Blob{{1}}, + Commitments: []kzg4844.Commitment{{1}}, + Proofs: []kzg4844.Proof{{1}}, + }, + }) + + // Test Replace Mode + t.Run("Replace", func(t *testing.T) { + newTx, err := r.ReSubmitTx(false, oldBlobTx) + require.NoError(t, err) + require.NotNil(t, newTx) + // Verify fields preserved + require.Equal(t, oldBlobTx.Nonce(), newTx.Nonce()) + require.Equal(t, oldBlobTx.Gas(), newTx.Gas()) + require.Equal(t, oldBlobTx.Data(), newTx.Data()) + require.Equal(t, oldBlobTx.Value(), newTx.Value()) + require.Equal(t, len(oldBlobTx.BlobHashes()), len(newTx.BlobHashes())) + + // Verify fees are at least 2x of original + originalTip := oldBlobTx.GasTipCap() + newTip := newTx.GasTipCap() + expectedTip := new(big.Int).Mul(originalTip, big.NewInt(200)) + expectedTip = expectedTip.Div(expectedTip, big.NewInt(100)) + require.True(t, newTip.Cmp(expectedTip) >= 0, "new tip should be at least 2x of original") + + originalFeeCap := oldBlobTx.GasFeeCap() + newFeeCap := newTx.GasFeeCap() + expectedFeeCap := new(big.Int).Mul(originalFeeCap, big.NewInt(200)) + expectedFeeCap = expectedFeeCap.Div(expectedFeeCap, big.NewInt(100)) + require.True(t, newFeeCap.Cmp(expectedFeeCap) >= 0, "new fee cap should be at least 2x of original") + + originalBlobFeeCap := oldBlobTx.BlobGasFeeCap() + newBlobFeeCap := newTx.BlobGasFeeCap() + expectedBlobFeeCap := new(big.Int).Mul(originalBlobFeeCap, big.NewInt(200)) + expectedBlobFeeCap = expectedBlobFeeCap.Div(expectedBlobFeeCap, big.NewInt(100)) + require.True(t, newBlobFeeCap.Cmp(expectedBlobFeeCap) >= 0, "new blob fee cap should be at least 2x of original") + }) + + // Test Resubmit Mode + t.Run("Resubmit", func(t *testing.T) { + newTx, err := r.ReSubmitTx(true, oldBlobTx) + require.NoError(t, err) + require.NotNil(t, newTx) + + // Verify fields preserved + require.Equal(t, oldBlobTx.Nonce(), newTx.Nonce()) + require.Equal(t, oldBlobTx.Gas(), newTx.Gas()) + require.Equal(t, oldBlobTx.Data(), newTx.Data()) + require.Equal(t, oldBlobTx.Value(), newTx.Value()) + require.Equal(t, len(oldBlobTx.BlobHashes()), len(newTx.BlobHashes())) + + // Verify fees are market prices + require.Equal(t, marketTip.Uint64(), newTx.GasTipCap().Uint64(), "new tip should be market price") + require.True(t, newTx.GasFeeCap().Cmp(baseFee) > 0, "new fee cap should be higher than base fee") + require.NotNil(t, newTx.BlobGasFeeCap(), "new blob tx should have blob fee cap") + }) + }) +} + +func TestCancelTx(t *testing.T) { + // Setup mock L1 client + initTip := big.NewInt(1e9) baseFee := big.NewInt(1e9) - excessBlobGas := uint64(1) block := types.NewBlockWithHeader( &types.Header{ - BaseFee: baseFee, - ExcessBlobGas: &excessBlobGas, + BaseFee: baseFee, }, ) + + r, l1Mock, _, _ := setupTestRollup(t) l1Mock.TipCap = initTip l1Mock.Block = block - config := utils.Config{ - MaxTip: 10e12, - MaxBaseFee: 100e9, - MinTip: 1e10, - TipFeeBump: 100, - } + r.cfg.MaxTip = 10e12 + r.cfg.MaxBaseFee = 100e9 + r.cfg.MinTip = 1e9 + r.cfg.TipFeeBump = 120 // 20% bump + + // Test 1: Cancel nil transaction + _, err := r.CancelTx(nil) + require.Error(t, err) + require.Contains(t, err.Error(), "nil tx") - priv, err := crypto.GenerateKey() + // Test 2: Cancel DynamicFeeTx + originalDynamicTx := types.NewTx(&types.DynamicFeeTx{ + ChainID: big.NewInt(1), + Nonce: 1, + GasTipCap: big.NewInt(2e9), // 2 Gwei + GasFeeCap: big.NewInt(10e9), // 10 Gwei + Gas: 100000, + To: &common.Address{}, + Value: big.NewInt(0), + Data: []byte{1, 2, 3, 4}, // Some non-empty data + }) + + cancelTx, err := r.CancelTx(originalDynamicTx) require.NoError(t, err) + require.NotNil(t, cancelTx) - r := NewRollup(context.Background(), nil, nil, l1Mock, nil, nil, nil, big.NewInt(1), priv, common.Address{}, nil, config, nil, nil, nil, nil, nil) - _, err = r.ReSubmitTx(false, nil) - require.ErrorContains(t, err, "nil tx") - oldTx := types.NewTx(&types.DynamicFeeTx{ - GasTipCap: initTip, + // Verify the cancel transaction + require.Equal(t, originalDynamicTx.Nonce(), cancelTx.Nonce()) + require.Equal(t, originalDynamicTx.Gas(), cancelTx.Gas()) + require.Equal(t, 0, len(cancelTx.Data())) + + // Verify fee multipliers for DynamicFeeTx (1.2x) + originalTip := originalDynamicTx.GasTipCap() + cancelTip := cancelTx.GasTipCap() + expectedTip := new(big.Int).Mul(originalTip, big.NewInt(110)) + expectedTip = expectedTip.Div(expectedTip, big.NewInt(100)) + require.True(t, cancelTip.Cmp(expectedTip) >= 0, "cancel tx tip should be at least 1.1x of original") + + originalFeeCap := originalDynamicTx.GasFeeCap() + cancelFeeCap := cancelTx.GasFeeCap() + expectedFeeCap := new(big.Int).Mul(originalFeeCap, big.NewInt(110)) + expectedFeeCap = expectedFeeCap.Div(expectedFeeCap, big.NewInt(100)) + require.True(t, cancelFeeCap.Cmp(expectedFeeCap) >= 0, "cancel tx fee cap should be at least 1.1x of original") + + // Test 3: Cancel BlobTx + blobTx := types.NewTx(&types.BlobTx{ + ChainID: uint256.MustFromBig(big.NewInt(1)), + Nonce: 2, + GasTipCap: uint256.MustFromBig(big.NewInt(2e9)), + GasFeeCap: uint256.MustFromBig(big.NewInt(10e9)), + Gas: 200000, + To: common.Address{}, + Value: uint256.NewInt(0), + Data: []byte{1, 2, 3, 4}, + BlobFeeCap: uint256.MustFromBig(big.NewInt(5e9)), + BlobHashes: []common.Hash{{1}}, + Sidecar: &types.BlobTxSidecar{ + Blobs: []kzg4844.Blob{{1}}, + Commitments: []kzg4844.Commitment{{1}}, + Proofs: []kzg4844.Proof{{1}}, + }, }) - tx, err := r.ReSubmitTx(false, oldTx) + + cancelBlobTx, err := r.CancelTx(blobTx) require.NoError(t, err) - require.EqualValues(t, config.MinTip, tx.GasTipCap().Uint64()) + require.NotNil(t, cancelBlobTx) + + // Verify the cancel blob transaction + require.Equal(t, blobTx.Nonce(), cancelBlobTx.Nonce()) + require.Equal(t, blobTx.Gas(), cancelBlobTx.Gas()) + require.Equal(t, 0, len(cancelBlobTx.Data())) + + // Verify fee multipliers for BlobTx (2x) + originalTip = blobTx.GasTipCap() + cancelTip = cancelBlobTx.GasTipCap() + require.True(t, cancelTip.Cmp(new(big.Int).Mul(originalTip, big.NewInt(2))) >= 0, "cancel blob tx tip should be at least 2x of original") + + originalFeeCap = blobTx.GasFeeCap() + cancelFeeCap = cancelBlobTx.GasFeeCap() + require.True(t, cancelFeeCap.Cmp(new(big.Int).Mul(originalFeeCap, big.NewInt(2))) >= 0, "cancel blob tx fee cap should be at least 2x of original") + + originalBlobFeeCap := blobTx.BlobGasFeeCap() + cancelBlobFeeCap := cancelBlobTx.BlobGasFeeCap() + require.True(t, cancelBlobFeeCap.Cmp(new(big.Int).Mul(originalBlobFeeCap, big.NewInt(2))) >= 0, "cancel blob tx blob fee cap should be at least 2x of original") + require.Equal(t, 1, len(cancelBlobTx.BlobHashes())) + require.Equal(t, 1, len(cancelBlobTx.BlobTxSidecar().Blobs)) +} + +func TestTxStateTransition(t *testing.T) { + // Create test transactions + tx1 := types.NewTx(&types.DynamicFeeTx{ + ChainID: big.NewInt(1), + Nonce: 0, + GasTipCap: big.NewInt(1), + GasFeeCap: big.NewInt(100), + Gas: 21000, + To: &common.Address{}, + Value: big.NewInt(1), + }) + receipt := &types.Receipt{ + TxHash: tx1.Hash(), + BlockNumber: big.NewInt(1000), + Status: 1, + BlobGasUsed: 0, + BlobGasPrice: big.NewInt(0), + } + + // Create rollup instance + rollup, l1Mock, _, _ := setupTestRollup(t) + rollup.cfg.PriorityRollup = true + // Test transaction state transitions + t.Run("Transaction State Flow", func(t *testing.T) { + // Step 1: Transaction exists only locally (not in mempool or block) + err := rollup.pendingTxs.Add(tx1) + require.NoError(t, err) + status, err := rollup.getTxStatus(tx1) + require.NoError(t, err) + require.Equal(t, txStatusMissing, status.state) + + // Step 2: Transaction detected in mempool + l1Mock.AddTx(tx1) + status, err = rollup.getTxStatus(tx1) + require.NoError(t, err) + require.Equal(t, txStatusPending, status.state) + + // Step 3: Transaction included in block + l1Mock.AddReceipt(receipt) + status, err = rollup.getTxStatus(tx1) + require.NoError(t, err) + require.Equal(t, txStatusConfirmed, status.state) + + // Step 4: Transaction finalized (after 6 blocks) + l1Mock.Block = types.NewBlockWithHeader( + &types.Header{ + Number: big.NewInt(1006), + }, + ) + status, err = rollup.getTxStatus(tx1) + require.NoError(t, err) + require.Equal(t, txStatusConfirmed, status.state) + + // Step 5: Process transaction and verify cleanup + rollup.ProcessTx() + // Verify transaction is removed from pendingTxs after finalization + txRecord := rollup.pendingTxs.GetTxRecord(tx1.Hash()) + require.Nil(t, txRecord) + }) } diff --git a/tx-submitter/services/rotator.go b/tx-submitter/services/rotator.go index c99884049..bb5bb81af 100644 --- a/tx-submitter/services/rotator.go +++ b/tx-submitter/services/rotator.go @@ -63,11 +63,11 @@ func (r *Rotator) UpdateState(clients []iface.L2Client, l1Staking iface.IL1Staki return fmt.Errorf("GetCurrentSubmitter: failed to load storage: %w", err) } // if index not complete - if storage.BlockProcessed == 0 { + if storage.BlockProcessed() == 0 { return errors.New("wait event index service to complete") } - r.startTime = utils.MaxOfThreeBig(epochUpdateTime, sequcerUpdateTime, big.NewInt(int64(storage.BlockTime))) + r.startTime = utils.MaxOfThreeBig(epochUpdateTime, sequcerUpdateTime, big.NewInt(int64(storage.BlockTime()))) // get current sequencer set seqSet, err := QuerySequencerSet(r.l2SequencerAddr, clients) @@ -96,36 +96,40 @@ func (r *Rotator) UpdateState(clients []iface.L2Client, l1Staking iface.IL1Staki log.Info( "rotator state updated", "epoch", r.epoch, - "start", r.startTime, - "epoch_update_time", epochUpdateTime, - "seq_update_time", sequcerUpdateTime, - "indexed_latest_block", storage.BlockProcessed, - "indexed_event_emit_time", storage.BlockTime, + "start_time", utils.FormatTime(r.startTime), + "start_timestamp", r.startTime, + "epoch_update_time", utils.FormatTime(epochUpdateTime), + "epoch_update_timestamp", epochUpdateTime, + "seq_update_time", utils.FormatTime(sequcerUpdateTime), + "seq_update_timestamp", sequcerUpdateTime, + "indexed_latest_block", storage.BlockProcessed(), + "indexed_event_time", utils.FormatTime(big.NewInt(int64(storage.BlockTime()))), + "indexed_event_timestamp", storage.BlockTime(), ) return nil } // GetCurrentSubmitter returns the current sequencer that should be submitting -func (r *Rotator) CurrentSubmitter(clients []iface.L2Client, l1Staking iface.IL1Staking) (*common.Address, error) { +func (r *Rotator) CurrentSubmitter(clients []iface.L2Client, l1Staking iface.IL1Staking) (*common.Address, int64, error) { err := r.UpdateState(clients, l1Staking) if err != nil { - return nil, fmt.Errorf("update state err: %w", err) + return nil, 0, fmt.Errorf("update state err: %w", err) } if len(r.GetSubmitterSet()) == 0 { - return nil, fmt.Errorf("GetCurrentSubmitter: sequencer set is empty") + return nil, 0, fmt.Errorf("GetCurrentSubmitter: sequencer set is empty") } if r.epoch.Int64() == 0 { - return nil, fmt.Errorf("GetCurrentSubmitter: epoch is 0") + return nil, 0, fmt.Errorf("GetCurrentSubmitter: epoch is 0") } sec := time.Now().Unix() - r.startTime.Int64() seqIdx := sec / r.epoch.Int64() % int64(len(r.GetSequencerSet())) - return &r.GetSubmitterSet()[seqIdx], nil + return &r.GetSubmitterSet()[seqIdx], seqIdx, nil } diff --git a/tx-submitter/services/utils.go b/tx-submitter/services/utils.go index e8e185b42..302f692fe 100644 --- a/tx-submitter/services/utils.go +++ b/tx-submitter/services/utils.go @@ -5,7 +5,7 @@ import ( "math/big" "github.com/morph-l2/go-ethereum/common" - "github.com/morph-l2/go-ethereum/core/types" + ethtypes "github.com/morph-l2/go-ethereum/core/types" "github.com/morph-l2/go-ethereum/crypto/kzg4844" "github.com/morph-l2/go-ethereum/params" ) @@ -44,24 +44,39 @@ func calcThresholdValue(x *big.Int, isBlobTx bool) *big.Int { return threshold } -func calcFee(receipt *types.Receipt) float64 { +// calcFee calculates the total transaction fee in ETH +// For regular transactions: fee = gasUsed * effectiveGasPrice +// For blob transactions: fee = (gasUsed * effectiveGasPrice) + (blobGasUsed * blobGasPrice) +func calcFee(tx *ethtypes.Transaction, receipt *ethtypes.Receipt) *big.Float { + if receipt == nil || tx == nil { + return new(big.Float).SetUint64(0) + } - if receipt == nil || receipt.EffectiveGasPrice == nil { - return 0 + // Calculate base transaction fee + gasUsed := new(big.Float).SetUint64(receipt.GasUsed) + effectiveGasPrice := new(big.Float) + if receipt.EffectiveGasPrice != nil { + effectiveGasPrice.SetInt(receipt.EffectiveGasPrice) } + txFee := new(big.Float).Mul(gasUsed, effectiveGasPrice) - calldatafee := new(big.Int).Mul(receipt.EffectiveGasPrice, big.NewInt(int64(receipt.GasUsed))) - // blobfee - blobfee := big.NewInt(0) - if receipt.Type == types.BlobTxType { + // Convert to ETH + ethDenominator := new(big.Float).SetInt(big.NewInt(params.Ether)) + txFeeEth := new(big.Float).Quo(txFee, ethDenominator) + + // Add blob fee for blob transactions + if tx.Type() == ethtypes.BlobTxType { + blobGasUsed := new(big.Float).SetUint64(tx.BlobGas()) + blobGasPrice := new(big.Float) if receipt.BlobGasPrice != nil { - blobfee = new(big.Int).Mul(big.NewInt(int64(receipt.BlobGasUsed)), receipt.BlobGasPrice) + blobGasPrice.SetInt(receipt.BlobGasPrice) } - + blobFee := new(big.Float).Mul(blobGasUsed, blobGasPrice) + blobFeeEth := new(big.Float).Quo(blobFee, ethDenominator) + txFeeEth.Add(txFeeEth, blobFeeEth) } - fee := new(big.Int).Add(calldatafee, blobfee) - return ToEtherFloat(fee) + return txFeeEth } func ToEtherFloat(weiAmt *big.Int) float64 { diff --git a/tx-submitter/types/batch_cache.go b/tx-submitter/types/batch_cache.go index 481704a93..9be2d6031 100644 --- a/tx-submitter/types/batch_cache.go +++ b/tx-submitter/types/batch_cache.go @@ -45,13 +45,21 @@ func (b *BatchCache) Get(batchIndex uint64) (*eth.RPCRollupBatch, bool) { return nil, false } - if fetchedBatch != nil { - // Store in cache for future use + // Validate batch before caching - batch must exist and have signatures + if fetchedBatch != nil && len(fetchedBatch.Signatures) > 0 { + // Store valid batch in cache for future use b.m.Lock() b.batchCache[batchIndex] = fetchedBatch b.m.Unlock() return fetchedBatch, true + } else if fetchedBatch != nil { + // Batch exists but doesn't have signatures, don't cache it + log.Debug("Batch validation failed - no signatures", + "batch_index", batchIndex, + "found", fetchedBatch != nil, + "has_signatures", len(fetchedBatch.Signatures) > 0) + return fetchedBatch, true } } @@ -59,6 +67,15 @@ func (b *BatchCache) Get(batchIndex uint64) (*eth.RPCRollupBatch, bool) { } func (b *BatchCache) Set(batchIndex uint64, batch *eth.RPCRollupBatch) { + // Validate batch before caching - batch must exist and have signatures + if batch == nil || len(batch.Signatures) == 0 { + log.Debug("Refusing to cache invalid batch", + "batch_index", batchIndex, + "exists", batch != nil, + "has_signatures", batch != nil && len(batch.Signatures) > 0) + return + } + b.m.Lock() defer b.m.Unlock() diff --git a/tx-submitter/types/batch_cache_test.go b/tx-submitter/types/batch_cache_test.go index 9c880c537..ae1449fd0 100644 --- a/tx-submitter/types/batch_cache_test.go +++ b/tx-submitter/types/batch_cache_test.go @@ -30,8 +30,13 @@ func TestBatchCache(t *testing.T) { expectedBatch := ð.RPCRollupBatch{ Version: 1, + Signatures: []eth.RPCBatchSignature{ + { + Signature: []byte("signature"), + }, + }, } - mockFetcher.On("GetRollupBatchByIndex", uint64(1)).Return(expectedBatch, nil).Once() + mockFetcher.On("GetRollupBatchByIndex", uint64(1)).Return(expectedBatch, nil) batch, ok := cache.Get(1) assert.True(t, ok) @@ -64,13 +69,23 @@ func TestBatchCache(t *testing.T) { batch := ð.RPCRollupBatch{ Version: 1, + Signatures: []eth.RPCBatchSignature{ + { + Signature: []byte("signature"), + }, + }, } + // Add this line to set up the mock expectation + mockFetcher.On("GetRollupBatchByIndex", uint64(3)).Return(batch, nil).Maybe() + cache.Set(3, batch) gotBatch, ok := cache.Get(3) assert.True(t, ok) assert.Equal(t, batch, gotBatch) + + mockFetcher.AssertExpectations(t) }) t.Run("Delete batch", func(t *testing.T) { @@ -79,6 +94,11 @@ func TestBatchCache(t *testing.T) { batch := ð.RPCRollupBatch{ Version: 1, + Signatures: []eth.RPCBatchSignature{ + { + Signature: []byte("signature"), + }, + }, } cache.Set(4, batch) @@ -102,8 +122,22 @@ func TestBatchCache(t *testing.T) { mockFetcher := new(MockBatchFetcher) cache := NewBatchCache(mockFetcher) - batch1 := ð.RPCRollupBatch{Version: 1} - batch2 := ð.RPCRollupBatch{Version: 2} + batch1 := ð.RPCRollupBatch{ + Version: 1, + Signatures: []eth.RPCBatchSignature{ + { + Signature: []byte("signature1"), + }, + }, + } + batch2 := ð.RPCRollupBatch{ + Version: 2, + Signatures: []eth.RPCBatchSignature{ + { + Signature: []byte("signature2"), + }, + }, + } cache.Set(5, batch1) cache.Set(6, batch2) @@ -130,7 +164,14 @@ func TestBatchCache(t *testing.T) { cache := NewBatchCache(mockFetcher) // Pre-set a batch to avoid nil pointer in concurrent access - testBatch := ð.RPCRollupBatch{Version: 7} + testBatch := ð.RPCRollupBatch{ + Version: 7, + Signatures: []eth.RPCBatchSignature{ + { + Signature: []byte("signature"), + }, + }, + } cache.Set(7, testBatch) // Setup mock expectation to allow any number of calls diff --git a/tx-submitter/types/batch_cache_validation_test.go b/tx-submitter/types/batch_cache_validation_test.go new file mode 100644 index 000000000..c809b5e5e --- /dev/null +++ b/tx-submitter/types/batch_cache_validation_test.go @@ -0,0 +1,135 @@ +package types + +import ( + "testing" + + "github.com/morph-l2/go-ethereum/common" + "github.com/morph-l2/go-ethereum/eth" + "github.com/stretchr/testify/assert" +) + +func TestBatchValidation(t *testing.T) { + t.Run("Get - Valid batch with signatures is cached", func(t *testing.T) { + mockFetcher := new(MockBatchFetcher) + cache := NewBatchCache(mockFetcher) + + // Create valid batch with signatures + validBatch := ð.RPCRollupBatch{ + Version: 1, + Signatures: []eth.RPCBatchSignature{ + { + Signer: common.HexToAddress("0x1234567890123456789012345678901234567890"), + Signature: []byte("test-signature"), + }, + }, + } + + mockFetcher.On("GetRollupBatchByIndex", uint64(1)).Return(validBatch, nil).Once() + + // Get should return the batch and cache it + batch, ok := cache.Get(1) + assert.True(t, ok) + assert.Equal(t, validBatch, batch) + assert.Equal(t, 1, len(batch.Signatures)) + + // Second get should use cache without calling fetcher + batch, ok = cache.Get(1) + assert.True(t, ok) + assert.Equal(t, validBatch, batch) + + mockFetcher.AssertExpectations(t) + }) + + t.Run("Get - Invalid batch without signatures is not cached", func(t *testing.T) { + mockFetcher := new(MockBatchFetcher) + cache := NewBatchCache(mockFetcher) + + // Create invalid batch without signatures + invalidBatch := ð.RPCRollupBatch{ + Version: 1, + Signatures: []eth.RPCBatchSignature{}, // Empty signatures + } + + mockFetcher.On("GetRollupBatchByIndex", uint64(2)).Return(invalidBatch, nil).Once() + mockFetcher.On("GetRollupBatchByIndex", uint64(2)).Return(invalidBatch, nil).Once() // Second call because not cached + + // Get should return the batch but not cache it + batch, ok := cache.Get(2) + assert.True(t, ok) // Still returns true because batch was found, just not cached + assert.Equal(t, invalidBatch, batch) + assert.Equal(t, 0, len(batch.Signatures)) + + // Second get should call fetcher again since it wasn't cached + batch, ok = cache.Get(2) + assert.True(t, ok) + assert.Equal(t, invalidBatch, batch) + + mockFetcher.AssertExpectations(t) + }) + + t.Run("Set - Valid batch with signatures is stored", func(t *testing.T) { + mockFetcher := new(MockBatchFetcher) + cache := NewBatchCache(mockFetcher) + + // Create valid batch with signatures + validBatch := ð.RPCRollupBatch{ + Version: 1, + Signatures: []eth.RPCBatchSignature{ + { + Signer: common.HexToAddress("0x1234567890123456789012345678901234567890"), + Signature: []byte("test-signature"), + }, + }, + } + + // Set should store the batch + cache.Set(3, validBatch) + + // Get should retrieve from cache + batch, ok := cache.Get(3) + assert.True(t, ok) + assert.Equal(t, validBatch, batch) + }) + + t.Run("Set - Invalid batch without signatures is not stored", func(t *testing.T) { + mockFetcher := new(MockBatchFetcher) + cache := NewBatchCache(mockFetcher) + + // Create invalid batch without signatures + invalidBatch := ð.RPCRollupBatch{ + Version: 1, + Signatures: []eth.RPCBatchSignature{}, // Empty signatures + } + + // Set should not store the batch + cache.Set(4, invalidBatch) + + // Setup mock for fetching since batch shouldn't be in cache + mockFetcher.On("GetRollupBatchByIndex", uint64(4)).Return(nil, assert.AnError).Once() + + // Get should try to fetch from node and fail + batch, ok := cache.Get(4) + assert.False(t, ok) + assert.Nil(t, batch) + + mockFetcher.AssertExpectations(t) + }) + + t.Run("Set - Nil batch is not stored", func(t *testing.T) { + mockFetcher := new(MockBatchFetcher) + cache := NewBatchCache(mockFetcher) + + // Set with nil batch should not store anything + cache.Set(5, nil) + + // Setup mock for fetching since nothing should be in cache + mockFetcher.On("GetRollupBatchByIndex", uint64(5)).Return(nil, assert.AnError).Once() + + // Get should try to fetch from node and fail + batch, ok := cache.Get(5) + assert.False(t, ok) + assert.Nil(t, batch) + + mockFetcher.AssertExpectations(t) + }) +} diff --git a/tx-submitter/types/tx.go b/tx-submitter/types/tx.go new file mode 100644 index 000000000..45ec9644a --- /dev/null +++ b/tx-submitter/types/tx.go @@ -0,0 +1,13 @@ +package types + +import ( + "github.com/morph-l2/go-ethereum/core/types" +) + +// TxRecord represents a transaction record with metadata +type TxRecord struct { + Tx *types.Transaction + SendTime uint64 + QueryTimes uint64 // missing tx query times + Confirmed bool // Track if transaction has been confirmed in a block +} diff --git a/tx-submitter/utils/methods.go b/tx-submitter/utils/methods.go index b2e19782a..65a96c15a 100644 --- a/tx-submitter/utils/methods.go +++ b/tx-submitter/utils/methods.go @@ -135,3 +135,15 @@ func ParseStringToType[T any](s string) (T, error) { return result, nil } + +// WeiToGwei converts wei value to gwei string representation +func WeiToGwei(wei *big.Int) string { + if wei == nil { + return "0" + } + gwei := new(big.Float).Quo( + new(big.Float).SetInt(wei), + new(big.Float).SetInt64(1e9), + ) + return gwei.Text('f', 9) +} diff --git a/tx-submitter/utils/methods_test.go b/tx-submitter/utils/methods_test.go index 381cb65e4..ed050dda6 100644 --- a/tx-submitter/utils/methods_test.go +++ b/tx-submitter/utils/methods_test.go @@ -2,6 +2,7 @@ package utils import ( "fmt" + "math/big" "testing" "github.com/stretchr/testify/require" @@ -84,3 +85,71 @@ func TestParseStringToType(t *testing.T) { }) } } + +func TestWeiToGwei(t *testing.T) { + tests := []struct { + name string + input *big.Int + expected string + }{ + { + name: "nil input", + input: nil, + expected: "0", + }, + { + name: "zero wei", + input: big.NewInt(0), + expected: "0.000000000", + }, + { + name: "1 wei", + input: big.NewInt(1), + expected: "0.000000001", + }, + { + name: "1000 wei", + input: big.NewInt(1000), + expected: "0.000001000", + }, + { + name: "1 million wei", + input: big.NewInt(1000000), + expected: "0.001000000", + }, + { + name: "1 gwei", + input: big.NewInt(1e9), + expected: "1.000000000", + }, + { + name: "1.5 gwei", + input: big.NewInt(1.5e9), + expected: "1.500000000", + }, + { + name: "precise small number", + input: big.NewInt(123456789), + expected: "0.123456789", + }, + { + name: "large number", + input: new(big.Int).Mul(big.NewInt(1e18), big.NewInt(1000)), + expected: "1000000000000.000000000", + }, + { + name: "max precision test", + input: big.NewInt(1234567891), + expected: "1.234567891", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result := WeiToGwei(tt.input) + if result != tt.expected { + t.Errorf("WeiToGwei(%v) = %v, want %v", tt.input, result, tt.expected) + } + }) + } +} diff --git a/tx-submitter/utils/utils.go b/tx-submitter/utils/utils.go index 3f9a251bc..06de87e6e 100644 --- a/tx-submitter/utils/utils.go +++ b/tx-submitter/utils/utils.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "math/big" "reflect" "regexp" "strconv" @@ -36,10 +37,32 @@ func Loop(ctx context.Context, period time.Duration, f func()) { } func ParseFBatchIndex(calldata []byte) uint64 { - abi, _ := bindings.RollupMetaData.GetAbi() - parms, _ := abi.Methods["finalizeBatch"].Inputs.Unpack(calldata[4:]) - batchIndex, _ := ntype.BatchHeaderBytes(parms[0].([]byte)).BatchIndex() - return batchIndex + if len(calldata) < 4 { + return 0 + } + + abi, err := bindings.RollupMetaData.GetAbi() + if err != nil { + return 0 + } + + method, exists := abi.Methods["finalizeBatch"] + if !exists { + return 0 + } + + parms, err := method.Inputs.Unpack(calldata[4:]) + if err != nil || len(parms) == 0 { + return 0 + } + + batchBytes, ok := parms[0].([]byte) + if !ok || len(batchBytes) < 9 { + return 0 + } + + // 1-9 is batch index + return binary.BigEndian.Uint64(batchBytes[1:9]) } func ParseParentBatchIndex(calldata []byte) uint64 { @@ -56,6 +79,46 @@ func ParseParentBatchIndex(calldata []byte) uint64 { return batchIndex } +// SetFBatchIndex sets the batch index in the calldata while preserving all other data +func SetFBatchIndex(calldata []byte, batchIndex uint64) error { + if len(calldata) < 4 { + return fmt.Errorf("calldata too short") + } + + abi, err := bindings.RollupMetaData.GetAbi() + if err != nil { + return fmt.Errorf("failed to get ABI: %w", err) + } + + method, exists := abi.Methods["finalizeBatch"] + if !exists { + return fmt.Errorf("finalizeBatch method not found in ABI") + } + + parms, err := method.Inputs.Unpack(calldata[4:]) + if err != nil || len(parms) == 0 { + return fmt.Errorf("failed to unpack parameters: %w", err) + } + + batchBytes, ok := parms[0].([]byte) + if !ok || len(batchBytes) < 9 { + return fmt.Errorf("invalid batch bytes") + } + + // Modify only the batch index (bytes 1-9) while keeping other data unchanged + binary.BigEndian.PutUint64(batchBytes[1:9], batchIndex) + + // Re-encode the parameters + encodedParams, err := method.Inputs.Pack(batchBytes) + if err != nil { + return fmt.Errorf("failed to pack parameters: %w", err) + } + + // Update only the parameter portion, keeping the method ID unchanged + copy(calldata[4:], encodedParams) + return nil +} + // ParseL1Mempool parses the L1 mempool and returns the transactions. func ParseL1Mempool(rpc *rpc.Client, addr common.Address) ([]*types.Transaction, error) { @@ -185,3 +248,12 @@ func ParseL1MessageCnt(blockContexts hexutil.Bytes) uint64 { return l1msgcnt } + +// FormatTime formats a timestamp into RFC3339 format string. +// Returns "N/A" for nil or non-positive timestamps. +func FormatTime(timestamp *big.Int) string { + if timestamp == nil || timestamp.Int64() <= 0 { + return "N/A" + } + return time.Unix(timestamp.Int64(), 0).Format(time.RFC3339) +} diff --git a/tx-submitter/utils/utils_test.go b/tx-submitter/utils/utils_test.go index 71cf61114..75f2382f2 100644 --- a/tx-submitter/utils/utils_test.go +++ b/tx-submitter/utils/utils_test.go @@ -9,8 +9,35 @@ import ( // test ParseBatchIndex func TestParseBatchIndex(t *testing.T) { - calldata := "7c41b6ac00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000006a01569a961a135cd518f1d60b16690ed77cbb57ff41f140666ffb0b1938147c8531e7b0d46e12a1124700d67365d60df674e29aedc1aebfab8a2516418dcb3bf2227ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d757000000000000000000000000000000000000000000000000000000000000007900000000000000001000000000000000000000000000000004990fbff45d7e8597d187ce8259265d90fe605c7d19e9988e1bf8f7d66cc7758f01a327088bb2b13151449d8313c281d0006d12e8453e863637b746898b6ad5a63ca0f329a4dd37e80ce4b871ad90e271ea9c989cb1c3fc0a8b7e2b597f9309d4000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004b114000000000000012e00000000665d92ba0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000012f00000000665d92c10000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013000000000665d92c70000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013100000000665d92cd0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013200000000665d92d40000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013300000000665d92da0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013400000000665d92e00000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013500000000665d92e70000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013600000000665d92ed0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013700000000665d92f40000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013800000000665d92fa0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013900000000665d93000000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013a00000000665d93040000000000000000000000000000000000000000000000000000000000000000000000000098968000010000000000000000013b00000000665d930b0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013c00000000665d93110000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013d00000000665d93180000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013e00000000665d931e0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000013f00000000665d93240000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000014000000000665d932b0000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000014100000000665d93310000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000004000000000000000000000000310824aa27a29d269d2f9c0a8563c0e3c98dd226000000000000000000000000343c5154ffe47c8a07df5ea6846404e68e9809a2000000000000000000000000783698dcdebdc96785c5c60ed96113612ba09c2b000000000000000000000000aac606d51de6a5abf0d1b9dbd5ed5ff2ac2e521b00000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000783698dcdebdc96785c5c60ed96113612ba09c2b000000000000000000000000310824aa27a29d269d2f9c0a8563c0e3c98dd226000000000000000000000000343c5154ffe47c8a07df5ea6846404e68e9809a2000000000000000000000000aac606d51de6a5abf0d1b9dbd5ed5ff2ac2e521b0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000783698dcdebdc96785c5c60ed96113612ba09c2b000000000000000000000000310824aa27a29d269d2f9c0a8563c0e3c98dd226000000000000000000000000343c5154ffe47c8a07df5ea6846404e68e9809a2000000000000000000000000aac606d51de6a5abf0d1b9dbd5ed5ff2ac2e521b0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000783698dcdebdc96785c5c60ed96113612ba09c2b000000000000000000000000310824aa27a29d269d2f9c0a8563c0e3c98dd226000000000000000000000000343c5154ffe47c8a07df5ea6846404e68e9809a2000000000000000000000000aac606d51de6a5abf0d1b9dbd5ed5ff2ac2e521b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000523732e2d1bd32915c305d4c1c444a45d8d86bfac774ebe433fe9189e2e19e9191d060297472b470e78145e09b3572600000000000000000000000000000000039635922129044f931b0ae73aa7c0f1d4224f0ec6d72bd87ab0d436bbf26e0ca7e2bf29ee3ee94850a87be7c6c77deb" + calldata := "4a8d544f00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001e02c48c62b7604ecf508766324cd85afdc5faeb86de53f12dee5c24c7e25957b02018f517672a7760905227d4f085cf88d82b4793497846bb366b6cedd69af06aae5857a041c5a53ed68439ff4c9b8a79b9b749eb93f1e07ed07f58d60ebcf737300000000000000000000000000000000000000000000000000000000000000f900000000000000377b00000000000000000000000000001d987eb22c17eea2e2e3f3756599686586cbc42883ceedded826bc8508c13539cf6e017301c53247c7de720dd18b7d668cbcc17cb711a7aae46fbc43224203e0bca62c74b38e4c32df8e0656c3bd6acedc0ec57684327c99d10a1247f00ab8d3dece2c48c62b7604ecf508766324cd85afdc5faeb86de53f12dee5c24c7e25957b02e5857a041c5a53ed68439ff4c9b8a79b9b749eb93f1e07ed07f58d60ebcf7373a4d7461c3b8d74650efdca322d5fe15e699d534ee47ec9321bcb82bc7a9ec6e97bf7c21d9929b9d5d906a163a1dd8e74341ef11f7b84681b67d76953ee6ee3fb000000000000000000000000000000000000000000000000000000000000000000000000008ca2025800000000006acc320000000067d1c5aa00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc330000000067d1c5ab00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acc340000000067d1c5ac00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc350000000067d1c5ad00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc360000000067d1c5ae00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc370000000067d1c5af00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc380000000067d1c5b000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800004000000000000006acc390000000067d1c5b100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc3a0000000067d1c5b200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc3b0000000067d1c5b300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc3c0000000067d1c5b500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc3d0000000067d1c5b600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc3e0000000067d1c5b700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc3f0000000067d1c5b900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc400000000067d1c5ba00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc410000000067d1c5bc00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc420000000067d1c5bd00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc430000000067d1c5be00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc440000000067d1c5bf00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc450000000067d1c5c000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc460000000067d1c5c100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc470000000067d1c5c200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc480000000067d1c5c300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc490000000067d1c5c400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc4a0000000067d1c5c500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc4b0000000067d1c5c600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acc4c0000000067d1c5c700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc4d0000000067d1c5c800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc4e0000000067d1c5c900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc4f0000000067d1c5ca00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc500000000067d1c5cc00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc510000000067d1c5cd00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc520000000067d1c5ce00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc530000000067d1c5cf00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc540000000067d1c5d000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800005000000000000006acc550000000067d1c5d100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc560000000067d1c5d200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc570000000067d1c5d300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc580000000067d1c5d400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc590000000067d1c5d500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acc5a0000000067d1c5d600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc5b0000000067d1c5d700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc5c0000000067d1c5d800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc5d0000000067d1c5d900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc5e0000000067d1c5da00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acc5f0000000067d1c5db00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc600000000067d1c5dc00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc610000000067d1c5dd00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc620000000067d1c5de00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc630000000067d1c5df00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc640000000067d1c5e000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc650000000067d1c5e200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc660000000067d1c5e300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc670000000067d1c5e400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc680000000067d1c5e500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc690000000067d1c5e600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc6a0000000067d1c5e700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc6b0000000067d1c5e800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc6c0000000067d1c5e900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acc6d0000000067d1c5ea00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc6e0000000067d1c5eb00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc6f0000000067d1c5ec00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acc700000000067d1c5ed00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc710000000067d1c5ee00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc720000000067d1c5ef00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc730000000067d1c5f000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc740000000067d1c5f300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc750000000067d1c5f400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc760000000067d1c5f500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc770000000067d1c5f600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc780000000067d1c5f700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc790000000067d1c5f800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc7a0000000067d1c5f900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc7b0000000067d1c5fa00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc7c0000000067d1c5fb00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc7d0000000067d1c5fc00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc7e0000000067d1c5fd00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc7f0000000067d1c5ff00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc800000000067d1c60000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc810000000067d1c60200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc820000000067d1c60300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc830000000067d1c60400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc840000000067d1c60600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc850000000067d1c60700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc860000000067d1c60800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc870000000067d1c60a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc880000000067d1c60c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc890000000067d1c60e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc8a0000000067d1c60f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acc8b0000000067d1c61000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acc8c0000000067d1c61200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc8d0000000067d1c61300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc8e0000000067d1c61400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc8f0000000067d1c61500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acc900000000067d1c61600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc910000000067d1c61700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc920000000067d1c61800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc930000000067d1c61900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc940000000067d1c61a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc950000000067d1c61b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc960000000067d1c61d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc970000000067d1c61e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc980000000067d1c61f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc990000000067d1c62000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc9a0000000067d1c62100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc9b0000000067d1c62200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acc9c0000000067d1c62300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc9d0000000067d1c62500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acc9e0000000067d1c62600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acc9f0000000067d1c62700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acca00000000067d1c62800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acca10000000067d1c62a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acca20000000067d1c62b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acca30000000067d1c62c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acca40000000067d1c62d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acca50000000067d1c62e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acca60000000067d1c63000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acca70000000067d1c63300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acca80000000067d1c63400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acca90000000067d1c63600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accaa0000000067d1c63900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accab0000000067d1c63a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accac0000000067d1c63d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accad0000000067d1c63e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accae0000000067d1c63f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accaf0000000067d1c64100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accb00000000067d1c64300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accb10000000067d1c64500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006accb20000000067d1c64700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accb30000000067d1c64900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accb40000000067d1c64b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accb50000000067d1c64c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accb60000000067d1c64e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accb70000000067d1c64f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accb80000000067d1c65000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accb90000000067d1c65200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accba0000000067d1c65300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accbb0000000067d1c65400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accbc0000000067d1c65500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accbd0000000067d1c65600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accbe0000000067d1c65700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accbf0000000067d1c65900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accc00000000067d1c65a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006accc10000000067d1c65b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accc20000000067d1c65c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accc30000000067d1c65d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accc40000000067d1c65e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accc50000000067d1c65f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accc60000000067d1c66000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006accc70000000067d1c66100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accc80000000067d1c66200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accc90000000067d1c66300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accca0000000067d1c66400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acccb0000000067d1c66500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acccc0000000067d1c66600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acccd0000000067d1c66700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006accce0000000067d1c66800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acccf0000000067d1c66900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accd00000000067d1c66a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accd10000000067d1c66b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006accd20000000067d1c66c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006accd30000000067d1c66d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accd40000000067d1c66e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accd50000000067d1c66f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accd60000000067d1c67000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006accd70000000067d1c67200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accd80000000067d1c67300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accd90000000067d1c67400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accda0000000067d1c67500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accdb0000000067d1c67600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accdc0000000067d1c67700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accdd0000000067d1c67800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accde0000000067d1c67900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accdf0000000067d1c67a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acce00000000067d1c67b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acce10000000067d1c67c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acce20000000067d1c67d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acce30000000067d1c67e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acce40000000067d1c67f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acce50000000067d1c68000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acce60000000067d1c68100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acce70000000067d1c68200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acce80000000067d1c68300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acce90000000067d1c68400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accea0000000067d1c68500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acceb0000000067d1c68600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006accec0000000067d1c68700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acced0000000067d1c68800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006accee0000000067d1c68900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accef0000000067d1c68b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accf00000000067d1c68d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accf10000000067d1c68e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accf20000000067d1c68f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accf30000000067d1c69000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006accf40000000067d1c69100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accf50000000067d1c69200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006accf60000000067d1c69300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006accf70000000067d1c69400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accf80000000067d1c69500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accf90000000067d1c69600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006accfa0000000067d1c69700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accfb0000000067d1c69800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accfc0000000067d1c69900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accfd0000000067d1c69a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006accfe0000000067d1c69b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006accff0000000067d1c69c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd000000000067d1c69d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd010000000067d1c69e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd020000000067d1c69f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd030000000067d1c6a000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd040000000067d1c6a100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd050000000067d1c6a300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd060000000067d1c6a400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd070000000067d1c6a500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd080000000067d1c6a600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd090000000067d1c6a700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd0a0000000067d1c6a800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd0b0000000067d1c6a900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd0c0000000067d1c6aa00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd0d0000000067d1c6ab00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd0e0000000067d1c6ac00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd0f0000000067d1c6af00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd100000000067d1c6b100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd110000000067d1c6b200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd120000000067d1c6b300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd130000000067d1c6b500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd140000000067d1c6b800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd150000000067d1c6bb00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd160000000067d1c6bd00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd170000000067d1c6bf00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd180000000067d1c6c100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd190000000067d1c6c300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd1a0000000067d1c6c400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd1b0000000067d1c6c500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd1c0000000067d1c6c600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd1d0000000067d1c6c700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd1e0000000067d1c6c800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd1f0000000067d1c6ca00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd200000000067d1c6cb00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd210000000067d1c6cd00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd220000000067d1c6ce00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd230000000067d1c6cf00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd240000000067d1c6d100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd250000000067d1c6d300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd260000000067d1c6d400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd270000000067d1c6d500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd280000000067d1c6d600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd290000000067d1c6d800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd2a0000000067d1c6da00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd2b0000000067d1c6dc00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd2c0000000067d1c6de00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd2d0000000067d1c6df00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd2e0000000067d1c6e000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd2f0000000067d1c6e200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd300000000067d1c6e300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd310000000067d1c6e400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd320000000067d1c6e500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd330000000067d1c6e600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd340000000067d1c6e800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd350000000067d1c6e900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd360000000067d1c6eb00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd370000000067d1c6ed00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd380000000067d1c6ef00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd390000000067d1c6f100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd3a0000000067d1c6f200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd3b0000000067d1c6f300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd3c0000000067d1c6f500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd3d0000000067d1c6f600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd3e0000000067d1c6f700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd3f0000000067d1c6f800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd400000000067d1c6fa00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd410000000067d1c6fb00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd420000000067d1c6fc00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd430000000067d1c6fd00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd440000000067d1c6fe00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd450000000067d1c6ff00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd460000000067d1c70000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd470000000067d1c70100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd480000000067d1c70200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd490000000067d1c70300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd4a0000000067d1c70400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd4b0000000067d1c70500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd4c0000000067d1c70600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd4d0000000067d1c70700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd4e0000000067d1c70800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd4f0000000067d1c70900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acd500000000067d1c70b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd510000000067d1c70c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd520000000067d1c70d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd530000000067d1c70e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd540000000067d1c70f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd550000000067d1c71000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd560000000067d1c71100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd570000000067d1c71300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd580000000067d1c71500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd590000000067d1c71600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acd5a0000000067d1c71700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd5b0000000067d1c71800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd5c0000000067d1c71900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd5d0000000067d1c71a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800004000000000000006acd5e0000000067d1c71b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd5f0000000067d1c71c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd600000000067d1c71d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acd610000000067d1c71e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd620000000067d1c71f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd630000000067d1c72000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd640000000067d1c72100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd650000000067d1c72200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acd660000000067d1c72300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd670000000067d1c72400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd680000000067d1c72500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd690000000067d1c72600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd6a0000000067d1c72700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd6b0000000067d1c72800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd6c0000000067d1c72900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd6d0000000067d1c72a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd6e0000000067d1c72b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800004000000000000006acd6f0000000067d1c72c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd700000000067d1c72e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd710000000067d1c72f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd720000000067d1c73000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd730000000067d1c73100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd740000000067d1c73200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd750000000067d1c73300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd760000000067d1c73400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd770000000067d1c73500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd780000000067d1c73600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd790000000067d1c73700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acd7a0000000067d1c73800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd7b0000000067d1c73900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd7c0000000067d1c73a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd7d0000000067d1c73b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acd7e0000000067d1c73c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd7f0000000067d1c73e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acd800000000067d1c73f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd810000000067d1c74000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd820000000067d1c74100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd830000000067d1c74200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acd840000000067d1c74300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd850000000067d1c74400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd860000000067d1c74500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd870000000067d1c74600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd880000000067d1c74700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acd890000000067d1c74800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd8a0000000067d1c74900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acd8b0000000067d1c74a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd8c0000000067d1c74b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd8d0000000067d1c74c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd8e0000000067d1c74d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd8f0000000067d1c74f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd900000000067d1c75000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd910000000067d1c75100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd920000000067d1c75200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd930000000067d1c75300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd940000000067d1c75500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd950000000067d1c75600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd960000000067d1c75700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd970000000067d1c75800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd980000000067d1c75900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd990000000067d1c75a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd9a0000000067d1c75b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd9b0000000067d1c75c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd9c0000000067d1c75d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd9d0000000067d1c75e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd9e0000000067d1c75f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acd9f0000000067d1c76000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acda00000000067d1c76200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acda10000000067d1c76300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acda20000000067d1c76500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acda30000000067d1c76600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acda40000000067d1c76700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acda50000000067d1c76800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acda60000000067d1c76a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acda70000000067d1c76b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acda80000000067d1c76c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acda90000000067d1c76d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdaa0000000067d1c76e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdab0000000067d1c76f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acdac0000000067d1c77000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdad0000000067d1c77100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdae0000000067d1c77200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdaf0000000067d1c77300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdb00000000067d1c77400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdb10000000067d1c77500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdb20000000067d1c77600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdb30000000067d1c77700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdb40000000067d1c77800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acdb50000000067d1c77900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acdb60000000067d1c77a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acdb70000000067d1c77b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdb80000000067d1c77c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdb90000000067d1c77e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdba0000000067d1c78000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdbb0000000067d1c78200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdbc0000000067d1c78300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdbd0000000067d1c78400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdbe0000000067d1c78600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdbf0000000067d1c78700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdc00000000067d1c78800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdc10000000067d1c78b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdc20000000067d1c78c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdc30000000067d1c78d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdc40000000067d1c78f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdc50000000067d1c79100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdc60000000067d1c79300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdc70000000067d1c79400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdc80000000067d1c79500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdc90000000067d1c79700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdca0000000067d1c79800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acdcb0000000067d1c79900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acdcc0000000067d1c79b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdcd0000000067d1c79c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdce0000000067d1c79e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdcf0000000067d1c79f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdd00000000067d1c7a000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdd10000000067d1c7a200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdd20000000067d1c7a400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdd30000000067d1c7a600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdd40000000067d1c7a700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdd50000000067d1c7a800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdd60000000067d1c7a900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdd70000000067d1c7aa00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdd80000000067d1c7ab00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdd90000000067d1c7ac00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdda0000000067d1c7ad00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acddb0000000067d1c7ae00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acddc0000000067d1c7af00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acddd0000000067d1c7b000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdde0000000067d1c7b100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acddf0000000067d1c7b200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acde00000000067d1c7b300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acde10000000067d1c7b500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acde20000000067d1c7b700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acde30000000067d1c7b800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acde40000000067d1c7b900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acde50000000067d1c7bb00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acde60000000067d1c7bc00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acde70000000067d1c7bd00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acde80000000067d1c7bf00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acde90000000067d1c7c000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdea0000000067d1c7c200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdeb0000000067d1c7c300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdec0000000067d1c7c400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acded0000000067d1c7c500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006acdee0000000067d1c7c600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdef0000000067d1c7c800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdf00000000067d1c7c900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acdf10000000067d1c7ca00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdf20000000067d1c7cb00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdf30000000067d1c7cc00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdf40000000067d1c7cd00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdf50000000067d1c7ce00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdf60000000067d1c7d000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdf70000000067d1c7d100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdf80000000067d1c7d200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdf90000000067d1c7d300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdfa0000000067d1c7d400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006acdfb0000000067d1c7d500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdfc0000000067d1c7d600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdfd0000000067d1c7d700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdfe0000000067d1c7d800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006acdff0000000067d1c7d900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace000000000067d1c7da00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace010000000067d1c7db00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace020000000067d1c7dd00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace030000000067d1c7df00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace040000000067d1c7e000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace050000000067d1c7e100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800005000000000000006ace060000000067d1c7e200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace070000000067d1c7e300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace080000000067d1c7e400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace090000000067d1c7e500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace0a0000000067d1c7e600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace0b0000000067d1c7e700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace0c0000000067d1c7e800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace0d0000000067d1c7e900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006ace0e0000000067d1c7ea00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace0f0000000067d1c7eb00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006ace100000000067d1c7ec00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006ace110000000067d1c7ed00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace120000000067d1c7ee00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace130000000067d1c7ef00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace140000000067d1c7f000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace150000000067d1c7f100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace160000000067d1c7f200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace170000000067d1c7f300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace180000000067d1c7f400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006ace190000000067d1c7f500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace1a0000000067d1c7f700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace1b0000000067d1c7f800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace1c0000000067d1c7f900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace1d0000000067d1c7fa00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace1e0000000067d1c7fb00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006ace1f0000000067d1c7fc00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace200000000067d1c7fd00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace210000000067d1c7fe00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace220000000067d1c7ff00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace230000000067d1c80000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace240000000067d1c80100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace250000000067d1c80200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace260000000067d1c80300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace270000000067d1c80400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace280000000067d1c80500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace290000000067d1c80600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace2a0000000067d1c80800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace2b0000000067d1c80900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace2c0000000067d1c80a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace2d0000000067d1c80c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace2e0000000067d1c80d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace2f0000000067d1c80e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace300000000067d1c81000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace310000000067d1c81100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace320000000067d1c81200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace330000000067d1c81300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace340000000067d1c81400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace350000000067d1c81500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace360000000067d1c81600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace370000000067d1c81700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace380000000067d1c81800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace390000000067d1c81900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800004000000000000006ace3a0000000067d1c81b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace3b0000000067d1c81c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace3c0000000067d1c81d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace3d0000000067d1c81f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace3e0000000067d1c82100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006ace3f0000000067d1c82300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace400000000067d1c82400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace410000000067d1c82500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace420000000067d1c82600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace430000000067d1c82700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace440000000067d1c82800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace450000000067d1c82900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace460000000067d1c82a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace470000000067d1c82b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace480000000067d1c82c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace490000000067d1c82d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace4a0000000067d1c82e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006ace4b0000000067d1c83000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace4c0000000067d1c83100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace4d0000000067d1c83200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace4e0000000067d1c83400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace4f0000000067d1c83500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace500000000067d1c83600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace510000000067d1c83700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace520000000067d1c83800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace530000000067d1c83900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace540000000067d1c83a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace550000000067d1c83b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace560000000067d1c83c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace570000000067d1c83d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace580000000067d1c83e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006ace590000000067d1c83f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace5a0000000067d1c84100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace5b0000000067d1c84200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace5c0000000067d1c84300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace5d0000000067d1c84400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace5e0000000067d1c84500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace5f0000000067d1c84700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace600000000067d1c84900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace610000000067d1c84a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace620000000067d1c84b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace630000000067d1c84c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace640000000067d1c84d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace650000000067d1c84e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace660000000067d1c84f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace670000000067d1c85000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace680000000067d1c85100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace690000000067d1c85200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace6a0000000067d1c85300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006ace6b0000000067d1c85400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace6c0000000067d1c85600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace6d0000000067d1c85800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace6e0000000067d1c85900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace6f0000000067d1c85a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace700000000067d1c85b00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace710000000067d1c85c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace720000000067d1c85d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace730000000067d1c85e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace740000000067d1c85f00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace750000000067d1c86000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace760000000067d1c86100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace770000000067d1c86300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace780000000067d1c86400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace790000000067d1c86500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace7a0000000067d1c86700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace7b0000000067d1c86800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace7c0000000067d1c86900000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace7d0000000067d1c86a00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace7e0000000067d1c86c00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace7f0000000067d1c86d00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace800000000067d1c86e00000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace810000000067d1c87000000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace820000000067d1c87100000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace830000000067d1c87200000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800003000000000000006ace840000000067d1c87300000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace850000000067d1c87400000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace860000000067d1c87500000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace870000000067d1c87600000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800002000000000000006ace880000000067d1c87700000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000006ace890000000067d1c87800000000000000000000000000000000000000000000000000000000000f42400000000001c9c3800001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fe0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000000070000000000000000000000006ab0e960911b50f6d14f249782ac12ec3e7584a0000000000000000000000000bba36cdf020788f0d08d5688c0bee3fb30ce1c8000000000000000000000000034e387b37d3adeaa6d5b92ce30de3af3dca39796000000000000000000000000a59b26db10c5ca26a97aa2fd2e74cb8da9d1eb65000000000000000000000000f834ffbeb6bb3f4841afc6b5fb40b94cd580fa2300000000000000000000000061f2945d4bc9e40b66a6376d1094a50438f613e2000000000000000000000000b6cf39ee72e0127e6ea6059e38b8c197227a6ac700000000000000000000000000000000000000000000000000000000000000070000000000000000000000006ab0e960911b50f6d14f249782ac12ec3e7584a0000000000000000000000000bba36cdf020788f0d08d5688c0bee3fb30ce1c8000000000000000000000000034e387b37d3adeaa6d5b92ce30de3af3dca39796000000000000000000000000a59b26db10c5ca26a97aa2fd2e74cb8da9d1eb65000000000000000000000000f834ffbeb6bb3f4841afc6b5fb40b94cd580fa2300000000000000000000000061f2945d4bc9e40b66a6376d1094a50438f613e2000000000000000000000000b6cf39ee72e0127e6ea6059e38b8c197227a6ac700000000000000000000000000000000000000000000000000000000000000070000000000000000000000006ab0e960911b50f6d14f249782ac12ec3e7584a0000000000000000000000000bba36cdf020788f0d08d5688c0bee3fb30ce1c8000000000000000000000000034e387b37d3adeaa6d5b92ce30de3af3dca39796000000000000000000000000a59b26db10c5ca26a97aa2fd2e74cb8da9d1eb65000000000000000000000000f834ffbeb6bb3f4841afc6b5fb40b94cd580fa2300000000000000000000000061f2945d4bc9e40b66a6376d1094a50438f613e2000000000000000000000000b6cf39ee72e0127e6ea6059e38b8c197227a6ac700000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000015f903b2fe6b812c9c5b4882525df682e2a26238bdd18badf5a4d3bf2dc2ec8acd600d92182181e25359a631da62585b00000000000000000000000000000000022a08b55fac8d2669fb3a47977ac43b2b9918d953532cab1625c9e94f49c333b7160442a38e8399a285646df4081c60" bs, err := hex.DecodeString(calldata) require.NoError(t, err) - require.EqualValues(t, ParseParentBatchIndex(bs), 16) + require.EqualValues(t, ParseParentBatchIndex(bs), 14203) +} + +func TestParseFBatchIndex(t *testing.T) { + // Test case 1: Original test case + calldata := "13361101000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f90000000000000036a700000000000000000000000000001d630ed957794a607e274cdd09fd72217c7c2d9c0be5c11f993d66bf58f1ba098d950170e28b2b52dabe6efe96dbcfe85f691872adb80af292efbb7ded8e53ada1a000d75f5b0490922155046b8428750e9eede0df103c264d67434112e0b4320b8702e53bafa072ec3bbdafbbed9601a82f193d6d64db604ed931a0617779ccebb63d83b92dd5879bfb5e44ba433bafbb65afc822c7d000210ec0d296c59446d2cfa4d7461c3b8d74650efdca322d5fe15e699d534ee47ec9321bcb82bc7a9ec6e9260ff211c1f2db0cf21655a25035100797bc47c339502a0f1a791c0739d4e96000000000000000" + bs, err := hex.DecodeString(calldata) + require.NoError(t, err) + require.EqualValues(t, ParseFBatchIndex(bs), 13991) + + // Test case 2: Modify batch index + err = SetFBatchIndex(bs, 13992) + require.NoError(t, err) + require.EqualValues(t, ParseFBatchIndex(bs), 13992) + + // Test case 3: Test with invalid calldata + invalidCalldata := []byte{0x12, 0x34} // Too short + require.EqualValues(t, ParseFBatchIndex(invalidCalldata), 0) + + // Test case 4: Test with large batch index + err = SetFBatchIndex(bs, 999999) + require.NoError(t, err) + require.EqualValues(t, ParseFBatchIndex(bs), 999999) + + // Test case 5: Test with zero batch index + err = SetFBatchIndex(bs, 0) + require.NoError(t, err) + require.EqualValues(t, ParseFBatchIndex(bs), 0) } From 96e2b50a97b3f996b1b501723be6d2e3f9bd40ab Mon Sep 17 00:00:00 2001 From: vincent Date: Wed, 26 Mar 2025 14:59:04 +0800 Subject: [PATCH 093/106] Prover update for morph203 (#736) Co-authored-by: chengwenxi <22697326+chengwenxi@users.noreply.github.com> --- contracts/src/deploy-config/holesky.ts | 2 +- contracts/src/deploy-config/l1.ts | 2 +- contracts/src/deploy-config/qanetl1.ts | 2 +- contracts/src/deploy-config/sepolia.ts | 2 +- contracts/src/deploy-config/testnetl1.ts | 2 +- prover/Cargo.lock | 8 +- prover/Cargo.toml | 5 - prover/README.md | 2 +- .../client/elf/riscv32im-succinct-zkvm-elf | Bin 5111648 -> 5214828 bytes prover/crates/core/src/hardfork.rs | 28 +- .../testdata/morph203/morph203_0_traces.json | 13648 ++++++ .../testdata/morph203/morph203_1_traces.json | 9576 ++++ .../testdata/morph203/morph203_2_traces.json | 36264 ++++++++++++++++ .../testdata/morph203/morph203_3_traces.json | 24984 +++++++++++ 14 files changed, 84505 insertions(+), 20 deletions(-) create mode 100644 prover/testdata/morph203/morph203_0_traces.json create mode 100644 prover/testdata/morph203/morph203_1_traces.json create mode 100644 prover/testdata/morph203/morph203_2_traces.json create mode 100644 prover/testdata/morph203/morph203_3_traces.json diff --git a/contracts/src/deploy-config/holesky.ts b/contracts/src/deploy-config/holesky.ts index 39886ab3c..c46372ea5 100644 --- a/contracts/src/deploy-config/holesky.ts +++ b/contracts/src/deploy-config/holesky.ts @@ -14,7 +14,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x0067523b285111b45b465b927d56449351e78d802252ccbf4bcf5eae588b7356', + programVkey: '0x006c835a4c049b699a3675fefa51b182c7efe404a656151c0410245966724bc3', // rollup contract config // initialize config finalizationPeriodSeconds: 600, diff --git a/contracts/src/deploy-config/l1.ts b/contracts/src/deploy-config/l1.ts index 2a57b3049..0aa7ee787 100644 --- a/contracts/src/deploy-config/l1.ts +++ b/contracts/src/deploy-config/l1.ts @@ -17,7 +17,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x0067523b285111b45b465b927d56449351e78d802252ccbf4bcf5eae588b7356', + programVkey: '0x006c835a4c049b699a3675fefa51b182c7efe404a656151c0410245966724bc3', // rollup contract config // initialize config finalizationPeriodSeconds: 10, diff --git a/contracts/src/deploy-config/qanetl1.ts b/contracts/src/deploy-config/qanetl1.ts index 0b29da67a..3b95afb4a 100644 --- a/contracts/src/deploy-config/qanetl1.ts +++ b/contracts/src/deploy-config/qanetl1.ts @@ -16,7 +16,7 @@ const config = { l2BaseFee: 0.1, // Gwei // verify contract config - programVkey: '0x0067523b285111b45b465b927d56449351e78d802252ccbf4bcf5eae588b7356', + programVkey: '0x006c835a4c049b699a3675fefa51b182c7efe404a656151c0410245966724bc3', // rollup contract config // initialize config finalizationPeriodSeconds: 600, diff --git a/contracts/src/deploy-config/sepolia.ts b/contracts/src/deploy-config/sepolia.ts index 3831e28b8..e8838ba00 100644 --- a/contracts/src/deploy-config/sepolia.ts +++ b/contracts/src/deploy-config/sepolia.ts @@ -18,7 +18,7 @@ const config = { /** * ---to---legacy property */ - programVkey: '0x0067523b285111b45b465b927d56449351e78d802252ccbf4bcf5eae588b7356', + programVkey: '0x006c835a4c049b699a3675fefa51b182c7efe404a656151c0410245966724bc3', rollupMinDeposit: 0.0001, rollupProofWindow: 86400, rollupGenesisBlockNumber: 0, diff --git a/contracts/src/deploy-config/testnetl1.ts b/contracts/src/deploy-config/testnetl1.ts index 7362fc926..2d95a2324 100644 --- a/contracts/src/deploy-config/testnetl1.ts +++ b/contracts/src/deploy-config/testnetl1.ts @@ -13,7 +13,7 @@ const config = { sequencerWindowSize: 200, channelTimeout: 120, - programVkey: '0x0067523b285111b45b465b927d56449351e78d802252ccbf4bcf5eae588b7356', + programVkey: '0x006c835a4c049b699a3675fefa51b182c7efe404a656151c0410245966724bc3', rollupMinDeposit: 1, rollupProofWindow: 100, rollupGenesisBlockNumber: 0, diff --git a/prover/Cargo.lock b/prover/Cargo.lock index 0aeae50ff..bca962086 100644 --- a/prover/Cargo.lock +++ b/prover/Cargo.lock @@ -5095,7 +5095,7 @@ dependencies = [ [[package]] name = "revm" version = "14.0.0" -source = "git+https://github.com/morph-l2/revm?branch=release/v42#028eb309a053bfcc1c7fd14b4cf623c0821e6c96" +source = "git+https://github.com/morph-l2/revm?branch=release/v42#91f2d1a886e60c40b13ec178f3160001c71c0912" dependencies = [ "auto_impl", "cfg-if 1.0.0", @@ -5109,7 +5109,7 @@ dependencies = [ [[package]] name = "revm-interpreter" version = "10.0.0" -source = "git+https://github.com/morph-l2/revm?branch=release/v42#028eb309a053bfcc1c7fd14b4cf623c0821e6c96" +source = "git+https://github.com/morph-l2/revm?branch=release/v42#91f2d1a886e60c40b13ec178f3160001c71c0912" dependencies = [ "cfg-if 1.0.0", "revm-primitives", @@ -5119,7 +5119,7 @@ dependencies = [ [[package]] name = "revm-precompile" version = "11.0.0" -source = "git+https://github.com/morph-l2/revm?branch=release/v42#028eb309a053bfcc1c7fd14b4cf623c0821e6c96" +source = "git+https://github.com/morph-l2/revm?branch=release/v42#91f2d1a886e60c40b13ec178f3160001c71c0912" dependencies = [ "aurora-engine-modexp", "c-kzg", @@ -5136,7 +5136,7 @@ dependencies = [ [[package]] name = "revm-primitives" version = "9.0.0" -source = "git+https://github.com/morph-l2/revm?branch=release/v42#028eb309a053bfcc1c7fd14b4cf623c0821e6c96" +source = "git+https://github.com/morph-l2/revm?branch=release/v42#91f2d1a886e60c40b13ec178f3160001c71c0912" dependencies = [ "alloy-eips", "alloy-primitives 0.8.0", diff --git a/prover/Cargo.toml b/prover/Cargo.toml index 24401aab0..1c27113c9 100644 --- a/prover/Cargo.toml +++ b/prover/Cargo.toml @@ -24,11 +24,6 @@ license = "MIT OR Apache-2.0" homepage = "https://github.com/morph-l2/morph/tree/main/prover" repository = "https://github.com/morph-l2/morph/tree/main/prover" - - - - - [workspace.dependencies] alloy ={ version ="0.3"} hex = "0.4" diff --git a/prover/README.md b/prover/README.md index 813c0b4c1..b8a2b718b 100644 --- a/prover/README.md +++ b/prover/README.md @@ -26,7 +26,7 @@ To build the program to risc-v bin: ```sh cd bin/client cargo prove build - +``` This will output the compiled ELF to the file program/elf/riscv32im-succinct-zkvm-elf. diff --git a/prover/bin/client/elf/riscv32im-succinct-zkvm-elf b/prover/bin/client/elf/riscv32im-succinct-zkvm-elf index a44a17da7b604608722d7463ea8c3246b5dfe7d3..e0daba3dde63313fceb570e5f052c3b23a802b74 100755 GIT binary patch delta 1618596 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ÐlzyL%YojR{Mw7(k`8YfxBdE2R&cca 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

k#PgQQduR92GUVrXDc1-W?` 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

#MP>
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

e7KzW^&qOno3(uS3 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

Ml6Zy@DN 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≷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%0ASp9BBO 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

ZqsN#z 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

l|3O?od%oP9&KGpajCu%q# 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