Skip to content

Latest commit

Β 

History

History
1761 lines (1732 loc) Β· 172 KB

slither-output.md

File metadata and controls

1761 lines (1732 loc) Β· 172 KB
➜  ➜  meTokens-core git:(diamond-slither) slither .
'npx hardhat compile --force' running
Compiling 60 files with 0.8.10
Generating typings for: 61 artifacts in dir: artifacts/types for target: ethers-v5
Successfully generated 105 typings!
Solidity compilation finished successfully

Solidity 0.8.10 is not fully supported yet. You can still use Hardhat, but some features, like stack traces, might not work correctly.

Learn more at https://hardhat.org/reference/solidity-support



SameAssetTransferMigration.finishMigration(address) (contracts/migrations/SameAssetTransferMigration.sol#62-89) ignores return value by IERC20(targetHub_.asset).transfer(targetHub_.vault,amountOut) (contracts/migrations/SameAssetTransferMigration.sol#85)
UniswapSingleTransferMigration.finishMigration(address) (contracts/migrations/UniswapSingleTransferMigration.sol#92-123) ignores return value by IERC20(targetHub_.asset).transfer(targetHub_.vault,amountOut) (contracts/migrations/UniswapSingleTransferMigration.sol#119)
Vault.claim(address,bool,uint256) (contracts/vaults/Vault.sol#68-83) ignores return value by IERC20(_asset).transfer(dao,_amount) (contracts/vaults/Vault.sol#81)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unchecked-transfer

Modifiers.s (contracts/libs/Details.sol#71) is never initialized. It is used in:
Modifiers.s (contracts/libs/Details.sol#71) is never initialized. It is used in:
	- FoundryFacet.mint(address,uint256,address) (contracts/facets/FoundryFacet.sol#39-100)
	- FoundryFacet.burn(address,uint256,address) (contracts/facets/FoundryFacet.sol#135-218)
	- FoundryFacet.donate(address,uint256) (contracts/facets/FoundryFacet.sol#220-236)
	- FoundryFacet._calculateMeTokensMinted(address,uint256) (contracts/facets/FoundryFacet.sol#239-302)
	- FoundryFacet._calculateRawAssetsReturned(address,uint256) (contracts/facets/FoundryFacet.sol#304-369)
	- FoundryFacet._calculateActualAssetsReturned(address,address,uint256,uint256) (contracts/facets/FoundryFacet.sol#372-422)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-state-variables

BancorABDK._viewMeTokensMinted(uint256,uint32,uint256,uint256) (contracts/curves/BancorABDK.sol#213-245) performs a multiplication on the result of a division:
	-exponent = uint256(_reserveWeight).fromUInt().div(_maxWeight) (contracts/curves/BancorABDK.sol#234)
	-res = _supply.fromUInt().mul((part1.ln().mul(exponent)).exp().sub(_one)) (contracts/curves/BancorABDK.sol#241-243)
BancorABDK._viewMeTokensMintedFromZero(uint256,uint256,uint256) (contracts/curves/BancorABDK.sol#265-288) performs a multiplication on the result of a division:
	-numerator = _assetsDeposited.fromUInt().mul(_baseX.ln().mul(_one.div(reserveWeight)).exp()) (contracts/curves/BancorABDK.sol#272-274)
BancorABDK._viewMeTokensMintedFromZero(uint256,uint256,uint256) (contracts/curves/BancorABDK.sol#265-288) performs a multiplication on the result of a division:
	-reserveWeight = _reserveWeight.fromUInt().div(_maxWeight) (contracts/curves/BancorABDK.sol#270)
	-denominator = reserveWeight.mul(_baseY.fromUInt()) (contracts/curves/BancorABDK.sol#277)
BancorABDK._viewMeTokensMintedFromZero(uint256,uint256,uint256) (contracts/curves/BancorABDK.sol#265-288) performs a multiplication on the result of a division:
	-reserveWeight = _reserveWeight.fromUInt().div(_maxWeight) (contracts/curves/BancorABDK.sol#270)
	-res = (numerator.div(denominator)).ln().mul(reserveWeight).exp() (contracts/curves/BancorABDK.sol#283-286)
BancorABDK._viewAssetsReturned(uint256,uint32,uint256,uint256) (contracts/curves/BancorABDK.sol#309-350) performs a multiplication on the result of a division:
	-exponent = _one.div(uint256(_reserveWeight).fromUInt().div(_maxWeight)) (contracts/curves/BancorABDK.sol#337-339)
	-res = _balancePooled.fromUInt().sub(_balancePooled.fromUInt().mul(s.ln().mul(exponent).exp())) (contracts/curves/BancorABDK.sol#346-348)
BancorPower._viewMeTokensMintedFromZero(uint256,uint256,uint256) (contracts/curves/BancorPower.sol#228-252) performs a multiplication on the result of a division:
	-numerator = _assetsDeposited.fromUInt().mul(_baseX.ln().mul(_one.div(reserveWeight)).exp()) (contracts/curves/BancorPower.sol#235-237)
BancorPower._viewMeTokensMintedFromZero(uint256,uint256,uint256) (contracts/curves/BancorPower.sol#228-252) performs a multiplication on the result of a division:
	-reserveWeight = _reserveWeight.fromUInt().div(_maxWeight) (contracts/curves/BancorPower.sol#233)
	-denominator = reserveWeight.mul(_baseY.fromUInt()) (contracts/curves/BancorPower.sol#240)
BancorPower._viewMeTokensMintedFromZero(uint256,uint256,uint256) (contracts/curves/BancorPower.sol#228-252) performs a multiplication on the result of a division:
	-reserveWeight = _reserveWeight.fromUInt().div(_maxWeight) (contracts/curves/BancorPower.sol#233)
	-res = (numerator.div(denominator)).ln().mul(reserveWeight).exp() (contracts/curves/BancorPower.sol#246-249)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-x = (x * FIXED_1) / 0xd3094c70f034de4b96ff7d5b6f99fcd8 (contracts/curves/Power.sol#393)
	-x = (x * FIXED_1) / 0xa45af1e1f40c333b3de1db4dd55f29a7 (contracts/curves/Power.sol#397)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-x = (x * FIXED_1) / 0xa45af1e1f40c333b3de1db4dd55f29a7 (contracts/curves/Power.sol#397)
	-x = (x * FIXED_1) / 0x910b022db7ae67ce76b441c27035c6a1 (contracts/curves/Power.sol#401)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-x = (x * FIXED_1) / 0x910b022db7ae67ce76b441c27035c6a1 (contracts/curves/Power.sol#401)
	-x = (x * FIXED_1) / 0x88415abbe9a76bead8d00cf112e4d4a8 (contracts/curves/Power.sol#405)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-x = (x * FIXED_1) / 0x88415abbe9a76bead8d00cf112e4d4a8 (contracts/curves/Power.sol#405)
	-x = (x * FIXED_1) / 0x84102b00893f64c705e841d5d4064bd3 (contracts/curves/Power.sol#409)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-x = (x * FIXED_1) / 0x84102b00893f64c705e841d5d4064bd3 (contracts/curves/Power.sol#409)
	-x = (x * FIXED_1) / 0x8204055aaef1c8bd5c3259f4822735a2 (contracts/curves/Power.sol#413)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-x = (x * FIXED_1) / 0x8204055aaef1c8bd5c3259f4822735a2 (contracts/curves/Power.sol#413)
	-x = (x * FIXED_1) / 0x810100ab00222d861931c15e39b44e99 (contracts/curves/Power.sol#417)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-x = (x * FIXED_1) / 0x810100ab00222d861931c15e39b44e99 (contracts/curves/Power.sol#417)
	-x = (x * FIXED_1) / 0x808040155aabbbe9451521693554f733 (contracts/curves/Power.sol#421)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-w = (y * y) / FIXED_1 (contracts/curves/Power.sol#425)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#429)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#429)
	-res += (z * (0x0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - y)) / 0x200000000000000000000000000000000 (contracts/curves/Power.sol#430-432)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-w = (y * y) / FIXED_1 (contracts/curves/Power.sol#425)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#429)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#433)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#433)
	-res += (z * (0x099999999999999999999999999999999 - y)) / 0x300000000000000000000000000000000 (contracts/curves/Power.sol#434-436)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-w = (y * y) / FIXED_1 (contracts/curves/Power.sol#425)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#433)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#437)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#437)
	-res += (z * (0x092492492492492492492492492492492 - y)) / 0x400000000000000000000000000000000 (contracts/curves/Power.sol#438-440)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-w = (y * y) / FIXED_1 (contracts/curves/Power.sol#425)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#437)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#441)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#441)
	-res += (z * (0x08e38e38e38e38e38e38e38e38e38e38e - y)) / 0x500000000000000000000000000000000 (contracts/curves/Power.sol#442-444)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-w = (y * y) / FIXED_1 (contracts/curves/Power.sol#425)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#441)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#445)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#445)
	-res += (z * (0x08ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b - y)) / 0x600000000000000000000000000000000 (contracts/curves/Power.sol#446-448)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-w = (y * y) / FIXED_1 (contracts/curves/Power.sol#425)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#445)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#449)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#449)
	-res += (z * (0x089d89d89d89d89d89d89d89d89d89d89 - y)) / 0x700000000000000000000000000000000 (contracts/curves/Power.sol#450-452)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-w = (y * y) / FIXED_1 (contracts/curves/Power.sol#425)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#449)
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#453)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) performs a multiplication on the result of a division:
	-z = (z * w) / FIXED_1 (contracts/curves/Power.sol#453)
	-res += (z * (0x088888888888888888888888888888888 - y)) / 0x800000000000000000000000000000000 (contracts/curves/Power.sol#454-456)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#473)
	-res += z * 0x10e1b3be415a0000 (contracts/curves/Power.sol#474)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#473)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#475)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#475)
	-res += z * 0x05a0913f6b1e0000 (contracts/curves/Power.sol#476)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#475)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#477)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#477)
	-res += z * 0x0168244fdac78000 (contracts/curves/Power.sol#478)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#477)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#479)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#479)
	-res += z * 0x004807432bc18000 (contracts/curves/Power.sol#480)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#479)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#481)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#481)
	-res += z * 0x000c0135dca04000 (contracts/curves/Power.sol#482)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#481)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#483)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#483)
	-res += z * 0x0001b707b1cdc000 (contracts/curves/Power.sol#484)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#483)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#485)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#485)
	-res += z * 0x000036e0f639b800 (contracts/curves/Power.sol#486)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#485)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#487)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#487)
	-res += z * 0x00000618fee9f800 (contracts/curves/Power.sol#488)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#487)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#489)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#489)
	-res += z * 0x0000009c197dcc00 (contracts/curves/Power.sol#490)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#489)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#491)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#491)
	-res += z * 0x0000000e30dce400 (contracts/curves/Power.sol#492)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#491)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#493)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#493)
	-res += z * 0x000000012ebd1300 (contracts/curves/Power.sol#494)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#493)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#495)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#495)
	-res += z * 0x0000000017499f00 (contracts/curves/Power.sol#496)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#495)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#497)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#497)
	-res += z * 0x0000000001a9d480 (contracts/curves/Power.sol#498)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#497)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#499)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#499)
	-res += z * 0x00000000001c6380 (contracts/curves/Power.sol#500)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#499)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#501)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#501)
	-res += z * 0x000000000001c638 (contracts/curves/Power.sol#502)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#501)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#503)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#503)
	-res += z * 0x0000000000001ab8 (contracts/curves/Power.sol#504)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#503)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#505)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#505)
	-res += z * 0x000000000000017c (contracts/curves/Power.sol#506)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#505)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#507)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#507)
	-res += z * 0x0000000000000014 (contracts/curves/Power.sol#508)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#507)
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#509)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-z = (z * y) / FIXED_1 (contracts/curves/Power.sol#509)
	-res += z * 0x0000000000000001 (contracts/curves/Power.sol#510)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-res = (res * 0x1c3d6a24ed82218787d624d3e5eba95f9) / 0x18ebef9eac820ae8682b9793ac6d1e776 (contracts/curves/Power.sol#514-516)
	-res = (res * 0x18ebef9eac820ae8682b9793ac6d1e778) / 0x1368b2fc6f9609fe7aceb46aa619baed4 (contracts/curves/Power.sol#518-520)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-res = (res * 0x18ebef9eac820ae8682b9793ac6d1e778) / 0x1368b2fc6f9609fe7aceb46aa619baed4 (contracts/curves/Power.sol#518-520)
	-res = (res * 0x1368b2fc6f9609fe7aceb46aa619baed5) / 0x0bc5ab1b16779be3575bd8f0520a9f21f (contracts/curves/Power.sol#522-524)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-res = (res * 0x1368b2fc6f9609fe7aceb46aa619baed5) / 0x0bc5ab1b16779be3575bd8f0520a9f21f (contracts/curves/Power.sol#522-524)
	-res = (res * 0x0bc5ab1b16779be3575bd8f0520a9f21e) / 0x0454aaa8efe072e7f6ddbab84b40a55c9 (contracts/curves/Power.sol#526-528)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-res = (res * 0x0bc5ab1b16779be3575bd8f0520a9f21e) / 0x0454aaa8efe072e7f6ddbab84b40a55c9 (contracts/curves/Power.sol#526-528)
	-res = (res * 0x0454aaa8efe072e7f6ddbab84b40a55c5) / 0x00960aadc109e7a3bf4578099615711ea (contracts/curves/Power.sol#530-532)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-res = (res * 0x0454aaa8efe072e7f6ddbab84b40a55c5) / 0x00960aadc109e7a3bf4578099615711ea (contracts/curves/Power.sol#530-532)
	-res = (res * 0x00960aadc109e7a3bf4578099615711d7) / 0x0002bf84208204f5977f9a8cf01fdce3d (contracts/curves/Power.sol#534-536)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) performs a multiplication on the result of a division:
	-res = (res * 0x00960aadc109e7a3bf4578099615711d7) / 0x0002bf84208204f5977f9a8cf01fdce3d (contracts/curves/Power.sol#534-536)
	-res = (res * 0x0002bf84208204f5977f9a8cf01fdc307) / 0x0000003c6ab775dd0b95b4cbee7e65d11 (contracts/curves/Power.sol#538-540)
StepwiseCurve._viewMeTokensMinted(uint256,uint256,uint256,uint256,uint256) (contracts/curves/StepwiseCurve.sol#183-221) performs a multiplication on the result of a division:
	-balancePooledAtCurrentSteps = ((stepsAfterMint * stepsAfterMint + stepsAfterMint) / 2) * _stepX * _stepY (contracts/curves/StepwiseCurve.sol#199-203)
StepwiseCurve._viewMeTokensMinted(uint256,uint256,uint256,uint256,uint256) (contracts/curves/StepwiseCurve.sol#183-221) performs a multiplication on the result of a division:
	-stepsAfterMint = (((_balancePooled + _assetsDeposited) * _stepX * _stepX) / ((_stepX * _stepY) / 2)) (contracts/curves/StepwiseCurve.sol#196-198)
	-supplyAfterMint = _stepX * stepsAfterMint - (balancePooledAtCurrentSteps - (_balancePooled + _assetsDeposited)) / (_stepY * stepsAfterMint) (contracts/curves/StepwiseCurve.sol#206-211)
StepwiseCurve._viewMeTokensMinted(uint256,uint256,uint256,uint256,uint256) (contracts/curves/StepwiseCurve.sol#183-221) performs a multiplication on the result of a division:
	-stepsAfterMint = (((_balancePooled + _assetsDeposited) * _stepX * _stepX) / ((_stepX * _stepY) / 2)) (contracts/curves/StepwiseCurve.sol#196-198)
	-supplyAfterMint = _stepX * stepsAfterMint + ((_balancePooled + _assetsDeposited) - balancePooledAtCurrentSteps) / (_stepY * (stepsAfterMint + 1)) (contracts/curves/StepwiseCurve.sol#213-218)
StepwiseCurve._viewAssetsReturned(uint256,uint256,uint256,uint256,uint256) (contracts/curves/StepwiseCurve.sol#231-268) performs a multiplication on the result of a division:
	-steps = _supply / _stepX (contracts/curves/StepwiseCurve.sol#247)
	-supplyAtCurrentStep = _supply - (steps * _stepX) (contracts/curves/StepwiseCurve.sol#248)
StepwiseCurve._viewAssetsReturned(uint256,uint256,uint256,uint256,uint256) (contracts/curves/StepwiseCurve.sol#231-268) performs a multiplication on the result of a division:
	-stepsAfterBurn = (_supply - _meTokensBurned) / _stepX (contracts/curves/StepwiseCurve.sol#249)
	-supplyAtStepAfterBurn = _supply - (stepsAfterBurn * _stepX) (contracts/curves/StepwiseCurve.sol#250)
StepwiseCurve._viewAssetsReturned(uint256,uint256,uint256,uint256,uint256) (contracts/curves/StepwiseCurve.sol#231-268) performs a multiplication on the result of a division:
	-balancePooledAtCurrentSteps = ((steps * steps + steps) / 2) * _stepX * _stepY (contracts/curves/StepwiseCurve.sol#252-254)
StepwiseCurve._viewAssetsReturned(uint256,uint256,uint256,uint256,uint256) (contracts/curves/StepwiseCurve.sol#231-268) performs a multiplication on the result of a division:
	-balancePooledAtStepsAfterBurn = ((stepsAfterBurn * stepsAfterBurn + stepsAfterBurn) / 2) * _stepX * _stepY (contracts/curves/StepwiseCurve.sol#255-259)
StepwiseCurveABDK._viewAssetsReturned(uint256,uint256,uint256,uint256,uint256) (contracts/curves/StepwiseCurveABDK.sol#236-271) performs a multiplication on the result of a division:
	-newSupplyInStep = supply_.sub(meTokensBurned_).sub(newSteps.mul(stepX_)).div(_precision) (contracts/curves/StepwiseCurveABDK.sol#263-266)
	-newCollateralInBalance = (newSteps.mul(stepX_).mul(stepY_).div(_precision)).add((newSteps.add(_one)).mul(newSupplyInStep).mul(stepY_)) (contracts/curves/StepwiseCurveABDK.sol#267-269)
FoundryFacet._calculateActualAssetsReturned(address,address,uint256,uint256) (contracts/facets/FoundryFacet.sol#372-422) performs a multiplication on the result of a division:
	-actualAssetsReturned = rawAssetsReturned + (((s.PRECISION * _meTokensBurned) / IERC20(_meToken).totalSupply()) * meToken_.balanceLocked) / s.PRECISION (contracts/facets/FoundryFacet.sol#384-388)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply

MeTokenRegistryFacet.claimMeTokenOwnership(address) (contracts/facets/MeTokenRegistryFacet.sol#243-259) uses a dangerous strict equality:
	- require(bool,string)(msg.sender == s.pendingMeTokenOwners[_oldOwner],!_pendingOwner) (contracts/facets/MeTokenRegistryFacet.sol#245-248)
Modifiers.onlyCurveRegistry() (contracts/libs/Details.sol#111-114) uses a dangerous strict equality:
	- require(bool,string)(msg.sender == address(s.curveRegistry),!curveRegistry) (contracts/libs/Details.sol#112)
Modifiers.onlyDeactivateController() (contracts/libs/Details.sol#101-104) uses a dangerous strict equality:
	- require(bool,string)(msg.sender == s.deactivateController,!deactivateController) (contracts/libs/Details.sol#102)
Modifiers.onlyDiamondController() (contracts/libs/Details.sol#73-76) uses a dangerous strict equality:
	- require(bool,string)(msg.sender == s.diamondController,!diamondController) (contracts/libs/Details.sol#74)
Modifiers.onlyDurationsController() (contracts/libs/Details.sol#83-86) uses a dangerous strict equality:
	- require(bool,string)(msg.sender == s.durationsController,!durationsController) (contracts/libs/Details.sol#84)
Modifiers.onlyFeesController() (contracts/libs/Details.sol#78-81) uses a dangerous strict equality:
	- require(bool,string)(msg.sender == s.feesController,!feesController) (contracts/libs/Details.sol#79)
Modifiers.onlyMeTokenRegistryController() (contracts/libs/Details.sol#88-94) uses a dangerous strict equality:
	- require(bool,string)(msg.sender == s.meTokenRegistryController,!meTokenRegistryController) (contracts/libs/Details.sol#89-92)
Modifiers.onlyMigrationRegistry() (contracts/libs/Details.sol#116-122) uses a dangerous strict equality:
	- require(bool,string)(msg.sender == address(s.migrationRegistry),!migrationRegistry) (contracts/libs/Details.sol#117-120)
Modifiers.onlyRegisterController() (contracts/libs/Details.sol#96-99) uses a dangerous strict equality:
	- require(bool,string)(msg.sender == s.registerController,!registerController) (contracts/libs/Details.sol#97)
Modifiers.onlyVaultRegistry() (contracts/libs/Details.sol#106-109) uses a dangerous strict equality:
	- require(bool,string)(msg.sender == address(s.vaultRegistry),!vaultRegistry) (contracts/libs/Details.sol#107)
MeTokenRegistryFacet.transferMeTokenOwnership(address) (contracts/facets/MeTokenRegistryFacet.sol#216-228) uses a dangerous strict equality:
	- require(bool,string)(s.pendingMeTokenOwners[msg.sender] == address(0),transfer ownership already pending) (contracts/facets/MeTokenRegistryFacet.sol#217-220)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities

Reentrancy in UniswapSingleTransferMigration._swap(address) (contracts/migrations/UniswapSingleTransferMigration.sol#161-208):
	External calls:
	- IERC20(hub_.asset).approve(address(_router),amountIn) (contracts/migrations/UniswapSingleTransferMigration.sol#186)
	State variables written after the call(s):
	- usts_.swapped = true (contracts/migrations/UniswapSingleTransferMigration.sol#201)
Reentrancy in SameAssetTransferMigration.finishMigration(address) (contracts/migrations/SameAssetTransferMigration.sol#62-89):
	External calls:
	- ISingleAssetVault(hub_.vault).startMigration(_meToken) (contracts/migrations/SameAssetTransferMigration.sol#79)
	State variables written after the call(s):
	- usts_.started = true (contracts/migrations/SameAssetTransferMigration.sol#80)
Reentrancy in SameAssetTransferMigration.finishMigration(address) (contracts/migrations/SameAssetTransferMigration.sol#62-89):
	External calls:
	- ISingleAssetVault(hub_.vault).startMigration(_meToken) (contracts/migrations/SameAssetTransferMigration.sol#79)
	- IERC20(targetHub_.asset).transfer(targetHub_.vault,amountOut) (contracts/migrations/SameAssetTransferMigration.sol#85)
	State variables written after the call(s):
	- delete _sameAssetMigration[_meToken] (contracts/migrations/SameAssetTransferMigration.sol#88)
Reentrancy in UniswapSingleTransferMigration.finishMigration(address) (contracts/migrations/UniswapSingleTransferMigration.sol#92-123):
	External calls:
	- ISingleAssetVault(hub_.vault).startMigration(_meToken) (contracts/migrations/UniswapSingleTransferMigration.sol#110)
	State variables written after the call(s):
	- usts_.started = true (contracts/migrations/UniswapSingleTransferMigration.sol#111)
Reentrancy in UniswapSingleTransferMigration.finishMigration(address) (contracts/migrations/UniswapSingleTransferMigration.sol#92-123):
	External calls:
	- ISingleAssetVault(hub_.vault).startMigration(_meToken) (contracts/migrations/UniswapSingleTransferMigration.sol#110)
	- amountOut = _swap(_meToken) (contracts/migrations/UniswapSingleTransferMigration.sol#112)
		- IERC20(hub_.asset).approve(address(_router),amountIn) (contracts/migrations/UniswapSingleTransferMigration.sol#186)
		- amountOut = _router.exactInputSingle(params) (contracts/migrations/UniswapSingleTransferMigration.sol#204)
		- meTokenRegistry.updateBalances(_meToken,amountOut) (contracts/migrations/UniswapSingleTransferMigration.sol#207)
	State variables written after the call(s):
	- amountOut = _swap(_meToken) (contracts/migrations/UniswapSingleTransferMigration.sol#112)
		- usts_.swapped = true (contracts/migrations/UniswapSingleTransferMigration.sol#201)
Reentrancy in UniswapSingleTransferMigration.finishMigration(address) (contracts/migrations/UniswapSingleTransferMigration.sol#92-123):
	External calls:
	- ISingleAssetVault(hub_.vault).startMigration(_meToken) (contracts/migrations/UniswapSingleTransferMigration.sol#110)
	- amountOut = _swap(_meToken) (contracts/migrations/UniswapSingleTransferMigration.sol#112)
		- IERC20(hub_.asset).approve(address(_router),amountIn) (contracts/migrations/UniswapSingleTransferMigration.sol#186)
		- amountOut = _router.exactInputSingle(params) (contracts/migrations/UniswapSingleTransferMigration.sol#204)
		- meTokenRegistry.updateBalances(_meToken,amountOut) (contracts/migrations/UniswapSingleTransferMigration.sol#207)
	- IERC20(targetHub_.asset).transfer(targetHub_.vault,amountOut) (contracts/migrations/UniswapSingleTransferMigration.sol#119)
	State variables written after the call(s):
	- delete _uniswapSingleTransfers[_meToken] (contracts/migrations/UniswapSingleTransferMigration.sol#122)
Reentrancy in MeTokenRegistryFacet.initResubscribe(address,uint256,address,bytes) (contracts/facets/MeTokenRegistryFacet.sol#116-172):
	External calls:
	- require(bool,string)(IVault(_migration).isValid(_meToken,_encodedMigrationArgs),Invalid _encodedMigrationArgs) (contracts/facets/MeTokenRegistryFacet.sol#147-150)
	State variables written after the call(s):
	- meToken_.startTime = block.timestamp + s.meTokenWarmup (contracts/facets/MeTokenRegistryFacet.sol#151)
	- meToken_.endTime = block.timestamp + s.meTokenWarmup + s.meTokenDuration (contracts/facets/MeTokenRegistryFacet.sol#152-155)
	- meToken_.endCooldown = block.timestamp + s.meTokenWarmup + s.meTokenDuration + s.meTokenCooldown (contracts/facets/MeTokenRegistryFacet.sol#156-160)
	- meToken_.targetHubId = _targetHubId (contracts/facets/MeTokenRegistryFacet.sol#161)
	- meToken_.migration = _migration (contracts/facets/MeTokenRegistryFacet.sol#162)
Reentrancy in HubFacet.initUpdate(uint256,address,uint256,bytes) (contracts/facets/HubFacet.sol#98-166):
	External calls:
	- LibHub.finishUpdate(_id) (contracts/facets/HubFacet.sol#107)
	State variables written after the call(s):
	- hub_.targetRefundRatio = _targetRefundRatio (contracts/facets/HubFacet.sol#127)
Reentrancy in HubFacet.initUpdate(uint256,address,uint256,bytes) (contracts/facets/HubFacet.sol#98-166):
	External calls:
	- LibHub.finishUpdate(_id) (contracts/facets/HubFacet.sol#107)
	- ICurve(_targetCurve).register(_id,_encodedCurveDetails) (contracts/facets/HubFacet.sol#141)
	State variables written after the call(s):
	- hub_.targetCurve = _targetCurve (contracts/facets/HubFacet.sol#142)
Reentrancy in SameAssetTransferMigration.poke(address) (contracts/migrations/SameAssetTransferMigration.sol#50-60):
	External calls:
	- ISingleAssetVault(hub_.vault).startMigration(_meToken) (contracts/migrations/SameAssetTransferMigration.sol#57)
	State variables written after the call(s):
	- usts_.started = true (contracts/migrations/SameAssetTransferMigration.sol#58)
Reentrancy in UniswapSingleTransferMigration.poke(address) (contracts/migrations/UniswapSingleTransferMigration.sol#74-90):
	External calls:
	- ISingleAssetVault(hub_.vault).startMigration(_meToken) (contracts/migrations/UniswapSingleTransferMigration.sol#86)
	State variables written after the call(s):
	- usts_.started = true (contracts/migrations/UniswapSingleTransferMigration.sol#87)
Reentrancy in UniswapSingleTransferMigration.poke(address) (contracts/migrations/UniswapSingleTransferMigration.sol#74-90):
	External calls:
	- ISingleAssetVault(hub_.vault).startMigration(_meToken) (contracts/migrations/UniswapSingleTransferMigration.sol#86)
	- _swap(_meToken) (contracts/migrations/UniswapSingleTransferMigration.sol#88)
		- IERC20(hub_.asset).approve(address(_router),amountIn) (contracts/migrations/UniswapSingleTransferMigration.sol#186)
		- amountOut = _router.exactInputSingle(params) (contracts/migrations/UniswapSingleTransferMigration.sol#204)
		- meTokenRegistry.updateBalances(_meToken,amountOut) (contracts/migrations/UniswapSingleTransferMigration.sol#207)
	State variables written after the call(s):
	- _swap(_meToken) (contracts/migrations/UniswapSingleTransferMigration.sol#88)
		- usts_.swapped = true (contracts/migrations/UniswapSingleTransferMigration.sol#201)
Reentrancy in HubFacet.register(address,address,IVault,ICurve,uint256,bytes,bytes) (contracts/facets/HubFacet.sol#39-85):
	External calls:
	- require(bool,string)(_vault.isValid(_asset,_encodedVaultArgs),asset !valid) (contracts/facets/HubFacet.sol#61)
	State variables written after the call(s):
	- id = ++ s.hubCount (contracts/facets/HubFacet.sol#64)
Reentrancy in HubFacet.register(address,address,IVault,ICurve,uint256,bytes,bytes) (contracts/facets/HubFacet.sol#39-85):
	External calls:
	- require(bool,string)(_vault.isValid(_asset,_encodedVaultArgs),asset !valid) (contracts/facets/HubFacet.sol#61)
	- _curve.register(id,_encodedCurveDetails) (contracts/facets/HubFacet.sol#65)
	State variables written after the call(s):
	- hub_.active = true (contracts/facets/HubFacet.sol#69)
	- hub_.owner = _owner (contracts/facets/HubFacet.sol#70)
	- hub_.asset = _asset (contracts/facets/HubFacet.sol#71)
	- hub_.vault = address(_vault) (contracts/facets/HubFacet.sol#72)
	- hub_.curve = address(_curve) (contracts/facets/HubFacet.sol#73)
	- hub_.refundRatio = _refundRatio (contracts/facets/HubFacet.sol#74)
Reentrancy in MeTokenRegistryFacet.subscribe(string,string,uint256,uint256) (contracts/facets/MeTokenRegistryFacet.sol#55-114):
	External calls:
	- require(bool,string)(IERC20(hub_.asset).transferFrom(msg.sender,hub_.vault,_assetsDeposited),transfer failed) (contracts/facets/MeTokenRegistryFacet.sol#67-74)
	- meTokenAddr = IMeTokenFactory(s.meTokenFactory).create(_name,_symbol,address(this)) (contracts/facets/MeTokenRegistryFacet.sol#77-81)
	- IMeToken(meTokenAddr).mint(msg.sender,_meTokensMinted) (contracts/facets/MeTokenRegistryFacet.sol#92)
	State variables written after the call(s):
	- s.meTokenOwners[msg.sender] = meTokenAddr (contracts/facets/MeTokenRegistryFacet.sol#96)
	- meToken_.owner = msg.sender (contracts/facets/MeTokenRegistryFacet.sol#100)
	- meToken_.hubId = _hubId (contracts/facets/MeTokenRegistryFacet.sol#101)
	- meToken_.balancePooled = _assetsDeposited (contracts/facets/MeTokenRegistryFacet.sol#102)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1

MeTokenRegistryFacet.subscribe(string,string,uint256,uint256)._meTokensMinted (contracts/facets/MeTokenRegistryFacet.sol#84) is a local variable never initialized
DiamondLoupeFacet.facets().i (contracts/facets/DiamondLoupeFacet.sol#24) is a local variable never initialized
LibDiamond.removeFunctions(address,bytes4[]).selectorIndex (contracts/libs/LibDiamond.sol#170) is a local variable never initialized
LibDiamond.replaceFunctions(address,bytes4[]).selectorIndex (contracts/libs/LibDiamond.sol#137) is a local variable never initialized
LibDiamond.diamondCut(IDiamondCut.FacetCut[],address,bytes).facetIndex (contracts/libs/LibDiamond.sol#50) is a local variable never initialized
LibDiamond.addFunctions(address,bytes4[]).selectorIndex (contracts/libs/LibDiamond.sol#99) is a local variable never initialized
HubFacet.initUpdate(uint256,address,uint256,bytes).reconfigure (contracts/facets/HubFacet.sol#130) is a local variable never initialized
Power.optimalExp(uint256).y (contracts/curves/Power.sol#469) is a local variable never initialized
Power.optimalLog(uint256).y (contracts/curves/Power.sol#387) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables

HubFacet.initUpdate(uint256,address,uint256,bytes) (contracts/facets/HubFacet.sol#98-166) ignores return value by LibHub.finishUpdate(_id) (contracts/facets/HubFacet.sol#107)
HubFacet.finishUpdate(uint256) (contracts/facets/HubFacet.sol#168-170) ignores return value by LibHub.finishUpdate(id) (contracts/facets/HubFacet.sol#169)
LibMeToken.finishResubscribe(address) (contracts/libs/LibMeToken.sol#57-82) ignores return value by IMigration(meToken_.migration).finishMigration(_meToken) (contracts/libs/LibMeToken.sol#71)
UniswapSingleTransferMigration._swap(address) (contracts/migrations/UniswapSingleTransferMigration.sol#161-208) ignores return value by IERC20(hub_.asset).approve(address(_router),amountIn) (contracts/migrations/UniswapSingleTransferMigration.sol#186)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return

MeToken.constructor(string,string,address)._name (contracts/MeToken.sol#14) shadows:
	- ERC20._name (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#42) (state variable)
MeToken.constructor(string,string,address)._symbol (contracts/MeToken.sol#15) shadows:
	- ERC20._symbol (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#43) (state variable)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing

MeToken.constructor(string,string,address)._diamond (contracts/MeToken.sol#16) lacks a zero-check on :
		- diamond = _diamond (contracts/MeToken.sol#19)
BancorABDK.constructor(address)._hub (contracts/curves/BancorABDK.sol#32) lacks a zero-check on :
		- hub = _hub (contracts/curves/BancorABDK.sol#33)
BancorPower.constructor(address)._hub (contracts/curves/BancorPower.sol#37) lacks a zero-check on :
		- hub = _hub (contracts/curves/BancorPower.sol#38)
StepwiseCurve.constructor(address)._hub (contracts/curves/StepwiseCurve.sol#27) lacks a zero-check on :
		- hub = _hub (contracts/curves/StepwiseCurve.sol#28)
StepwiseCurveABDK.constructor(address)._hub (contracts/curves/StepwiseCurveABDK.sol#30) lacks a zero-check on :
		- hub = _hub (contracts/curves/StepwiseCurveABDK.sol#31)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation

Reentrancy in Vault.handleDeposit(address,address,uint256,uint256) (contracts/vaults/Vault.sol#40-52):
	External calls:
	- IERC20(_asset).safeTransferFrom(_from,address(this),_depositAmount) (contracts/vaults/Vault.sol#47)
	State variables written after the call(s):
	- accruedFees[_asset] += _feeAmount (contracts/vaults/Vault.sol#49)
Reentrancy in Vault.handleWithdrawal(address,address,uint256,uint256) (contracts/vaults/Vault.sol#54-66):
	External calls:
	- IERC20(_asset).safeTransfer(_to,_withdrawalAmount) (contracts/vaults/Vault.sol#61)
	State variables written after the call(s):
	- accruedFees[_asset] += _feeAmount (contracts/vaults/Vault.sol#63)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2

Reentrancy in FoundryFacet.burn(address,uint256,address) (contracts/facets/FoundryFacet.sol#135-218):
	External calls:
	- hub_ = LibHub.finishUpdate(meToken_.hubId) (contracts/facets/FoundryFacet.sol#144)
	- meToken_ = LibMeToken.finishResubscribe(_meToken) (contracts/facets/FoundryFacet.sol#149)
	- IMeToken(_meToken).burn(msg.sender,_meTokensBurned) (contracts/facets/FoundryFacet.sol#174)
	- vault.handleWithdrawal(_recipient,asset,assetsReturned,fee) (contracts/facets/FoundryFacet.sol#208)
	Event emitted after the call(s):
	- Burn(_meToken,asset,msg.sender,_recipient,_meTokensBurned,assetsReturned) (contracts/facets/FoundryFacet.sol#210-217)
Reentrancy in Vault.claim(address,bool,uint256) (contracts/vaults/Vault.sol#68-83):
	External calls:
	- IERC20(_asset).transfer(dao,_amount) (contracts/vaults/Vault.sol#81)
	Event emitted after the call(s):
	- Claim(dao,_asset,_amount) (contracts/vaults/Vault.sol#82)
Reentrancy in FoundryFacet.donate(address,uint256) (contracts/facets/FoundryFacet.sol#220-236):
	External calls:
	- vault.handleDeposit(msg.sender,asset,_assetsDeposited,0) (contracts/facets/FoundryFacet.sol#231)
	Event emitted after the call(s):
	- Donate(_meToken,asset,msg.sender,_assetsDeposited) (contracts/facets/FoundryFacet.sol#235)
Reentrancy in LibMeToken.finishResubscribe(address) (contracts/libs/LibMeToken.sol#57-82):
	External calls:
	- IMigration(meToken_.migration).finishMigration(_meToken) (contracts/libs/LibMeToken.sol#71)
	Event emitted after the call(s):
	- FinishResubscribe(_meToken) (contracts/libs/LibMeToken.sol#80)
Reentrancy in LibHub.finishUpdate(uint256) (contracts/libs/LibHub.sol#29-55):
	External calls:
	- ICurve(hub_.curve).finishReconfigure(id) (contracts/libs/LibHub.sol#40)
	Event emitted after the call(s):
	- FinishUpdate(id) (contracts/libs/LibHub.sol#53)
Reentrancy in Vault.handleDeposit(address,address,uint256,uint256) (contracts/vaults/Vault.sol#40-52):
	External calls:
	- IERC20(_asset).safeTransferFrom(_from,address(this),_depositAmount) (contracts/vaults/Vault.sol#47)
	Event emitted after the call(s):
	- HandleDeposit(_from,_asset,_depositAmount,_feeAmount) (contracts/vaults/Vault.sol#51)
Reentrancy in Vault.handleWithdrawal(address,address,uint256,uint256) (contracts/vaults/Vault.sol#54-66):
	External calls:
	- IERC20(_asset).safeTransfer(_to,_withdrawalAmount) (contracts/vaults/Vault.sol#61)
	Event emitted after the call(s):
	- HandleWithdrawal(_to,_asset,_withdrawalAmount,_feeAmount) (contracts/vaults/Vault.sol#65)
Reentrancy in MeTokenRegistryFacet.initResubscribe(address,uint256,address,bytes) (contracts/facets/MeTokenRegistryFacet.sol#116-172):
	External calls:
	- require(bool,string)(IVault(_migration).isValid(_meToken,_encodedMigrationArgs),Invalid _encodedMigrationArgs) (contracts/facets/MeTokenRegistryFacet.sol#147-150)
	- IMigration(_migration).initMigration(_meToken,_encodedMigrationArgs) (contracts/facets/MeTokenRegistryFacet.sol#164)
	Event emitted after the call(s):
	- InitResubscribe(_meToken,_targetHubId,_migration,_encodedMigrationArgs) (contracts/facets/MeTokenRegistryFacet.sol#166-171)
Reentrancy in HubFacet.initUpdate(uint256,address,uint256,bytes) (contracts/facets/HubFacet.sol#98-166):
	External calls:
	- LibHub.finishUpdate(_id) (contracts/facets/HubFacet.sol#107)
	- ICurve(hub_.curve).initReconfigure(_id,_encodedCurveDetails) (contracts/facets/HubFacet.sol#133)
	- ICurve(_targetCurve).register(_id,_encodedCurveDetails) (contracts/facets/HubFacet.sol#141)
	Event emitted after the call(s):
	- InitUpdate(_id,_targetCurve,_targetRefundRatio,_encodedCurveDetails,reconfigure,hub_.startTime,hub_.endTime,hub_.endCooldown) (contracts/facets/HubFacet.sol#156-165)
Reentrancy in FoundryFacet.mint(address,uint256,address) (contracts/facets/FoundryFacet.sol#39-100):
	External calls:
	- hub_ = LibHub.finishUpdate(meToken_.hubId) (contracts/facets/FoundryFacet.sol#49)
	- meToken_ = LibMeToken.finishResubscribe(_meToken) (contracts/facets/FoundryFacet.sol#54)
	- IMigration(meToken_.migration).poke(_meToken) (contracts/facets/FoundryFacet.sol#57)
	- vault.handleDeposit(msg.sender,asset,_assetsDeposited,fee) (contracts/facets/FoundryFacet.sol#83)
	- IMeToken(_meToken).mint(_recipient,meTokensMinted) (contracts/facets/FoundryFacet.sol#91)
	Event emitted after the call(s):
	- Mint(_meToken,asset,msg.sender,_recipient,_assetsDeposited,meTokensMinted) (contracts/facets/FoundryFacet.sol#92-99)
Reentrancy in HubFacet.register(address,address,IVault,ICurve,uint256,bytes,bytes) (contracts/facets/HubFacet.sol#39-85):
	External calls:
	- require(bool,string)(_vault.isValid(_asset,_encodedVaultArgs),asset !valid) (contracts/facets/HubFacet.sol#61)
	- _curve.register(id,_encodedCurveDetails) (contracts/facets/HubFacet.sol#65)
	Event emitted after the call(s):
	- Register(id,_owner,_asset,address(_vault),address(_curve),_refundRatio,_encodedCurveDetails,_encodedVaultArgs) (contracts/facets/HubFacet.sol#75-84)
Reentrancy in SingleAssetVault.startMigration(address) (contracts/vaults/SingleAssetVault.sol#23-39):
	External calls:
	- IERC20(hub_.asset).safeTransfer(meToken_.migration,balance) (contracts/vaults/SingleAssetVault.sol#36)
	Event emitted after the call(s):
	- StartMigration(_meToken) (contracts/vaults/SingleAssetVault.sol#38)
Reentrancy in MeTokenRegistryFacet.subscribe(string,string,uint256,uint256) (contracts/facets/MeTokenRegistryFacet.sol#55-114):
	External calls:
	- require(bool,string)(IERC20(hub_.asset).transferFrom(msg.sender,hub_.vault,_assetsDeposited),transfer failed) (contracts/facets/MeTokenRegistryFacet.sol#67-74)
	- meTokenAddr = IMeTokenFactory(s.meTokenFactory).create(_name,_symbol,address(this)) (contracts/facets/MeTokenRegistryFacet.sol#77-81)
	- IMeToken(meTokenAddr).mint(msg.sender,_meTokensMinted) (contracts/facets/MeTokenRegistryFacet.sol#92)
	Event emitted after the call(s):
	- Subscribe(meTokenAddr,msg.sender,_meTokensMinted,hub_.asset,_assetsDeposited,_name,_symbol,_hubId) (contracts/facets/MeTokenRegistryFacet.sol#104-113)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3

FoundryFacet.mint(address,uint256,address) (contracts/facets/FoundryFacet.sol#39-100) uses timestamp for comparisons
	Dangerous comparisons:
	- hub_.updating && block.timestamp > hub_.endTime (contracts/facets/FoundryFacet.sol#48)
	- block.timestamp > meToken_.endTime (contracts/facets/FoundryFacet.sol#51)
	- block.timestamp > meToken_.startTime (contracts/facets/FoundryFacet.sol#55)
	- meToken_.migration != address(0) && block.timestamp > meToken_.startTime (contracts/facets/FoundryFacet.sol#75-76)
FoundryFacet.burn(address,uint256,address) (contracts/facets/FoundryFacet.sol#135-218) uses timestamp for comparisons
	Dangerous comparisons:
	- hub_.updating && block.timestamp > hub_.endTime (contracts/facets/FoundryFacet.sol#143)
	- meToken_.targetHubId != 0 && block.timestamp > meToken_.endTime (contracts/facets/FoundryFacet.sol#146)
	- meToken_.migration != address(0) && block.timestamp > meToken_.startTime (contracts/facets/FoundryFacet.sol#201-202)
HubFacet.initUpdate(uint256,address,uint256,bytes) (contracts/facets/HubFacet.sol#98-166) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(msg.sender == hub_.owner,!owner) (contracts/facets/HubFacet.sol#105)
	- hub_.updating && block.timestamp > hub_.endTime (contracts/facets/HubFacet.sol#106)
	- require(bool,string)(! hub_.updating,already updating) (contracts/facets/HubFacet.sol#109)
	- require(bool,string)(block.timestamp >= hub_.endCooldown,Still cooling down) (contracts/facets/HubFacet.sol#111)
	- require(bool,string)(_targetRefundRatio != hub_.refundRatio,_targetRefundRatio == refundRatio) (contracts/facets/HubFacet.sol#123-126)
	- require(bool,string)(_targetCurve != hub_.curve,targetCurve==curve) (contracts/facets/HubFacet.sol#140)
HubFacet.cancelUpdate(uint256) (contracts/facets/HubFacet.sol#172-187) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp < hub_.startTime,Update has started) (contracts/facets/HubFacet.sol#176)
MeTokenRegistryFacet.subscribe(string,string,uint256,uint256) (contracts/facets/MeTokenRegistryFacet.sol#55-114) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(hub_.active,Hub inactive) (contracts/facets/MeTokenRegistryFacet.sol#63)
	- require(bool,string)(! hub_.updating,Hub updating) (contracts/facets/MeTokenRegistryFacet.sol#64)
	- require(bool,string)(IERC20(hub_.asset).transferFrom(msg.sender,hub_.vault,_assetsDeposited),transfer failed) (contracts/facets/MeTokenRegistryFacet.sol#67-74)
MeTokenRegistryFacet.initResubscribe(address,uint256,address,bytes) (contracts/facets/MeTokenRegistryFacet.sol#116-172) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(msg.sender == meToken_.owner,!owner) (contracts/facets/MeTokenRegistryFacet.sol#126)
	- require(bool,string)(block.timestamp >= meToken_.endCooldown,Cooldown not complete) (contracts/facets/MeTokenRegistryFacet.sol#127-130)
	- require(bool,string)(meToken_.hubId != _targetHubId,same hub) (contracts/facets/MeTokenRegistryFacet.sol#131)
	- require(bool,string)(targetHub_.active,targetHub inactive) (contracts/facets/MeTokenRegistryFacet.sol#132)
	- require(bool,string)(! hub_.updating,hub updating) (contracts/facets/MeTokenRegistryFacet.sol#133)
	- require(bool,string)(! targetHub_.updating,targetHub updating) (contracts/facets/MeTokenRegistryFacet.sol#134)
	- require(bool,string)(s.migrationRegistry.isApproved(hub_.vault,targetHub_.vault,_migration),!approved) (contracts/facets/MeTokenRegistryFacet.sol#139-146)
MeTokenRegistryFacet.cancelResubscribe(address) (contracts/facets/MeTokenRegistryFacet.sol#181-196) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp < meToken_.startTime,Resubscription has started) (contracts/facets/MeTokenRegistryFacet.sol#185-188)
MeTokenRegistryFacet.updateBalances(address,uint256) (contracts/facets/MeTokenRegistryFacet.sol#198-214) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(msg.sender == meToken_.migration,!migration) (contracts/facets/MeTokenRegistryFacet.sol#200)
MeTokenRegistryFacet.transferMeTokenOwnership(address) (contracts/facets/MeTokenRegistryFacet.sol#216-228) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(s.pendingMeTokenOwners[msg.sender] == address(0),transfer ownership already pending) (contracts/facets/MeTokenRegistryFacet.sol#217-220)
	- require(bool,string)(meToken_ != address(0),meToken does not exist) (contracts/facets/MeTokenRegistryFacet.sol#224)
MeTokenRegistryFacet.cancelTransferMeTokenOwnership() (contracts/facets/MeTokenRegistryFacet.sol#230-241) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(_meToken != address(0),meToken does not exist) (contracts/facets/MeTokenRegistryFacet.sol#232)
	- require(bool,string)(s.pendingMeTokenOwners[msg.sender] != address(0),transferMeTokenOwnership() not initiated) (contracts/facets/MeTokenRegistryFacet.sol#234-237)
MeTokenRegistryFacet.claimMeTokenOwnership(address) (contracts/facets/MeTokenRegistryFacet.sol#243-259) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(msg.sender == s.pendingMeTokenOwners[_oldOwner],!_pendingOwner) (contracts/facets/MeTokenRegistryFacet.sol#245-248)
MeTokenRegistryFacet.setMeTokenWarmup(uint256) (contracts/facets/MeTokenRegistryFacet.sol#261-268) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(_warmup != s.meTokenWarmup,same warmup) (contracts/facets/MeTokenRegistryFacet.sol#265)
	- require(bool,string)(_warmup + s.meTokenDuration < s.hubWarmup,too long) (contracts/facets/MeTokenRegistryFacet.sol#266)
MeTokenRegistryFacet.setMeTokenDuration(uint256) (contracts/facets/MeTokenRegistryFacet.sol#270-277) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(_duration != s.meTokenDuration,same duration) (contracts/facets/MeTokenRegistryFacet.sol#274)
	- require(bool,string)(s.meTokenWarmup + _duration < s.hubWarmup,too long) (contracts/facets/MeTokenRegistryFacet.sol#275)
MeTokenRegistryFacet.setMeTokenCooldown(uint256) (contracts/facets/MeTokenRegistryFacet.sol#279-285) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(_cooldown != s.meTokenCooldown,same cooldown) (contracts/facets/MeTokenRegistryFacet.sol#283)
MeTokenRegistryFacet.isOwner(address) (contracts/facets/MeTokenRegistryFacet.sol#319-321) uses timestamp for comparisons
	Dangerous comparisons:
	- s.meTokenOwners[_owner] != address(0) (contracts/facets/MeTokenRegistryFacet.sol#320)
LibHub.finishUpdate(uint256) (contracts/libs/LibHub.sol#29-55) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp > hub_.endTime,Still updating) (contracts/libs/LibHub.sol#32)
LibMeToken.finishResubscribe(address) (contracts/libs/LibMeToken.sol#57-82) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp > meToken_.endTime,block.timestamp < endTime) (contracts/libs/LibMeToken.sol#65-68)
LibWeightedAverage.calculate(uint256,uint256,uint256,uint256) (contracts/libs/LibWeightedAverage.sol#21-55) uses timestamp for comparisons
	Dangerous comparisons:
	- block.timestamp < startTime (contracts/libs/LibWeightedAverage.sol#27)
	- block.timestamp > endTime (contracts/libs/LibWeightedAverage.sol#30)
WeightedAverage.calculate(uint256,uint256,uint256,uint256) (contracts/libs/WeightedAverage.sol#19-53) uses timestamp for comparisons
	Dangerous comparisons:
	- block.timestamp < startTime (contracts/libs/WeightedAverage.sol#25)
	- block.timestamp > endTime (contracts/libs/WeightedAverage.sol#28)
UniswapSingleTransferMigration.poke(address) (contracts/migrations/UniswapSingleTransferMigration.sol#74-90) uses timestamp for comparisons
	Dangerous comparisons:
	- usts_.soonest != 0 && block.timestamp > usts_.soonest && ! usts_.started (contracts/migrations/UniswapSingleTransferMigration.sol#82-84)
UniswapSingleTransferMigration.finishMigration(address) (contracts/migrations/UniswapSingleTransferMigration.sol#92-123) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(usts_.soonest < block.timestamp,timestamp < soonest) (contracts/migrations/UniswapSingleTransferMigration.sol#100)
UniswapSingleTransferMigration.isValid(address,bytes) (contracts/migrations/UniswapSingleTransferMigration.sol#134-159) uses timestamp for comparisons
	Dangerous comparisons:
	- soon < block.timestamp (contracts/migrations/UniswapSingleTransferMigration.sol#147)
UniswapSingleTransferMigration._swap(address) (contracts/migrations/UniswapSingleTransferMigration.sol#161-208) uses timestamp for comparisons
	Dangerous comparisons:
	- amountIn == 0 || ! usts_.started || usts_.swapped || usts_.soonest == 0 || usts_.soonest > block.timestamp (contracts/migrations/UniswapSingleTransferMigration.sol#176-180)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp

Address.verifyCallResult(bool,bytes,string) (node_modules/@openzeppelin/contracts/utils/Address.sol#201-221) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/Address.sol#213-216)
Diamond.fallback() (contracts/Diamond.sol#36-63) uses assembly
	- INLINE ASM (contracts/Diamond.sol#40-42)
	- INLINE ASM (contracts/Diamond.sol#47-62)
LibAppStorage.diamondStorage() (contracts/libs/Details.sol#53-57) uses assembly
	- INLINE ASM (contracts/libs/Details.sol#54-56)
LibDiamond.enforceHasContractCode(address,string) (contracts/libs/LibDiamond.sol#302-311) uses assembly
	- INLINE ASM (contracts/libs/LibDiamond.sol#307-309)
LibDiamond.diamondStorage() (contracts/libs/LibDiamond.sol#313-322) uses assembly
	- INLINE ASM (contracts/libs/LibDiamond.sol#319-321)
LibMeta.getChainID() (contracts/libs/LibMeta.sol#28-32) uses assembly
	- INLINE ASM (contracts/libs/LibMeta.sol#29-31)
LibMeta.msgSender() (contracts/libs/LibMeta.sol#34-48) uses assembly
	- INLINE ASM (contracts/libs/LibMeta.sol#38-44)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

Different versions of Solidity is used:
	- Version used: ['>=0.5.0', '>=0.7.5', '^0.8', '^0.8.0', '^0.8.1']
	- ^0.8.0 (node_modules/@openzeppelin/contracts/access/Ownable.sol#4)
	- ^0.8.0 (node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol#4)
	- ^0.8.0 (node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol#4)
	- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#4)
	- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#4)
	- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol#4)
	- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
	- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#4)
	- ^0.8.1 (node_modules/@openzeppelin/contracts/utils/Address.sol#4)
	- ^0.8.0 (node_modules/@openzeppelin/contracts/utils/Context.sol#4)
	- ^0.8.0 (node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol#4)
	- >=0.5.0 (node_modules/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol#2)
	- >=0.7.5 (node_modules/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol#2)
	- v2 (node_modules/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol#3)
	- ^0.8.0 (contracts/Diamond.sol#2)
	- ^0.8.0 (contracts/DiamondInit.sol#2)
	- ^0.8.0 (contracts/MeToken.sol#2)
	- ^0.8.0 (contracts/MeTokenFactory.sol#2)
	- ^0.8.0 (contracts/curves/BancorABDK.sol#2)
	- ^0.8 (contracts/curves/BancorPower.sol#2)
	- ^0.8 (contracts/curves/Power.sol#2)
	- ^0.8.0 (contracts/curves/StepwiseCurve.sol#2)
	- ^0.8.0 (contracts/curves/StepwiseCurveABDK.sol#2)
	- ^0.8.0 (contracts/facets/DiamondCutFacet.sol#2)
	- ^0.8.0 (contracts/facets/DiamondLoupeFacet.sol#2)
	- ^0.8.0 (contracts/facets/FeesFacet.sol#2)
	- ^0.8.0 (contracts/facets/FoundryFacet.sol#3)
	- ^0.8.0 (contracts/facets/HubFacet.sol#2)
	- ^0.8.0 (contracts/facets/MeTokenRegistryFacet.sol#2)
	- ^0.8.0 (contracts/facets/OwnershipFacet.sol#2)
	- ^0.8.0 (contracts/interfaces/ICurve.sol#2)
	- ^0.8.0 (contracts/interfaces/IDiamondCut.sol#2)
	- ^0.8.0 (contracts/interfaces/IDiamondLoupe.sol#2)
	- ^0.8.0 (contracts/interfaces/IERC173.sol#2)
	- ^0.8.0 (contracts/interfaces/IFoundry.sol#2)
	- ^0.8.0 (contracts/interfaces/IHub.sol#2)
	- ^0.8.0 (contracts/interfaces/IMeToken.sol#2)
	- ^0.8.0 (contracts/interfaces/IMeTokenFactory.sol#2)
	- ^0.8.0 (contracts/interfaces/IMeTokenRegistry.sol#2)
	- ^0.8.0 (contracts/interfaces/IMigration.sol#2)
	- ^0.8.0 (contracts/interfaces/IMigrationRegistry.sol#2)
	- ^0.8.0 (contracts/interfaces/IRegistry.sol#2)
	- ^0.8.0 (contracts/interfaces/ISingleAssetVault.sol#2)
	- ^0.8.0 (contracts/interfaces/IVault.sol#2)
	- ^0.8.0 (contracts/libs/Details.sol#2)
	- ^0.8.0 (contracts/libs/LibDiamond.sol#2)
	- ^0.8.0 (contracts/libs/LibHub.sol#2)
	- ^0.8.0 (contracts/libs/LibMeToken.sol#2)
	- ^0.8.0 (contracts/libs/LibMeta.sol#2)
	- ^0.8.0 (contracts/libs/LibWeightedAverage.sol#2)
	- ^0.8.0 (contracts/libs/WeightedAverage.sol#2)
	- ^0.8.0 (contracts/migrations/SameAssetTransferMigration.sol#2)
	- ^0.8.0 (contracts/migrations/UniswapSingleTransferMigration.sol#2)
	- ^0.8.0 (contracts/registries/CurveRegistry.sol#2)
	- ^0.8.0 (contracts/registries/MigrationRegistry.sol#2)
	- ^0.8.0 (contracts/registries/Registry.sol#2)
	- ^0.8.0 (contracts/registries/VaultRegistry.sol#2)
	- ^0.8.0 (contracts/utils/ABDKMathQuad.sol#6)
	- ^0.8.0 (contracts/vaults/SingleAssetVault.sol#2)
	- ^0.8.0 (contracts/vaults/Vault.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

LibHub.count() (contracts/libs/LibHub.sol#74-77) is never used and should be removed
LibMeta.domainSeparator(string,string) (contracts/libs/LibMeta.sol#12-26) is never used and should be removed
LibMeta.getChainID() (contracts/libs/LibMeta.sol#28-32) is never used and should be removed
LibMeta.msgSender() (contracts/libs/LibMeta.sol#34-48) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code

Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/access/Ownable.sol#4) allows old versions
Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol#4) allows old versions
Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol#4) allows old versions
Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#4) allows old versions
Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#4) allows old versions
Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol#4) allows old versions
Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4) allows old versions
Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#4) allows old versions
Pragma version^0.8.1 (node_modules/@openzeppelin/contracts/utils/Address.sol#4) allows old versions
Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/utils/Context.sol#4) allows old versions
Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol#4) allows old versions
Pragma version>=0.5.0 (node_modules/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol#2) allows old versions
Pragma version^0.8.0 (contracts/Diamond.sol#2) allows old versions
Pragma version^0.8.0 (contracts/DiamondInit.sol#2) allows old versions
Pragma version^0.8.0 (contracts/MeToken.sol#2) allows old versions
Pragma version^0.8.0 (contracts/MeTokenFactory.sol#2) allows old versions
Pragma version^0.8.0 (contracts/curves/BancorABDK.sol#2) allows old versions
Pragma version^0.8 (contracts/curves/BancorPower.sol#2) is too complex
Pragma version^0.8 (contracts/curves/Power.sol#2) is too complex
Pragma version^0.8.0 (contracts/curves/StepwiseCurve.sol#2) allows old versions
Pragma version^0.8.0 (contracts/curves/StepwiseCurveABDK.sol#2) allows old versions
Pragma version^0.8.0 (contracts/facets/DiamondCutFacet.sol#2) allows old versions
Pragma version^0.8.0 (contracts/facets/DiamondLoupeFacet.sol#2) allows old versions
Pragma version^0.8.0 (contracts/facets/FeesFacet.sol#2) allows old versions
Pragma version^0.8.0 (contracts/facets/FoundryFacet.sol#3) allows old versions
Pragma version^0.8.0 (contracts/facets/HubFacet.sol#2) allows old versions
Pragma version^0.8.0 (contracts/facets/MeTokenRegistryFacet.sol#2) allows old versions
Pragma version^0.8.0 (contracts/facets/OwnershipFacet.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/ICurve.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IDiamondCut.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IDiamondLoupe.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IERC173.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IFoundry.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IHub.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IMeToken.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IMeTokenFactory.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IMeTokenRegistry.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IMigration.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IMigrationRegistry.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IRegistry.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/ISingleAssetVault.sol#2) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IVault.sol#2) allows old versions
Pragma version^0.8.0 (contracts/libs/Details.sol#2) allows old versions
Pragma version^0.8.0 (contracts/libs/LibDiamond.sol#2) allows old versions
Pragma version^0.8.0 (contracts/libs/LibHub.sol#2) allows old versions
Pragma version^0.8.0 (contracts/libs/LibMeToken.sol#2) allows old versions
Pragma version^0.8.0 (contracts/libs/LibMeta.sol#2) allows old versions
Pragma version^0.8.0 (contracts/libs/LibWeightedAverage.sol#2) allows old versions
Pragma version^0.8.0 (contracts/libs/WeightedAverage.sol#2) allows old versions
Pragma version^0.8.0 (contracts/migrations/SameAssetTransferMigration.sol#2) allows old versions
Pragma version^0.8.0 (contracts/migrations/UniswapSingleTransferMigration.sol#2) allows old versions
Pragma version^0.8.0 (contracts/registries/CurveRegistry.sol#2) allows old versions
Pragma version^0.8.0 (contracts/registries/MigrationRegistry.sol#2) allows old versions
Pragma version^0.8.0 (contracts/registries/Registry.sol#2) allows old versions
Pragma version^0.8.0 (contracts/registries/VaultRegistry.sol#2) allows old versions
Pragma version^0.8.0 (contracts/utils/ABDKMathQuad.sol#6) allows old versions
Pragma version^0.8.0 (contracts/vaults/SingleAssetVault.sol#2) allows old versions
Pragma version^0.8.0 (contracts/vaults/Vault.sol#2) allows old versions
solc-0.8.10 is not recommended for deployment
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Pragma version^0.8.0 (contracts/interfaces/IFees.sol#2) allows old versions
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in Address.sendValue(address,uint256) (node_modules/@openzeppelin/contracts/utils/Address.sol#60-65):
	- (success) = recipient.call{value: amount}() (node_modules/@openzeppelin/contracts/utils/Address.sol#63)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (node_modules/@openzeppelin/contracts/utils/Address.sol#128-139):
	- (success,returndata) = target.call{value: value}(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#137)
Low level call in Address.functionStaticCall(address,bytes,string) (node_modules/@openzeppelin/contracts/utils/Address.sol#157-166):
	- (success,returndata) = target.staticcall(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (node_modules/@openzeppelin/contracts/utils/Address.sol#184-193):
	- (success,returndata) = target.delegatecall(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#191)
Low level call in LibDiamond.initializeDiamondCut(address,bytes) (contracts/libs/LibDiamond.sol#271-300):
	- (success,error) = _init.delegatecall(_calldata) (contracts/libs/LibDiamond.sol#290)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

MigrationRegistry (contracts/registries/MigrationRegistry.sol#9-45) should inherit from IMigrationRegistry (contracts/interfaces/IMigrationRegistry.sol#6-57)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-inheritance

Parameter DiamondInit.init(DiamondInit.Args)._args (contracts/DiamondInit.sol#31) is not in mixedCase
Parameter MeTokenFactory.create(string,string,address)._name (contracts/MeTokenFactory.sol#15) is not in mixedCase
Parameter MeTokenFactory.create(string,string,address)._symbol (contracts/MeTokenFactory.sol#16) is not in mixedCase
Parameter MeTokenFactory.create(string,string,address)._diamond (contracts/MeTokenFactory.sol#17) is not in mixedCase
Parameter BancorABDK.register(uint256,bytes)._hubId (contracts/curves/BancorABDK.sol#36) is not in mixedCase
Parameter BancorABDK.register(uint256,bytes)._encodedDetails (contracts/curves/BancorABDK.sol#36) is not in mixedCase
Parameter BancorABDK.initReconfigure(uint256,bytes)._hubId (contracts/curves/BancorABDK.sol#58) is not in mixedCase
Parameter BancorABDK.initReconfigure(uint256,bytes)._encodedDetails (contracts/curves/BancorABDK.sol#58) is not in mixedCase
Parameter BancorABDK.finishReconfigure(uint256)._hubId (contracts/curves/BancorABDK.sol#80) is not in mixedCase
Parameter BancorABDK.viewMeTokensMinted(uint256,uint256,uint256,uint256)._assetsDeposited (contracts/curves/BancorABDK.sol#113) is not in mixedCase
Parameter BancorABDK.viewMeTokensMinted(uint256,uint256,uint256,uint256)._hubId (contracts/curves/BancorABDK.sol#114) is not in mixedCase
Parameter BancorABDK.viewMeTokensMinted(uint256,uint256,uint256,uint256)._supply (contracts/curves/BancorABDK.sol#115) is not in mixedCase
Parameter BancorABDK.viewMeTokensMinted(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/BancorABDK.sol#116) is not in mixedCase
Parameter BancorABDK.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._assetsDeposited (contracts/curves/BancorABDK.sol#138) is not in mixedCase
Parameter BancorABDK.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._hubId (contracts/curves/BancorABDK.sol#139) is not in mixedCase
Parameter BancorABDK.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._supply (contracts/curves/BancorABDK.sol#140) is not in mixedCase
Parameter BancorABDK.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/BancorABDK.sol#141) is not in mixedCase
Parameter BancorABDK.viewAssetsReturned(uint256,uint256,uint256,uint256)._meTokensBurned (contracts/curves/BancorABDK.sol#162) is not in mixedCase
Parameter BancorABDK.viewAssetsReturned(uint256,uint256,uint256,uint256)._hubId (contracts/curves/BancorABDK.sol#163) is not in mixedCase
Parameter BancorABDK.viewAssetsReturned(uint256,uint256,uint256,uint256)._supply (contracts/curves/BancorABDK.sol#164) is not in mixedCase
Parameter BancorABDK.viewAssetsReturned(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/BancorABDK.sol#165) is not in mixedCase
Parameter BancorABDK.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._meTokensBurned (contracts/curves/BancorABDK.sol#177) is not in mixedCase
Parameter BancorABDK.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._hubId (contracts/curves/BancorABDK.sol#178) is not in mixedCase
Parameter BancorABDK.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._supply (contracts/curves/BancorABDK.sol#179) is not in mixedCase
Parameter BancorABDK.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/BancorABDK.sol#180) is not in mixedCase
Parameter BancorPower.register(uint256,bytes)._hubId (contracts/curves/BancorPower.sol#41) is not in mixedCase
Parameter BancorPower.register(uint256,bytes)._encodedDetails (contracts/curves/BancorPower.sol#41) is not in mixedCase
Parameter BancorPower.initReconfigure(uint256,bytes)._hubId (contracts/curves/BancorPower.sol#63) is not in mixedCase
Parameter BancorPower.initReconfigure(uint256,bytes)._encodedDetails (contracts/curves/BancorPower.sol#63) is not in mixedCase
Parameter BancorPower.finishReconfigure(uint256)._hubId (contracts/curves/BancorPower.sol#86) is not in mixedCase
Parameter BancorPower.viewMeTokensMinted(uint256,uint256,uint256,uint256)._assetsDeposited (contracts/curves/BancorPower.sol#118) is not in mixedCase
Parameter BancorPower.viewMeTokensMinted(uint256,uint256,uint256,uint256)._hubId (contracts/curves/BancorPower.sol#119) is not in mixedCase
Parameter BancorPower.viewMeTokensMinted(uint256,uint256,uint256,uint256)._supply (contracts/curves/BancorPower.sol#120) is not in mixedCase
Parameter BancorPower.viewMeTokensMinted(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/BancorPower.sol#121) is not in mixedCase
Parameter BancorPower.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._assetsDeposited (contracts/curves/BancorPower.sol#141) is not in mixedCase
Parameter BancorPower.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._hubId (contracts/curves/BancorPower.sol#142) is not in mixedCase
Parameter BancorPower.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._supply (contracts/curves/BancorPower.sol#143) is not in mixedCase
Parameter BancorPower.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/BancorPower.sol#144) is not in mixedCase
Parameter BancorPower.viewAssetsReturned(uint256,uint256,uint256,uint256)._meTokensBurned (contracts/curves/BancorPower.sol#164) is not in mixedCase
Parameter BancorPower.viewAssetsReturned(uint256,uint256,uint256,uint256)._hubId (contracts/curves/BancorPower.sol#165) is not in mixedCase
Parameter BancorPower.viewAssetsReturned(uint256,uint256,uint256,uint256)._supply (contracts/curves/BancorPower.sol#166) is not in mixedCase
Parameter BancorPower.viewAssetsReturned(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/BancorPower.sol#167) is not in mixedCase
Parameter BancorPower.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._meTokensBurned (contracts/curves/BancorPower.sol#179) is not in mixedCase
Parameter BancorPower.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._hubId (contracts/curves/BancorPower.sol#180) is not in mixedCase
Parameter BancorPower.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._supply (contracts/curves/BancorPower.sol#181) is not in mixedCase
Parameter BancorPower.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/BancorPower.sol#182) is not in mixedCase
Parameter Power.power(uint256,uint256,uint32,uint32)._baseN (contracts/curves/Power.sol#182) is not in mixedCase
Parameter Power.power(uint256,uint256,uint32,uint32)._baseD (contracts/curves/Power.sol#183) is not in mixedCase
Parameter Power.power(uint256,uint256,uint32,uint32)._expN (contracts/curves/Power.sol#184) is not in mixedCase
Parameter Power.power(uint256,uint256,uint32,uint32)._expD (contracts/curves/Power.sol#185) is not in mixedCase
Parameter Power.generalLog(uint256)._x (contracts/curves/Power.sol#217) is not in mixedCase
Parameter Power.floorLog2(uint256)._n (contracts/curves/Power.sol#245) is not in mixedCase
Parameter Power.findPositionInMaxExpArray(uint256)._x (contracts/curves/Power.sol#273) is not in mixedCase
Parameter Power.generalExp(uint256,uint8)._x (contracts/curves/Power.sol#302) is not in mixedCase
Parameter Power.generalExp(uint256,uint8)._precision (contracts/curves/Power.sol#302) is not in mixedCase
Parameter StepwiseCurve.register(uint256,bytes)._hubId (contracts/curves/StepwiseCurve.sol#31) is not in mixedCase
Parameter StepwiseCurve.register(uint256,bytes)._encodedDetails (contracts/curves/StepwiseCurve.sol#31) is not in mixedCase
Parameter StepwiseCurve.initReconfigure(uint256,bytes)._hubId (contracts/curves/StepwiseCurve.sol#49) is not in mixedCase
Parameter StepwiseCurve.initReconfigure(uint256,bytes)._encodedDetails (contracts/curves/StepwiseCurve.sol#49) is not in mixedCase
Parameter StepwiseCurve.finishReconfigure(uint256)._hubId (contracts/curves/StepwiseCurve.sol#80) is not in mixedCase
Parameter StepwiseCurve.viewMeTokensMinted(uint256,uint256,uint256,uint256)._assetsDeposited (contracts/curves/StepwiseCurve.sol#112) is not in mixedCase
Parameter StepwiseCurve.viewMeTokensMinted(uint256,uint256,uint256,uint256)._hubId (contracts/curves/StepwiseCurve.sol#113) is not in mixedCase
Parameter StepwiseCurve.viewMeTokensMinted(uint256,uint256,uint256,uint256)._supply (contracts/curves/StepwiseCurve.sol#114) is not in mixedCase
Parameter StepwiseCurve.viewMeTokensMinted(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/StepwiseCurve.sol#115) is not in mixedCase
Parameter StepwiseCurve.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._assetsDeposited (contracts/curves/StepwiseCurve.sol#128) is not in mixedCase
Parameter StepwiseCurve.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._hubId (contracts/curves/StepwiseCurve.sol#129) is not in mixedCase
Parameter StepwiseCurve.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._supply (contracts/curves/StepwiseCurve.sol#130) is not in mixedCase
Parameter StepwiseCurve.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/StepwiseCurve.sol#131) is not in mixedCase
Parameter StepwiseCurve.viewAssetsReturned(uint256,uint256,uint256,uint256)._meTokensBurned (contracts/curves/StepwiseCurve.sol#144) is not in mixedCase
Parameter StepwiseCurve.viewAssetsReturned(uint256,uint256,uint256,uint256)._hubId (contracts/curves/StepwiseCurve.sol#145) is not in mixedCase
Parameter StepwiseCurve.viewAssetsReturned(uint256,uint256,uint256,uint256)._supply (contracts/curves/StepwiseCurve.sol#146) is not in mixedCase
Parameter StepwiseCurve.viewAssetsReturned(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/StepwiseCurve.sol#147) is not in mixedCase
Parameter StepwiseCurve.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._meTokensBurned (contracts/curves/StepwiseCurve.sol#160) is not in mixedCase
Parameter StepwiseCurve.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._hubId (contracts/curves/StepwiseCurve.sol#161) is not in mixedCase
Parameter StepwiseCurve.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._supply (contracts/curves/StepwiseCurve.sol#162) is not in mixedCase
Parameter StepwiseCurve.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/StepwiseCurve.sol#163) is not in mixedCase
Parameter StepwiseCurveABDK.register(uint256,bytes)._hubId (contracts/curves/StepwiseCurveABDK.sol#34) is not in mixedCase
Parameter StepwiseCurveABDK.register(uint256,bytes)._encodedDetails (contracts/curves/StepwiseCurveABDK.sol#34) is not in mixedCase
Parameter StepwiseCurveABDK.initReconfigure(uint256,bytes)._hubId (contracts/curves/StepwiseCurveABDK.sol#53) is not in mixedCase
Parameter StepwiseCurveABDK.initReconfigure(uint256,bytes)._encodedDetails (contracts/curves/StepwiseCurveABDK.sol#53) is not in mixedCase
Parameter StepwiseCurveABDK.finishReconfigure(uint256)._hubId (contracts/curves/StepwiseCurveABDK.sol#77) is not in mixedCase
Parameter StepwiseCurveABDK.viewMeTokensMinted(uint256,uint256,uint256,uint256)._assetsDeposited (contracts/curves/StepwiseCurveABDK.sol#109) is not in mixedCase
Parameter StepwiseCurveABDK.viewMeTokensMinted(uint256,uint256,uint256,uint256)._hubId (contracts/curves/StepwiseCurveABDK.sol#110) is not in mixedCase
Parameter StepwiseCurveABDK.viewMeTokensMinted(uint256,uint256,uint256,uint256)._supply (contracts/curves/StepwiseCurveABDK.sol#111) is not in mixedCase
Parameter StepwiseCurveABDK.viewMeTokensMinted(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/StepwiseCurveABDK.sol#112) is not in mixedCase
Parameter StepwiseCurveABDK.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._assetsDeposited (contracts/curves/StepwiseCurveABDK.sol#125) is not in mixedCase
Parameter StepwiseCurveABDK.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._hubId (contracts/curves/StepwiseCurveABDK.sol#126) is not in mixedCase
Parameter StepwiseCurveABDK.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._supply (contracts/curves/StepwiseCurveABDK.sol#127) is not in mixedCase
Parameter StepwiseCurveABDK.viewTargetMeTokensMinted(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/StepwiseCurveABDK.sol#128) is not in mixedCase
Parameter StepwiseCurveABDK.viewAssetsReturned(uint256,uint256,uint256,uint256)._meTokensBurned (contracts/curves/StepwiseCurveABDK.sol#141) is not in mixedCase
Parameter StepwiseCurveABDK.viewAssetsReturned(uint256,uint256,uint256,uint256)._hubId (contracts/curves/StepwiseCurveABDK.sol#142) is not in mixedCase
Parameter StepwiseCurveABDK.viewAssetsReturned(uint256,uint256,uint256,uint256)._supply (contracts/curves/StepwiseCurveABDK.sol#143) is not in mixedCase
Parameter StepwiseCurveABDK.viewAssetsReturned(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/StepwiseCurveABDK.sol#144) is not in mixedCase
Parameter StepwiseCurveABDK.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._meTokensBurned (contracts/curves/StepwiseCurveABDK.sol#157) is not in mixedCase
Parameter StepwiseCurveABDK.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._hubId (contracts/curves/StepwiseCurveABDK.sol#158) is not in mixedCase
Parameter StepwiseCurveABDK.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._supply (contracts/curves/StepwiseCurveABDK.sol#159) is not in mixedCase
Parameter StepwiseCurveABDK.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._balancePooled (contracts/curves/StepwiseCurveABDK.sol#160) is not in mixedCase
Parameter DiamondCutFacet.diamondCut(IDiamondCut.FacetCut[],address,bytes)._diamondCut (contracts/facets/DiamondCutFacet.sol#21) is not in mixedCase
Parameter DiamondCutFacet.diamondCut(IDiamondCut.FacetCut[],address,bytes)._init (contracts/facets/DiamondCutFacet.sol#22) is not in mixedCase
Parameter DiamondCutFacet.diamondCut(IDiamondCut.FacetCut[],address,bytes)._calldata (contracts/facets/DiamondCutFacet.sol#23) is not in mixedCase
Parameter DiamondLoupeFacet.facetFunctionSelectors(address)._facet (contracts/facets/DiamondLoupeFacet.sol#36) is not in mixedCase
Parameter DiamondLoupeFacet.facetAddress(bytes4)._functionSelector (contracts/facets/DiamondLoupeFacet.sol#64) is not in mixedCase
Parameter DiamondLoupeFacet.supportsInterface(bytes4)._interfaceId (contracts/facets/DiamondLoupeFacet.sol#77) is not in mixedCase
Parameter FoundryFacet.mint(address,uint256,address)._meToken (contracts/facets/FoundryFacet.sol#40) is not in mixedCase
Parameter FoundryFacet.mint(address,uint256,address)._assetsDeposited (contracts/facets/FoundryFacet.sol#41) is not in mixedCase
Parameter FoundryFacet.mint(address,uint256,address)._recipient (contracts/facets/FoundryFacet.sol#42) is not in mixedCase
Parameter FoundryFacet.burn(address,uint256,address)._meToken (contracts/facets/FoundryFacet.sol#136) is not in mixedCase
Parameter FoundryFacet.burn(address,uint256,address)._meTokensBurned (contracts/facets/FoundryFacet.sol#137) is not in mixedCase
Parameter FoundryFacet.burn(address,uint256,address)._recipient (contracts/facets/FoundryFacet.sol#138) is not in mixedCase
Parameter FoundryFacet.donate(address,uint256)._meToken (contracts/facets/FoundryFacet.sol#220) is not in mixedCase
Parameter FoundryFacet.donate(address,uint256)._assetsDeposited (contracts/facets/FoundryFacet.sol#220) is not in mixedCase
Parameter HubFacet.register(address,address,IVault,ICurve,uint256,bytes,bytes)._owner (contracts/facets/HubFacet.sol#40) is not in mixedCase
Parameter HubFacet.register(address,address,IVault,ICurve,uint256,bytes,bytes)._asset (contracts/facets/HubFacet.sol#41) is not in mixedCase
Parameter HubFacet.register(address,address,IVault,ICurve,uint256,bytes,bytes)._vault (contracts/facets/HubFacet.sol#42) is not in mixedCase
Parameter HubFacet.register(address,address,IVault,ICurve,uint256,bytes,bytes)._curve (contracts/facets/HubFacet.sol#43) is not in mixedCase
Parameter HubFacet.register(address,address,IVault,ICurve,uint256,bytes,bytes)._refundRatio (contracts/facets/HubFacet.sol#44) is not in mixedCase
Parameter HubFacet.register(address,address,IVault,ICurve,uint256,bytes,bytes)._encodedCurveDetails (contracts/facets/HubFacet.sol#45) is not in mixedCase
Parameter HubFacet.register(address,address,IVault,ICurve,uint256,bytes,bytes)._encodedVaultArgs (contracts/facets/HubFacet.sol#46) is not in mixedCase
Parameter HubFacet.deactivate(uint256)._id (contracts/facets/HubFacet.sol#87) is not in mixedCase
Parameter HubFacet.initUpdate(uint256,address,uint256,bytes)._id (contracts/facets/HubFacet.sol#99) is not in mixedCase
Parameter HubFacet.initUpdate(uint256,address,uint256,bytes)._targetCurve (contracts/facets/HubFacet.sol#100) is not in mixedCase
Parameter HubFacet.initUpdate(uint256,address,uint256,bytes)._targetRefundRatio (contracts/facets/HubFacet.sol#101) is not in mixedCase
Parameter HubFacet.initUpdate(uint256,address,uint256,bytes)._encodedCurveDetails (contracts/facets/HubFacet.sol#102) is not in mixedCase
Parameter HubFacet.cancelUpdate(uint256)._id (contracts/facets/HubFacet.sol#172) is not in mixedCase
Parameter HubFacet.transferHubOwnership(uint256,address)._id (contracts/facets/HubFacet.sol#189) is not in mixedCase
Parameter HubFacet.transferHubOwnership(uint256,address)._newOwner (contracts/facets/HubFacet.sol#189) is not in mixedCase
Parameter HubFacet.setHubWarmup(uint256)._warmup (contracts/facets/HubFacet.sol#198) is not in mixedCase
Parameter HubFacet.setHubDuration(uint256)._duration (contracts/facets/HubFacet.sol#203) is not in mixedCase
Parameter HubFacet.setHubCooldown(uint256)._cooldown (contracts/facets/HubFacet.sol#211) is not in mixedCase
Parameter HubFacet.getHubDetails(uint256)._id (contracts/facets/HubFacet.sol#219) is not in mixedCase
Parameter MeTokenRegistryFacet.subscribe(string,string,uint256,uint256)._name (contracts/facets/MeTokenRegistryFacet.sol#56) is not in mixedCase
Parameter MeTokenRegistryFacet.subscribe(string,string,uint256,uint256)._symbol (contracts/facets/MeTokenRegistryFacet.sol#57) is not in mixedCase
Parameter MeTokenRegistryFacet.subscribe(string,string,uint256,uint256)._hubId (contracts/facets/MeTokenRegistryFacet.sol#58) is not in mixedCase
Parameter MeTokenRegistryFacet.subscribe(string,string,uint256,uint256)._assetsDeposited (contracts/facets/MeTokenRegistryFacet.sol#59) is not in mixedCase
Parameter MeTokenRegistryFacet.initResubscribe(address,uint256,address,bytes)._meToken (contracts/facets/MeTokenRegistryFacet.sol#117) is not in mixedCase
Parameter MeTokenRegistryFacet.initResubscribe(address,uint256,address,bytes)._targetHubId (contracts/facets/MeTokenRegistryFacet.sol#118) is not in mixedCase
Parameter MeTokenRegistryFacet.initResubscribe(address,uint256,address,bytes)._migration (contracts/facets/MeTokenRegistryFacet.sol#119) is not in mixedCase
Parameter MeTokenRegistryFacet.initResubscribe(address,uint256,address,bytes)._encodedMigrationArgs (contracts/facets/MeTokenRegistryFacet.sol#120) is not in mixedCase
Parameter MeTokenRegistryFacet.finishResubscribe(address)._meToken (contracts/facets/MeTokenRegistryFacet.sol#174) is not in mixedCase
Parameter MeTokenRegistryFacet.cancelResubscribe(address)._meToken (contracts/facets/MeTokenRegistryFacet.sol#181) is not in mixedCase
Parameter MeTokenRegistryFacet.updateBalances(address,uint256)._meToken (contracts/facets/MeTokenRegistryFacet.sol#198) is not in mixedCase
Parameter MeTokenRegistryFacet.updateBalances(address,uint256)._newBalance (contracts/facets/MeTokenRegistryFacet.sol#198) is not in mixedCase
Parameter MeTokenRegistryFacet.transferMeTokenOwnership(address)._newOwner (contracts/facets/MeTokenRegistryFacet.sol#216) is not in mixedCase
Parameter MeTokenRegistryFacet.claimMeTokenOwnership(address)._oldOwner (contracts/facets/MeTokenRegistryFacet.sol#243) is not in mixedCase
Parameter MeTokenRegistryFacet.setMeTokenWarmup(uint256)._warmup (contracts/facets/MeTokenRegistryFacet.sol#261) is not in mixedCase
Parameter MeTokenRegistryFacet.setMeTokenDuration(uint256)._duration (contracts/facets/MeTokenRegistryFacet.sol#270) is not in mixedCase
Parameter MeTokenRegistryFacet.setMeTokenCooldown(uint256)._cooldown (contracts/facets/MeTokenRegistryFacet.sol#279) is not in mixedCase
Parameter MeTokenRegistryFacet.getOwnerMeToken(address)._owner (contracts/facets/MeTokenRegistryFacet.sol#299) is not in mixedCase
Parameter MeTokenRegistryFacet.getPendingOwner(address)._oldOwner (contracts/facets/MeTokenRegistryFacet.sol#303) is not in mixedCase
Parameter MeTokenRegistryFacet.getMeTokenDetails(address)._meToken (contracts/facets/MeTokenRegistryFacet.sol#311) is not in mixedCase
Parameter MeTokenRegistryFacet.isOwner(address)._owner (contracts/facets/MeTokenRegistryFacet.sol#319) is not in mixedCase
Parameter OwnershipFacet.setDiamondController(address)._newController (contracts/facets/OwnershipFacet.sol#10) is not in mixedCase
Parameter OwnershipFacet.setFeesController(address)._newController (contracts/facets/OwnershipFacet.sol#21) is not in mixedCase
Parameter OwnershipFacet.setDurationsController(address)._newController (contracts/facets/OwnershipFacet.sol#32) is not in mixedCase
Parameter OwnershipFacet.setMeTokenRegistryController(address)._newController (contracts/facets/OwnershipFacet.sol#43) is not in mixedCase
Parameter OwnershipFacet.setRegisterController(address)._newController (contracts/facets/OwnershipFacet.sol#54) is not in mixedCase
Parameter OwnershipFacet.setDeactivateController(address)._newController (contracts/facets/OwnershipFacet.sol#65) is not in mixedCase
Parameter LibAppStorage.initControllers(address)._firstController (contracts/libs/Details.sol#59) is not in mixedCase
Parameter LibDiamond.diamondCut(IDiamondCut.FacetCut[],address,bytes)._diamondCut (contracts/libs/LibDiamond.sol#45) is not in mixedCase
Parameter LibDiamond.diamondCut(IDiamondCut.FacetCut[],address,bytes)._init (contracts/libs/LibDiamond.sol#46) is not in mixedCase
Parameter LibDiamond.diamondCut(IDiamondCut.FacetCut[],address,bytes)._calldata (contracts/libs/LibDiamond.sol#47) is not in mixedCase
Parameter LibDiamond.addFunctions(address,bytes4[])._facetAddress (contracts/libs/LibDiamond.sol#79) is not in mixedCase
Parameter LibDiamond.addFunctions(address,bytes4[])._functionSelectors (contracts/libs/LibDiamond.sol#80) is not in mixedCase
Parameter LibDiamond.replaceFunctions(address,bytes4[])._facetAddress (contracts/libs/LibDiamond.sol#117) is not in mixedCase
Parameter LibDiamond.replaceFunctions(address,bytes4[])._functionSelectors (contracts/libs/LibDiamond.sol#118) is not in mixedCase
Parameter LibDiamond.removeFunctions(address,bytes4[])._facetAddress (contracts/libs/LibDiamond.sol#156) is not in mixedCase
Parameter LibDiamond.removeFunctions(address,bytes4[])._functionSelectors (contracts/libs/LibDiamond.sol#157) is not in mixedCase
Parameter LibDiamond.addFacet(LibDiamond.DiamondStorage,address)._facetAddress (contracts/libs/LibDiamond.sol#182) is not in mixedCase
Parameter LibDiamond.addFunction(LibDiamond.DiamondStorage,bytes4,uint96,address)._selector (contracts/libs/LibDiamond.sol#197) is not in mixedCase
Parameter LibDiamond.addFunction(LibDiamond.DiamondStorage,bytes4,uint96,address)._selectorPosition (contracts/libs/LibDiamond.sol#198) is not in mixedCase
Parameter LibDiamond.addFunction(LibDiamond.DiamondStorage,bytes4,uint96,address)._facetAddress (contracts/libs/LibDiamond.sol#199) is not in mixedCase
Parameter LibDiamond.removeFunction(LibDiamond.DiamondStorage,address,bytes4)._facetAddress (contracts/libs/LibDiamond.sol#212) is not in mixedCase
Parameter LibDiamond.removeFunction(LibDiamond.DiamondStorage,address,bytes4)._selector (contracts/libs/LibDiamond.sol#213) is not in mixedCase
Parameter LibDiamond.initializeDiamondCut(address,bytes)._init (contracts/libs/LibDiamond.sol#271) is not in mixedCase
Parameter LibDiamond.initializeDiamondCut(address,bytes)._calldata (contracts/libs/LibDiamond.sol#271) is not in mixedCase
Parameter LibDiamond.enforceHasContractCode(address,string)._contract (contracts/libs/LibDiamond.sol#303) is not in mixedCase
Parameter LibDiamond.enforceHasContractCode(address,string)._errorMessage (contracts/libs/LibDiamond.sol#304) is not in mixedCase
Parameter LibHub.getHub(uint256)._id (contracts/libs/LibHub.sol#57) is not in mixedCase
Parameter LibMeToken.updateBalancePooled(bool,address,uint256)._meToken (contracts/libs/LibMeToken.sol#27) is not in mixedCase
Parameter LibMeToken.updateBalancePooled(bool,address,uint256)._amount (contracts/libs/LibMeToken.sol#28) is not in mixedCase
Parameter LibMeToken.updateBalanceLocked(bool,address,uint256)._meToken (contracts/libs/LibMeToken.sol#43) is not in mixedCase
Parameter LibMeToken.updateBalanceLocked(bool,address,uint256)._amount (contracts/libs/LibMeToken.sol#44) is not in mixedCase
Parameter LibMeToken.finishResubscribe(address)._meToken (contracts/libs/LibMeToken.sol#57) is not in mixedCase
Parameter LibMeToken.getMeToken(address)._meToken (contracts/libs/LibMeToken.sol#84) is not in mixedCase
Parameter SameAssetTransferMigration.initMigration(address,bytes)._meToken (contracts/migrations/SameAssetTransferMigration.sol#34) is not in mixedCase
Parameter SameAssetTransferMigration.poke(address)._meToken (contracts/migrations/SameAssetTransferMigration.sol#50) is not in mixedCase
Parameter SameAssetTransferMigration.finishMigration(address)._meToken (contracts/migrations/SameAssetTransferMigration.sol#62) is not in mixedCase
Parameter SameAssetTransferMigration.getDetails(address)._meToken (contracts/migrations/SameAssetTransferMigration.sol#91) is not in mixedCase
Parameter SameAssetTransferMigration.isValid(address,bytes)._meToken (contracts/migrations/SameAssetTransferMigration.sol#101) is not in mixedCase
Parameter UniswapSingleTransferMigration.initMigration(address,bytes)._meToken (contracts/migrations/UniswapSingleTransferMigration.sol#51) is not in mixedCase
Parameter UniswapSingleTransferMigration.initMigration(address,bytes)._encodedArgs (contracts/migrations/UniswapSingleTransferMigration.sol#51) is not in mixedCase
Parameter UniswapSingleTransferMigration.poke(address)._meToken (contracts/migrations/UniswapSingleTransferMigration.sol#74) is not in mixedCase
Parameter UniswapSingleTransferMigration.finishMigration(address)._meToken (contracts/migrations/UniswapSingleTransferMigration.sol#92) is not in mixedCase
Parameter UniswapSingleTransferMigration.getDetails(address)._meToken (contracts/migrations/UniswapSingleTransferMigration.sol#125) is not in mixedCase
Parameter UniswapSingleTransferMigration.isValid(address,bytes)._meToken (contracts/migrations/UniswapSingleTransferMigration.sol#134) is not in mixedCase
Parameter UniswapSingleTransferMigration.isValid(address,bytes)._encodedArgs (contracts/migrations/UniswapSingleTransferMigration.sol#134) is not in mixedCase
Parameter Registry.approve(address)._addr (contracts/registries/Registry.sol#16) is not in mixedCase
Parameter Registry.unapprove(address)._addr (contracts/registries/Registry.sol#23) is not in mixedCase
Parameter Registry.isApproved(address)._addr (contracts/registries/Registry.sol#30) is not in mixedCase
Function ABDKMathQuad.log_2(bytes16) (contracts/utils/ABDKMathQuad.sol#616-689) is not in mixedCase
Function ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) is not in mixedCase
Constant ABDKMathQuad.NaN (contracts/utils/ABDKMathQuad.sol#42) is not in UPPER_CASE_WITH_UNDERSCORES
Parameter SingleAssetVault.startMigration(address)._meToken (contracts/vaults/SingleAssetVault.sol#23) is not in mixedCase
Parameter SingleAssetVault.isValid(address,bytes)._asset (contracts/vaults/SingleAssetVault.sol#43) is not in mixedCase
Parameter Vault.handleDeposit(address,address,uint256,uint256)._from (contracts/vaults/Vault.sol#41) is not in mixedCase
Parameter Vault.handleDeposit(address,address,uint256,uint256)._asset (contracts/vaults/Vault.sol#42) is not in mixedCase
Parameter Vault.handleDeposit(address,address,uint256,uint256)._depositAmount (contracts/vaults/Vault.sol#43) is not in mixedCase
Parameter Vault.handleDeposit(address,address,uint256,uint256)._feeAmount (contracts/vaults/Vault.sol#44) is not in mixedCase
Parameter Vault.handleWithdrawal(address,address,uint256,uint256)._to (contracts/vaults/Vault.sol#55) is not in mixedCase
Parameter Vault.handleWithdrawal(address,address,uint256,uint256)._asset (contracts/vaults/Vault.sol#56) is not in mixedCase
Parameter Vault.handleWithdrawal(address,address,uint256,uint256)._withdrawalAmount (contracts/vaults/Vault.sol#57) is not in mixedCase
Parameter Vault.handleWithdrawal(address,address,uint256,uint256)._feeAmount (contracts/vaults/Vault.sol#58) is not in mixedCase
Parameter Vault.claim(address,bool,uint256)._asset (contracts/vaults/Vault.sol#69) is not in mixedCase
Parameter Vault.claim(address,bool,uint256)._max (contracts/vaults/Vault.sol#70) is not in mixedCase
Parameter Vault.claim(address,bool,uint256)._amount (contracts/vaults/Vault.sol#71) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

Variable IUniswapV3SwapCallback.uniswapV3SwapCallback(int256,int256,bytes).amount0Delta (node_modules/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol#17) is too similar to IUniswapV3SwapCallback.uniswapV3SwapCallback(int256,int256,bytes).amount1Delta (node_modules/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol#18)
Variable StepwiseCurve.initReconfigure(uint256,bytes).targetStepX (contracts/curves/StepwiseCurve.sol#58) is too similar to StepwiseCurve.initReconfigure(uint256,bytes).targetStepY (contracts/curves/StepwiseCurve.sol#58)
Variable StepwiseCurveABDK.viewAssetsReturned(uint256,uint256,uint256,uint256)._meTokensBurned (contracts/curves/StepwiseCurveABDK.sol#141) is too similar to StepwiseCurveABDK._viewAssetsReturned(uint256,uint256,uint256,uint256,uint256).meTokensBurned_ (contracts/curves/StepwiseCurveABDK.sol#253)
Variable StepwiseCurveABDK.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._meTokensBurned (contracts/curves/StepwiseCurveABDK.sol#157) is too similar to StepwiseCurveABDK._viewAssetsReturned(uint256,uint256,uint256,uint256,uint256).meTokensBurned_ (contracts/curves/StepwiseCurveABDK.sol#253)
Variable ICurve.viewAssetsReturned(uint256,uint256,uint256,uint256)._meTokensBurned (contracts/interfaces/ICurve.sol#56) is too similar to StepwiseCurveABDK._viewAssetsReturned(uint256,uint256,uint256,uint256,uint256).meTokensBurned_ (contracts/curves/StepwiseCurveABDK.sol#253)
Variable StepwiseCurveABDK._viewAssetsReturned(uint256,uint256,uint256,uint256,uint256)._meTokensBurned (contracts/curves/StepwiseCurveABDK.sol#237) is too similar to StepwiseCurveABDK._viewAssetsReturned(uint256,uint256,uint256,uint256,uint256).meTokensBurned_ (contracts/curves/StepwiseCurveABDK.sol#253)
Variable ICurve.viewTargetAssetsReturned(uint256,uint256,uint256,uint256)._meTokensBurned (contracts/interfaces/ICurve.sol#82) is too similar to StepwiseCurveABDK._viewAssetsReturned(uint256,uint256,uint256,uint256,uint256).meTokensBurned_ (contracts/curves/StepwiseCurveABDK.sol#253)
Variable StepwiseCurveABDK.initReconfigure(uint256,bytes).targetStepX (contracts/curves/StepwiseCurveABDK.sol#62) is too similar to StepwiseCurveABDK.initReconfigure(uint256,bytes).targetStepY (contracts/curves/StepwiseCurveABDK.sol#62)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#variable-names-are-too-similar

Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x3442c4e6074a82f1797f72ac0000000 (contracts/curves/Power.sol#311)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x116b96f757c380fb287fd0e40000000 (contracts/curves/Power.sol#313)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x045ae5bdd5f0e03eca1ff4390000000 (contracts/curves/Power.sol#315)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x00defabf91302cd95b9ffda50000000 (contracts/curves/Power.sol#317)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x002529ca9832b22439efff9b8000000 (contracts/curves/Power.sol#319)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x00054f1cf12bd04e516b6da88000000 (contracts/curves/Power.sol#321)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x0000a9e39e257a09ca2d6db51000000 (contracts/curves/Power.sol#323)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x000012e066e7b839fa050c309000000 (contracts/curves/Power.sol#325)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x000001e33d7d926c329a1ad1a800000 (contracts/curves/Power.sol#327)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x0000002bee513bdb4a6b19b5f800000 (contracts/curves/Power.sol#329)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x00000003a9316fa79b88eccf2a00000 (contracts/curves/Power.sol#331)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x0000000048177ebe1fa812375200000 (contracts/curves/Power.sol#333)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x0000000005263fe90242dcbacf00000 (contracts/curves/Power.sol#335)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x000000000057e22099c030d94100000 (contracts/curves/Power.sol#337)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x0000000000057e22099c030d9410000 (contracts/curves/Power.sol#339)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x00000000000052b6b54569976310000 (contracts/curves/Power.sol#341)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x00000000000004985f67696bf748000 (contracts/curves/Power.sol#343)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x000000000000003dea12ea99e498000 (contracts/curves/Power.sol#345)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x00000000000000031880f2214b6e000 (contracts/curves/Power.sol#347)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x000000000000000025bcff56eb36000 (contracts/curves/Power.sol#349)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x000000000000000001b722e10ab1000 (contracts/curves/Power.sol#351)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x0000000000000000001317c70077000 (contracts/curves/Power.sol#353)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x00000000000000000000cba84aafa00 (contracts/curves/Power.sol#355)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x00000000000000000000082573a0a00 (contracts/curves/Power.sol#357)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x00000000000000000000005035ad900 (contracts/curves/Power.sol#359)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x000000000000000000000002f881b00 (contracts/curves/Power.sol#361)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x0000000000000000000000001b29340 (contracts/curves/Power.sol#363)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x00000000000000000000000000efc40 (contracts/curves/Power.sol#365)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x0000000000000000000000000007fe0 (contracts/curves/Power.sol#367)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x0000000000000000000000000000420 (contracts/curves/Power.sol#369)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x0000000000000000000000000000021 (contracts/curves/Power.sol#371)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res += xi * 0x0000000000000000000000000000001 (contracts/curves/Power.sol#373)
Power.generalExp(uint256,uint8) (contracts/curves/Power.sol#302-377) uses literals with too many digits:
	- res / 0x688589cc0e9505e2f2fee5580000000 + _x + (ONE << _precision) (contracts/curves/Power.sol#375-376)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += 0x40000000000000000000000000000000 (contracts/curves/Power.sol#392)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += 0x20000000000000000000000000000000 (contracts/curves/Power.sol#396)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += 0x10000000000000000000000000000000 (contracts/curves/Power.sol#400)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += 0x08000000000000000000000000000000 (contracts/curves/Power.sol#404)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += 0x04000000000000000000000000000000 (contracts/curves/Power.sol#408)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += 0x02000000000000000000000000000000 (contracts/curves/Power.sol#412)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += 0x01000000000000000000000000000000 (contracts/curves/Power.sol#416)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += 0x00800000000000000000000000000000 (contracts/curves/Power.sol#420)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += (z * (0x100000000000000000000000000000000 - y)) / 0x100000000000000000000000000000000 (contracts/curves/Power.sol#426-428)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += (z * (0x0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - y)) / 0x200000000000000000000000000000000 (contracts/curves/Power.sol#430-432)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += (z * (0x099999999999999999999999999999999 - y)) / 0x300000000000000000000000000000000 (contracts/curves/Power.sol#434-436)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += (z * (0x092492492492492492492492492492492 - y)) / 0x400000000000000000000000000000000 (contracts/curves/Power.sol#438-440)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += (z * (0x08e38e38e38e38e38e38e38e38e38e38e - y)) / 0x500000000000000000000000000000000 (contracts/curves/Power.sol#442-444)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += (z * (0x08ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b - y)) / 0x600000000000000000000000000000000 (contracts/curves/Power.sol#446-448)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += (z * (0x089d89d89d89d89d89d89d89d89d89d89 - y)) / 0x700000000000000000000000000000000 (contracts/curves/Power.sol#450-452)
Power.optimalLog(uint256) (contracts/curves/Power.sol#384-459) uses literals with too many digits:
	- res += (z * (0x088888888888888888888888888888888 - y)) / 0x800000000000000000000000000000000 (contracts/curves/Power.sol#454-456)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- z = y = x % 0x10000000000000000000000000000000 (contracts/curves/Power.sol#472)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res += z * 0x00000618fee9f800 (contracts/curves/Power.sol#488)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res += z * 0x0000009c197dcc00 (contracts/curves/Power.sol#490)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res += z * 0x0000000e30dce400 (contracts/curves/Power.sol#492)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res += z * 0x000000012ebd1300 (contracts/curves/Power.sol#494)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res += z * 0x0000000017499f00 (contracts/curves/Power.sol#496)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res += z * 0x0000000001a9d480 (contracts/curves/Power.sol#498)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res += z * 0x00000000001c6380 (contracts/curves/Power.sol#500)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res += z * 0x000000000001c638 (contracts/curves/Power.sol#502)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res += z * 0x0000000000001ab8 (contracts/curves/Power.sol#504)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res += z * 0x000000000000017c (contracts/curves/Power.sol#506)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res += z * 0x0000000000000014 (contracts/curves/Power.sol#508)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res += z * 0x0000000000000001 (contracts/curves/Power.sol#510)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- (x & 0x010000000000000000000000000000000) != 0 (contracts/curves/Power.sol#513)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- (x & 0x020000000000000000000000000000000) != 0 (contracts/curves/Power.sol#517)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- (x & 0x040000000000000000000000000000000) != 0 (contracts/curves/Power.sol#521)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- (x & 0x080000000000000000000000000000000) != 0 (contracts/curves/Power.sol#525)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- (x & 0x100000000000000000000000000000000) != 0 (contracts/curves/Power.sol#529)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- (x & 0x200000000000000000000000000000000) != 0 (contracts/curves/Power.sol#533)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- (x & 0x400000000000000000000000000000000) != 0 (contracts/curves/Power.sol#537)
Power.optimalExp(uint256) (contracts/curves/Power.sol#466-543) uses literals with too many digits:
	- res = (res * 0x0002bf84208204f5977f9a8cf01fdc307) / 0x0000003c6ab775dd0b95b4cbee7e65d11 (contracts/curves/Power.sol#538-540)
BancorPower.slitherConstructorConstantVariables() (contracts/curves/BancorPower.sol#17-293) uses literals with too many digits:
	- FIXED_1 = 0x080000000000000000000000000000000 (contracts/curves/Power.sol#19)
BancorPower.slitherConstructorConstantVariables() (contracts/curves/BancorPower.sol#17-293) uses literals with too many digits:
	- FIXED_2 = 0x100000000000000000000000000000000 (contracts/curves/Power.sol#20)
BancorPower.slitherConstructorConstantVariables() (contracts/curves/BancorPower.sol#17-293) uses literals with too many digits:
	- MAX_NUM = 0x200000000000000000000000000000000 (contracts/curves/Power.sol#21)
BancorPower.slitherConstructorConstantVariables() (contracts/curves/BancorPower.sol#17-293) uses literals with too many digits:
	- OPT_EXP_MAX_VAL = 0x800000000000000000000000000000000 (contracts/curves/Power.sol#29-30)
ABDKMathQuad.toUInt(bytes16) (contracts/utils/ABDKMathQuad.sol#78-96) uses literals with too many digits:
	- require(bool)(uint128(x) < 0x80000000000000000000000000000000) (contracts/utils/ABDKMathQuad.sol#84)
ABDKMathQuad.toUInt(bytes16) (contracts/utils/ABDKMathQuad.sol#78-96) uses literals with too many digits:
	- result = (uint256(uint128(x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF) | 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#87-89)
ABDKMathQuad.cmp(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#106-135) uses literals with too many digits:
	- require(bool)(absoluteX <= 0x7FFF0000000000000000000000000000) (contracts/utils/ABDKMathQuad.sol#110)
ABDKMathQuad.cmp(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#106-135) uses literals with too many digits:
	- require(bool)(absoluteY <= 0x7FFF0000000000000000000000000000) (contracts/utils/ABDKMathQuad.sol#114)
ABDKMathQuad.cmp(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#106-135) uses literals with too many digits:
	- require(bool)(x != y || absoluteX < 0x7FFF0000000000000000000000000000) (contracts/utils/ABDKMathQuad.sol#117)
ABDKMathQuad.cmp(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#106-135) uses literals with too many digits:
	- negativeX = uint128(x) >= 0x80000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#121-122)
ABDKMathQuad.cmp(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#106-135) uses literals with too many digits:
	- negativeY = uint128(y) >= 0x80000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#123-124)
ABDKMathQuad.add(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#151-287) uses literals with too many digits:
	- xSign = uint128(x) >= 0x80000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#163)
ABDKMathQuad.add(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#151-287) uses literals with too many digits:
	- xSignifier |= 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#167)
ABDKMathQuad.add(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#151-287) uses literals with too many digits:
	- ySign = uint128(y) >= 0x80000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#169)
ABDKMathQuad.add(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#151-287) uses literals with too many digits:
	- ySignifier |= 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#173)
ABDKMathQuad.add(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#151-287) uses literals with too many digits:
	- xSignifier >= 0x20000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#193)
ABDKMathQuad.add(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#151-287) uses literals with too many digits:
	- xSignifier < 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#202)
ABDKMathQuad.add(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#151-287) uses literals with too many digits:
	- bytes16(uint128((0x80000000000000000000000000000000) | (xExponent << 112) | xSignifier)) (contracts/utils/ABDKMathQuad.sol#206-217)
ABDKMathQuad.add(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#151-287) uses literals with too many digits:
	- bytes16(uint128((0x80000000000000000000000000000000) | (xExponent << 112) | xSignifier)) (contracts/utils/ABDKMathQuad.sol#271-282)
ABDKMathQuad.sub(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#303-307) uses literals with too many digits:
	- add(x,y ^ 0x80000000000000000000000000000000) (contracts/utils/ABDKMathQuad.sol#305)
ABDKMathQuad.mul(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#328-409) uses literals with too many digits:
	- x ^ (y & 0x80000000000000000000000000000000) (contracts/utils/ABDKMathQuad.sol#336)
ABDKMathQuad.mul(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#328-409) uses literals with too many digits:
	- x ^ y == 0x80000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#337)
ABDKMathQuad.mul(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#328-409) uses literals with too many digits:
	- x ^ (y & 0x80000000000000000000000000000000) (contracts/utils/ABDKMathQuad.sol#342)
ABDKMathQuad.mul(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#328-409) uses literals with too many digits:
	- y ^ (x & 0x80000000000000000000000000000000) (contracts/utils/ABDKMathQuad.sol#346)
ABDKMathQuad.mul(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#328-409) uses literals with too many digits:
	- xSignifier |= 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#351)
ABDKMathQuad.mul(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#328-409) uses literals with too many digits:
	- ySignifier |= 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#356)
ABDKMathQuad.mul(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#328-409) uses literals with too many digits:
	- bytes16(uint128(uint128((x ^ y) & 0x80000000000000000000000000000000) | (xExponent << 112) | xSignifier)) (contracts/utils/ABDKMathQuad.sol#397-406)
ABDKMathQuad.mul(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#328-409) uses literals with too many digits:
	- (x ^ y) & 0x80000000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#360-363)
ABDKMathQuad.mul(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#328-409) uses literals with too many digits:
	- xSignifier >= 0x200000000000000000000000000000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#367-373)
ABDKMathQuad.mul(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#328-409) uses literals with too many digits:
	- xSignifier >= 0x100000000000000000000000000000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#367-373)
ABDKMathQuad.div(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#445-542) uses literals with too many digits:
	- x ^ (y & 0x80000000000000000000000000000000) (contracts/utils/ABDKMathQuad.sol#452)
ABDKMathQuad.div(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#445-542) uses literals with too many digits:
	- _POSITIVE_ZERO | ((x ^ y) & 0x80000000000000000000000000000000) (contracts/utils/ABDKMathQuad.sol#456-458)
ABDKMathQuad.div(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#445-542) uses literals with too many digits:
	- _POSITIVE_INFINITY | ((x ^ y) & 0x80000000000000000000000000000000) (contracts/utils/ABDKMathQuad.sol#462-464)
ABDKMathQuad.div(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#445-542) uses literals with too many digits:
	- ySignifier |= 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#469)
ABDKMathQuad.div(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#445-542) uses literals with too many digits:
	- xSignifier = (xSignifier | 0x10000000000000000000000000000) << 114 (contracts/utils/ABDKMathQuad.sol#483-485)
ABDKMathQuad.div(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#445-542) uses literals with too many digits:
	- assert(bool)(xSignifier >= 0x1000000000000000000000000000) (contracts/utils/ABDKMathQuad.sol#495)
ABDKMathQuad.div(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#445-542) uses literals with too many digits:
	- bytes16(uint128(uint128((x ^ y) & 0x80000000000000000000000000000000) | (xExponent << 112) | xSignifier)) (contracts/utils/ABDKMathQuad.sol#530-539)
ABDKMathQuad.div(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#445-542) uses literals with too many digits:
	- (x ^ y) & 0x80000000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#490-493)
ABDKMathQuad.div(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#445-542) uses literals with too many digits:
	- xSignifier >= 0x80000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#497-503)
ABDKMathQuad.div(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#445-542) uses literals with too many digits:
	- xSignifier >= 0x40000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#497-503)
ABDKMathQuad.div(bytes16,bytes16) (contracts/utils/ABDKMathQuad.sol#445-542) uses literals with too many digits:
	- xSignifier >= 0x20000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#497-503)
ABDKMathQuad.sqrt(bytes16) (contracts/utils/ABDKMathQuad.sol#550-608) uses literals with too many digits:
	- uint128(x) > 0x80000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#552)
ABDKMathQuad.sqrt(bytes16) (contracts/utils/ABDKMathQuad.sol#550-608) uses literals with too many digits:
	- xSignifier |= 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#560)
ABDKMathQuad.sqrt(bytes16) (contracts/utils/ABDKMathQuad.sol#550-608) uses literals with too many digits:
	- xSignifier >= 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#568)
ABDKMathQuad.sqrt(bytes16) (contracts/utils/ABDKMathQuad.sol#550-608) uses literals with too many digits:
	- xSignifier >= 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#577)
ABDKMathQuad.sqrt(bytes16) (contracts/utils/ABDKMathQuad.sol#550-608) uses literals with too many digits:
	- r = 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#587)
ABDKMathQuad.log_2(bytes16) (contracts/utils/ABDKMathQuad.sol#616-689) uses literals with too many digits:
	- uint128(x) > 0x80000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#618)
ABDKMathQuad.log_2(bytes16) (contracts/utils/ABDKMathQuad.sol#616-689) uses literals with too many digits:
	- x == 0x3FFF0000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#619)
ABDKMathQuad.log_2(bytes16) (contracts/utils/ABDKMathQuad.sol#616-689) uses literals with too many digits:
	- xSignifier |= 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#628)
ABDKMathQuad.log_2(bytes16) (contracts/utils/ABDKMathQuad.sol#616-689) uses literals with too many digits:
	- xSignifier >= 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#642)
ABDKMathQuad.log_2(bytes16) (contracts/utils/ABDKMathQuad.sol#616-689) uses literals with too many digits:
	- xSignifier == 0x80000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#652)
ABDKMathQuad.log_2(bytes16) (contracts/utils/ABDKMathQuad.sol#616-689) uses literals with too many digits:
	- resultSignifier < 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#661)
ABDKMathQuad.log_2(bytes16) (contracts/utils/ABDKMathQuad.sol#616-689) uses literals with too many digits:
	- bytes16(uint128((0x80000000000000000000000000000000) | (resultExponent << 112) | (resultSignifier & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF))) (contracts/utils/ABDKMathQuad.sol#673-685)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xNegative = uint128(x) > 0x80000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#711)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- 0x3FFF0000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#719)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier |= 0x10000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#722)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xNegative && xSignifier > 0x406E00000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#728-729)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = 0x80000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#744)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x80000000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#745)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x40000000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#750)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x20000000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#755)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x10000000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#760)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x8000000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#765)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x4000000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#770)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x2000000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#775)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x1000000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#780)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x800000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#785)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x400000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#790)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x200000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#795)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x100000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#800)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x80000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#805)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x40000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#810)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x20000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#815)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x10000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#820)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x8000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#825)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x4000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#830)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x2000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#835)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x1000000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#840)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000B1721BCFC99D9F890EA06911763) >> 128 (contracts/utils/ABDKMathQuad.sol#841-844)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x800000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#845)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000058B90CF1E6D97F9CA14DBCC1628) >> 128 (contracts/utils/ABDKMathQuad.sol#846-849)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x400000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#850)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000002C5C863B73F016468F6BAC5CA2B) >> 128 (contracts/utils/ABDKMathQuad.sol#851-854)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x200000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#855)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000162E430E5A18F6119E3C02282A5) >> 128 (contracts/utils/ABDKMathQuad.sol#856-859)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x100000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#860)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000B1721835514B86E6D96EFD1BFE) >> 128 (contracts/utils/ABDKMathQuad.sol#861-864)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x80000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#865)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000058B90C0B48C6BE5DF846C5B2EF) >> 128 (contracts/utils/ABDKMathQuad.sol#866-869)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x40000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#870)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000002C5C8601CC6B9E94213C72737A) >> 128 (contracts/utils/ABDKMathQuad.sol#871-874)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x20000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#875)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000162E42FFF037DF38AA2B219F06) >> 128 (contracts/utils/ABDKMathQuad.sol#876-879)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x10000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#880)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000B17217FBA9C739AA5819F44F9) >> 128 (contracts/utils/ABDKMathQuad.sol#881-884)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x8000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#885)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000058B90BFCDEE5ACD3C1CEDC823) >> 128 (contracts/utils/ABDKMathQuad.sol#886-889)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x4000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#890)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000002C5C85FE31F35A6A30DA1BE50) >> 128 (contracts/utils/ABDKMathQuad.sol#891-894)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x2000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#895)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000162E42FF0999CE3541B9FFFCF) >> 128 (contracts/utils/ABDKMathQuad.sol#896-899)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x1000000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#900)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000B17217F80F4EF5AADDA45554) >> 128 (contracts/utils/ABDKMathQuad.sol#901-904)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x800000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#905)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000058B90BFBF8479BD5A81B51AD) >> 128 (contracts/utils/ABDKMathQuad.sol#906-909)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x400000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#910)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000002C5C85FDF84BD62AE30A74CC) >> 128 (contracts/utils/ABDKMathQuad.sol#911-914)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x200000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#915)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000162E42FEFB2FED257559BDAA) >> 128 (contracts/utils/ABDKMathQuad.sol#916-919)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x100000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#920)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000B17217F7D5A7716BBA4A9AE) >> 128 (contracts/utils/ABDKMathQuad.sol#921-924)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x80000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#925)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000058B90BFBE9DDBAC5E109CCE) >> 128 (contracts/utils/ABDKMathQuad.sol#926-929)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x40000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#930)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000002C5C85FDF4B15DE6F17EB0D) >> 128 (contracts/utils/ABDKMathQuad.sol#931-934)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x20000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#935)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000162E42FEFA494F1478FDE05) >> 128 (contracts/utils/ABDKMathQuad.sol#936-939)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x10000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#940)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000B17217F7D20CF927C8E94C) >> 128 (contracts/utils/ABDKMathQuad.sol#941-944)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x8000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#945)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000058B90BFBE8F71CB4E4B33D) >> 128 (contracts/utils/ABDKMathQuad.sol#946-949)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x4000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#950)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000002C5C85FDF477B662B26945) >> 128 (contracts/utils/ABDKMathQuad.sol#951-954)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x2000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#955)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000162E42FEFA3AE53369388C) >> 128 (contracts/utils/ABDKMathQuad.sol#956-959)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x1000000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#960)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000B17217F7D1D351A389D40) >> 128 (contracts/utils/ABDKMathQuad.sol#961-964)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x800000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#965)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000058B90BFBE8E8B2D3D4EDE) >> 128 (contracts/utils/ABDKMathQuad.sol#966-969)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x400000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#970)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000002C5C85FDF4741BEA6E77E) >> 128 (contracts/utils/ABDKMathQuad.sol#971-974)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x200000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#975)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000162E42FEFA39FE95583C2) >> 128 (contracts/utils/ABDKMathQuad.sol#976-979)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x100000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#980)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000B17217F7D1CFB72B45E1) >> 128 (contracts/utils/ABDKMathQuad.sol#981-984)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x80000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#985)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000058B90BFBE8E7CC35C3F0) >> 128 (contracts/utils/ABDKMathQuad.sol#986-989)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x40000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#990)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000002C5C85FDF473E242EA38) >> 128 (contracts/utils/ABDKMathQuad.sol#991-994)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x20000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#995)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000162E42FEFA39F02B772C) >> 128 (contracts/utils/ABDKMathQuad.sol#996-999)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x10000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1000)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000B17217F7D1CF7D83C1A) >> 128 (contracts/utils/ABDKMathQuad.sol#1001-1004)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x8000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1005)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000058B90BFBE8E7BDCBE2E) >> 128 (contracts/utils/ABDKMathQuad.sol#1006-1009)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x4000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1010)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000002C5C85FDF473DEA871F) >> 128 (contracts/utils/ABDKMathQuad.sol#1011-1014)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x2000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1015)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000162E42FEFA39EF44D91) >> 128 (contracts/utils/ABDKMathQuad.sol#1016-1019)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x1000000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1020)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000B17217F7D1CF79E949) >> 128 (contracts/utils/ABDKMathQuad.sol#1021-1024)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x800000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1025)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000058B90BFBE8E7BCE544) >> 128 (contracts/utils/ABDKMathQuad.sol#1026-1029)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x400000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1030)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000002C5C85FDF473DE6ECA) >> 128 (contracts/utils/ABDKMathQuad.sol#1031-1034)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x200000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1035)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000162E42FEFA39EF366F) >> 128 (contracts/utils/ABDKMathQuad.sol#1036-1039)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x100000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1040)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000B17217F7D1CF79AFA) >> 128 (contracts/utils/ABDKMathQuad.sol#1041-1044)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x80000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1045)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000058B90BFBE8E7BCD6D) >> 128 (contracts/utils/ABDKMathQuad.sol#1046-1049)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x40000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1050)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000002C5C85FDF473DE6B2) >> 128 (contracts/utils/ABDKMathQuad.sol#1051-1054)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x20000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1055)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000162E42FEFA39EF358) >> 128 (contracts/utils/ABDKMathQuad.sol#1056-1059)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x10000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1060)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000B17217F7D1CF79AB) >> 128 (contracts/utils/ABDKMathQuad.sol#1061-1064)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x8000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1065)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000058B90BFBE8E7BCD5) >> 128 (contracts/utils/ABDKMathQuad.sol#1066-1069)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x4000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1070)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000002C5C85FDF473DE6A) >> 128 (contracts/utils/ABDKMathQuad.sol#1071-1074)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x2000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1075)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000162E42FEFA39EF34) >> 128 (contracts/utils/ABDKMathQuad.sol#1076-1079)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x1000000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1080)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000B17217F7D1CF799) >> 128 (contracts/utils/ABDKMathQuad.sol#1081-1084)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x800000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1085)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000058B90BFBE8E7BCC) >> 128 (contracts/utils/ABDKMathQuad.sol#1086-1089)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x400000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1090)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000002C5C85FDF473DE5) >> 128 (contracts/utils/ABDKMathQuad.sol#1091-1094)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x200000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1095)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000162E42FEFA39EF2) >> 128 (contracts/utils/ABDKMathQuad.sol#1096-1099)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x100000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1100)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000B17217F7D1CF78) >> 128 (contracts/utils/ABDKMathQuad.sol#1101-1104)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x80000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1105)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000058B90BFBE8E7BB) >> 128 (contracts/utils/ABDKMathQuad.sol#1106-1109)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x40000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1110)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000002C5C85FDF473DD) >> 128 (contracts/utils/ABDKMathQuad.sol#1111-1114)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x20000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1115)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000162E42FEFA39EE) >> 128 (contracts/utils/ABDKMathQuad.sol#1116-1119)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x10000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1120)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000B17217F7D1CF6) >> 128 (contracts/utils/ABDKMathQuad.sol#1121-1124)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x8000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1125)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000058B90BFBE8E7A) >> 128 (contracts/utils/ABDKMathQuad.sol#1126-1129)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x4000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1130)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000002C5C85FDF473C) >> 128 (contracts/utils/ABDKMathQuad.sol#1131-1134)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x2000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1135)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000162E42FEFA39D) >> 128 (contracts/utils/ABDKMathQuad.sol#1136-1139)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x1000000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1140)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000B17217F7D1CE) >> 128 (contracts/utils/ABDKMathQuad.sol#1141-1144)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x800000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1145)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000058B90BFBE8E6) >> 128 (contracts/utils/ABDKMathQuad.sol#1146-1149)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x400000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1150)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000002C5C85FDF472) >> 128 (contracts/utils/ABDKMathQuad.sol#1151-1154)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x200000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1155)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000162E42FEFA38) >> 128 (contracts/utils/ABDKMathQuad.sol#1156-1159)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x100000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1160)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000B17217F7D1B) >> 128 (contracts/utils/ABDKMathQuad.sol#1161-1164)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x80000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1165)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000058B90BFBE8D) >> 128 (contracts/utils/ABDKMathQuad.sol#1166-1169)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x40000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1170)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000002C5C85FDF46) >> 128 (contracts/utils/ABDKMathQuad.sol#1171-1174)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x20000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1175)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000162E42FEFA2) >> 128 (contracts/utils/ABDKMathQuad.sol#1176-1179)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x10000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1180)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000B17217F7D0) >> 128 (contracts/utils/ABDKMathQuad.sol#1181-1184)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x8000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1185)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000058B90BFBE7) >> 128 (contracts/utils/ABDKMathQuad.sol#1186-1189)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x4000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1190)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000002C5C85FDF3) >> 128 (contracts/utils/ABDKMathQuad.sol#1191-1194)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x2000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1195)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000162E42FEF9) >> 128 (contracts/utils/ABDKMathQuad.sol#1196-1199)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x1000000000 > 0 (contracts/utils/ABDKMathQuad.sol#1200)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000B17217F7C) >> 128 (contracts/utils/ABDKMathQuad.sol#1201-1204)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x800000000 > 0 (contracts/utils/ABDKMathQuad.sol#1205)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000058B90BFBD) >> 128 (contracts/utils/ABDKMathQuad.sol#1206-1209)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x400000000 > 0 (contracts/utils/ABDKMathQuad.sol#1210)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000002C5C85FDE) >> 128 (contracts/utils/ABDKMathQuad.sol#1211-1214)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x200000000 > 0 (contracts/utils/ABDKMathQuad.sol#1215)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000162E42FEE) >> 128 (contracts/utils/ABDKMathQuad.sol#1216-1219)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x100000000 > 0 (contracts/utils/ABDKMathQuad.sol#1220)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000000B17217F6) >> 128 (contracts/utils/ABDKMathQuad.sol#1221-1224)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x80000000 > 0 (contracts/utils/ABDKMathQuad.sol#1225)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000058B90BFA) >> 128 (contracts/utils/ABDKMathQuad.sol#1226-1229)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x40000000 > 0 (contracts/utils/ABDKMathQuad.sol#1230)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000002C5C85FC) >> 128 (contracts/utils/ABDKMathQuad.sol#1231-1234)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x20000000 > 0 (contracts/utils/ABDKMathQuad.sol#1235)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000000162E42FD) >> 128 (contracts/utils/ABDKMathQuad.sol#1236-1239)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x10000000 > 0 (contracts/utils/ABDKMathQuad.sol#1240)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000000B17217E) >> 128 (contracts/utils/ABDKMathQuad.sol#1241-1244)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x8000000 > 0 (contracts/utils/ABDKMathQuad.sol#1245)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000000058B90BE) >> 128 (contracts/utils/ABDKMathQuad.sol#1246-1249)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x4000000 > 0 (contracts/utils/ABDKMathQuad.sol#1250)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000002C5C85E) >> 128 (contracts/utils/ABDKMathQuad.sol#1251-1254)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x2000000 > 0 (contracts/utils/ABDKMathQuad.sol#1255)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000000162E42E) >> 128 (contracts/utils/ABDKMathQuad.sol#1256-1259)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x1000000 > 0 (contracts/utils/ABDKMathQuad.sol#1260)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000000B17216) >> 128 (contracts/utils/ABDKMathQuad.sol#1261-1264)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x800000 > 0 (contracts/utils/ABDKMathQuad.sol#1265)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000000058B90A) >> 128 (contracts/utils/ABDKMathQuad.sol#1266-1269)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x400000 > 0 (contracts/utils/ABDKMathQuad.sol#1270)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000000002C5C84) >> 128 (contracts/utils/ABDKMathQuad.sol#1271-1274)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x200000 > 0 (contracts/utils/ABDKMathQuad.sol#1275)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000000162E41) >> 128 (contracts/utils/ABDKMathQuad.sol#1276-1279)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- xSignifier & 0x100000 > 0 (contracts/utils/ABDKMathQuad.sol#1280)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000000000B1720) >> 128 (contracts/utils/ABDKMathQuad.sol#1281-1284)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000000058B8F) >> 128 (contracts/utils/ABDKMathQuad.sol#1286-1289)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000000002C5C7) >> 128 (contracts/utils/ABDKMathQuad.sol#1291-1294)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000000000162E3) >> 128 (contracts/utils/ABDKMathQuad.sol#1296-1299)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000000000B171) >> 128 (contracts/utils/ABDKMathQuad.sol#1301-1304)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000000000058B8) >> 128 (contracts/utils/ABDKMathQuad.sol#1306-1309)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000000002C5B) >> 128 (contracts/utils/ABDKMathQuad.sol#1311-1314)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000000000162D) >> 128 (contracts/utils/ABDKMathQuad.sol#1316-1319)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000000000B16) >> 128 (contracts/utils/ABDKMathQuad.sol#1321-1324)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000000000058A) >> 128 (contracts/utils/ABDKMathQuad.sol#1326-1329)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000000000002C4) >> 128 (contracts/utils/ABDKMathQuad.sol#1331-1334)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000000000161) >> 128 (contracts/utils/ABDKMathQuad.sol#1336-1339)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x1000000000000000000000000000000B0) >> 128 (contracts/utils/ABDKMathQuad.sol#1341-1344)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000000000057) >> 128 (contracts/utils/ABDKMathQuad.sol#1346-1349)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000000000002B) >> 128 (contracts/utils/ABDKMathQuad.sol#1351-1354)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000000000015) >> 128 (contracts/utils/ABDKMathQuad.sol#1356-1359)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x10000000000000000000000000000000A) >> 128 (contracts/utils/ABDKMathQuad.sol#1361-1364)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000000000004) >> 128 (contracts/utils/ABDKMathQuad.sol#1366-1369)
ABDKMathQuad.pow_2(bytes16) (contracts/utils/ABDKMathQuad.sol#709-1397) uses literals with too many digits:
	- resultSignifier = (resultSignifier * 0x100000000000000000000000000000001) >> 128 (contracts/utils/ABDKMathQuad.sol#1371-1374)
ABDKMathQuad.mostSignificantBit(uint256) (contracts/utils/ABDKMathQuad.sol#1418-1456) uses literals with too many digits:
	- x >= 0x100000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#1424)
ABDKMathQuad.mostSignificantBit(uint256) (contracts/utils/ABDKMathQuad.sol#1418-1456) uses literals with too many digits:
	- x >= 0x10000000000000000 (contracts/utils/ABDKMathQuad.sol#1428)
ABDKMathQuad.mostSignificantBit(uint256) (contracts/utils/ABDKMathQuad.sol#1418-1456) uses literals with too many digits:
	- x >= 0x100000000 (contracts/utils/ABDKMathQuad.sol#1432)
ABDKMathQuad.slitherConstructorConstantVariables() (contracts/utils/ABDKMathQuad.sol#14-1457) uses literals with too many digits:
	- _POSITIVE_ZERO = 0x00000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#18-19)
ABDKMathQuad.slitherConstructorConstantVariables() (contracts/utils/ABDKMathQuad.sol#14-1457) uses literals with too many digits:
	- _NEGATIVE_ZERO = 0x80000000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#24-25)
ABDKMathQuad.slitherConstructorConstantVariables() (contracts/utils/ABDKMathQuad.sol#14-1457) uses literals with too many digits:
	- _POSITIVE_INFINITY = 0x7FFF0000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#30-31)
ABDKMathQuad.slitherConstructorConstantVariables() (contracts/utils/ABDKMathQuad.sol#14-1457) uses literals with too many digits:
	- _NEGATIVE_INFINITY = 0xFFFF0000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#36-37)
ABDKMathQuad.slitherConstructorConstantVariables() (contracts/utils/ABDKMathQuad.sol#14-1457) uses literals with too many digits:
	- NaN = 0x7FFF8000000000000000000000000000 (contracts/utils/ABDKMathQuad.sol#42)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#too-many-digits

Power.version (contracts/curves/Power.sol#13) should be constant
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant

renounceOwnership() should be declared external:
	- Ownable.renounceOwnership() (node_modules/@openzeppelin/contracts/access/Ownable.sol#54-56)
transferOwnership(address) should be declared external:
	- Ownable.transferOwnership(address) (node_modules/@openzeppelin/contracts/access/Ownable.sol#62-65)
name() should be declared external:
	- ERC20.name() (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#62-64)
symbol() should be declared external:
	- ERC20.symbol() (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#70-72)
decimals() should be declared external:
	- ERC20.decimals() (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#87-89)
totalSupply() should be declared external:
	- ERC20.totalSupply() (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#94-96)
balanceOf(address) should be declared external:
	- ERC20.balanceOf(address) (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#101-103)
transfer(address,uint256) should be declared external:
	- ERC20.transfer(address,uint256) (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#113-117)
approve(address,uint256) should be declared external:
	- ERC20.approve(address,uint256) (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#136-140)
transferFrom(address,address,uint256) should be declared external:
	- ERC20.transferFrom(address,address,uint256) (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#158-167)
increaseAllowance(address,uint256) should be declared external:
	- ERC20.increaseAllowance(address,uint256) (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#181-185)
decreaseAllowance(address,uint256) should be declared external:
	- ERC20.decreaseAllowance(address,uint256) (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#201-210)
burn(uint256) should be declared external:
	- ERC20Burnable.burn(uint256) (node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol#20-22)
burnFrom(address,uint256) should be declared external:
	- ERC20Burnable.burnFrom(address,uint256) (node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol#35-38)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-external
. analyzed (61 contracts with 77 detectors), 837 result(s) found