<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>157015</bug_id>
          
          <creation_ts>2016-04-25 19:35:18 -0700</creation_ts>
          <short_desc>Improve jsc --help and making sampling options</short_desc>
          <delta_ts>2016-05-17 06:29:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1187178</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-25 19:35:18 -0700</bug_when>
    <thetext>* SUMMARY
Improve jsc --help and making sampling options

  • --help doesn&apos;t mention --reportSamplingProfilerData
  • --reportSamplingProfilerData is hard to remember, lets call it --sample
  • --samplingProfilerTimingInterval is hard to remember, lets call it --sampleInterval
  • --options used to print out all options and exit, allowing you to discover options, now it only prints overloaded options
    • lets make --options output all options with help data
    • lets keep --dumpOptions outputting just overridden options

* NOTES
Before:

    $ jsc --help
    Usage: jsc [options] [files] [-- arguments]
      -d         Dumps bytecode (debug builds only)
      -e         Evaluate argument as script code
      -f         Specifies a source file (deprecated)
      -h|--help  Prints this help message
      -i         Enables interactive mode (default if no files are specified)
      -m         Execute as a module
      -s         Installs signal handlers that exit on a crash (Unix platforms only)
      -p &lt;file&gt;  Outputs profiling data to a file
      -x         Output exit code before terminating

      --options                  Dumps all JSC VM options and exits
      --dumpOptions              Dumps all JSC VM options before continuing
      --&lt;jsc VM option&gt;=&lt;value&gt;  Sets the specified JSC VM option

    $ jsc --options
    All JSC runtime options:
       reoptimizationRetryCounterMax=21 (default: 0)

    $ jsc --dumpOptions
    All JSC runtime options:
       reoptimizationRetryCounterMax=21 (default: 0)
    &gt;&gt;&gt;

After:

    $ jsc --help
    Usage: jsc [options] [files] [-- arguments]
      -d         Dumps bytecode (debug builds only)
      -e         Evaluate argument as script code
      -f         Specifies a source file (deprecated)
      -h|--help  Prints this help message
      -i         Enables interactive mode (default if no files are specified)
      -m         Execute as a module
      -s         Installs signal handlers that exit on a crash (Unix platforms only)
      -p &lt;file&gt;  Outputs profiling data to a file
      -x         Output exit code before terminating

      --sample                   Collects and outputs sampling profiler data
      --options                  Dumps all JSC VM options and exits
      --dumpOptions              Dumps all non-default JSC VM options before continuing
      --&lt;jsc VM option&gt;=&lt;value&gt;  Sets the specified JSC VM option

    $ jsc --options
    All JSC runtime options:
       validateOptions=false   ... crashes if mis-typed JSC options were passed to the VM
       dumpOptions=0   ... dumps JSC options (0 = None, 1 = Overridden only, 2 = All, 3 = Verbose)
       useLLInt=true   ... allows the LLINT to be used if true
       useJIT=true   ... allows the baseline JIT to be used if true
       useDFGJIT=true   ... allows the DFG JIT to be used if true
       useRegExpJIT=true   ... allows the RegExp JIT to be used if true
       reportMustSucceedExecutableAllocations=false
       maxPerThreadStackUsage=4194304
       reservedZoneSize=131072
       errorModeReservedZoneSize=65536
       crashIfCantAllocateJITMemory=false
       jitMemoryReservationSize=0   ... Set this number to change the executable allocation size in ExecutableAllocatorFixedVMPool. (In bytes.)
       useSeparatedWXHeap=false
       forceCodeBlockLiveness=false
       forceICFailure=false
       repatchCountForCoolDown=10
       initialCoolDownCount=20
       repatchBufferingCountdown=10
       dumpGeneratedBytecodes=false
       dumpBytecodeLivenessResults=false
       validateBytecode=false
       forceDebuggerBytecodeGeneration=false
       forceProfilerBytecodeGeneration=false
       useFunctionDotArguments=true
       useTailCalls=true
       alwaysUseShadowChicken=false
       shadowChickenLogSize=1000
       shadowChickenStackSizeLimit=100000
       dumpDisassembly=false   ... dumps disassembly of all JIT compiled code upon compilation
       asyncDisassembly=false
       dumpDFGDisassembly=false   ... dumps disassembly of DFG function upon compilation
       dumpFTLDisassembly=false   ... dumps disassembly of FTL function upon compilation
       dumpAllDFGNodes=false
       bytecodeRangeToDFGCompile=&lt;null&gt;   ... bytecode size range to allow DFG compilation on, e.g. 1:100
       bytecodeRangeToFTLCompile=&lt;null&gt;   ... bytecode size range to allow FTL compilation on, e.g. 1:100
       dfgWhitelist=&quot;&quot;   ... file with list of function signatures to allow DFG compilation on
       dumpSourceAtDFGTime=false   ... dumps source code of JS function being DFG compiled
       dumpBytecodeAtDFGTime=false   ... dumps bytecode of JS function being DFG compiled
       dumpGraphAfterParsing=false
       dumpGraphAtEachPhase=false
       dumpDFGGraphAtEachPhase=false   ... dumps the DFG graph at each phase DFG of complitaion (note this excludes DFG graphs during FTL compilation)
       dumpDFGFTLGraphAtEachPhase=false   ... dumps the DFG graph at each phase DFG of complitaion when compiling FTL code
       dumpB3GraphAtEachPhase=false   ... dumps the B3 graph at each phase of compilation
       dumpAirGraphAtEachPhase=false   ... dumps the Air graph at each phase of compilation
       verboseDFGByteCodeParsing=false
       verboseCompilation=false
       verboseFTLCompilation=false
       logCompilationChanges=false
       printEachOSRExit=false
       validateGraph=false
       validateGraphAtEachPhase=false
       verboseValidationFailure=false
       verboseOSR=false
       verboseFTLOSRExit=false
       verboseCallLink=false
       verboseCompilationQueue=false
       reportCompileTimes=false   ... dumps JS function signature and the time it took to compile
       reportFTLCompileTimes=false   ... dumps JS function signature and the time it took to FTL compile
       reportTotalCompileTimes=false
       verboseCFA=false
       verboseFTLToJSThunk=false
       verboseFTLFailure=false
       alwaysComputeHash=false
       testTheFTL=false
       verboseSanitizeStack=false
       useGenerationalGC=true
       eagerlyUpdateTopCallFrame=false
       useOSREntryToDFG=true
       useOSREntryToFTL=true
       useFTLJIT=true   ... allows the FTL JIT to be used if true
       useFTLTBAA=true
       validateFTLOSRExitLiveness=false
       b3AlwaysFailsBeforeCompile=false
       b3AlwaysFailsBeforeLink=false
       ftlCrashes=false
       clobberAllRegsInFTLICSlowPath=false
       useAccessInlining=true
       maxAccessVariantListSize=13
       megamorphicLoadCost=999
       usePolyvariantDevirtualization=true
       usePolymorphicAccessInlining=true
       usePolymorphicCallInlining=true
       usePolymorphicCallInliningForNonStubStatus=false
       maxPolymorphicCallVariantListSize=15
       maxPolymorphicCallVariantListSizeForTopTier=5
       maxPolymorphicCallVariantsForInlining=5
       frequentCallThreshold=2
       minimumCallToKnownRate=0.51
       createPreHeaders=true
       useMovHintRemoval=true
       usePutStackSinking=true
       useObjectAllocationSinking=true
       useConcurrentJIT=true   ... allows the DFG / FTL compilation in threads other than the executing JS thread
       numberOfDFGCompilerThreads=1
       numberOfFTLCompilerThreads=7
       priorityDeltaOfDFGCompilerThreads=0
       priorityDeltaOfFTLCompilerThreads=0
       useProfiler=false
       disassembleBaselineForProfiler=true
       useArchitectureSpecificOptimizations=true
       breakOnThrow=false
       maximumOptimizationCandidateInstructionCount=100000
       maximumFunctionForCallInlineCandidateInstructionCount=180
       maximumFunctionForClosureCallInlineCandidateInstructionCount=100
       maximumFunctionForConstructInlineCandidateInstructionCount=100
       maximumFTLCandidateInstructionCount=20000
       maximumInliningDepth=5   ... maximum allowed inlining depth.  Depth of 1 means no inlining
       maximumInliningRecursion=2
       maximumInliningCallerSize=10000
       maximumVarargsForInlining=100
       usePolyvariantCallInlining=true
       usePolyvariantByIdInlining=true
       useMaximalFlushInsertionPhase=false   ... Setting to true allows the DFG&apos;s MaximalFlushInsertionPhase to run.
       maximumBinaryStringSwitchCaseLength=50
       maximumBinaryStringSwitchTotalLength=2000
       jitPolicyScale=1   ... scale JIT thresholds to this specified ratio between 0.0 (compile ASAP) and 1.0 (compile like normal).
       forceEagerCompilation=false
       thresholdForJITAfterWarmUp=500
       thresholdForJITSoon=100
       thresholdForOptimizeAfterWarmUp=1000
       thresholdForOptimizeAfterLongWarmUp=1000
       thresholdForOptimizeSoon=1000
       executionCounterIncrementForLoop=1
       executionCounterIncrementForEntry=15
       thresholdForFTLOptimizeAfterWarmUp=100000
       thresholdForFTLOptimizeSoon=1000
       ftlTierUpCounterIncrementForLoop=1
       ftlTierUpCounterIncrementForReturn=15
       ftlOSREntryFailureCountForReoptimization=15
       ftlOSREntryRetryThreshold=100
       evalThresholdMultiplier=10
       maximumEvalCacheableSourceLength=256
       randomizeExecutionCountsBetweenCheckpoints=false
       maximumExecutionCountsBetweenCheckpointsForBaseline=1000
       maximumExecutionCountsBetweenCheckpointsForUpperTiers=50000
       likelyToTakeSlowCaseMinimumCount=20
       couldTakeSlowCaseMinimumCount=10
       osrExitCountForReoptimization=100
       osrExitCountForReoptimizationFromLoop=5
       reoptimizationRetryCounterMax=21 (default: 0)
       minimumOptimizationDelay=1
       maximumOptimizationDelay=5
       desiredProfileLivenessRate=0.75
       desiredProfileFullnessRate=0.35
       doubleVoteRatioForDoubleFormat=2
       structureCheckVoteRatioForHoisting=1
       checkArrayVoteRatioForHoisting=1
       minimumNumberOfScansBetweenRebalance=100
       numberOfGCMarkers=7
       opaqueRootMergeThreshold=1000
       minHeapUtilization=0.8
       minCopiedBlockUtilization=0.9
       minMarkedBlockUtilization=0.9
       slowPathAllocsBetweenGCs=0   ... force a GC on every Nth slow path alloc, where N is specified by this option
       percentCPUPerMBForFullTimer=0.0003125
       percentCPUPerMBForEdenTimer=0.0025
       collectionTimerMaxPercentCPU=0.05
       forceWeakRandomSeed=false
       forcedWeakRandomSeed=0
       useZombieMode=false   ... debugging option to scribble over dead objects with 0xdeadbeef
       useImmortalObjects=false   ... debugging option to keep all objects alive forever
       dumpObjectStatistics=false
       logGC=None   ... debugging option to log GC activity (0 = None, 1 = Basic, 2 = Verbose)
       useGC=true
       gcAtEnd=false   ... If true, the jsc CLI will do a GC before exiting
       forceGCSlowPaths=false   ... If true, we will force all JIT fast allocations down their slow paths.
       gcMaxHeapSize=0
       forceRAMSize=0
       recordGCPauseTimes=false
       logHeapStatisticsAtExit=false
       useTypeProfiler=false
       useControlFlowProfiler=false
       useSamplingProfiler=false
       sampleInterval=1000   ... Time between stack traces in microseconds.
       collectSamplingProfilerDataForJSCShell=false   ... This corresponds to the JSC shell&apos;s --sample option.
       alwaysGeneratePCToCodeOriginMap=false   ... This will make sure we always generate a PCToCodeOriginMap for JITed code.
       verifyHeap=false
       numberOfGCCyclesToRecordForVerification=3
       useExceptionFuzz=false
       fireExceptionFuzzAt=0
       validateDFGExceptionHandling=false   ... Causes the DFG to emit code validating exception handling for each node that can exit
       useExecutableAllocationFuzz=false
       fireExecutableAllocationFuzzAt=0
       fireExecutableAllocationFuzzAtOrAfter=0
       verboseExecutableAllocationFuzz=false
       useOSRExitFuzz=false
       fireOSRExitFuzzAtStatic=0
       fireOSRExitFuzzAt=0
       fireOSRExitFuzzAtOrAfter=0
       logB3PhaseTimes=false
       rareBlockPenalty=0.001
       airSpillsEverything=false
       logAirRegisterPressure=false
       maxB3TailDupBlockSize=3
       maxB3TailDupBlockSuccessors=3
       useDollarVM=false   ... installs the $vm debugging tool in global objects
       functionOverrides=&quot;&quot;   ... file with debugging overrides for function bodies
       watchdog=0   ... watchdog timeout (0 = Disabled, N = a timeout period of N milliseconds)
       useICStats=false
       dumpModuleRecord=false
       dumpModuleLoadingState=false
       exposeInternalModuleLoader=false   ... expose the internal module loader object to the global space for debugging
       useSuperSampler=false

    $ jsc --dumpOptions
    All JSC runtime options:
       reoptimizationRetryCounterMax=21 (default: 0)
    &gt;&gt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187183</commentid>
    <comment_count>1</comment_count>
      <attachid>277311</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-25 19:39:12 -0700</bug_when>
    <thetext>Created attachment 277311
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187184</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-25 19:40:22 -0700</bug_when>
    <thetext>Attachment 277311 did not pass style-queue:


ERROR: Source/JavaScriptCore/ChangeLog:10:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/JavaScriptCore/ChangeLog:11:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187432</commentid>
    <comment_count>3</comment_count>
      <attachid>277311</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-26 09:47:08 -0700</bug_when>
    <thetext>Comment on attachment 277311
[PATCH] Proposed Fix

Clearing flags on attachment: 277311

Committed r200092: &lt;http://trac.webkit.org/changeset/200092&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187433</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-26 09:47:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193791</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-05-17 06:29:18 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; * SUMMARY
&gt; Improve jsc --help and making sampling options
&gt; 
&gt;   • --help doesn&apos;t mention --reportSamplingProfilerData
&gt;   • --reportSamplingProfilerData is hard to remember, lets call it --sample
&gt;   • --samplingProfilerTimingInterval is hard to remember, lets call it
&gt; --sampleInterval
&gt;   • --options used to print out all options and exit, allowing you to
&gt; discover options, now it only prints overloaded options
&gt;     • lets make --options output all options with help data
&gt;     • lets keep --dumpOptions outputting just overridden options

Thanks for getting back the old/new --options behaviour . :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277311</attachid>
            <date>2016-04-25 19:39:12 -0700</date>
            <delta_ts>2016-04-26 09:47:08 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>options.patch</filename>
            <type>text/plain</type>
            <size>5718</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA5MDk5YzcuLjg1MDY4OTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTA0LTI1ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92ZSBqc2MgLS1oZWxwIGFu
ZCBtYWtpbmcgc2FtcGxpbmcgb3B0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MDE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2ltcGxpZnkgc2FtcGxpbmcgb3B0aW9ucyB0byBiZSBlYXNpZXIg
dG8gcmVtZW1iZXI6CisKKyAgICAgICAgICAqIC0tcmVwb3J0U2FtcGxpbmdQcm9maWxlckRhdGEg
PT4gLS1zYW1wbGUKKyAgICAgICAgICAqIC0tc2FtcGxpbmdQcm9maWxlclRpbWluZ0ludGVydmFs
ID0+IC0tc2FtcGxlSW50ZXJ2YWwKKworICAgICAgICBVcGRhdGUgdGhlIC0taGVscCB0byBtZW50
aW9uIC0tc2FtcGxlLCBhbmQgcmVzdG9yZSB0aGUgYmVoYXZpb3Igb2YKKyAgICAgICAgLS1vcHRp
b25zIG91dHB1dGluZyBhbGwgcG9zc2libGUgb3B0aW9ucyBzbyB5b3UgY2FuIGRpc2NvdmVyIHdo
aWNoCisgICAgICAgIG9wdGlvbnMgYXJlIGF2YWlsYWJsZS4gICAgICAgIAorCisgICAgICAgICog
anNjLmNwcDoKKyAgICAgICAgKHByaW50VXNhZ2VTdGF0ZW1lbnQpOgorICAgICAgICAoQ29tbWFu
ZExpbmU6OnBhcnNlQXJndW1lbnRzKToKKyAgICAgICAgSW1wcm92ZSBoZWxwIGFuZCBtb2RpZnkg
b3B0aW9uIGR1bXBpbmcuCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAg
KiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1By
b2ZpbGVyOjpTYW1wbGluZ1Byb2ZpbGVyKToKKyAgICAgICAgUmVuYW1lIHRoZSBzYW1wbGluZyBp
bnRlcnZhbCBvcHRpb24uCisKIDIwMTYtMDQtMjUgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBh
cHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggdXNpbmcgQHRyeUdldEJ5SWQgaW4gREZHCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCmluZGV4IGRmNDkyZDcuLmY0MDY4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CkBAIC0yMTAwLDggKzIxMDAsOSBAQCBzdGF0aWMgTk9fUkVUVVJOIHZvaWQgcHJpbnRVc2FnZVN0
YXRlbWVudChib29sIGhlbHAgPSBmYWxzZSkKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLXAgPGZp
bGU+ICBPdXRwdXRzIHByb2ZpbGluZyBkYXRhIHRvIGEgZmlsZVxuIik7CiAgICAgZnByaW50Zihz
dGRlcnIsICIgIC14ICAgICAgICAgT3V0cHV0IGV4aXQgY29kZSBiZWZvcmUgdGVybWluYXRpbmdc
biIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAg
LS1zYW1wbGUgICAgICAgICAgICAgICAgICAgQ29sbGVjdHMgYW5kIG91dHB1dHMgc2FtcGxpbmcg
cHJvZmlsZXIgZGF0YVxuIik7CiAgICAgZnByaW50ZihzdGRlcnIsICIgIC0tb3B0aW9ucyAgICAg
ICAgICAgICAgICAgIER1bXBzIGFsbCBKU0MgVk0gb3B0aW9ucyBhbmQgZXhpdHNcbiIpOwotICAg
IGZwcmludGYoc3RkZXJyLCAiICAtLWR1bXBPcHRpb25zICAgICAgICAgICAgICBEdW1wcyBhbGwg
SlNDIFZNIG9wdGlvbnMgYmVmb3JlIGNvbnRpbnVpbmdcbiIpOworICAgIGZwcmludGYoc3RkZXJy
LCAiICAtLWR1bXBPcHRpb25zICAgICAgICAgICAgICBEdW1wcyBhbGwgbm9uLWRlZmF1bHQgSlND
IFZNIG9wdGlvbnMgYmVmb3JlIGNvbnRpbnVpbmdcbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAi
ICAtLTxqc2MgVk0gb3B0aW9uPj08dmFsdWU+ICBTZXRzIHRoZSBzcGVjaWZpZWQgSlNDIFZNIG9w
dGlvblxuIik7CiAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwogCkBAIC0yMTEzLDcgKzIxMTQs
NyBAQCB2b2lkIENvbW1hbmRMaW5lOjpwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioqIGFy
Z3YpCiAgICAgT3B0aW9uczo6aW5pdGlhbGl6ZSgpOwogICAgIAogICAgIGludCBpID0gMTsKLSAg
ICBib29sIG5lZWRUb0R1bXBPcHRpb25zID0gZmFsc2U7CisgICAgSlNDOjpPcHRpb25zOjpEdW1w
TGV2ZWwgZHVtcE9wdGlvbnNMZXZlbCA9IEpTQzo6T3B0aW9uczo6RHVtcExldmVsOjpOb25lOwog
ICAgIGJvb2wgbmVlZFRvRXhpdCA9IGZhbHNlOwogCiAgICAgYm9vbCBoYXNCYWRKU0NPcHRpb25z
ID0gZmFsc2U7CkBAIC0yMTcxLDE1ICsyMTcyLDE1IEBAIHZvaWQgQ29tbWFuZExpbmU6OnBhcnNl
QXJndW1lbnRzKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgIHByaW50VXNhZ2VT
dGF0ZW1lbnQodHJ1ZSk7CiAKICAgICAgICAgaWYgKCFzdHJjbXAoYXJnLCAiLS1vcHRpb25zIikp
IHsKLSAgICAgICAgICAgIG5lZWRUb0R1bXBPcHRpb25zID0gdHJ1ZTsKKyAgICAgICAgICAgIGR1
bXBPcHRpb25zTGV2ZWwgPSBKU0M6Ok9wdGlvbnM6OkR1bXBMZXZlbDo6VmVyYm9zZTsKICAgICAg
ICAgICAgIG5lZWRUb0V4aXQgPSB0cnVlOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KICAgICAgICAgaWYgKCFzdHJjbXAoYXJnLCAiLS1kdW1wT3B0aW9ucyIpKSB7Ci0gICAgICAg
ICAgICBuZWVkVG9EdW1wT3B0aW9ucyA9IHRydWU7CisgICAgICAgICAgICBkdW1wT3B0aW9uc0xl
dmVsID0gSlNDOjpPcHRpb25zOjpEdW1wTGV2ZWw6Ok92ZXJyaWRkZW47CiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQotICAgICAgICBpZiAoIXN0cmNtcChhcmcsICItLXJlcG9ydFNh
bXBsaW5nUHJvZmlsZXJEYXRhIikpIHsKKyAgICAgICAgaWYgKCFzdHJjbXAoYXJnLCAiLS1zYW1w
bGUiKSkgewogICAgICAgICAgICAgSlNDOjpPcHRpb25zOjp1c2VTYW1wbGluZ1Byb2ZpbGVyKCkg
PSB0cnVlOwogICAgICAgICAgICAgSlNDOjpPcHRpb25zOjpjb2xsZWN0U2FtcGxpbmdQcm9maWxl
ckRhdGFGb3JKU0NTaGVsbCgpID0gdHJ1ZTsKICAgICAgICAgICAgIG1fZHVtcFNhbXBsaW5nUHJv
ZmlsZXJEYXRhID0gdHJ1ZTsKQEAgLTIyMDksOCArMjIxMCw4IEBAIHZvaWQgQ29tbWFuZExpbmU6
OnBhcnNlQXJndW1lbnRzKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBmb3IgKDsgaSA8IGFy
Z2M7ICsraSkKICAgICAgICAgbV9hcmd1bWVudHMuYXBwZW5kKGFyZ3ZbaV0pOwogCi0gICAgaWYg
KG5lZWRUb0R1bXBPcHRpb25zKQotICAgICAgICBKU0M6Ok9wdGlvbnM6OmR1bXBBbGxPcHRpb25z
KHN0ZGVyciwgSlNDOjpPcHRpb25zOjpEdW1wTGV2ZWw6Ok92ZXJyaWRkZW4sICJBbGwgSlNDIHJ1
bnRpbWUgb3B0aW9uczoiKTsKKyAgICBpZiAoZHVtcE9wdGlvbnNMZXZlbCAhPSBKU0M6Ok9wdGlv
bnM6OkR1bXBMZXZlbDo6Tm9uZSkKKyAgICAgICAgSlNDOjpPcHRpb25zOjpkdW1wQWxsT3B0aW9u
cyhzdGRlcnIsIGR1bXBPcHRpb25zTGV2ZWwsICJBbGwgSlNDIHJ1bnRpbWUgb3B0aW9uczoiKTsK
ICAgICBKU0M6Ok9wdGlvbnM6OmVuc3VyZU9wdGlvbnNBcmVDb2hlcmVudCgpOwogICAgIGlmIChu
ZWVkVG9FeGl0KQogICAgICAgICBqc2NFeGl0KEVYSVRfU1VDQ0VTUyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggMTM3MDhhZC4uNTQ1MzVlZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMzE1LDExICszMTUsMTQgQEAgdHlw
ZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmc7CiAgICAgdih1bnNpZ25lZCwgZm9yY2VSQU1T
aXplLCAwLCBudWxscHRyKSBcCiAgICAgdihib29sLCByZWNvcmRHQ1BhdXNlVGltZXMsIGZhbHNl
LCBudWxscHRyKSBcCiAgICAgdihib29sLCBsb2dIZWFwU3RhdGlzdGljc0F0RXhpdCwgZmFsc2Us
IG51bGxwdHIpIFwKKyAgICBcCiAgICAgdihib29sLCB1c2VUeXBlUHJvZmlsZXIsIGZhbHNlLCBu
dWxscHRyKSBcCiAgICAgdihib29sLCB1c2VDb250cm9sRmxvd1Byb2ZpbGVyLCBmYWxzZSwgbnVs
bHB0cikgXAorICAgIFwKICAgICB2KGJvb2wsIHVzZVNhbXBsaW5nUHJvZmlsZXIsIGZhbHNlLCBu
dWxscHRyKSBcCi0gICAgdih1bnNpZ25lZCwgc2FtcGxpbmdQcm9maWxlclRpbWluZ0ludGVydmFs
LCAxMDAwLCAiVGltZSBiZXR3ZWVuIHN0YWNrIHRyYWNlcyBpbiBtaWNyb3NlY29uZHMuIikgXAot
ICAgIHYoYm9vbCwgY29sbGVjdFNhbXBsaW5nUHJvZmlsZXJEYXRhRm9ySlNDU2hlbGwsIGZhbHNl
LCAiVGhpcyBjb3JyZXNwb25kcyB0byB0aGUgSlNDIHNoZWxsJ3MgLS1yZXBvcnRTYW1wbGluZ1By
b2ZpbGVyRGF0YSBvcHRpb24uIikgXAorICAgIHYodW5zaWduZWQsIHNhbXBsZUludGVydmFsLCAx
MDAwLCAiVGltZSBiZXR3ZWVuIHN0YWNrIHRyYWNlcyBpbiBtaWNyb3NlY29uZHMuIikgXAorICAg
IHYoYm9vbCwgY29sbGVjdFNhbXBsaW5nUHJvZmlsZXJEYXRhRm9ySlNDU2hlbGwsIGZhbHNlLCAi
VGhpcyBjb3JyZXNwb25kcyB0byB0aGUgSlNDIHNoZWxsJ3MgLS1zYW1wbGUgb3B0aW9uLiIpIFwK
KyAgICBcCiAgICAgdihib29sLCBhbHdheXNHZW5lcmF0ZVBDVG9Db2RlT3JpZ2luTWFwLCBmYWxz
ZSwgIlRoaXMgd2lsbCBtYWtlIHN1cmUgd2UgYWx3YXlzIGdlbmVyYXRlIGEgUENUb0NvZGVPcmln
aW5NYXAgZm9yIEpJVGVkIGNvZGUuIikgXAogICAgIFwKICAgICB2KGJvb2wsIHZlcmlmeUhlYXAs
IGZhbHNlLCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IGVhYWM3YzUuLjFlZDhjMjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC0x
ODUsNyArMTg1LDcgQEAgcHJpdmF0ZToKIFNhbXBsaW5nUHJvZmlsZXI6OlNhbXBsaW5nUHJvZmls
ZXIoVk0mIHZtLCBSZWZQdHI8U3RvcHdhdGNoPiYmIHN0b3B3YXRjaCkKICAgICA6IG1fdm0odm0p
CiAgICAgLCBtX3N0b3B3YXRjaChXVEZNb3ZlKHN0b3B3YXRjaCkpCi0gICAgLCBtX3RpbWluZ0lu
dGVydmFsKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMoT3B0aW9uczo6c2FtcGxpbmdQcm9maWxl
clRpbWluZ0ludGVydmFsKCkpKQorICAgICwgbV90aW1pbmdJbnRlcnZhbChzdGQ6OmNocm9ubzo6
bWljcm9zZWNvbmRzKE9wdGlvbnM6OnNhbXBsZUludGVydmFsKCkpKQogICAgICwgbV90aHJlYWRJ
ZGVudGlmaWVyKDApCiAgICAgLCBtX2pzY0V4ZWN1dGlvblRocmVhZChudWxscHRyKQogICAgICwg
bV9pc1BhdXNlZChmYWxzZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>