<?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>201222</bug_id>
          
          <creation_ts>2019-08-28 09:05:36 -0700</creation_ts>
          <short_desc>[GStreamer] Do not ref the player count from background threads.</short_desc>
          <delta_ts>2019-08-30 04:02:26 -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>WebKitGTK</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="Charlie Turner">cturner</reporter>
          <assigned_to name="Charlie Turner">cturner</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1565740</commentid>
    <comment_count>0</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-08-28 09:05:36 -0700</bug_when>
    <thetext>[GStreamer] Do not ref the player count from background threads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565742</commentid>
    <comment_count>1</comment_count>
      <attachid>377451</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-08-28 09:13:22 -0700</bug_when>
    <thetext>Created attachment 377451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566221</commentid>
    <comment_count>2</comment_count>
      <attachid>377451</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-08-29 07:46:27 -0700</bug_when>
    <thetext>Comment on attachment 377451
Patch

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

Good! Only a couple of things to tweak before landing.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:353
&gt; +        if (m_cdmAttachmentSemaphore.waitFor(4_s)
&gt; +            &amp;&amp; m_notifier-&gt;isValid() // Check the player is not being destroyed.
&gt; +            &amp;&amp; !m_cdmInstance-&gt;keySystem().isEmpty()) {

We need to consider here, to avoid any other crashes, that the semaphore can be either signaled by the destructor or that the timeout can be hit, both without the instance being set. It looks like the third clause with crash is m_cdmInstance is still null.

Besides, all this can be one line.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:308
&gt; +    Lock m_protectionMutex; // Guards access to m_handledProtectionEvents

.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566222</commentid>
    <comment_count>3</comment_count>
      <attachid>377451</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-08-29 07:46:53 -0700</bug_when>
    <thetext>Comment on attachment 377451
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:307
&gt; +

And you can remove this line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566244</commentid>
    <comment_count>4</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-08-29 08:29:01 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #2)
&gt; Comment on attachment 377451 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=377451&amp;action=review
&gt; 
&gt; Good! Only a couple of things to tweak before landing.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:353
&gt; &gt; +        if (m_cdmAttachmentSemaphore.waitFor(4_s)
&gt; &gt; +            &amp;&amp; m_notifier-&gt;isValid() // Check the player is not being destroyed.
&gt; &gt; +            &amp;&amp; !m_cdmInstance-&gt;keySystem().isEmpty()) {
&gt; 
&gt; We need to consider here, to avoid any other crashes, that the semaphore can
&gt; be either signaled by the destructor or that the timeout can be hit, both
&gt; without the instance being set. It looks like the third clause with crash is
&gt; m_cdmInstance is still null.

There are two cases,
  1) Signal from cdmInstanceAttached. In this case, we know the cdmInstance is not null
  2) Signal from dtor, in this case the notifier will have been cancelled in the dtor already, and the second conditional will bail out.

So we don&apos;t need a further check imo.

&gt; Besides, all this can be one line.

We then lose the informative comment about why isValid() is there, it&apos;s much easier to read conditionals vertically aligned like this and to comment on their conditions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566572</commentid>
    <comment_count>5</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-08-29 23:38:00 -0700</bug_when>
    <thetext>(In reply to Charlie Turner from comment #4)
&gt; &gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:353
&gt; &gt; &gt; +        if (m_cdmAttachmentSemaphore.waitFor(4_s)
&gt; &gt; &gt; +            &amp;&amp; m_notifier-&gt;isValid() // Check the player is not being destroyed.
&gt; &gt; &gt; +            &amp;&amp; !m_cdmInstance-&gt;keySystem().isEmpty()) {
&gt; &gt; 
&gt; &gt; We need to consider here, to avoid any other crashes, that the semaphore can
&gt; &gt; be either signaled by the destructor or that the timeout can be hit, both
&gt; &gt; without the instance being set. It looks like the third clause with crash is
&gt; &gt; m_cdmInstance is still null.
&gt; 
&gt; There are two cases,
&gt;   1) Signal from cdmInstanceAttached. In this case, we know the cdmInstance
&gt; is not null
&gt;   2) Signal from dtor, in this case the notifier will have been cancelled in
&gt; the dtor already, and the second conditional will bail out.

3) waitFor timeout runs out without being signalled from anywhere.


&gt; So we don&apos;t need a further check imo.
&gt; 
&gt; &gt; Besides, all this can be one line.
&gt; 
&gt; We then lose the informative comment about why isValid() is there, it&apos;s much
&gt; easier to read conditionals vertically aligned like this and to comment on
&gt; their conditions.

Right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566606</commentid>
    <comment_count>6</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-08-30 03:00:33 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #5)
&gt; (In reply to Charlie Turner from comment #4)
&gt; &gt; &gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:353
&gt; &gt; &gt; &gt; +        if (m_cdmAttachmentSemaphore.waitFor(4_s)
&gt; &gt; &gt; &gt; +            &amp;&amp; m_notifier-&gt;isValid() // Check the player is not being destroyed.
&gt; &gt; &gt; &gt; +            &amp;&amp; !m_cdmInstance-&gt;keySystem().isEmpty()) {
&gt; &gt; &gt; 
&gt; &gt; &gt; We need to consider here, to avoid any other crashes, that the semaphore can
&gt; &gt; &gt; be either signaled by the destructor or that the timeout can be hit, both
&gt; &gt; &gt; without the instance being set. It looks like the third clause with crash is
&gt; &gt; &gt; m_cdmInstance is still null.
&gt; &gt; 
&gt; &gt; There are two cases,
&gt; &gt;   1) Signal from cdmInstanceAttached. In this case, we know the cdmInstance
&gt; &gt; is not null
&gt; &gt;   2) Signal from dtor, in this case the notifier will have been cancelled in
&gt; &gt; the dtor already, and the second conditional will bail out.
&gt; 
&gt; 3) waitFor timeout runs out without being signalled from anywhere.

And in that case, waitFor() returns false.

&gt; 
&gt; 
&gt; &gt; So we don&apos;t need a further check imo.
&gt; &gt; 
&gt; &gt; &gt; Besides, all this can be one line.
&gt; &gt; 
&gt; &gt; We then lose the informative comment about why isValid() is there, it&apos;s much
&gt; &gt; easier to read conditionals vertically aligned like this and to comment on
&gt; &gt; their conditions.
&gt; 
&gt; Right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566608</commentid>
    <comment_count>7</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-08-30 03:02:52 -0700</bug_when>
    <thetext>We good then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566610</commentid>
    <comment_count>8</comment_count>
      <attachid>377692</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-08-30 03:18:18 -0700</bug_when>
    <thetext>Created attachment 377692
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566611</commentid>
    <comment_count>9</comment_count>
      <attachid>377693</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-08-30 03:19:13 -0700</bug_when>
    <thetext>Created attachment 377693
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566624</commentid>
    <comment_count>10</comment_count>
      <attachid>377693</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-30 04:02:25 -0700</bug_when>
    <thetext>Comment on attachment 377693
Patch for landing

Clearing flags on attachment: 377693

Committed r249321: &lt;https://trac.webkit.org/changeset/249321&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566625</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-30 04:02:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377451</attachid>
            <date>2019-08-28 09:13:22 -0700</date>
            <delta_ts>2019-08-30 03:18:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201222-20190828171321.patch</filename>
            <type>text/plain</type>
            <size>10276</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU4ZGYxODUzZTJiZThh
