!}A*{      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./ 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~        !None"#%27>HMSVX_Ohevm{This 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"#%27>HMSVX_O8/.-,+*)('&%$#"!  0123456788/.-,+*)('&%$#"!  012345678None"#%27>HMSVX_d:hevm: renders a  as a multi-line A 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 ....hevma displays a number in hexidecimal and pads the number with 0 so that it has a minimum length of w.;hevm; converts a  to a - showing the octets grouped in 32-bit words. Sample output 4b c1 ad 8a 5b 47 d7 57hevm returns f for non-control ascii characters. These characters will all fit in a single character when rendered.hevm( breaks up a list into sublists of size n&. The last group may be smaller than n elements. When n8 less not positive the list is returned as one sublist.:;:;None"#%27>HMSVX_ihevm8Opaque representation of the C library's context struct.<hevm5Run a given precompiled contract using the C library.<hevm&The number of the precompiled contracthevmThe input bufferhevmThe desired output sizehevmHopefully, the output buffer<<None"#%27>HMSVX_m=hevmFTurn a list state value into a widget given an item drawing function.=hevm1Rendering function, True for the selected elementhevmWhether the list has focushevmThe List to be renderedhevmrendered widget=>=>None"#%.278=>?HMSVX_xIhevm.Operations over buffers (concrete or symbolic)DA buffer is a list of bytes. For concrete execution, this is simply G. In symbolic settings, it is a list of symbolic bitvectors of size 8.Lhevm7Conversion from a sized BV to a fixed-sized bit-vector.MhevmdConvert a sized bit-vector to the corresponding fixed-sized bit-vector, for instance 'SWord 16' to  . See also .Nhevm<Capture the correspondence between sized and fixed-sized BVsOhevm7Conversion from a fixed-sized BV to a sized bit-vector.PhevmGConvert a fixed-sized bit-vector to the corresponding sized bit-vector,Qhevm'convert between (WordN 256) and Word2565?@ABCDEFGHIKJLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs5VWTURSQOPNLMXIKJFGHCDEYABZ[\]^_`abcdefghijklmn?@opqrsNone"#%27>HMSVX_{ None"#%27>HMSVX_|0O      !"#$%&'()*+,O      !"#$%&'()*+, None"#%27>HMSVX_^/0/0 None"#%247=>?HMSVX_)ChevmThe  function for our desired monadhevmThe  function for the same monadhevmThe puts and gets to execute&123467589:;<=>?@ABCDEFGHIJKLMNOPQRSTUV&>?@<=ABC;89:4675DEF3GHIJKLMNOPQR2S1TUV None"#%27=>?HMSVX_m!bhevm8This type can give insight into the provenance of a term`abgfdihcejklmnopqrstuvwxyzjklbgfdihcem`anopqrstuvwxyz None"#%27>HMSVX_ None"#$%.27>HMSVX_khevmZSymbolic words of 256 bits, possibly annotated with additional "insightful" informationhevmJConvenience functions transporting between the concrete and symbolic realmhevmLNote: these forms are crude and in general, the continuation passing style  forceConcrete[ alternatives should be prefered for better error handling when used during EVM executionhevm Arithmetic operations on SymWordhevm8Operations over symbolic memory (list of symbolic bytes)hevmlCustom instances for SymWord, many of which have direct analogues for concrete words defined in Concrete.hs))None"#%27>HMSVX_m}hevmPretty-print some .11None"#%279>HMSVX_mhevmEvery 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.P! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIghijklmnopqrstuvwxyz{|}~P}~$%&'456789:;<=>?@AEFGHI()*+,-! "#./0123BCDwyvxgnjhkz|orplqmitus{None"#%&',.127=>?HMSUVX_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 o Storage. Reading / Writing from abstract locations causes a runtime failure. Can be nicely combined with RPC.hevmUses i Storage. Reading / Writing never reaches RPC, but always done using an SMT array with no default value.hevmUses o Storage. Reading / Writing never reaches RPC, but always done using an SMT array with 0 as the default value.hevmThe state of a contracthevmiA 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 statehevmvThe cache is data that can be persisted for efficiency: any expensive query that is constant at least within a block.hevm)The possible return values of a SMT queryhevmAlias for the type of e.g. exec1.hevmFQueries 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 failed hevm$Reached STOP, RETURN, or end-of-code!hevmEVM failure modes|hevm*A stack frame can be popped in three ways.}hevmSTOP, RETURN, or no more code~hevmREVERThevmAny other errorhevmCAn "external" view of a contract's bytecode, appropriate for e.g.  EXTCODEHASH.hevm)Initialize empty contract with given codehevmUpdate program counterhevmExecutes the EVM one stephevmHChecks a *CALL for failure; OOG, too many callframes, memory access etc.hevm5Construct SMT Query and halt execution until resolvedhevm5Construct RPC Query and halt execution until resolvedhevm>Loads the selected contract as the current contract to executehevm2Burn gas, failing if insufficient gas is availablehevmOReplace a contract's code, like when CREATE returns from the constructor code.hevm]This function defines how to pop the current stack frame in either of the ways specified by |.gIt also handles the case when the current stack frame is the only one; in this case, we set the final  of the VM execution.hevmXAlthough 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.hevmContract addresshevmStorage slot keyhevm ContinuationU      !543210/,+*)('&%$#".-6HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|~}U!543210/,+*)('&%$#".-      6TSRQPONMLKJIHVU]\[ZYXWedcba`_^hgfqponmlkjivutsrxw{zy|~}None"#%&'127>HMSVX_߲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 "#%27=>?HMSVX_gh! "#$%&'()*! "#'(%$&)*None"#%27>HMSVX_:;<=<=:;None"#%27>HMSVX_ABCDEABCDENone"#%&'.27>HMSVX_| Fhevm'Type alias for an operational monad of ActionGhevm-The instruction type of the operational monadHhevm6Keep executing until an intermediate result is reachedIhevm5Keep executing until an intermediate state is reachedJhevmWait for a query to be resolvedKhevmMultiple things can happenLhevmEmbed a VM state transformationQhevm4Run the VM until final result, resolving all queriesRhevm Run the VM until its final stateFGILHJKMNOPQRSTUGILHJKFMQRNOPSTUNone"#%.27>HMSVX_k Xhevm@Convenience functions for generating large symbolic byte stringsZhevm@Convenience functions for generating large symbolic byte strings[hevm@Convenience functions for generating large symbolic byte strings\hevm@Convenience functions for generating large symbolic byte strings]hevmAbstract calldata argument generation We don't assume input types are restricted to their proper range here; such assumptions should instead be given as preconditions. This could catch some interesting calldata mismanagement errors.^hevm{Generates 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.ahevmkInterpreter which explores all paths at | branching points. | returns a list of possible final evm statesghevmSymbolically execute the VM and check all endstates against the postcondition, if available. Returns `Right VM` if the postcondition can be violated, where @ is a prestate counterexample, or `Left (VM, [VM])`, a pair of prestate and post vm states.hhevmeCompares two contract runtimes for trace equivalence by running two VMs and comparing the end states.VWXYZ[\]^_`abcdefghijXZ[\Y]^_`abWVcdefghijNone"#%27>HMSVX_kmlnopqrkmlnopqrNone"#%27>HMSVX_uv~}|{zyxwuv~}|{zyxwNone"#%27>HMSVX_a  None"#%.27>HMSVX_gNone"#%27>HMSVX_ None"#%27>HMSVX_ hevm,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 addressNone"#%27>HMSVX_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 testhevm0Define the thread spawner for normal test cases hevm2Define the thread spawner for property based testsBB!None"#%27>HMSVX_None"#%.27>HMSVX_CChevmXEach step command in the terminal should finish immediately with one of these outcomes.DhevmProgram finishedEhevmTook one step; more steps to goGhevmRun a specific number of stepsHhevm Finish when a VM predicate holdsOhevm This turns a StepperB into a state action usable from within the TTY loop, yielding a  StepOutcome depending on the StepMode.l     $#"! %&.-,+*)('23456789:;<=>?@ABCDEFHGIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwl&.-,+*)('%$#"!      =<;:98765432@?>BAMLKJNIFHGCDEOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwNone"#%.27=>?HMSVX_'y hevmAllow blocking and returninghevmForbid blocking and returninghevmProgram finishedhevmTook one step; more steps to gohevmCame across blocking requesthevmFinish after one opcode stephevmRun a specific number of stepshevmFinish before the next opcodehevm Finish when a VM predicate holdshevmSpecifies whether to do I/O blocking or VM halting while stepping. When we step backwards, we don't want to allow those things.Axy~}|{zAxy~}|{z None"#%27>HMSVX_*7"#$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_``aabbcddefghijklmnooppqqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH I J K L M N O P Q R S T U V V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                           !"#$%&'()*+,-./01234567889:;<==>?@ABBCDEFGHIJKLMNOPQRRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     UU !"#$%&'()*+,-./01223456789:;<=>?@AB:CDEFGHIJKLMNOPQRSTUJVWXYZ[\]^_`@abcdefghhijklmnopqrstuvwxyz{|}~@      !"#$%&'()*+,-./01234567J89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu/vwx12&yz{|}~JJQ=K>        !!!!!!!!hevm-0.42.0-inplace EVM.DemandEVM.FeeSchedule EVM.HexdumpEVM.PrecompiledEVM.TTYCenteredList EVM.TypesEVM.RLPEVM.Op EVM.Keccak EVM.Patricia EVM.ConcreteEVM.Transaction EVM.SymbolicEVM.ABI EVM.SolidityEVM EVM.Fetch EVM.Facts EVM.Facts.GitEVM.Exec EVM.Stepper EVM.SymExec EVM.DebugEVM.DappEVM.StorageLayout EVM.Format EVM.Flatten EVM.VMTest EVM.UnitTestEVM.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_blockeip150eip160 homestead metropoliseip1108eip1884eip2028eip2200istanbul$fShowFeeSchedule prettyHex simpleHexexecute renderListdrawListElementsNibble ByteStringSSAddrsaddressWord160AddraddressWord160BufferConcreteBufferSymbolicBuffer FromSizzleBV fromSizzle FromSizzle ToSizzleBVtoSizzleToSizzleW256Int512Word512litBytesstrip0x hexByteStringhexTextreadNreadNull wordField addrFieldaddrFieldMaybe dataField toWord512 fromWord512numpadLeftpadRighttruncpadword256wordbyteAtfromBEasBE word256Bytes word160ByteshilotoByte unpackNibbles packNibbles$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$fParseRecordW256$fParseFieldsW256$fParseFieldW256$fFromJSONKeyW256$fFromJSONW256 $fShowW256 $fReadW256$fEqSymbolicBuffer$fMonoidBuffer$fSemigroupBuffer$fParseRecordAddr$fParseFieldsAddr$fParseFieldAddr$fFromJSONKeyAddr$fFromJSONAddr $fShowAddr $fReadAddr$fFromSizzleBVWordN$fFromSizzleBVWordN0$fToSizzleBVAddr$fToSizzleBVW256 $fShowSAddr$fReadByteStringS$fShowByteStringS $fShowNibble $fDataWord512$fGenericWord512 $fDataInt512$fGenericInt512 $fNumW256$fIntegralW256 $fRealW256 $fOrdW256 $fEnumW256$fEqW256 $fBitsW256$fFiniteBitsW256 $fBoundedW256 $fGenericW256 $fShowBuffer $fNumAddr$fIntegralAddr $fRealAddr $fOrdAddr $fEnumAddr$fEqAddr $fBitsAddr $fGenericAddr $fNumSAddr$fEqByteStringS $fNumNibble$fIntegralNibble $fRealNibble $fOrdNibble $fEnumNibble $fEqNibble $fBitsNibble$fFiniteBitsNibble$fBoundedNibble$fGenericNibbleRLPBSListsliceitemInfo rlpdecode rlplengths rlpencode encodeLenrlpListoctets octets160 rlpWord256 rlpWord160 $fShowRLP$fEqRLPOpOpStopOpAddOpMulOpSubOpDivOpSdivOpModOpSmodOpAddmodOpMulmodOpExp OpSignextendOpLtOpGtOpSltOpSgtOpEqOpIszeroOpAndOpOrOpXorOpNotOpByteOpShlOpShrOpSarOpSha3 OpAddress OpBalanceOpOriginOpCaller OpCallvalueOpCalldataloadOpCalldatasizeOpCalldatacopy OpCodesize OpCodecopy OpGasprice OpExtcodesize OpExtcodecopyOpReturndatasizeOpReturndatacopy OpExtcodehash OpBlockhash OpCoinbase OpTimestampOpNumber OpDifficulty OpGaslimit OpChainid OpSelfbalanceOpPopOpMloadOpMstore OpMstore8OpSloadOpSstoreOpJumpOpJumpiOpPcOpMsizeOpGas OpJumpdestOpCreateOpCall OpStaticcall OpCallcodeOpReturnOpDelegatecall OpCreate2OpRevertOpSelfdestructOpDupOpSwapOpLogOpPush OpUnknownopString$fShowOp$fEqOpkeccak abiKeccakMapDBTrieNodeDBNodeEmptyShortcutFullRefHashLiteralPathDBKVPutGetinsertDBlookupDBrunDB encodePathrlpRefrlpNodeputNodegetNode lookupPathgetValemptyRef emptyRefs addPrefix insertRefupdatedeleteinsertlookupInrunTrierunMapDB insertValuescalcRoot $fShowRef$fShowDB $fFunctorKV $fFunctorDB$fApplicativeDB $fMonadDB $fShowNode$fEqNode$fEqRefWordCWhiffDull FromKeccakVar FromBytes InfixBinOpBinOpUnOpwordAtreadByteOrZero byteStringSliceWithDefaultZeroesw256 wordValue sliceMemory writeMemoryreadMemoryWordreadMemoryWord32 setMemoryWord setMemoryByte readBlobWordblobSize keccakBlob^ createAddresscreate2Address $fOrdWord $fRealWord $fNumWord$fIntegralWord $fEnumWord$fEqWord $fBoundedWord$fFiniteBitsWord $fBitsWord $fReadWord $fShowWord $fShowWhiff TransactiontxData txGasLimit txGasPricetxNoncetxRtxStxToAddrtxVtxValueecrecsender signingData txGasCost$fFromJSONTransaction$fShowTransactionSymWordSsw256litWordw256litlitAddr maybeLitWord maybeLitAddr maybeLitBytesforceLit forceLitBytes forceBuffersdivsmodaddmodmulmodsltsgt shiftRight'swordAtreadByteOrZero'sliceWithZero' writeMemory'readMemoryWord'readMemoryWord32'setMemoryWord'setMemoryByte' readSWord'select'readSWordWithBoundlengrabditch sliceWithZero readSWord$fOrdSymbolicSymWord $fEnumSymWord $fEqSymWord$fBoundedSymWord$fMergeableSymWord$fSDivisibleSymWord $fBitsSymWord $fNumSymWord$fEqSymbolicSymWord $fShowSymWordEventIndexed NotIndexed Anonymity Anonymous NotAnonymousAbiKindDynamicStaticAbiType AbiUIntType AbiIntTypeAbiAddressType AbiBoolType AbiBytesTypeAbiBytesDynamicType AbiStringTypeAbiArrayDynamicType AbiArrayType AbiTupleTypeAbiValueAbiUIntAbiInt AbiAddressAbiBoolAbiBytesAbiBytesDynamic AbiStringAbiArrayDynamicAbiArrayAbiTupleabiKind abiValueTypeabiTypeSoliditygetAbiputAbi getAbiSeqencodeAbiValuedecodeAbiValueselector abiMethod abiCalldata parseTypeNameemptyAbi genAbiValue makeAbiValue parseAbiValue$fArbitraryAbiType $fShowAbiType$fArbitraryAbiValue$fShowAbiValue $fReadBoolz $fReadAbiType $fEqAbiType $fOrdAbiType$fGenericAbiType$fReadAbiValue $fEqAbiValue $fOrdAbiValue$fGenericAbiValue $fShowAbiKind $fReadAbiKind $fEqAbiKind $fOrdAbiKind$fGenericAbiKind$fShowAnonymity$fOrdAnonymity $fEqAnonymity$fGenericAnonymity $fShowIndexed $fOrdIndexed $fEqIndexed$fGenericIndexed $fShowEvent $fOrdEvent $fEqEvent$fGenericEventCodeTypeCreationRuntimeSrcMapSM srcMapOffset srcMapLength srcMapFile srcMapJumpsrcMapModifierDepthJumpTypeJumpIntoJumpFrom JumpRegular SourceCache _snippetCache _sourceFiles _sourceLines _sourceAstsMethod _methodOutput _methodInputs _methodName_methodSignature SolcContract_runtimeCodehash_creationCodehash _runtimeCode _creationCode _contractName_constructorInputs_abiMap _eventMap_storageLayout_runtimeSrcmap_creationSrcmap _contractAstSlotTypeStorageMapping StorageValue StorageItem_type_offset_slot$fReadSlotType$fShowSlotType$fMonoidSourceCache$fSemigroupSourceCache $fEqSlotType$fShowStorageItem$fEqStorageItem $fShowMethod $fEqMethod $fOrdMethod$fGenericMethod$fShowSourceCache$fEqSourceCache$fGenericSourceCache$fShowJumpType $fEqJumpType $fOrdJumpType$fGenericJumpType $fShowSrcMap $fEqSrcMap $fOrdSrcMap$fGenericSrcMap$fShowSolcContract$fEqSolcContract$fGenericSolcContract$fShowSrcMapParseState$fShowCodeType $fEqCodeType $fOrdCodeTypeabiMapconstructorInputs contractAst contractName creationCodecreationCodehashcreationSrcmapeventMap runtimeCoderuntimeCodehash runtimeSrcmap snippetCache sourceAsts sourceFiles sourceLines methodInputs methodName methodOutputmethodSignature makeSrcMaps lineSubrangereadSolcsolidity solcRuntime functionAbireadJSON signatureparseMethodInput solidity'stripBytecodeMetadataastIdMap astSrcMapBlock _coinbase _timestamp_number _difficulty _gaslimit _maxCodeSize _scheduleEnv _contracts_chainId _storageModel _sha3Crack _keccakUsed StorageModel ConcreteS SymbolicSInitialSContract _contractcode_storage_balance_nonce _codehash_opIxMap_codeOps _external _origStorageStorageConcreteSymbolic ContractCodeInitCode RuntimeCodeSubState_selfdestructs_touchedAccounts_refundsTxState _gasprice _txgaslimit_origin_toAddr_value _substate _isCreate _txReversion FrameState _contract _codeContract_code_pc_stack_memory _memorySize _calldata _callvalue_caller_gas _returndata_static FrameContextCreationContext CallContextcreationContextCodehashcreationContextReversioncreationContextSubstatecallContextTargetcallContextContextcallContextOffsetcallContextSizecallContextCodehashcallContextAbicallContextDatacallContextReversioncallContextSubStateFrame _frameContext _frameStateLogVMOpts vmoptContract vmoptCalldata vmoptValue vmoptAddress vmoptCaller vmoptOriginvmoptGas vmoptGaslimit vmoptNumbervmoptTimestamp vmoptCoinbasevmoptDifficultyvmoptMaxCodeSizevmoptBlockGaslimit vmoptGasprice vmoptSchedule vmoptChainId vmoptCreatevmoptStorageModelCache_fetched_pathBranchConditionCaseUnknown Inconsistent CodeLocationChoosePleaseChoosePathQueryPleaseFetchContractPleaseFetchSlot PleaseAskSMT TraceData EventTrace FrameTrace QueryTrace ErrorTrace EntryTrace ReturnTraceTrace_traceCodehash _traceOpIx _traceDataVM_result_state_frames_env_block_tx_logs_traces_cache_burned_pathConditions _iterationsVMResult VMFailure VMSuccessError BalanceTooLowUnrecognizedOpcodeSelfDestruction StackUnderrunBadJumpDestinationRevertNoSuchContractOutOfGas BadCheatCodeStackLimitExceededIllegalOverflowStateChangeWhileStaticInvalidMemoryAccessCallDepthLimitReachedMaxCodeSizeExceededPrecompileFailureUnexpectedSymbolicArgDeadPath blankState $fEqStorage$fParseFieldStorageModel $fShowChoose $fShowQuery$fShowBranchCondition$fShowContractCode$fEqContractCode $fShowStorage $fShowCache$fReadStorageModel$fShowStorageModel $fShowVMOpts $fShowBlock $fEqContract$fShowContract$fShowVMResult $fShowErrorcalldatacaller callvaluecode codeContractcontractgasmemory memorySizepc returndatastackstatic frameContext frameStatecoinbase difficultygaslimit maxCodeSizenumberschedule timestampgaspriceisCreateoriginsubstatetoAddr txReversion txgaslimitvaluerefunds selfdestructstouchedAccountsbalancecodeOpscodehash contractcodeexternalnonceopIxMap origStoragestoragechainId contracts keccakUsed sha3Crack storageModelfetchedpath traceCodehash traceData traceOpIx FrameResult FrameReturned FrameReverted FrameErrored CheatActionblockburnedcacheenvframes iterationslogspathConditionsresultstatetracestxbytecodeunifyCachedContractcurrentContractmakeVminitialContractcontractWithStorenextexec1transfer callChecksprecompiledContractexecutePrecompile truncpadlit lazySliceparseModexpLengthisZero asIntegernooppushTopushToSequencegetCodeLocationaskSMT fetchAccount readStorage writeStorage accessStorage accountExists accountEmptyfinalize loadContract limitStack notStaticburnforceConcreteAddr forceConcreteforceConcrete2forceConcrete3forceConcrete4forceConcrete5forceConcrete6forceConcreteBufferrefundunRefund touchAccount selfdestruct cheatCodecheat cheatActions delegateCall collisioncreate replaceCodereplaceCodeOfSelf resetStatevmErrorunderrun finishFrameaccessUnboundedMemoryRangeaccessMemoryRangeaccessMemoryWordcopyBytesToMemorycopyCallBytesToMemory readMemory word256AtwithTraceLocation pushTrace insertTracepopTracezipperRootForest traceForesttraceLogpushpushSymstackOp1stackOp2stackOp3 checkJumpopSize mkOpIxMapvmOpvmOpIxopParamsreadOp mkCodeOps costOfCall costOfCreatecostOfPrecompile memoryCost symSHA256N symkeccakNtoSInt symkeccak' symSHA256ceilDiv allButOne64thlog2 $fMonoidCache$fSemigroupCache$fShowFrameResultFetcherToRPCtoRPC BlockNumberLatestRpcQuery QueryCode QueryBlock QueryBalance QueryNonce QuerySlot QueryChainIdrpcreadText fetchQuery parseBlockfetchWithSessionfetchContractWithSessionfetchSlotWithSessionfetchBlockWithSessionfetchBlockFromfetchContractFrom fetchSlotFromhttporaclezerochecksat checkBranch$fToRPCBlockNumber $fToRPCBool $fToRPCW256 $fToRPCAddr$fShowRpcQueryFilefilePathfileDataData dataASCIIFact BalanceFact NonceFact StorageFactCodeFactaddrwhatwhichblob contractFacts cacheFactsvmFactsapply applyCache factToFile fileToFact $fOrdFact$fAsASCIIByteString $fAsASCIIWord $fAsASCIIAddr$fEqFact $fShowFact$fEqPath $fOrdPath $fShowPath$fEqData $fOrdData $fShowData$fEqFile $fOrdFile $fShowFileRepoAt saveFacts loadFacts $fEqRepoAt $fOrdRepoAt $fShowRepoAt ethrunAddressvmForEthrunCreationexecrun execWhileStepperActionExecRunWaitAskwaitaskevm execFullyrunFullyenteringenter interpret Postcondition Preconditionsbytes32 sbytes128 sbytes256 sbytes512 sbytes1024 symAbiArg symCalldata abstractVM loadSymVMmaxIterationsReached checkAssertcheckAssertionsverifyContractpruneDeadPathsverifyequivalenceCheckboth'showCounterexampleModeDebugobjectprettyContractprettyContracts srcMapCodePos srcMapCode$fEqMode $fShowModeDappInfo _dappRoot_dappSolcByName_dappSolcByHash _dappSources_dappUnitTests _dappEventMap _dappAstIdMap_dappAstSrcMap dappAstIdMap dappAstSrcMap dappEventMapdappRootdappSolcByHashdappSolcByName dappSources dappUnitTestsdappInfounitTestMarkerAbi findUnitTestsunitTestMethodsFilteredunitTestMethods traceSrcMapshowTraceLocationfindContractDefinition storageLayoutstorageVariablesForContractnodeIsisStorageVariableDeclarationslotTypeForDeclarationgrokDeclarationTypegrokMappingType grokValueType SignednessSignedUnsignedshowDec showWordExactshowWordExplanationhumanizeInteger showAbiValues showAbiArray showAbiValue isPrintable formatBytes formatSBytes formatQString formatString formatSString formatBinary formatSBinary showTraceTree showTracegetAbiMethodOutput getAbiTypesshowCall showError showValues showValuemaybeContractName maybeAbiNamecontractNamePartcontractPathPart$fShowSignednessflattencheckExpectation parseBCSuite vmForCasesetupTxinitTx$fFromJSONContract$fFromJSONBlock$fFromJSONBlockchainCase $fShowCase$fShowBlockchainCase$fShowBlockchainError CoverageState OpLocation srcCodehashsrcOpIx ABIMethod TestVMParams testAddress testCaller testOrigin testGasCreate testGasCalltestBalanceCreatetestBalanceCall testCoinbase testNumber testTimestamp testGaslimit testGaspricetestMaxCodeSizetestDifficulty testChainIdUnitTestOptionsverbosemaxItermatchfuzzRunsreplay vmModifierdapp testParamsdefaultGasForCreatingdefaultGasForInvokingdefaultBalanceForCreatordefaultBalanceForCreateddefaultMaxCodeSizeinitializeUnitTest runUnitTestexecTest checkFailuresfuzzTestticksrcMapForOpLocationcurrentOpLocationexecWithCoveragerunWithCoverageinterpretWithCoveragecoverageReportcoverageForUnitTestContractrunUnitTestContractrunTestrunOnefuzzRun indentLines passOutput failOutputformatTestLogs formatTestLog word32Bytes setupCallinitialUnitTestVmmaybeM%getParametersFromEnvironmentVariables$fEqOpLocation$fOrdOpLocation$fShowOpLocationUiStateViewVm ViewContracts ViewPickerViewHelpUiBrowserState_browserContractList _browserVmUiTestPickerState_testPickerList_testPickerDapp _testOpts UiVmState_uiVm_uiStep _uiSnapshots _uiStepper _uiStackList_uiBytecodeList _uiTraceList_uiSolidityList _uiMessage _uiShowMemory_uiSolc _uiTestOptsUiWidgetNameAbiPane StackPane BytecodePane TracePane SolidityPaneTestPickerPane BrowserPanePager$fEqName $fShowName $fOrdNameuiBytecodeList uiMessage uiShowMemory uiSnapshotsuiSolcuiSolidityList uiStackListuiStep uiStepper uiTestOpts uiTraceListuiVmtestOptstestPickerDapptestPickerListbrowserContractList browserVm ContinuationStoppedContinueStepModeStep StepUntilPred_ViewVm_ViewContracts _ViewPicker _ViewHelpsnapshotIntervalisUnitTestContractmkVty runFromVM initUiVmState concreteTestsmaintakeStepbackstepappEventappinitialUiVmStateForTestmyThemedrawUi drawHelpViewdrawTestPicker drawVmBrowserdrawVm drawHelpBar stepOneOpcodeisNextSourcePosition#isNextSourcePositionWithoutEnteringisExecutionHalted currentSrcMap currentSolcrenderVmupdateUiVmState drawStackPanedrawBytecodePanedim withHighlightprettyIfConcrete drawTracePanedrawSolidityPane ifTallEnoughopWidget selectedAttrdimAttrwordAttrboldAttr activeAttr _uiVmNextStep _uiVmSolc _uiVmDapp_uiVmStepCount_uiVmFirstState _uiVmFetcher _uiVmMessage_uiVmSentHashes StepPolicy StepNormally StepTimidlyConsole UiStarted UiDappLoadedUiVmSDisplaysexpSexp StepOutcomeReturnedSteppedBlockedStepOneStepManyStepNoneuiVmDapp uiVmFetcheruiVmFirstState uiVmMessage uiVmNextStepuiVmSentHashesuiVmSolc uiVmStepCountupdateSentHashespromptdisplaytxtoutputloophandle handleCmd atFileLine codeByHash allHashes prettifyCodeoutputVm parseStepModequoted sexpMemorydefaultUnitTestOptionsinitialStateForTest$fSDisplayByteString$fSDisplayWord $fSDisplay[] $fSDisplay[]0$fSDisplayFrameState$fSDisplayFrameContext$fSDisplayFrame$fSDisplayVMResult$fSDisplayMaybe $fSDisplayMap$fSDisplayBuffer $fSDisplaySBV$fSDisplaySymWord$fSDisplaySBV0$fSDisplayW256$fSDisplayContract$fSDisplayAddr $fSDisplayVM$fSDisplayStorage$fSDisplaySExpr$fSDisplayDappInfo concatMapM loadDappInfoghciTest runBCTest ghciBCTestghciTty ghciEmacsfoobytestring-0.10.8.2Data.ByteString.Internal ByteStringbaseGHC.BaseString paddedShowHexisWorthPrintingghc-prim GHC.TypesTruegroup EthjetContext sbv-8.8.5-DIrB9sI9Y7x97GbGmnyLUfData.SBV.Core.DataSWord16Data.SBV.Client.BaseIOtoSized mtl-2.2.2Control.Monad.State.Classputgetversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName