<?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>212543</bug_id>
          
          <creation_ts>2020-05-29 14:01:15 -0700</creation_ts>
          <short_desc>Do not install the VMTraps signal handler if Options::useJIT=false.</short_desc>
          <delta_ts>2020-06-15 13:12:36 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=212556</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1657409</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-05-29 14:01:15 -0700</bug_when>
    <thetext>VMTraps is only needed for JITted code.  Hence, if the JIT is disabled, we should set Options::usePollingTraps() to true to indicate that we won&apos;t be using VMTraps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657410</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-29 14:01:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/63772519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657438</commentid>
    <comment_count>2</comment_count>
      <attachid>400619</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-05-29 14:37:34 -0700</bug_when>
    <thetext>Created attachment 400619
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657448</commentid>
    <comment_count>3</comment_count>
      <attachid>400619</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-29 14:47:07 -0700</bug_when>
    <thetext>Comment on attachment 400619
proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=400619&amp;action=review

&gt; Source/JavaScriptCore/runtime/Options.cpp:413
&gt; +        Options::usePollingTraps() = true;

why not actually look at vm.canUseJIT or whatever?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657450</commentid>
    <comment_count>4</comment_count>
      <attachid>400619</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-29 14:47:50 -0700</bug_when>
    <thetext>Comment on attachment 400619
proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=400619&amp;action=review

&gt; Source/JavaScriptCore/tools/SigillCrashAnalyzer.cpp:201
&gt; +        ASSERT(Options::useJIT());

and then relatedly, same check here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657451</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-05-29 14:48:28 -0700</bug_when>
    <thetext>&gt; Source/JavaScriptCore/runtime/VMTraps.cpp:299
&gt; +    if (!Options::usePollingTraps()) {
&gt; +        ASSERT(Options::useJIT());

Could Options::usePollingTraps() check useJIT() explicitly instead?

Seems better for Options::usePollingTraps() to always do the right thing, instead of having callers check whether it did the right thing or not in an ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657459</commentid>
    <comment_count>6</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-29 15:00:08 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #3)
&gt; Comment on attachment 400619 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=400619&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/Options.cpp:413
&gt; &gt; +        Options::usePollingTraps() = true;
&gt; 
&gt; why not actually look at vm.canUseJIT or whatever?

this is slightly tricky, since we rely on VM canUseJIT to be initialized after.

I propose having &quot;recomputeJITDependentOptions&quot; that runs after we compute VM canUseJIT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657461</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-05-29 15:05:46 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #5)
&gt; &gt; Source/JavaScriptCore/runtime/VMTraps.cpp:299
&gt; &gt; +    if (!Options::usePollingTraps()) {
&gt; &gt; +        ASSERT(Options::useJIT());
&gt; 
&gt; Could Options::usePollingTraps() check useJIT() explicitly instead?
&gt; 
&gt; Seems better for Options::usePollingTraps() to always do the right thing,
&gt; instead of having callers check whether it did the right thing or not in an
&gt; ASSERT.

That&apos;s what this patch is about: making Options::usePollingTraps() check useJIT().  Note: 
1. if useJIT is true, then usePollingTraps is allowed to be true (for testing) or false (normal behavior).
2. if useJIT is false, then usePollingTraps should always be true (which is what this patch is making true).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657466</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-05-29 15:26:24 -0700</bug_when>
    <thetext>&gt; 2. if useJIT is false, then usePollingTraps should always be true (which is
&gt; what this patch is making true).

Currently, this condition is enforced by an assignment upon initialization and an ASSERT at a call site to verify that the assignment happened. I&apos;m asking if this condition could be enforced by a direct check inside Options::usePollingTraps() instead. That way, the behavior is more local and encapsulated, and harder / impossible to get wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657470</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-05-29 15:35:28 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #8)
&gt; &gt; 2. if useJIT is false, then usePollingTraps should always be true (which is
&gt; &gt; what this patch is making true).
&gt; 
&gt; Currently, this condition is enforced by an assignment upon initialization
&gt; and an ASSERT at a call site to verify that the assignment happened. I&apos;m
&gt; asking if this condition could be enforced by a direct check inside
&gt; Options::usePollingTraps() instead. That way, the behavior is more local and
&gt; encapsulated, and harder / impossible to get wrong.

OK.  Can&apos;t do it in Options::usePollingTraps() literally (because this is an auto generated accessors to a bool somewhere), but I can just check both conditions there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657472</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-05-29 15:38:33 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #9)
&gt; (In reply to Geoffrey Garen from comment #8)
&gt; &gt; &gt; 2. if useJIT is false, then usePollingTraps should always be true (which is
&gt; &gt; &gt; what this patch is making true).
&gt; &gt; 
&gt; &gt; Currently, this condition is enforced by an assignment upon initialization
&gt; &gt; and an ASSERT at a call site to verify that the assignment happened. I&apos;m
&gt; &gt; asking if this condition could be enforced by a direct check inside
&gt; &gt; Options::usePollingTraps() instead. That way, the behavior is more local and
&gt; &gt; encapsulated, and harder / impossible to get wrong.
&gt; 
&gt; OK.  Can&apos;t do it in Options::usePollingTraps() literally (because this is an
&gt; auto generated accessors to a bool somewhere), but I can just check both
&gt; conditions there.

Still feels redundant though.  Options::usePollingTraps() is the canonical switch for the VMTraps feature.  The right thing to do is to set it properly and have less conditions.  The assert is there for documentation of the contract in addition to the check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662717</commentid>
    <comment_count>11</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-15 11:16:04 -0700</bug_when>
    <thetext>FYI, I think I disabled the ensure-crash.js test on 32-bit since I couldn&apos;t figure out why my change to expected crashing tests wasn&apos;t working. You might want to reenable it with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662718</commentid>
    <comment_count>12</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-15 11:17:24 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #11)
&gt; FYI, I think I disabled the ensure-crash.js test on 32-bit since I couldn&apos;t
&gt; figure out why my change to expected crashing tests wasn&apos;t working. You
&gt; might want to reenable it with this patch.

I&apos;ll investigate and re-enable it in a separate patch if appropriate.  Will truly to land this one first today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662735</commentid>
    <comment_count>13</comment_count>
      <attachid>401916</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-15 11:37:32 -0700</bug_when>
    <thetext>Created attachment 401916
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662768</commentid>
    <comment_count>14</comment_count>
      <attachid>401916</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-15 12:55:04 -0700</bug_when>
    <thetext>Comment on attachment 401916
proposed patch.

r=me. Is the idea the following should always be true Options::useJIT() == VM::canUseJIT()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662769</commentid>
    <comment_count>15</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-15 12:56:26 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #14)
&gt; Comment on attachment 401916 [details]
&gt; proposed patch.
&gt; 
&gt; r=me. Is the idea the following should always be true Options::useJIT() ==
&gt; VM::canUseJIT()?

After this patch, yes.  But I won&apos;t leave the use of VM::canUseJIT() in place for now.  Will address that in a separate patch.  Removing it is not trivial.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662771</commentid>
    <comment_count>16</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-15 13:00:56 -0700</bug_when>
    <thetext>Thanks for the reviews.  Landed in r263055: &lt;http://trac.webkit.org/r263055&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400619</attachid>
            <date>2020-05-29 14:37:34 -0700</date>
            <delta_ts>2020-06-15 11:37:32 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-212543.patch</filename>
            <type>text/plain</type>
            <size>3365</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYyMzE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDIwLTA1LTI5ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBE
byBub3QgaW5zdGFsbCB0aGUgVk1UcmFwcyBzaWduYWwgaGFuZGxlciBpZiBPcHRpb25zOjp1c2VK
SVQ9ZmFsc2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTI1NDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNzcyNTE5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFZNVHJhcHMgaXMgb25seSBuZWVk
ZWQgZm9yIEpJVHRlZCBjb2RlLiAgSGVuY2UsIGlmIHRoZSBKSVQgaXMgZGlzYWJsZWQsIHdlIHNo
b3VsZAorICAgICAgICBzZXQgT3B0aW9uczo6dXNlUG9sbGluZ1RyYXBzKCkgdG8gdHJ1ZSB0byBp
bmRpY2F0ZSB0aGF0IHdlIHdvbid0IGJlIHVzaW5nIFZNVHJhcHMuCisKKyAgICAgICAgV2l0aCB0
aGlzIGNoYW5nZSwgd2Ugbm8gbG9uZ2VyIGluc3RhbGwgYW55IHNpZ25hbCBoYW5kbGluZyBtYWNo
aW5lcnkgaWYKKyAgICAgICAgT3B0aW9uczo6dXNlSklUKCkgaXMgZmFsc2UuCisKKyAgICAgICAg
KiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpyZWNvbXB1dGVEZXBlbmRlbnRP
cHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMuY3BwOgorICAgICAgICAoSlNDOjpW
TVRyYXBzOjppbml0aWFsaXplU2lnbmFscyk6CisgICAgICAgICogdG9vbHMvU2lnaWxsQ3Jhc2hB
bmFseXplci5jcHA6CisgICAgICAgIChKU0M6OlNpZ2lsbENyYXNoQW5hbHl6ZXI6Omluc3RhbmNl
KToKKwogMjAyMC0wNS0yNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIHRoaW5ncyBmcm9tIEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIHRoYXQgYXJlIGNv
dmVyZWQgYnkgUGxhdGZvcm1FbmFibGVDb2NvYS5oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmNwcAkocmV2aXNpb24gMjYyMzE1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MTAsNiAr
NDEwLDcgQEAgc3RhdGljIHZvaWQgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygpCiAgICAgaWYg
KCFPcHRpb25zOjp1c2VKSVQoKSkgewogICAgICAgICBPcHRpb25zOjp1c2VTaWdpbGxDcmFzaEFu
YWx5emVyKCkgPSBmYWxzZTsKICAgICAgICAgT3B0aW9uczo6dXNlV2ViQXNzZW1ibHkoKSA9IGZh
bHNlOworICAgICAgICBPcHRpb25zOjp1c2VQb2xsaW5nVHJhcHMoKSA9IHRydWU7CiAgICAgfQog
CiAgICAgaWYgKCFqaXRFbmFibGVkQnlEZWZhdWx0KCkgJiYgIU9wdGlvbnM6OnVzZUpJVCgpKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAJKHJldmlzaW9u
IDI2MjMxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOTUsOCArMjk1LDEwIEBAIHByaXZhdGU6CiB2b2lkIFZNVHJhcHM6
OmluaXRpYWxpemVTaWduYWxzKCkKIHsKICNpZiBFTkFCTEUoU0lHTkFMX0JBU0VEX1ZNX1RSQVBT
KQotICAgIGlmICghT3B0aW9uczo6dXNlUG9sbGluZ1RyYXBzKCkpCisgICAgaWYgKCFPcHRpb25z
Ojp1c2VQb2xsaW5nVHJhcHMoKSkgeworICAgICAgICBBU1NFUlQoT3B0aW9uczo6dXNlSklUKCkp
OwogICAgICAgICBTaWduYWxTZW5kZXI6OmluaXRpYWxpemVTaWduYWxzKCk7CisgICAgfQogI2Vu
ZGlmCiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFu
YWx5emVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2ln
aWxsQ3Jhc2hBbmFseXplci5jcHAJKHJldmlzaW9uIDI2MjMxNSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTE5OCw2ICsxOTgsNyBAQCBTaWdpbGxDcmFzaEFuYWx5emVyJiBTaWdpbGxDcmFzaEFuYWx5emVy
CiAgICAgc3RhdGljIFNpZ2lsbENyYXNoQW5hbHl6ZXIqIGFuYWx5emVyOwogICAgIHN0YXRpYyBz
dGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKKyAgICAg
ICAgQVNTRVJUKE9wdGlvbnM6OnVzZUpJVCgpKTsKICAgICAgICAgaW5zdGFsbENyYXNoSGFuZGxl
cigpOwogICAgICAgICBhbmFseXplciA9IG5ldyBTaWdpbGxDcmFzaEFuYWx5emVyOwogICAgIH0p
Owo=
</data>
<flag name="review"
          id="416018"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401916</attachid>
            <date>2020-06-15 11:37:32 -0700</date>
            <delta_ts>2020-06-15 12:55:04 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-212543.patch</filename>
            <type>text/plain</type>
            <size>6876</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYzMDQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDIwLTA2LTE1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBE
byBub3QgaW5zdGFsbCB0aGUgVk1UcmFwcyBzaWduYWwgaGFuZGxlciBpZiBPcHRpb25zOjp1c2VK
SVQ9ZmFsc2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTI1NDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNzcyNTE5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFZNVHJhcHMgaXMgb25seSBuZWVk
ZWQgZm9yIEpJVHRlZCBjb2RlLiAgSGVuY2UsIGlmIHRoZSBKSVQgaXMgZGlzYWJsZWQsIHdlIHNo
b3VsZAorICAgICAgICBzZXQgT3B0aW9uczo6dXNlUG9sbGluZ1RyYXBzKCkgdG8gdHJ1ZSB0byBp
bmRpY2F0ZSB0aGF0IHdlIHdvbid0IGJlIHVzaW5nIFZNVHJhcHMuCisKKyAgICAgICAgV2l0aCB0
aGlzIGNoYW5nZSwgd2Ugbm8gbG9uZ2VyIGluc3RhbGwgYW55IHNpZ25hbCBoYW5kbGluZyBtYWNo
aW5lcnkgaWYKKyAgICAgICAgT3B0aW9uczo6dXNlSklUKCkgaXMgZmFsc2UuCisKKyAgICAgICAg
QmVjYXVzZSB3ZSBtYXkgc3RpbGwgZGlzYWJsZSB0aGUgSklUIGV2ZW4gaWYgdXNlSklUKCkgaXMg
dHJ1ZSAoZHVlIHRvIGZhaWx1cmUgdG8KKyAgICAgICAgYWxsb2NhdGUgSklUIG1lbW9yeSBvciBh
IG51bWJlciBvZiBvdGhlciBmYWN0b3JzKSwgd2Ugd2lsbCBhbHNvIGFkZCBhIGNoZWNrIG9mCisg
ICAgICAgIFZNOjpjYW5Vc2VKSVQoKSBpbiBpbml0aWFsaXplVGhyZWFkaW5nKCksIGFuZCBkaXNh
YmxlIHVzZUpJVCgpIGlmIG5lZWRlZC4gIE9mCisgICAgICAgIGNvdXJzZSwgdGhpcyBhbHNvIG1l
YW5zIHdlIG5lZWQgdG8gY2FsbCBPcHRpb25zOjpyZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKCkg
dG8KKyAgICAgICAgbWFrZSBvdGhlciBvcHRpb25zIGNvbnNpc3RlbnQgd2l0aCB1c2VKSVQoKSBi
ZWluZyBmYWxzZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHA6CisgICAgICAgIChKU0M6Omlu
aXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6CisgICAg
ICAgIChKU0M6OmRpc2FibGVBbGxKSVRPcHRpb25zKToKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6
cmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucyk6CisgICAgICAgIChKU0M6OnJlY29tcHV0ZURlcGVu
ZGVudE9wdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvVk1UcmFwcy5jcHA6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OmluaXRp
YWxpemVTaWduYWxzKToKKyAgICAgICAgKiB0b29scy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcDoK
KyAgICAgICAgKEpTQzo6U2lnaWxsQ3Jhc2hBbmFseXplcjo6aW5zdGFuY2UpOgorCiAyMDIwLTA2
LTE1ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNp
Z25hbCBoYW5kbGVycyBzaG91bGQgaGF2ZSBhIHR3byBwaGFzZSBpbnN0YWxsYXRpb24uCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmNwcAkocmV2aXNpb24gMjYzMDQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDggKzY2
LDEyIEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAKICAgICAgICAgRXhlY3V0YWJsZUFs
bG9jYXRvcjo6aW5pdGlhbGl6ZSgpOwogICAgICAgICBWTTo6Y29tcHV0ZUNhblVzZUpJVCgpOwor
ICAgICAgICBpZiAoIVZNOjpjYW5Vc2VKSVQoKSkgeworICAgICAgICAgICAgT3B0aW9uczo6dXNl
SklUKCkgPSBmYWxzZTsKKyAgICAgICAgICAgIE9wdGlvbnM6OnJlY29tcHV0ZURlcGVuZGVudE9w
dGlvbnMoKTsKKyAgICAgICAgfQogCi0gICAgICAgIGlmIChWTTo6Y2FuVXNlSklUKCkgJiYgT3B0
aW9uczo6dXNlU2lnaWxsQ3Jhc2hBbmFseXplcigpKQorICAgICAgICBpZiAoT3B0aW9uczo6dXNl
U2lnaWxsQ3Jhc2hBbmFseXplcigpKQogICAgICAgICAgICAgZW5hYmxlU2lnaWxsQ3Jhc2hBbmFs
eXplcigpOwogCiAgICAgICAgIExMSW50Ojppbml0aWFsaXplKCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkocmV2aXNpb24gMjYzMDQ1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNzUsMTIgKzM3NSw4IEBAIHN0YXRpYyB2b2lkIGNvcnJlY3RPcHRpb25zKCkKICAgICAgICAg
T3B0aW9uczo6dGhyZXNob2xkRm9yR2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaCgpID0gVUlOVF9N
QVg7CiB9CiAKLXN0YXRpYyB2b2lkIHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKQorc3RhdGlj
IHZvaWQgZGlzYWJsZUFsbEpJVE9wdGlvbnMoKQogewotI2lmICFkZWZpbmVkKE5ERUJVRykKLSAg
ICBPcHRpb25zOjp2YWxpZGF0ZURGR0V4Y2VwdGlvbkhhbmRsaW5nKCkgPSB0cnVlOwotI2VuZGlm
Ci0jaWYgIUVOQUJMRShKSVQpCiAgICAgT3B0aW9uczo6dXNlTExJbnQoKSA9IHRydWU7CiAgICAg
T3B0aW9uczo6dXNlSklUKCkgPSBmYWxzZTsKICAgICBPcHRpb25zOjp1c2VCYXNlbGluZUpJVCgp
ID0gZmFsc2U7CkBAIC0zODgsNiArMzg0LDE1IEBAIHN0YXRpYyB2b2lkIHJlY29tcHV0ZURlcGVu
ZGVudE9wdGlvbnMoKQogICAgIE9wdGlvbnM6OnVzZUZUTEpJVCgpID0gZmFsc2U7CiAgICAgT3B0
aW9uczo6dXNlRE9NSklUKCkgPSBmYWxzZTsKICAgICBPcHRpb25zOjp1c2VSZWdFeHBKSVQoKSA9
IGZhbHNlOworfQorCit2b2lkIE9wdGlvbnM6OnJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKQor
eworI2lmICFkZWZpbmVkKE5ERUJVRykKKyAgICBPcHRpb25zOjp2YWxpZGF0ZURGR0V4Y2VwdGlv
bkhhbmRsaW5nKCkgPSB0cnVlOworI2VuZGlmCisjaWYgIUVOQUJMRShKSVQpCisgICAgZGlzYWJs
ZUFsbEpJVE9wdGlvbnMoKTsKICNlbmRpZgogI2lmICFFTkFCTEUoQ09OQ1VSUkVOVF9KUykKICAg
ICBPcHRpb25zOjp1c2VDb25jdXJyZW50SklUKCkgPSBmYWxzZTsKQEAgLTQwNyw5ICs0MTIsMTUg
QEAgc3RhdGljIHZvaWQgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygpCiAgICAgT3B0aW9uczo6
dXNlQ29uY3VycmVudEdDKCkgPSBmYWxzZTsKICNlbmRpZgogCisgICAgLy8gQXQgaW5pdGlhbGl6
YXRpb24gdGltZSwgd2UgbWF5IGRlY2lkZSB0aGF0IHVzZUpJVCBzaG91bGQgYmUgZmFsc2UgZm9y
IGFueQorICAgIC8vIG51bWJlciBvZiByZWFzb25zIChpbmNsdWRpbmcgZmFpbGluZyB0byBhbGxv
Y2F0ZSBKSVQgbWVtb3J5KSwgYW5kIHRoZXJlZm9yZSwKKyAgICAvLyB3aWxsIC8gc2hvdWxkIG5v
dCBiZSBhYmxlIHRvIGVuYWJsZSBhbnkgSklUIHJlbGF0ZWQgc2VydmljZXMuCiAgICAgaWYgKCFP
cHRpb25zOjp1c2VKSVQoKSkgeworICAgICAgICBkaXNhYmxlQWxsSklUT3B0aW9ucygpOworICAg
ICAgICBPcHRpb25zOjp1c2VDb25jdXJyZW50SklUKCkgPSBmYWxzZTsKICAgICAgICAgT3B0aW9u
czo6dXNlU2lnaWxsQ3Jhc2hBbmFseXplcigpID0gZmFsc2U7CiAgICAgICAgIE9wdGlvbnM6OnVz
ZVdlYkFzc2VtYmx5KCkgPSBmYWxzZTsKKyAgICAgICAgT3B0aW9uczo6dXNlUG9sbGluZ1RyYXBz
KCkgPSB0cnVlOwogICAgIH0KIAogICAgIGlmICghaml0RW5hYmxlZEJ5RGVmYXVsdCgpICYmICFP
cHRpb25zOjp1c2VKSVQoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmgJKHJldmlzaW9uIDI2MzA0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg3LDYgKzg3LDcgQEAgcHVibGljOgogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGR1bXBBbGxPcHRpb25zSW5BTGluZShTdHJp
bmdCdWlsZGVyJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBlbnN1cmVP
cHRpb25zQXJlQ29oZXJlbnQoKTsKKyAgICBzdGF0aWMgdm9pZCByZWNvbXB1dGVEZXBlbmRlbnRP
cHRpb25zKCk7CiAKICNkZWZpbmUgREVDTEFSRV9PUFRJT05fQUNDRVNTT1JTKHR5cGVfLCBuYW1l
XywgZGVmYXVsdFZhbHVlXywgYXZhaWxhYmlsaXR5XywgZGVzY3JpcHRpb25fKSBcCiAgICAgQUxX
QVlTX0lOTElORSBzdGF0aWMgT3B0aW9uc1N0b3JhZ2U6OnR5cGVfJiBuYW1lXygpIHsgcmV0dXJu
IGdfanNjQ29uZmlnLm9wdGlvbnMubmFtZV87IH0gIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCShyZXZpc2lvbiAyNjMwNDUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk3LDgg
KzI5NywxMCBAQCBwcml2YXRlOgogdm9pZCBWTVRyYXBzOjppbml0aWFsaXplU2lnbmFscygpCiB7
CiAjaWYgRU5BQkxFKFNJR05BTF9CQVNFRF9WTV9UUkFQUykKLSAgICBpZiAoIU9wdGlvbnM6OnVz
ZVBvbGxpbmdUcmFwcygpKQorICAgIGlmICghT3B0aW9uczo6dXNlUG9sbGluZ1RyYXBzKCkpIHsK
KyAgICAgICAgQVNTRVJUKE9wdGlvbnM6OnVzZUpJVCgpKTsKICAgICAgICAgU2lnbmFsU2VuZGVy
Ojppbml0aWFsaXplU2lnbmFscygpOworICAgIH0KICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCShy
ZXZpc2lvbiAyNjMwNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jh
c2hBbmFseXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE3LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xOTksNiArMTk5LDcgQEAgU2lnaWxs
Q3Jhc2hBbmFseXplciYgU2lnaWxsQ3Jhc2hBbmFseXplcgogICAgIHN0YXRpYyBTaWdpbGxDcmFz
aEFuYWx5emVyKiBhbmFseXplcjsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKICAg
ICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7CisgICAgICAgIEFTU0VSVChPcHRpb25zOjp1c2VK
SVQoKSk7CiAgICAgICAgIGluc3RhbGxDcmFzaEhhbmRsZXIoKTsKICAgICAgICAgYW5hbHl6ZXIg
PSBuZXcgU2lnaWxsQ3Jhc2hBbmFseXplcjsKICAgICB9KTsK
</data>
<flag name="review"
          id="417346"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>