ZDljNDhmNmMyMTVhYzAxYzk3MWJkOTFlZS4uYTMzMTMxOTY1YTkzMzFmN2MyZGZhOGUwNTMwOTEx
NGI1NzU4YTkyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE5LTA4LTI4ICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBE
byBub3QgcmVmIHRoZSBwbGF5ZXIgY291bnQgZnJvbSBiYWNrZ3JvdW5kIHRocmVhZHMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEyMjIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9jbGVhcmtleS1tcDQtcGxh
eWJhY2stcmV0cmlldmUtcGVyc2lzdGVudC1saWNlbnNlLmh0dHBzLmh0bWwKKworICAgICAgICBJ
biB0aGUgc3luYy1tZXNzYWdlIGhhbmRsZXIsIGEgcmVmKCkgd2FzIGJlaW5nIHRha2VuIHdhaXRp
bmcgZm9yIGEKKyAgICAgICAgQ0RNIGluc3RhbmNlIHRvIGJlIGF0dGFjaGVkLiBUaGlzIGhpdHMg
YXNzZXJ0cyBzaW5jZSB5b3UgYXJlIG5vdAorICAgICAgICBhbGxvd2VkIHRvIHJlZigpIGFuIG9i
amVjdCBjcmVhdGVkIG9uIHRoZSBtYWluIHRocmVhZAorICAgICAgICAoQmFzZVBsYXllcikgb24g
YSBiYWNrZ3JvdW5kIHRocmVhZC4KKworICAgICAgICBUaGUgcHJvdGVjdGlvbiBjb25kaXRpb24g
d2FzIG92ZXJseSBzY29wZWQsIHRpZGllZCB1cCB0aGUgbG9ja2luZworICAgICAgICBhbmQgbWFk
ZSBpdCBtb3JlIGdyYW51bGFyLiBUbyBhdm9pZCBuZWVkaW5nIHRvIGhvbGQgYSByZWYoKSBpbiB0
aGUKKyAgICAgICAgYmFja2dyb3VuZCB0aHJlYWQsIHVzZSBpbnN0ZWFkIGEgc2VtYXBob3JlIHRv
IHNpZ25hbCB3aGVuIGEgQ0RNCisgICAgICAgIGluc3RhbmNlIGlzIGF0dGFjaGVkLCBvciB0aGUg
cGxheWVyIGhhcyBiZWVuIGRlc3Ryb3llZC4KKworICAgICAgICBBbHNvIHJlbW92ZSBhbiBlcnJv
bmVvdXMgc2FmZS1ndWFyZCwgdGhlIG9wZXJhdG9yPSBpbgorICAgICAgICBpc0NETUluc3RhbmNl
QXZhaWxhYmxlIHdpbGwgcmVmKCkgdGhlIENETUluc3RhbmNlIGZvciB1cy4gVGhpcyB1c2UKKyAg
ICAgICAgb2YgaG9sZGluZyBhIHJlZmVyZW5jZSB0byBDRE1JbnN0YW5jZSBpbiB0aGUgZGVjcnlw
dG9ycyBpcyBub3QKKyAgICAgICAgdGhyZWFkLXNhZmUsIGFuZCBub3cgd2UgaGF2ZSBhIHByb2Js
ZW0gc2luY2UgdGhlcmUncyBubyBjbGVhbiB3YXkKKyAgICAgICAgdG8gY29tbXVuaWNhdGUgd2l0
aCBDRE1JbnN0YW5jZSBmcm9tIGJhY2tncm91bmQgdGhyZWFkcyB3aXRob3V0CisgICAgICAgIGJl
aW5nIHRocmVhZCB1bnNhZmUuIEZvciBDbGVhcktleSBhbmQgV2lkZXZpbmUsIGEgdGhyZWFkIHNh
ZmUKKyAgICAgICAgUHJveHlDRE0gbmVlZHMgdG8gYmUgZGVzaWduZWQgYW5kIHBhc3NlZCB0byBi
YWNrZ3JvdW5kCisgICAgICAgIHRocmVhZHMgKHVwY29taW5nIHBhdGNoKS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2U6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmhhbmRsZVN5bmNNZXNzYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmNkbUluc3Rh
bmNlQXR0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6Y2RtSW5zdGFuY2VEZXRhY2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVQcm90ZWN0aW9uRXZlbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJL
aXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKGlzQ0RN
SW5zdGFuY2VBdmFpbGFibGUpOgorCiAyMDE5LTA4LTE2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBDb250ZW50IGluIDxpZnJhbWU+IHNob3VsZCBvdmVycmlk
ZSAidG91Y2gtYWN0aW9uIiBzZXQgaW4gZW1iZWRkaW5nIGRvY3VtZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggMzZiMGQz
M2Q0ZmJkMWZiOTcxNTcwZmVlNGE3ODc0OGZjMmVmZDQ2Mi4uOGYwZTNjNDk1OTgxMDljNjk2Nzdm
NjdkZDMwYjQwZTI2MDQxMjY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtMjQ1LDkgKzI0NSw2IEBAIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2U6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKCkK
ICAgICBkb3duY2FzdDxOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbD4obV9u
aWNvc2lhTGF5ZXItPmltcGwoKSkuaW52YWxpZGF0ZUNsaWVudCgpOwogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQotICAgIG1fcHJvdGVjdGlvbkNvbmRpdGlvbi5ub3RpZnlB
bGwoKTsKLSNlbmRpZgogICAgIG1fbm90aWZpZXItPmludmFsaWRhdGUoKTsKIAogICAgIGlmICht
X3ZpZGVvU2luaykgewpAQCAtMjY3LDYgKzI2NCwxMCBAQCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSgpCiAgICAgLy8gd2Fp
dGluZyB0aGVyZSwgYW5kIGVuc3VyZSB0aGF0IGFueSB0cmlnZ2VyUmVwYWludCBjYWxsIHJlYWNo
aW5nIHRoZSBsb2NrIHdvbid0IHdhaXQgb24gbV9kcmF3Q29uZGl0aW9uLgogICAgIGNhbmNlbFJl
cGFpbnQodHJ1ZSk7CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIG1fY2RtQXR0
YWNobWVudFNlbWFwaG9yZS5zaWduYWwoKTsKKyNlbmRpZgorCiAgICAgLy8gVGhlIGNoYW5nZSB0
byBHU1RfU1RBVEVfTlVMTCBzdGF0ZSBpcyBhbHdheXMgc3luY2hyb25vdXMuIFNvIGFmdGVyIHRo
aXMgZ2V0cyBleGVjdXRlZCB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5CiAgICAgLy8gYWJvdXQgaGFu
ZGxlcnMgcnVubmluZyBpbiB0aGUgR1N0cmVhbWVyIHRocmVhZC4KICAgICBpZiAobV9waXBlbGlu
ZSkKQEAgLTMyOCwyOCArMzI5LDI4IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZTo6aGFuZGxlU3luY01lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVs
aW5lKCksICJoYW5kbGluZyBkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIG5lZWQg
Y29udGV4dCBtZXNzYWdlIik7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3Byb3RlY3Rpb25N
dXRleCk7Ci0gICAgICAgIFByb3RlY3Rpb25TeXN0ZW1FdmVudHMgcHJvdGVjdGlvblN5c3RlbUV2
ZW50cyhtZXNzYWdlKTsKLSAgICAgICAgR1NUX1RSQUNFKCJmb3VuZCAlenUgcHJvdGVjdGlvbiBl
dmVudHMsICV6dSBkZWNyeXB0b3JzIGF2YWlsYWJsZSIsIHByb3RlY3Rpb25TeXN0ZW1FdmVudHMu
ZXZlbnRzKCkuc2l6ZSgpLCBwcm90ZWN0aW9uU3lzdGVtRXZlbnRzLmF2YWlsYWJsZVN5c3RlbXMo
KS5zaXplKCkpOworCiAgICAgICAgIEluaXREYXRhIGluaXREYXRhOworICAgICAgICB7CisgICAg
ICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9wcm90ZWN0aW9uTXV0ZXgpOworICAgICAgICAgICAg
UHJvdGVjdGlvblN5c3RlbUV2ZW50cyBwcm90ZWN0aW9uU3lzdGVtRXZlbnRzKG1lc3NhZ2UpOwor
ICAgICAgICAgICAgR1NUX1RSQUNFKCJmb3VuZCAlenUgcHJvdGVjdGlvbiBldmVudHMsICV6dSBk
ZWNyeXB0b3JzIGF2YWlsYWJsZSIsIHByb3RlY3Rpb25TeXN0ZW1FdmVudHMuZXZlbnRzKCkuc2l6
ZSgpLCBwcm90ZWN0aW9uU3lzdGVtRXZlbnRzLmF2YWlsYWJsZVN5c3RlbXMoKS5zaXplKCkpOwog
Ci0gICAgICAgIGZvciAoYXV0byYgZXZlbnQgOiBwcm90ZWN0aW9uU3lzdGVtRXZlbnRzLmV2ZW50
cygpKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbUlkID0gbnVsbHB0
cjsKLSAgICAgICAgICAgIEdzdEJ1ZmZlciogZGF0YSA9IG51bGxwdHI7Ci0gICAgICAgICAgICBn
c3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbihldmVudC5nZXQoKSwgJmV2ZW50S2V5U3lzdGVtSWQs
ICZkYXRhLCBudWxscHRyKTsKKyAgICAgICAgICAgIGZvciAoYXV0byYgZXZlbnQgOiBwcm90ZWN0
aW9uU3lzdGVtRXZlbnRzLmV2ZW50cygpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgY2hhciog
ZXZlbnRLZXlTeXN0ZW1JZCA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgR3N0QnVmZmVyKiBk
YXRhID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlv
bihldmVudC5nZXQoKSwgJmV2ZW50S2V5U3lzdGVtSWQsICZkYXRhLCBudWxscHRyKTsKIAotICAg
ICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHtldmVudEtleVN5c3RlbUlkLCBkYXRhfSk7Ci0gICAg
ICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VRTlVNKGV2
ZW50LmdldCgpKSk7CisgICAgICAgICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHtldmVudEtleVN5
c3RlbUlkLCBkYXRhfSk7CisgICAgICAgICAgICAgICAgbV9oYW5kbGVkUHJvdGVjdGlvbkV2ZW50
cy5hZGQoR1NUX0VWRU5UX1NFUU5VTShldmVudC5nZXQoKSkpOworICAgICAgICAgICAgfQogICAg
ICAgICB9Ci0KICAgICAgICAgaW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoV1RGTW92ZShp
bml0RGF0YSkpOwogCiAgICAgICAgIEdTVF9JTkZPX09CSkVDVChwaXBlbGluZSgpLCAid2FpdGlu
ZyBmb3IgYSBDRE0gaW5zdGFuY2UiKTsKLSAgICAgICAgbV9wcm90ZWN0aW9uQ29uZGl0aW9uLndh
aXRGb3IobV9wcm90ZWN0aW9uTXV0ZXgsIFNlY29uZHMoNCksIFt0aGlzXSB7Ci0gICAgICAgICAg
ICByZXR1cm4gdGhpcy0+bV9jZG1JbnN0YW5jZTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgaWYg
KG1fY2RtSW5zdGFuY2UgJiYgIW1fY2RtSW5zdGFuY2UtPmtleVN5c3RlbSgpLmlzRW1wdHkoKSkg
eworICAgICAgICBpZiAobV9jZG1BdHRhY2htZW50U2VtYXBob3JlLndhaXRGb3IoNF9zKQorICAg
ICAgICAgICAgJiYgbV9ub3RpZmllci0+aXNWYWxpZCgpIC8vIENoZWNrIHRoZSBwbGF5ZXIgaXMg
bm90IGJlaW5nIGRlc3Ryb3llZC4KKyAgICAgICAgICAgICYmICFtX2NkbUluc3RhbmNlLT5rZXlT
eXN0ZW0oKS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHByZWZlcnJlZEtl
eVN5c3RlbVV1aWQgPSBHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OmtleVN5c3RlbVRvVXVpZChtX2Nk
bUluc3RhbmNlLT5rZXlTeXN0ZW0oKSk7CiAgICAgICAgICAgICBHU1RfSU5GT19PQkpFQ1QocGlw
ZWxpbmUoKSwgIndvcmtpbmcgd2l0aCBrZXkgc3lzdGVtICVzLCBjb250aW51aW5nIHdpdGgga2V5
IHN5c3RlbSAlcyBvbiAlcyIsIG1fY2RtSW5zdGFuY2UtPmtleVN5c3RlbSgpLnV0ZjgoKS5kYXRh
KCksIHByZWZlcnJlZEtleVN5c3RlbVV1aWQsIEdTVF9NRVNTQUdFX1NSQ19OQU1FKG1lc3NhZ2Up
KTsKIApAQCAtMTMwOCw3ICsxMzA5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjpjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNlJiBpbnN0YW5jZSkKIAogICAg
IEdTVF9ERUJVR19PQkpFQ1QobV9waXBlbGluZS5nZXQoKSwgIkNETSBpbnN0YW5jZSAlcCBkaXNw
YXRjaGVkIGFzIGNvbnRleHQiLCBtX2NkbUluc3RhbmNlLmdldCgpKTsKIAotICAgIG1fcHJvdGVj
dGlvbkNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyAgICBtX2NkbUF0dGFjaG1lbnRTZW1hcGhvcmUu
c2lnbmFsKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Y2Rt
SW5zdGFuY2VEZXRhY2hlZChDRE1JbnN0YW5jZSYgaW5zdGFuY2UpCkBAIC0xMzI4LDggKzEzMjks
NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmNkbUluc3RhbmNlRGV0
YWNoZWQoQ0RNSW5zdGFuY2UmIGluc3RhbmNlKQogCiAgICAgR1JlZlB0cjxHc3RDb250ZXh0PiBj
b250ZXh0ID0gYWRvcHRHUmVmKGdzdF9jb250ZXh0X25ldygiZHJtLWNkbS1pbnN0YW5jZSIsIEZB
TFNFKSk7CiAgICAgZ3N0X2VsZW1lbnRfc2V0X2NvbnRleHQoR1NUX0VMRU1FTlQobV9waXBlbGlu
ZS5nZXQoKSksIGNvbnRleHQuZ2V0KCkpOwotCi0gICAgbV9wcm90ZWN0aW9uQ29uZGl0aW9uLm5v
dGlmeUFsbCgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmF0
dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UoQ0RNSW5zdGFuY2UmIGluc3RhbmNlKQpAQCAtMTM0
Nyw5ICsxMzQ2LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6YXR0
ZW1wdFRvRGVjcnlwdFdpdGhMb2NhbEluc3RhbmNlKCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVQcm90ZWN0aW9uRXZlbnQoR3N0RXZlbnQqIGV2ZW50KQog
ewotICAgIGlmIChtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmNvbnRhaW5zKEdTVF9FVkVOVF9T
RVFOVU0oZXZlbnQpKSkgewotICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5lKCksICJl
dmVudCAldSBhbHJlYWR5IGhhbmRsZWQiLCBHU1RfRVZFTlRfU0VRTlVNKGV2ZW50KSk7Ci0gICAg
ICAgIHJldHVybjsKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3Byb3RlY3Rpb25N
dXRleCk7CisgICAgICAgIGlmIChtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmNvbnRhaW5zKEdT
VF9FVkVOVF9TRVFOVU0oZXZlbnQpKSkgeworICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChw
aXBlbGluZSgpLCAiZXZlbnQgJXUgYWxyZWFkeSBoYW5kbGVkIiwgR1NUX0VWRU5UX1NFUU5VTShl
dmVudCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQogICAgIEdTVF9E
RUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgImhhbmRsaW5nIGV2ZW50ICV1IGZyb20gTVNFIiwgR1NU
X0VWRU5UX1NFUU5VTShldmVudCkpOwogICAgIGNvbnN0IGNoYXIqIGV2ZW50S2V5U3lzdGVtVVVJ
RCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2UuaAppbmRleCAwZWIyM2EzM2JmYTJiZWVkOTAyMDdhYzIxYmViNzE0NTA1YjhmMWNh
Li4yMWM1ZDQyMDFlNGI1MTg0ZTQ1YjllNTk5ZWVkNjg5NDdjZTg4ZGMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlT
ZW1hcGhvcmUuaD4KIAogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiAjaWYgVVNFKExJQkVQT1hZKQpA
QCAtMzAxLDEwICszMDIsMTIgQEAgcHJvdGVjdGVkOgogICAgIEltYWdlT3JpZW50YXRpb24gbV92
aWRlb1NvdXJjZU9yaWVudGF0aW9uOwogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAg
ICBMb2NrIG1fcHJvdGVjdGlvbk11dGV4OwotICAgIENvbmRpdGlvbiBtX3Byb3RlY3Rpb25Db25k
aXRpb247CisgICAgQmluYXJ5U2VtYXBob3JlIG1fY2RtQXR0YWNobWVudFNlbWFwaG9yZTsKICAg
ICBSZWZQdHI8Y29uc3QgQ0RNSW5zdGFuY2U+IG1fY2RtSW5zdGFuY2U7CisKKyAgICBMb2NrIG1f
cHJvdGVjdGlvbk11dGV4OyAvLyBHdWFyZHMgYWNjZXNzIHRvIG1faGFuZGxlZFByb3RlY3Rpb25F
dmVudHMKICAgICBIYXNoU2V0PHVpbnQzMl90PiBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzOwor
CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxzZSB9OwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0
Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNy
eXB0b3JHU3RyZWFtZXIuY3BwCmluZGV4IDc4MWQ5YzQ1Y2RlODI4MTc1ZGNiYThiNjI3ZmY4N2E5
Mzc2YTczMDEuLjNlZWZiZTdlODg4ZmIyNDFjYTJhMDExZDg2ZmVhZmVlZmUwOTA0MDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2Vi
S2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0
aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcApAQCAtMjkzLDEwICsyOTMsNyBAQCBzdGF0aWMgYm9v
bCBpc0NETUluc3RhbmNlQXZhaWxhYmxlKFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5
cHQqIHNlbGYpCiAgICAgICAgIC8vIHJlcXVlc3RzIGFyZSB1c2VmdWwgaGVyZS4KICAgICAgICAg
aWYgKGNvbnRleHQpIHsKICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSogdmFsdWUgPSBnc3Rfc3Ry
dWN0dXJlX2dldF92YWx1ZShnc3RfY29udGV4dF9nZXRfc3RydWN0dXJlKGNvbnRleHQuZ2V0KCkp
LCAiY2RtLWluc3RhbmNlIik7Ci0gICAgICAgICAgICAvLyBDYXB0dXJlIHRoZSBDRE1JbnN0YW5j
ZSBpbnRvIGEgc2VwYXJhdGUgdmFyaWFibGUgdG8gYXZvaWQgbWlzc2luZyBhIHJlZmNvdW50Lgot
ICAgICAgICAgICAgQ0RNSW5zdGFuY2UqIGluc3RhbmNlID0gdmFsdWUgPyByZWludGVycHJldF9j
YXN0PENETUluc3RhbmNlKj4oZ192YWx1ZV9nZXRfcG9pbnRlcih2YWx1ZSkpIDogbnVsbHB0cjsK
LSAgICAgICAgICAgIC8vIC4uLiBBbmQgZm9yY2UgYSByZWZjb3VudCBidW1wIHVzaW5nIG9wZXJh
dG9yPS4KLSAgICAgICAgICAgIHByaXYtPmNkbUluc3RhbmNlID0gaW5zdGFuY2U7CisgICAgICAg
ICAgICBwcml2LT5jZG1JbnN0YW5jZSA9IHZhbHVlID8gcmVpbnRlcnByZXRfY2FzdDxDRE1JbnN0
YW5jZSo+KGdfdmFsdWVfZ2V0X3BvaW50ZXIodmFsdWUpKSA6IG51bGxwdHI7CiAgICAgICAgICAg
ICBpZiAocHJpdi0+Y2RtSW5zdGFuY2UpCiAgICAgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVD
VChzZWxmLCAicmVjZWl2ZWQgYSBuZXcgQ0RNIGluc3RhbmNlICVwLCByZWZjb3VudCAldSIsIHBy
aXYtPmNkbUluc3RhbmNlLmdldCgpLCBwcml2LT5jZG1JbnN0YW5jZS0+cmVmQ291bnQoKSk7CiAg
ICAgICAgICAgICBlbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377692</attachid>
            <date>2019-08-30 03:18:18 -0700</date>
            <delta_ts>2019-08-30 03:19:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201222-20190830111817.patch</filename>
            <type>text/plain</type>
            <size>10276</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU4ZGYxODUzZTJiZThh
