h$Duo       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               None #$&38?"dhevmThis is an easy way to force full evaluation of a value inside of the IO monad, being essentially just the composition of evaluate and force.None #$&38?"?43210/.-,+*)('&%$#"!  56789:;<=>??43210/.-,+*)('&%$#"!  56789:;<=>?None #$&38?&AhevmA renders a   as a multi-line   complete with addressing, hex digits, and ASCII representation. Sample output Length: 100 (0x64) bytes 0000: 4b c1 ad 8a 5b 47 d7 57 48 64 e7 cc 5e b5 2f 6e K...[G.WHd..^./n 0010: c5 b3 a4 73 44 3b 97 53 99 2d 54 e7 1b 2f 91 12 ...sD;.S.-T../.. 0020: c8 1a ff c4 3b 2b 72 ea 97 e2 9f e2 93 ad 23 79 ....;+r.......#y 0030: e8 0f 08 54 02 14 fa 09 f0 2d 34 c9 08 6b e1 64 ...T.....-4..k.d 0040: d1 c5 98 7e d6 a1 98 e2 97 da 46 68 4e 60 11 15 ...~......FhN`.. 0050: d8 32 c6 0b 70 f5 2e 76 7f 8d f2 3b ed de 90 c6 .2..p..v...;.... 0060: 93 12 9c e1 ....BhevmB converts a   to a  - showing the octets grouped in 32-bit words. Sample output 4b c1 ad 8a 5b 47 d7 57ABABNone #$&38?'Chevm5Run a given precompiled contract using the C library.Chevm&The number of the precompiled contracthevmThe input bufferhevmThe desired output sizehevmHopefully, the output bufferCCNone #$&38?(DhevmTurn a list state value into a widget given an item drawing function.Dhevm1Rendering function, True for the selected elementhevmWhether the list has focushevmThe List to be renderedhevmrendered widgetDEDENone #$&/389>?. Hhevm7Conversion from a fixed-sized BV to a sized bit-vector.IhevmConvert a fixed-sized bit-vector to the corresponding sized bit-vector,Jhevm'convert between (WordN 256) and Word256Khevm7Conversion from a sized BV to a fixed-sized bit-vector.LhevmConvert a sized bit-vector to the corresponding fixed-sized bit-vector, for instance 'SWord 16' to   . See also  .MhevmCapture the correspondence between sized and fixed-sized BVs (This is blatant copypasta of  ; from sbv, which just happens to be defined up to 64 bits)ThevmThis type can give insight into the provenance of a term which is useful, both for the aesthetic purpose of printing terms in a richer way, but also do optimizations on the AST instead of letting the SMT solver do all the heavy lifting.nhevmSymbolic words of 256 bits, possibly annotated with additional "insightful" informationhevmInstead of supporting a Mergeable instance directly, we use one which carries the Whiff around:hevmRight padding / truncatinghevm.Operations over buffers (concrete or symbolic)A buffer is a list of bytes. For concrete execution, this is simply  . In symbolic settings, it is a list of symbolic bitvectors of size 8.hevmCustom instances for SymWord, many of which have direct analogues for concrete words defined in Concrete.hsFGHIJKLMNOPQRSTkjia^]\[cd`_UbWhVgXfeZYmlnopqrstuvxwyz{|}~{|yzvxwturs}pqno~Tkjia^]\[cd`_UbWhVgXfeZYmlQRSNOPMKLJHIFGNone #$&38?/None #$&358>?0hevmThe   function for our desired monadhevmThe   function for the same monadhevmThe puts and gets to execute&& None #$&38?1 None #$&38>?3 None #$%&/38?6hevmNote: the (force*) functions are crude and in general, the continuation passing style  forceConcrete alternatives should be prefered for better error handling when used during EVM executionhevmSigned less thanhevmSigned greater thanhevm6Read 32 bytes from index from a bounded list of bytes.hevmAlthough we'd like to define this directly as an uninterpreted function, we cannot because [a] is not a symbolic type. We must convert the list into a suitable symbolic type first. The only important property of this conversion is that it is injective. We embedd the bytestring as a pair of symbolic integers, this is a fairly easy solution.hevmReconstruct the smt/sbv value from a whiff Should satisfy (rawVal x .== whiffValue x)hevm1Special cases that have proven useful in practice** None #$&/38?8BhevmDecode a sequence type (e.g. tuple / array). Will fail for non sequence typeshevmPretty-print some .99 None #$&/38:?==hevm&specified to not read blockchain statehevm,specified to not modify the blockchain statehevm,function does not accept Ether - the defaulthevmfunction accepts EtherhevmWhen doing CREATE and passing constructor arguments, Solidity loads the argument data via the creation bytecode, since there is no "calldata" for CREATE.This interferes with our ability to look up the current contract by codehash, so we must somehow strip away this extra suffix. Luckily we can detect the end of the actual bytecode by looking for the "metadata hash". (Not 100% correct, but works in practice.)Actually, we strip away the entire BZZR suffix too, because as long as the codehash matches otherwise, we don't care if there is some difference there.hevmEvery node in the AST has an ID, and other nodes reference those IDs. This function recurses through the tree looking for objects with the "id" key and makes a big map from ID to value.None #$&'(-/238>?M/hevmData about the blockhevmVarious environmental datahevmWhen doing symbolic execution, we have three different ways to model the storage of contracts. This determines not only the initial contract storage model but also how RPC or state fetched contracts will be modeled.hevmUses  Storage. Reading / Writing from abstract locations causes a runtime failure. Can be nicely combined with RPC.hevmUses  Storage. Reading / Writing never reaches RPC, but always done using an SMT array with no default value.hevmUses  Storage. Reading / Writing never reaches RPC, but always done using an SMT array with 0 as the default value.hevmThe state of a contracthevmA contract can either have concrete or symbolic storage depending on what type of execution we are doinghevmA contract is either in creation (running its "constructor") or post-creation, and code in these two modes is treated differently by instructions like  EXTCODEHASH*, so we distinguish these two code types.hevm Constructor code, during contract creationhevmInstance code, after contract creationhevm+The "accrued substate" across a transactionhevm(The state that spans a whole transactionhevm:The "registers" of the VM along with memory and data stackhevmCall/create infohevm(An entry in the VM's "call/create stack"hevm A log entryhevm$A way to specify an initial VM statehevmThe cache is data that can be persisted for efficiency: any expensive query that is constant at least within a block.hevm5The possible return values of a `is unique` SMT queryhevm)The possible return values of a SMT queryhevmAlias for the type of e.g. exec1.hevmQueries halt execution until resolved through RPC calls or SMT querieshevm%The state of a stepwise EVM executionhevm"The possible result states of a VMhevmAn operation failedhevm$Reached STOP, RETURN, or end-of-codehevmEVM failure modeshevm*A stack frame can be popped in three ways.hevmSTOP, RETURN, or no more codehevmREVERThevmAny other errorhevmAn "external" view of a contract's bytecode, appropriate for e.g.  EXTCODEHASH.hevm)Initialize empty contract with given codehevmUpdate program counterhevmExecutes the EVM one stephevmChecks a *CALL for failure; OOG, too many callframes, memory access etc.hevmAsk the SMT solver to provide a concrete model for val iff a unique model existshevm5Construct SMT Query and halt execution until resolvedhevm5Construct RPC Query and halt execution until resolvedhevm>Loads the selected contract as the current contract to executehevm?Burn gas, failing if insufficient gas is available We use the   type to avoid overflows in intermediate calculations and throw if the value won't fit into a uint64hevmreturns a wrapped boolean- if true, this address has been touched before in the txn (warm gas cost as in EIP 2929) otherwise coldhevmreturns a wrapped boolean- if true, this slot has been touched before in the txn (warm gas cost as in EIP 2929) otherwise coldhevm/Hack deterministic signing, totally insecure...hevmReplace a contract's code, like when CREATE returns from the constructor code.hevmThis function defines how to pop the current stack frame in either of the ways specified by .It also handles the case when the current stack frame is the only one; in this case, we set the final  of the VM execution.hevmContract addresshevmStorage slot keyhevm ContinuationNone #$&38?U9hevmutility function for getting a more useful representation of accesslistentries duplicates only matter for gas computationhevm,Increments origin nonce and pays gas deposithevmGiven a valid tx loaded into the vm state, subtract gas payment from the origin, increment the nonce and pay receiving address""None #$&'(238?WT hevm/Abstract representation of an RPC fetch request hevmChecks which branches are satisfiable, checking the pathconditions for consistency if the third argument is true. When in debug mode, we do not want to be able to navigate to dead paths, but for normal execution paths with inconsistent pathconditions will be pruned anyway.  None  #$&38>?X  None #$&38?X  None #$&38?X  None #$&'(/38?[) hevm'Type alias for an operational monad of Action hevm-The instruction type of the operational monad hevm6Keep executing until an intermediate result is reached hevm5Keep executing until an intermediate state is reached hevmWait for a query to be resolved hevmMultiple things can happen hevmEmbed a VM state transformation hevmPerform an IO action hevm4Run the VM until final result, resolving all queries hevm Run the VM until its final state  None #$&/38?e hevmConvenience functions for generating large symbolic byte strings hevmConvenience functions for generating large symbolic byte strings hevmConvenience functions for generating large symbolic byte strings hevmConvenience functions for generating large symbolic byte strings hevmConvenience functions for generating large symbolic byte strings hevm%Abstract calldata argument generation hevmGenerates calldata matching given type signature, optionally specialized with concrete arguments. Any argument given as " symbolic8" or omitted at the tail of the list are kept symbolic. hevmInterpreter which explores all paths at | branching points. | returns a list of possible final evm states hevm5Checks if an assertion violation has been encountered8hevm recognises the following as an assertion violation: &the invalid opcode (0xfe) (solc < 0.8)a revert with a reason of the form `abi.encodeWithSelector("Panic(uint256)", code)`, where code is one of the following (solc >= 0.8): - 0x00: Used for generic compiler inserted panics. - 0x01: If you call assert with an argument that evaluates to false. - 0x11: If an arithmetic operation results in underflow or overflow outside of an unchecked { ... } block. - 0x12; If you divide or modulo by zero (e.g. 5 / 0 or 23 % 0). - 0x21: If you convert a value that is too big or negative into an enum type. - 0x22: If you access a storage byte array that is incorrectly encoded. - 0x31: If you call .pop() on an empty array. - 0x32: If you access an array, bytesN or an array slice at an out-of-bounds or negative index (i.e. x[i] where i >= x.length or i < 0). - 0x41: If you allocate too much memory or create an array that is too large. - 0x51: If you call a zero-initialized variable of internal function type.see: https://docs.soliditylang.org/en/v0.8.6/control-structures.html?highlight=Panic#panic-via-assert-and-error-via-require hevmBy default hevm checks for all assertions except those which result from arithmetic overflow hevm?Produces the revert message for solc >=0.8 assertion violations hevmSymbolically execute the VM and check all endstates against the postcondition, if available. hevmCompares two contract runtimes for trace equivalence by running two VMs and comparing the end states.( ( None #$&38?e None #$&38?f hevm1bytecode modulo immutables, to identify contracts5 5 None #$&38?g None #$&/38?h hevm isLastChildhevm isTreeHead1 1 None #$&38?i   None #$&/38?lQ hevm*This is like an unresolved source mapping. hevmAssuming a constructor is loaded, this stepper will run the constructor to create the test contract, give it an initial balance, and run `setUp()'. hevmAssuming a test contract is loaded and initialized, this stepper will run the specified test method and return whether it succeeded. hevm;Randomly generates the calldata arguments and runs the test hevmRuns an invariant test, calls the invariant before execution begins hevm/Define the thread spawner for normal test cases hevm2Define the thread spawner for property based tests hevmDefine the thread spawner for symbolic tests TODO: return a list of VM's hevm2takes a concrete VM and makes all storage symbolic None #$&38?m   None #$&38?n5 None #$&/38?p hevmEach step command in the terminal should finish immediately with one of these outcomes. hevmProgram finished hevmTook one step; more steps to go hevmRun a specific number of steps hevm Finish when a VM predicate holds hevm This turns a Stepper into a state action usable from within the TTY loop, yielding a  StepOutcome depending on the StepMode. None #$&/38>?s hevmAllow blocking and returning hevmForbid blocking and returning hevmProgram finished hevmTook one step; more steps to go hevmCame across blocking request hevmFinish after one opcode step hevmRun a specific number of steps hevmFinish before the next opcode hevm Finish when a VM predicate holds hevmSpecifies whether to do I/O blocking or VM halting while stepping. When we step backwards, we don't want to allow those things. None #$&38:?u  !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeffghijklmmnoopqrstuvwxyz{|}~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                hevm-0.49.0-inplace EVM.DemandEVM.FeeSchedule EVM.HexdumpEVM.PrecompiledEVM.TTYCenteredList EVM.TypesEVM.RLP EVM.PatriciaEVM.Op EVM.Concrete EVM.SymbolicEVM.ABI EVM.SolidityEVMEVM.Transaction EVM.Fetch EVM.Facts EVM.Facts.GitEVM.Exec EVM.Stepper EVM.SymExec EVM.DebugEVM.DappEVM.StorageLayout EVM.Format EVM.Flatten EVM.UnitTest EVM.VMTestEVM.TTY EVM.EmacsEVM.Dev Paths_hevmdemandEIP FeeScheduleg_zerog_base g_verylowg_lowg_midg_high g_extcode g_balanceg_sload g_jumpdestg_ssetg_sresetr_sclearg_selfdestructg_selfdestruct_newaccountr_selfdestructg_create g_codedepositg_call g_callvalue g_callstipend g_newaccountg_exp g_expbyteg_memory g_txcreate g_txdatazerog_txdatanonzero g_transactiong_log g_logdata g_logtopicg_sha3 g_sha3wordg_copy g_blockhash g_extcodehash g_quaddivisorg_ecaddg_ecmulg_pairing_pointg_pairing_baseg_froundr_block g_cold_sloadg_cold_account_accessg_warm_storage_readg_access_list_addressg_access_list_storage_keyeip150eip160 homestead metropoliseip1108eip1884eip2028eip2200istanbuleip2929berlin$fShowFeeSchedule prettyHex simpleHexexecute renderListdrawListElementsNibble ToSizzleBVtoSizzleToSizzle FromSizzleBV fromSizzle FromSizzleSAddrsaddressWord160AddraddressWord160WhiffTodoAndOrEqLTGTSLTSGTIsZeroITESHLSHRSARAddSubMulDivModExpNeg FromKeccak FromBytes FromStorageLiteralVarSymWordS ByteStringSWordCW256BufferConcreteBufferSymbolicBufferInt512Word512w256variteWhiff maybeLitWordw256litlitBytestoChecksumAddressstrip0x hexByteStringhexTextreadNreadNull wordField addrFieldaddrFieldMaybe dataField toWord512 fromWord512numpadLeftpadRight padRight'truncpadpadLeft'word256wordbyteAtfromBEasBE word256Bytes word160ByteshilotoByte unpackNibbles packNibbles keccakBytesword32keccak abiKeccak concatMapM regexMatches$fFiniteBitsWord512 $fBitsWord512 $fIxWord512$fHashableWord512 $fReadWord512 $fShowWord512$fIntegralWord512 $fRealWord512 $fNumWord512 $fEnumWord512$fBoundedWord512 $fOrdWord512 $fEqWord512$fDoubleWordWord512$fBinaryWordInt512$fFiniteBitsInt512 $fBitsInt512 $fIxInt512$fHashableInt512 $fReadInt512 $fShowInt512$fIntegralInt512 $fRealInt512 $fNumInt512 $fEnumInt512$fBoundedInt512 $fOrdInt512 $fEqInt512$fDoubleWordInt512$fBinaryWordWord512$fEqSymbolicBuffer$fMonoidBuffer$fSemigroupBuffer$fParseRecordW256$fParseFieldsW256$fParseFieldW256$fFromJSONKeyW256$fFromJSONW256 $fToJSONW256 $fShowW256 $fReadW256 $fShowBuffer$fToJSONByteStringS$fShowByteStringS $fShowWhiff $fEnumSymWord $fEqSymWord$fBoundedSymWord$fSDivisibleSymWord $fBitsSymWord $fNumSymWord$fEqSymbolicSymWord $fShowSymWord $fToJSONWord $fOrdWord $fRealWord $fNumWord$fIntegralWord $fEnumWord$fEqWord $fBoundedWord$fFiniteBitsWord $fBitsWord $fReadWord $fShowWord$fParseRecordAddr$fParseFieldsAddr$fParseFieldAddr$fFromJSONKeyAddr$fFromJSONAddr $fShowAddr $fReadAddr $fShowSAddr$fFromSizzleBVWordN$fFromSizzleBVWordN0$fToSizzleBVAddr$fToSizzleBVW256 $fShowNibble $fNumNibble$fIntegralNibble $fRealNibble $fOrdNibble $fEnumNibble $fEqNibble $fBitsNibble$fFiniteBitsNibble$fBoundedNibble$fGenericNibble $fNumSAddr $fNumAddr$fIntegralAddr $fRealAddr $fOrdAddr $fEnumAddr$fEqAddr $fBitsAddr $fGenericAddr$fEqByteStringS $fNumW256$fIntegralW256 $fRealW256 $fOrdW256 $fEnumW256$fEqW256 $fBitsW256$fFiniteBitsW256 $fBoundedW256 $fGenericW256 $fDataInt512$fGenericInt512 $fDataWord512$fGenericWord512RLPBSListsliceitemInfo rlpdecode rlplengths rlpencode encodeLenrlpListoctets octetsFull octets160 rlpWord256 rlpWordFull rlpAddrFull rlpWord160 $fShowRLP$fEqRLPMapDBTrieNodeDBNodeEmptyShortcutFullRefHashPathDBKVPutGetinsertDBlookupDBrunDB encodePathrlpRefrlpNodeputNodegetNode lookupPathgetValemptyRef emptyRefs addPrefix insertRefupdatedeleteinsertlookupInrunTrierunMapDB insertValuescalcRoot $fShowRef$fShowDB $fShowNode$fEqNode$fEqRef $fFunctorDB$fApplicativeDB $fMonadDB $fFunctorKVOpOpStopOpAddOpMulOpSubOpDivOpSdivOpModOpSmodOpAddmodOpMulmodOpExp OpSignextendOpLtOpGtOpSltOpSgtOpEqOpIszeroOpAndOpOrOpXorOpNotOpByteOpShlOpShrOpSarOpSha3 OpAddress OpBalanceOpOriginOpCaller OpCallvalueOpCalldataloadOpCalldatasizeOpCalldatacopy OpCodesize OpCodecopy OpGasprice OpExtcodesize OpExtcodecopyOpReturndatasizeOpReturndatacopy OpExtcodehash OpBlockhash OpCoinbase OpTimestampOpNumber OpDifficulty OpGaslimit OpChainid OpSelfbalanceOpPopOpMloadOpMstore OpMstore8OpSloadOpSstoreOpJumpOpJumpiOpPcOpMsizeOpGas OpJumpdestOpCreateOpCall OpStaticcall OpCallcodeOpReturnOpDelegatecall OpCreate2OpRevertOpSelfdestructOpDupOpSwapOpLogOpPush OpUnknownopString$fShowOp$fEqOpwordAtreadByteOrZero byteStringSliceWithDefaultZeroes wordValue sliceMemory writeMemoryreadMemoryWordreadMemoryWord32 setMemoryWord setMemoryByte keccakBlob^ createAddresscreate2AddresslitWordlitAddr maybeLitAddr maybeLitBytesforceLit forceLitBytes forceBuffersdivsmodaddmodmulmodsltsgtswordAtreadByteOrZero'sliceWithZero' writeMemory'readMemoryWord'readMemoryWord32'setMemoryWord'setMemoryByte' readSWord'select'readSWordWithBoundlen sliceWithZero readSWordindex symSHA256N symkeccakNtoSInt symkeccak' symSHA256rawVal whiffValuesimplifyConditionAbiValsNoValsCAbiSAbiSolErrorEventIndexed NotIndexed Anonymity Anonymous NotAnonymousAbiKindDynamicStaticAbiType AbiUIntType AbiIntTypeAbiAddressType AbiBoolType AbiBytesTypeAbiBytesDynamicType AbiStringTypeAbiArrayDynamicType AbiArrayType AbiTupleTypeAbiValueAbiUIntAbiInt AbiAddressAbiBoolAbiBytesAbiBytesDynamic AbiStringAbiArrayDynamicAbiArrayAbiTuple formatStringabiKind abiValueTypeabiTypeSoliditygetAbiputAbi getAbiSeqencodeAbiValuedecodeAbiValueselector abiMethod parseTypeNameemptyAbi genAbiValue makeAbiValue parseAbiValue decodeBufferdecodeStaticArgs$fArbitraryAbiType $fShowAbiType$fArbitraryAbiValue$fShowAbiValue $fReadBoolz $fShowAbiVals$fShowSolError $fOrdSolError $fEqSolError$fGenericSolError $fShowEvent $fOrdEvent $fEqEvent$fGenericEvent $fShowIndexed $fOrdIndexed $fEqIndexed$fGenericIndexed$fShowAnonymity$fOrdAnonymity $fEqAnonymity$fGenericAnonymity $fShowAbiKind $fReadAbiKind $fEqAbiKind $fOrdAbiKind$fGenericAbiKind$fReadAbiValue $fEqAbiValue $fOrdAbiValue$fGenericAbiValue $fReadAbiType $fEqAbiType $fOrdAbiType$fGenericAbiTypeCodeTypeCreationRuntimeSrcMapSM srcMapOffset srcMapLength srcMapFile srcMapJumpsrcMapModifierDepthJumpTypeJumpIntoJumpFrom JumpRegular Reference _refStart _refLength SourceCache _sourceFiles _sourceLines _sourceAsts MutabilityPureView NonPayablePayableMethod _methodOutput _methodInputs _methodName_methodSignature_methodMutability SolcContract_runtimeCodehash_creationCodehash _runtimeCode _creationCode _contractName_constructorInputs_abiMap _eventMap _errorMap_immutableReferences_storageLayout_runtimeSrcmap_creationSrcmapSlotTypeStorageMapping StorageValue StorageItem_type_offset_slot$fReadSlotType$fShowSlotType$fMonoidSourceCache$fSemigroupSourceCache$fFromJSONReference$fShowCodeType $fEqCodeType $fOrdCodeType$fShowSrcMapParseState$fShowSolcContract$fEqSolcContract$fGenericSolcContract $fShowSrcMap $fEqSrcMap $fOrdSrcMap$fGenericSrcMap$fShowJumpType $fEqJumpType $fOrdJumpType$fGenericJumpType$fShowReference $fEqReference$fShowSourceCache$fEqSourceCache$fGenericSourceCache $fShowMethod $fEqMethod $fOrdMethod$fGenericMethod$fShowMutability$fEqMutability$fOrdMutability$fGenericMutability$fShowStorageItem$fEqStorageItem $fEqSlotTypeabiMapconstructorInputs contractName creationCodecreationCodehashcreationSrcmaperrorMapeventMap runtimeCoderuntimeCodehash runtimeSrcmap storageLayout sourceAsts sourceFiles sourceLinesLanguageSolidityYul methodInputsmethodMutability methodName methodOutputmethodSignature makeSrcMaps lineSubrangereadSolcyul yulRuntimesolidity solcRuntime functionAbireadJSONreadCombinedJSON readStdJSON signatureparseMethodInputcontainsLinkerHole solidity'yul'solcstdjsonstripBytecodeMetadatastripBytecodeMetadataSymastIdMap astSrcMap$fToJSONStandardJSON$fShowLanguageBlock _coinbase _timestamp_number _difficulty _gaslimit_baseFee _maxCodeSize _scheduleEnv _contracts_chainId _storageModel _sha3Crack _keccakUsed StorageModel ConcreteS SymbolicSInitialSContract _contractcode_storage_balance_nonce _codehash_opIxMap_codeOps _external _origStorageStorageConcreteSymbolic ContractCodeInitCode RuntimeCodeSubState_selfdestructs_touchedAccounts_accessedAddresses_accessedStorageKeys_refundsTxState _gasprice _txgaslimit_txPriorityFee_origin_toAddr_value _substate _isCreate _txReversion FrameState _contract _codeContract_code_pc_stack_memory _memorySize _calldata _callvalue_caller_gas _returndata_static FrameContextCreationContext CallContextcreationContextAddresscreationContextCodehashcreationContextReversioncreationContextSubstatecallContextTargetcallContextContextcallContextOffsetcallContextSizecallContextCodehashcallContextAbicallContextDatacallContextReversioncallContextSubStateFrame _frameContext _frameStateLogVMOpts vmoptContract vmoptCalldata vmoptValuevmoptPriorityFee vmoptAddress vmoptCaller vmoptOriginvmoptGas vmoptGaslimit vmoptNumbervmoptTimestamp vmoptCoinbasevmoptDifficultyvmoptMaxCodeSizevmoptBlockGaslimit vmoptGasprice vmoptBaseFee vmoptSchedule vmoptChainId vmoptCreatevmoptStorageModelvmoptTxAccessList vmoptAllowFFICache_fetched_pathIsUniqueUniqueMultiple InconsistentUTimeoutUBranchConditionCaseUnknown Inconsistent CodeLocationChoosePleaseChoosePathQueryPleaseFetchContractPleaseMakeUniquePleaseFetchSlot PleaseAskSMT PleaseDoFFI TraceData EventTrace FrameTrace QueryTrace ErrorTrace EntryTrace ReturnTraceTrace _traceOpIx_traceContract _traceDataVM_result_state_frames_env_block_tx_logs_traces_cache_burned _constraints _iterations _allowFFIVMResult VMFailure VMSuccessError BalanceTooLowUnrecognizedOpcodeSelfDestruction StackUnderrunBadJumpDestinationRevertOutOfGas BadCheatCodeStackLimitExceededIllegalOverflowStateChangeWhileStaticInvalidMemoryAccessCallDepthLimitReachedMaxCodeSizeExceeded InvalidFormatPrecompileFailureUnexpectedSymbolicArgDeadPath NotUnique SMTTimeoutFFI blankState$fOrdContractCode$fEqContractCode $fEqStorage$fParseFieldStorageModel $fShowChoose $fShowQuery$fShowVM $fShowTrace$fShowTraceData $fShowBlock $fShowEnv $fShowVMOpts$fReadStorageModel$fShowStorageModel $fShowCache $fShowFrame$fShowFrameContext $fShowTxState $fShowStorage$fShowContractCode$fShowSubState$fShowFrameState $fShowLog$fShowIsUnique$fShowBranchCondition$fShowContract$fShowVMResult $fShowErrorcalldatacaller callvaluecode codeContractcontractgasmemory memorySizepc returndatastackstatic frameContext frameStatebaseFeecoinbase difficultygaslimit maxCodeSizenumberschedule timestampgaspriceisCreateoriginsubstatetoAddr txPriorityFee txReversion txgaslimitvalueaccessedAddressesaccessedStorageKeysrefunds selfdestructstouchedAccountsbalancecodeOpscodehash contractcodeexternalnonceopIxMap origStoragestoragechainId contracts keccakUsed sha3Crack storageModelfetchedpath traceContract traceData traceOpIx FrameResult FrameReturned FrameReverted FrameErrored CheatActionallowFFIblockburnedcache constraintsenvframes iterationslogsresultstatetracestxbytecodeunifyCachedContractcurrentContractmakeVminitialContractcontractWithStorenextexec1transfer callChecksprecompiledContractexecutePrecompile truncpadlit lazySliceparseModexpLengthisZero asIntegernooppushTopushToSequencegetCodeLocation makeUniqueaskSMT fetchAccount readStorage writeStorage accessStorage accountExists accountEmptyfinalize loadContract limitStack notStaticburnforceConcreteAddr forceConcreteforceConcrete2forceConcrete3forceConcrete4forceConcrete5forceConcrete6forceConcreteBufferrefundunRefund touchAccount selfdestruct accessAndBurnaccessAccountForGasaccessStorageForGas cheatCodecheat cheatActionsethsign delegateCall collisioncreate replaceCodereplaceCodeOfSelf resetStatevmErrorunderrun finishFrameaccessUnboundedMemoryRangeaccessMemoryRangeaccessMemoryWordcopyBytesToMemorycopyCallBytesToMemory readMemory word256AtwithTraceLocation pushTrace insertTracepopTracezipperRootForest traceForesttraceLogpushpushSymstackOp1stackOp2stackOp3 checkJumpopSize mkOpIxMapvmOpvmOpIxopParamsreadOp mkCodeOps costOfCall costOfCreateconcreteModexpGasFeecostOfPrecompile memoryCostceilDiv allButOne64thlog2 $fMonoidCache$fSemigroupCache$fShowFrameResult TransactiontxData txGasLimit txGasPricetxNoncetxRtxStxToAddrtxVtxValuetxType txAccessListtxMaxPriorityFeeGastxMaxFeePerGasTxTypeLegacyTransactionAccessListTransactionEIP1559TransactionAccessListEntry accessAddressaccessStorageKeys txAccessMapecrecsender signingDataaccessListPrice txGasCost accountAt newAccountsetupTxinitTx$fFromJSONAccessListEntry$fFromJSONTransaction$fShowTransaction $fShowTxType $fEqTxType$fShowAccessListEntryFetcherToRPCtoRPC BlockNumberLatestRpcQuery QueryCode QueryBlock QueryBalance QueryNonce QuerySlot QueryChainIdrpcreadText fetchQuery parseBlockfetchWithSessionfetchContractWithSessionfetchSlotWithSessionfetchBlockWithSessionfetchBlockFromfetchContractFrom fetchSlotFromhttpzerooraclechecksat checkBranch$fToRPCBlockNumber $fToRPCBool $fToRPCW256 $fToRPCAddr$fShowRpcQueryFilefilePathfileDataData dataASCIIFact BalanceFact NonceFact StorageFactCodeFactaddrwhatwhichblob contractFacts cacheFactsvmFactsapply applyCache factToFile fileToFact $fOrdFact$fAsASCIIByteString $fAsASCIIWord $fAsASCIIAddr$fEqFile $fOrdFile $fShowFile$fEqData $fOrdData $fShowData$fEqPath $fOrdPath $fShowPath$fEqFact $fShowFactRepoAt saveFacts loadFacts $fEqRepoAt $fOrdRepoAt $fShowRepoAt ethrunAddressvmForEthrunCreationexecrun execWhileStepperActionExecRunWaitAskIOActwaitaskevmevmIO execFullyrunFullyenteringenter interpret Postcondition Precondition BranchInfo_vm_branchConditionEquivalenceResult VerifyResult ProofResultQedCexTimeoutsbytes32 sbytes128 sbytes256 sbytes512 sbytes1024mkByte symAbiArg symCalldata abstractVM loadSymVM doInterpret interpret'maxIterationsReached checkAssertcheckAssertionsdefaultPanicCodes allPanicCodespanicMsgverifyContractpruneDeadPathsconsistentPathconsistentTreeleavesverifyequivalenceCheckboth'showCounterexampleModeDebug JsonTraceobjectprettyContractprettyContracts srcMapCodePos srcMapCode$fEqMode $fShowModeTest ConcreteTest SymbolicTest InvariantTest DappContext _contextInfo _contextEnvCoderawimmutableLocationsDappInfo _dappRoot_dappSolcByName_dappSolcByHash_dappSolcByCode _dappSources_dappUnitTests _dappAbiMap _dappEventMap _dappErrorMap _dappAstIdMap_dappAstSrcMap $fShowCode dappAbiMap dappAstIdMap dappAstSrcMap dappErrorMap dappEventMapdappRootdappSolcByCodedappSolcByHashdappSolcByName dappSources dappUnitTests contextEnv contextInfodappInfo emptyDappunitTestMarkerAbifindAllUnitTestsmkTest findUnitTestsunitTestMethodsFilteredunitTestMethods extractSig traceSrcMapsrcMapfindSrc lookupCode compareCodeshowTraceLocation $fShowTestfindContractDefinitionstorageVariablesForContractnodeIsisStorageVariableDeclarationslotTypeForDeclarationgrokDeclarationTypegrokMappingType grokValueTypeTreeLine_indent_content SignednessSignedUnsignedshowDec showWordExactshowWordExplanationhumanizeInteger showAbiValue showAbiValues textAbiValues textValues parenthesise showValues showValueshowCall showError isPrintable formatBytes formatSBytes formatBString formatSString formatBinary formatSBinary showTraceTree unindexed showTrace getAbiTypesmaybeContractNamemaybeContractName' maybeAbiNamecontractNamePartcontractPathPartprettyvmresult currentSolc$fShowSignednesscontentindentshowTreeIndentSymbol flattenTree flattenForestleftpad showTree' showStorage showLeafInfoshowBranchInfoWithAbi renderTreeflatten ExploreTx CoverageState OpLocation srcContractsrcOpIx ABIMethod TestVMParams testAddress testCaller testOrigin testGasCreate testGasCall testBaseFeetestPriorityFeetestBalanceCreate testCoinbase testNumber testTimestamp testGaslimit testGaspricetestMaxCodeSizetestDifficulty testChainIdUnitTestOptionsverbosemaxIter askSmtItersmaxDepth smtTimeoutsmtStatesolvercovMatchmatchfuzzRunsreplay vmModifierdapp testParams ffiAlloweddefaultGasForCreatingdefaultGasForInvokingdefaultBalanceForTestContractdefaultMaxCodeSizeinitializeUnitTest runUnitTestexecTestStepper exploreStep checkFailuresfuzzTestticksrcMapForOpLocationcurrentOpLocationexecWithCoveragerunWithCoverageinterpretWithCoveragecoverageReportcoverageForUnitTestContractrunUnitTestContractrunTest decodeCallsinitialExplorationStepperexplorationSteppergetTargetContracts exploreRunexecTestrunOnefuzzRunsymRun symFailureprettyCalldata execSymTestcheckSymFailures indentLines passOutput failOutputformatTestLogs formatTestLog word32BytesabiCall makeTxCallinitialUnitTestVm symbolify%getParametersFromEnvironmentVariables$fOrdOpLocation$fEqOpLocation$fShowOpLocationBlockchainCasecheckExpectation parseBCSuite vmForCase$fFromJSONContract$fFromJSONBlock$fFromJSONBlockchainCase$fShowBlockchainError$fShowBlockchainCase $fShowCaseUiStateViewVm ViewContracts ViewPickerViewHelpUiBrowserState_browserContractList _browserVmUiTestPickerState_testPickerList_testPickerDapp _testOpts UiVmState_uiVm_uiStep _uiSnapshots _uiStepper _uiShowMemory _uiTestOptsUiWidgetNameAbiPane StackPane BytecodePane TracePane SolidityPaneTestPickerPane BrowserPanePager$fEqName $fShowName $fOrdName uiShowMemory uiSnapshotsuiStep uiStepper uiTestOptsuiVmtestOptstestPickerDapptestPickerListbrowserContractList browserVm ContinuationStoppedContinueStepModeStep StepUntilPred_ViewVm_ViewContracts _ViewPicker _ViewHelpsnapshotInterval keepExecutingisUnitTestContractmkVty runFromVM initUiVmStatedebuggableTests isFuzzTestmaintakeStep backstepUntilbackstepappEventappinitialUiVmStateForTestmyThemedrawUi drawHelpViewdrawTestPicker drawVmBrowserdrawVm drawHelpBar stepOneOpcodeisNewTraceAddedisNextSourcePosition#isNextSourcePositionWithoutEnteringisExecutionHalted currentSrcMap drawStackPanemessagedrawBytecodePanedim withHighlightprettyIfConcrete drawTracePane solidityListdrawSolidityPane ifTallEnoughopWidget selectedAttrdimAttrwordAttrboldAttr activeAttr _uiVmNextStep _uiVmSolc _uiVmDapp_uiVmStepCount_uiVmFirstState _uiVmFetcher _uiVmMessage_uiVmSentHashes StepPolicy StepNormally StepTimidlyConsole UiStarted UiDappLoadedUiVmSDisplaysexpSexp StepOutcomeReturnedSteppedBlockedStepOneStepManyStepNoneuiVmDapp uiVmFetcheruiVmFirstState uiVmMessage uiVmNextStepuiVmSentHashesuiVmSolc uiVmStepCountupdateUiVmStateupdateSentHashespromptdisplaytxtoutputloophandle handleCmd atFileLine codeByHash allHashesoutputVm parseStepModequoted sexpMemorydefaultUnitTestOptionsinitialStateForTest$fSDisplayByteString$fSDisplayWord $fSDisplay[] $fSDisplay[]0$fSDisplayFrameState$fSDisplayFrameContext$fSDisplayFrame$fSDisplayVMResult$fSDisplayMaybe $fSDisplayMap$fSDisplayBuffer $fSDisplaySBV$fSDisplaySymWord$fSDisplaySBV0$fSDisplayW256$fSDisplayContract$fSDisplayAddr $fSDisplayVM$fSDisplayStorage$fSDisplaySExpr$fSDisplayDappInfo VMTraceResultgasUsedVMTraceopmemSizedepth loadDappInfoghciTest runBCTest ghciBCTestghciTty ghciEmacsfoogetOpvmtracevmresinterpretWithTrace$fGenericVMTraceResult$fToJSONVMTraceResult$fGenericVMTrace$fToJSONVMTracebytestring-0.10.12.0Data.ByteString.Internal ByteStringbaseGHC.BaseStringsbv-8.14-HUoJ4FUeUlKGAsroOEkIAKData.SBV.Core.DataSWord16Data.SBV.Client.BaseIOtoSized FromSized mtl-2.2.2Control.Monad.State.Classputgetinteger-wired-inGHC.Integer.TypeIntegerversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName