diff --git a/plutus-conformance/agda/Spec.hs b/plutus-conformance/agda/Spec.hs index 797864dc3e9..e204df6afc9 100644 --- a/plutus-conformance/agda/Spec.hs +++ b/plutus-conformance/agda/Spec.hs @@ -124,23 +124,10 @@ agdaEvalUplcProg WithoutCosting = -} failingEvaluationTests :: [FilePath] failingEvaluationTests = - [ -- These "array" tests fail because the Agda code doesn't know about arrays yet - -- TODO: remove these tests once "Add new array type and builtins to Agda - -- metatheory" is done https://github.com/IntersectMBO/plutus-private/issues/1465 - "test-cases/uplc/evaluation/builtin/constant/array/emptyArray" - , "test-cases/uplc/evaluation/builtin/constant/array/simpleArray" - , "test-cases/uplc/evaluation/builtin/constant/array/unitArray" - , "test-cases/uplc/evaluation/builtin/semantics/listToArray/listToArray-01" - , "test-cases/uplc/evaluation/builtin/semantics/listToArray/listToArray-02" - , "test-cases/uplc/evaluation/builtin/semantics/lengthOfArray/lengthOfArray-01" - , "test-cases/uplc/evaluation/builtin/semantics/lengthOfArray/lengthOfArray-02" - , "test-cases/uplc/evaluation/builtin/semantics/indexArray/indexArray-01" - , "test-cases/uplc/evaluation/builtin/semantics/indexArray/indexArray-02" - , "test-cases/uplc/evaluation/builtin/semantics/indexArray/indexArray-03" - -- These "constant casing" tests fail because Agda metatheory does not yet - -- implement casing on constant values. - -- TODO: remove these tests once casing on constant is added to Agda metatheory. - , "test-cases/uplc/evaluation/term/constant-case/bool/bool-01" + [ -- These "constant casing" tests fail because Agda metatheory does not yet + -- implement casing on constant values. + -- TODO: remove these tests once casing on constant is added to Agda metatheory. + "test-cases/uplc/evaluation/term/constant-case/bool/bool-01" , "test-cases/uplc/evaluation/term/constant-case/bool/bool-02" , "test-cases/uplc/evaluation/term/constant-case/bool/bool-03" , "test-cases/uplc/evaluation/term/constant-case/bool/bool-04" @@ -196,21 +183,6 @@ failingBudgetTests = , "test-cases/uplc/evaluation/builtin/semantics/dropList/dropList-14" , "test-cases/uplc/evaluation/builtin/semantics/dropList/dropList-15" , "test-cases/uplc/evaluation/builtin/semantics/dropList/dropList-16" - , -- These "array" tests fail because the Agda code doesn't know about arrays yet - -- TODO: remove these tests once "Add new array type and builtins to Agda - -- metatheory" is done https://github.com/IntersectMBO/plutus-private/issues/1465 - "test-cases/uplc/evaluation/builtin/constant/array/emptyArray" - , "test-cases/uplc/evaluation/builtin/constant/array/simpleArray" - , "test-cases/uplc/evaluation/builtin/constant/array/unitArray" - , "test-cases/uplc/evaluation/builtin/constant/array/illTypedArray-01" - , "test-cases/uplc/evaluation/builtin/constant/array/illTypedArray-02" - , "test-cases/uplc/evaluation/builtin/semantics/listToArray/listToArray-01" - , "test-cases/uplc/evaluation/builtin/semantics/listToArray/listToArray-02" - , "test-cases/uplc/evaluation/builtin/semantics/lengthOfArray/lengthOfArray-01" - , "test-cases/uplc/evaluation/builtin/semantics/lengthOfArray/lengthOfArray-02" - , "test-cases/uplc/evaluation/builtin/semantics/indexArray/indexArray-01" - , "test-cases/uplc/evaluation/builtin/semantics/indexArray/indexArray-02" - , "test-cases/uplc/evaluation/builtin/semantics/indexArray/indexArray-03" -- These "constant casing" tests fail because Agda metatheory does not yet -- implement casing on constant values. -- TODO: remove these tests once casing on constant is added to Agda metatheory. diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-41/case-41.uplc b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-41/case-41.uplc new file mode 100644 index 00000000000..a430b022ad5 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-41/case-41.uplc @@ -0,0 +1,8 @@ +-- An empty list of updates doesn't change anything. +(program 1.0.0 +[ (builtin writeBits) + (con bytestring #00000000000000000000000000000000000000000000000000000000000000000000000000000000) + (con (list integer) []) + (con bool False) + ] +) diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-41/case-41.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-41/case-41.uplc.budget.expected new file mode 100644 index 00000000000..5614475a274 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-41/case-41.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 393245 +| mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-41/case-41.uplc.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-41/case-41.uplc.expected new file mode 100644 index 00000000000..a11cb37af77 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-41/case-41.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bytestring + #00000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-42/case-42.uplc b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-42/case-42.uplc new file mode 100644 index 00000000000..38d2a1d074a --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-42/case-42.uplc @@ -0,0 +1,8 @@ +-- An empty list of updates doesn't change anything. +(program 1.0.0 +[ (builtin writeBits) + (con bytestring #00000000000000000000000000000000000000000000000000000000000000000000000000000000) + (con (list integer) []) + (con bool True) + ] +) diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-42/case-42.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-42/case-42.uplc.budget.expected new file mode 100644 index 00000000000..5614475a274 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-42/case-42.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 393245 +| mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-42/case-42.uplc.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-42/case-42.uplc.expected new file mode 100644 index 00000000000..a11cb37af77 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-42/case-42.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bytestring + #00000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-43/case-43.uplc b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-43/case-43.uplc new file mode 100644 index 00000000000..30cfc6b2f1d --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-43/case-43.uplc @@ -0,0 +1,8 @@ +-- An empty list of updates doesn't change anything. +(program 1.0.0 +[ (builtin writeBits) + (con bytestring #FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) + (con (list integer) []) + (con bool False) + ] +) diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-43/case-43.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-43/case-43.uplc.budget.expected new file mode 100644 index 00000000000..5614475a274 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-43/case-43.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 393245 +| mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-43/case-43.uplc.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-43/case-43.uplc.expected new file mode 100644 index 00000000000..db983ee7428 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-43/case-43.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bytestring + #ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) +) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-44/case-44.uplc b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-44/case-44.uplc new file mode 100644 index 00000000000..d94833ee1da --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-44/case-44.uplc @@ -0,0 +1,8 @@ +-- An empty list of updates doesn't change anything. +(program 1.0.0 +[ (builtin writeBits) + (con bytestring #FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) + (con (list integer) []) + (con bool True) + ] +) diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-44/case-44.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-44/case-44.uplc.budget.expected new file mode 100644 index 00000000000..5614475a274 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-44/case-44.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 393245 +| mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-44/case-44.uplc.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-44/case-44.uplc.expected new file mode 100644 index 00000000000..db983ee7428 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-44/case-44.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bytestring + #ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) +) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-45/case-45.uplc b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-45/case-45.uplc new file mode 100644 index 00000000000..d794e1deb21 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-45/case-45.uplc @@ -0,0 +1,8 @@ +-- We can apply an empty list of updates to the empty bytestring +(program 1.0.0 +[ (builtin writeBits) + (con bytestring #) + (con (list integer) []) + (con bool False) + ] +) diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-45/case-45.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-45/case-45.uplc.budget.expected new file mode 100644 index 00000000000..f04a5c855cc --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-45/case-45.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 393245 +| mem: 801}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-45/case-45.uplc.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-45/case-45.uplc.expected new file mode 100644 index 00000000000..5dbd4047403 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-45/case-45.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #)) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-46/case-46.uplc b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-46/case-46.uplc new file mode 100644 index 00000000000..c459ded2a04 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-46/case-46.uplc @@ -0,0 +1,8 @@ +-- We can apply an empty list of updates to the empty bytestring +(program 1.0.0 +[ (builtin writeBits) + (con bytestring #) + (con (list integer) []) + (con bool True) + ] +) diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-46/case-46.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-46/case-46.uplc.budget.expected new file mode 100644 index 00000000000..f04a5c855cc --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-46/case-46.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 393245 +| mem: 801}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-46/case-46.uplc.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-46/case-46.uplc.expected new file mode 100644 index 00000000000..5dbd4047403 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-46/case-46.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #)) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-47/case-47.uplc b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-47/case-47.uplc new file mode 100644 index 00000000000..61c08ce3cb6 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-47/case-47.uplc @@ -0,0 +1,8 @@ +-- Attempting to write to a negative position in the empty bytestring causes an error +(program 1.0.0 +[ (builtin writeBits) + (con bytestring #) + (con (list integer) [-1]) + (con bool False) + ] +) diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-47/case-47.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-47/case-47.uplc.budget.expected new file mode 100644 index 00000000000..ccc477ffed6 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-47/case-47.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-47/case-47.uplc.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-47/case-47.uplc.expected new file mode 100644 index 00000000000..ccc477ffed6 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-47/case-47.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-48/case-48.uplc b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-48/case-48.uplc new file mode 100644 index 00000000000..28628c6b699 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-48/case-48.uplc @@ -0,0 +1,8 @@ +-- Attempting to write to a negative position in the empty bytestring causes an error +(program 1.0.0 +[ (builtin writeBits) + (con bytestring #) + (con (list integer) [-1]) + (con bool True) + ] +) diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-48/case-48.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-48/case-48.uplc.budget.expected new file mode 100644 index 00000000000..ccc477ffed6 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-48/case-48.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-48/case-48.uplc.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-48/case-48.uplc.expected new file mode 100644 index 00000000000..ccc477ffed6 --- /dev/null +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/writeBits/case-48/case-48.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/plutus-core/cost-model/budgeting-bench/Benchmarks/Values.hs b/plutus-core/cost-model/budgeting-bench/Benchmarks/Values.hs new file mode 100644 index 00000000000..7a34ee2f1b8 --- /dev/null +++ b/plutus-core/cost-model/budgeting-bench/Benchmarks/Values.hs @@ -0,0 +1,188 @@ +{-# LANGUAGE BlockArguments #-} +{-# LANGUAGE ImportQualifiedPost #-} +{-# LANGUAGE NumericUnderscores #-} +{-# LANGUAGE TupleSections #-} + +module Benchmarks.Values (makeBenchmarks) where + +import Prelude + +import Common +import Control.Monad (replicateM) +import Criterion.Main (Benchmark) +import Data.ByteString (ByteString) +import PlutusCore (DefaultFun (LookupCoin, UnValueData, ValueContains, ValueData)) +import PlutusCore.Evaluation.Machine.ExMemoryUsage (ValueOuterOrMaxInner (..), ValueTotalSize (..)) +import PlutusCore.Value (Value) +import PlutusCore.Value qualified as Value +import System.Random.Stateful (StatefulGen, StdGen, runStateGen_, uniformByteStringM, uniformRM) + +---------------------------------------------------------------------------------------------------- +-- Benchmarks -------------------------------------------------------------------------------------- + +makeBenchmarks :: StdGen -> [Benchmark] +makeBenchmarks gen = + [ lookupCoinBenchmark gen + , valueContainsBenchmark gen + , valueDataBenchmark gen + , unValueDataBenchmark gen + ] + +---------------------------------------------------------------------------------------------------- +-- LookupCoin -------------------------------------------------------------------------------------- + +lookupCoinBenchmark :: StdGen -> Benchmark +lookupCoinBenchmark gen = + createThreeTermBuiltinBenchElementwiseWithWrappers + (id, id, ValueOuterOrMaxInner) -- Wrap Value argument to report outer/max inner size + LookupCoin -- the builtin fun + [] -- no type arguments needed (monomorphic builtin) + (lookupCoinArgs gen) -- the argument combos to generate benchmarks for + +lookupCoinArgs :: StdGen -> [(ByteString, ByteString, Value)] +lookupCoinArgs gen = runStateGen_ gen \g -> do + let testValues = generateTestValues gen + + -- Add random search keys to each test value + sequence + [ (,,value) <$> generatePolicyId g <*> generateTokenName g + | value <- testValues + ] + +---------------------------------------------------------------------------------------------------- +-- ValueContains ----------------------------------------------------------------------------------- + +valueContainsBenchmark :: StdGen -> Benchmark +valueContainsBenchmark gen = + createTwoTermBuiltinBenchElementwiseWithWrappers + (ValueOuterOrMaxInner, ValueTotalSize) + -- Container: outer/maxInner, Contained: totalSize + ValueContains -- the builtin fun + [] -- no type arguments needed (monomorphic builtin) + (valueContainsArgs gen) -- the argument combos to generate benchmarks for + +valueContainsArgs :: StdGen -> [(Value, Value)] +valueContainsArgs gen = runStateGen_ gen \g -> + sequence $ + -- Use test values as containers with empty contained value (edge case) + [pure (container, Value.empty) | container <- generateTestValues gen] + ++ + -- Random contains tests with varied entry counts + replicate 100 do + containerEntries <- uniformRM (1, 1000) g + containedEntries <- uniformRM (0, containerEntries) g + + -- Generate container + container <- generateRandomValueForContains containerEntries g + + -- Generate contained as subset + let containerList = Value.toList container + containedList = take containedEntries containerList + contained = Value.fromList containedList + + pure (container, contained) + +-- | Generate Value for contains tests with exact entry count +generateRandomValueForContains + :: (StatefulGen g m) + => Int -- Entry count + -> g + -> m Value +generateRandomValueForContains entryCount g = do + -- Generate policies and tokens with exact entry count (realistic sizes) + policyIds <- replicateM entryCount (generatePolicyId g) + tokenNames <- replicateM entryCount (generateTokenName g) + + let + -- Create amounts (1 to 1000000) + amounts = [fromIntegral (1 + i `mod` 1_000_000) | i <- [0 .. entryCount - 1]] + + pure $ + Value.fromList + [ (policy, [(token, amount)]) + | (policy, token, amount) <- zip3 policyIds tokenNames amounts + ] + +---------------------------------------------------------------------------------------------------- +-- ValueData --------------------------------------------------------------------------------------- + +valueDataBenchmark :: StdGen -> Benchmark +valueDataBenchmark gen = + createOneTermBuiltinBenchWithWrapper ValueTotalSize ValueData [] (generateTestValues gen) + +---------------------------------------------------------------------------------------------------- +-- UnValueData ------------------------------------------------------------------------------------- + +unValueDataBenchmark :: StdGen -> Benchmark +unValueDataBenchmark gen = + createOneTermBuiltinBench UnValueData [] (Value.valueData <$> generateTestValues gen) + +---------------------------------------------------------------------------------------------------- +-- Value Generators -------------------------------------------------------------------------------- + +-- | Generate common test values for benchmarking +generateTestValues :: StdGen -> [Value] +generateTestValues gen = runStateGen_ gen \g -> do + sequence $ + -- Specific cases of interest + [ generateConstrainedValue 1 2000 g -- 1 policy with 2000 tokens + , generateConstrainedValue 2000 1 g -- 2000 policies with 1 token each + , pure Value.empty -- Empty value as edge case + ] + ++ + -- Random test values (~100 combinations) + replicate + 100 + ( do + numPolicies <- uniformRM (0, 2000) g -- 0-2000 policies + let maxTokens = if numPolicies == 0 then 2000 else 10_000 `div` numPolicies + tokensPerPolicy <- uniformRM (1, min 2000 maxTokens) g -- Cap at 10,000 total entries + generateConstrainedValue numPolicies tokensPerPolicy g + ) + +-- | Generate constrained Value +generateConstrainedValue + :: (StatefulGen g m) + => Int -- Number of policies + -> Int -- Number of tokens per policy + -> g + -> m Value +generateConstrainedValue numPolicies tokensPerPolicy g = do + -- Handle edge case: no policies means empty value + if numPolicies <= 0 + then pure Value.empty + else do + policyIds <- -- Generate policy IDs (always 28 bytes) + replicateM numPolicies (generatePolicyId g) + + tokenNames <- -- Generate token names (random 0-32 bytes) + replicateM tokensPerPolicy (generateTokenName g) + + -- Generate positive quantities (1 to 1000000) + let quantity :: Int -> Int -> Integer + quantity policyIndex tokenIndex = + fromIntegral (1 + (policyIndex * 1_000 + tokenIndex) `mod` 1_000_000) + + nestedMap :: [(ByteString, [(ByteString, Integer)])] + nestedMap = + [ ( policyId + , [ (tokenName, quantity policyIndex tokenIndex) + | (tokenIndex, tokenName) <- zip [0 ..] tokenNames + ] + ) + | (policyIndex, policyId) <- zip [0 ..] policyIds + ] + pure $ Value.fromList nestedMap + +---------------------------------------------------------------------------------------------------- +-- Other Generators -------------------------------------------------------------------------------- + +-- | Generate policy ID of exactly 28 bytes (MintingPolicyHash size) +generatePolicyId :: (StatefulGen g m) => g -> m ByteString +generatePolicyId = uniformByteStringM 28 + +-- | Generate token name of random size (0-32 bytes) +generateTokenName :: (StatefulGen g m) => g -> m ByteString +generateTokenName g = do + tokenSize <- uniformRM (0, 32) g + uniformByteStringM tokenSize g diff --git a/plutus-core/cost-model/budgeting-bench/Main.hs b/plutus-core/cost-model/budgeting-bench/Main.hs index 51be377f0e8..6c9124f4a38 100644 --- a/plutus-core/cost-model/budgeting-bench/Main.hs +++ b/plutus-core/cost-model/budgeting-bench/Main.hs @@ -17,6 +17,7 @@ import Benchmarks.Pairs qualified import Benchmarks.Strings qualified import Benchmarks.Tracing qualified import Benchmarks.Unit qualified +import Benchmarks.Values qualified import Criterion.Main import Criterion.Types as C @@ -60,6 +61,7 @@ main = do <> Benchmarks.Strings.makeBenchmarks gen <> Benchmarks.Tracing.makeBenchmarks gen <> Benchmarks.Unit.makeBenchmarks gen + <> Benchmarks.Values.makeBenchmarks gen {- Run the nop benchmarks with a large time limit (30 seconds) in an attempt to get accurate results. -} diff --git a/plutus-core/cost-model/create-cost-model/BuiltinMemoryModels.hs b/plutus-core/cost-model/create-cost-model/BuiltinMemoryModels.hs index 65e647d48f9..cb664c87936 100644 --- a/plutus-core/cost-model/create-cost-model/BuiltinMemoryModels.hs +++ b/plutus-core/cost-model/create-cost-model/BuiltinMemoryModels.hs @@ -176,5 +176,12 @@ builtinMemoryModels = BuiltinCostModelBase , paramLengthOfArray = Id $ ModelOneArgumentConstantCost 10 , paramListToArray = Id $ ModelOneArgumentLinearInX $ OneVariableLinearFunction 7 1 , paramIndexArray = Id $ ModelTwoArgumentsConstantCost 32 + -- Builtin values + , paramLookupCoin = Id $ ModelThreeArgumentsConstantCost 1 + , paramValueContains = Id $ ModelTwoArgumentsConstantCost 1 + , paramValueData = Id $ ModelOneArgumentConstantCost 1 + , paramUnValueData = Id $ ModelOneArgumentConstantCost 1 + , paramInsertCoin = Id $ ModelFourArgumentsConstantCost 1 + , paramUnionValue = Id $ ModelTwoArgumentsConstantCost 1 } where identityFunction = OneVariableLinearFunction 0 1 diff --git a/plutus-core/cost-model/create-cost-model/CreateBuiltinCostModel.hs b/plutus-core/cost-model/create-cost-model/CreateBuiltinCostModel.hs index 889d43da60a..fff87c349a5 100644 --- a/plutus-core/cost-model/create-cost-model/CreateBuiltinCostModel.hs +++ b/plutus-core/cost-model/create-cost-model/CreateBuiltinCostModel.hs @@ -131,6 +131,13 @@ builtinCostModelNames = BuiltinCostModelBase , paramLengthOfArray = "lengthOfArrayModel" , paramListToArray = "listToArrayModel" , paramIndexArray = "indexArrayModel" + -- Builtin values + , paramLookupCoin = "lookupCoinModel" + , paramValueContains = "valueContainsModel" + , paramValueData = "valueDataModel" + , paramUnValueData = "unValueDataModel" + , paramInsertCoin = "insertCoinModel" + , paramUnionValue = "unionValueModel" } @@ -279,6 +286,14 @@ createBuiltinCostModel bmfile rfile = do paramLengthOfArray <- getParams readCF1 paramLengthOfArray paramListToArray <- getParams readCF1 paramListToArray paramIndexArray <- getParams readCF2 paramIndexArray + -- Builtin values + paramLookupCoin <- getParams readCF3 paramLookupCoin + paramValueContains <- getParams readCF2 paramValueContains + paramValueData <- getParams readCF1 paramValueData + paramUnValueData <- getParams readCF1 paramUnValueData + -- Values + paramInsertCoin <- getParams readCF4 paramInsertCoin + paramUnionValue <- getParams readCF2 paramUnionValue pure $ BuiltinCostModelBase {..} @@ -442,6 +457,13 @@ readCF3 e = do "exp_mod_cost" -> ModelThreeArgumentsExpModCost <$> readExpModCostingFunction "y_mem" "z_mem" e _ -> error $ "Unknown three-variable model type: " ++ ty +readCF4 :: MonadR m => SomeSEXP (Region m) -> m ModelFourArguments +readCF4 e = do + ty <- getType e + case ty of + "constant_cost" -> ModelFourArgumentsConstantCost <$> getConstant e + _ -> error $ "Unknown four-variable model type: " ++ ty + readCF6 :: MonadR m => SomeSEXP (Region m) -> m ModelSixArguments readCF6 e = do ty <- getType e diff --git a/plutus-core/cost-model/data/benching-conway.csv b/plutus-core/cost-model/data/benching-conway.csv index e9f8f948ddd..b626f441a77 100644 --- a/plutus-core/cost-model/data/benching-conway.csv +++ b/plutus-core/cost-model/data/benching-conway.csv @@ -12094,203 +12094,715 @@ IndexArray/42/1,1.075506579052359e-6,1.0748433439930302e-6,1.0762684407023462e-6 IndexArray/46/1,1.0697135554442532e-6,1.0690902192698813e-6,1.0704133377013816e-6,2.2124820728450233e-9,1.8581237858977844e-9,2.6526943923047553e-9 IndexArray/98/1,1.0700747499373992e-6,1.0693842628239684e-6,1.070727062396803e-6,2.2506114869928674e-9,1.9376849028666025e-9,2.7564941558204088e-9 IndexArray/82/1,1.0755056682976695e-6,1.0750405368241111e-6,1.076102212770973e-6,1.8355219893844098e-9,1.5161640335164335e-9,2.4443625958006994e-9 -Bls12_381_G1_multiScalarMul/1/1,8.232134704712041e-5,8.228195390475752e-5,8.23582682466318e-5,1.224261187989977e-7,9.011720721178711e-8,1.843107342917502e-7 -Bls12_381_G1_multiScalarMul/2/2,1.5603352113689742e-4,1.5600025884754734e-4,1.56065185257734e-4,1.094394761986619e-7,8.779071446458298e-8,1.4947970533315267e-7 -Bls12_381_G1_multiScalarMul/3/3,1.939329666457593e-4,1.9388354851368188e-4,1.9402197408734082e-4,2.1995467058503616e-7,1.0779055620051168e-7,3.598144610846602e-7 -Bls12_381_G1_multiScalarMul/4/4,2.3193769861120354e-4,2.3185777330912127e-4,2.3201206490119206e-4,2.61940592999759e-7,2.2941719187582037e-7,3.077882579221989e-7 -Bls12_381_G1_multiScalarMul/5/5,2.7024485787950484e-4,2.701985832375676e-4,2.703562833994201e-4,2.504717874031756e-7,1.061103089376427e-7,4.5178956774050623e-7 -Bls12_381_G1_multiScalarMul/6/6,3.0832848017233854e-4,3.0828505860448953e-4,3.0841239554252326e-4,2.0081914026068556e-7,9.503560402226141e-8,3.348991421491274e-7 -Bls12_381_G1_multiScalarMul/7/7,3.453960291097332e-4,3.4529502000293173e-4,3.455551893661785e-4,4.503893151758501e-7,3.083661872443178e-7,7.81083043020636e-7 -Bls12_381_G1_multiScalarMul/8/8,3.832976511516978e-4,3.831399415816367e-4,3.8350168059661554e-4,6.425351357987778e-7,4.905809379814108e-7,9.901201715565621e-7 -Bls12_381_G1_multiScalarMul/9/9,4.208393675237262e-4,4.207594143609449e-4,4.209463240895972e-4,2.9714485369386276e-7,2.3487011012607412e-7,3.8965401426852136e-7 -Bls12_381_G1_multiScalarMul/10/10,4.590267934709921e-4,4.589529485523938e-4,4.5921225223072857e-4,3.674247719157326e-7,1.960955535102652e-7,6.745469596123421e-7 -Bls12_381_G1_multiScalarMul/11/11,4.97527732566443e-4,4.972281860134679e-4,4.986282302732426e-4,1.7151877711893442e-6,5.122548200854059e-7,3.5332096552138613e-6 -Bls12_381_G1_multiScalarMul/12/12,5.356509855658948e-4,5.355651207657092e-4,5.357300213867713e-4,2.869286988508056e-7,2.2118709297739587e-7,3.945684847893835e-7 -Bls12_381_G1_multiScalarMul/13/13,5.728512759489744e-4,5.726915276394053e-4,5.733007180741135e-4,8.949768255378629e-7,2.990100102556068e-7,1.799582591634419e-6 -Bls12_381_G1_multiScalarMul/14/14,6.102677458891477e-4,6.101406595840958e-4,6.104800133890259e-4,5.730641911125035e-7,4.2156110110763734e-7,9.874293144495503e-7 -Bls12_381_G1_multiScalarMul/15/15,6.477995208670887e-4,6.475756774649752e-4,6.480865282403314e-4,8.809829049973348e-7,7.579659277726546e-7,1.1589928070099792e-6 -Bls12_381_G1_multiScalarMul/16/16,7.10232795606239e-4,7.101357580525187e-4,7.103534690693274e-4,3.9630772993102876e-7,3.017996615312032e-7,6.065624023561599e-7 -Bls12_381_G1_multiScalarMul/17/17,7.482241201028533e-4,7.479063489174819e-4,7.493005226515e-4,1.7468995103377413e-6,4.207394233578458e-7,3.5919072692845237e-6 -Bls12_381_G1_multiScalarMul/18/18,7.705925934553824e-4,7.701144938606196e-4,7.727806329806679e-4,2.721631169491716e-6,7.981968678057562e-7,5.845417811648959e-6 -Bls12_381_G1_multiScalarMul/19/19,8.07991568665831e-4,8.078519602328661e-4,8.082935546448865e-4,6.822381786366707e-7,4.1123728418619586e-7,1.2817508134125719e-6 -Bls12_381_G1_multiScalarMul/20/20,8.305413129620952e-4,8.304197199200644e-4,8.306902645257076e-4,4.3666055013588826e-7,3.4850947949373826e-7,5.517969661861731e-7 -Bls12_381_G1_multiScalarMul/21/21,8.686137577309382e-4,8.683705360374326e-4,8.690514729472171e-4,1.0365305564754837e-6,6.15324072934707e-7,1.7554645846499009e-6 -Bls12_381_G1_multiScalarMul/22/22,8.91652773561559e-4,8.91448841424083e-4,8.919251447254486e-4,8.003760296748043e-7,5.948851969272322e-7,1.1100316085161068e-6 -Bls12_381_G1_multiScalarMul/23/23,9.294873328615929e-4,9.2931706336974e-4,9.29674543066649e-4,6.225406051789035e-7,4.744164895701269e-7,8.695237190578588e-7 -Bls12_381_G1_multiScalarMul/24/24,9.517388775125774e-4,9.51297780087541e-4,9.521482216169379e-4,1.3722719341729154e-6,1.062307342501858e-6,1.7843971621271001e-6 -Bls12_381_G1_multiScalarMul/25/25,9.886064604005137e-4,9.882251183807264e-4,9.897265063364012e-4,1.8798264902284367e-6,6.736369822886704e-7,3.814951405763071e-6 -Bls12_381_G1_multiScalarMul/26/26,1.0107695436644823e-3,1.0105299581864577e-3,1.0111683184415275e-3,9.824869954193735e-7,6.273786628516054e-7,1.789759844703243e-6 -Bls12_381_G1_multiScalarMul/27/27,1.0481752477344507e-3,1.0477770452434242e-3,1.0488436059663702e-3,1.70119074982601e-6,1.1033927625372998e-6,2.421859397722192e-6 -Bls12_381_G1_multiScalarMul/28/28,1.071199845880856e-3,1.0708432481182537e-3,1.0720804641719981e-3,1.6595833959304896e-6,8.543899072576939e-7,2.9475871714734805e-6 -Bls12_381_G1_multiScalarMul/29/29,1.1091453942723057e-3,1.1088806422385156e-3,1.1094556190265087e-3,9.884003711358195e-7,8.097303732520417e-7,1.3599340574873413e-6 -Bls12_381_G1_multiScalarMul/30/30,1.1316695694102287e-3,1.1314082924647447e-3,1.1319750321409226e-3,9.66367104215988e-7,7.685686878341102e-7,1.204378285010742e-6 -Bls12_381_G1_multiScalarMul/31/31,1.1706362298123296e-3,1.1701248243111372e-3,1.1713912110155227e-3,2.1219139874861063e-6,1.5567879843419155e-6,2.916931910163364e-6 -Bls12_381_G1_multiScalarMul/32/32,1.2183054885742289e-3,1.2178167501590653e-3,1.2191423331752846e-3,2.082314742656685e-6,1.3954922622922078e-6,3.3606861800964793e-6 -Bls12_381_G1_multiScalarMul/33/33,1.25554775700385e-3,1.2553212908295874e-3,1.256064024330601e-3,1.103995478961421e-6,6.577553035929982e-7,1.960982872144134e-6 -Bls12_381_G1_multiScalarMul/34/34,1.2814120185183533e-3,1.2811113200601465e-3,1.2817386977410077e-3,1.066328231240918e-6,8.498751061674896e-7,1.3581581158462333e-6 -Bls12_381_G1_multiScalarMul/35/35,1.3147784280299476e-3,1.3142019737646283e-3,1.3159148898431248e-3,2.7821602645732677e-6,1.2576600123958567e-6,4.71910870274486e-6 -Bls12_381_G1_multiScalarMul/36/36,1.3219048104980895e-3,1.3213844160889154e-3,1.3233093194833564e-3,2.6731627087817e-6,1.1691449038920677e-6,4.595666907784908e-6 -Bls12_381_G1_multiScalarMul/37/37,1.3589352301097773e-3,1.3587799204790097e-3,1.3590865392381088e-3,5.239660989144622e-7,4.210132126501093e-7,7.044936055207908e-7 -Bls12_381_G1_multiScalarMul/38/38,1.3842305731809087e-3,1.3838013940827385e-3,1.3851882129520007e-3,2.140116379547782e-6,1.1344089830602969e-6,4.3500220741287305e-6 -Bls12_381_G1_multiScalarMul/39/39,1.4193844818012396e-3,1.4188890128645811e-3,1.4206267802236144e-3,2.384279344480344e-6,1.286298194419277e-6,4.088466911461954e-6 -Bls12_381_G1_multiScalarMul/40/40,1.4275969257372889e-3,1.4266990139967814e-3,1.4296056424476227e-3,4.36532975493508e-6,2.6378910656369093e-6,7.81360464614563e-6 -Bls12_381_G1_multiScalarMul/41/41,1.4662734042718765e-3,1.4655915349289289e-3,1.4670583531661572e-3,2.5114188995059114e-6,2.0097342160937628e-6,3.247155614235915e-6 -Bls12_381_G1_multiScalarMul/42/42,1.4944060105751547e-3,1.493879150367226e-3,1.4952135866693312e-3,2.1205348113616285e-6,1.5093258926943527e-6,2.962889746140889e-6 -Bls12_381_G1_multiScalarMul/43/43,1.5276593205735154e-3,1.5273658668217916e-3,1.5279331130431386e-3,9.74498489934415e-7,7.482627424771116e-7,1.420616015176624e-6 -Bls12_381_G1_multiScalarMul/44/44,1.5353847806862466e-3,1.5346147866390108e-3,1.5363954193265963e-3,2.814562457758291e-6,2.1143530632424383e-6,3.821045577572284e-6 -Bls12_381_G1_multiScalarMul/45/45,1.5694620743296511e-3,1.5687635390181445e-3,1.57029874920667e-3,2.507144487167149e-6,2.0785255381527325e-6,3.0811759778156036e-6 -Bls12_381_G1_multiScalarMul/46/46,1.5907223707740364e-3,1.5893800235731621e-3,1.592471840103437e-3,5.178470382170926e-6,3.88044580623702e-6,6.694012070239517e-6 -Bls12_381_G1_multiScalarMul/47/47,1.628661974360063e-3,1.6283512846939465e-3,1.6291669828813618e-3,1.3671525674743757e-6,9.627490393739244e-7,2.0277210680304897e-6 -Bls12_381_G1_multiScalarMul/48/48,1.6361548091125416e-3,1.6357926793118167e-3,1.6366869716805837e-3,1.442057725476356e-6,1.0667638215275559e-6,2.1942788690677544e-6 -Bls12_381_G1_multiScalarMul/49/49,1.6779864698862684e-3,1.6774419144888844e-3,1.678564301607901e-3,1.9536763807617875e-6,1.5861735530685062e-6,2.9241156321278288e-6 -Bls12_381_G1_multiScalarMul/50/50,1.7052634275253997e-3,1.7041895762385994e-3,1.706524687220049e-3,3.84152102882327e-6,2.956410364369988e-6,4.951832103647607e-6 -Bls12_381_G1_multiScalarMul/51/51,1.7406739448052255e-3,1.739741519600114e-3,1.743488273211799e-3,4.901730860712033e-6,1.681687713060746e-6,9.63314624934489e-6 -Bls12_381_G1_multiScalarMul/52/52,1.7493504703501312e-3,1.7485291809717686e-3,1.7506247910129787e-3,3.6153633132872805e-6,2.6479825651733657e-6,5.832623352761088e-6 -Bls12_381_G1_multiScalarMul/53/53,1.7868267249247544e-3,1.786050505290007e-3,1.7882000160916365e-3,3.3230153222471118e-6,2.3257047340548217e-6,5.4135122168717275e-6 -Bls12_381_G1_multiScalarMul/54/54,1.8119093305955243e-3,1.8112017731004542e-3,1.8128745438316246e-3,2.9582354520945714e-6,2.0538396464527634e-6,4.974892599302226e-6 -Bls12_381_G1_multiScalarMul/55/55,1.84471674435397e-3,1.8442599600963505e-3,1.8452634559156386e-3,1.7601881093901428e-6,1.4750625737533917e-6,2.210525678689879e-6 -Bls12_381_G1_multiScalarMul/56/56,1.8550924625942802e-3,1.8544531007068019e-3,1.8564385668508347e-3,2.9780016999383592e-6,1.8191076732735432e-6,5.031379898838522e-6 -Bls12_381_G1_multiScalarMul/57/57,1.8950408145264643e-3,1.8939992827596826e-3,1.8961977234850831e-3,3.706120655598944e-6,2.9949347749033603e-6,4.641731171151639e-6 -Bls12_381_G1_multiScalarMul/58/58,1.9214190162986646e-3,1.9205644658902652e-3,1.9227436492195735e-3,3.7919868436730406e-6,2.5151125481564216e-6,5.528965031038841e-6 -Bls12_381_G1_multiScalarMul/59/59,1.95611884939017e-3,1.9555311058998062e-3,1.9567680207463758e-3,2.0724783716238652e-6,1.7915625799228621e-6,2.6388010558596374e-6 -Bls12_381_G1_multiScalarMul/60/60,1.9594365520224813e-3,1.958943767917802e-3,1.9600328304991543e-3,1.8565912278242626e-6,1.3182944308809232e-6,3.0498262686954687e-6 -Bls12_381_G1_multiScalarMul/61/61,1.9978785940453596e-3,1.9970364354546e-3,1.9988044814993563e-3,2.814765620751774e-6,2.215278427132277e-6,3.9079749949813176e-6 -Bls12_381_G1_multiScalarMul/62/62,2.025163972129198e-3,2.024292907473527e-3,2.026477198808721e-3,3.4328117679417816e-6,2.424532695157738e-6,4.901533766106334e-6 -Bls12_381_G1_multiScalarMul/63/63,2.0586979562927845e-3,2.057984455859352e-3,2.059909135640746e-3,3.1733556435024334e-6,1.9174464587367093e-6,5.2504225730683016e-6 -Bls12_381_G1_multiScalarMul/64/64,2.0900368436079005e-3,2.088028375590593e-3,2.0984775655780315e-3,1.1646874789686276e-5,3.4252094381705674e-6,2.554205960853732e-5 -Bls12_381_G1_multiScalarMul/65/65,1.8968147378605645e-3,1.8955310391900796e-3,1.898278206886905e-3,4.680707702478362e-6,3.6933847226616885e-6,6.782185825195487e-6 -Bls12_381_G1_multiScalarMul/66/66,1.915527316948408e-3,1.9151048085532891e-3,1.916079596378419e-3,1.652232700882608e-6,1.268984752321262e-6,2.218302657360697e-6 -Bls12_381_G1_multiScalarMul/67/67,1.939873715995447e-3,1.9390300141714943e-3,1.9415345431927143e-3,3.909637666223789e-6,2.4669716449410535e-6,6.3729495513604696e-6 -Bls12_381_G1_multiScalarMul/68/68,1.963955860876783e-3,1.9634908135732973e-3,1.9647235096952164e-3,1.9301982657436205e-6,1.331287045500568e-6,3.069218630466695e-6 -Bls12_381_G1_multiScalarMul/69/69,1.981736462216709e-3,1.9812744529486425e-3,1.982304257342455e-3,1.7179723192754665e-6,1.2576978196442669e-6,2.585535309310991e-6 -Bls12_381_G1_multiScalarMul/70/70,2.015096024360793e-3,2.013930296536576e-3,2.016550975850134e-3,4.183586924132327e-6,2.9592834069943323e-6,5.903222403671096e-6 -Bls12_381_G1_multiScalarMul/71/71,2.039593310853405e-3,2.039230558943095e-3,2.040135103696278e-3,1.517677057313753e-6,1.246493361769726e-6,1.8411731331069727e-6 -Bls12_381_G1_multiScalarMul/72/72,2.058111599882653e-3,2.057193666273917e-3,2.0594723408391942e-3,3.5844251775633503e-6,2.7202401005013457e-6,5.864305886696207e-6 -Bls12_381_G1_multiScalarMul/73/73,2.0934159227994436e-3,2.0906201835026532e-3,2.095693684947171e-3,8.491298188831756e-6,7.241167338179682e-6,1.0176406230578143e-5 -Bls12_381_G1_multiScalarMul/74/74,2.1291335834122513e-3,2.1278241958452133e-3,2.1299943701228743e-3,3.7951510816769475e-6,2.9761746545534362e-6,5.135763083938416e-6 -Bls12_381_G1_multiScalarMul/75/75,2.1496696746573056e-3,2.148587264452237e-3,2.1520893411774615e-3,5.214017226179326e-6,2.831700993722389e-6,9.897946072389741e-6 -Bls12_381_G1_multiScalarMul/76/76,2.1791297355152578e-3,2.1763917538151966e-3,2.1862885859611804e-3,1.3564060446508161e-5,5.983327115746122e-6,2.4308866464862185e-5 -Bls12_381_G1_multiScalarMul/77/77,2.181325091429973e-3,2.1807942464757432e-3,2.1818133665519207e-3,1.7039353205909792e-6,1.3786145694127499e-6,2.27968640731267e-6 -Bls12_381_G1_multiScalarMul/78/78,2.2165097719499824e-3,2.213684889701067e-3,2.219024702852442e-3,9.476092692961542e-6,6.898527736606062e-6,1.3202270738128961e-5 -Bls12_381_G1_multiScalarMul/79/79,2.2220017642692208e-3,2.221452887745163e-3,2.2226621102249605e-3,1.9668594276026276e-6,1.6059114512897864e-6,2.54873438507269e-6 -Bls12_381_G1_multiScalarMul/80/80,2.2649145692548805e-3,2.264315257045781e-3,2.2659321574184485e-3,2.6476167211476292e-6,1.8114591949521001e-6,4.5100102111080466e-6 -Bls12_381_G1_multiScalarMul/81/81,2.2815568928021565e-3,2.2809268030696116e-3,2.282682684357514e-3,2.6571578380668003e-6,1.7065827732222851e-6,4.487951031499547e-6 -Bls12_381_G1_multiScalarMul/82/82,2.310620963737306e-3,2.3090927285613193e-3,2.3126689982238035e-3,5.977435209471239e-6,4.4804403698017714e-6,8.09057887928092e-6 -Bls12_381_G1_multiScalarMul/83/83,2.336733472141597e-3,2.3360361666493012e-3,2.337632382036757e-3,2.560471483733304e-6,1.920620453068812e-6,3.7021660444619836e-6 -Bls12_381_G1_multiScalarMul/84/84,2.373268168042132e-3,2.371319876892892e-3,2.3766426567644805e-3,8.021527609000714e-6,4.830364162650037e-6,1.252095716980909e-5 -Bls12_381_G1_multiScalarMul/85/85,2.384876078524913e-3,2.383959246461071e-3,2.3867334229422466e-3,4.094196151783379e-6,2.3902100912772977e-6,6.961154738344854e-6 -Bls12_381_G1_multiScalarMul/86/86,2.410565039227443e-3,2.4084234057296094e-3,2.412268328550986e-3,6.65915218385595e-6,4.329988822432703e-6,1.0326826016055168e-5 -Bls12_381_G1_multiScalarMul/87/87,2.4297666625285345e-3,2.4270653907625746e-3,2.432196481389161e-3,8.58024905300566e-6,7.109703139729458e-6,1.0051366987525497e-5 -Bls12_381_G1_multiScalarMul/88/88,2.460570343151193e-3,2.459544035208346e-3,2.4615274058159917e-3,3.5198413136176365e-6,2.8384817517665127e-6,4.815807097623251e-6 -Bls12_381_G1_multiScalarMul/89/89,2.489853458509472e-3,2.48760518697685e-3,2.491311540051355e-3,6.19046891378905e-6,4.307330671671395e-6,7.986452835536224e-6 -Bls12_381_G1_multiScalarMul/90/90,2.518729619807173e-3,2.5175955675903593e-3,2.5197557395444242e-3,3.6740724105737384e-6,3.011297773639394e-6,4.579753037221892e-6 -Bls12_381_G1_multiScalarMul/91/91,2.507346287557815e-3,2.5048432606199636e-3,2.5101409467740204e-3,9.127067962491492e-6,7.736890525902875e-6,1.0224347243298884e-5 -Bls12_381_G1_multiScalarMul/92/92,2.5623659852219262e-3,2.5612024891175753e-3,2.564829446827521e-3,5.6507070170772565e-6,3.2998574451510087e-6,9.57583819470183e-6 -Bls12_381_G1_multiScalarMul/93/93,2.5847869535442504e-3,2.5837480732719756e-3,2.5860413313409e-3,3.848008008883357e-6,3.135969999546864e-6,4.874051925178418e-6 -Bls12_381_G1_multiScalarMul/94/94,2.6234813638524954e-3,2.6221188936467322e-3,2.627015683950028e-3,6.9065042519955485e-6,3.5404891910020863e-6,1.266990728387938e-5 -Bls12_381_G1_multiScalarMul/95/95,2.642628219940988e-3,2.641768011136227e-3,2.6442054118635916e-3,3.6007375940600177e-6,2.2125834942189697e-6,6.234015624110293e-6 -Bls12_381_G1_multiScalarMul/96/96,2.6601519782021863e-3,2.6585725995916932e-3,2.6631507793169816e-3,7.137222035771094e-6,4.623560832534806e-6,1.2950373021381417e-5 -Bls12_381_G1_multiScalarMul/97/97,2.681023460582192e-3,2.679568015031102e-3,2.683278541155578e-3,5.991522440852137e-6,3.858505228846451e-6,8.60021764374252e-6 -Bls12_381_G1_multiScalarMul/98/98,2.7083684530633586e-3,2.70727640883435e-3,2.7110584196105647e-3,5.013062986030381e-6,2.3597699562053853e-6,1.002284515969446e-5 -Bls12_381_G1_multiScalarMul/99/99,2.7213371259787855e-3,2.720704088882147e-3,2.722244079978909e-3,2.444787958433492e-6,1.793699194794548e-6,3.7994420578130953e-6 -Bls12_381_G1_multiScalarMul/100/100,2.7642727676665296e-3,2.763395576301587e-3,2.7675024929907544e-3,4.726547836308982e-6,1.8913959977112497e-6,1.0025613006686808e-5 -Bls12_381_G2_multiScalarMul/1/1,1.6266495442804972e-4,1.6264736086074068e-4,1.6270124805713648e-4,7.793865350083726e-8,4.635475091813956e-8,1.4247066440608091e-7 -Bls12_381_G2_multiScalarMul/2/2,3.543638522088684e-4,3.541772068342348e-4,3.5485931188723925e-4,9.360391344324354e-7,3.4976363756994914e-7,1.8211931894900913e-6 -Bls12_381_G2_multiScalarMul/3/3,4.47702794969825e-4,4.475045705500375e-4,4.478850505015342e-4,6.493823174661071e-7,3.5878763258263287e-7,1.0803507174684568e-6 -Bls12_381_G2_multiScalarMul/4/4,5.420723557652644e-4,5.417274673810824e-4,5.426125367479333e-4,1.4301753976362207e-6,9.988141199987564e-7,2.267296520674632e-6 -Bls12_381_G2_multiScalarMul/5/5,6.370512849618329e-4,6.36900784787239e-4,6.37202712666071e-4,5.292403814549932e-7,4.022430073091077e-7,7.556842750685239e-7 -Bls12_381_G2_multiScalarMul/6/6,7.310526489754525e-4,7.30629670999753e-4,7.317446144730351e-4,1.8119026166925256e-6,1.1454709674089216e-6,3.3632913939344345e-6 -Bls12_381_G2_multiScalarMul/7/7,8.236776396240537e-4,8.233271514827839e-4,8.241067273174465e-4,1.3657308675882766e-6,1.0410102352442255e-6,1.83210797347741e-6 -Bls12_381_G2_multiScalarMul/8/8,9.197543555033109e-4,9.189658738224084e-4,9.209830008370004e-4,3.3412724036424652e-6,2.3248417111070747e-6,5.070176355554298e-6 -Bls12_381_G2_multiScalarMul/9/9,1.011991406751168e-3,1.0117382842987513e-3,1.012512156595354e-3,1.1429892811506008e-6,7.64572284352035e-7,1.824620728201617e-6 -Bls12_381_G2_multiScalarMul/10/10,1.109394930774612e-3,1.1087682317862343e-3,1.1115776119988174e-3,3.4944409285465694e-6,1.0503647842087067e-6,7.149880658627584e-6 -Bls12_381_G2_multiScalarMul/11/11,1.2023934491440338e-3,1.202171934481395e-3,1.2026423197250766e-3,7.922161025400925e-7,6.258416318073706e-7,1.029606114863458e-6 -Bls12_381_G2_multiScalarMul/12/12,1.2963025275871496e-3,1.2952163686698916e-3,1.2983463505741011e-3,4.960268500618734e-6,2.845337116066531e-6,9.687158836086103e-6 -Bls12_381_G2_multiScalarMul/13/13,1.3869285962502872e-3,1.3866231292243125e-3,1.3872893550098244e-3,1.1726919062774188e-6,8.791906263916984e-7,1.5913921990012086e-6 -Bls12_381_G2_multiScalarMul/14/14,1.4823956781971994e-3,1.4815973050589385e-3,1.4842137535372652e-3,3.760848566094728e-6,2.472183908899497e-6,6.4465275732684205e-6 -Bls12_381_G2_multiScalarMul/15/15,1.574445631700049e-3,1.574063788581931e-3,1.5749578982368424e-3,1.443263633319882e-6,1.0628032736563463e-6,2.1565979694667185e-6 -Bls12_381_G2_multiScalarMul/16/16,1.5000875796284717e-3,1.4994665426513504e-3,1.5014717203342867e-3,2.802372121079838e-6,1.7676048441935653e-6,4.644089354729122e-6 -Bls12_381_G2_multiScalarMul/17/17,1.5940905703219718e-3,1.5936217521556593e-3,1.5945282467814278e-3,1.547468548627245e-6,1.1967489868918594e-6,2.082313772097416e-6 -Bls12_381_G2_multiScalarMul/18/18,1.6481937447323397e-3,1.6471788901492087e-3,1.6502528733967521e-3,4.67746155264807e-6,2.5560426788421386e-6,8.493562555710135e-6 -Bls12_381_G2_multiScalarMul/19/19,1.7408620063694292e-3,1.7403685953485991e-3,1.7416086573762834e-3,2.034339176777199e-6,1.5411497874186401e-6,2.888074021221646e-6 -Bls12_381_G2_multiScalarMul/20/20,1.7983360168952664e-3,1.7968063959178204e-3,1.8007319622437476e-3,6.701452941660098e-6,3.915890097926392e-6,1.1565951790899295e-5 -Bls12_381_G2_multiScalarMul/21/21,1.8948751419094719e-3,1.8943849272806152e-3,1.8954945505194202e-3,1.8264677812158936e-6,1.5180676580123575e-6,2.3043238795090236e-6 -Bls12_381_G2_multiScalarMul/22/22,1.9483638492318052e-3,1.9468479306608071e-3,1.952898337552636e-3,8.246725685061966e-6,2.916390890917488e-6,1.6554460898097785e-5 -Bls12_381_G2_multiScalarMul/23/23,2.0441566797094976e-3,2.0436200484617298e-3,2.0448120935495366e-3,1.9807680962425035e-6,1.4047597581205637e-6,2.861374149657612e-6 -Bls12_381_G2_multiScalarMul/24/24,2.0976111797810742e-3,2.0969141362790775e-3,2.0983042002160226e-3,2.294409781298406e-6,1.7816482691771947e-6,3.2363169164003804e-6 -Bls12_381_G2_multiScalarMul/25/25,2.1916934430134647e-3,2.1911766683971054e-3,2.192454586070339e-3,2.0791512216562315e-6,1.5171229138063835e-6,2.812518408756342e-6 -Bls12_381_G2_multiScalarMul/26/26,2.2452874242475463e-3,2.2438224649193378e-3,2.248020575104657e-3,6.546744756250407e-6,4.224171258471438e-6,1.1357661995132573e-5 -Bls12_381_G2_multiScalarMul/27/27,2.3342313432099604e-3,2.3334417036587492e-3,2.335903802244924e-3,3.7924501525196913e-6,2.084116468653706e-6,6.745286115407234e-6 -Bls12_381_G2_multiScalarMul/28/28,2.3924196934986424e-3,2.3905980952149135e-3,2.39744572554579e-3,9.270395166568168e-6,3.857502451986574e-6,1.8266974876360255e-5 -Bls12_381_G2_multiScalarMul/29/29,2.4921574096234654e-3,2.4911465295363233e-3,2.4951214940058244e-3,5.209897620887097e-6,2.3932366963378704e-6,1.007979235143704e-5 -Bls12_381_G2_multiScalarMul/30/30,2.5442112572946624e-3,2.5431826880834667e-3,2.5479216241766365e-3,5.7374902589030385e-6,2.166916577225313e-6,1.24589648550128e-5 -Bls12_381_G2_multiScalarMul/31/31,2.6387551082366705e-3,2.6380466280120883e-3,2.6396291501284983e-3,2.5285910565402825e-6,2.0132127254936795e-6,3.4207259760745164e-6 -Bls12_381_G2_multiScalarMul/32/32,2.5150931462186196e-3,2.513387917297599e-3,2.5181977065017046e-3,7.657009385145557e-6,4.5131093648664805e-6,1.3678490989164753e-5 -Bls12_381_G2_multiScalarMul/33/33,3.0889519233376545e-3,3.0883882511648234e-3,3.089672507460859e-3,2.0979675388899346e-6,1.603912694016453e-6,3.0603682324660857e-6 -Bls12_381_G2_multiScalarMul/34/34,3.16771726298734e-3,3.16501045273763e-3,3.172197179196162e-3,1.0825021580641719e-5,6.671829453430046e-6,1.8892794609350383e-5 -Bls12_381_G2_multiScalarMul/35/35,3.2525975758965855e-3,3.251923568635943e-3,3.2534974414252724e-3,2.3923622222660625e-6,1.771511114169158e-6,3.613237863752478e-6 -Bls12_381_G2_multiScalarMul/36/36,3.336138244007564e-3,3.333789111955089e-3,3.344298373821e-3,1.3359645865766898e-5,3.2128822247268738e-6,2.7638521011789944e-5 -Bls12_381_G2_multiScalarMul/37/37,3.4191138605455746e-3,3.4179135859041592e-3,3.4233605791000876e-3,6.592098823336916e-6,2.5157731785295883e-6,1.3141627481895897e-5 -Bls12_381_G2_multiScalarMul/38/38,3.4883584083644226e-3,3.4862131678210493e-3,3.4925344207942677e-3,9.623236210916872e-6,5.191214954965976e-6,1.7597405473000066e-5 -Bls12_381_G2_multiScalarMul/39/39,3.530386408142463e-3,3.5295959082416793e-3,3.531411239014294e-3,2.79677085673492e-6,2.1274732913274754e-6,3.925571150385237e-6 -Bls12_381_G2_multiScalarMul/40/40,3.6147002382323538e-3,3.611572624230025e-3,3.6292011188412323e-3,1.7990113412185996e-5,2.845513840934602e-6,4.043993566101094e-5 -Bls12_381_G2_multiScalarMul/41/41,3.672723290652948e-3,3.6718602367145966e-3,3.673688181816288e-3,2.84241014465167e-6,2.3021696308807956e-6,3.7655879313695054e-6 -Bls12_381_G2_multiScalarMul/42/42,3.793747136886243e-3,3.78926839608175e-3,3.809348971725428e-3,2.269174801044769e-5,4.7237643544819555e-6,4.9663768681186095e-5 -Bls12_381_G2_multiScalarMul/43/43,3.877862027839689e-3,3.876819161298888e-3,3.8794572953528964e-3,4.162065327624179e-6,3.2714009413120982e-6,5.1550470389566275e-6 -Bls12_381_G2_multiScalarMul/44/44,3.965116399895544e-3,3.962804992549213e-3,3.97345386215166e-3,1.3112609308794646e-5,1.8812805162759533e-6,2.7437540345266834e-5 -Bls12_381_G2_multiScalarMul/45/45,4.004527665871219e-3,4.003216183025186e-3,4.00656406563525e-3,5.2564769639065946e-6,2.696936689436533e-6,7.823236463877045e-6 -Bls12_381_G2_multiScalarMul/46/46,4.076804027301204e-3,4.074764849350912e-3,4.082954370562564e-3,1.0195134478551572e-5,3.59758066050906e-6,2.02607321633781e-5 -Bls12_381_G2_multiScalarMul/47/47,4.167774429892586e-3,4.1666246852367335e-3,4.169331500283441e-3,4.095651022675052e-6,3.1833448207887804e-6,5.089866484578962e-6 -Bls12_381_G2_multiScalarMul/48/48,4.2249981616795705e-3,4.222778156184377e-3,4.226612496226903e-3,5.7784805597787715e-6,4.4339723066230185e-6,7.3377180823161815e-6 -Bls12_381_G2_multiScalarMul/49/49,4.3524164098415665e-3,4.351263723172645e-3,4.353648896076485e-3,3.7577346495739375e-6,3.092141280492094e-6,4.52320031610404e-6 -Bls12_381_G2_multiScalarMul/50/50,4.343123429888507e-3,4.341239145934485e-3,4.345694580031099e-3,7.032494846534855e-6,5.430307563910816e-6,1.0261289957428346e-5 -Bls12_381_G2_multiScalarMul/51/51,4.484856489477111e-3,4.481774784858851e-3,4.487312713793393e-3,8.158820364283e-6,6.798014601558509e-6,1.086960763925229e-5 -Bls12_381_G2_multiScalarMul/52/52,4.546562051796544e-3,4.5455748661040974e-3,4.548037932926745e-3,3.6580687673211806e-6,2.8901424834133615e-6,5.219822997121614e-6 -Bls12_381_G2_multiScalarMul/53/53,4.654474034299822e-3,4.65318130717014e-3,4.655917064534823e-3,4.116466278137667e-6,3.166891661793465e-6,5.567941155062992e-6 -Bls12_381_G2_multiScalarMul/54/54,4.721927123629685e-3,4.72071287904244e-3,4.723138528981887e-3,3.94193309418702e-6,3.113913371425901e-6,5.136276379939376e-6 -Bls12_381_G2_multiScalarMul/55/55,4.795039804834155e-3,4.793771853613166e-3,4.796041252525426e-3,3.523502774916879e-6,2.8612449092910447e-6,4.464716550457647e-6 -Bls12_381_G2_multiScalarMul/56/56,4.864016888196152e-3,4.862934237209827e-3,4.865878015473469e-3,4.339172192062833e-6,3.120561122208654e-6,7.091594219853984e-6 -Bls12_381_G2_multiScalarMul/57/57,4.930026691468103e-3,4.928660811034607e-3,4.93184431837138e-3,4.92694965505342e-6,3.631274655946987e-6,6.916774799932921e-6 -Bls12_381_G2_multiScalarMul/58/58,4.999478205962443e-3,4.996476656269146e-3,5.002509748355277e-3,9.65312271848907e-6,8.212314993018033e-6,1.121977177338798e-5 -Bls12_381_G2_multiScalarMul/59/59,5.109930645097379e-3,5.108695300209485e-3,5.111720735214837e-3,4.307666456047917e-6,3.2036925396243358e-6,7.010008721447832e-6 -Bls12_381_G2_multiScalarMul/60/60,5.182636587074396e-3,5.1812215576612815e-3,5.184867458236281e-3,5.045266958501895e-6,3.3630808719106254e-6,7.598293873580799e-6 -Bls12_381_G2_multiScalarMul/61/61,5.261201467559662e-3,5.259483119610097e-3,5.2651003452464235e-3,6.794062799442452e-6,3.965079449462158e-6,1.2745803244159386e-5 -Bls12_381_G2_multiScalarMul/62/62,5.355085149782543e-3,5.353521974098854e-3,5.3568364980710005e-3,5.127106845655141e-6,3.956280257430231e-6,6.764557833667277e-6 -Bls12_381_G2_multiScalarMul/63/63,5.404870448491742e-3,5.401124837066587e-3,5.407497875504651e-3,8.934660522629549e-6,6.290321430881255e-6,1.2732030907646999e-5 -Bls12_381_G2_multiScalarMul/64/64,4.8782659702195615e-3,4.876660673660171e-3,4.8804522014555e-3,5.830661634910927e-6,3.955325665036216e-6,9.38894371358523e-6 -Bls12_381_G2_multiScalarMul/65/65,4.9061548862185346e-3,4.904813116841975e-3,4.9086495754739915e-3,5.295424246670201e-6,3.7451476035762403e-6,8.334611829514347e-6 -Bls12_381_G2_multiScalarMul/66/66,4.967076866858588e-3,4.96587704975757e-3,4.970208209096129e-3,5.500738791485448e-6,2.7782883129256445e-6,1.0490016182322088e-5 -Bls12_381_G2_multiScalarMul/67/67,5.0384188004806525e-3,5.036297660856063e-3,5.040874280488966e-3,7.20767347691469e-6,5.18593994354578e-6,1.1000885848108839e-5 -Bls12_381_G2_multiScalarMul/68/68,5.082679596088205e-3,5.081788191855941e-3,5.083677026915687e-3,2.9879915262955836e-6,2.402250840802348e-6,3.7388441162211205e-6 -Bls12_381_G2_multiScalarMul/69/69,5.131805217231941e-3,5.129945152668336e-3,5.134860292773551e-3,7.121015258734736e-6,4.754387036952524e-6,1.0407485911539298e-5 -Bls12_381_G2_multiScalarMul/70/70,5.223131098010917e-3,5.220270707999523e-3,5.226515783222153e-3,9.515319707834862e-6,7.924704664502419e-6,1.197266014225403e-5 -Bls12_381_G2_multiScalarMul/71/71,5.2882851289316885e-3,5.286944845429294e-3,5.2901838154393414e-3,4.850407193371409e-6,3.951323934404944e-6,6.909977742394703e-6 -Bls12_381_G2_multiScalarMul/72/72,5.31973147751225e-3,5.318376432387295e-3,5.32119875028863e-3,4.277946466566538e-6,3.32076690250808e-6,5.635737244144887e-6 -Bls12_381_G2_multiScalarMul/73/73,5.415258160623588e-3,5.413782714872596e-3,5.416918547393203e-3,4.874528900097905e-6,4.170514576006458e-6,5.848559988534025e-6 -Bls12_381_G2_multiScalarMul/74/74,5.504234496008557e-3,5.500576962955019e-3,5.508481864691515e-3,1.1590261990431737e-5,7.963644443790475e-6,2.0109944098147845e-5 -Bls12_381_G2_multiScalarMul/75/75,5.564079990869667e-3,5.562681956747252e-3,5.56567336402758e-3,4.352958051265566e-6,3.4422969438156352e-6,6.286896453598817e-6 -Bls12_381_G2_multiScalarMul/76/76,5.636188875483629e-3,5.63517382713922e-3,5.637553743099741e-3,3.670518446053137e-6,2.6204373559816722e-6,5.576211218482488e-6 -Bls12_381_G2_multiScalarMul/77/77,5.653980663508052e-3,5.652296820298524e-3,5.657670797268361e-3,7.080543955082813e-6,3.7855994178883683e-6,1.2879875104746403e-5 -Bls12_381_G2_multiScalarMul/78/78,5.740407480489808e-3,5.7391493805168635e-3,5.7418065167963e-3,3.904427361041286e-6,3.074226799333372e-6,5.442029866027754e-6 -Bls12_381_G2_multiScalarMul/79/79,5.751010900543999e-3,5.748323596643336e-3,5.754728295889315e-3,9.270531833024517e-6,6.035547009683968e-6,1.4379971767424256e-5 -Bls12_381_G2_multiScalarMul/80/80,5.858800364486109e-3,5.857269600819101e-3,5.860372363714095e-3,4.878855487808653e-6,3.7581767493947793e-6,6.996843420054578e-6 -Bls12_381_G2_multiScalarMul/81/81,5.896817994473183e-3,5.894063205963552e-3,5.902366128185444e-3,1.1536253196991757e-5,6.383910727541163e-6,2.0982102749864474e-5 -Bls12_381_G2_multiScalarMul/82/82,5.954935473178033e-3,5.953063910957776e-3,5.957530288931881e-3,6.253389324766823e-6,4.779351132702418e-6,7.979956410106285e-6 -Bls12_381_G2_multiScalarMul/83/83,6.0161468367483225e-3,6.013693044072133e-3,6.02177468728205e-3,1.0835798229125257e-5,6.207595030876202e-6,1.9548081431230584e-5 -Bls12_381_G2_multiScalarMul/84/84,6.094614704088679e-3,6.092574358893842e-3,6.0971100378228475e-3,6.666176870479611e-6,5.145944335262237e-6,8.274826825353507e-6 -Bls12_381_G2_multiScalarMul/85/85,6.1380376895836565e-3,6.133725428191463e-3,6.145329879147275e-3,1.626622922741078e-5,1.0821722335694483e-5,2.700730631296616e-5 -Bls12_381_G2_multiScalarMul/86/86,6.2140860516838245e-3,6.212851863373451e-3,6.215546358212723e-3,4.0395006569626435e-6,3.346822769756149e-6,4.7839437803151336e-6 -Bls12_381_G2_multiScalarMul/87/87,6.27302455453059e-3,6.270885529060964e-3,6.275809157451918e-3,6.999595649144767e-6,4.947819532780126e-6,1.0251538631768462e-5 -Bls12_381_G2_multiScalarMul/88/88,6.3404523682942995e-3,6.338680115532713e-3,6.3420519237891515e-3,5.208923709646363e-6,4.108671865132737e-6,6.370714767856116e-6 -Bls12_381_G2_multiScalarMul/89/89,6.410017615442629e-3,6.406159123069732e-3,6.41315635661642e-3,1.0622224787961102e-5,7.696172865576866e-6,1.3963076368862973e-5 -Bls12_381_G2_multiScalarMul/90/90,6.481791869329977e-3,6.479839995502555e-3,6.484276415426917e-3,6.258729255672214e-6,4.848352706810262e-6,7.988412553980431e-6 -Bls12_381_G2_multiScalarMul/91/91,6.475168018503552e-3,6.470179709488667e-3,6.483048340856914e-3,1.7646142713249933e-5,1.3097969794456097e-5,2.6957602312106938e-5 -Bls12_381_G2_multiScalarMul/92/92,6.569285931833285e-3,6.566882844069322e-3,6.574172843329704e-3,9.752702509029438e-6,5.6501870652183995e-6,1.6741066006979055e-5 -Bls12_381_G2_multiScalarMul/93/93,6.629457299321055e-3,6.625183482996535e-3,6.638841711503604e-3,1.7538389603216873e-5,1.0528950637309035e-5,3.0379658274480686e-5 -Bls12_381_G2_multiScalarMul/94/94,6.7320607492387515e-3,6.730167903973191e-3,6.736598035759103e-3,8.15218783569633e-6,3.741189882233103e-6,1.6185222568739163e-5 -Bls12_381_G2_multiScalarMul/95/95,6.801145393237103e-3,6.796607904593793e-3,6.8137432062137055e-3,1.9691935909923513e-5,7.536520887751789e-6,3.768941248607555e-5 -Bls12_381_G2_multiScalarMul/96/96,6.821360358060845e-3,6.816810519501433e-3,6.829564504014655e-3,1.6752380908242913e-5,1.0237675196995415e-5,3.083226102494789e-5 -Bls12_381_G2_multiScalarMul/97/97,6.90522012785712e-3,6.901544208299667e-3,6.918761450372084e-3,1.7088371694161855e-5,5.773286197099474e-6,3.643360035316389e-5 -Bls12_381_G2_multiScalarMul/98/98,6.9597205589059085e-3,6.9554579231546464e-3,6.963825444927238e-3,1.230537047747648e-5,9.828399035508776e-6,1.581113740579338e-5 -Bls12_381_G2_multiScalarMul/99/99,6.998605748330429e-3,6.993956045528542e-3,7.003564931628933e-3,1.3941888558415054e-5,1.1848281516892752e-5,1.8598404587423643e-5 -Bls12_381_G2_multiScalarMul/100/100,7.090569654857228e-3,7.08876305884669e-3,7.093035056145744e-3,6.187076669186285e-6,4.689206191622249e-6,8.297705725121281e-6 +Bls12_381_G1_multiScalarMul/1/1,8.232134704712041e-5,8.228195390475752e-5,8.23582682466318e-5,1.224261187989977e-7,9.011720721178711e-8,1.843107342917502e-7 +Bls12_381_G1_multiScalarMul/2/2,1.5603352113689742e-4,1.5600025884754734e-4,1.56065185257734e-4,1.094394761986619e-7,8.779071446458298e-8,1.4947970533315267e-7 +Bls12_381_G1_multiScalarMul/3/3,1.939329666457593e-4,1.9388354851368188e-4,1.9402197408734082e-4,2.1995467058503616e-7,1.0779055620051168e-7,3.598144610846602e-7 +Bls12_381_G1_multiScalarMul/4/4,2.3193769861120354e-4,2.3185777330912127e-4,2.3201206490119206e-4,2.61940592999759e-7,2.2941719187582037e-7,3.077882579221989e-7 +Bls12_381_G1_multiScalarMul/5/5,2.7024485787950484e-4,2.701985832375676e-4,2.703562833994201e-4,2.504717874031756e-7,1.061103089376427e-7,4.5178956774050623e-7 +Bls12_381_G1_multiScalarMul/6/6,3.0832848017233854e-4,3.0828505860448953e-4,3.0841239554252326e-4,2.0081914026068556e-7,9.503560402226141e-8,3.348991421491274e-7 +Bls12_381_G1_multiScalarMul/7/7,3.453960291097332e-4,3.4529502000293173e-4,3.455551893661785e-4,4.503893151758501e-7,3.083661872443178e-7,7.81083043020636e-7 +Bls12_381_G1_multiScalarMul/8/8,3.832976511516978e-4,3.831399415816367e-4,3.8350168059661554e-4,6.425351357987778e-7,4.905809379814108e-7,9.901201715565621e-7 +Bls12_381_G1_multiScalarMul/9/9,4.208393675237262e-4,4.207594143609449e-4,4.209463240895972e-4,2.9714485369386276e-7,2.3487011012607412e-7,3.8965401426852136e-7 +Bls12_381_G1_multiScalarMul/10/10,4.590267934709921e-4,4.589529485523938e-4,4.5921225223072857e-4,3.674247719157326e-7,1.960955535102652e-7,6.745469596123421e-7 +Bls12_381_G1_multiScalarMul/11/11,4.97527732566443e-4,4.972281860134679e-4,4.986282302732426e-4,1.7151877711893442e-6,5.122548200854059e-7,3.5332096552138613e-6 +Bls12_381_G1_multiScalarMul/12/12,5.356509855658948e-4,5.355651207657092e-4,5.357300213867713e-4,2.869286988508056e-7,2.2118709297739587e-7,3.945684847893835e-7 +Bls12_381_G1_multiScalarMul/13/13,5.728512759489744e-4,5.726915276394053e-4,5.733007180741135e-4,8.949768255378629e-7,2.990100102556068e-7,1.799582591634419e-6 +Bls12_381_G1_multiScalarMul/14/14,6.102677458891477e-4,6.101406595840958e-4,6.104800133890259e-4,5.730641911125035e-7,4.2156110110763734e-7,9.874293144495503e-7 +Bls12_381_G1_multiScalarMul/15/15,6.477995208670887e-4,6.475756774649752e-4,6.480865282403314e-4,8.809829049973348e-7,7.579659277726546e-7,1.1589928070099792e-6 +Bls12_381_G1_multiScalarMul/16/16,7.10232795606239e-4,7.101357580525187e-4,7.103534690693274e-4,3.9630772993102876e-7,3.017996615312032e-7,6.065624023561599e-7 +Bls12_381_G1_multiScalarMul/17/17,7.482241201028533e-4,7.479063489174819e-4,7.493005226515e-4,1.7468995103377413e-6,4.207394233578458e-7,3.5919072692845237e-6 +Bls12_381_G1_multiScalarMul/18/18,7.705925934553824e-4,7.701144938606196e-4,7.727806329806679e-4,2.721631169491716e-6,7.981968678057562e-7,5.845417811648959e-6 +Bls12_381_G1_multiScalarMul/19/19,8.07991568665831e-4,8.078519602328661e-4,8.082935546448865e-4,6.822381786366707e-7,4.1123728418619586e-7,1.2817508134125719e-6 +Bls12_381_G1_multiScalarMul/20/20,8.305413129620952e-4,8.304197199200644e-4,8.306902645257076e-4,4.3666055013588826e-7,3.4850947949373826e-7,5.517969661861731e-7 +Bls12_381_G1_multiScalarMul/21/21,8.686137577309382e-4,8.683705360374326e-4,8.690514729472171e-4,1.0365305564754837e-6,6.15324072934707e-7,1.7554645846499009e-6 +Bls12_381_G1_multiScalarMul/22/22,8.91652773561559e-4,8.91448841424083e-4,8.919251447254486e-4,8.003760296748043e-7,5.948851969272322e-7,1.1100316085161068e-6 +Bls12_381_G1_multiScalarMul/23/23,9.294873328615929e-4,9.2931706336974e-4,9.29674543066649e-4,6.225406051789035e-7,4.744164895701269e-7,8.695237190578588e-7 +Bls12_381_G1_multiScalarMul/24/24,9.517388775125774e-4,9.51297780087541e-4,9.521482216169379e-4,1.3722719341729154e-6,1.062307342501858e-6,1.7843971621271001e-6 +Bls12_381_G1_multiScalarMul/25/25,9.886064604005137e-4,9.882251183807264e-4,9.897265063364012e-4,1.8798264902284367e-6,6.736369822886704e-7,3.814951405763071e-6 +Bls12_381_G1_multiScalarMul/26/26,1.0107695436644823e-3,1.0105299581864577e-3,1.0111683184415275e-3,9.824869954193735e-7,6.273786628516054e-7,1.789759844703243e-6 +Bls12_381_G1_multiScalarMul/27/27,1.0481752477344507e-3,1.0477770452434242e-3,1.0488436059663702e-3,1.70119074982601e-6,1.1033927625372998e-6,2.421859397722192e-6 +Bls12_381_G1_multiScalarMul/28/28,1.071199845880856e-3,1.0708432481182537e-3,1.0720804641719981e-3,1.6595833959304896e-6,8.543899072576939e-7,2.9475871714734805e-6 +Bls12_381_G1_multiScalarMul/29/29,1.1091453942723057e-3,1.1088806422385156e-3,1.1094556190265087e-3,9.884003711358195e-7,8.097303732520417e-7,1.3599340574873413e-6 +Bls12_381_G1_multiScalarMul/30/30,1.1316695694102287e-3,1.1314082924647447e-3,1.1319750321409226e-3,9.66367104215988e-7,7.685686878341102e-7,1.204378285010742e-6 +Bls12_381_G1_multiScalarMul/31/31,1.1706362298123296e-3,1.1701248243111372e-3,1.1713912110155227e-3,2.1219139874861063e-6,1.5567879843419155e-6,2.916931910163364e-6 +Bls12_381_G1_multiScalarMul/32/32,1.2183054885742289e-3,1.2178167501590653e-3,1.2191423331752846e-3,2.082314742656685e-6,1.3954922622922078e-6,3.3606861800964793e-6 +Bls12_381_G1_multiScalarMul/33/33,1.25554775700385e-3,1.2553212908295874e-3,1.256064024330601e-3,1.103995478961421e-6,6.577553035929982e-7,1.960982872144134e-6 +Bls12_381_G1_multiScalarMul/34/34,1.2814120185183533e-3,1.2811113200601465e-3,1.2817386977410077e-3,1.066328231240918e-6,8.498751061674896e-7,1.3581581158462333e-6 +Bls12_381_G1_multiScalarMul/35/35,1.3147784280299476e-3,1.3142019737646283e-3,1.3159148898431248e-3,2.7821602645732677e-6,1.2576600123958567e-6,4.71910870274486e-6 +Bls12_381_G1_multiScalarMul/36/36,1.3219048104980895e-3,1.3213844160889154e-3,1.3233093194833564e-3,2.6731627087817e-6,1.1691449038920677e-6,4.595666907784908e-6 +Bls12_381_G1_multiScalarMul/37/37,1.3589352301097773e-3,1.3587799204790097e-3,1.3590865392381088e-3,5.239660989144622e-7,4.210132126501093e-7,7.044936055207908e-7 +Bls12_381_G1_multiScalarMul/38/38,1.3842305731809087e-3,1.3838013940827385e-3,1.3851882129520007e-3,2.140116379547782e-6,1.1344089830602969e-6,4.3500220741287305e-6 +Bls12_381_G1_multiScalarMul/39/39,1.4193844818012396e-3,1.4188890128645811e-3,1.4206267802236144e-3,2.384279344480344e-6,1.286298194419277e-6,4.088466911461954e-6 +Bls12_381_G1_multiScalarMul/40/40,1.4275969257372889e-3,1.4266990139967814e-3,1.4296056424476227e-3,4.36532975493508e-6,2.6378910656369093e-6,7.81360464614563e-6 +Bls12_381_G1_multiScalarMul/41/41,1.4662734042718765e-3,1.4655915349289289e-3,1.4670583531661572e-3,2.5114188995059114e-6,2.0097342160937628e-6,3.247155614235915e-6 +Bls12_381_G1_multiScalarMul/42/42,1.4944060105751547e-3,1.493879150367226e-3,1.4952135866693312e-3,2.1205348113616285e-6,1.5093258926943527e-6,2.962889746140889e-6 +Bls12_381_G1_multiScalarMul/43/43,1.5276593205735154e-3,1.5273658668217916e-3,1.5279331130431386e-3,9.74498489934415e-7,7.482627424771116e-7,1.420616015176624e-6 +Bls12_381_G1_multiScalarMul/44/44,1.5353847806862466e-3,1.5346147866390108e-3,1.5363954193265963e-3,2.814562457758291e-6,2.1143530632424383e-6,3.821045577572284e-6 +Bls12_381_G1_multiScalarMul/45/45,1.5694620743296511e-3,1.5687635390181445e-3,1.57029874920667e-3,2.507144487167149e-6,2.0785255381527325e-6,3.0811759778156036e-6 +Bls12_381_G1_multiScalarMul/46/46,1.5907223707740364e-3,1.5893800235731621e-3,1.592471840103437e-3,5.178470382170926e-6,3.88044580623702e-6,6.694012070239517e-6 +Bls12_381_G1_multiScalarMul/47/47,1.628661974360063e-3,1.6283512846939465e-3,1.6291669828813618e-3,1.3671525674743757e-6,9.627490393739244e-7,2.0277210680304897e-6 +Bls12_381_G1_multiScalarMul/48/48,1.6361548091125416e-3,1.6357926793118167e-3,1.6366869716805837e-3,1.442057725476356e-6,1.0667638215275559e-6,2.1942788690677544e-6 +Bls12_381_G1_multiScalarMul/49/49,1.6779864698862684e-3,1.6774419144888844e-3,1.678564301607901e-3,1.9536763807617875e-6,1.5861735530685062e-6,2.9241156321278288e-6 +Bls12_381_G1_multiScalarMul/50/50,1.7052634275253997e-3,1.7041895762385994e-3,1.706524687220049e-3,3.84152102882327e-6,2.956410364369988e-6,4.951832103647607e-6 +Bls12_381_G1_multiScalarMul/51/51,1.7406739448052255e-3,1.739741519600114e-3,1.743488273211799e-3,4.901730860712033e-6,1.681687713060746e-6,9.63314624934489e-6 +Bls12_381_G1_multiScalarMul/52/52,1.7493504703501312e-3,1.7485291809717686e-3,1.7506247910129787e-3,3.6153633132872805e-6,2.6479825651733657e-6,5.832623352761088e-6 +Bls12_381_G1_multiScalarMul/53/53,1.7868267249247544e-3,1.786050505290007e-3,1.7882000160916365e-3,3.3230153222471118e-6,2.3257047340548217e-6,5.4135122168717275e-6 +Bls12_381_G1_multiScalarMul/54/54,1.8119093305955243e-3,1.8112017731004542e-3,1.8128745438316246e-3,2.9582354520945714e-6,2.0538396464527634e-6,4.974892599302226e-6 +Bls12_381_G1_multiScalarMul/55/55,1.84471674435397e-3,1.8442599600963505e-3,1.8452634559156386e-3,1.7601881093901428e-6,1.4750625737533917e-6,2.210525678689879e-6 +Bls12_381_G1_multiScalarMul/56/56,1.8550924625942802e-3,1.8544531007068019e-3,1.8564385668508347e-3,2.9780016999383592e-6,1.8191076732735432e-6,5.031379898838522e-6 +Bls12_381_G1_multiScalarMul/57/57,1.8950408145264643e-3,1.8939992827596826e-3,1.8961977234850831e-3,3.706120655598944e-6,2.9949347749033603e-6,4.641731171151639e-6 +Bls12_381_G1_multiScalarMul/58/58,1.9214190162986646e-3,1.9205644658902652e-3,1.9227436492195735e-3,3.7919868436730406e-6,2.5151125481564216e-6,5.528965031038841e-6 +Bls12_381_G1_multiScalarMul/59/59,1.95611884939017e-3,1.9555311058998062e-3,1.9567680207463758e-3,2.0724783716238652e-6,1.7915625799228621e-6,2.6388010558596374e-6 +Bls12_381_G1_multiScalarMul/60/60,1.9594365520224813e-3,1.958943767917802e-3,1.9600328304991543e-3,1.8565912278242626e-6,1.3182944308809232e-6,3.0498262686954687e-6 +Bls12_381_G1_multiScalarMul/61/61,1.9978785940453596e-3,1.9970364354546e-3,1.9988044814993563e-3,2.814765620751774e-6,2.215278427132277e-6,3.9079749949813176e-6 +Bls12_381_G1_multiScalarMul/62/62,2.025163972129198e-3,2.024292907473527e-3,2.026477198808721e-3,3.4328117679417816e-6,2.424532695157738e-6,4.901533766106334e-6 +Bls12_381_G1_multiScalarMul/63/63,2.0586979562927845e-3,2.057984455859352e-3,2.059909135640746e-3,3.1733556435024334e-6,1.9174464587367093e-6,5.2504225730683016e-6 +Bls12_381_G1_multiScalarMul/64/64,2.0900368436079005e-3,2.088028375590593e-3,2.0984775655780315e-3,1.1646874789686276e-5,3.4252094381705674e-6,2.554205960853732e-5 +Bls12_381_G1_multiScalarMul/65/65,1.8968147378605645e-3,1.8955310391900796e-3,1.898278206886905e-3,4.680707702478362e-6,3.6933847226616885e-6,6.782185825195487e-6 +Bls12_381_G1_multiScalarMul/66/66,1.915527316948408e-3,1.9151048085532891e-3,1.916079596378419e-3,1.652232700882608e-6,1.268984752321262e-6,2.218302657360697e-6 +Bls12_381_G1_multiScalarMul/67/67,1.939873715995447e-3,1.9390300141714943e-3,1.9415345431927143e-3,3.909637666223789e-6,2.4669716449410535e-6,6.3729495513604696e-6 +Bls12_381_G1_multiScalarMul/68/68,1.963955860876783e-3,1.9634908135732973e-3,1.9647235096952164e-3,1.9301982657436205e-6,1.331287045500568e-6,3.069218630466695e-6 +Bls12_381_G1_multiScalarMul/69/69,1.981736462216709e-3,1.9812744529486425e-3,1.982304257342455e-3,1.7179723192754665e-6,1.2576978196442669e-6,2.585535309310991e-6 +Bls12_381_G1_multiScalarMul/70/70,2.015096024360793e-3,2.013930296536576e-3,2.016550975850134e-3,4.183586924132327e-6,2.9592834069943323e-6,5.903222403671096e-6 +Bls12_381_G1_multiScalarMul/71/71,2.039593310853405e-3,2.039230558943095e-3,2.040135103696278e-3,1.517677057313753e-6,1.246493361769726e-6,1.8411731331069727e-6 +Bls12_381_G1_multiScalarMul/72/72,2.058111599882653e-3,2.057193666273917e-3,2.0594723408391942e-3,3.5844251775633503e-6,2.7202401005013457e-6,5.864305886696207e-6 +Bls12_381_G1_multiScalarMul/73/73,2.0934159227994436e-3,2.0906201835026532e-3,2.095693684947171e-3,8.491298188831756e-6,7.241167338179682e-6,1.0176406230578143e-5 +Bls12_381_G1_multiScalarMul/74/74,2.1291335834122513e-3,2.1278241958452133e-3,2.1299943701228743e-3,3.7951510816769475e-6,2.9761746545534362e-6,5.135763083938416e-6 +Bls12_381_G1_multiScalarMul/75/75,2.1496696746573056e-3,2.148587264452237e-3,2.1520893411774615e-3,5.214017226179326e-6,2.831700993722389e-6,9.897946072389741e-6 +Bls12_381_G1_multiScalarMul/76/76,2.1791297355152578e-3,2.1763917538151966e-3,2.1862885859611804e-3,1.3564060446508161e-5,5.983327115746122e-6,2.4308866464862185e-5 +Bls12_381_G1_multiScalarMul/77/77,2.181325091429973e-3,2.1807942464757432e-3,2.1818133665519207e-3,1.7039353205909792e-6,1.3786145694127499e-6,2.27968640731267e-6 +Bls12_381_G1_multiScalarMul/78/78,2.2165097719499824e-3,2.213684889701067e-3,2.219024702852442e-3,9.476092692961542e-6,6.898527736606062e-6,1.3202270738128961e-5 +Bls12_381_G1_multiScalarMul/79/79,2.2220017642692208e-3,2.221452887745163e-3,2.2226621102249605e-3,1.9668594276026276e-6,1.6059114512897864e-6,2.54873438507269e-6 +Bls12_381_G1_multiScalarMul/80/80,2.2649145692548805e-3,2.264315257045781e-3,2.2659321574184485e-3,2.6476167211476292e-6,1.8114591949521001e-6,4.5100102111080466e-6 +Bls12_381_G1_multiScalarMul/81/81,2.2815568928021565e-3,2.2809268030696116e-3,2.282682684357514e-3,2.6571578380668003e-6,1.7065827732222851e-6,4.487951031499547e-6 +Bls12_381_G1_multiScalarMul/82/82,2.310620963737306e-3,2.3090927285613193e-3,2.3126689982238035e-3,5.977435209471239e-6,4.4804403698017714e-6,8.09057887928092e-6 +Bls12_381_G1_multiScalarMul/83/83,2.336733472141597e-3,2.3360361666493012e-3,2.337632382036757e-3,2.560471483733304e-6,1.920620453068812e-6,3.7021660444619836e-6 +Bls12_381_G1_multiScalarMul/84/84,2.373268168042132e-3,2.371319876892892e-3,2.3766426567644805e-3,8.021527609000714e-6,4.830364162650037e-6,1.252095716980909e-5 +Bls12_381_G1_multiScalarMul/85/85,2.384876078524913e-3,2.383959246461071e-3,2.3867334229422466e-3,4.094196151783379e-6,2.3902100912772977e-6,6.961154738344854e-6 +Bls12_381_G1_multiScalarMul/86/86,2.410565039227443e-3,2.4084234057296094e-3,2.412268328550986e-3,6.65915218385595e-6,4.329988822432703e-6,1.0326826016055168e-5 +Bls12_381_G1_multiScalarMul/87/87,2.4297666625285345e-3,2.4270653907625746e-3,2.432196481389161e-3,8.58024905300566e-6,7.109703139729458e-6,1.0051366987525497e-5 +Bls12_381_G1_multiScalarMul/88/88,2.460570343151193e-3,2.459544035208346e-3,2.4615274058159917e-3,3.5198413136176365e-6,2.8384817517665127e-6,4.815807097623251e-6 +Bls12_381_G1_multiScalarMul/89/89,2.489853458509472e-3,2.48760518697685e-3,2.491311540051355e-3,6.19046891378905e-6,4.307330671671395e-6,7.986452835536224e-6 +Bls12_381_G1_multiScalarMul/90/90,2.518729619807173e-3,2.5175955675903593e-3,2.5197557395444242e-3,3.6740724105737384e-6,3.011297773639394e-6,4.579753037221892e-6 +Bls12_381_G1_multiScalarMul/91/91,2.507346287557815e-3,2.5048432606199636e-3,2.5101409467740204e-3,9.127067962491492e-6,7.736890525902875e-6,1.0224347243298884e-5 +Bls12_381_G1_multiScalarMul/92/92,2.5623659852219262e-3,2.5612024891175753e-3,2.564829446827521e-3,5.6507070170772565e-6,3.2998574451510087e-6,9.57583819470183e-6 +Bls12_381_G1_multiScalarMul/93/93,2.5847869535442504e-3,2.5837480732719756e-3,2.5860413313409e-3,3.848008008883357e-6,3.135969999546864e-6,4.874051925178418e-6 +Bls12_381_G1_multiScalarMul/94/94,2.6234813638524954e-3,2.6221188936467322e-3,2.627015683950028e-3,6.9065042519955485e-6,3.5404891910020863e-6,1.266990728387938e-5 +Bls12_381_G1_multiScalarMul/95/95,2.642628219940988e-3,2.641768011136227e-3,2.6442054118635916e-3,3.6007375940600177e-6,2.2125834942189697e-6,6.234015624110293e-6 +Bls12_381_G1_multiScalarMul/96/96,2.6601519782021863e-3,2.6585725995916932e-3,2.6631507793169816e-3,7.137222035771094e-6,4.623560832534806e-6,1.2950373021381417e-5 +Bls12_381_G1_multiScalarMul/97/97,2.681023460582192e-3,2.679568015031102e-3,2.683278541155578e-3,5.991522440852137e-6,3.858505228846451e-6,8.60021764374252e-6 +Bls12_381_G1_multiScalarMul/98/98,2.7083684530633586e-3,2.70727640883435e-3,2.7110584196105647e-3,5.013062986030381e-6,2.3597699562053853e-6,1.002284515969446e-5 +Bls12_381_G1_multiScalarMul/99/99,2.7213371259787855e-3,2.720704088882147e-3,2.722244079978909e-3,2.444787958433492e-6,1.793699194794548e-6,3.7994420578130953e-6 +Bls12_381_G1_multiScalarMul/100/100,2.7642727676665296e-3,2.763395576301587e-3,2.7675024929907544e-3,4.726547836308982e-6,1.8913959977112497e-6,1.0025613006686808e-5 +Bls12_381_G2_multiScalarMul/1/1,1.6266495442804972e-4,1.6264736086074068e-4,1.6270124805713648e-4,7.793865350083726e-8,4.635475091813956e-8,1.4247066440608091e-7 +Bls12_381_G2_multiScalarMul/2/2,3.543638522088684e-4,3.541772068342348e-4,3.5485931188723925e-4,9.360391344324354e-7,3.4976363756994914e-7,1.8211931894900913e-6 +Bls12_381_G2_multiScalarMul/3/3,4.47702794969825e-4,4.475045705500375e-4,4.478850505015342e-4,6.493823174661071e-7,3.5878763258263287e-7,1.0803507174684568e-6 +Bls12_381_G2_multiScalarMul/4/4,5.420723557652644e-4,5.417274673810824e-4,5.426125367479333e-4,1.4301753976362207e-6,9.988141199987564e-7,2.267296520674632e-6 +Bls12_381_G2_multiScalarMul/5/5,6.370512849618329e-4,6.36900784787239e-4,6.37202712666071e-4,5.292403814549932e-7,4.022430073091077e-7,7.556842750685239e-7 +Bls12_381_G2_multiScalarMul/6/6,7.310526489754525e-4,7.30629670999753e-4,7.317446144730351e-4,1.8119026166925256e-6,1.1454709674089216e-6,3.3632913939344345e-6 +Bls12_381_G2_multiScalarMul/7/7,8.236776396240537e-4,8.233271514827839e-4,8.241067273174465e-4,1.3657308675882766e-6,1.0410102352442255e-6,1.83210797347741e-6 +Bls12_381_G2_multiScalarMul/8/8,9.197543555033109e-4,9.189658738224084e-4,9.209830008370004e-4,3.3412724036424652e-6,2.3248417111070747e-6,5.070176355554298e-6 +Bls12_381_G2_multiScalarMul/9/9,1.011991406751168e-3,1.0117382842987513e-3,1.012512156595354e-3,1.1429892811506008e-6,7.64572284352035e-7,1.824620728201617e-6 +Bls12_381_G2_multiScalarMul/10/10,1.109394930774612e-3,1.1087682317862343e-3,1.1115776119988174e-3,3.4944409285465694e-6,1.0503647842087067e-6,7.149880658627584e-6 +Bls12_381_G2_multiScalarMul/11/11,1.2023934491440338e-3,1.202171934481395e-3,1.2026423197250766e-3,7.922161025400925e-7,6.258416318073706e-7,1.029606114863458e-6 +Bls12_381_G2_multiScalarMul/12/12,1.2963025275871496e-3,1.2952163686698916e-3,1.2983463505741011e-3,4.960268500618734e-6,2.845337116066531e-6,9.687158836086103e-6 +Bls12_381_G2_multiScalarMul/13/13,1.3869285962502872e-3,1.3866231292243125e-3,1.3872893550098244e-3,1.1726919062774188e-6,8.791906263916984e-7,1.5913921990012086e-6 +Bls12_381_G2_multiScalarMul/14/14,1.4823956781971994e-3,1.4815973050589385e-3,1.4842137535372652e-3,3.760848566094728e-6,2.472183908899497e-6,6.4465275732684205e-6 +Bls12_381_G2_multiScalarMul/15/15,1.574445631700049e-3,1.574063788581931e-3,1.5749578982368424e-3,1.443263633319882e-6,1.0628032736563463e-6,2.1565979694667185e-6 +Bls12_381_G2_multiScalarMul/16/16,1.5000875796284717e-3,1.4994665426513504e-3,1.5014717203342867e-3,2.802372121079838e-6,1.7676048441935653e-6,4.644089354729122e-6 +Bls12_381_G2_multiScalarMul/17/17,1.5940905703219718e-3,1.5936217521556593e-3,1.5945282467814278e-3,1.547468548627245e-6,1.1967489868918594e-6,2.082313772097416e-6 +Bls12_381_G2_multiScalarMul/18/18,1.6481937447323397e-3,1.6471788901492087e-3,1.6502528733967521e-3,4.67746155264807e-6,2.5560426788421386e-6,8.493562555710135e-6 +Bls12_381_G2_multiScalarMul/19/19,1.7408620063694292e-3,1.7403685953485991e-3,1.7416086573762834e-3,2.034339176777199e-6,1.5411497874186401e-6,2.888074021221646e-6 +Bls12_381_G2_multiScalarMul/20/20,1.7983360168952664e-3,1.7968063959178204e-3,1.8007319622437476e-3,6.701452941660098e-6,3.915890097926392e-6,1.1565951790899295e-5 +Bls12_381_G2_multiScalarMul/21/21,1.8948751419094719e-3,1.8943849272806152e-3,1.8954945505194202e-3,1.8264677812158936e-6,1.5180676580123575e-6,2.3043238795090236e-6 +Bls12_381_G2_multiScalarMul/22/22,1.9483638492318052e-3,1.9468479306608071e-3,1.952898337552636e-3,8.246725685061966e-6,2.916390890917488e-6,1.6554460898097785e-5 +Bls12_381_G2_multiScalarMul/23/23,2.0441566797094976e-3,2.0436200484617298e-3,2.0448120935495366e-3,1.9807680962425035e-6,1.4047597581205637e-6,2.861374149657612e-6 +Bls12_381_G2_multiScalarMul/24/24,2.0976111797810742e-3,2.0969141362790775e-3,2.0983042002160226e-3,2.294409781298406e-6,1.7816482691771947e-6,3.2363169164003804e-6 +Bls12_381_G2_multiScalarMul/25/25,2.1916934430134647e-3,2.1911766683971054e-3,2.192454586070339e-3,2.0791512216562315e-6,1.5171229138063835e-6,2.812518408756342e-6 +Bls12_381_G2_multiScalarMul/26/26,2.2452874242475463e-3,2.2438224649193378e-3,2.248020575104657e-3,6.546744756250407e-6,4.224171258471438e-6,1.1357661995132573e-5 +Bls12_381_G2_multiScalarMul/27/27,2.3342313432099604e-3,2.3334417036587492e-3,2.335903802244924e-3,3.7924501525196913e-6,2.084116468653706e-6,6.745286115407234e-6 +Bls12_381_G2_multiScalarMul/28/28,2.3924196934986424e-3,2.3905980952149135e-3,2.39744572554579e-3,9.270395166568168e-6,3.857502451986574e-6,1.8266974876360255e-5 +Bls12_381_G2_multiScalarMul/29/29,2.4921574096234654e-3,2.4911465295363233e-3,2.4951214940058244e-3,5.209897620887097e-6,2.3932366963378704e-6,1.007979235143704e-5 +Bls12_381_G2_multiScalarMul/30/30,2.5442112572946624e-3,2.5431826880834667e-3,2.5479216241766365e-3,5.7374902589030385e-6,2.166916577225313e-6,1.24589648550128e-5 +Bls12_381_G2_multiScalarMul/31/31,2.6387551082366705e-3,2.6380466280120883e-3,2.6396291501284983e-3,2.5285910565402825e-6,2.0132127254936795e-6,3.4207259760745164e-6 +Bls12_381_G2_multiScalarMul/32/32,2.5150931462186196e-3,2.513387917297599e-3,2.5181977065017046e-3,7.657009385145557e-6,4.5131093648664805e-6,1.3678490989164753e-5 +Bls12_381_G2_multiScalarMul/33/33,3.0889519233376545e-3,3.0883882511648234e-3,3.089672507460859e-3,2.0979675388899346e-6,1.603912694016453e-6,3.0603682324660857e-6 +Bls12_381_G2_multiScalarMul/34/34,3.16771726298734e-3,3.16501045273763e-3,3.172197179196162e-3,1.0825021580641719e-5,6.671829453430046e-6,1.8892794609350383e-5 +Bls12_381_G2_multiScalarMul/35/35,3.2525975758965855e-3,3.251923568635943e-3,3.2534974414252724e-3,2.3923622222660625e-6,1.771511114169158e-6,3.613237863752478e-6 +Bls12_381_G2_multiScalarMul/36/36,3.336138244007564e-3,3.333789111955089e-3,3.344298373821e-3,1.3359645865766898e-5,3.2128822247268738e-6,2.7638521011789944e-5 +Bls12_381_G2_multiScalarMul/37/37,3.4191138605455746e-3,3.4179135859041592e-3,3.4233605791000876e-3,6.592098823336916e-6,2.5157731785295883e-6,1.3141627481895897e-5 +Bls12_381_G2_multiScalarMul/38/38,3.4883584083644226e-3,3.4862131678210493e-3,3.4925344207942677e-3,9.623236210916872e-6,5.191214954965976e-6,1.7597405473000066e-5 +Bls12_381_G2_multiScalarMul/39/39,3.530386408142463e-3,3.5295959082416793e-3,3.531411239014294e-3,2.79677085673492e-6,2.1274732913274754e-6,3.925571150385237e-6 +Bls12_381_G2_multiScalarMul/40/40,3.6147002382323538e-3,3.611572624230025e-3,3.6292011188412323e-3,1.7990113412185996e-5,2.845513840934602e-6,4.043993566101094e-5 +Bls12_381_G2_multiScalarMul/41/41,3.672723290652948e-3,3.6718602367145966e-3,3.673688181816288e-3,2.84241014465167e-6,2.3021696308807956e-6,3.7655879313695054e-6 +Bls12_381_G2_multiScalarMul/42/42,3.793747136886243e-3,3.78926839608175e-3,3.809348971725428e-3,2.269174801044769e-5,4.7237643544819555e-6,4.9663768681186095e-5 +Bls12_381_G2_multiScalarMul/43/43,3.877862027839689e-3,3.876819161298888e-3,3.8794572953528964e-3,4.162065327624179e-6,3.2714009413120982e-6,5.1550470389566275e-6 +Bls12_381_G2_multiScalarMul/44/44,3.965116399895544e-3,3.962804992549213e-3,3.97345386215166e-3,1.3112609308794646e-5,1.8812805162759533e-6,2.7437540345266834e-5 +Bls12_381_G2_multiScalarMul/45/45,4.004527665871219e-3,4.003216183025186e-3,4.00656406563525e-3,5.2564769639065946e-6,2.696936689436533e-6,7.823236463877045e-6 +Bls12_381_G2_multiScalarMul/46/46,4.076804027301204e-3,4.074764849350912e-3,4.082954370562564e-3,1.0195134478551572e-5,3.59758066050906e-6,2.02607321633781e-5 +Bls12_381_G2_multiScalarMul/47/47,4.167774429892586e-3,4.1666246852367335e-3,4.169331500283441e-3,4.095651022675052e-6,3.1833448207887804e-6,5.089866484578962e-6 +Bls12_381_G2_multiScalarMul/48/48,4.2249981616795705e-3,4.222778156184377e-3,4.226612496226903e-3,5.7784805597787715e-6,4.4339723066230185e-6,7.3377180823161815e-6 +Bls12_381_G2_multiScalarMul/49/49,4.3524164098415665e-3,4.351263723172645e-3,4.353648896076485e-3,3.7577346495739375e-6,3.092141280492094e-6,4.52320031610404e-6 +Bls12_381_G2_multiScalarMul/50/50,4.343123429888507e-3,4.341239145934485e-3,4.345694580031099e-3,7.032494846534855e-6,5.430307563910816e-6,1.0261289957428346e-5 +Bls12_381_G2_multiScalarMul/51/51,4.484856489477111e-3,4.481774784858851e-3,4.487312713793393e-3,8.158820364283e-6,6.798014601558509e-6,1.086960763925229e-5 +Bls12_381_G2_multiScalarMul/52/52,4.546562051796544e-3,4.5455748661040974e-3,4.548037932926745e-3,3.6580687673211806e-6,2.8901424834133615e-6,5.219822997121614e-6 +Bls12_381_G2_multiScalarMul/53/53,4.654474034299822e-3,4.65318130717014e-3,4.655917064534823e-3,4.116466278137667e-6,3.166891661793465e-6,5.567941155062992e-6 +Bls12_381_G2_multiScalarMul/54/54,4.721927123629685e-3,4.72071287904244e-3,4.723138528981887e-3,3.94193309418702e-6,3.113913371425901e-6,5.136276379939376e-6 +Bls12_381_G2_multiScalarMul/55/55,4.795039804834155e-3,4.793771853613166e-3,4.796041252525426e-3,3.523502774916879e-6,2.8612449092910447e-6,4.464716550457647e-6 +Bls12_381_G2_multiScalarMul/56/56,4.864016888196152e-3,4.862934237209827e-3,4.865878015473469e-3,4.339172192062833e-6,3.120561122208654e-6,7.091594219853984e-6 +Bls12_381_G2_multiScalarMul/57/57,4.930026691468103e-3,4.928660811034607e-3,4.93184431837138e-3,4.92694965505342e-6,3.631274655946987e-6,6.916774799932921e-6 +Bls12_381_G2_multiScalarMul/58/58,4.999478205962443e-3,4.996476656269146e-3,5.002509748355277e-3,9.65312271848907e-6,8.212314993018033e-6,1.121977177338798e-5 +Bls12_381_G2_multiScalarMul/59/59,5.109930645097379e-3,5.108695300209485e-3,5.111720735214837e-3,4.307666456047917e-6,3.2036925396243358e-6,7.010008721447832e-6 +Bls12_381_G2_multiScalarMul/60/60,5.182636587074396e-3,5.1812215576612815e-3,5.184867458236281e-3,5.045266958501895e-6,3.3630808719106254e-6,7.598293873580799e-6 +Bls12_381_G2_multiScalarMul/61/61,5.261201467559662e-3,5.259483119610097e-3,5.2651003452464235e-3,6.794062799442452e-6,3.965079449462158e-6,1.2745803244159386e-5 +Bls12_381_G2_multiScalarMul/62/62,5.355085149782543e-3,5.353521974098854e-3,5.3568364980710005e-3,5.127106845655141e-6,3.956280257430231e-6,6.764557833667277e-6 +Bls12_381_G2_multiScalarMul/63/63,5.404870448491742e-3,5.401124837066587e-3,5.407497875504651e-3,8.934660522629549e-6,6.290321430881255e-6,1.2732030907646999e-5 +Bls12_381_G2_multiScalarMul/64/64,4.8782659702195615e-3,4.876660673660171e-3,4.8804522014555e-3,5.830661634910927e-6,3.955325665036216e-6,9.38894371358523e-6 +Bls12_381_G2_multiScalarMul/65/65,4.9061548862185346e-3,4.904813116841975e-3,4.9086495754739915e-3,5.295424246670201e-6,3.7451476035762403e-6,8.334611829514347e-6 +Bls12_381_G2_multiScalarMul/66/66,4.967076866858588e-3,4.96587704975757e-3,4.970208209096129e-3,5.500738791485448e-6,2.7782883129256445e-6,1.0490016182322088e-5 +Bls12_381_G2_multiScalarMul/67/67,5.0384188004806525e-3,5.036297660856063e-3,5.040874280488966e-3,7.20767347691469e-6,5.18593994354578e-6,1.1000885848108839e-5 +Bls12_381_G2_multiScalarMul/68/68,5.082679596088205e-3,5.081788191855941e-3,5.083677026915687e-3,2.9879915262955836e-6,2.402250840802348e-6,3.7388441162211205e-6 +Bls12_381_G2_multiScalarMul/69/69,5.131805217231941e-3,5.129945152668336e-3,5.134860292773551e-3,7.121015258734736e-6,4.754387036952524e-6,1.0407485911539298e-5 +Bls12_381_G2_multiScalarMul/70/70,5.223131098010917e-3,5.220270707999523e-3,5.226515783222153e-3,9.515319707834862e-6,7.924704664502419e-6,1.197266014225403e-5 +Bls12_381_G2_multiScalarMul/71/71,5.2882851289316885e-3,5.286944845429294e-3,5.2901838154393414e-3,4.850407193371409e-6,3.951323934404944e-6,6.909977742394703e-6 +Bls12_381_G2_multiScalarMul/72/72,5.31973147751225e-3,5.318376432387295e-3,5.32119875028863e-3,4.277946466566538e-6,3.32076690250808e-6,5.635737244144887e-6 +Bls12_381_G2_multiScalarMul/73/73,5.415258160623588e-3,5.413782714872596e-3,5.416918547393203e-3,4.874528900097905e-6,4.170514576006458e-6,5.848559988534025e-6 +Bls12_381_G2_multiScalarMul/74/74,5.504234496008557e-3,5.500576962955019e-3,5.508481864691515e-3,1.1590261990431737e-5,7.963644443790475e-6,2.0109944098147845e-5 +Bls12_381_G2_multiScalarMul/75/75,5.564079990869667e-3,5.562681956747252e-3,5.56567336402758e-3,4.352958051265566e-6,3.4422969438156352e-6,6.286896453598817e-6 +Bls12_381_G2_multiScalarMul/76/76,5.636188875483629e-3,5.63517382713922e-3,5.637553743099741e-3,3.670518446053137e-6,2.6204373559816722e-6,5.576211218482488e-6 +Bls12_381_G2_multiScalarMul/77/77,5.653980663508052e-3,5.652296820298524e-3,5.657670797268361e-3,7.080543955082813e-6,3.7855994178883683e-6,1.2879875104746403e-5 +Bls12_381_G2_multiScalarMul/78/78,5.740407480489808e-3,5.7391493805168635e-3,5.7418065167963e-3,3.904427361041286e-6,3.074226799333372e-6,5.442029866027754e-6 +Bls12_381_G2_multiScalarMul/79/79,5.751010900543999e-3,5.748323596643336e-3,5.754728295889315e-3,9.270531833024517e-6,6.035547009683968e-6,1.4379971767424256e-5 +Bls12_381_G2_multiScalarMul/80/80,5.858800364486109e-3,5.857269600819101e-3,5.860372363714095e-3,4.878855487808653e-6,3.7581767493947793e-6,6.996843420054578e-6 +Bls12_381_G2_multiScalarMul/81/81,5.896817994473183e-3,5.894063205963552e-3,5.902366128185444e-3,1.1536253196991757e-5,6.383910727541163e-6,2.0982102749864474e-5 +Bls12_381_G2_multiScalarMul/82/82,5.954935473178033e-3,5.953063910957776e-3,5.957530288931881e-3,6.253389324766823e-6,4.779351132702418e-6,7.979956410106285e-6 +Bls12_381_G2_multiScalarMul/83/83,6.0161468367483225e-3,6.013693044072133e-3,6.02177468728205e-3,1.0835798229125257e-5,6.207595030876202e-6,1.9548081431230584e-5 +Bls12_381_G2_multiScalarMul/84/84,6.094614704088679e-3,6.092574358893842e-3,6.0971100378228475e-3,6.666176870479611e-6,5.145944335262237e-6,8.274826825353507e-6 +Bls12_381_G2_multiScalarMul/85/85,6.1380376895836565e-3,6.133725428191463e-3,6.145329879147275e-3,1.626622922741078e-5,1.0821722335694483e-5,2.700730631296616e-5 +Bls12_381_G2_multiScalarMul/86/86,6.2140860516838245e-3,6.212851863373451e-3,6.215546358212723e-3,4.0395006569626435e-6,3.346822769756149e-6,4.7839437803151336e-6 +Bls12_381_G2_multiScalarMul/87/87,6.27302455453059e-3,6.270885529060964e-3,6.275809157451918e-3,6.999595649144767e-6,4.947819532780126e-6,1.0251538631768462e-5 +Bls12_381_G2_multiScalarMul/88/88,6.3404523682942995e-3,6.338680115532713e-3,6.3420519237891515e-3,5.208923709646363e-6,4.108671865132737e-6,6.370714767856116e-6 +Bls12_381_G2_multiScalarMul/89/89,6.410017615442629e-3,6.406159123069732e-3,6.41315635661642e-3,1.0622224787961102e-5,7.696172865576866e-6,1.3963076368862973e-5 +Bls12_381_G2_multiScalarMul/90/90,6.481791869329977e-3,6.479839995502555e-3,6.484276415426917e-3,6.258729255672214e-6,4.848352706810262e-6,7.988412553980431e-6 +Bls12_381_G2_multiScalarMul/91/91,6.475168018503552e-3,6.470179709488667e-3,6.483048340856914e-3,1.7646142713249933e-5,1.3097969794456097e-5,2.6957602312106938e-5 +Bls12_381_G2_multiScalarMul/92/92,6.569285931833285e-3,6.566882844069322e-3,6.574172843329704e-3,9.752702509029438e-6,5.6501870652183995e-6,1.6741066006979055e-5 +Bls12_381_G2_multiScalarMul/93/93,6.629457299321055e-3,6.625183482996535e-3,6.638841711503604e-3,1.7538389603216873e-5,1.0528950637309035e-5,3.0379658274480686e-5 +Bls12_381_G2_multiScalarMul/94/94,6.7320607492387515e-3,6.730167903973191e-3,6.736598035759103e-3,8.15218783569633e-6,3.741189882233103e-6,1.6185222568739163e-5 +Bls12_381_G2_multiScalarMul/95/95,6.801145393237103e-3,6.796607904593793e-3,6.8137432062137055e-3,1.9691935909923513e-5,7.536520887751789e-6,3.768941248607555e-5 +Bls12_381_G2_multiScalarMul/96/96,6.821360358060845e-3,6.816810519501433e-3,6.829564504014655e-3,1.6752380908242913e-5,1.0237675196995415e-5,3.083226102494789e-5 +Bls12_381_G2_multiScalarMul/97/97,6.90522012785712e-3,6.901544208299667e-3,6.918761450372084e-3,1.7088371694161855e-5,5.773286197099474e-6,3.643360035316389e-5 +Bls12_381_G2_multiScalarMul/98/98,6.9597205589059085e-3,6.9554579231546464e-3,6.963825444927238e-3,1.230537047747648e-5,9.828399035508776e-6,1.581113740579338e-5 +Bls12_381_G2_multiScalarMul/99/99,6.998605748330429e-3,6.993956045528542e-3,7.003564931628933e-3,1.3941888558415054e-5,1.1848281516892752e-5,1.8598404587423643e-5 +Bls12_381_G2_multiScalarMul/100/100,7.090569654857228e-3,7.08876305884669e-3,7.093035056145744e-3,6.187076669186285e-6,4.689206191622249e-6,8.297705725121281e-6 +LookupCoin/4/4/1941,1.2099290601733442e-6,1.2083153557899885e-6,1.2118190350742815e-6,5.81908186900081e-9,4.297599190144749e-9,8.699026996671137e-9 +LookupCoin/4/4/2000,1.263962482927185e-6,1.2626751889265905e-6,1.2651287861306148e-6,4.0139358332478404e-9,3.450861092560281e-9,4.8043390545522835e-9 +LookupCoin/4/1/0,1.182303989619614e-6,1.1815544689668174e-6,1.1834797373879564e-6,3.115195646393345e-9,2.093111256210446e-9,4.9299125866046525e-9 +LookupCoin/4/4/1377,1.267551529799483e-6,1.266581270364521e-6,1.268692425444755e-6,3.639047415442263e-9,3.0777074086674777e-9,4.3927181071216085e-9 +LookupCoin/4/4/1474,1.2570576702845137e-6,1.255972766547404e-6,1.2582612614382911e-6,3.7037442136637023e-9,2.9935389995685576e-9,4.874826590832197e-9 +LookupCoin/4/2/865,1.2482849645480626e-6,1.2469085281432584e-6,1.2492549833007781e-6,3.632025809169239e-9,2.6067687048953873e-9,5.644791014888371e-9 +LookupCoin/4/2/424,1.2459501727292264e-6,1.2442961476614228e-6,1.248673313685348e-6,7.008556549191257e-9,4.1906582610380275e-9,1.2434704131187341e-8 +LookupCoin/4/1/1261,1.2566311622141241e-6,1.255857077075437e-6,1.2576040103810896e-6,2.9873617865386026e-9,2.4041378085419448e-9,3.799557600108652e-9 +LookupCoin/4/4/709,1.261927941887455e-6,1.2598530362150802e-6,1.2637818370051234e-6,6.929571973171179e-9,5.608198164568385e-9,9.071659076003086e-9 +LookupCoin/4/2/473,1.2536193600218737e-6,1.2522950969787805e-6,1.2548894124912592e-6,4.373570331544024e-9,3.7976835698375666e-9,5.1980722250469035e-9 +LookupCoin/4/1/1635,1.2591313969765046e-6,1.2581833536055129e-6,1.2603074575281222e-6,3.53427233905004e-9,2.9471285330998955e-9,4.6488334486474785e-9 +LookupCoin/4/2/635,1.2477117772777182e-6,1.2461100199751527e-6,1.2490040363666169e-6,4.807855645311272e-9,4.1235948154934e-9,5.764849544389051e-9 +LookupCoin/4/4/305,1.2425059902254396e-6,1.2407518702507744e-6,1.244168953921855e-6,5.84352449854114e-9,4.549050537914644e-9,7.80326484501955e-9 +LookupCoin/4/3/186,1.2530364974491342e-6,1.2516219751104819e-6,1.2542405774010673e-6,4.512543704899226e-9,3.655938720253158e-9,5.906991890855321e-9 +LookupCoin/4/1/1384,1.2607045267671776e-6,1.258943415220449e-6,1.2627790371408432e-6,6.635295624283548e-9,5.030588392231537e-9,1.0333783073964522e-8 +LookupCoin/4/3/1635,1.2585367929171297e-6,1.2576565718844006e-6,1.2593992923822128e-6,3.0784980248895894e-9,2.5777684750227055e-9,3.88401410802952e-9 +LookupCoin/4/3/1753,1.2675225028803989e-6,1.2659737520012162e-6,1.2692773218081745e-6,5.2321936970877426e-9,3.909736616277929e-9,7.745940519080702e-9 +LookupCoin/4/3/717,1.258396832404609e-6,1.257219019436686e-6,1.2598889590626648e-6,4.583946624630117e-9,3.976385112422162e-9,5.5259668402931426e-9 +LookupCoin/4/3/1067,1.24493573110303e-6,1.2432178591385692e-6,1.2466875933359962e-6,6.057679179346355e-9,4.559671198356602e-9,8.232079845641701e-9 +LookupCoin/4/3/699,1.269273731403419e-6,1.2677600844860157e-6,1.2704844246448894e-6,4.746738445643781e-9,3.794025061573992e-9,5.82684065718847e-9 +LookupCoin/4/2/1514,1.260122608268287e-6,1.2584625920132232e-6,1.2622273127805128e-6,6.47114407761682e-9,3.188466734562789e-9,1.0604092184877621e-8 +LookupCoin/4/2/492,1.2501546352192733e-6,1.2487795388890063e-6,1.25124918857253e-6,4.19331685247959e-9,2.988102720561683e-9,5.79414159338583e-9 +LookupCoin/4/2/1422,1.2774268301705716e-6,1.2765040975622525e-6,1.2784101636141578e-6,3.2470653652601065e-9,2.7657409824237242e-9,3.891030104178399e-9 +LookupCoin/4/2/554,1.2099341834380745e-6,1.2092875323128623e-6,1.2105798725001612e-6,2.123862735657797e-9,1.6874239971707224e-9,2.716371587605628e-9 +LookupCoin/4/4/1846,1.276132262752473e-6,1.274814676707836e-6,1.2775249956679903e-6,4.69055236220179e-9,3.973338431710107e-9,5.825079833208221e-9 +LookupCoin/4/4/258,1.244905276120655e-6,1.2441247867061339e-6,1.245642717317428e-6,2.60984751064269e-9,2.12870673180129e-9,3.4540924531227904e-9 +LookupCoin/4/3/1064,1.2731706589997528e-6,1.2710402132653113e-6,1.2755493799508315e-6,7.219131489417484e-9,5.650357658409002e-9,9.610868898830734e-9 +LookupCoin/4/4/1615,1.2672089025846366e-6,1.2662770772243011e-6,1.2680055859788743e-6,2.9431381169757736e-9,2.48789488650362e-9,3.5979948240159138e-9 +LookupCoin/4/1/75,1.2388182146269002e-6,1.2372865668448349e-6,1.2400050768635e-6,4.526016671069336e-9,3.5979746578354265e-9,5.836283772058075e-9 +LookupCoin/4/2/1049,1.2661068981342546e-6,1.2648228057336438e-6,1.2673816544461361e-6,4.2210904548646294e-9,3.531999772829978e-9,5.408519262046894e-9 +LookupCoin/4/3/1936,1.2562052135735867e-6,1.2543318623289094e-6,1.2581754281845629e-6,6.502116282722036e-9,5.626022356299025e-9,7.743876706871337e-9 +LookupCoin/4/2/996,1.2601434416589069e-6,1.2587179080826597e-6,1.2621817652180817e-6,5.990136572559659e-9,3.780939601409619e-9,9.533463271392024e-9 +LookupCoin/4/1/1911,1.2710697851397337e-6,1.2690310508290083e-6,1.272798904953773e-6,6.451356980354716e-9,5.500883896588881e-9,7.771014305693228e-9 +LookupCoin/4/1/825,1.260800434872154e-6,1.2594020569696539e-6,1.2618996920794139e-6,4.344142511079843e-9,3.6968338950356697e-9,5.143627860649896e-9 +LookupCoin/4/1/1817,1.2674403185583998e-6,1.2663150500165288e-6,1.2686163891498086e-6,3.792516304314103e-9,3.103802878623202e-9,5.022365437334514e-9 +LookupCoin/4/2/1392,1.2561701739252014e-6,1.2549675916954485e-6,1.257441374484885e-6,4.373059189360812e-9,3.1835156851131317e-9,6.800462414603944e-9 +LookupCoin/4/4/264,1.2448315169910615e-6,1.2437052173686614e-6,1.2458242649062894e-6,3.6534520022396253e-9,3.024562760705647e-9,4.869474025478529e-9 +LookupCoin/4/2/1039,1.257780446214735e-6,1.2561470663018918e-6,1.2591973592088815e-6,5.088469319984512e-9,3.953211768237475e-9,6.570919927061545e-9 +LookupCoin/4/3/1999,1.2712849202262505e-6,1.269779456411099e-6,1.2729740901823939e-6,5.338705018898157e-9,4.688099541543846e-9,6.450231298999057e-9 +LookupCoin/4/1/1891,1.2675920837841648e-6,1.266194858507318e-6,1.2688259628673854e-6,4.385772401733762e-9,3.3582237185152816e-9,5.472429614903799e-9 +LookupCoin/4/1/82,1.237627394722075e-6,1.2368185187811198e-6,1.2386847180704102e-6,3.0347610459393914e-9,2.506823976177255e-9,3.6361046046899967e-9 +LookupCoin/4/3/1370,1.2717503541302177e-6,1.270830677190067e-6,1.272621654057385e-6,3.054149525161517e-9,2.519540452284075e-9,4.332056963135638e-9 +LookupCoin/4/2/716,1.2599672480083068e-6,1.2584964089586e-6,1.261411291478005e-6,4.996687502362016e-9,4.116885256552783e-9,6.177241665922245e-9 +LookupCoin/4/1/700,1.265354833181043e-6,1.2643850060091481e-6,1.2661831083907466e-6,2.9736053790655615e-9,2.270362511170755e-9,3.791726174851157e-9 +LookupCoin/4/4/1875,1.2739030141881859e-6,1.2723751360822983e-6,1.2751991934859619e-6,4.721492408797256e-9,3.991126137452377e-9,5.627541223975132e-9 +LookupCoin/4/4/530,1.2673916251751333e-6,1.2664398313537881e-6,1.2684569441631355e-6,3.11046053350972e-9,2.583862292332204e-9,3.775255542181607e-9 +LookupCoin/4/3/170,1.2364650888849977e-6,1.2347075148605475e-6,1.2382156368149306e-6,5.770729651978215e-9,4.955270484969811e-9,6.983910751806327e-9 +LookupCoin/4/1/1185,1.2443306109710608e-6,1.2435902758746318e-6,1.2449655452930213e-6,2.3193338193396664e-9,1.822851401903931e-9,3.113788035273931e-9 +LookupCoin/4/1/814,1.257490569648031e-6,1.2569317747063175e-6,1.2580429099027308e-6,1.817631291634746e-9,1.5570580032526942e-9,2.1730506542328224e-9 +LookupCoin/4/2/1984,1.2669426584292243e-6,1.2658152823368194e-6,1.2682424221017303e-6,3.950352580792424e-9,3.3511090163523752e-9,4.596327346734161e-9 +LookupCoin/4/2/669,1.2532181985080193e-6,1.2518408335226801e-6,1.2542763075938748e-6,4.104991161691834e-9,3.210317669081556e-9,5.132838546288511e-9 +LookupCoin/4/4/1102,1.25963765923032e-6,1.25823056525656e-6,1.261174707675424e-6,5.0665749153416346e-9,4.330464918316081e-9,6.068012877181455e-9 +LookupCoin/4/4/1590,1.2717887877527429e-6,1.2708840330012155e-6,1.2726134679055489e-6,2.878583054926874e-9,2.3303518614783313e-9,3.613754801485005e-9 +LookupCoin/4/2/99,1.2335689669962706e-6,1.2313539970664841e-6,1.2353328525966396e-6,6.632766972429087e-9,5.474680823704876e-9,8.086355954211574e-9 +LookupCoin/4/4/423,1.2437255583833758e-6,1.2429822933780755e-6,1.2445586014774631e-6,2.632187646109121e-9,2.262964252764793e-9,3.2433296075407514e-9 +LookupCoin/4/1/193,1.253951432627247e-6,1.2532005093508152e-6,1.2548048706640951e-6,2.8002037980664875e-9,2.210415773767243e-9,3.709778120349775e-9 +LookupCoin/4/3/1957,1.2659341409653457e-6,1.2649509072232248e-6,1.2670762706052669e-6,3.567641971897211e-9,3.0682612337756368e-9,4.261449480943793e-9 +LookupCoin/4/4/293,1.2554190620321072e-6,1.2535495192126615e-6,1.256399330968427e-6,4.493807409408786e-9,3.0742950312961486e-9,6.653589380576234e-9 +LookupCoin/4/1/1711,1.2666871281079437e-6,1.2657066297577347e-6,1.2675871209441707e-6,3.1506331885224733e-9,2.4282732565911564e-9,3.985814475973065e-9 +LookupCoin/4/4/647,1.2535207329040018e-6,1.2524707388441124e-6,1.2545041389407245e-6,3.3603706125105627e-9,2.8366395747981606e-9,4.0510411525349215e-9 +LookupCoin/4/1/313,1.2374161055318747e-6,1.236454553195423e-6,1.238477605083973e-6,3.409089669251884e-9,2.8450258390796608e-9,4.074626615665905e-9 +LookupCoin/4/1/1636,1.2669398876395989e-6,1.2659294241111233e-6,1.2682105306026225e-6,3.794049524872123e-9,3.3068063716783075e-9,4.481708572935728e-9 +LookupCoin/4/1/448,1.2516518250074e-6,1.2509952839718582e-6,1.252506463829953e-6,2.54823461094115e-9,2.0855802753096793e-9,3.1893473865078868e-9 +LookupCoin/4/2/1260,1.270191649222978e-6,1.2688721687173385e-6,1.2710673768320028e-6,3.6791018488429654e-9,2.485208412465243e-9,5.206617957338348e-9 +LookupCoin/4/2/568,1.2470362713843768e-6,1.245957464783253e-6,1.2482396662367748e-6,3.808403164621178e-9,3.1801590682055347e-9,4.890973193115783e-9 +LookupCoin/4/2/50,1.2199188404631702e-6,1.2183768714921385e-6,1.2218612289697213e-6,5.634750575760773e-9,4.322073695143475e-9,9.37198214540019e-9 +LookupCoin/4/2/1761,1.2529888398838452e-6,1.2521817743150948e-6,1.2542734467090725e-6,3.183417504065581e-9,2.199725646097509e-9,5.597358173976347e-9 +LookupCoin/4/3/1499,1.2626962662006926e-6,1.2618120251726073e-6,1.2636609392100827e-6,3.0309927916427637e-9,2.4428812557820733e-9,3.8231798624820016e-9 +LookupCoin/4/4/729,1.2470326120540437e-6,1.2460033570806534e-6,1.2481198368686737e-6,3.8472974898483426e-9,3.3393669388140793e-9,4.5059972790009025e-9 +LookupCoin/4/4/1671,1.2640368508926e-6,1.2631681290280244e-6,1.2647631915353857e-6,2.7220001453072447e-9,2.060557240441626e-9,3.562623101891194e-9 +LookupCoin/4/1/780,1.2467320568545286e-6,1.2460674218503655e-6,1.247393984755929e-6,2.2405242874037037e-9,1.84628520410837e-9,3.015582365848289e-9 +LookupCoin/4/3/1090,1.249454277289292e-6,1.2487201256804026e-6,1.250153270874042e-6,2.3967634350345406e-9,1.8621219105359725e-9,3.2506935402719697e-9 +LookupCoin/4/3/1948,1.2671580450166966e-6,1.266280956328182e-6,1.2681056459271303e-6,3.137467289633508e-9,2.451336924027001e-9,4.456970255193901e-9 +LookupCoin/4/1/884,1.2633043932278233e-6,1.262390142562315e-6,1.2642701688608693e-6,3.0508908878448442e-9,2.668516094865094e-9,3.581783581374332e-9 +LookupCoin/4/1/212,1.2595825026985178e-6,1.2578615143954295e-6,1.261179539701188e-6,5.688487998545077e-9,4.683201133986747e-9,6.745872398627344e-9 +LookupCoin/4/2/1734,1.2821196209722983e-6,1.2811722700824554e-6,1.283507566853e-6,3.755470616284377e-9,2.9697872904834218e-9,5.2651030954197406e-9 +LookupCoin/4/2/1432,1.2648565222952083e-6,1.2640631401303057e-6,1.265728931968658e-6,2.6998021749455992e-9,2.3272034486546956e-9,3.296158240395178e-9 +LookupCoin/4/4/1026,1.2596742238766096e-6,1.2581415204017064e-6,1.2608653731940624e-6,4.494793102385613e-9,3.642408885777473e-9,5.703083713079936e-9 +LookupCoin/4/2/268,1.233355567982698e-6,1.2325671919133414e-6,1.2353541730205757e-6,3.860276882933147e-9,1.8274918924694966e-9,7.40309481270045e-9 +LookupCoin/4/3/294,1.2533269075870097e-6,1.2521923088304496e-6,1.2556619208764189e-6,5.380180976445231e-9,3.0128641141324837e-9,1.0051813483556786e-8 +LookupCoin/4/3/179,1.2335605922757587e-6,1.2327187009437602e-6,1.2344707203678718e-6,3.0998223206150834e-9,2.4133857704444653e-9,4.242255219103207e-9 +LookupCoin/4/2/817,1.2584837012630395e-6,1.2576501619663458e-6,1.259306036276936e-6,2.8725332373141013e-9,2.4153351220539344e-9,3.489508939833649e-9 +LookupCoin/4/1/857,1.2583618488258463e-6,1.257631841143659e-6,1.2591316629916386e-6,2.518899020406613e-9,1.9931311736937553e-9,3.4780290379369583e-9 +LookupCoin/4/1/61,1.2269882267555677e-6,1.225793402424182e-6,1.2282628713809258e-6,4.2903312665804205e-9,3.6128701156627896e-9,5.3578656773142624e-9 +LookupCoin/4/2/500,1.2767209574095081e-6,1.2760907508186271e-6,1.277236407920572e-6,1.9039555407296722e-9,1.582860024107718e-9,2.411764610342152e-9 +LookupCoin/4/2/1138,1.2666787124858883e-6,1.2651332414005322e-6,1.268643697752686e-6,5.827780343772291e-9,4.54411280913828e-9,8.70357406024228e-9 +LookupCoin/4/3/569,1.2539476074507414e-6,1.2525647815919868e-6,1.2552698205592212e-6,4.767859320070877e-9,3.6223945891481234e-9,6.847014709146792e-9 +LookupCoin/4/1/829,1.2470683870916736e-6,1.2459029284079345e-6,1.2481308132445217e-6,3.816213645727349e-9,3.139642292025568e-9,4.6191836481465055e-9 +LookupCoin/4/4/1895,1.2750745962521363e-6,1.2741068365691494e-6,1.276019516538221e-6,3.1021454397692688e-9,2.540252396093476e-9,3.958867285210403e-9 +LookupCoin/4/2/147,1.2292920797907283e-6,1.2280872779774047e-6,1.2301175434237885e-6,3.130636181041268e-9,2.474843236094403e-9,4.180849823217478e-9 +LookupCoin/4/2/694,1.2525231425460175e-6,1.250931088158127e-6,1.2539469119223562e-6,5.232315488455619e-9,4.267087393564163e-9,6.469197734342586e-9 +LookupCoin/4/3/1251,1.275654095852841e-6,1.2745036701210345e-6,1.2769353858801519e-6,4.122433029110044e-9,3.5293988077576843e-9,5.321029389800074e-9 +LookupCoin/4/1/1135,1.2659303872237878e-6,1.2652240048281306e-6,1.2666507070967692e-6,2.4646542718332795e-9,1.90382267899826e-9,3.344640967271877e-9 +LookupCoin/4/2/934,1.2545594992044652e-6,1.2534277815586392e-6,1.2556180593130433e-6,3.421975676962756e-9,2.809437675247923e-9,4.722712286384977e-9 +LookupCoin/4/4/392,1.2436663440149698e-6,1.2428006447256707e-6,1.244700558752261e-6,3.1659960628926658e-9,2.6362102744319375e-9,3.743428175090666e-9 +LookupCoin/4/2/402,1.258307014576956e-6,1.2570224923005987e-6,1.259706246007779e-6,4.5473909356500424e-9,3.684035251009951e-9,5.50377920950641e-9 +LookupCoin/4/1/1759,1.264901276265316e-6,1.2641939053076416e-6,1.265917381362148e-6,2.7943574520924446e-9,2.0884682072184187e-9,3.844338466725823e-9 +LookupCoin/4/4/854,1.2783434915788928e-6,1.2773319218958052e-6,1.2793714721660433e-6,3.3184431842757996e-9,2.812775908265822e-9,4.159735533123082e-9 +LookupCoin/4/3/1374,1.258044712207174e-6,1.2569860154154048e-6,1.259135003960508e-6,3.6700088539635305e-9,3.1689491937764395e-9,4.297818754667379e-9 +LookupCoin/4/1/283,1.2438002563592681e-6,1.2416534116815977e-6,1.2455554281525005e-6,6.3065190184861354e-9,4.811306473463054e-9,8.356026273132514e-9 +LookupCoin/4/4/1432,1.270963016592164e-6,1.270458320925732e-6,1.2715721773066389e-6,1.870707862785424e-9,1.4410951783098801e-9,2.67598037817361e-9 +LookupCoin/4/1/100,1.2370536410975514e-6,1.235441383019558e-6,1.238498443738211e-6,5.13476732032314e-9,4.055195938718297e-9,6.67950433483119e-9 +LookupCoin/4/2/1863,1.2782166251462652e-6,1.2773024218129996e-6,1.2792614907638668e-6,3.2092692423663556e-9,2.6957678623040476e-9,3.799721599969248e-9 +ValueContains/1941/0,1.0447421733346114e-6,1.042791763185493e-6,1.0462471975163973e-6,5.689955679309607e-9,4.261122281900713e-9,7.558664381265046e-9 +ValueContains/2000/0,1.0425614532957985e-6,1.0418502073742308e-6,1.0433541756558467e-6,2.6377572354071168e-9,2.2331408262496758e-9,3.339543526864987e-9 +ValueContains/0/0,1.0352241874952619e-6,1.0344077611050406e-6,1.0361814960147387e-6,2.9435613851071588e-9,2.3026170693474157e-9,4.0820141627369115e-9 +ValueContains/1377/0,1.0314768548952726e-6,1.0301374859293949e-6,1.0327992598673402e-6,4.341147297666407e-9,3.6860468232343225e-9,4.966237615241755e-9 +ValueContains/1474/0,1.036091300482452e-6,1.0345516627743029e-6,1.0377100887408548e-6,5.264242944964152e-9,4.45551537632903e-9,6.284658694121405e-9 +ValueContains/865/0,1.0312506936145905e-6,1.03048038228762e-6,1.0321955933713683e-6,2.9767044126692546e-9,2.548448393318469e-9,3.47496352328017e-9 +ValueContains/424/0,1.035095038647676e-6,1.0337581923288471e-6,1.0366788978858052e-6,4.803648834615479e-9,4.045263765294875e-9,5.668341810667094e-9 +ValueContains/1261/0,1.0352299836119575e-6,1.0343124357688695e-6,1.0362756620280145e-6,3.3762201619220386e-9,2.7547233255871196e-9,5.023183195766623e-9 +ValueContains/709/0,1.0281402725264013e-6,1.0272540348837455e-6,1.028999259349732e-6,2.857896399754783e-9,2.437064563624699e-9,3.5620370432418787e-9 +ValueContains/473/0,1.0373974163197718e-6,1.0360825842665552e-6,1.0389048162369022e-6,4.773743692571427e-9,4.031541101629912e-9,5.805617954584377e-9 +ValueContains/1635/0,1.0317553366059756e-6,1.0299817369710395e-6,1.0336547133537503e-6,6.170188161661942e-9,5.204729937600441e-9,7.358966268733104e-9 +ValueContains/635/0,1.0244588211511957e-6,1.0232720837137958e-6,1.0257673359170711e-6,4.266735711357054e-9,3.675054040100601e-9,5.001578077003953e-9 +ValueContains/305/0,1.032625530770953e-6,1.0299450937871901e-6,1.0356379588149998e-6,9.129015475799432e-9,8.296054524511257e-9,1.0208454410028952e-8 +ValueContains/186/0,1.0290503420360945e-6,1.027998853714287e-6,1.0302749117491732e-6,3.67710186162807e-9,3.1304864702464144e-9,4.332688445674818e-9 +ValueContains/1384/0,1.0312129325402292e-6,1.0298181192383907e-6,1.032537069483042e-6,4.492530872445812e-9,2.8487442117503185e-9,7.329261206197325e-9 +ValueContains/1635/0,1.033638141575145e-6,1.032331730916693e-6,1.0350989848938772e-6,4.4601755113453045e-9,3.548426645344805e-9,5.631919022244787e-9 +ValueContains/1753/0,1.0322324279172035e-6,1.0313587467817661e-6,1.0338942593237838e-6,3.9825537223043495e-9,2.4709636504729573e-9,7.61930474457333e-9 +ValueContains/717/0,1.0274673936294322e-6,1.0263651313224253e-6,1.02899225129232e-6,4.357958544670977e-9,3.143692383064033e-9,5.795141446768529e-9 +ValueContains/1067/0,1.0352121458382532e-6,1.0336672815227641e-6,1.0367108862403865e-6,5.227459611525177e-9,4.308487658451906e-9,6.340861887480351e-9 +ValueContains/699/0,1.0327414165011e-6,1.0322049083333306e-6,1.0333697350753706e-6,1.918058688915664e-9,1.6139432687006484e-9,2.5191881908586832e-9 +ValueContains/1514/0,1.0356120320799818e-6,1.0345018372729676e-6,1.0367530956495821e-6,3.904090530309525e-9,3.236010328069612e-9,4.792635001442734e-9 +ValueContains/492/0,1.0320438181468604e-6,1.0298608555978071e-6,1.034386246407094e-6,7.881016759899177e-9,7.014355347785797e-9,8.899765656092366e-9 +ValueContains/1422/0,1.0337855474982016e-6,1.0327072060198415e-6,1.0349017887333833e-6,3.6117770480750907e-9,3.002930084339793e-9,4.46269791174139e-9 +ValueContains/554/0,1.0306843097583927e-6,1.0298166147611878e-6,1.0318728618862626e-6,3.5154552416503234e-9,2.9427443975533853e-9,4.494038472106789e-9 +ValueContains/1846/0,1.0321557664794201e-6,1.0308391679850718e-6,1.0333542409469713e-6,4.028120233600354e-9,3.398745956101516e-9,4.9373330863906126e-9 +ValueContains/258/0,1.0338143439324888e-6,1.0328854205133798e-6,1.0347564324416647e-6,3.2813423402702563e-9,2.66956031895511e-9,4.412907055434224e-9 +ValueContains/1064/0,1.0381925880119778e-6,1.0371708771936139e-6,1.039160043253698e-6,3.273410012040961e-9,2.810140435778958e-9,3.974916652965863e-9 +ValueContains/1615/0,1.0336027224251062e-6,1.0328561537166904e-6,1.034470328474874e-6,2.8109593161857493e-9,2.293919606686719e-9,3.3734944235537014e-9 +ValueContains/75/0,1.0311940285873582e-6,1.0301180861791524e-6,1.0325193015677028e-6,4.239301438054663e-9,3.420020816528398e-9,5.340830115730067e-9 +ValueContains/1049/0,1.0340956951959538e-6,1.0323589556734182e-6,1.0355333822747506e-6,5.573165533245389e-9,5.012466149280473e-9,6.339286845125182e-9 +ValueContains/1936/0,1.0329505914807513e-6,1.031861814782581e-6,1.0339383799912962e-6,3.5905588849556734e-9,3.10163769774018e-9,4.2493437454608126e-9 +ValueContains/996/0,1.0295086136838665e-6,1.0282409596071932e-6,1.0309184238856502e-6,4.588093770019802e-9,3.836968381495649e-9,5.538111471301541e-9 +ValueContains/1911/0,1.0312030203887918e-6,1.0298948140546983e-6,1.0325122303324259e-6,4.355354127609901e-9,3.850497670279506e-9,4.973465662437733e-9 +ValueContains/825/0,1.0319708241006903e-6,1.030402530780415e-6,1.0331698183394545e-6,4.351254871959645e-9,3.605393301015765e-9,5.410225735742536e-9 +ValueContains/1817/0,1.0336764182230356e-6,1.032017204101376e-6,1.0352757396096728e-6,5.538630690935984e-9,4.826437975064421e-9,6.459273466294702e-9 +ValueContains/1392/0,1.032823044024764e-6,1.0310431688913813e-6,1.034438187862574e-6,5.979960250781161e-9,5.118740237325688e-9,7.0022372492200456e-9 +ValueContains/264/0,1.0340645101413139e-6,1.0330458439549499e-6,1.036398401748361e-6,5.172048322004471e-9,3.0310374485932254e-9,9.848527301486744e-9 +ValueContains/1039/0,1.0316281193781628e-6,1.030420373088009e-6,1.0328381339811856e-6,4.199412392077724e-9,3.588804827683369e-9,4.97480028419002e-9 +ValueContains/1999/0,1.0358450359760332e-6,1.0344867670120996e-6,1.037217359550089e-6,4.643417324607884e-9,3.9534160429183274e-9,5.530535126440061e-9 +ValueContains/1891/0,1.031372799891094e-6,1.0305861039911334e-6,1.0320244421655545e-6,2.493570826167633e-9,2.0289181603329556e-9,3.1360948865642228e-9 +ValueContains/82/0,1.0384834574119357e-6,1.0365521891964691e-6,1.0403052347267773e-6,6.099398309520228e-9,5.586209800946584e-9,6.782742508661545e-9 +ValueContains/1370/0,1.0314750788731906e-6,1.0305175088765723e-6,1.0325678544700702e-6,3.4137939080778526e-9,2.8609839522877448e-9,4.325358792947334e-9 +ValueContains/716/0,1.032045132428243e-6,1.0309993108783801e-6,1.0332269929625547e-6,3.740644362609707e-9,3.195111823851123e-9,4.480682755641185e-9 +ValueContains/700/0,1.0301039614271862e-6,1.028595934184355e-6,1.032083866439612e-6,6.011587045042245e-9,5.263724848908924e-9,6.977805315500248e-9 +ValueContains/1875/0,1.027725272406908e-6,1.0263798717708292e-6,1.028824191775566e-6,4.106263791599006e-9,3.325703732273969e-9,5.063798331431012e-9 +ValueContains/530/0,1.0352465938845614e-6,1.03420231411926e-6,1.0361949612765253e-6,3.3299733655500005e-9,2.467237583434573e-9,4.643127487312056e-9 +ValueContains/170/0,1.0334170072630892e-6,1.0322434012897569e-6,1.0345125052016114e-6,3.874470828482491e-9,3.4168256716150917e-9,4.467670582722164e-9 +ValueContains/1185/0,1.0319539045060614e-6,1.0308467164320044e-6,1.0332577879618961e-6,4.3355051954364216e-9,3.833431932326372e-9,5.003172701424347e-9 +ValueContains/814/0,1.0308134150317023e-6,1.0296536340651413e-6,1.0320623263682111e-6,4.1531150629460056e-9,3.6052736094646756e-9,4.878190069059782e-9 +ValueContains/1984/0,1.028113410885211e-6,1.0264860640528122e-6,1.0299098148342446e-6,5.708548209151425e-9,4.846825563787354e-9,6.6643375433313495e-9 +ValueContains/669/0,1.0340962808791444e-6,1.0331827678966246e-6,1.0349730868212269e-6,3.198917212067823e-9,2.5490816717548552e-9,4.2735002989324484e-9 +ValueContains/1102/0,1.0338843106790005e-6,1.0329366960275205e-6,1.034779667427811e-6,2.974443401399401e-9,2.4879159364585146e-9,3.675720676958192e-9 +ValueContains/1590/0,1.0294794078386331e-6,1.028630671679175e-6,1.0303046191250964e-6,2.7596801914996854e-9,2.346187497938868e-9,3.233817443336391e-9 +ValueContains/99/0,1.0284287385143561e-6,1.0266979624823682e-6,1.0303039467910547e-6,5.969208006371639e-9,4.915741151362058e-9,7.477451147799291e-9 +ValueContains/423/0,1.0300993452466852e-6,1.0289844779056522e-6,1.0312866565200198e-6,3.718189127811978e-9,3.011102755182195e-9,5.4128946691379035e-9 +ValueContains/193/0,1.031390775521728e-6,1.0298985162193364e-6,1.0328307112171867e-6,4.853466157538045e-9,4.158356785477645e-9,5.5830633952021645e-9 +ValueContains/1957/0,1.0401361939962572e-6,1.039396072249332e-6,1.0409030272416313e-6,2.413855772123666e-9,1.9143540859664146e-9,3.169442953554663e-9 +ValueContains/293/0,1.0350257347253016e-6,1.0337035842484375e-6,1.0367231966163863e-6,5.0742533975307494e-9,4.105744558214825e-9,6.677882352515618e-9 +ValueContains/1711/0,1.0324667286547402e-6,1.0309139176554205e-6,1.0337603497485791e-6,4.5925002505575475e-9,3.5410363216237602e-9,6.255657953845805e-9 +ValueContains/647/0,1.0322096521536468e-6,1.030463227084045e-6,1.0340986207959736e-6,6.165677997901483e-9,5.0033891134584645e-9,8.19183423649204e-9 +ValueContains/313/0,1.0372158007684301e-6,1.0360143695978234e-6,1.0382816144315289e-6,3.834586194106013e-9,3.326299072926265e-9,4.562952711459421e-9 +ValueContains/1636/0,1.0367986323574438e-6,1.035712437781131e-6,1.0378357200293078e-6,3.5090542608755702e-9,2.9070523619955608e-9,4.273691450318376e-9 +ValueContains/448/0,1.0391905857140236e-6,1.0381687843081225e-6,1.0401536894425915e-6,3.3913517569840634e-9,2.836626510647566e-9,4.172292870919356e-9 +ValueContains/1260/0,1.0284489768956748e-6,1.026805884893024e-6,1.030180652863061e-6,5.421037948348187e-9,3.6837042186168016e-9,8.909389705369903e-9 +ValueContains/568/0,1.0297453580482521e-6,1.0282538437625392e-6,1.0311632598880666e-6,4.861962857519071e-9,3.8536494120384384e-9,5.891240903576745e-9 +ValueContains/50/0,1.03784414097314e-6,1.036480390594479e-6,1.039079941505552e-6,4.417360076270122e-9,3.690109990813249e-9,5.352797810777771e-9 +ValueContains/1761/0,1.0329948059865941e-6,1.0316547268239406e-6,1.034927551366189e-6,5.294194610203924e-9,4.113263092438888e-9,6.68644420365378e-9 +ValueContains/1499/0,1.035041848317274e-6,1.0332078172893973e-6,1.0375387857034041e-6,7.135902285025929e-9,6.267642472768021e-9,8.28132773156414e-9 +ValueContains/729/0,1.0358017939806733e-6,1.0340828231374197e-6,1.0375130545725226e-6,5.582454270040397e-9,4.885214352739172e-9,6.565322360842006e-9 +ValueContains/1671/0,1.03421937151362e-6,1.0330889707333147e-6,1.0352856224988946e-6,3.604243391531333e-9,2.9904394463279543e-9,4.544453657128622e-9 +ValueContains/780/0,1.0321349874004e-6,1.031478585210874e-6,1.032724739023848e-6,2.181958076157916e-9,1.7281644207901732e-9,2.9642243631047574e-9 +ValueContains/1090/0,1.0339962626675104e-6,1.032873624711856e-6,1.0349052998346714e-6,3.525924357376471e-9,2.7773011206960774e-9,4.674650797551434e-9 +ValueContains/1948/0,1.0352134666503138e-6,1.0334550498635988e-6,1.036728257291102e-6,5.250930165288056e-9,4.335100854807073e-9,6.180366578156374e-9 +ValueContains/884/0,1.0303579257464584e-6,1.0290462492539398e-6,1.0316998229769883e-6,4.454752117181406e-9,3.911289823495434e-9,5.136639951957465e-9 +ValueContains/212/0,1.0323683566859146e-6,1.0317399242672812e-6,1.033097341334856e-6,2.3801616889705275e-9,1.9886956233024114e-9,2.9525324799731748e-9 +ValueContains/1734/0,1.0387601918939035e-6,1.0376603572173882e-6,1.0397063074644166e-6,3.4132350071723286e-9,2.803362704130945e-9,4.410217626866615e-9 +ValueContains/1432/0,1.031244694594474e-6,1.0296942770458606e-6,1.032751257628825e-6,5.1008530591588415e-9,4.468666131213822e-9,5.900340335328896e-9 +ValueContains/1026/0,1.0326530061105472e-6,1.0314747406559193e-6,1.0341190420802081e-6,4.3595639057941344e-9,3.465003035257553e-9,5.686398756148966e-9 +ValueContains/268/0,1.0365548477374105e-6,1.0352619794566402e-6,1.0381530897222977e-6,4.852289469628966e-9,4.03820356306166e-9,5.7308966541108464e-9 +ValueContains/294/0,1.0297861493215372e-6,1.0289888274072617e-6,1.0306681873830758e-6,2.889533534663054e-9,2.440290637170621e-9,3.451774661471921e-9 +ValueContains/179/0,1.0313423436031545e-6,1.030034311273145e-6,1.0327244782632449e-6,4.2138097608022834e-9,3.5200582739923127e-9,5.3666590036130015e-9 +ValueContains/817/0,1.0376092352028544e-6,1.0367621284306299e-6,1.0384861703235144e-6,2.866913031512006e-9,2.412425892458141e-9,3.4400379740669897e-9 +ValueContains/857/0,1.0403683904362801e-6,1.0391352430856647e-6,1.0413099916775512e-6,3.576929121184069e-9,2.728284034891952e-9,4.608781937145978e-9 +ValueContains/61/0,1.0281692225937836e-6,1.0264201082725256e-6,1.029844847133887e-6,5.7363530803220764e-9,5.107755227342514e-9,6.584467977903479e-9 +ValueContains/500/0,1.0359667984976142e-6,1.0345097210403042e-6,1.0373336448524324e-6,4.7679219736635735e-9,3.862722508313676e-9,5.810005931691734e-9 +ValueContains/1138/0,1.0319355389850023e-6,1.030840682959532e-6,1.0330256479056708e-6,3.6846740353838744e-9,3.0699066910589907e-9,4.396926386181389e-9 +ValueContains/569/0,1.0258057501347023e-6,1.0250082797054677e-6,1.0270118422135517e-6,3.2977688397356063e-9,2.521261764602551e-9,4.495000455621684e-9 +ValueContains/829/0,1.0334615371625688e-6,1.032783719018781e-6,1.0342556059899147e-6,2.582715750630929e-9,2.1830974873246057e-9,3.187960352692512e-9 +ValueContains/1895/0,1.0333375535256732e-6,1.0320574879280496e-6,1.034786255340413e-6,4.467869279077104e-9,3.8151563695767975e-9,5.332189450986526e-9 +ValueContains/147/0,1.035017690027508e-6,1.0337829905375666e-6,1.0364016339265706e-6,4.298249700805319e-9,3.772599456691544e-9,5.087290321705312e-9 +ValueContains/694/0,1.0369009139699031e-6,1.0355496499814476e-6,1.0381859294380973e-6,4.342176626655082e-9,3.4154988473345516e-9,5.984567048351332e-9 +ValueContains/1251/0,1.0353092636395324e-6,1.0335833474884157e-6,1.0372990439081246e-6,6.091976415400514e-9,4.95643018928792e-9,7.083298935923365e-9 +ValueContains/1135/0,1.0354127123251889e-6,1.0340914111554943e-6,1.0364176382748475e-6,3.762388930727781e-9,2.8661650053151374e-9,5.1860063530909444e-9 +ValueContains/934/0,1.0316621524799316e-6,1.0305355577862861e-6,1.0329235170180913e-6,4.0627102115650735e-9,3.3019164464170306e-9,5.263765988840884e-9 +ValueContains/392/0,1.0292258353292299e-6,1.0282157069752898e-6,1.03047133355062e-6,3.9340202000457775e-9,2.9479884290776317e-9,5.415721761665777e-9 +ValueContains/402/0,1.0352639166612367e-6,1.033360907307131e-6,1.036943811117385e-6,5.975358707830939e-9,5.2397638493052494e-9,7.016999871013709e-9 +ValueContains/1759/0,1.0299042246171666e-6,1.029115205127161e-6,1.0307557190366985e-6,2.738858080643268e-9,2.2363025456099074e-9,3.4203499393537062e-9 +ValueContains/854/0,1.0354362890400527e-6,1.0340823086016756e-6,1.0368340901513667e-6,4.718212356512183e-9,4.285512180535764e-9,5.3372915793635316e-9 +ValueContains/1374/0,1.0264366463831676e-6,1.0247413437926903e-6,1.0286437591469712e-6,6.491231297121427e-9,5.694680908730278e-9,7.65474603635969e-9 +ValueContains/283/0,1.0348986826355353e-6,1.0336986128162537e-6,1.0362325440978071e-6,4.151492625924201e-9,3.4352526814925647e-9,5.205258255513803e-9 +ValueContains/1432/0,1.030596427428761e-6,1.0293114500951443e-6,1.0338315194135444e-6,6.451675697611216e-9,3.01929425911696e-9,1.1370621483519228e-8 +ValueContains/100/0,1.0404227453016547e-6,1.038894762872916e-6,1.0421448968680177e-6,5.560446869328269e-9,4.810463661368125e-9,6.750813643059653e-9 +ValueContains/1863/0,1.0305023817652e-6,1.0292446251093266e-6,1.0319959833102474e-6,4.630689367154495e-9,3.805746282021505e-9,5.683025487195141e-9 +ValueContains/440/418,5.124608265110343e-5,5.121662498658187e-5,5.1313432092545874e-5,1.456975160027558e-7,8.078090278772361e-8,2.874893215241633e-7 +ValueContains/959/241,3.2187985144643e-5,3.215953788773676e-5,3.2225901626593526e-5,1.1233521488047495e-7,9.194681822905348e-8,1.4298544715655645e-7 +ValueContains/62/45,4.397472460714193e-6,4.393633987668054e-6,4.401971139388549e-6,1.3843320495833797e-8,1.1662740603971567e-8,1.6431695748073883e-8 +ValueContains/532/334,4.132596474873808e-5,4.126977054780335e-5,4.139240395789289e-5,2.0705666543231704e-7,1.6245164063573684e-7,2.7136213782863834e-7 +ValueContains/277/265,2.9922198103675184e-5,2.9840954113281517e-5,3.0005270518255418e-5,2.7829721612984116e-7,2.485425733401445e-7,3.1146930860966186e-7 +ValueContains/779/499,6.435905100932346e-5,6.431697836436892e-5,6.441829506867272e-5,1.7446946675420912e-7,1.3730187662202605e-7,2.3611089540901877e-7 +ValueContains/147/75,8.094158609388426e-6,8.068494494439661e-6,8.106740760057515e-6,5.7144385277007864e-8,2.6920762367325814e-8,9.843102469282254e-8 +ValueContains/200/129,1.3403010190797982e-5,1.330449133420971e-5,1.3479255606649119e-5,2.809259741349398e-7,2.642424454037957e-7,2.9861269385582555e-7 +ValueContains/644/255,3.2239379639922364e-5,3.222390798105524e-5,3.225244528001604e-5,4.77210502513209e-8,3.92327522693193e-8,6.104427118196171e-8 +ValueContains/525/326,3.98243922096496e-5,3.9723263959152e-5,3.990580687000382e-5,3.096047387659666e-7,2.4949772782114314e-7,3.7511259148706e-7 +ValueContains/663/609,7.683179991120193e-5,7.670031655630136e-5,7.697826638508496e-5,4.5732275624304214e-7,3.7534991578423603e-7,5.975642415811019e-7 +ValueContains/98/7,1.6641666082416323e-6,1.6614701189414336e-6,1.6669461667037015e-6,8.674081600127239e-9,7.573022745769889e-9,1.0023597904583236e-8 +ValueContains/593/75,9.773163407330848e-6,9.749955911810395e-6,9.79832056595724e-6,8.234181871325186e-8,6.822238405172775e-8,1.0503492677994891e-7 +ValueContains/445/388,4.6225284652733546e-5,4.616790846501289e-5,4.627747176965855e-5,1.8243279318318453e-7,1.611386153182902e-7,2.1232906791027298e-7 +ValueContains/376/7,1.665285771232663e-6,1.6632885744422406e-6,1.6675532186531774e-6,7.555966727300541e-9,5.9447156342109584e-9,9.35955331937163e-9 +ValueContains/348/273,3.20293238850694e-5,3.185657688216304e-5,3.2154085152491995e-5,4.904776590377994e-7,3.6877012202359e-7,6.624543272418776e-7 +ValueContains/240/237,2.659231221148835e-5,2.6576195492906654e-5,2.660850379749961e-5,5.383677167204428e-8,4.5207037125225765e-8,6.668856000158431e-8 +ValueContains/858/724,9.233357016874159e-5,9.228918203602922e-5,9.24221922732988e-5,2.099542158701349e-7,1.0121101162781136e-7,4.0539444489246285e-7 +ValueContains/984/212,2.8015644999088575e-5,2.7986444274700856e-5,2.8048123682805462e-5,1.0964644326570426e-7,9.423895857863667e-8,1.3102079726665507e-7 +ValueContains/198/153,1.670027589554966e-5,1.6621620692137128e-5,1.6786012100481266e-5,2.839358323036496e-7,2.6521423910193036e-7,3.032599778637793e-7 +ValueContains/471/217,2.6373940437595213e-5,2.6348802580465075e-5,2.6400677968886287e-5,8.282260378832942e-8,6.569708326542025e-8,1.0104453068648504e-7 +ValueContains/56/13,1.9470219364727644e-6,1.9376770065708476e-6,1.9575160555741213e-6,3.352702963201879e-8,2.8263997777512146e-8,3.768871669303985e-8 +ValueContains/180/106,1.1518349400132193e-5,1.1504657398179447e-5,1.152992394021699e-5,4.354404826278933e-8,3.69387926123169e-8,5.429891723990847e-8 +ValueContains/46/1,1.1498489338043937e-6,1.1475025280850195e-6,1.1517576893534225e-6,7.062211906633986e-9,5.708747934945928e-9,8.6601132742011e-9 +ValueContains/640/347,4.179714667455943e-5,4.162857277708983e-5,4.1940547575002724e-5,5.558910854664858e-7,4.3644924229607986e-7,6.566270797906303e-7 +ValueContains/663/619,7.766289176536591e-5,7.756396824653455e-5,7.77911067330175e-5,3.8282945280389045e-7,2.938179063431946e-7,5.337306978952537e-7 +ValueContains/628/452,5.760172067041644e-5,5.751249113310829e-5,5.7701165420770955e-5,2.969874045794228e-7,2.542258102171147e-7,3.7595972968457167e-7 +ValueContains/57/48,4.640701091541787e-6,4.626116205011191e-6,4.65709266684345e-6,5.055878793430391e-8,4.4553695011967916e-8,5.7486668783030645e-8 +ValueContains/62/3,1.2709231135757182e-6,1.2689513824500562e-6,1.2724232631781227e-6,6.086560045658361e-9,4.559192201324222e-9,8.295184357941476e-9 +ValueContains/616/575,7.065101797578831e-5,7.056256753395007e-5,7.0736711470661e-5,2.965767279404794e-7,2.542819336078616e-7,3.4247667309009697e-7 +ValueContains/535/218,2.6254756392837704e-5,2.623006087125447e-5,2.6277736550695326e-5,8.065254372603139e-8,6.425857921113082e-8,1.0012826878856774e-7 +ValueContains/189/120,1.307312733600133e-5,1.3045997169902028e-5,1.3098256175711892e-5,8.941677465974236e-8,7.892368696724477e-8,1.017185698938515e-7 +ValueContains/110/105,1.0726285949584158e-5,1.0704426190700767e-5,1.0746550069460222e-5,7.136744782786834e-8,6.027118636300212e-8,8.269681974498756e-8 +ValueContains/613/479,6.176426111771538e-5,6.168489031810921e-5,6.185972314295496e-5,2.879602626725993e-7,2.1394620581655512e-7,4.320360350324086e-7 +ValueContains/340/78,9.927949222621944e-6,9.880793465300907e-6,9.9717710086523e-6,1.478856993882774e-7,1.1953062762875524e-7,1.848643341053891e-7 +ValueContains/22/20,2.3269560254860596e-6,2.321446775354728e-6,2.3324744330336048e-6,1.8799317568933045e-8,1.4172131265454375e-8,2.6036415067759217e-8 +ValueContains/88/36,3.7488502130868153e-6,3.737437958796251e-6,3.75995589632989e-6,3.778369779875885e-8,3.298253876691661e-8,4.266036218822141e-8 +ValueContains/135/29,3.5326348268392294e-6,3.5132672798256757e-6,3.5522965842051443e-6,6.289931111020898e-8,5.853813559887553e-8,6.860859887431776e-8 +ValueContains/505/361,4.345603055961267e-5,4.343083482661398e-5,4.3487835546788766e-5,9.596491986021481e-8,7.544486078455384e-8,1.2620989733433728e-7 +ValueContains/325/146,1.667534579517876e-5,1.6648722599066402e-5,1.6701390699118696e-5,9.009112087666133e-8,7.610849627669902e-8,1.0723640489569779e-7 +ValueContains/58/19,2.394105205911338e-6,2.3865705433051637e-6,2.4018048544896884e-6,2.5675714510366523e-8,2.2516843811376078e-8,3.024470511916364e-8 +ValueContains/746/32,4.556589219915828e-6,4.5363636951626325e-6,4.572668262350572e-6,6.059120332595823e-8,5.0210337086344715e-8,6.843071530046053e-8 +ValueContains/461/88,1.0329881717742086e-5,1.0281985547519271e-5,1.0370620887148102e-5,1.6041888558534014e-7,1.4384593538862362e-7,1.7922131752418615e-7 +ValueContains/632/48,6.05615333458462e-6,6.034195929090784e-6,6.078838165182399e-6,7.534388153749073e-8,6.156518850868723e-8,9.223725629105318e-8 +ValueContains/415/267,3.168645453400354e-5,3.165910456203491e-5,3.171751747667835e-5,9.730443523969321e-8,7.917883855073748e-8,1.3037077466259313e-7 +ValueContains/751/701,8.828639820688662e-5,8.805814402625668e-5,8.848831860680732e-5,6.90229521102344e-7,5.359407691502286e-7,9.295812923134455e-7 +ValueContains/343/108,1.2904300405021329e-5,1.2854368820845497e-5,1.2947343281198909e-5,1.605102422090976e-7,1.288258518185277e-7,1.8209378409935133e-7 +ValueContains/881/153,1.904709419702563e-5,1.896059233580226e-5,1.9138676865802236e-5,3.0988216798105637e-7,2.9230973710165587e-7,3.3072831600173147e-7 +ValueContains/961/658,8.362953590878233e-5,8.357049200167402e-5,8.367878481897651e-5,1.8815331656658752e-7,1.4388108623144213e-7,2.904144111161857e-7 +ValueContains/977/709,9.404334617177954e-5,9.382226029613604e-5,9.421330610109971e-5,6.498999661193747e-7,4.634390052860451e-7,9.696858966173425e-7 +ValueContains/404/280,3.2970636711696745e-5,3.2920169747105474e-5,3.303788859068598e-5,1.8155011882650774e-7,1.6108231079083424e-7,2.1771086103060773e-7 +ValueContains/269/147,1.626384356023769e-5,1.6196384597296893e-5,1.634765494076439e-5,2.4209134799741733e-7,1.930562630365899e-7,2.7952664081281615e-7 +ValueContains/503/424,5.250812892141422e-5,5.2412997514942757e-5,5.259235994196065e-5,3.0666040920124616e-7,1.363089575171616e-7,5.129020445892907e-7 +ValueContains/45/36,3.5902009026251396e-6,3.573411203190271e-6,3.603857224251136e-6,5.183956740123203e-8,4.5833459432726635e-8,5.8632807490500396e-8 +ValueContains/626/95,1.2115972940765067e-5,1.2102711094561373e-5,1.2130357538369148e-5,4.709765386438067e-8,4.189245102794501e-8,5.515913045489671e-8 +ValueContains/539/324,3.881013598683207e-5,3.876057662876274e-5,3.88565966500303e-5,1.5843611538269388e-7,1.394020498600433e-7,1.8611825091442583e-7 +ValueContains/723/4,1.469078053869706e-6,1.4675275231368764e-6,1.4705654265505366e-6,5.009419349987209e-9,4.258564738868786e-9,5.946000214129372e-9 +ValueContains/640/263,3.230361062995116e-5,3.213230064902143e-5,3.244343391921223e-5,5.211385269713293e-7,4.620783367957119e-7,5.794487548422854e-7 +ValueContains/420/18,2.8562401395581446e-6,2.852533472765334e-6,2.859868773954692e-6,1.2088659913158624e-8,1.006262123538761e-8,1.4839511079474936e-8 +ValueContains/675/425,5.409538032322959e-5,5.400657690839997e-5,5.417690574013157e-5,2.906706754712937e-7,2.5755676828323624e-7,3.243980482526096e-7 +ValueContains/500/177,2.1556589912292336e-5,2.14516992596497e-5,2.1651564160457852e-5,3.2752354499681855e-7,3.021019595259423e-7,3.4658304293974133e-7 +ValueContains/656/285,3.7258371624306585e-5,3.713589003513762e-5,3.733276487892977e-5,3.1395082113867575e-7,1.5004802228418778e-7,4.867929749139233e-7 +ValueContains/334/84,9.740648719885037e-6,9.7309997748127e-6,9.748600295022906e-6,3.1086898515740686e-8,2.5466430323732835e-8,3.8311052333484066e-8 +ValueContains/522/7,1.7593464994838185e-6,1.7565003115153804e-6,1.7625828981876795e-6,9.861467037181346e-9,8.940954205770626e-9,1.0954256525794419e-8 +ValueContains/68/41,4.337923028018763e-6,4.333884533414323e-6,4.342803932740207e-6,1.4408640156273755e-8,1.2112196458216799e-8,1.8107776025033116e-8 +ValueContains/979/624,8.01667450214178e-5,8.012286253451011e-5,8.020912507937899e-5,1.4416720573029487e-7,1.1367816928109606e-7,1.8206462934435496e-7 +ValueContains/872/719,9.318072330139519e-5,9.30460160189607e-5,9.331551821690305e-5,4.500996097767212e-7,4.0728164669556717e-7,5.136015225024845e-7 +ValueContains/894/143,1.801960960430182e-5,1.7954435844278038e-5,1.810826558948233e-5,2.419092487669504e-7,1.902164618443748e-7,3.069338479190731e-7 +ValueContains/102/15,2.1533858710065875e-6,2.1512227637525565e-6,2.1555349794209363e-6,7.427654886101584e-9,6.372496590313962e-9,8.698096342071278e-9 +ValueContains/887/25,3.801113437087085e-6,3.796782937867285e-6,3.8047528200347067e-6,1.344948675680006e-8,1.1348735645545828e-8,1.7828105920419547e-8 +ValueContains/730/45,5.8041302856016734e-6,5.786168235100013e-6,5.821324298073e-6,5.928442318207484e-8,5.124043255302579e-8,6.79630773539541e-8 +ValueContains/97/2,1.2167564796783545e-6,1.2150873177858804e-6,1.2184805419345076e-6,5.854643170931838e-9,5.2242863973636534e-9,6.5907997096195455e-9 +ValueContains/622/469,5.616906662306131e-5,5.601489654019036e-5,5.631263698667347e-5,5.23718638963392e-7,4.5038890385408777e-7,6.351506654167996e-7 +ValueContains/879/336,4.5089545277124656e-5,4.5016085892387153e-5,4.516076631858751e-5,2.4612732846163125e-7,2.23058976854204e-7,2.7524866680426367e-7 +ValueContains/45/38,3.762153254239151e-6,3.740981743131284e-6,3.7819645758289804e-6,6.837028092683635e-8,5.92566549779139e-8,7.992203373848832e-8 +ValueContains/129/37,4.0895105911816e-6,4.086733233028257e-6,4.091896306818116e-6,8.819939851060042e-9,7.308558173504844e-9,1.0942180156550078e-8 +ValueContains/963/26,3.795728090447244e-6,3.7921524977805585e-6,3.798847846113129e-6,1.1300956124669286e-8,9.748755272662963e-9,1.3806407626370543e-8 +ValueContains/597/323,4.114772600930412e-5,4.109649148265672e-5,4.120388056570997e-5,1.7748424640460474e-7,1.568800990868221e-7,2.0057932266186854e-7 +ValueContains/552/55,6.735782062588792e-6,6.727701933538449e-6,6.750640074816127e-6,3.3679433121776546e-8,2.2407556947388493e-8,5.88170933991135e-8 +ValueContains/105/74,7.364805824148798e-6,7.339158074056447e-6,7.398221465227015e-6,1.0175977313905928e-7,8.44272478619285e-8,1.1966662826995597e-7 +ValueContains/31/14,1.9994704441838307e-6,1.9928449521320734e-6,2.003905494107058e-6,1.7570810235538655e-8,1.3375409436675271e-8,2.2466336504267865e-8 +ValueContains/385/64,7.74805466417789e-6,7.721763284499517e-6,7.763966815744695e-6,6.777801251717017e-8,4.08171188026541e-8,9.882293596321499e-8 +ValueContains/673/353,4.6341838686586165e-5,4.6311212895047536e-5,4.637183492077027e-5,1.0506475600062532e-7,8.957734767280987e-8,1.2802278643185456e-7 +ValueContains/511/198,2.390855733761964e-5,2.38814495343931e-5,2.3948650874484645e-5,1.0946030684877236e-7,8.908085565499514e-8,1.4821892213027432e-7 +ValueContains/6/1,1.1317010161349713e-6,1.1309473551038157e-6,1.1326926646764181e-6,2.9719045155959497e-9,2.330364579245457e-9,4.155935093861412e-9 +ValueContains/822/771,9.768371059009083e-5,9.743452437032719e-5,9.788744456205933e-5,7.652001393400152e-7,6.300867238839192e-7,9.038849091147273e-7 +ValueContains/729/570,7.144081551631113e-5,7.136014757813718e-5,7.151969808320976e-5,2.7549152332783416e-7,2.402000682376105e-7,3.3906110415291587e-7 +ValueContains/39/11,1.7361726836287664e-6,1.7343794483442224e-6,1.737786568303321e-6,5.499572742184475e-9,4.581780266867155e-9,6.799201170053838e-9 +ValueContains/877/439,5.666896791063339e-5,5.656355691545918e-5,5.678011953960242e-5,3.690237325356119e-7,3.318919295959164e-7,4.3506485375326265e-7 +ValueContains/357/71,8.330962629694244e-6,8.302447542626354e-6,8.358270349621359e-6,9.032096341048718e-8,8.309040100225848e-8,1.031342953359206e-7 +ValueContains/339/68,8.116018986523433e-6,8.10523404400158e-6,8.125076079686777e-6,3.269468669415582e-8,2.615635577482908e-8,4.3638567661550455e-8 +ValueContains/715/340,4.176190505473497e-5,4.1708387255655204e-5,4.180405695636191e-5,1.5892239440176096e-7,1.1161723277904274e-7,2.0858682785502914e-7 +ValueContains/490/308,3.8197328872024964e-5,3.8168497880147454e-5,3.824387604303053e-5,1.231828395974745e-7,8.786983384532117e-8,1.8776318814002678e-7 +ValueContains/621/36,5.086173751509124e-6,5.067248383169797e-6,5.099064227905385e-6,5.0254896231555695e-8,3.491560361041745e-8,6.60132315763994e-8 +ValueContains/559/264,3.263061196347133e-5,3.258382583569215e-5,3.2698636619521704e-5,1.8501918747272185e-7,1.3868482559679668e-7,2.4541904337471965e-7 +ValueContains/830/742,9.49405056504984e-5,9.486552838808328e-5,9.504761681114998e-5,3.009106782028557e-7,2.2317349216305558e-7,3.7849006769252993e-7 +ValueContains/769/45,6.1834744887079476e-6,6.164280262236448e-6,6.198405423915789e-6,5.961556003014913e-8,4.610712304856478e-8,7.579600109532886e-8 +ValueContains/33/0,1.0338072487795843e-6,1.0327222018869905e-6,1.0347649874238654e-6,3.4609890218167838e-9,3.032977845929285e-9,4.047644936976311e-9 +ValueContains/546/409,4.92097780317542e-5,4.898356245425396e-5,4.934018771230623e-5,5.331126914550046e-7,3.6217613825586954e-7,7.60369503016606e-7 +ValueContains/107/71,7.676310738268547e-6,7.666508036223132e-6,7.687719636008446e-6,3.520546673996791e-8,2.6465024289759334e-8,5.093839436347889e-8 +ValueData/1941,8.387752262173192e-7,8.376686255838258e-7,8.400073735002663e-7,4.020454385764875e-9,3.470606263468371e-9,4.6752041166309065e-9 +ValueData/2000,8.322540195518193e-7,8.305743435611061e-7,8.338440124536787e-7,5.404071172923588e-9,4.306863735910936e-9,6.685655745878495e-9 +ValueData/0,8.31573393837921e-7,8.305671564639147e-7,8.329280726144281e-7,4.009153770714728e-9,3.3218857641415508e-9,4.789713248833575e-9 +ValueData/6885,8.29514842393769e-7,8.285383856877524e-7,8.306173625072766e-7,3.4743167183842895e-9,2.993824943684947e-9,4.1748381231296986e-9 +ValueData/8844,8.331476195088214e-7,8.324051165636244e-7,8.338341186226231e-7,2.438191546807027e-9,1.941849764379044e-9,2.9951261601870036e-9 +ValueData/8650,8.366578036420693e-7,8.35550800887162e-7,8.376391842048003e-7,3.338267136918771e-9,2.8949823719768726e-9,4.0143461508323256e-9 +ValueData/4664,8.418122696891194e-7,8.40700613296458e-7,8.426704575855601e-7,3.3930644835116215e-9,2.2932076888010547e-9,4.767064706463744e-9 +ValueData/6305,8.32492304460721e-7,8.313846767488099e-7,8.335616396811857e-7,3.7995765260849544e-9,3.207103155106856e-9,4.4528119843906335e-9 +ValueData/4254,8.350319411885833e-7,8.340854139054343e-7,8.357514429319573e-7,2.727464824562741e-9,2.230461192439293e-9,3.760810744245565e-9 +ValueData/6622,8.350405425148522e-7,8.338761271531292e-7,8.361803594194376e-7,3.9536164005531484e-9,3.178812800090736e-9,5.194382485302705e-9 +ValueData/6540,8.34332794282262e-7,8.333116001217547e-7,8.352917150961382e-7,3.2836096074058877e-9,2.7698266335726123e-9,3.9986996150825906e-9 +ValueData/1270,8.365463724163216e-7,8.359620443598711e-7,8.37225655405291e-7,2.1708725980955994e-9,1.741275617890801e-9,3.0723358950244392e-9 +ValueData/8540,8.409815364580344e-7,8.396697918376053e-7,8.424745205703655e-7,4.5515930054198356e-9,3.864155536239068e-9,5.390591453601316e-9 +ValueData/6510,8.392716815496086e-7,8.378374550756429e-7,8.406303065788314e-7,4.579801306484254e-9,3.759920711302845e-9,5.548214652049327e-9 +ValueData/5536,8.423654989235727e-7,8.408693850168714e-7,8.433620636504498e-7,3.938675709887304e-9,2.8070376211287653e-9,5.1897843673063815e-9 +ValueData/1635,8.385893749754568e-7,8.374280751825027e-7,8.398617220820674e-7,3.785805413815959e-9,3.253408379375065e-9,4.579918632882875e-9 +ValueData/1753,8.409021120843092e-7,8.393805110411337e-7,8.421971456346483e-7,4.8032077313522935e-9,3.755056666093694e-9,6.622344120588143e-9 +ValueData/5019,8.335625134669134e-7,8.32407353074573e-7,8.347710607133375e-7,4.018083860674284e-9,3.517263807477489e-9,4.647793376085316e-9 +ValueData/2134,8.401122036017365e-7,8.383608700143568e-7,8.416471977149004e-7,5.528733190366616e-9,4.51483061617216e-9,6.980519090018202e-9 +ValueData/4194,8.33292241623575e-7,8.321282013565772e-7,8.3456401864188e-7,4.107488449226073e-9,3.4630965240138083e-9,5.0850059435575865e-9 +ValueData/9084,8.356139951464328e-7,8.346254801235196e-7,8.366052021268458e-7,3.4498181857075116e-9,2.975555013127329e-9,4.048483887162339e-9 +ValueData/8364,8.375175382011173e-7,8.367279330852438e-7,8.381127388871311e-7,2.4332355878444734e-9,1.9991773636650093e-9,3.020278336783247e-9 +ValueData/9954,8.373226411796403e-7,8.361024817567919e-7,8.386233929091458e-7,4.44069868276324e-9,3.85771829896204e-9,5.116021442678933e-9 +ValueData/8310,8.388047039077717e-7,8.375584944535449e-7,8.398229796955824e-7,3.9169228322598055e-9,3.252727724712321e-9,5.0867510890898785e-9 +ValueData/7384,8.39841993411221e-7,8.379546196613622e-7,8.412325558373902e-7,5.456162725810785e-9,4.3541469710001696e-9,7.462510369440222e-9 +ValueData/4386,8.301009904872918e-7,8.294562414819147e-7,8.308735521056946e-7,2.3111670011305605e-9,1.94143246529015e-9,2.7954140063618506e-9 +ValueData/9576,8.3667925272833e-7,8.358636799563891e-7,8.374470539262934e-7,2.6926890900601303e-9,2.2720211887637413e-9,3.2621259284214814e-9 +ValueData/1615,8.364218240795162e-7,8.352173807837971e-7,8.374431689807868e-7,3.5234121483467313e-9,2.681563298451633e-9,4.6946047721539116e-9 +ValueData/1875,8.352023014420669e-7,8.342853656087835e-7,8.361405240348041e-7,3.1101227132521614e-9,2.4072751555360205e-9,4.5068970227212614e-9 +ValueData/2098,8.388958444663236e-7,8.376681717051945e-7,8.401282315340499e-7,4.113696626399191e-9,3.658549931706673e-9,4.742350771644683e-9 +ValueData/7744,8.398266499360501e-7,8.386029672759127e-7,8.41109848911013e-7,4.21864404056369e-9,3.5761151444053862e-9,5.104340611901284e-9 +ValueData/3984,8.419157577957931e-7,8.41304210462777e-7,8.425022896365757e-7,2.120647482361822e-9,1.6647273733427055e-9,2.8470709443673356e-9 +ValueData/3822,8.358104581912816e-7,8.347139639053743e-7,8.369173748677629e-7,3.780469750413172e-9,3.3698296242027956e-9,4.388236019750637e-9 +ValueData/9900,8.378043758320432e-7,8.370874075094684e-7,8.385563775974238e-7,2.446081799733024e-9,1.896867953109357e-9,3.266658948999801e-9 +ValueData/3634,8.344762388197288e-7,8.333884176581674e-7,8.354885395908894e-7,3.522452710390855e-9,2.5437556823120402e-9,5.3510925281183795e-9 +ValueData/4176,8.415502200051467e-7,8.405700337004257e-7,8.424037753511901e-7,3.220023157803172e-9,2.7757516631232756e-9,3.7130215644474817e-9 +ValueData/8976,8.324601172507377e-7,8.314184311338586e-7,8.336025764102034e-7,3.750395460724587e-9,3.0077318389983098e-9,4.997606953497009e-9 +ValueData/5195,8.324532554754436e-7,8.315343193196015e-7,8.334226112545619e-7,3.0463058908939722e-9,2.5848948386127766e-9,3.766680584328569e-9 +ValueData/5997,8.365567725045184e-7,8.353939195210685e-7,8.375233208849925e-7,3.829083435768043e-9,3.1480680888722656e-9,4.825609716608673e-9 +ValueData/5673,8.424262030743452e-7,8.411981112308312e-7,8.435268708809851e-7,4.117262552354002e-9,3.429719021938191e-9,5.025514315124536e-9 +ValueData/2870,8.366278539527911e-7,8.353542095371855e-7,8.376704537060956e-7,4.0912042751821355e-9,3.2945986510002754e-9,5.382870126171436e-9 +ValueData/5480,8.392537677420053e-7,8.380840451981039e-7,8.405808501846953e-7,4.3344666748576335e-9,3.81816194417312e-9,4.899004883640096e-9 +ValueData/2864,8.348026388901912e-7,8.338353878325827e-7,8.356921706417601e-7,2.9877535567747168e-9,2.419844138773851e-9,4.0486220967338086e-9 +ValueData/700,8.404414778321529e-7,8.39497280471034e-7,8.413703924312429e-7,3.093701967901761e-9,2.5779828745070615e-9,3.739522901298385e-9 +ValueData/9375,8.370834463044272e-7,8.358418508706125e-7,8.380123466730037e-7,3.7220681847226143e-9,3.0685992276164977e-9,4.6420747089375386e-9 +ValueData/5830,8.38780017135666e-7,8.370267017098541e-7,8.404221717245874e-7,5.967311311748044e-9,4.9882472201377384e-9,7.252755778135929e-9 +ValueData/7990,8.338220947350692e-7,8.324232287265252e-7,8.350276199234528e-7,4.291233338424656e-9,3.6991112472179096e-9,5.2369167046409795e-9 +ValueData/9480,8.329439245099394e-7,8.317173665699352e-7,8.342813001251117e-7,4.374561693486165e-9,3.777680316896052e-9,5.098191936338214e-9 +ValueData/4070,8.34373930668038e-7,8.323351633549734e-7,8.360623368587632e-7,6.253473554854086e-9,5.401920762979302e-9,8.171949426734792e-9 +ValueData/7936,8.351047831823975e-7,8.345660183335185e-7,8.357312913877325e-7,1.9897674473323784e-9,1.6273133964700012e-9,2.518573829226464e-9 +ValueData/5352,8.351668119052894e-7,8.343281559667683e-7,8.362960894154265e-7,3.3490874760544233e-9,2.7230079552229427e-9,4.3859056308964615e-9 +ValueData/5510,8.377285748061361e-7,8.36948773788004e-7,8.387137695082959e-7,2.7876188073474483e-9,2.2099531740589857e-9,3.404014390886362e-9 +ValueData/7950,8.328740324787229e-7,8.315784799218212e-7,8.341896767184285e-7,4.2688565605961065e-9,3.573447518123807e-9,5.221559814082403e-9 +ValueData/594,8.381000382748028e-7,8.373873992419389e-7,8.388585107443581e-7,2.5150159596132567e-9,2.124686313262623e-9,3.1219506021078784e-9 +ValueData/1692,8.376725040269819e-7,8.365737546841149e-7,8.385372680814671e-7,3.201457196798607e-9,2.5842218640780455e-9,4.522075895654974e-9 +ValueData/2316,8.383448166141738e-7,8.372885742115963e-7,8.394697354649611e-7,3.753779166872338e-9,3.2126295526346085e-9,4.3699063795463045e-9 +ValueData/5871,8.371559992685962e-7,8.362011171199473e-7,8.381197055090797e-7,3.386683759937313e-9,2.687476576372051e-9,4.219179793109144e-9 +ValueData/4981,8.377418995882392e-7,8.364121292539217e-7,8.387475403975099e-7,3.770172591089419e-9,3.306613201770207e-9,4.388658987507912e-9 +ValueData/1711,8.326619851790449e-7,8.31584480559957e-7,8.340143025074426e-7,4.068832408213994e-9,3.3483009758729117e-9,5.047294683033139e-9 +ValueData/1941,8.34420654982373e-7,8.33296536028821e-7,8.365066109085264e-7,4.703537367430274e-9,3.076495008910303e-9,8.07414991552736e-9 +ValueData/7199,8.325854020948367e-7,8.308856498644506e-7,8.347451269188973e-7,6.2757408369399914e-9,5.029059627224423e-9,9.093103431559232e-9 +ValueData/6544,8.395143237223777e-7,8.388009223150784e-7,8.400591071526046e-7,2.1928427190413032e-9,1.6772280987728755e-9,2.7416711433989424e-9 +ValueData/8960,8.357252383066144e-7,8.337595990205464e-7,8.378002793806224e-7,7.0971646222460524e-9,6.173896946948765e-9,8.585334198457132e-9 +ValueData/8820,8.382582274604227e-7,8.370296958284523e-7,8.391900469548001e-7,3.304747031660648e-9,2.5082513849019437e-9,4.472685382654789e-9 +ValueData/5112,8.359538965469061e-7,8.340256074730793e-7,8.375218938635833e-7,5.634474458083705e-9,4.207745573796549e-9,7.520509415030913e-9 +ValueData/2400,8.406256463414971e-7,8.399135612088387e-7,8.413697124033191e-7,2.408366999935758e-9,2.0373988195212507e-9,2.9388726084622506e-9 +ValueData/3522,8.423525034085027e-7,8.417620179138558e-7,8.438579085375574e-7,2.9799893770795812e-9,1.3514173911562318e-9,5.752330895015203e-9 +ValueData/7495,8.416950572881169e-7,8.412277412197716e-7,8.42175013977484e-7,1.6601823987704058e-9,1.3633579394695858e-9,2.2294025196325265e-9 +ValueData/729,8.386848923985363e-7,8.372054638681145e-7,8.401518798364648e-7,4.723894707305233e-9,4.035285656725761e-9,5.983409245379266e-9 +ValueData/8355,8.433896499502169e-7,8.421845735380779e-7,8.442691936033377e-7,3.581560019120775e-9,2.7069065063395356e-9,4.34612314907716e-9 +ValueData/1560,8.325979813593434e-7,8.317735269484078e-7,8.332711680206804e-7,2.5336042895971067e-9,1.9642864882029463e-9,3.321366905269596e-9 +ValueData/9810,8.382607731070009e-7,8.37402693374031e-7,8.389349214230364e-7,2.620427614756948e-9,2.0139474989398623e-9,3.5605109193646948e-9 +ValueData/7792,8.386520919083992e-7,8.375785006331599e-7,8.399311422119077e-7,3.8335408108746935e-9,3.197788323642262e-9,4.509474485836322e-9 +ValueData/1768,8.37177034800015e-7,8.355200143658817e-7,8.385781951493179e-7,5.696059148448666e-9,4.944666725932653e-9,6.435786359033507e-9 +ValueData/8904,8.37561944754926e-7,8.358270903349553e-7,8.391227184328719e-7,5.734927722091681e-9,5.125705496012834e-9,6.5508645430592855e-9 +ValueData/5202,8.3884293186121e-7,8.376477955599056e-7,8.402992019363483e-7,4.481004399037952e-9,3.5873648067622646e-9,5.420102259022315e-9 +ValueData/2864,8.40807004743901e-7,8.398791171715837e-7,8.416920670848748e-7,3.0275542319834136e-9,2.4545506709474107e-9,3.780340457296787e-9 +ValueData/7182,8.369635335017396e-7,8.360299799213076e-7,8.378068854603287e-7,2.9869973933931754e-9,2.5611399543153348e-9,3.496732958365708e-9 +ValueData/7504,8.356224995372052e-7,8.34468006785183e-7,8.368345168327047e-7,4.2318932533542994e-9,3.4529268784708976e-9,5.1218370440289145e-9 +ValueData/8232,8.367310527121842e-7,8.354750742589766e-7,8.381825868430217e-7,4.502714393308228e-9,3.907530364548524e-9,5.213586145565488e-9 +ValueData/4117,8.329982103466795e-7,8.312891431120254e-7,8.344881946662451e-7,5.388682825972106e-9,4.596259057024854e-9,6.2857283079668985e-9 +ValueData/9804,8.320745740627178e-7,8.30549311744676e-7,8.332566524130799e-7,4.522624601862358e-9,3.505739441552438e-9,5.9028544664321545e-9 +ValueData/6856,8.406889551780186e-7,8.394190297526501e-7,8.418911384286505e-7,4.207763430544847e-9,3.6494541844959566e-9,4.907526724459514e-9 +ValueData/3660,8.351936340212622e-7,8.34416030572947e-7,8.358269980294925e-7,2.4935077036615e-9,1.7741364739057732e-9,3.729635705740102e-9 +ValueData/2000,8.409432284106983e-7,8.40417934972006e-7,8.414756878735404e-7,1.8062092738947183e-9,1.4503154062496423e-9,2.2297719227522914e-9 +ValueData/2276,8.360939172543648e-7,8.354818464050811e-7,8.366954552444591e-7,2.051197288227619e-9,1.650130275824902e-9,2.701629763594077e-9 +ValueData/6828,8.381476742374998e-7,8.373071884940311e-7,8.398144469590848e-7,3.787382485161911e-9,2.5008391649244827e-9,6.832654612270623e-9 +ValueData/2487,8.38208535156962e-7,8.372724043665353e-7,8.389757242876525e-7,2.8177395190889856e-9,2.272123498120574e-9,3.7078569845391026e-9 +ValueData/9475,8.413053588094756e-7,8.403418208016074e-7,8.422703191277657e-7,3.2071357987514714e-9,2.809217927142389e-9,3.856421519957299e-9 +ValueData/2499,8.370817111893778e-7,8.36076146943979e-7,8.380402138977979e-7,3.2955457149092334e-9,2.6854298497797775e-9,4.085080597511424e-9 +ValueData/4164,8.344288899488048e-7,8.338899463176719e-7,8.350177795686771e-7,1.8947226063671535e-9,1.5461681416835568e-9,2.4002180161987975e-9 +ValueData/1251,8.36351867693371e-7,8.352962048254115e-7,8.374958825720117e-7,3.972930848865848e-9,3.331460145885729e-9,5.174365866694995e-9 +ValueData/7945,8.368397645610792e-7,8.353202405825947e-7,8.382007276500436e-7,4.926855468639106e-9,4.250448494055312e-9,6.196316804995193e-9 +ValueData/1868,8.408454076609571e-7,8.396328474578161e-7,8.418492609746534e-7,3.703854599156288e-9,3.0605480258118053e-9,5.19967315509138e-9 +ValueData/1960,8.361057748327629e-7,8.35131160229261e-7,8.368536603642068e-7,2.8544724109148102e-9,2.135551075078309e-9,4.285767796982552e-9 +ValueData/5226,8.343183036041265e-7,8.32770149992052e-7,8.354898921556298e-7,4.492661842348072e-9,3.73670007266658e-9,5.5591174232754295e-9 +ValueData/3518,8.393781858382187e-7,8.383410042630874e-7,8.402695949107576e-7,3.2619700141869255e-9,2.8677663582665026e-9,3.770802078364234e-9 +ValueData/2562,8.370777515311767e-7,8.357240976106221e-7,8.38179350989685e-7,4.113977216035361e-9,3.3791429619017117e-9,5.251695159806253e-9 +ValueData/5496,8.382060782117956e-7,8.375323802162929e-7,8.38959264848197e-7,2.4090355145714073e-9,1.973936795723988e-9,3.391919039493966e-9 +ValueData/9339,8.34795044054002e-7,8.329299730423787e-7,8.364161999822072e-7,5.7763398579437784e-9,4.766022675259715e-9,6.9076581153198704e-9 +ValueData/2864,8.328964421348432e-7,8.314239677537237e-7,8.343189980639102e-7,5.0833557275178795e-9,4.274086305451904e-9,6.142112513069321e-9 +ValueData/1900,8.384278803266784e-7,8.369656200876953e-7,8.396308925938925e-7,4.126903818689325e-9,3.527244027197584e-9,4.932001047959768e-9 +ValueData/5589,8.377079046450717e-7,8.368594324523834e-7,8.383722623705767e-7,2.402563226423986e-9,1.9881881780153043e-9,3.11428090915238e-9 +UnValueData/22376,7.421200426754996e-4,7.416428056441595e-4,7.426275637261736e-4,1.618470727857722e-6,1.119154973936534e-6,2.2284151150612583e-6 +UnValueData/44004,9.752194991341577e-4,9.70242781020241e-4,9.88550720820054e-4,2.5562929233020568e-5,1.0172235253595569e-5,5.009686495907773e-5 +UnValueData/4,9.031880206532238e-7,9.024867066813983e-7,9.038512964783734e-7,2.2779415805598512e-9,1.9330658475996908e-9,2.823701837893953e-9 +UnValueData/99148,1.7372247273557187e-3,1.7236489032043454e-3,1.7473127603126722e-3,4.0709483178223295e-5,2.7443070692718858e-5,6.032531559827614e-5 +UnValueData/120872,2.1971704192794454e-3,2.1846033356544042e-3,2.209549962189362e-3,4.2887572549396306e-5,3.131459331505633e-5,6.341872205189448e-5 +UnValueData/108994,1.9968452458145347e-3,1.982218501404123e-3,2.0086924659643733e-3,4.344312899503325e-5,3.417864044001072e-5,5.909021943843239e-5 +UnValueData/58516,8.869363453352061e-4,8.818005803758033e-4,8.938265298498102e-4,1.8646987297631373e-5,1.3513862177297127e-5,2.6258428695496557e-5 +UnValueData/94579,1.5253829399388672e-3,1.5148647962795006e-3,1.5350643147316037e-3,3.380509925896022e-5,2.517743742587705e-5,4.499318549827737e-5 +UnValueData/56724,8.61190047595927e-4,8.573303735309086e-4,8.677646498079696e-4,1.5711098237619346e-5,1.1126188128454506e-5,2.4111849467603484e-5 +UnValueData/84198,1.4340395042022227e-3,1.4252777458105134e-3,1.441588827566473e-3,2.817282049227448e-5,2.077888593909089e-5,3.690069943674093e-5 +UnValueData/96469,1.7644357560926119e-3,1.7541672060520435e-3,1.7709464762463785e-3,2.7221600004773705e-5,1.8710355230176758e-5,4.631674441883908e-5 +UnValueData/20959,3.520130937805805e-4,3.518225285954121e-4,3.5222303605062297e-4,7.044144969363906e-7,5.857626946070411e-7,8.446906572804479e-7 +UnValueData/102484,2.0494570089101692e-3,2.0344610045422563e-3,2.062304780978206e-3,4.853352510204659e-5,3.736280004697441e-5,6.491178967871481e-5 +UnValueData/74218,1.5027578985805348e-3,1.4919247192157513e-3,1.5126586152322515e-3,3.485103126831253e-5,2.7829014401653502e-5,4.330864718301447e-5 +UnValueData/83044,1.4012482311208223e-3,1.3907994192033063e-3,1.4090565624794672e-3,3.0372730747729505e-5,2.309532849479042e-5,3.982256405607541e-5 +UnValueData/40879,7.63421038808352e-4,7.629229569211526e-4,7.639476900210501e-4,1.7529906456607992e-6,1.3506111852265198e-6,2.4080358073165134e-6 +UnValueData/40323,8.114560809851225e-4,8.102655286971506e-4,8.126367898164435e-4,4.150915145980708e-6,3.451407406930695e-6,4.923278915085261e-6 +UnValueData/68836,1.0176991337375368e-3,1.010822483610499e-3,1.0239097150976566e-3,2.2580457346042606e-5,1.8755418111238122e-5,2.8198572126160436e-5 +UnValueData/38416,6.230754570381371e-4,6.224494732616555e-4,6.252314734080496e-4,3.3666779399156104e-6,1.0956346916332748e-6,7.463803269612873e-6 +UnValueData/57322,8.342361632782373e-4,8.304598524395692e-4,8.397063994572915e-4,1.5128542915078105e-5,1.0804816364731625e-5,2.150996132931944e-5 +UnValueData/118096,2.2774391188435943e-3,2.2660369190164328e-3,2.289655714688053e-3,3.8840218100442357e-5,3.1138130274196154e-5,5.287919464167745e-5 +UnValueData/98896,1.8965505545082042e-3,1.883947908063852e-3,1.9059572471519374e-3,3.5670782836814364e-5,2.4848071851520478e-5,5.0943520894313e-5 +UnValueData/140782,2.4357013059088765e-3,2.418772849821058e-3,2.4484485010813047e-3,5.1500639790243616e-5,3.611692039107798e-5,7.5902785702779e-5 +UnValueData/95314,3.0404083478266218e-3,3.0235195380633162e-3,3.0545759472912814e-3,5.034938132231567e-5,3.722883309564973e-5,6.676438132959915e-5 +UnValueData/105226,2.0413316652818565e-3,2.0299954004261555e-3,2.0500597451644496e-3,3.3793251154029966e-5,2.4907835447547755e-5,5.154585227965111e-5 +UnValueData/54442,8.166557945972146e-4,8.140728449658061e-4,8.213029717174296e-4,1.1200704150352004e-5,7.922837212571557e-6,1.6420827716887007e-5 +UnValueData/115980,2.24432280514845e-3,2.2269472947579715e-3,2.2560857447788004e-3,4.690382651785491e-5,3.034123217425462e-5,7.053597723180721e-5 +UnValueData/40379,7.490679421292859e-4,7.48465872530782e-4,7.496409448816867e-4,2.0119614616521805e-6,1.6761439003368673e-6,2.5363903594886133e-6 +UnValueData/22204,3.507515280974552e-4,3.5053583113833764e-4,3.509871498207404e-4,7.691591868089543e-7,6.161234217644561e-7,1.1683559653931458e-6 +UnValueData/38817,6.123660306627727e-4,6.119872891857597e-4,6.127745121042849e-4,1.3486683732646652e-6,1.1876462650053216e-6,1.5630619906889284e-6 +UnValueData/110356,2.147046947879692e-3,2.137758760089643e-3,2.1668853908749014e-3,4.141095353389672e-5,2.6401162161912093e-5,6.983819474110691e-5 +UnValueData/59764,8.995106566583074e-4,8.961217475105262e-4,9.048792635628581e-4,1.4978628506703936e-5,1.159638971105037e-5,2.1388399973923345e-5 +UnValueData/66889,1.2554281647708817e-3,1.2486984108848e-3,1.2617795286541651e-3,2.2561352337852067e-5,1.843106095472025e-5,2.8106029313220262e-5 +UnValueData/122929,2.294232093512359e-3,2.2797197465982836e-3,2.304078586424263e-3,3.8573309208602175e-5,2.8169336148969128e-5,6.404016421537466e-5 +UnValueData/58148,1.1865973544485811e-3,1.1812025004291475e-3,1.1920236964037259e-3,1.8252574505657322e-5,1.5202792816545517e-5,2.2484837641806886e-5 +UnValueData/64036,1.104272031821415e-3,1.099907540642945e-3,1.110400038583784e-3,1.7138929972241082e-5,1.3445811943447424e-5,2.3596734808493165e-5 +UnValueData/106660,2.1842916013874837e-3,2.1715566552376656e-3,2.193153535734978e-3,3.533307722326201e-5,2.393995862586544e-5,5.4029244496444345e-5 +UnValueData/72734,1.1831440558100871e-3,1.177289258479852e-3,1.188136182257833e-3,1.7838094698077584e-5,1.3376075820507552e-5,2.463584511422848e-5 +UnValueData/95956,1.7919572072156457e-3,1.7852120384147956e-3,1.7980060233204211e-3,2.205070352133155e-5,1.8711316601519274e-5,2.6377364106137857e-5 +UnValueData/85099,1.6688221461376605e-3,1.6611900462708412e-3,1.6751161023579745e-3,2.3005426976461482e-5,1.7382069343962102e-5,3.3593241912824694e-5 +UnValueData/33952,5.698903839261548e-4,5.696797720261617e-4,5.701359864876958e-4,7.639939829081379e-7,5.748044462372407e-7,1.265399491502595e-6 +UnValueData/78094,1.3687549337281165e-3,1.3636018099444252e-3,1.3719665834781092e-3,1.4578068228108124e-5,1.0652989478358822e-5,2.121345967759404e-5 +UnValueData/41532,5.989097329589173e-4,5.984493191244412e-4,5.99601898998502e-4,1.793088290035404e-6,1.2103399803641419e-6,2.8109706946325956e-6 +UnValueData/16104,2.8889670869707284e-4,2.8872510325033817e-4,2.891472737840334e-4,6.372416658547042e-7,4.870666207369253e-7,9.499970339329436e-7 +UnValueData/135004,2.4623369569698812e-3,2.4481355923715855e-3,2.4710581758255845e-3,3.573333001335653e-5,2.5115204726074637e-5,5.688717781195078e-5 +UnValueData/70494,1.1721062890500313e-3,1.1677861149947033e-3,1.1757952364250337e-3,1.3439445311404506e-5,1.0077305740048964e-5,1.8624385303226868e-5 +UnValueData/93334,2.0263289846573843e-3,2.0189810955473747e-3,2.0334266698568693e-3,2.4069742899737522e-5,1.8944699565378286e-5,3.393083467763085e-5 +UnValueData/127984,2.228479247756745e-3,2.2199068225701494e-3,2.2381643711436466e-3,2.952773653892638e-5,2.4159957252215307e-5,3.769328846784343e-5 +UnValueData/58612,8.527413573793342e-4,8.49843157022476e-4,8.566529853102303e-4,1.0652623263133475e-5,8.17263626328061e-6,1.4389544992830078e-5 +UnValueData/113092,2.2205466636673085e-3,2.2133237335796646e-3,2.2276326297637926e-3,2.359033382196869e-5,1.8623158039168372e-5,3.059724018514214e-5 +UnValueData/70249,1.0662874483376406e-3,1.061674687599265e-3,1.0699330540558014e-3,1.3446724058680388e-5,1.0272851586948794e-5,1.7332033060865378e-5 +UnValueData/71634,1.2563214360483182e-3,1.2514306140931828e-3,1.2600223756423707e-3,1.3715305184048985e-5,1.004529646745738e-5,2.0456459494044575e-5 +UnValueData/119254,2.042838442022639e-3,2.034923002946453e-3,2.049692031783017e-3,2.4595452815850463e-5,2.0087523364163428e-5,3.0713053843093845e-5 +UnValueData/8122,1.0379285529081011e-4,1.0374224820538768e-4,1.0387012001140512e-4,2.0902447372235444e-7,1.572780712960494e-7,3.213969891093161e-7 +UnValueData/24961,3.4220775007220375e-4,3.419925858033342e-4,3.4246121538051097e-4,8.110718448242615e-7,5.936537080088324e-7,1.2484623255378587e-6 +UnValueData/27796,4.0739491080275185e-4,4.073038803230466e-4,4.075800047058383e-4,4.1466310029379703e-7,2.787530663091774e-7,7.348478822221948e-7 +UnValueData/91983,1.7489118893666022e-3,1.7430414332084488e-3,1.7571101107013605e-3,2.3059812724674927e-5,1.778387720885101e-5,3.203240830843041e-5 +UnValueData/60655,9.685841422408741e-4,9.65481439386459e-4,9.715963782838009e-4,1.0163172469568118e-5,7.854985865605189e-6,1.2594377322956898e-5 +UnValueData/39357,8.046673998549543e-4,8.03902338859006e-4,8.055739846338962e-4,2.7924414350489803e-6,2.1333416495816166e-6,3.703898622015749e-6 +UnValueData/31060,4.446328455282845e-4,4.44324893373553e-4,4.4495290629429583e-4,1.0838910174016887e-6,9.036188905420614e-7,1.258592828792615e-6 +UnValueData/86705,1.6030445099572662e-3,1.5975630381518163e-3,1.6090392492385107e-3,1.8537210014705837e-5,1.4476201063547588e-5,2.362336519050719e-5 +UnValueData/88348,1.756177678199867e-3,1.7485827542328882e-3,1.7624776067164895e-3,2.3521131714108994e-5,1.8221357789583324e-5,3.0048529285579724e-5 +UnValueData/108868,2.061057230148077e-3,2.052324924927711e-3,2.0674276070116585e-3,2.4313680890602197e-5,1.8180253287420174e-5,3.156219421617869e-5 +UnValueData/112144,2.1605554006690637e-3,2.1508506459343465e-3,2.167211514233533e-3,2.6871849928505086e-5,2.0069787755797843e-5,3.4642208957669565e-5 +UnValueData/63620,1.0050758761524974e-3,1.0016816092430268e-3,1.0083899330844278e-3,1.162636073266794e-5,8.994263419285178e-6,1.5338343984582956e-5 +UnValueData/27892,5.084278272769121e-4,5.081971404042432e-4,5.087179650206601e-4,8.7548579173851e-7,6.747468191836457e-7,1.105530677260429e-6 +UnValueData/58117,1.1174491246473926e-3,1.1141944619096449e-3,1.1202415595773039e-3,1.010350449973907e-5,7.816014443637864e-6,1.3635807860975118e-5 +UnValueData/103435,1.9574159168085034e-3,1.9507918194217116e-3,1.9628592176852066e-3,2.0312661411672896e-5,1.550577784730252e-5,2.894567958091448e-5 +UnValueData/16771,3.035635794947129e-4,3.032293223274021e-4,3.0392799224594476e-4,1.2017444582390632e-6,9.693930235493743e-7,1.7643896527857206e-6 +UnValueData/113632,2.2001086638832328e-3,2.192318228201149e-3,2.206766063561452e-3,2.3261475915320868e-5,1.6351386604141966e-5,3.214750328465441e-5 +UnValueData/28084,4.3082841087667726e-4,4.3056110919328043e-4,4.312014890638698e-4,1.0250562718360542e-6,8.223657970805335e-7,1.2643459272646728e-6 +UnValueData/124264,2.319359186968365e-3,2.311460672824423e-3,2.3254929300151168e-3,2.3763994467921226e-5,1.4873701294956682e-5,3.460158888652846e-5 +UnValueData/111040,2.1723500127761976e-3,2.1665219893006985e-3,2.177716049148003e-3,1.8723300033436836e-5,1.5370482843544153e-5,2.282930974578789e-5 +UnValueData/31828,4.937808104197363e-4,4.936266030279008e-4,4.939314223810301e-4,5.079386710089089e-7,4.0200058590000033e-7,6.195883005782201e-7 +UnValueData/103884,2.2406914436354252e-3,2.2331722322211783e-3,2.2469939361080718e-3,2.2870443822392903e-5,1.4581450278541387e-5,3.194751684620029e-5 +UnValueData/86704,1.4820821123708225e-3,1.478094930140025e-3,1.4857154916289121e-3,1.273593030560464e-5,9.485220643678573e-6,1.8211719396232393e-5 +UnValueData/48692,8.641241877896636e-4,8.625444041434758e-4,8.665207747690758e-4,6.379899725768069e-6,5.222078212017671e-6,8.228668183472541e-6 +UnValueData/94396,1.6881749290128963e-3,1.6830457889124518e-3,1.6929035394773453e-3,1.623966964006329e-5,1.3462828904696957e-5,2.3383446370323743e-5 +UnValueData/89784,1.7633192585197837e-3,1.7572198082323365e-3,1.7681446756613785e-3,1.8907228488513917e-5,1.4752010112136147e-5,2.6128397541920794e-5 +UnValueData/101728,1.9975089978388908e-3,1.9909021647065432e-3,2.0021480675309726e-3,1.771749850261029e-5,1.3404069495326329e-5,2.5418378124500674e-5 +UnValueData/49945,7.849266669143169e-4,7.834139627434871e-4,7.872348246164918e-4,6.323988998414543e-6,4.693561849181013e-6,9.042513472221054e-6 +UnValueData/116835,2.240307989065085e-3,2.233667225272249e-3,2.24557012387922e-3,2.0272416550369263e-5,1.600981412761065e-5,2.691641925552508e-5 +UnValueData/91703,1.5098907339468675e-3,1.5061483048317665e-3,1.5129747515131916e-3,1.1236990000337902e-5,8.715996108608375e-6,1.4064251549736004e-5 +UnValueData/42948,8.191806715903273e-4,8.184278896789901e-4,8.200623868809728e-4,2.7209890521151274e-6,2.20424491530947e-6,3.977643874849939e-6 +UnValueData/30004,4.0692431345782574e-4,4.065352991557556e-4,4.0793855424249353e-4,2.0405998059481094e-6,8.935181414233344e-7,4.0062397413738955e-6 +UnValueData/39834,6.59799011546327e-4,6.591005960279854e-4,6.61611146355662e-4,3.5256912929599506e-6,1.5171470525948529e-6,6.828864255823176e-6 +UnValueData/85354,1.4609374864189167e-3,1.457525090547844e-3,1.4643260827067323e-3,1.1109623387606443e-5,9.349837333336709e-6,1.3461010779292271e-5 +UnValueData/36480,5.862064376762051e-4,5.859379888657056e-4,5.864809828006501e-4,9.18968848061483e-7,7.415774059952647e-7,1.1700154941372756e-6 +UnValueData/126969,2.5025949834716803e-3,2.4980775765802445e-3,2.5072968721243103e-3,1.5069763463696404e-5,1.200853670156037e-5,1.861281499029153e-5 +UnValueData/29551,4.4896543710844076e-4,4.4876775810096024e-4,4.4915843428038066e-4,6.840072121168805e-7,5.925785281280248e-7,8.277218096237322e-7 +UnValueData/52054,8.351957246086397e-4,8.334351952327325e-4,8.369956540229882e-4,6.036937323460686e-6,4.655346797125849e-6,7.861242204547471e-6 +UnValueData/30028,5.614428429098794e-4,5.611714324911451e-4,5.617050968172946e-4,8.938636446274248e-7,7.238539642303035e-7,1.1281691685925724e-6 +UnValueData/104424,1.9792933211745566e-3,1.975939263329213e-3,1.9827172959429877e-3,1.1082815616029916e-5,8.972843198234064e-6,1.387967675831269e-5 +UnValueData/30826,5.282847063918238e-4,5.280683128649347e-4,5.284834249109084e-4,7.094847574592376e-7,6.017332120300611e-7,8.731640271230725e-7 +UnValueData/27052,3.771485865539376e-4,3.769194976000054e-4,3.7746476934006143e-4,9.156609792885425e-7,6.156285985631137e-7,1.4670632566508142e-6 +UnValueData/65932,1.0362293976383628e-3,1.0336976553321116e-3,1.038560109151179e-3,8.106524723052931e-6,6.605223083302124e-6,1.0217846256777914e-5 +UnValueData/59810,1.1336749801983102e-3,1.1315389807677473e-3,1.138024098113717e-3,9.929216060299778e-6,6.0768071762777275e-6,1.722352340194988e-5 +UnValueData/39288,6.032866557910206e-4,6.030522983141428e-4,6.035128667876988e-4,7.895483612989754e-7,6.316918807245071e-7,1.0433404956330073e-6 +UnValueData/76948,1.3996576254802408e-3,1.397369416992624e-3,1.4016926848061705e-3,7.46309320159105e-6,5.752289158405515e-6,1.0601798536501387e-5 +UnValueData/108110,2.32499218060711e-3,2.320607776305041e-3,2.3286617681278748e-3,1.3622710453752738e-5,9.98280093707463e-6,1.974862114092385e-5 +UnValueData/50124,8.712359758511514e-4,8.698616843356624e-4,8.729368161369402e-4,4.92330567016813e-6,3.4569482176385953e-6,6.892058974536296e-6 +UnValueData/23104,3.4557003758125393e-4,3.4533296501842157e-4,3.457951999251937e-4,7.598629949436389e-7,6.159348054605403e-7,9.683799591585357e-7 +UnValueData/87565,1.6645047913005804e-3,1.66032055907469e-3,1.6679725030468316e-3,1.3415704838469695e-5,1.040132563403983e-5,1.777423352672436e-5 diff --git a/plutus-core/cost-model/data/builtinCostModelA.json b/plutus-core/cost-model/data/builtinCostModelA.json index d1c4baf684c..b12f9426a38 100644 --- a/plutus-core/cost-model/data/builtinCostModelA.json +++ b/plutus-core/cost-model/data/builtinCostModelA.json @@ -1205,5 +1205,74 @@ "arguments": 4, "type": "constant_cost" } + }, + "lookupCoin": { + "cpu": { + "arguments": { + "intercept": 272043, + "slope": 16 + }, + "type": "linear_in_z" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "valueContains": { + "cpu": { + "arguments": { + "intercept": 6684283, + "slope": 1000 + }, + "type": "added_sizes" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "valueData": { + "cpu": { + "arguments": 167190, + "type": "constant_cost" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "unValueData": { + "cpu": { + "arguments": { + "intercept": 1000, + "slope": 19835 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + } + , "insertCoin": { + "cpu": { + "arguments": 1000, + "type": "constant_cost" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } + } + , "unionValue": { + "cpu": { + "arguments": 1000, + "type": "constant_cost" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } } } diff --git a/plutus-core/cost-model/data/builtinCostModelB.json b/plutus-core/cost-model/data/builtinCostModelB.json index 7b4350c3c10..42acb99433b 100644 --- a/plutus-core/cost-model/data/builtinCostModelB.json +++ b/plutus-core/cost-model/data/builtinCostModelB.json @@ -1205,5 +1205,74 @@ "arguments": 4, "type": "constant_cost" } + }, + "lookupCoin": { + "cpu": { + "arguments": { + "intercept": 272043, + "slope": 16 + }, + "type": "linear_in_z" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "valueContains": { + "cpu": { + "arguments": { + "intercept": 6684283, + "slope": 1000 + }, + "type": "added_sizes" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "valueData": { + "cpu": { + "arguments": 167190, + "type": "constant_cost" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "unValueData": { + "cpu": { + "arguments": { + "intercept": 1000, + "slope": 19835 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + } + , "insertCoin": { + "cpu": { + "arguments": 1000, + "type": "constant_cost" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } + } + , "unionValue": { + "cpu": { + "arguments": 1000, + "type": "constant_cost" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } } } diff --git a/plutus-core/cost-model/data/builtinCostModelC.json b/plutus-core/cost-model/data/builtinCostModelC.json index f69154d323c..fbd3546a94a 100644 --- a/plutus-core/cost-model/data/builtinCostModelC.json +++ b/plutus-core/cost-model/data/builtinCostModelC.json @@ -1223,5 +1223,74 @@ "arguments": 4, "type": "constant_cost" } + }, + "lookupCoin": { + "cpu": { + "arguments": { + "intercept": 272043, + "slope": 16 + }, + "type": "linear_in_z" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "valueContains": { + "cpu": { + "arguments": { + "intercept": 6684283, + "slope": 1000 + }, + "type": "added_sizes" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "valueData": { + "cpu": { + "arguments": 167190, + "type": "constant_cost" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "unValueData": { + "cpu": { + "arguments": { + "intercept": 1000, + "slope": 19835 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + } + , "insertCoin": { + "cpu": { + "arguments": 1000, + "type": "constant_cost" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } + } + , "unionValue": { + "cpu": { + "arguments": 1000, + "type": "constant_cost" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } } } diff --git a/plutus-core/cost-model/data/models.R b/plutus-core/cost-model/data/models.R index 974d83d64a4..802a2db11b1 100644 --- a/plutus-core/cost-model/data/models.R +++ b/plutus-core/cost-model/data/models.R @@ -152,6 +152,10 @@ arity <- function(name) { "LengthOfArray" = 1, "ListToArray" = 1, "IndexArray" = 2, + "LookupCoin" = 3, + "ValueContains" = 2, + "ValueData" = 1, + "UnValueData" = 1, -1 ## Default for missing values ) } @@ -804,11 +808,28 @@ modelFun <- function(path) { dropListModel <- linearInX ("DropList") - ## Arrays + ## Arrays lengthOfArrayModel <- constantModel ("LengthOfArray") listToArrayModel <- linearInX ("ListToArray") indexArrayModel <- constantModel ("IndexArray") + ## Values + lookupCoinModel <- linearInZ ("LookupCoin") + + ## ValueContains is O(n₂ × log max(m₁, k₁)) where n₂ is the total size of the second Value + ## We model this as linear in the sum of sizes, which is conservative + valueContainsModel <- { + fname <- "ValueContains" + filtered <- data %>% + filter.and.check.nonempty(fname) %>% + discard.upper.outliers() + m <- lm(t ~ I(x_mem + y_mem), filtered) + mk.result(m, "added_sizes") + } + + valueDataModel <- constantModel ("ValueData") + unValueDataModel <- linearInX ("UnValueData") + ##### Models to be returned to Haskell ##### models.for.adjustment <- @@ -902,7 +923,11 @@ modelFun <- function(path) { dropListModel = dropListModel, lengthOfArrayModel = lengthOfArrayModel, listToArrayModel = listToArrayModel, - indexArrayModel = indexArrayModel + indexArrayModel = indexArrayModel, + lookupCoinModel = lookupCoinModel, + valueContainsModel = valueContainsModel, + valueDataModel = valueDataModel, + unValueDataModel = unValueDataModel ) ## The integer division functions have a complex costing behaviour that requires some negative diff --git a/plutus-core/cost-model/test/TestCostModels.hs b/plutus-core/cost-model/test/TestCostModels.hs index e202ce228d7..fa0d4ef0652 100644 --- a/plutus-core/cost-model/test/TestCostModels.hs +++ b/plutus-core/cost-model/test/TestCostModels.hs @@ -387,6 +387,12 @@ main = , $(genTest 1 "listToArray") , $(genTest 2 "indexArray") Everywhere + -- Builtin Values + , $(genTest 3 "lookupCoin") + , $(genTest 2 "valueContains") Everywhere + , $(genTest 1 "valueData") + , $(genTest 1 "unValueData") + -- Data , $(genTest 6 "chooseData") , $(genTest 2 "constrData") Everywhere diff --git a/plutus-core/plutus-core.cabal b/plutus-core/plutus-core.cabal index 956d3ade95c..c22310206e5 100644 --- a/plutus-core/plutus-core.cabal +++ b/plutus-core/plutus-core.cabal @@ -935,6 +935,7 @@ executable cost-model-budgeting-bench Benchmarks.Strings Benchmarks.Tracing Benchmarks.Unit + Benchmarks.Values Common CriterionExtensions Generators diff --git a/plutus-core/plutus-core/src/PlutusCore/Default/Builtins.hs b/plutus-core/plutus-core/src/PlutusCore/Default/Builtins.hs index 675cd9b70a2..2436e299e5c 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Default/Builtins.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Default/Builtins.hs @@ -2047,12 +2047,12 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where (runCostingFunTwoArguments . paramBls12_381_G2_multiScalarMul) toBuiltinMeaning _semvar InsertCoin = - let insertCoinDenotation :: ByteString -> ByteString -> Integer -> Value -> Value + let insertCoinDenotation :: ByteString -> ByteString -> Integer -> Value -> BuiltinResult Value insertCoinDenotation = Value.insertCoin {-# INLINE insertCoinDenotation #-} in makeBuiltinMeaning insertCoinDenotation - (runCostingFunFourArguments . unimplementedCostingFun) + (runCostingFunFourArguments . paramInsertCoin) toBuiltinMeaning _semvar LookupCoin = let lookupCoinDenotation :: ByteString -> ByteString -> Value -> Integer @@ -2060,7 +2060,7 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where {-# INLINE lookupCoinDenotation #-} in makeBuiltinMeaning lookupCoinDenotation - (runCostingFunThreeArguments . unimplementedCostingFun) + (runCostingFunThreeArguments . paramLookupCoin) toBuiltinMeaning _semvar UnionValue = let unionValueDenotation :: Value -> Value -> Value @@ -2068,7 +2068,7 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where {-# INLINE unionValueDenotation #-} in makeBuiltinMeaning unionValueDenotation - (runCostingFunTwoArguments . unimplementedCostingFun) + (runCostingFunTwoArguments . paramUnionValue) toBuiltinMeaning _semvar ValueContains = let valueContainsDenotation :: Value -> Value -> Bool @@ -2076,7 +2076,7 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where {-# INLINE valueContainsDenotation #-} in makeBuiltinMeaning valueContainsDenotation - (runCostingFunTwoArguments . unimplementedCostingFun) + (runCostingFunTwoArguments . paramValueContains) toBuiltinMeaning _semvar ValueData = let valueDataDenotation :: Value -> Data @@ -2084,7 +2084,7 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where {-# INLINE valueDataDenotation #-} in makeBuiltinMeaning valueDataDenotation - (runCostingFunOneArgument . unimplementedCostingFun) + (runCostingFunOneArgument . paramValueData) toBuiltinMeaning _semvar UnValueData = let unValueDataDenotation :: Data -> BuiltinResult Value @@ -2092,7 +2092,7 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where {-# INLINE unValueDataDenotation #-} in makeBuiltinMeaning unValueDataDenotation - (runCostingFunOneArgument . unimplementedCostingFun) + (runCostingFunOneArgument . paramUnValueData) -- See Note [Inlining meanings of builtins]. {-# INLINE toBuiltinMeaning #-} diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/BuiltinCostModel.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/BuiltinCostModel.hs index 9cb77e0bb64..87cd1809d53 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/BuiltinCostModel.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/BuiltinCostModel.hs @@ -193,6 +193,13 @@ data BuiltinCostModelBase f = , paramLengthOfArray :: f ModelOneArgument , paramListToArray :: f ModelOneArgument , paramIndexArray :: f ModelTwoArguments + -- Builtin values + , paramLookupCoin :: f ModelThreeArguments + , paramValueContains :: f ModelTwoArguments + , paramValueData :: f ModelOneArgument + , paramUnValueData :: f ModelOneArgument + , paramInsertCoin :: f ModelFourArguments + , paramUnionValue :: f ModelTwoArguments } deriving stock (Generic) deriving anyclass (FunctorB, TraversableB, ConstraintsB) diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/ExBudgetingDefaults.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/ExBudgetingDefaults.hs index b70266cb250..626457c2b40 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/ExBudgetingDefaults.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/ExBudgetingDefaults.hs @@ -238,6 +238,9 @@ unitCostTwoArguments = CostingFun (ModelTwoArgumentsConstantCost 1) (ModelTwo unitCostThreeArguments :: CostingFun ModelThreeArguments unitCostThreeArguments = CostingFun (ModelThreeArgumentsConstantCost 1) (ModelThreeArgumentsConstantCost 0) +unitCostFourArguments :: CostingFun ModelFourArguments +unitCostFourArguments = CostingFun (ModelFourArgumentsConstantCost 1) (ModelFourArgumentsConstantCost 0) + unitCostSixArguments :: CostingFun ModelSixArguments unitCostSixArguments = CostingFun (ModelSixArgumentsConstantCost 1) (ModelSixArgumentsConstantCost 0) @@ -355,6 +358,13 @@ unitCostBuiltinCostModel = BuiltinCostModelBase , paramLengthOfArray = unitCostOneArgument , paramListToArray = unitCostOneArgument , paramIndexArray = unitCostTwoArguments + -- Builtin values + , paramLookupCoin = unitCostThreeArguments + , paramValueContains = unitCostTwoArguments + , paramValueData = unitCostOneArgument + , paramUnValueData = unitCostOneArgument + , paramInsertCoin = unitCostFourArguments + , paramUnionValue = unitCostTwoArguments } unitCekParameters :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann) diff --git a/plutus-core/plutus-core/src/PlutusCore/Value.hs b/plutus-core/plutus-core/src/PlutusCore/Value.hs index 57dd5326cb0..7b8f84dd013 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Value.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Value.hs @@ -188,28 +188,31 @@ instance Pretty Value where {-| \(O(\log \max(m, k))\), where \(m\) is the size of the outer map, and \(k\) is the size of the largest inner map. -} -insertCoin :: ByteString -> ByteString -> Integer -> Value -> Value +insertCoin :: ByteString -> ByteString -> Integer -> Value -> BuiltinResult Value insertCoin currency token amt v@(Value outer sizes size) - | amt == 0 = deleteCoin currency token v - | otherwise = - let (mold, outer') = Map.alterF f (UnsafeK currency) outer - (sizes', size') = case mold of - Just old -> (updateSizes old (old + 1) sizes, size + 1) - Nothing -> (sizes, size) - in Value outer' sizes' size' - where - f - :: Maybe (Map K Integer) - -> ( -- Just (old size of inner map) if the total size grows by 1, otherwise Nothing - Maybe Int - , Maybe (Map K Integer) - ) - f = \case - Nothing -> (Just 0, Just (Map.singleton (UnsafeK token) amt)) - Just inner -> - let (isJust -> exists, inner') = - Map.insertLookupWithKey (\_ _ _ -> amt) (UnsafeK token) amt inner - in (if exists then Nothing else Just (Map.size inner), Just inner') + | amt == 0 = pure $ deleteCoin currency token v + | otherwise = case (k currency, k token) of + (Nothing, _) -> fail $ "insertCoin: invalid currency: " <> show (B.unpack currency) + (_, Nothing) -> fail $ "insertCoin: invalid token: " <> show (B.unpack token) + (Just ck, Just tk) -> + let f + :: Maybe (Map K Integer) + -> ( -- Just (old size of inner map) if the total size grows by 1, + -- otherwise Nothing + Maybe Int + , Maybe (Map K Integer) + ) + f = \case + Nothing -> (Just 0, Just (Map.singleton tk amt)) + Just inner -> + let (isJust -> exists, inner') = + Map.insertLookupWithKey (\_ _ _ -> amt) tk amt inner + in (if exists then Nothing else Just (Map.size inner), Just inner') + (mold, outer') = Map.alterF f ck outer + (sizes', size') = case mold of + Just old -> (updateSizes old (old + 1) sizes, size + 1) + Nothing -> (sizes, size) + in pure $ Value outer' sizes' size' {-# INLINEABLE insertCoin #-} -- | \(O(\log \max(m, k))\) @@ -312,7 +315,7 @@ unValueData = where unB :: Data -> BuiltinResult K unB = \case - B b -> pure (UnsafeK b) + B b -> maybe (fail $ "unValueData: invalid key: " <> show (B.unpack b)) pure (k b) _ -> fail "unValueData: non-B constructor" unI :: Data -> BuiltinResult Integer diff --git a/plutus-core/plutus-core/test/TypeSynthesis/Golden/Signatures/DefaultFun/InsertCoin.golden.sig b/plutus-core/plutus-core/test/TypeSynthesis/Golden/Signatures/DefaultFun/InsertCoin.golden.sig index 37125388fe0..3b124c8ec28 100644 --- a/plutus-core/plutus-core/test/TypeSynthesis/Golden/Signatures/DefaultFun/InsertCoin.golden.sig +++ b/plutus-core/plutus-core/test/TypeSynthesis/Golden/Signatures/DefaultFun/InsertCoin.golden.sig @@ -1 +1 @@ -ByteString -> ByteString -> Integer -> Value -> Value \ No newline at end of file +ByteString -> ByteString -> Integer -> Value -> BuiltinResult Value \ No newline at end of file diff --git a/plutus-core/plutus-core/test/Value/Spec.hs b/plutus-core/plutus-core/test/Value/Spec.hs index ce216c83e91..19259169ad1 100644 --- a/plutus-core/plutus-core/test/Value/Spec.hs +++ b/plutus-core/plutus-core/test/Value/Spec.hs @@ -1,6 +1,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE ViewPatterns #-} +{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-} {-# OPTIONS_GHC -Wno-orphans #-} module Value.Spec (tests) where @@ -11,15 +12,18 @@ import Data.Either import Data.Foldable qualified as F import Data.Map.Strict qualified as Map import Data.Maybe -import PlutusCore.Flat qualified as Flat -import PlutusCore.Generators.QuickCheck.Builtin (ValueAmount (..), genShortHex) -import PlutusCore.Value (Value) -import PlutusCore.Value qualified as V import Safe.Foldable (maximumMay) import Test.QuickCheck import Test.Tasty import Test.Tasty.QuickCheck +import PlutusCore.Builtin (BuiltinResult (..)) +import PlutusCore.Data (Data (..)) +import PlutusCore.Flat qualified as Flat +import PlutusCore.Generators.QuickCheck.Builtin (ValueAmount (..), genShortHex) +import PlutusCore.Value (Value) +import PlutusCore.Value qualified as V + prop_packUnpackRoundtrip :: Value -> Property prop_packUnpackRoundtrip v = v === V.pack (V.unpack v) @@ -38,7 +42,7 @@ prop_insertCoinBookkeeping :: Value -> ValueAmount -> Property prop_insertCoinBookkeeping v (ValueAmount amt) = forAll (genShortHex (V.totalSize v)) $ \currency -> forAll (genShortHex (V.totalSize v)) $ \token -> - let v' = V.insertCoin (V.unK currency) (V.unK token) amt v + let BuiltinSuccess v' = V.insertCoin (V.unK currency) (V.unK token) amt v in checkSizes v' -- | Verifies that @insertCoin@ preserves @Value@ invariants @@ -46,7 +50,7 @@ prop_insertCoinPreservesInvariants :: Value -> ValueAmount -> Property prop_insertCoinPreservesInvariants v (ValueAmount amt) = forAll (genShortHex (V.totalSize v)) $ \currency -> forAll (genShortHex (V.totalSize v)) $ \token -> - let v' = V.insertCoin (V.unK currency) (V.unK token) amt v + let BuiltinSuccess v' = V.insertCoin (V.unK currency) (V.unK token) amt v in checkInvariants v' prop_unionCommutative :: Value -> Value -> Property @@ -60,15 +64,33 @@ prop_insertCoinIdempotent :: Value -> Property prop_insertCoinIdempotent v = v === F.foldl' - (\acc (c, t, a) -> let v' = V.insertCoin (V.unK c) (V.unK t) a acc in v') + (\acc (c, t, a) -> let BuiltinSuccess v' = V.insertCoin (V.unK c) (V.unK t) a acc in v') v (V.toFlatList v) +prop_insertCoinValidatesCurrency :: Value -> Property +prop_insertCoinValidatesCurrency v = + forAll gen33Bytes $ \c -> + forAll gen32BytesOrFewer $ \t -> + forAll (arbitrary `suchThat` (/= 0)) $ \amt -> + case V.insertCoin c t amt v of + BuiltinFailure{} -> property True + _ -> property False + +prop_insertCoinValidatesToken :: Value -> Property +prop_insertCoinValidatesToken v = + forAll gen32BytesOrFewer $ \c -> + forAll gen33Bytes $ \t -> + forAll (arbitrary `suchThat` (/= 0)) $ \amt -> + case V.insertCoin c t amt v of + BuiltinFailure{} -> property True + _ -> property False + prop_lookupAfterInsertion :: Value -> ValueAmount -> Property prop_lookupAfterInsertion v (ValueAmount amt) = forAll (genShortHex (V.totalSize v)) $ \currency -> forAll (genShortHex (V.totalSize v)) $ \token -> - let v' = V.insertCoin (V.unK currency) (V.unK token) amt v + let BuiltinSuccess v' = V.insertCoin (V.unK currency) (V.unK token) amt v in V.lookupCoin (V.unK currency) (V.unK token) v' === amt prop_lookupAfterDeletion :: Value -> Property @@ -84,7 +106,7 @@ prop_deleteCoinIdempotent v0 = let v' = V.deleteCoin c t v in v' === V.deleteCoin c t v' where - v = if V.totalSize v0 > 0 then v0 else V.insertCoin "c" "t" 1 v0 + BuiltinSuccess v = if V.totalSize v0 > 0 then pure v0 else V.insertCoin "c" "t" 1 v0 fl = V.toFlatList v prop_containsReflexive :: Value -> Property @@ -113,7 +135,7 @@ prop_flatDecodeSuccess = forAll (arbitrary `suchThat` (/= 0)) $ \amt -> forAll gen32BytesOrFewer $ \c -> forAll gen32BytesOrFewer $ \t -> let flat = Flat.flat $ Map.singleton c (Map.singleton t amt) - v = V.insertCoin c t amt V.empty + BuiltinSuccess v = V.insertCoin c t amt V.empty in Flat.unflat flat === Right v prop_flatDecodeInvalidCurrency :: Property @@ -145,6 +167,24 @@ checkInvariants (V.unpack -> v) = property ((not . any Map.null) v) .&&. property ((not . any (elem 0)) v) +prop_unValueDataValidatesCurrency :: ValueAmount -> Property +prop_unValueDataValidatesCurrency (ValueAmount amt) = + forAll gen33Bytes $ \c -> + forAll gen32BytesOrFewer $ \t -> + let d = Map [(B c, Map [(B t, I amt)])] + in case V.unValueData d of + BuiltinFailure{} -> property True + _ -> property False + +prop_unValueDataValidatesToken :: ValueAmount -> Property +prop_unValueDataValidatesToken (ValueAmount amt) = + forAll gen32BytesOrFewer $ \c -> + forAll gen33Bytes $ \t -> + let d = Map [(B c, Map [(B t, I amt)])] + in case V.unValueData d of + BuiltinFailure{} -> property True + _ -> property False + tests :: TestTree tests = testGroup @@ -173,6 +213,12 @@ tests = , testProperty "insertCoinIdempotent" prop_insertCoinIdempotent + , testProperty + "insertCoinValidatesCurrency" + prop_insertCoinValidatesCurrency + , testProperty + "insertCoinValidatesToken" + prop_insertCoinValidatesToken , testProperty "lookupAfterInsertion" prop_lookupAfterInsertion @@ -188,6 +234,12 @@ tests = , testProperty "containsAfterDeletion" prop_containsAfterDeletion + , testProperty + "unValueDataValidatesCurrency" + prop_unValueDataValidatesCurrency + , testProperty + "unValueDataValidatesToken" + prop_unValueDataValidatesToken , testProperty "flatRoundtrip" prop_flatRoundtrip diff --git a/plutus-tx/src/PlutusTx/Builtins/Internal.hs b/plutus-tx/src/PlutusTx/Builtins/Internal.hs index cc4d3840830..2ed53229c79 100644 --- a/plutus-tx/src/PlutusTx/Builtins/Internal.hs +++ b/plutus-tx/src/PlutusTx/Builtins/Internal.hs @@ -1084,8 +1084,13 @@ insertCoin -> BuiltinInteger -> BuiltinValue -> BuiltinValue -insertCoin (BuiltinByteString c) (BuiltinByteString t) amt (BuiltinValue v) = - BuiltinValue $ Value.insertCoin c t amt v +insertCoin (BuiltinByteString c) (BuiltinByteString t) amt (BuiltinValue v0) = + case Value.insertCoin c t amt v0 of + BuiltinSuccess v -> BuiltinValue v + BuiltinSuccessWithLogs logs v -> traceAll logs (BuiltinValue v) + BuiltinFailure logs err -> + traceAll (logs <> pure (display err)) $ + Haskell.error "insertCoin errored." {-# OPAQUE insertCoin #-} lookupCoin