ZDljNDhmNmMyMTVhYzAxYzk3MWJkOTFlZS4uYTMzMTMxOTY1YTkzMzFmN2MyZGZhOGUwNTMwOTEx
NGI1NzU4YTkyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE5LTA4LTI4ICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBE
byBub3QgcmVmIHRoZSBwbGF5ZXIgY291bnQgZnJvbSBiYWNrZ3JvdW5kIHRocmVhZHMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEyMjIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9jbGVhcmtleS1tcDQtcGxh
eWJhY2stcmV0cmlldmUtcGVyc2lzdGVudC1saWNlbnNlLmh0dHBzLmh0bWwKKworICAgICAgICBJ
biB0aGUgc3luYy1tZXNzYWdlIGhhbmRsZXIsIGEgcmVmKCkgd2FzIGJlaW5nIHRha2VuIHdhaXRp
bmcgZm9yIGEKKyAgICAgICAgQ0RNIGluc3RhbmNlIHRvIGJlIGF0dGFjaGVkLiBUaGlzIGhpdHMg
YXNzZXJ0cyBzaW5jZSB5b3UgYXJlIG5vdAorICAgICAgICBhbGxvd2VkIHRvIHJlZigpIGFuIG9i
amVjdCBjcmVhdGVkIG9uIHRoZSBtYWluIHRocmVhZAorICAgICAgICAoQmFzZVBsYXllcikgb24g
YSBiYWNrZ3JvdW5kIHRocmVhZC4KKworICAgICAgICBUaGUgcHJvdGVjdGlvbiBjb25kaXRpb24g
d2FzIG92ZXJseSBzY29wZWQsIHRpZGllZCB1cCB0aGUgbG9ja2luZworICAgICAgICBhbmQgbWFk
ZSBpdCBtb3JlIGdyYW51bGFyLiBUbyBhdm9pZCBuZWVkaW5nIHRvIGhvbGQgYSByZWYoKSBpbiB0
aGUKKyAgICAgICAgYmFja2dyb3VuZCB0aHJlYWQsIHVzZSBpbnN0ZWFkIGEgc2VtYXBob3JlIHRv
IHNpZ25hbCB3aGVuIGEgQ0RNCisgICAgICAgIGluc3RhbmNlIGlzIGF0dGFjaGVkLCBvciB0aGUg
cGxheWVyIGhhcyBiZWVuIGRlc3Ryb3llZC4KKworICAgICAgICBBbHNvIHJlbW92ZSBhbiBlcnJv
bmVvdXMgc2FmZS1ndWFyZCwgdGhlIG9wZXJhdG9yPSBpbgorICAgICAgICBpc0NETUluc3RhbmNl
QXZhaWxhYmxlIHdpbGwgcmVmKCkgdGhlIENETUluc3RhbmNlIGZvciB1cy4gVGhpcyB1c2UKKyAg
ICAgICAgb2YgaG9sZGluZyBhIHJlZmVyZW5jZSB0byBDRE1JbnN0YW5jZSBpbiB0aGUgZGVjcnlw
dG9ycyBpcyBub3QKKyAgICAgICAgdGhyZWFkLXNhZmUsIGFuZCBub3cgd2UgaGF2ZSBhIHByb2Js
ZW0gc2luY2UgdGhlcmUncyBubyBjbGVhbiB3YXkKKyAgICAgICAgdG8gY29tbXVuaWNhdGUgd2l0
aCBDRE1JbnN0YW5jZSBmcm9tIGJhY2tncm91bmQgdGhyZWFkcyB3aXRob3V0CisgICAgICAgIGJl
aW5nIHRocmVhZCB1bnNhZmUuIEZvciBDbGVhcktleSBhbmQgV2lkZXZpbmUsIGEgdGhyZWFkIHNh
ZmUKKyAgICAgICAgUHJveHlDRE0gbmVlZHMgdG8gYmUgZGVzaWduZWQgYW5kIHBhc3NlZCB0byBi
YWNrZ3JvdW5kCisgICAgICAgIHRocmVhZHMgKHVwY29taW5nIHBhdGNoKS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2U6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmhhbmRsZVN5bmNNZXNzYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmNkbUluc3Rh
bmNlQXR0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6Y2RtSW5zdGFuY2VEZXRhY2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVQcm90ZWN0aW9uRXZlbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJL
aXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKGlzQ0RN
SW5zdGFuY2VBdmFpbGFibGUpOgorCiAyMDE5LTA4LTE2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBDb250ZW50IGluIDxpZnJhbWU+IHNob3VsZCBvdmVycmlk
ZSAidG91Y2gtYWN0aW9uIiBzZXQgaW4gZW1iZWRkaW5nIGRvY3VtZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggMzZiMGQz
M2Q0ZmJkMWZiOTcxNTcwZmVlNGE3ODc0OGZjMmVmZDQ2Mi4uOGYwZTNjNDk1OTgxMDljNjk2Nzdm
NjdkZDMwYjQwZTI2MDQxMjY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtMjQ1LDkgKzI0NSw2IEBAIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2U6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKCkK
ICAgICBkb3duY2FzdDxOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbD4obV9u
aWNvc2lhTGF5ZXItPmltcGwoKSkuaW52YWxpZGF0ZUNsaWVudCgpOwogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQotICAgIG1fcHJvdGVjdGlvbkNvbmRpdGlvbi5ub3RpZnlB
bGwoKTsKLSNlbmRpZgogICAgIG1fbm90aWZpZXItPmludmFsaWRhdGUoKTsKIAogICAgIGlmICht
X3ZpZGVvU2luaykgewpAQCAtMjY3LDYgKzI2NCwxMCBAQCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSgpCiAgICAgLy8gd2Fp
dGluZyB0aGVyZSwgYW5kIGVuc3VyZSB0aGF0IGFueSB0cmlnZ2VyUmVwYWludCBjYWxsIHJlYWNo
aW5nIHRoZSBsb2NrIHdvbid0IHdhaXQgb24gbV9kcmF3Q29uZGl0aW9uLgogICAgIGNhbmNlbFJl
cGFpbnQodHJ1ZSk7CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIG1fY2RtQXR0
YWNobWVudFNlbWFwaG9yZS5zaWduYWwoKTsKKyNlbmRpZgorCiAgICAgLy8gVGhlIGNoYW5nZSB0
byBHU1RfU1RBVEVfTlVMTCBzdGF0ZSBpcyBhbHdheXMgc3luY2hyb25vdXMuIFNvIGFmdGVyIHRo
aXMgZ2V0cyBleGVjdXRlZCB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5CiAgICAgLy8gYWJvdXQgaGFu
ZGxlcnMgcnVubmluZyBpbiB0aGUgR1N0cmVhbWVyIHRocmVhZC4KICAgICBpZiAobV9waXBlbGlu
ZSkKQEAgLTMyOCwyOCArMzI5LDI4IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZTo6aGFuZGxlU3luY01lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVs
aW5lKCksICJoYW5kbGluZyBkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIG5lZWQg
Y29udGV4dCBtZXNzYWdlIik7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3Byb3RlY3Rpb25N
dXRleCk7Ci0gICAgICAgIFByb3RlY3Rpb25TeXN0ZW1FdmVudHMgcHJvdGVjdGlvblN5c3RlbUV2
ZW50cyhtZXNzYWdlKTsKLSAgICAgICAgR1NUX1RSQUNFKCJmb3VuZCAlenUgcHJvdGVjdGlvbiBl
dmVudHMsICV6dSBkZWNyeXB0b3JzIGF2YWlsYWJsZSIsIHByb3RlY3Rpb25TeXN0ZW1FdmVudHMu
ZXZlbnRzKCkuc2l6ZSgpLCBwcm90ZWN0aW9uU3lzdGVtRXZlbnRzLmF2YWlsYWJsZVN5c3RlbXMo
KS5zaXplKCkpOworCiAgICAgICAgIEluaXREYXRhIGluaXREYXRhOworICAgICAgICB7CisgICAg
ICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9wcm90ZWN0aW9uTXV0ZXgpOworICAgICAgICAgICAg
UHJvdGVjdGlvblN5c3RlbUV2ZW50cyBwcm90ZWN0aW9uU3lzdGVtRXZlbnRzKG1lc3NhZ2UpOwor
ICAgICAgICAgICAgR1NUX1RSQUNFKCJmb3VuZCAlenUgcHJvdGVjdGlvbiBldmVudHMsICV6dSBk
ZWNyeXB0b3JzIGF2YWlsYWJsZSIsIHByb3RlY3Rpb25TeXN0ZW1FdmVudHMuZXZlbnRzKCkuc2l6
ZSgpLCBwcm90ZWN0aW9uU3lzdGVtRXZlbnRzLmF2YWlsYWJsZVN5c3RlbXMoKS5zaXplKCkpOwog
Ci0gICAgICAgIGZvciAoYXV0byYgZXZlbnQgOiBwcm90ZWN0aW9uU3lzdGVtRXZlbnRzLmV2ZW50
cygpKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbUlkID0gbnVsbHB0
cjsKLSAgICAgICAgICAgIEdzdEJ1ZmZlciogZGF0YSA9IG51bGxwdHI7Ci0gICAgICAgICAgICBn
c3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbihldmVudC5nZXQoKSwgJmV2ZW50S2V5U3lzdGVtSWQs
ICZkYXRhLCBudWxscHRyKTsKKyAgICAgICAgICAgIGZvciAoYXV0byYgZXZlbnQgOiBwcm90ZWN0
aW9uU3lzdGVtRXZlbnRzLmV2ZW50cygpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgY2hhciog
ZXZlbnRLZXlTeXN0ZW1JZCA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgR3N0QnVmZmVyKiBk
YXRhID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlv
bihldmVudC5nZXQoKSwgJmV2ZW50S2V5U3lzdGVtSWQsICZkYXRhLCBudWxscHRyKTsKIAotICAg
ICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHtldmVudEtleVN5c3RlbUlkLCBkYXRhfSk7Ci0gICAg
ICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VRTlVNKGV2
ZW50LmdldCgpKSk7CisgICAgICAgICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHtldmVudEtleVN5
c3RlbUlkLCBkYXRhfSk7CisgICAgICAgICAgICAgICAgbV9oYW5kbGVkUHJvdGVjdGlvbkV2ZW50
cy5hZGQoR1NUX0VWRU5UX1NFUU5VTShldmVudC5nZXQoKSkpOworICAgICAgICAgICAgfQogICAg
ICAgICB9Ci0KICAgICAgICAgaW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoV1RGTW92ZShp
bml0RGF0YSkpOwogCiAgICAgICAgIEdTVF9JTkZPX09CSkVDVChwaXBlbGluZSgpLCAid2FpdGlu
ZyBmb3IgYSBDRE0gaW5zdGFuY2UiKTsKLSAgICAgICAgbV9wcm90ZWN0aW9uQ29uZGl0aW9uLndh
aXRGb3IobV9wcm90ZWN0aW9uTXV0ZXgsIFNlY29uZHMoNCksIFt0aGlzXSB7Ci0gICAgICAgICAg
ICByZXR1cm4gdGhpcy0+bV9jZG1JbnN0YW5jZTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgaWYg
KG1fY2RtSW5zdGFuY2UgJiYgIW1fY2RtSW5zdGFuY2UtPmtleVN5c3RlbSgpLmlzRW1wdHkoKSkg
eworICAgICAgICBpZiAobV9jZG1BdHRhY2htZW50U2VtYXBob3JlLndhaXRGb3IoNF9zKQorICAg
ICAgICAgICAgJiYgbV9ub3RpZmllci0+aXNWYWxpZCgpIC8vIENoZWNrIHRoZSBwbGF5ZXIgaXMg
bm90IGJlaW5nIGRlc3Ryb3llZC4KKyAgICAgICAgICAgICYmICFtX2NkbUluc3RhbmNlLT5rZXlT
eXN0ZW0oKS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHByZWZlcnJlZEtl
eVN5c3RlbVV1aWQgPSBHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OmtleVN5c3RlbVRvVXVpZChtX2Nk
bUluc3RhbmNlLT5rZXlTeXN0ZW0oKSk7CiAgICAgICAgICAgICBHU1RfSU5GT19PQkpFQ1QocGlw
ZWxpbmUoKSwgIndvcmtpbmcgd2l0aCBrZXkgc3lzdGVtICVzLCBjb250aW51aW5nIHdpdGgga2V5
IHN5c3RlbSAlcyBvbiAlcyIsIG1fY2RtSW5zdGFuY2UtPmtleVN5c3RlbSgpLnV0ZjgoKS5kYXRh
KCksIHByZWZlcnJlZEtleVN5c3RlbVV1aWQsIEdTVF9NRVNTQUdFX1NSQ19OQU1FKG1lc3NhZ2Up
KTsKIApAQCAtMTMwOCw3ICsxMzA5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjpjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNlJiBpbnN0YW5jZSkKIAogICAg
IEdTVF9ERUJVR19PQkpFQ1QobV9waXBlbGluZS5nZXQoKSwgIkNETSBpbnN0YW5jZSAlcCBkaXNw
YXRjaGVkIGFzIGNvbnRleHQiLCBtX2NkbUluc3RhbmNlLmdldCgpKTsKIAotICAgIG1fcHJvdGVj
dGlvbkNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyAgICBtX2NkbUF0dGFjaG1lbnRTZW1hcGhvcmUu
c2lnbmFsKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Y2Rt
SW5zdGFuY2VEZXRhY2hlZChDRE1JbnN0YW5jZSYgaW5zdGFuY2UpCkBAIC0xMzI4LDggKzEzMjks
NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmNkbUluc3RhbmNlRGV0
YWNoZWQoQ0RNSW5zdGFuY2UmIGluc3RhbmNlKQogCiAgICAgR1JlZlB0cjxHc3RDb250ZXh0PiBj
b250ZXh0ID0gYWRvcHRHUmVmKGdzdF9jb250ZXh0X25ldygiZHJtLWNkbS1pbnN0YW5jZSIsIEZB
TFNFKSk7CiAgICAgZ3N0X2VsZW1lbnRfc2V0X2NvbnRleHQoR1NUX0VMRU1FTlQobV9waXBlbGlu
ZS5nZXQoKSksIGNvbnRleHQuZ2V0KCkpOwotCi0gICAgbV9wcm90ZWN0aW9uQ29uZGl0aW9uLm5v
dGlmeUFsbCgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmF0
dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UoQ0RNSW5zdGFuY2UmIGluc3RhbmNlKQpAQCAtMTM0
Nyw5ICsxMzQ2LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6YXR0
ZW1wdFRvRGVjcnlwdFdpdGhMb2NhbEluc3RhbmNlKCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVQcm90ZWN0aW9uRXZlbnQoR3N0RXZlbnQqIGV2ZW50KQog
ewotICAgIGlmIChtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmNvbnRhaW5zKEdTVF9FVkVOVF9T
RVFOVU0oZXZlbnQpKSkgewotICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5lKCksICJl
dmVudCAldSBhbHJlYWR5IGhhbmRsZWQiLCBHU1RfRVZFTlRfU0VRTlVNKGV2ZW50KSk7Ci0gICAg
ICAgIHJldHVybjsKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3Byb3RlY3Rpb25N
dXRleCk7CisgICAgICAgIGlmIChtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmNvbnRhaW5zKEdT
VF9FVkVOVF9TRVFOVU0oZXZlbnQpKSkgeworICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChw
aXBlbGluZSgpLCAiZXZlbnQgJXUgYWxyZWFkeSBoYW5kbGVkIiwgR1NUX0VWRU5UX1NFUU5VTShl
dmVudCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQogICAgIEdTVF9E
RUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgImhhbmRsaW5nIGV2ZW50ICV1IGZyb20gTVNFIiwgR1NU
X0VWRU5UX1NFUU5VTShldmVudCkpOwogICAgIGNvbnN0IGNoYXIqIGV2ZW50S2V5U3lzdGVtVVVJ
RCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2UuaAppbmRleCAwZWIyM2EzM2JmYTJiZWVkOTAyMDdhYzIxYmViNzE0NTA1YjhmMWNh
Li4yMWM1ZDQyMDFlNGI1MTg0ZTQ1YjllNTk5ZWVkNjg5NDdjZTg4ZGMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlT
ZW1hcGhvcmUuaD4KIAogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiAjaWYgVVNFKExJQkVQT1hZKQpA
QCAtMzAxLDEwICszMDIsMTIgQEAgcHJvdGVjdGVkOgogICAgIEltYWdlT3JpZW50YXRpb24gbV92
aWRlb1NvdXJjZU9yaWVudGF0aW9uOwogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAg
ICBMb2NrIG1fcHJvdGVjdGlvbk11dGV4OwotICAgIENvbmRpdGlvbiBtX3Byb3RlY3Rpb25Db25k
aXRpb247CisgICAgQmluYXJ5U2VtYXBob3JlIG1fY2RtQXR0YWNobWVudFNlbWFwaG9yZTsKICAg
ICBSZWZQdHI8Y29uc3QgQ0RNSW5zdGFuY2U+IG1fY2RtSW5zdGFuY2U7CisKKyAgICBMb2NrIG1f
cHJvdGVjdGlvbk11dGV4OyAvLyBHdWFyZHMgYWNjZXNzIHRvIG1faGFuZGxlZFByb3RlY3Rpb25F
dmVudHMKICAgICBIYXNoU2V0PHVpbnQzMl90PiBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzOwor
CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxzZSB9OwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0
Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNy
eXB0b3JHU3RyZWFtZXIuY3BwCmluZGV4IDc4MWQ5YzQ1Y2RlODI4MTc1ZGNiYThiNjI3ZmY4N2E5
Mzc2YTczMDEuLjNlZWZiZTdlODg4ZmIyNDFjYTJhMDExZDg2ZmVhZmVlZmUwOTA0MDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2Vi
S2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0
aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcApAQCAtMjkzLDEwICsyOTMsNyBAQCBzdGF0aWMgYm9v
bCBpc0NETUluc3RhbmNlQXZhaWxhYmxlKFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5
cHQqIHNlbGYpCiAgICAgICAgIC8vIHJlcXVlc3RzIGFyZSB1c2VmdWwgaGVyZS4KICAgICAgICAg
aWYgKGNvbnRleHQpIHsKICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSogdmFsdWUgPSBnc3Rfc3Ry
dWN0dXJlX2dldF92YWx1ZShnc3RfY29udGV4dF9nZXRfc3RydWN0dXJlKGNvbnRleHQuZ2V0KCkp
LCAiY2RtLWluc3RhbmNlIik7Ci0gICAgICAgICAgICAvLyBDYXB0dXJlIHRoZSBDRE1JbnN0YW5j
ZSBpbnRvIGEgc2VwYXJhdGUgdmFyaWFibGUgdG8gYXZvaWQgbWlzc2luZyBhIHJlZmNvdW50Lgot
ICAgICAgICAgICAgQ0RNSW5zdGFuY2UqIGluc3RhbmNlID0gdmFsdWUgPyByZWludGVycHJldF9j
YXN0PENETUluc3RhbmNlKj4oZ192YWx1ZV9nZXRfcG9pbnRlcih2YWx1ZSkpIDogbnVsbHB0cjsK
LSAgICAgICAgICAgIC8vIC4uLiBBbmQgZm9yY2UgYSByZWZjb3VudCBidW1wIHVzaW5nIG9wZXJh
dG9yPS4KLSAgICAgICAgICAgIHByaXYtPmNkbUluc3RhbmNlID0gaW5zdGFuY2U7CisgICAgICAg
ICAgICBwcml2LT5jZG1JbnN0YW5jZSA9IHZhbHVlID8gcmVpbnRlcnByZXRfY2FzdDxDRE1JbnN0
YW5jZSo+KGdfdmFsdWVfZ2V0X3BvaW50ZXIodmFsdWUpKSA6IG51bGxwdHI7CiAgICAgICAgICAg
ICBpZiAocHJpdi0+Y2RtSW5zdGFuY2UpCiAgICAgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVD
VChzZWxmLCAicmVjZWl2ZWQgYSBuZXcgQ0RNIGluc3RhbmNlICVwLCByZWZjb3VudCAldSIsIHBy
aXYtPmNkbUluc3RhbmNlLmdldCgpLCBwcml2LT5jZG1JbnN0YW5jZS0+cmVmQ291bnQoKSk7CiAg
ICAgICAgICAgICBlbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377693</attachid>
            <date>2019-08-30 03:19:13 -0700</date>
            <delta_ts>2019-08-30 04:02:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201222-20190830111912.patch</filename>
            <type>text/plain</type>
            <size>10286</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU4ZGYxODUzZTJiZThh
ZDljNDhmNmMyMTVhYzAxYzk3MWJkOTFlZS4uM2RjZWM1OTFiNjA2ODA1N2NhYjIwMDExMzNjYzZm
ZTk3YTA3NDY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE5LTA4LTI4ICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBE
byBub3QgcmVmIHRoZSBwbGF5ZXIgY291bnQgZnJvbSBiYWNrZ3JvdW5kIHRocmVhZHMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEyMjIKKworICAg
ICAgICBSZXZpZXdlZCBieSBYYWJpZXIgUm9kcmlndWV6LUNhbHZhci4KKworICAgICAgICBUZXN0
OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9jbGVhcmtl
eS1tcDQtcGxheWJhY2stcmV0cmlldmUtcGVyc2lzdGVudC1saWNlbnNlLmh0dHBzLmh0bWwKKwor
ICAgICAgICBJbiB0aGUgc3luYy1tZXNzYWdlIGhhbmRsZXIsIGEgcmVmKCkgd2FzIGJlaW5nIHRh
a2VuIHdhaXRpbmcgZm9yIGEKKyAgICAgICAgQ0RNIGluc3RhbmNlIHRvIGJlIGF0dGFjaGVkLiBU
aGlzIGhpdHMgYXNzZXJ0cyBzaW5jZSB5b3UgYXJlIG5vdAorICAgICAgICBhbGxvd2VkIHRvIHJl
ZigpIGFuIG9iamVjdCBjcmVhdGVkIG9uIHRoZSBtYWluIHRocmVhZAorICAgICAgICAoQmFzZVBs
YXllcikgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KKworICAgICAgICBUaGUgcHJvdGVjdGlvbiBj
b25kaXRpb24gd2FzIG92ZXJseSBzY29wZWQsIHRpZGllZCB1cCB0aGUgbG9ja2luZworICAgICAg
ICBhbmQgbWFkZSBpdCBtb3JlIGdyYW51bGFyLiBUbyBhdm9pZCBuZWVkaW5nIHRvIGhvbGQgYSBy
ZWYoKSBpbiB0aGUKKyAgICAgICAgYmFja2dyb3VuZCB0aHJlYWQsIHVzZSBpbnN0ZWFkIGEgc2Vt
YXBob3JlIHRvIHNpZ25hbCB3aGVuIGEgQ0RNCisgICAgICAgIGluc3RhbmNlIGlzIGF0dGFjaGVk
LCBvciB0aGUgcGxheWVyIGhhcyBiZWVuIGRlc3Ryb3llZC4KKworICAgICAgICBBbHNvIHJlbW92
ZSBhbiBlcnJvbmVvdXMgc2FmZS1ndWFyZCwgdGhlIG9wZXJhdG9yPSBpbgorICAgICAgICBpc0NE
TUluc3RhbmNlQXZhaWxhYmxlIHdpbGwgcmVmKCkgdGhlIENETUluc3RhbmNlIGZvciB1cy4gVGhp
cyB1c2UKKyAgICAgICAgb2YgaG9sZGluZyBhIHJlZmVyZW5jZSB0byBDRE1JbnN0YW5jZSBpbiB0
aGUgZGVjcnlwdG9ycyBpcyBub3QKKyAgICAgICAgdGhyZWFkLXNhZmUsIGFuZCBub3cgd2UgaGF2
ZSBhIHByb2JsZW0gc2luY2UgdGhlcmUncyBubyBjbGVhbiB3YXkKKyAgICAgICAgdG8gY29tbXVu
aWNhdGUgd2l0aCBDRE1JbnN0YW5jZSBmcm9tIGJhY2tncm91bmQgdGhyZWFkcyB3aXRob3V0Cisg
ICAgICAgIGJlaW5nIHRocmVhZCB1bnNhZmUuIEZvciBDbGVhcktleSBhbmQgV2lkZXZpbmUsIGEg
dGhyZWFkIHNhZmUKKyAgICAgICAgUHJveHlDRE0gbmVlZHMgdG8gYmUgZGVzaWduZWQgYW5kIHBh
c3NlZCB0byBiYWNrZ3JvdW5kCisgICAgICAgIHRocmVhZHMgKHVwY29taW5nIHBhdGNoKS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2U6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmhhbmRsZVN5bmNNZXNz
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OmNkbUluc3RhbmNlQXR0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZTo6Y2RtSW5zdGFuY2VEZXRhY2hlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVQcm90ZWN0aW9uRXZlbnQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcDoKKyAgICAg
ICAgKGlzQ0RNSW5zdGFuY2VBdmFpbGFibGUpOgorCiAyMDE5LTA4LTE2ICBBbnR0aSBLb2l2aXN0
byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBDb250ZW50IGluIDxpZnJhbWU+IHNob3Vs
ZCBvdmVycmlkZSAidG91Y2gtYWN0aW9uIiBzZXQgaW4gZW1iZWRkaW5nIGRvY3VtZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5k
ZXggMzZiMGQzM2Q0ZmJkMWZiOTcxNTcwZmVlNGE3ODc0OGZjMmVmZDQ2Mi4uOGYwZTNjNDk1OTgx
MDljNjk2NzdmNjdkZDMwYjQwZTI2MDQxMjY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtMjQ1LDkgKzI0NSw2IEBAIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlKCkKICAgICBkb3duY2FzdDxOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVy
SW1wbD4obV9uaWNvc2lhTGF5ZXItPmltcGwoKSkuaW52YWxpZGF0ZUNsaWVudCgpOwogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAgIG1fcHJvdGVjdGlvbkNvbmRpdGlv
bi5ub3RpZnlBbGwoKTsKLSNlbmRpZgogICAgIG1fbm90aWZpZXItPmludmFsaWRhdGUoKTsKIAog
ICAgIGlmIChtX3ZpZGVvU2luaykgewpAQCAtMjY3LDYgKzI2NCwxMCBAQCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSgpCiAg
ICAgLy8gd2FpdGluZyB0aGVyZSwgYW5kIGVuc3VyZSB0aGF0IGFueSB0cmlnZ2VyUmVwYWludCBj
YWxsIHJlYWNoaW5nIHRoZSBsb2NrIHdvbid0IHdhaXQgb24gbV9kcmF3Q29uZGl0aW9uLgogICAg
IGNhbmNlbFJlcGFpbnQodHJ1ZSk7CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAg
IG1fY2RtQXR0YWNobWVudFNlbWFwaG9yZS5zaWduYWwoKTsKKyNlbmRpZgorCiAgICAgLy8gVGhl
IGNoYW5nZSB0byBHU1RfU1RBVEVfTlVMTCBzdGF0ZSBpcyBhbHdheXMgc3luY2hyb25vdXMuIFNv
IGFmdGVyIHRoaXMgZ2V0cyBleGVjdXRlZCB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5CiAgICAgLy8g
YWJvdXQgaGFuZGxlcnMgcnVubmluZyBpbiB0aGUgR1N0cmVhbWVyIHRocmVhZC4KICAgICBpZiAo
bV9waXBlbGluZSkKQEAgLTMyOCwyOCArMzI5LDI4IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZTo6aGFuZGxlU3luY01lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBHU1RfREVCVUdfT0JK
RUNUKHBpcGVsaW5lKCksICJoYW5kbGluZyBkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVt
LWlkIG5lZWQgY29udGV4dCBtZXNzYWdlIik7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3By
b3RlY3Rpb25NdXRleCk7Ci0gICAgICAgIFByb3RlY3Rpb25TeXN0ZW1FdmVudHMgcHJvdGVjdGlv
blN5c3RlbUV2ZW50cyhtZXNzYWdlKTsKLSAgICAgICAgR1NUX1RSQUNFKCJmb3VuZCAlenUgcHJv
dGVjdGlvbiBldmVudHMsICV6dSBkZWNyeXB0b3JzIGF2YWlsYWJsZSIsIHByb3RlY3Rpb25TeXN0
ZW1FdmVudHMuZXZlbnRzKCkuc2l6ZSgpLCBwcm90ZWN0aW9uU3lzdGVtRXZlbnRzLmF2YWlsYWJs
ZVN5c3RlbXMoKS5zaXplKCkpOworCiAgICAgICAgIEluaXREYXRhIGluaXREYXRhOworICAgICAg
ICB7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9wcm90ZWN0aW9uTXV0ZXgpOworICAg
ICAgICAgICAgUHJvdGVjdGlvblN5c3RlbUV2ZW50cyBwcm90ZWN0aW9uU3lzdGVtRXZlbnRzKG1l
c3NhZ2UpOworICAgICAgICAgICAgR1NUX1RSQUNFKCJmb3VuZCAlenUgcHJvdGVjdGlvbiBldmVu
dHMsICV6dSBkZWNyeXB0b3JzIGF2YWlsYWJsZSIsIHByb3RlY3Rpb25TeXN0ZW1FdmVudHMuZXZl
bnRzKCkuc2l6ZSgpLCBwcm90ZWN0aW9uU3lzdGVtRXZlbnRzLmF2YWlsYWJsZVN5c3RlbXMoKS5z
aXplKCkpOwogCi0gICAgICAgIGZvciAoYXV0byYgZXZlbnQgOiBwcm90ZWN0aW9uU3lzdGVtRXZl
bnRzLmV2ZW50cygpKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbUlk
ID0gbnVsbHB0cjsKLSAgICAgICAgICAgIEdzdEJ1ZmZlciogZGF0YSA9IG51bGxwdHI7Ci0gICAg
ICAgICAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbihldmVudC5nZXQoKSwgJmV2ZW50S2V5
U3lzdGVtSWQsICZkYXRhLCBudWxscHRyKTsKKyAgICAgICAgICAgIGZvciAoYXV0byYgZXZlbnQg
OiBwcm90ZWN0aW9uU3lzdGVtRXZlbnRzLmV2ZW50cygpKSB7CisgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogZXZlbnRLZXlTeXN0ZW1JZCA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgR3N0
QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBnc3RfZXZlbnRfcGFyc2Vf
cHJvdGVjdGlvbihldmVudC5nZXQoKSwgJmV2ZW50S2V5U3lzdGVtSWQsICZkYXRhLCBudWxscHRy
KTsKIAotICAgICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHtldmVudEtleVN5c3RlbUlkLCBkYXRh
fSk7Ci0gICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRf
U0VRTlVNKGV2ZW50LmdldCgpKSk7CisgICAgICAgICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHtl
dmVudEtleVN5c3RlbUlkLCBkYXRhfSk7CisgICAgICAgICAgICAgICAgbV9oYW5kbGVkUHJvdGVj
dGlvbkV2ZW50cy5hZGQoR1NUX0VWRU5UX1NFUU5VTShldmVudC5nZXQoKSkpOworICAgICAgICAg
ICAgfQogICAgICAgICB9Ci0KICAgICAgICAgaW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQo
V1RGTW92ZShpbml0RGF0YSkpOwogCiAgICAgICAgIEdTVF9JTkZPX09CSkVDVChwaXBlbGluZSgp
LCAid2FpdGluZyBmb3IgYSBDRE0gaW5zdGFuY2UiKTsKLSAgICAgICAgbV9wcm90ZWN0aW9uQ29u
ZGl0aW9uLndhaXRGb3IobV9wcm90ZWN0aW9uTXV0ZXgsIFNlY29uZHMoNCksIFt0aGlzXSB7Ci0g
ICAgICAgICAgICByZXR1cm4gdGhpcy0+bV9jZG1JbnN0YW5jZTsKLSAgICAgICAgfSk7Ci0KLSAg
ICAgICAgaWYgKG1fY2RtSW5zdGFuY2UgJiYgIW1fY2RtSW5zdGFuY2UtPmtleVN5c3RlbSgpLmlz
RW1wdHkoKSkgeworICAgICAgICBpZiAobV9jZG1BdHRhY2htZW50U2VtYXBob3JlLndhaXRGb3Io
NF9zKQorICAgICAgICAgICAgJiYgbV9ub3RpZmllci0+aXNWYWxpZCgpIC8vIENoZWNrIHRoZSBw
bGF5ZXIgaXMgbm90IGJlaW5nIGRlc3Ryb3llZC4KKyAgICAgICAgICAgICYmICFtX2NkbUluc3Rh
bmNlLT5rZXlTeXN0ZW0oKS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHBy
ZWZlcnJlZEtleVN5c3RlbVV1aWQgPSBHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OmtleVN5c3RlbVRv
VXVpZChtX2NkbUluc3RhbmNlLT5rZXlTeXN0ZW0oKSk7CiAgICAgICAgICAgICBHU1RfSU5GT19P
QkpFQ1QocGlwZWxpbmUoKSwgIndvcmtpbmcgd2l0aCBrZXkgc3lzdGVtICVzLCBjb250aW51aW5n
IHdpdGgga2V5IHN5c3RlbSAlcyBvbiAlcyIsIG1fY2RtSW5zdGFuY2UtPmtleVN5c3RlbSgpLnV0
ZjgoKS5kYXRhKCksIHByZWZlcnJlZEtleVN5c3RlbVV1aWQsIEdTVF9NRVNTQUdFX1NSQ19OQU1F
KG1lc3NhZ2UpKTsKIApAQCAtMTMwOCw3ICsxMzA5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjpjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNlJiBpbnN0YW5j
ZSkKIAogICAgIEdTVF9ERUJVR19PQkpFQ1QobV9waXBlbGluZS5nZXQoKSwgIkNETSBpbnN0YW5j
ZSAlcCBkaXNwYXRjaGVkIGFzIGNvbnRleHQiLCBtX2NkbUluc3RhbmNlLmdldCgpKTsKIAotICAg
IG1fcHJvdGVjdGlvbkNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyAgICBtX2NkbUF0dGFjaG1lbnRT
ZW1hcGhvcmUuc2lnbmFsKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZTo6Y2RtSW5zdGFuY2VEZXRhY2hlZChDRE1JbnN0YW5jZSYgaW5zdGFuY2UpCkBAIC0xMzI4
LDggKzEzMjksNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmNkbUlu
c3RhbmNlRGV0YWNoZWQoQ0RNSW5zdGFuY2UmIGluc3RhbmNlKQogCiAgICAgR1JlZlB0cjxHc3RD
b250ZXh0PiBjb250ZXh0ID0gYWRvcHRHUmVmKGdzdF9jb250ZXh0X25ldygiZHJtLWNkbS1pbnN0
YW5jZSIsIEZBTFNFKSk7CiAgICAgZ3N0X2VsZW1lbnRfc2V0X2NvbnRleHQoR1NUX0VMRU1FTlQo
bV9waXBlbGluZS5nZXQoKSksIGNvbnRleHQuZ2V0KCkpOwotCi0gICAgbV9wcm90ZWN0aW9uQ29u
ZGl0aW9uLm5vdGlmeUFsbCgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2U6OmF0dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UoQ0RNSW5zdGFuY2UmIGluc3RhbmNl
KQpAQCAtMTM0Nyw5ICsxMzQ2LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZTo6YXR0ZW1wdFRvRGVjcnlwdFdpdGhMb2NhbEluc3RhbmNlKCkKIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVQcm90ZWN0aW9uRXZlbnQoR3N0RXZlbnQq
IGV2ZW50KQogewotICAgIGlmIChtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmNvbnRhaW5zKEdT
VF9FVkVOVF9TRVFOVU0oZXZlbnQpKSkgewotICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVs
aW5lKCksICJldmVudCAldSBhbHJlYWR5IGhhbmRsZWQiLCBHU1RfRVZFTlRfU0VRTlVNKGV2ZW50
KSk7Ci0gICAgICAgIHJldHVybjsKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3By
b3RlY3Rpb25NdXRleCk7CisgICAgICAgIGlmIChtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmNv
bnRhaW5zKEdTVF9FVkVOVF9TRVFOVU0oZXZlbnQpKSkgeworICAgICAgICAgICAgR1NUX0RFQlVH
X09CSkVDVChwaXBlbGluZSgpLCAiZXZlbnQgJXUgYWxyZWFkeSBoYW5kbGVkIiwgR1NUX0VWRU5U
X1NFUU5VTShldmVudCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQog
ICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgImhhbmRsaW5nIGV2ZW50ICV1IGZyb20g
TVNFIiwgR1NUX0VWRU5UX1NFUU5VTShldmVudCkpOwogICAgIGNvbnN0IGNoYXIqIGV2ZW50S2V5
U3lzdGVtVVVJRCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuaAppbmRleCAwZWIyM2EzM2JmYTJiZWVkOTAyMDdhYzIxYmViNzE0
NTA1YjhmMWNhLi44NjEyMDVkNWMyYmUxY2U3OGVjMTNmZGZjZmJhYzI4ZmEzNmRhNDgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFk
cy9CaW5hcnlTZW1hcGhvcmUuaD4KIAogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiAjaWYgVVNFKExJ
QkVQT1hZKQpAQCAtMzAxLDEwICszMDIsMTIgQEAgcHJvdGVjdGVkOgogICAgIEltYWdlT3JpZW50
YXRpb24gbV92aWRlb1NvdXJjZU9yaWVudGF0aW9uOwogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKLSAgICBMb2NrIG1fcHJvdGVjdGlvbk11dGV4OwotICAgIENvbmRpdGlvbiBtX3Byb3Rl
Y3Rpb25Db25kaXRpb247CisgICAgQmluYXJ5U2VtYXBob3JlIG1fY2RtQXR0YWNobWVudFNlbWFw
aG9yZTsKICAgICBSZWZQdHI8Y29uc3QgQ0RNSW5zdGFuY2U+IG1fY2RtSW5zdGFuY2U7CisKKyAg
ICBMb2NrIG1fcHJvdGVjdGlvbk11dGV4OyAvLyBHdWFyZHMgYWNjZXNzIHRvIG1faGFuZGxlZFBy
b3RlY3Rpb25FdmVudHMuCiAgICAgSGFzaFNldDx1aW50MzJfdD4gbV9oYW5kbGVkUHJvdGVjdGlv
bkV2ZW50czsKKwogICAgIGJvb2wgbV93YWl0aW5nRm9yS2V5IHsgZmFsc2UgfTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNy
eXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCA3ODFkOWM0NWNkZTgyODE3NWRjYmE4
YjYyN2ZmODdhOTM3NmE3MzAxLi4zZWVmYmU3ZTg4OGZiMjQxY2EyYTAxMWQ4NmZlYWZlZWZlMDkw
NDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29t
bW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTI5MywxMCArMjkzLDcgQEAg
c3RhdGljIGJvb2wgaXNDRE1JbnN0YW5jZUF2YWlsYWJsZShXZWJLaXRNZWRpYUNvbW1vbkVuY3J5
cHRpb25EZWNyeXB0KiBzZWxmKQogICAgICAgICAvLyByZXF1ZXN0cyBhcmUgdXNlZnVsIGhlcmUu
CiAgICAgICAgIGlmIChjb250ZXh0KSB7CiAgICAgICAgICAgICBjb25zdCBHVmFsdWUqIHZhbHVl
ID0gZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUoZ3N0X2NvbnRleHRfZ2V0X3N0cnVjdHVyZShjb250
ZXh0LmdldCgpKSwgImNkbS1pbnN0YW5jZSIpOwotICAgICAgICAgICAgLy8gQ2FwdHVyZSB0aGUg
Q0RNSW5zdGFuY2UgaW50byBhIHNlcGFyYXRlIHZhcmlhYmxlIHRvIGF2b2lkIG1pc3NpbmcgYSBy
ZWZjb3VudC4KLSAgICAgICAgICAgIENETUluc3RhbmNlKiBpbnN0YW5jZSA9IHZhbHVlID8gcmVp
bnRlcnByZXRfY2FzdDxDRE1JbnN0YW5jZSo+KGdfdmFsdWVfZ2V0X3BvaW50ZXIodmFsdWUpKSA6
IG51bGxwdHI7Ci0gICAgICAgICAgICAvLyAuLi4gQW5kIGZvcmNlIGEgcmVmY291bnQgYnVtcCB1
c2luZyBvcGVyYXRvcj0uCi0gICAgICAgICAgICBwcml2LT5jZG1JbnN0YW5jZSA9IGluc3RhbmNl
OworICAgICAgICAgICAgcHJpdi0+Y2RtSW5zdGFuY2UgPSB2YWx1ZSA/IHJlaW50ZXJwcmV0X2Nh
c3Q8Q0RNSW5zdGFuY2UqPihnX3ZhbHVlX2dldF9wb2ludGVyKHZhbHVlKSkgOiBudWxscHRyOwog
ICAgICAgICAgICAgaWYgKHByaXYtPmNkbUluc3RhbmNlKQogICAgICAgICAgICAgICAgIEdTVF9E
RUJVR19PQkpFQ1Qoc2VsZiwgInJlY2VpdmVkIGEgbmV3IENETSBpbnN0YW5jZSAlcCwgcmVmY291
bnQgJXUiLCBwcml2LT5jZG1JbnN0YW5jZS5nZXQoKSwgcHJpdi0+Y2RtSW5zdGFuY2UtPnJlZkNv
dW50KCkpOwogICAgICAgICAgICAgZWxzZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>