<?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>189951</bug_id>
          
          <creation_ts>2018-09-25 09:57:39 -0700</creation_ts>
          <short_desc>MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor</short_desc>
          <delta_ts>2018-09-27 14:42:29 -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>Media</component>
          <version>Safari Technology Preview</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1463157</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-09-25 09:57:39 -0700</bug_when>
    <thetext>Currently, HTMLMediaElement assumes that the MediaPlayer is no longer waiting for a key after attemptToDecrypt() is called. It elides the &quot;If the user agent can advance the current playback position in the direction of playback:&quot; step.

MediaPlayer should provide a &quot;bool waitingForKey() const&quot; accessor so that HTMLMediaElement can query whether it&apos;s still waiting for a key after attemptToDecrypt(), as well as a mediaPlayerWaitingForKeyChanged() client notification when this value changes. This would replace the existing mediaPlayerWaitingForKey() notification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463160</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-09-25 09:59:26 -0700</bug_when>
    <thetext>I&apos;ll post a patch making this change, but I&apos;ll wait till I hear back from Igalia people before landing, as this will definitely have the potential to break ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463162</commentid>
    <comment_count>2</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-09-25 09:59:34 -0700</bug_when>
    <thetext>I&apos;ll post a patch making this change, but I&apos;ll wait till I hear back from Igalia people before landing, as this will definitely have the potential to break ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463167</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-09-25 10:09:50 -0700</bug_when>
    <thetext>Thanks Jer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463215</commentid>
    <comment_count>4</comment_count>
      <attachid>350766</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-09-25 11:19:58 -0700</bug_when>
    <thetext>Created attachment 350766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463228</commentid>
    <comment_count>5</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-09-25 11:30:43 -0700</bug_when>
    <thetext>I&apos;d appreciate if you can wait until Monday since I am going on holidays.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463238</commentid>
    <comment_count>6</comment_count>
      <attachid>350766</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-09-25 11:33:53 -0700</bug_when>
    <thetext>Comment on attachment 350766
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:2807
&gt; +        setReadyState(m_player-&gt;readyState());

Nit: this should be a noop because the player always updates readyState when it changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463396</commentid>
    <comment_count>7</comment_count>
      <attachid>350766</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-09-25 15:54:30 -0700</bug_when>
    <thetext>Comment on attachment 350766
Patch

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:2807
&gt;&gt; +        setReadyState(m_player-&gt;readyState());
&gt; 
&gt; Nit: this should be a noop because the player always updates readyState when it changes.

I am not sure of this. IIRC, when I wrote the first patch I updated the readyState in the element without syncing it to the player, so this would force it to be reset to what the player had.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:311
&gt; +            gst_element_post_message(GST_ELEMENT(self), gst_message_new_element(GST_OBJECT(self), gst_structure_new_empty(&quot;drm-key-received&quot;)));

Wow, I am still amazed by how you solved this and your ability to send GStreamer events in one side and catch them at the other :) . First I thought this couldn&apos;t work but then I realized that it actually can, at least on paper and no (more) tests are broken. First I thought that now that we track if we can play or not, you should remove the code below this that resends the waitingforkey event. Then I realized that we are not tracking that properly because you only consider one decryptor being blocked and you can have more than one. Then I realized that the code below would fix that as it would resend the waitingforkey event.

I also thought this wouldn&apos;t work because the attempt to decrypt is not connected but our decryptors are quite autonomous and if they are waiting, they will carry on once they get the key, which will put things in motion again.

This said, I made an &quot;interesting&quot; interpretation of the ability to continue playback, which is something I can&apos;t know unless I query the all decryptors so I assume yes and let the algorithm stop again once I &quot;can&apos;t continue decrypting things on the encrypted blocks awaiting decryption list&quot;. I guess your approach is better but I&apos;ll keep that as a fix me for the future.

r=me on the GStreamer part as no tests are broken and solution seems sensible. I don&apos;t know if Phil has some more comments on this.

PS: You can still come to the hackfest, btw! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463532</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-09-26 00:35:26 -0700</bug_when>
    <thetext>No concerns from my side. A last iteration seems needed though to turn EWS green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463644</commentid>
    <comment_count>9</comment_count>
      <attachid>350871</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-09-26 10:48:34 -0700</bug_when>
    <thetext>Created attachment 350871
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463653</commentid>
    <comment_count>10</comment_count>
      <attachid>350874</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-09-26 11:11:43 -0700</bug_when>
    <thetext>Created attachment 350874
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464162</commentid>
    <comment_count>11</comment_count>
      <attachid>350874</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-27 14:41:33 -0700</bug_when>
    <thetext>Comment on attachment 350874
Patch for landing

Clearing flags on attachment: 350874

Committed r236572: &lt;https://trac.webkit.org/changeset/236572&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464163</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-27 14:41:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464165</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-27 14:42:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/44844394&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350766</attachid>
            <date>2018-09-25 11:19:58 -0700</date>
            <delta_ts>2018-09-26 10:48:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189951-20180925111958.patch</filename>
            <type>text/plain</type>
            <size>20561</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Mjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVkM2NhZmJjMDAxY2Y4
Nzk4NWNmM2IxOGRjMTEzYWU4YWJlYzc4My4uNjc0MzcyMTMxM2Q3YjcyZTVlOGI0ZjA1ZGMxZjcx
NzE3NzdhNGIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE4LTA5LTI1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhUGxheWVyIHNob3Vs
ZCBoYXZlIG1lZGlhUGxheWVyV2FpdGluZ0ZvcktleUNoYW5nZWQoKSAvIGJvb2wgd2FpdGluZ0Zv
cktleSgpIGFjY2Vzc29yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODk5NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbiBvcmRlciB0byBpbXBsZW1lbnQgdGhlICJSZXN1bWUgUGxheWJhY2siIHNlY3Rp
b24gb2YgRU1FLCBwYXJ0IDQsIHdlIG5lZWQgdG8gYmUgYWJsZQorICAgICAgICB0byBxdWVyeSB3
aGV0aGVyIHRoZSBNZWRpYVBsYXllciBpcyBzdGlsbCB3YWl0aW5nIGZvciBhIGtleSBhZnRlciBh
dHRlbXB0VG9EZWNyeXB0KCkKKyAgICAgICAgaGFzIGJlZW4gY2FsbGVkLiBDdXJyZW50bHkgdGhp
cyBpbnZvbHZlcyBubyBiZWhhdmlvcmFsIGNoYW5nZXMsIGFzIGFsbCBtb2Rlcm4gRU1FIHBvcnRz
CisgICAgICAgIHdpbGwgc3RpbGwganVzdCBub3RpZnkgdGhlIG1lZGlhIGVsZW1lbnQgdGhhdCB0
aGV5IG5vIGxvbmdlciBuZWVkIGtleXMgYWZ0ZXIgb25lIGhhcworICAgICAgICBiZWVuIGFkZGVk
LCBidXQgZnV0dXJlIHBvcnRzIG1heSBiZSBhYmxlIHRvIHdhaXQgZm9yIG11bHRpcGxlIGtleXMg
YmVmb3JlIHJlcG9ydGluZworICAgICAgICB0aGF0IGl0IGlzIG5vIGxvbmdlciB3YWl0aW5nIGZv
ciBrZXlzLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyV2FpdGluZ0ZvcktleUNoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXR0ZW1wdFRvUmVzdW1l
UGxheWJhY2tJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVBsYXllcldhaXRpbmdGb3JLZXkpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp3YWl0aW5nRm9yS2V5Q2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6d2FpdGluZ0ZvcktleSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6d2FpdGluZ0ZvcktleSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjptZWRpYVBsYXllcldhaXRpbmdGb3JLZXlDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjptZWRpYVBsYXllcldhaXRp
bmdGb3JLZXkpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlOjp3YWl0aW5nRm9yS2V5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNob3VsZFdhaXRGb3JMb2FkaW5nT2ZSZXNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjph
dHRlbXB0VG9EZWNyeXB0V2l0aEluc3RhbmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF0dGVtcHRUb0RlY3J5cHRXaXRoSW5z
dGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjp3YWl0aW5nRm9yS2V5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6d2FpdGluZ0ZvcktleUNoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppbml0
aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lE
KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphdHRlbXB0
VG9EZWNyeXB0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cmVwb3J0V2Fp
dGluZ0ZvcktleSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjpzZXRXYWl0aW5nRm9yS2V5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2U6OndhaXRpbmdGb3JLZXkgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21t
b25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYmtpdE1lZGlh
Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRTaW5rRXZlbnRIYW5kbGVyKToKKwogMjAxOC0wOS0yNCAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBTaGFyZWRCdWZmZXIg
c2hvdWxkIGhhdmUgYW4gZXF1YWxpdHkgdGVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKaW5kZXggODM5MmRhYmY3YTVhMWNmMGQ5YjMwZTIwMjUyYzg4ZTYzNzFlNTVm
Ni4uYzRjNTE3YmZjN2QxY2I5ODFmYmZlOGY2Yjk0MDNiMTViZDNhMTNjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0yNzg3LDggKzI3ODcsMjggQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckluaXRpYWxpemF0aW9uRGF0YUVuY291bnRl
cmVkKGNvbnN0IFN0cmluZyYgaW4KICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5lbnF1ZXVlRXZlbnQo
TWVkaWFFbmNyeXB0ZWRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmNyeXB0ZWRFdmVudCwg
aW5pdGlhbGl6ZXIsIEV2ZW50OjpJc1RydXN0ZWQ6OlllcykpOwogfQogCi12b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyV2FpdGluZ0ZvcktleSgpCit2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyV2FpdGluZ0ZvcktleUNoYW5nZWQoKQogeworICAgIGlmICghbV9wbGF5
ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9wbGF5ZXItPndhaXRpbmdGb3JLZXko
KSAmJiBtX3BsYXliYWNrQmxvY2tlZFdhaXRpbmdGb3JLZXkpIHsKKyAgICAgICAgLy8gaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL2VuY3J5cHRlZC1tZWRpYS8jcmVzdW1lLXBsYXliYWNrCisgICAgICAg
IC8vIFczQyBFZGl0b3IncyBEcmFmdCAyMyBKdW5lIDIwMTcKKworICAgICAgICAvLyBOT1RFOiBj
b250aW51ZWQgZnJvbSBIVE1MTWVkaWFFbGVtZW50OjphdHRlbXB0VG9EZWNyeXB0KCkuCisgICAg
ICAgIC8vIDQuIElmIHRoZSB1c2VyIGFnZW50IGNhbiBhZHZhbmNlIHRoZSBjdXJyZW50IHBsYXli
YWNrIHBvc2l0aW9uIGluIHRoZSBkaXJlY3Rpb24gb2YgcGxheWJhY2s6CisgICAgICAgIC8vICAg
NC4xLiBTZXQgdGhlIG1lZGlhIGVsZW1lbnQncyBkZWNyeXB0aW9uIGJsb2NrZWQgd2FpdGluZyBm
b3Iga2V5IHZhbHVlIHRvIGZhbHNlLgorICAgICAgICAvLyBGSVhNRTogXgorICAgICAgICAvLyAg
IDQuMi4gU2V0IHRoZSBtZWRpYSBlbGVtZW50J3MgcGxheWJhY2sgYmxvY2tlZCB3YWl0aW5nIGZv
ciBrZXkgdmFsdWUgdG8gZmFsc2UuCisgICAgICAgIG1fcGxheWJhY2tCbG9ja2VkV2FpdGluZ0Zv
cktleSA9IGZhbHNlOworCisgICAgICAgIC8vICAgNC4zLiBTZXQgdGhlIG1lZGlhIGVsZW1lbnQn
cyByZWFkeVN0YXRlIHZhbHVlIHRvIEhBVkVfQ1VSUkVOVF9EQVRBLCBIQVZFX0ZVVFVSRV9EQVRB
IG9yIEhBVkVfRU5PVUdIX0RBVEEgYXMgYXBwcm9wcmlhdGUuCisgICAgICAgIHNldFJlYWR5U3Rh
dGUobV9wbGF5ZXItPnJlYWR5U3RhdGUoKSk7CisKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9lbmNyeXB0ZWQtbWVkaWEvI3dhaXQtZm9yLWtl
eQogICAgIC8vIFczQyBSZWNvbW1lbmRhdGlvbiAxOCBTZXB0ZW1iZXIgMjAxNwogCkBAIC0yODkw
LDE0ICsyOTEwLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjphdHRlbXB0VG9SZXN1bWVQbGF5
YmFja0lmTmVjZXNzYXJ5KCkKICAgICAvLyAzLiBSdW4gdGhlIEF0dGVtcHQgdG8gRGVjcnlwdCBh
bGdvcml0aG0gb24gdGhlIG1lZGlhIGVsZW1lbnQuCiAgICAgYXR0ZW1wdFRvRGVjcnlwdCgpOwog
Ci0gICAgLy8gNC4gSWYgdGhlIHVzZXIgYWdlbnQgY2FuIGFkdmFuY2UgdGhlIGN1cnJlbnQgcGxh
eWJhY2sgcG9zaXRpb24gaW4gdGhlIGRpcmVjdGlvbiBvZiBwbGF5YmFjazoKLSAgICAvLyAgIDQu
MS4gU2V0IHRoZSBtZWRpYSBlbGVtZW50J3MgZGVjcnlwdGlvbiBibG9ja2VkIHdhaXRpbmcgZm9y
IGtleSB2YWx1ZSB0byBmYWxzZS4KLSAgICAvLyBGSVhNRTogXgotICAgIC8vICAgNC4yLiBTZXQg
dGhlIG1lZGlhIGVsZW1lbnQncyBwbGF5YmFjayBibG9ja2VkIHdhaXRpbmcgZm9yIGtleSB2YWx1
ZSB0byBmYWxzZS4KLSAgICBtX3BsYXliYWNrQmxvY2tlZFdhaXRpbmdGb3JLZXkgPSBmYWxzZTsK
LQotICAgIC8vICAgNC4zLiBTZXQgdGhlIG1lZGlhIGVsZW1lbnQncyByZWFkeVN0YXRlIHZhbHVl
IHRvIEhBVkVfQ1VSUkVOVF9EQVRBLCBIQVZFX0ZVVFVSRV9EQVRBIG9yIEhBVkVfRU5PVUdIX0RB
VEEgYXMgYXBwcm9wcmlhdGUuCi0gICAgc2V0UmVhZHlTdGF0ZShtX3BsYXllci0+cmVhZHlTdGF0
ZSgpKTsKKyAgICAvLyBOT1RFOiBjb250aW51ZWQgaW4gSFRNTE1lZGlhRWxlbWVudDo6d2FpdGlu
Z0ZvcktleUNoYW5nZWQoKQogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNkbUNsaWVudEF0
dGVtcHRUb1Jlc3VtZVBsYXliYWNrSWZOZWNlc3NhcnkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAppbmRleCA5YzhkNTQxYjgwZjkzMmMzMDg3MDM1ZDQzZGY1NThlYTcwM2Nk
MjA0Li42ZmIyY2I4OWNmNWM3OGQ4NzNmYThiNjI3NzM0Nzg2ZGI2NWVmZmRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNjczLDcgKzY3Myw3IEBAIHByaXZhdGU6
CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHZvaWQgbWVkaWFQbGF5ZXJJbml0
aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChjb25zdCBTdHJpbmcmLCBSZWZQdHI8QXJyYXlCdWZm
ZXI+JiYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQbGF5ZXJXYWl0aW5nRm9yS2V5KCkgZmluYWw7
CisgICAgdm9pZCBtZWRpYVBsYXllcldhaXRpbmdGb3JLZXlDaGFuZ2VkKCkgZmluYWw7CiAKICAg
ICB2b2lkIGF0dGVtcHRUb0RlY3J5cHQoKTsKICAgICB2b2lkIGF0dGVtcHRUb1Jlc3VtZVBsYXli
YWNrSWZOZWNlc3NhcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAppbmRleCBjMmU4MGQ2MmZhNWFiNDUxYzcxNjA0ODExYTM3ZGE3YWI5
YjAyYzEzLi4xMDVhODBmMWEwNDA0OGE1N2UxMjlkNDIwZTM3Zjg2NzY0YjhmNWIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0x
MjY2LDkgKzEyNjYsMTYgQEAgdm9pZCBNZWRpYVBsYXllcjo6aW5pdGlhbGl6YXRpb25EYXRhRW5j
b3VudGVyZWQoY29uc3QgU3RyaW5nJiBpbml0RGF0YVR5cGUsIFJlZlAKICAgICBjbGllbnQoKS5t
ZWRpYVBsYXllckluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKGluaXREYXRhVHlwZSwgV1RG
TW92ZShpbml0RGF0YSkpOwogfQogCi12b2lkIE1lZGlhUGxheWVyOjp3YWl0aW5nRm9yS2V5KCkK
K3ZvaWQgTWVkaWFQbGF5ZXI6OndhaXRpbmdGb3JLZXlDaGFuZ2VkKCkKIHsKLSAgICBjbGllbnQo
KS5tZWRpYVBsYXllcldhaXRpbmdGb3JLZXkoKTsKKyAgICBjbGllbnQoKS5tZWRpYVBsYXllcldh
aXRpbmdGb3JLZXlDaGFuZ2VkKCk7Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXI6OndhaXRpbmdGb3JL
ZXkoKSBjb25zdAoreworICAgIGlmICghbV9wcml2YXRlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+d2FpdGluZ0ZvcktleSgpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDc2
MGYwZTQzODQ4NzE5ZjFkM2Q0OWVkMTM1MTQ4YzNmODhmNjhkOGQuLjQ2MmE3MjY2MDU4NDcxMjNl
ODdiNzQ5NTVmNGYxNjhmZjgyZmE2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMTY5LDcgKzE2OSw3IEBAIHB1YmxpYzoKIAogI2lm
IEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVySW5p
dGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoY29uc3QgU3RyaW5nJiwgUmVmUHRyPEFycmF5QnVm
ZmVyPiYmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJXYWl0aW5nRm9yS2V5KCkg
eyB9CisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyV2FpdGluZ0ZvcktleUNoYW5nZWQoKSB7
IH0KICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBA
IC00ODgsNyArNDg4LDggQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkK
ICAgICB2b2lkIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKGNvbnN0IFN0cmluZyYsIFJl
ZlB0cjxBcnJheUJ1ZmZlcj4mJik7Ci0gICAgdm9pZCB3YWl0aW5nRm9yS2V5KCk7CisgICAgdm9p
ZCB3YWl0aW5nRm9yS2V5Q2hhbmdlZCgpOworICAgIGJvb2wgd2FpdGluZ0ZvcktleSgpIGNvbnN0
OwogI2VuZGlmCiAKICAgICBTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXgg
NTQ1NDdmOWEwOTk4MTRhZGYwYzE0ZWNjMmQwZTQ0NWM3YjA3ZDRmYS4uMjQxM2RhNWZiYTc3Nzk0
ZmEyMzk5ZWY3ODVmNzJhNmFmYjIyZGE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTIzMiw2ICsyMzIsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNkbUluc3RhbmNlQXR0YWNoZWQoQ0RNSW5zdGFu
Y2UmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2RtSW5zdGFuY2VEZXRhY2hlZChDRE1JbnN0YW5j
ZSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0aEluc3RhbmNlKENE
TUluc3RhbmNlJikgeyB9CisgICAgdmlydHVhbCBib29sIHdhaXRpbmdGb3JLZXkoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKaW5kZXggYzU0NWFlMTI4OWU4YTkyNzM3NDVmNDcxZjg0N2Y0MmZmYTlj
ZGVlMy4uMjkyN2FjYTA1YWUyZjJiMTAxYzc4NmRkMDlmOGUzYTIxZDFhNjRlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMuaApAQCAtMTQ3LDYgKzE0Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNkbUlu
c3RhbmNlQXR0YWNoZWQoQ0RNSW5zdGFuY2UmKSBmaW5hbDsKICAgICB2b2lkIGNkbUluc3RhbmNl
RGV0YWNoZWQoQ0RNSW5zdGFuY2UmKSBmaW5hbDsKICAgICB2b2lkIGF0dGVtcHRUb0RlY3J5cHRX
aXRoSW5zdGFuY2UoQ0RNSW5zdGFuY2UmKSBmaW5hbDsKKyAgICB2b2lkIHNldFdhaXRpbmdGb3JL
ZXkoYm9vbCk7CisgICAgYm9vbCB3YWl0aW5nRm9yS2V5KCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV93YWl0aW5nRm9yS2V5OyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTM5Miw2ICszOTQsNyBA
QCBwcml2YXRlOgogICAgIFdlYWtQdHI8Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM+IG1fc2Vz
c2lvbjsKICNlbmRpZgogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpICYmIEhBVkUoQVZDT05U
RU5US0VZU0VTU0lPTikKKyAgICBib29sIG1fd2FpdGluZ0ZvcktleSB7IGZhbHNlIH07CiAgICAg
UmVmUHRyPENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDPiBtX2NkbUluc3RhbmNl
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDM3MTQ5YjU4OWFmYjc3NTI1
MjA5ZjIwYmRhYTJmNjQxNjIxZDVkN2IuLmQ5NmE2YjEwNmRiZWMwOTYxMTRkN2QwMjRlMThlYmYy
MzU0Y2EyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMTc4NCw3ICsxNzg0LDcgQEAg
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzaG91bGRXYWl0Rm9yTG9h
ZGluZ09mUmVzb3VyY2UoQVZBc3NldFIKICAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4ga2V5VVJJ
RGF0YSA9IFtrZXlVUkkgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgYWxs
b3dMb3NzeUNvbnZlcnNpb246WUVTXTsKICAgICAgICAgYXV0byBrZXlVUklCdWZmZXIgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZShrZXlVUklEYXRhLmdldCgpKTsKICAgICAgICAgcGxheWVyKCktPmlu
aXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKCJza2QiX3MsIGtleVVSSUJ1ZmZlci0+dHJ5Q3Jl
YXRlQXJyYXlCdWZmZXIoKSk7Ci0gICAgICAgIHBsYXllcigpLT53YWl0aW5nRm9yS2V5KCk7Cisg
ICAgICAgIHNldFdhaXRpbmdGb3JLZXkodHJ1ZSk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQpAQCAtMjUwMyw2ICsyNTAzLDE2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6YXR0ZW1wdFRvRGVjcnlwdFdpdGhJbnN0YW5jZShDRE1JbnN0YW5j
CiAgICAgICAgICAgICBpbmZvUmVxdWVzdC5jb250ZW50VHlwZSA9IEFWU3RyZWFtaW5nS2V5RGVs
aXZlcnlDb250ZW50S2V5VHlwZTsKICAgICAgICAgW3JlcXVlc3QgZmluaXNoTG9hZGluZ107CiAg
ICAgfQorICAgIHNldFdhaXRpbmdGb3JLZXkoZmFsc2UpOworfQorCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFdhaXRpbmdGb3JLZXkoYm9vbCB3YWl0aW5nRm9y
S2V5KQoreworICAgIGlmIChtX3dhaXRpbmdGb3JLZXkgPT0gd2FpdGluZ0ZvcktleSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV93YWl0aW5nRm9yS2V5ID0gd2FpdGluZ0ZvcktleTsKKyAgICBt
X3BsYXllci0+d2FpdGluZ0ZvcktleUNoYW5nZWQoKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5oCmluZGV4IDRjYjI5Y2M2NzIxZDA5MWQyMzY2YjIyYmZiODRlNGNkMDYzMTYw
ZjcuLmQ3ODFhYTQxOTcwZmJmZDgxMTkwOGM0MWFhN2E3ZjUyYzVjNTkyYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oCkBAIC0xMjAsNiArMTIwLDkgQEAgcHVibGljOgogICAgIHZvaWQgY2Rt
SW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwogICAgIHZvaWQgY2RtSW5zdGFu
Y2VEZXRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwogICAgIHZvaWQgYXR0ZW1wdFRvRGVjcnlw
dFdpdGhJbnN0YW5jZShDRE1JbnN0YW5jZSYpIGZpbmFsOworICAgIGJvb2wgd2FpdGluZ0Zvcktl
eSgpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCB3YWl0aW5nRm9yS2V5Q2hhbmdlZCgpOwogICAg
IENETUluc3RhbmNlKiBjZG1JbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2RtSW5zdGFuY2Uu
Z2V0KCk7IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggNjljNjFi
NjQ5ZTI2NTg0Zjc1ZmQwYjBlZmI2M2Y0YjVmYmZjYjg5NC4uZDM5Yjc4MTVmNDk2NjM4NDczYTQ4
ZWZjZWIxMjcyYzU0ZTU4NzBmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtOTQ4
LDE0ICs5NDgsMjggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmNkbUluc3RhbmNlRGV0YWNoZWQoQ0RNSW5zdGFuY2UmIGluc3QKICAgICBtX2NkbUluc3RhbmNl
ID0gbnVsbHB0cjsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OmF0dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UoQ0RNSW5zdGFuY2UmKQordm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF0dGVtcHRUb0RlY3J5cHRXaXRoSW5z
dGFuY2UoQ0RNSW5zdGFuY2UmIGluc3RhbmNlKQogeworICAgIEFTU0VSVF9VTlVTRUQoaW5zdGFu
Y2UsIG1fY2RtSW5zdGFuY2UgJiYgbV9jZG1JbnN0YW5jZSA9PSAmaW5zdGFuY2UpOworICAgIGZv
ciAoYXV0byYgc291cmNlQnVmZmVyIDogbV9tZWRpYVNvdXJjZVByaXZhdGUtPnNvdXJjZUJ1ZmZl
cnMoKSkKKyAgICAgICAgc291cmNlQnVmZmVyLT5hdHRlbXB0VG9EZWNyeXB0KCk7ICAgIAorfQor
Citib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6d2FpdGluZ0Zvcktl
eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFueU9mKG1fbWVkaWFTb3VyY2VQcml2YXRlLT5zb3Vy
Y2VCdWZmZXJzKCksIFtdIChhdXRvJiBzb3VyY2VCdWZmZXIpIHsKKyAgICAgICAgcmV0dXJuIHNv
dXJjZUJ1ZmZlci0+d2FpdGluZ0ZvcktleSgpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6d2FpdGluZ0ZvcktleUNoYW5nZWQoKQorewor
ICAgIG1fcGxheWVyLT53YWl0aW5nRm9yS2V5Q2hhbmdlZCgpOwogfQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVy
ZWQoY29uc3QgU3RyaW5nJiBpbml0RGF0YVR5cGUsIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBpbml0
RGF0YSkKIHsKICAgICBtX3BsYXllci0+aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoaW5p
dERhdGFUeXBlLCBXVEZNb3ZlKGluaXREYXRhKSk7Ci0gICAgbV9wbGF5ZXItPndhaXRpbmdGb3JL
ZXkoKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCAyOTNjNjBiMDI3YjI3YWM2NWRmNmVjMjFmMTg3
Njk2NjEyZjIwMTYzLi41MjAxM2ExMGQ2ZGM0MDkyZGU5OTcxODZlZDg0YmFjYjUxZTNmMzA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLmgKQEAgLTEwOSw2ICsxMDksOCBAQCBwdWJsaWM6CiAgICAgQVZTdHJlYW1EYXRhUGFyc2Vy
KiBwYXJzZXIoKSBjb25zdCB7IHJldHVybiBtX3BhcnNlci5nZXQoKTsgfQogICAgIHZvaWQgc2V0
Q0RNU2Vzc2lvbihDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKik7CiAgICAgdm9pZCBzZXRD
RE1JbnN0YW5jZShDRE1JbnN0YW5jZSopOworICAgIHZvaWQgYXR0ZW1wdFRvRGVjcnlwdCgpOwor
ICAgIGJvb2wgd2FpdGluZ0ZvcktleSgpIGNvbnN0IHsgcmV0dXJuIG1fd2FpdGluZ0ZvcktleTsg
fQogCiAgICAgdm9pZCBmbHVzaCgpOwogCkBAIC0xODksNiArMTkxLDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fcGFyc2luZ1N1Y2NlZWRlZCB7IHRydWUgfTsKICAgICBib29sIG1fcGFyc2VyU3Rh
dGVXYXNSZXNldCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Rpc2NhcmRTYW1wbGVzVW50aWxOZXh0
SW5pdGlhbGl6YXRpb25TZWdtZW50IHsgZmFsc2UgfTsKKyAgICBib29sIG1fd2FpdGluZ0Zvcktl
eSB7IHRydWUgfTsKICAgICBpbnQgbV9lbmFibGVkVmlkZW9UcmFja0lEIHsgLTEgfTsKICAgICBp
bnQgbV9wcm90ZWN0ZWRUcmFja0lEIHsgLTEgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDUyOGUzYmE2YzIx
OTIxMDRhNTJlNTdkMWFjMDllNDcwOTk2MDZkMjYuLjU0Y2M0NGRmODk5MjA1ODczNDY2YzA4MDhi
ZDRjM2ExMzE5ODM1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC02NjYsNiArNjY2LDkgQEAgdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6
YXRpb25EYXRhRm8KICAgICB9CiAjZW5kaWYKIAorICAgIG1fd2FpdGluZ0ZvcktleSA9IHRydWU7
CisgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPndhaXRpbmdGb3JLZXlDaGFuZ2VkKCk7CisK
ICAgICBVTlVTRURfUEFSQU0oaW5pdERhdGEpOwogICAgIFVOVVNFRF9QQVJBTSh0cmFja0lEKTsK
ICAgICBVTlVTRURfUEFSQU0oaGFzU2Vzc2lvblNlbWFwaG9yZSk7CkBAIC05MjIsNiArOTI1LDgg
QEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNSW5zdGFuY2UoQ0RNSW5z
dGFuY2UqIGluc3RhbmNlKQogICAgICAgICAgICAgbV9oYXNTZXNzaW9uU2VtYXBob3JlID0gbnVs
bHB0cjsKICAgICAgICAgfQogICAgIH0KKyAgICBtX3dhaXRpbmdGb3JLZXkgPSBmYWxzZTsKKyAg
ICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+d2FpdGluZ0ZvcktleUNoYW5nZWQoKTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA3YzJhOWViM2RiNjAxMmI1ZGU1
YTAxODJjMGU2NzcwNTc2NjM2ZTJlLi5lN2FjYWFiZGYxMzA4MmY3NWRlYzI5YTY2NDk5ZmI4OTEy
NGE2YzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcApAQCAtMTMxMCw3ICsxMzEwLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgICAgICBoYW5k
bGVQcm90ZWN0aW9uRXZlbnQoZXZlbnQuZ2V0KCkpOwogICAgICAgICB9IGVsc2UgaWYgKGdzdF9z
dHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiZHJtLXdhaXRpbmctZm9yLWtleSIpKSB7CiAg
ICAgICAgICAgICBHU1RfREVCVUcoImRybS13YWl0aW5nLWZvci1rZXkgbWVzc2FnZSBmcm9tICVz
IiwgR1NUX01FU1NBR0VfU1JDX05BTUUobWVzc2FnZSkpOwotICAgICAgICAgICAgcmVwb3J0V2Fp
dGluZ0ZvcktleSgpOworICAgICAgICAgICAgc2V0V2FpdGluZ0ZvcktleSh0cnVlKTsKKyAgICAg
ICAgfSBlbHNlIGlmIChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImRybS1rZXkt
cmVjZWl2ZWQiKSkgeworICAgICAgICAgICAgR1NUX0RFQlVHKCJkcm0ta2V5LXJlY2VpdmVkIG1l
c3NhZ2UgZnJvbSAlcyIsIEdTVF9NRVNTQUdFX1NSQ19OQU1FKG1lc3NhZ2UpKTsKKyAgICAgICAg
ICAgIHNldFdhaXRpbmdGb3JLZXkoZmFsc2UpOwogICAgICAgICB9IGVsc2UgaWYgKGdzdF9zdHJ1
Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiZHJtLWNkbS1pbnN0YW5jZS1uZWVkZWQiKSkgewog
ICAgICAgICAgICAgR1NUX0RFQlVHKCJkcm0tY2RtLWluc3RhbmNlLW5lZWRlZCBtZXNzYWdlIGZy
b20gJXMiLCBHU1RfTUVTU0FHRV9TUkNfTkFNRShtZXNzYWdlKSk7CiAgICAgICAgICAgICBkaXNw
YXRjaENETUluc3RhbmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggMjZlNjI4MjczMTM5NDkyOWVkODkwZDIyNDMwNmYw
MjVlNTI2NmNhYS4uOWJlZDFiMDZmMmFjMWQ3YjY5NDk5OGVhNjk3ZGZiMTdiZDRlNDEzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNw
cApAQCAtMTM1Myw3ICsxMzUzLDIxIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZTo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50KEdzdEV2ZW50KiBldmVudCkKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cmVwb3J0V2FpdGluZ0ZvcktleSgpCiB7CiAgICAg
R1NUX1RSQUNFKCJ3YWl0aW5nIGZvciBrZXkiKTsKLSAgICBtX3BsYXllci0+d2FpdGluZ0Zvcktl
eSgpOworICAgIG1fcGxheWVyLT53YWl0aW5nRm9yS2V5Q2hhbmdlZCgpOworfQorCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnNldFdhaXRpbmdGb3JLZXkoYm9vbCB3YWl0
aW5nRm9yS2V5KQoreworICAgIGlmICh3YWl0aW5nRm9yS2V5ID09IG1fd2FpdGluZ0ZvcktleSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV93YWl0aW5nRm9yS2V5ID0gd2FpdGluZ0ZvcktleTsK
KyAgICByZXBvcnRXYWl0aW5nRm9yS2V5KCk7Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZTo6d2FpdGluZ0ZvcktleSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd2Fp
dGluZ0ZvcktleTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UuaAppbmRleCA5MDIxYTA5MjRjNTdkMTRhMDcwM2MzZTE4YjI2
NGZmODVmYzZjYTdlLi40ZmExNTVhODMzN2M3OWUyMjdiNThlZGVhZmZmZjNmOGMyYjQxMzUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgK
QEAgLTE1Miw2ICsxNTIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0
aEluc3RhbmNlKENETUluc3RhbmNlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaENETUlu
c3RhbmNlKCk7CiAgICAgdm9pZCBpbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChHc3RFdmVu
dCopOworICAgIHZvaWQgc2V0V2FpdGluZ0ZvcktleShib29sKTsKKyAgICBib29sIHdhaXRpbmdG
b3JLZXkoKSBjb25zdDsKICAgICB2b2lkIHJlcG9ydFdhaXRpbmdGb3JLZXkoKTsKICNlbmRpZgog
CkBAIC0yNzQsNiArMjc2LDcgQEAgcHJvdGVjdGVkOgogICAgIFJlZlB0cjxjb25zdCBDRE1JbnN0
YW5jZT4gbV9jZG1JbnN0YW5jZTsKICAgICBIYXNoU2V0PHVpbnQzMl90PiBtX2hhbmRsZWRQcm90
ZWN0aW9uRXZlbnRzOwogICAgIGJvb2wgbV9uZWVkVG9SZXNlbmRDcmVkZW50aWFscyB7IGZhbHNl
IH07CisgICAgYm9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxzZSB9OwogI2VuZGlmCiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1l
L1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0
aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCA0ZTM1MjcyZWRkYWIyNzFkNTIxODBjODQ0
NDIwYjkxY2ZiOGEwODgzLi5mM2VlM2ZhOTFmMmQ5Y2MzM2RjYTFjNGFhYTIxMTRiNWI0YTMyMGI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTMwOCw2ICszMDgsNyBAQCBzdGF0
aWMgZ2Jvb2xlYW4gd2Via2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdFNpbmtFdmVudEhh
bmRsZXIoR3N0QmFzZVRyYW5zZgogICAgICAgICAgICAgcHJpdi0+a2V5UmVjZWl2ZWQgPSB0cnVl
OwogICAgICAgICAgICAgcHJpdi0+d2FpdGluZ0ZvcktleSA9IGZhbHNlOwogICAgICAgICAgICAg
cHJpdi0+Y29uZGl0aW9uLm5vdGlmeU9uZSgpOworICAgICAgICAgICAgZ3N0X2VsZW1lbnRfcG9z
dF9tZXNzYWdlKEdTVF9FTEVNRU5UKHNlbGYpLCBnc3RfbWVzc2FnZV9uZXdfZWxlbWVudChHU1Rf
T0JKRUNUKHNlbGYpLCBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgiZHJtLWtleS1yZWNlaXZlZCIp
KSk7CiAgICAgICAgIH0gZWxzZSBpZiAocHJpdi0+d2FpdGluZ0ZvcktleSkgewogICAgICAgICAg
ICAgR1NUX0RFQlVHX09CSkVDVChzZWxmLCAic3RpbGwgd2FpdGluZyBmb3Iga2V5LCByZXBvc3Rp
bmciKTsKICAgICAgICAgICAgIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZShHU1RfRUxFTUVOVChz
ZWxmKSwgZ3N0X21lc3NhZ2VfbmV3X2VsZW1lbnQoR1NUX09CSkVDVChzZWxmKSwgZ3N0X3N0cnVj
dHVyZV9uZXdfZW1wdHkoImRybS13YWl0aW5nLWZvci1rZXkiKSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350871</attachid>
            <date>2018-09-26 10:48:34 -0700</date>
            <delta_ts>2018-09-26 11:11:42 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-189951-20180926104833.patch</filename>
            <type>text/plain</type>
            <size>23047</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Mjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ1YTcyZTZiNzMwOGIyN2NjNGI2YThj
Nzc5NmM1MmRkNjgwOGEzM2YuLjY5ZWFlZjAxZTc3ZTk2NWViMjBiYWRkZDMwZDM1NDg5NjFjZDgy
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgtMDktMjYgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXIgc2hvdWxkIGhhdmUgbWVkaWFQbGF5
ZXJXYWl0aW5nRm9yS2V5Q2hhbmdlZCgpIC8gYm9vbCB3YWl0aW5nRm9yS2V5KCkgYWNjZXNzb3IK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTk1MQor
CisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBUZW1wbGF0ZWQg
ZnVuY3Rpb25zIHNob3VsZCB0YWtlIHItdmFsdWUgcmVmZXJlbmNlcywgYXMgdGhleSBoYXZlIHBl
cmZlY3QgdHlwZSBkZWR1Y3Rpb24gZm9yCisgICAgICAgIGFsbCBwYXJhbWV0ZXIgdHlwZXM7IHJl
ZmVyZW5jZXMsIGwtdmFsdWUgcmVmZXJlbmNlcywgYW5kIHItdmFsdWUgcmVmZXJlbmNlcyBpbiB0
ZW1wbGF0ZSBmdW5jdGlvbgorICAgICAgICBwYXJhbWV0ZXJzIGhhdmUgc3BlY2lhbCB0eXBlIGRl
ZHVjdGlvbiBzZW1hbnRpY3MuCisgICAgICAgIFNlZTogPGh0dHBzOi8vZW4uY3BwcmVmZXJlbmNl
LmNvbS93L2NwcC9sYW5ndWFnZS9yZWZlcmVuY2UjRm9yd2FyZGluZ19yZWZlcmVuY2VzPgorCisg
ICAgICAgIFByZXZpb3VzbHksIGNvbnN0IHJlZmVyZW5jZSBwYXJhbWV0ZXJzIHdvdWxkIGJlIGNv
cGllZCB3aGVuIHBhc3NlZCBpbnRvIGFueU9mKCksIGFuZCBjb250YWluZXJzCisgICAgICAgIG9m
IFJlZjw+IHdvdWxkIGdlbmVyYXRlIGNvbXBpbGUgZXJyb3JzIHdoZW4gcGFzc2VkIGludG8gYW55
T2YsIGFzIHRoZXkgY2Fubm90IGJlIGNvcGllZC4gTm93LAorICAgICAgICB3aXRoIHItdmFsdWUg
cmVmZXJlbmNlIHR5cGVzIGluIHRlbXBsYXRlIHBhcmFtZXRlcnMsIGEgY29uc3QgcmVmZXJlbmNl
IGlzIG1hcHBlZCB0byBhIGNvbnN0IHJlZmVyZW5jZSwKKyAgICAgICAgYSBub24tY29uc3QgcmVm
ZXJlbmNlIGlzIG1hcHBlZCB0byBhIG5vbi1jb25zdCByZWZlcmVuY2UsIGFuZCBhIHItdmFsdWUg
cmVmZXJlbmNlIGlzIG1hcHBlZCB0bworICAgICAgICBhbiByLXZhbHVlIHJlZmVyZW5jZS4KKwor
ICAgICAgICAqIHd0Zi9BbGdvcml0aG1zLmg6CisgICAgICAgIChXVEY6OmZvckVhY2gpOgorICAg
ICAgICAoV1RGOjphbnlPZik6CisgICAgICAgIChXVEY6OmFsbE9mKToKKwogMjAxOC0wOC0yOSAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgVVNFX01F
RElBUkVNT1RFIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA1ZDNjYWZiYzAwMWNmODc5ODVjZjNiMThk
YzExM2FlOGFiZWM3ODMuLjhlZjY4NDY3MGJiMWE4N2Q0ZGJhYTQwY2FjZTYzN2U1ZDZjNjZkZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxOC0wOS0yNSAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVBsYXllciBzaG91bGQgaGF2ZSBtZWRp
YVBsYXllcldhaXRpbmdGb3JLZXlDaGFuZ2VkKCkgLyBib29sIHdhaXRpbmdGb3JLZXkoKSBhY2Nl
c3NvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5
OTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEluIG9y
ZGVyIHRvIGltcGxlbWVudCB0aGUgIlJlc3VtZSBQbGF5YmFjayIgc2VjdGlvbiBvZiBFTUUsIHBh
cnQgNCwgd2UgbmVlZCB0byBiZSBhYmxlCisgICAgICAgIHRvIHF1ZXJ5IHdoZXRoZXIgdGhlIE1l
ZGlhUGxheWVyIGlzIHN0aWxsIHdhaXRpbmcgZm9yIGEga2V5IGFmdGVyIGF0dGVtcHRUb0RlY3J5
cHQoKQorICAgICAgICBoYXMgYmVlbiBjYWxsZWQuIEN1cnJlbnRseSB0aGlzIGludm9sdmVzIG5v
IGJlaGF2aW9yYWwgY2hhbmdlcywgYXMgYWxsIG1vZGVybiBFTUUgcG9ydHMKKyAgICAgICAgd2ls
bCBzdGlsbCBqdXN0IG5vdGlmeSB0aGUgbWVkaWEgZWxlbWVudCB0aGF0IHRoZXkgbm8gbG9uZ2Vy
IG5lZWQga2V5cyBhZnRlciBvbmUgaGFzCisgICAgICAgIGJlZW4gYWRkZWQsIGJ1dCBmdXR1cmUg
cG9ydHMgbWF5IGJlIGFibGUgdG8gd2FpdCBmb3IgbXVsdGlwbGUga2V5cyBiZWZvcmUgcmVwb3J0
aW5nCisgICAgICAgIHRoYXQgaXQgaXMgbm8gbG9uZ2VyIHdhaXRpbmcgZm9yIGtleXMuCisKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJXYWl0aW5nRm9yS2V5Q2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdHRlbXB0VG9SZXN1bWVQbGF5YmFja0lmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
V2FpdGluZ0ZvcktleSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OndhaXRpbmdGb3JLZXlDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp3YWl0aW5nRm9yS2V5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjp3YWl0aW5nRm9yS2V5KTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVyV2FpdGluZ0ZvcktleUNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVyV2FpdGluZ0ZvcktleSk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OndhaXRpbmdG
b3JLZXkgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmF0dGVtcHRUb0RlY3J5
cHRXaXRoSW5zdGFuY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6YXR0ZW1wdFRvRGVjcnlwdFdpdGhJbnN0YW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OndhaXRp
bmdGb3JLZXkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjp3YWl0aW5nRm9yS2V5Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVD
b250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQpOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmF0dGVtcHRUb0RlY3J5cHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpoYW5kbGVNZXNzYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpyZXBvcnRXYWl0aW5nRm9yS2V5KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnNldFdh
aXRpbmdGb3JLZXkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6d2FpdGluZ0ZvcktleSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25E
ZWNyeXB0b3JHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Via2l0TWVkaWFDb21tb25FbmNyeXB0
aW9uRGVjcnlwdFNpbmtFdmVudEhhbmRsZXIpOgorCiAyMDE4LTA5LTI0ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFNoYXJlZEJ1ZmZlciBzaG91bGQgaGF2ZSBh
biBlcXVhbGl0eSB0ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BbGdvcml0aG1zLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9BbGdvcml0aG1zLmgKaW5kZXggNDhiNjQ0ZTg2MWFjYTVkMjZjN2Mx
MzY0YzhiZDYyMzVjYmIwMTgwZS4uMTYwY2Y1YTJmNWIwOTBlYWVmM2ZiOWYyNDZiNjBlZGFlMDYx
MWY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQWxnb3JpdGhtcy5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0FsZ29yaXRobXMuaApAQCAtMjgsMTQgKzI4LDE0IEBACiBuYW1lc3BhY2UgV1RG
IHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyVHlwZSwgdHlwZW5hbWUgRm9yRWFjaEZ1
bmN0aW9uPgotdm9pZCBmb3JFYWNoKENvbnRhaW5lclR5cGUgY29udGFpbmVyLCBGb3JFYWNoRnVu
Y3Rpb24gZm9yRWFjaEZ1bmN0aW9uKQordm9pZCBmb3JFYWNoKENvbnRhaW5lclR5cGUmJiBjb250
YWluZXIsIEZvckVhY2hGdW5jdGlvbiBmb3JFYWNoRnVuY3Rpb24pCiB7CiAgICAgZm9yIChhdXRv
JiB2YWx1ZSA6IGNvbnRhaW5lcikKICAgICAgICAgZm9yRWFjaEZ1bmN0aW9uKHZhbHVlKTsKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyVHlwZSwgdHlwZW5hbWUgQW55T2ZGdW5jdGlv
bj4KLWJvb2wgYW55T2YoQ29udGFpbmVyVHlwZSBjb250YWluZXIsIEFueU9mRnVuY3Rpb24gYW55
T2ZGdW5jdGlvbikKK2Jvb2wgYW55T2YoQ29udGFpbmVyVHlwZSYmIGNvbnRhaW5lciwgQW55T2ZG
dW5jdGlvbiBhbnlPZkZ1bmN0aW9uKQogewogICAgIGZvciAoYXV0byYgdmFsdWUgOiBjb250YWlu
ZXIpIHsKICAgICAgICAgaWYgKGFueU9mRnVuY3Rpb24odmFsdWUpKQpAQCAtNDUsNyArNDUsNyBA
QCBib29sIGFueU9mKENvbnRhaW5lclR5cGUgY29udGFpbmVyLCBBbnlPZkZ1bmN0aW9uIGFueU9m
RnVuY3Rpb24pCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRhaW5lclR5cGUsIHR5cGVuYW1l
IEFsbE9mRnVuY3Rpb24+Ci1ib29sIGFsbE9mKENvbnRhaW5lclR5cGUgY29udGFpbmVyLCBBbGxP
ZkZ1bmN0aW9uIGFsbE9mRnVuY3Rpb24pCitib29sIGFsbE9mKENvbnRhaW5lclR5cGUmJiBjb250
YWluZXIsIEFsbE9mRnVuY3Rpb24gYWxsT2ZGdW5jdGlvbikKIHsKICAgICBmb3IgKGF1dG8mIHZh
bHVlIDogY29udGFpbmVyKSB7CiAgICAgICAgIGlmICghYWxsT2ZGdW5jdGlvbih2YWx1ZSkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA4MzkyZGFiZjdhNWEx
Y2YwZDliMzBlMjAyNTJjODhlNjM3MWU1NWY2Li5jNGM1MTdiZmM3ZDFjYjk4MWZiZmU4ZjZiOTQw
M2IxNWJkM2ExM2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTI3ODcsOCArMjc4NywyOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
SW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoY29uc3QgU3RyaW5nJiBpbgogICAgIG1fYXN5
bmNFdmVudFF1ZXVlLmVucXVldWVFdmVudChNZWRpYUVuY3J5cHRlZEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmVuY3J5cHRlZEV2ZW50LCBpbml0aWFsaXplciwgRXZlbnQ6OklzVHJ1c3RlZDo6
WWVzKSk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJXYWl0aW5nRm9y
S2V5KCkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJXYWl0aW5nRm9yS2V5Q2hh
bmdlZCgpCiB7CisgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KCFtX3BsYXllci0+d2FpdGluZ0ZvcktleSgpICYmIG1fcGxheWJhY2tCbG9ja2VkV2FpdGluZ0Zv
cktleSkgeworICAgICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlh
LyNyZXN1bWUtcGxheWJhY2sKKyAgICAgICAgLy8gVzNDIEVkaXRvcidzIERyYWZ0IDIzIEp1bmUg
MjAxNworCisgICAgICAgIC8vIE5PVEU6IGNvbnRpbnVlZCBmcm9tIEhUTUxNZWRpYUVsZW1lbnQ6
OmF0dGVtcHRUb0RlY3J5cHQoKS4KKyAgICAgICAgLy8gNC4gSWYgdGhlIHVzZXIgYWdlbnQgY2Fu
IGFkdmFuY2UgdGhlIGN1cnJlbnQgcGxheWJhY2sgcG9zaXRpb24gaW4gdGhlIGRpcmVjdGlvbiBv
ZiBwbGF5YmFjazoKKyAgICAgICAgLy8gICA0LjEuIFNldCB0aGUgbWVkaWEgZWxlbWVudCdzIGRl
Y3J5cHRpb24gYmxvY2tlZCB3YWl0aW5nIGZvciBrZXkgdmFsdWUgdG8gZmFsc2UuCisgICAgICAg
IC8vIEZJWE1FOiBeCisgICAgICAgIC8vICAgNC4yLiBTZXQgdGhlIG1lZGlhIGVsZW1lbnQncyBw
bGF5YmFjayBibG9ja2VkIHdhaXRpbmcgZm9yIGtleSB2YWx1ZSB0byBmYWxzZS4KKyAgICAgICAg
bV9wbGF5YmFja0Jsb2NrZWRXYWl0aW5nRm9yS2V5ID0gZmFsc2U7CisKKyAgICAgICAgLy8gICA0
LjMuIFNldCB0aGUgbWVkaWEgZWxlbWVudCdzIHJlYWR5U3RhdGUgdmFsdWUgdG8gSEFWRV9DVVJS
RU5UX0RBVEEsIEhBVkVfRlVUVVJFX0RBVEEgb3IgSEFWRV9FTk9VR0hfREFUQSBhcyBhcHByb3By
aWF0ZS4KKyAgICAgICAgc2V0UmVhZHlTdGF0ZShtX3BsYXllci0+cmVhZHlTdGF0ZSgpKTsKKwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Vu
Y3J5cHRlZC1tZWRpYS8jd2FpdC1mb3Ita2V5CiAgICAgLy8gVzNDIFJlY29tbWVuZGF0aW9uIDE4
IFNlcHRlbWJlciAyMDE3CiAKQEAgLTI4OTAsMTQgKzI5MTAsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OmF0dGVtcHRUb1Jlc3VtZVBsYXliYWNrSWZOZWNlc3NhcnkoKQogICAgIC8vIDMuIFJ1
biB0aGUgQXR0ZW1wdCB0byBEZWNyeXB0IGFsZ29yaXRobSBvbiB0aGUgbWVkaWEgZWxlbWVudC4K
ICAgICBhdHRlbXB0VG9EZWNyeXB0KCk7CiAKLSAgICAvLyA0LiBJZiB0aGUgdXNlciBhZ2VudCBj
YW4gYWR2YW5jZSB0aGUgY3VycmVudCBwbGF5YmFjayBwb3NpdGlvbiBpbiB0aGUgZGlyZWN0aW9u
IG9mIHBsYXliYWNrOgotICAgIC8vICAgNC4xLiBTZXQgdGhlIG1lZGlhIGVsZW1lbnQncyBkZWNy
eXB0aW9uIGJsb2NrZWQgd2FpdGluZyBmb3Iga2V5IHZhbHVlIHRvIGZhbHNlLgotICAgIC8vIEZJ
WE1FOiBeCi0gICAgLy8gICA0LjIuIFNldCB0aGUgbWVkaWEgZWxlbWVudCdzIHBsYXliYWNrIGJs
b2NrZWQgd2FpdGluZyBmb3Iga2V5IHZhbHVlIHRvIGZhbHNlLgotICAgIG1fcGxheWJhY2tCbG9j
a2VkV2FpdGluZ0ZvcktleSA9IGZhbHNlOwotCi0gICAgLy8gICA0LjMuIFNldCB0aGUgbWVkaWEg
ZWxlbWVudCdzIHJlYWR5U3RhdGUgdmFsdWUgdG8gSEFWRV9DVVJSRU5UX0RBVEEsIEhBVkVfRlVU
VVJFX0RBVEEgb3IgSEFWRV9FTk9VR0hfREFUQSBhcyBhcHByb3ByaWF0ZS4KLSAgICBzZXRSZWFk
eVN0YXRlKG1fcGxheWVyLT5yZWFkeVN0YXRlKCkpOworICAgIC8vIE5PVEU6IGNvbnRpbnVlZCBp
biBIVE1MTWVkaWFFbGVtZW50Ojp3YWl0aW5nRm9yS2V5Q2hhbmdlZCgpCiB9CiAKIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6Y2RtQ2xpZW50QXR0ZW1wdFRvUmVzdW1lUGxheWJhY2tJZk5lY2Vzc2Fy
eSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDljOGQ1NDFiODBm
OTMyYzMwODcwMzVkNDNkZjU1OGVhNzAzY2QyMDQuLjZmYjJjYjg5Y2Y1Yzc4ZDg3M2ZhOGI2Mjc3
MzQ3ODZkYjY1ZWZmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC02NzMsNyArNjczLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CiAgICAgdm9pZCBtZWRpYVBsYXllckluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKGNvbnN0
IFN0cmluZyYsIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBs
YXllcldhaXRpbmdGb3JLZXkoKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyV2FpdGluZ0Zv
cktleUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIHZvaWQgYXR0ZW1wdFRvRGVjcnlwdCgpOwogICAg
IHZvaWQgYXR0ZW1wdFRvUmVzdW1lUGxheWJhY2tJZk5lY2Vzc2FyeSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGMyZTgwZDYy
ZmE1YWI0NTFjNzE2MDQ4MTFhMzdkYTdhYjliMDJjMTMuLjEwNWE4MGYxYTA0MDQ4YTU3ZTEyOWQ0
MjBlMzdmODY3NjRiOGY1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTEyNjYsOSArMTI2NiwxNiBAQCB2b2lkIE1lZGlhUGxh
eWVyOjppbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChjb25zdCBTdHJpbmcmIGluaXREYXRh
VHlwZSwgUmVmUAogICAgIGNsaWVudCgpLm1lZGlhUGxheWVySW5pdGlhbGl6YXRpb25EYXRhRW5j
b3VudGVyZWQoaW5pdERhdGFUeXBlLCBXVEZNb3ZlKGluaXREYXRhKSk7CiB9CiAKLXZvaWQgTWVk
aWFQbGF5ZXI6OndhaXRpbmdGb3JLZXkoKQordm9pZCBNZWRpYVBsYXllcjo6d2FpdGluZ0Zvcktl
eUNoYW5nZWQoKQogewotICAgIGNsaWVudCgpLm1lZGlhUGxheWVyV2FpdGluZ0ZvcktleSgpOwor
ICAgIGNsaWVudCgpLm1lZGlhUGxheWVyV2FpdGluZ0ZvcktleUNoYW5nZWQoKTsKK30KKworYm9v
bCBNZWRpYVBsYXllcjo6d2FpdGluZ0ZvcktleSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3ByaXZh
dGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT53YWl0aW5n
Rm9yS2V5KCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKaW5kZXggNzYwZjBlNDM4NDg3MTlmMWQzZDQ5ZWQxMzUxNDhjM2Y4
OGY2OGQ4ZC4uNDYyYTcyNjYwNTg0NzEyM2U4N2I3NDk1NWY0ZjE2OGZmODJmYTZmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0xNjks
NyArMTY5LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICB2
aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJJbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChjb25z
dCBTdHJpbmcmLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBt
ZWRpYVBsYXllcldhaXRpbmdGb3JLZXkoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5
ZXJXYWl0aW5nRm9yS2V5Q2hhbmdlZCgpIHsgfQogI2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKFdJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKQEAgLTQ4OCw3ICs0ODgsOCBAQCBwdWJsaWM6CiAKICNp
ZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHZvaWQgaW5pdGlhbGl6YXRpb25EYXRhRW5j
b3VudGVyZWQoY29uc3QgU3RyaW5nJiwgUmVmUHRyPEFycmF5QnVmZmVyPiYmKTsKLSAgICB2b2lk
IHdhaXRpbmdGb3JLZXkoKTsKKyAgICB2b2lkIHdhaXRpbmdGb3JLZXlDaGFuZ2VkKCk7CisgICAg
Ym9vbCB3YWl0aW5nRm9yS2V5KCkgY29uc3Q7CiAjZW5kaWYKIAogICAgIFN0cmluZyByZWZlcnJl
cigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaAppbmRleCA1NDU0N2Y5YTA5OTgxNGFkZjBjMTRlY2MyZDBlNDQ1
YzdiMDdkNGZhLi4yNDEzZGE1ZmJhNzc3OTRmYTIzOTllZjc4NWY3MmE2YWZiMjJkYTkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaApAQCAtMjMyLDYgKzIzMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2Rt
SW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjZG1J
bnN0YW5jZURldGFjaGVkKENETUluc3RhbmNlJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGVt
cHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UoQ0RNSW5zdGFuY2UmKSB7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgd2FpdGluZ0ZvcktleSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBjNTQ1YWUxMjg5
ZThhOTI3Mzc0NWY0NzFmODQ3ZjQyZmZhOWNkZWUzLi4yOTI3YWNhMDVhZTJmMmIxMDFjNzg2ZGQw
OWY4ZTNhMjFkMWE2NGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xNDcsNiArMTQ3LDgg
QEAgcHVibGljOgogICAgIHZvaWQgY2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYpIGZp
bmFsOwogICAgIHZvaWQgY2RtSW5zdGFuY2VEZXRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwog
ICAgIHZvaWQgYXR0ZW1wdFRvRGVjcnlwdFdpdGhJbnN0YW5jZShDRE1JbnN0YW5jZSYpIGZpbmFs
OworICAgIHZvaWQgc2V0V2FpdGluZ0ZvcktleShib29sKTsKKyAgICBib29sIHdhaXRpbmdGb3JL
ZXkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3dhaXRpbmdGb3JLZXk7IH0KICNlbmRpZgogCiBw
cml2YXRlOgpAQCAtMzkyLDYgKzM5NCw3IEBAIHByaXZhdGU6CiAgICAgV2Vha1B0cjxDRE1TZXNz
aW9uQVZGb3VuZGF0aW9uT2JqQz4gbV9zZXNzaW9uOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkgJiYgSEFWRShBVkNPTlRFTlRLRVlTRVNTSU9OKQorICAgIGJvb2wgbV93YWl0
aW5nRm9yS2V5IHsgZmFsc2UgfTsKICAgICBSZWZQdHI8Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakM+IG1fY2RtSW5zdGFuY2U7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KaW5kZXggMzcxNDliNTg5YWZiNzc1MjUyMDlmMjBiZGFhMmY2NDE2MjFkNWQ3Yi4uN2Q0OWQ0
ZTEwYzllNTE2NWJjZWFlMjUxNjNkOTZhZGFhZmJkN2MxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCkBAIC0xNzg0LDcgKzE3ODQsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnNob3VsZFdhaXRGb3JMb2FkaW5nT2ZSZXNvdXJjZShBVkFzc2V0UgogICAgICAg
ICBSZXRhaW5QdHI8TlNEYXRhPiBrZXlVUklEYXRhID0gW2tleVVSSSBkYXRhVXNpbmdFbmNvZGlu
ZzpOU1VURjhTdHJpbmdFbmNvZGluZyBhbGxvd0xvc3N5Q29udmVyc2lvbjpZRVNdOwogICAgICAg
ICBhdXRvIGtleVVSSUJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGtleVVSSURhdGEuZ2V0
KCkpOwogICAgICAgICBwbGF5ZXIoKS0+aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoInNr
ZCJfcywga2V5VVJJQnVmZmVyLT50cnlDcmVhdGVBcnJheUJ1ZmZlcigpKTsKLSAgICAgICAgcGxh
eWVyKCktPndhaXRpbmdGb3JLZXkoKTsKKyAgICAgICAgc2V0V2FpdGluZ0ZvcktleSh0cnVlKTsK
ICNlbmRpZgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0yNTAzLDYgKzI1MDMsMTYg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjphdHRlbXB0VG9EZWNy
eXB0V2l0aEluc3RhbmNlKENETUluc3RhbmMKICAgICAgICAgICAgIGluZm9SZXF1ZXN0LmNvbnRl
bnRUeXBlID0gQVZTdHJlYW1pbmdLZXlEZWxpdmVyeUNvbnRlbnRLZXlUeXBlOwogICAgICAgICBb
cmVxdWVzdCBmaW5pc2hMb2FkaW5nXTsKICAgICB9CisgICAgc2V0V2FpdGluZ0ZvcktleShmYWxz
ZSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0V2Fp
dGluZ0ZvcktleShib29sIHdhaXRpbmdGb3JLZXkpCit7CisgICAgaWYgKG1fd2FpdGluZ0Zvcktl
eSA9PSB3YWl0aW5nRm9yS2V5KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3dhaXRpbmdGb3JL
ZXkgPSB3YWl0aW5nRm9yS2V5OworICAgIHBsYXllcigpLT53YWl0aW5nRm9yS2V5Q2hhbmdlZCgp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggNGNiMjljYzY3MjFk
MDkxZDIzNjZiMjJiZmI4NGU0Y2QwNjMxNjBmNy4uZDc4MWFhNDE5NzBmYmZkODExOTA4YzQxYWE3
YTdmNTJjNWM1OTJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTEyMCw2ICsxMjAs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNlJikg
ZmluYWw7CiAgICAgdm9pZCBjZG1JbnN0YW5jZURldGFjaGVkKENETUluc3RhbmNlJikgZmluYWw7
CiAgICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0aEluc3RhbmNlKENETUluc3RhbmNlJikgZmlu
YWw7CisgICAgYm9vbCB3YWl0aW5nRm9yS2V5KCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHdh
aXRpbmdGb3JLZXlDaGFuZ2VkKCk7CiAgICAgQ0RNSW5zdGFuY2UqIGNkbUluc3RhbmNlKCkgY29u
c3QgeyByZXR1cm4gbV9jZG1JbnN0YW5jZS5nZXQoKTsgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbQppbmRleCA2OWM2MWI2NDllMjY1ODRmNzVmZDBiMGVmYjYzZjRiNWZiZmNi
ODk0Li5lNDIzNjYzODE5MTkzMzg5MmZlYjRmODdkOGM5ZmViZjZiYWEzMzM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxvYmpjX3J1bnRp
bWUuaD4KICNpbXBvcnQgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9BVkZvdW5kYXRpb25TUEkuaD4KKyNpbXBvcnQgPHd0Zi9B
bGdvcml0aG1zLmg+CiAjaW1wb3J0IDx3dGYvRGVxdWUuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTk1MiwxMCArOTUzLDIx
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphdHRlbXB0VG9E
ZWNyeXB0V2l0aEluc3RhbmNlKENETUluc3RhCiB7CiB9CiAKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp3YWl0aW5nRm9yS2V5KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gYW55T2YobV9tZWRpYVNvdXJjZVByaXZhdGUtPnNvdXJjZUJ1ZmZlcnMoKSwgW10gKGF1dG8m
IHNvdXJjZUJ1ZmZlcikgeworICAgICAgICByZXR1cm4gc291cmNlQnVmZmVyLT53YWl0aW5nRm9y
S2V5KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjp3YWl0aW5nRm9yS2V5Q2hhbmdlZCgpCit7CisgICAgbV9wbGF5ZXItPndhaXRpbmdG
b3JLZXlDaGFuZ2VkKCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjppbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChjb25zdCBTdHJpbmcmIGluaXRE
YXRhVHlwZSwgUmVmUHRyPEFycmF5QnVmZmVyPiYmIGluaXREYXRhKQogewogICAgIG1fcGxheWVy
LT5pbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChpbml0RGF0YVR5cGUsIFdURk1vdmUoaW5p
dERhdGEpKTsKLSAgICBtX3BsYXllci0+d2FpdGluZ0ZvcktleSgpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5o
CmluZGV4IDI5M2M2MGIwMjdiMjdhYzY1ZGY2ZWMyMWYxODc2OTY2MTJmMjAxNjMuLjUyMDEzYTEw
ZDZkYzQwOTJkZTk5NzE4NmVkODRiYWNiNTFlM2YzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaApAQCAtMTA5LDYgKzEwOSw4
IEBAIHB1YmxpYzoKICAgICBBVlN0cmVhbURhdGFQYXJzZXIqIHBhcnNlcigpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyc2VyLmdldCgpOyB9CiAgICAgdm9pZCBzZXRDRE1TZXNzaW9uKENETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakMqKTsKICAgICB2b2lkIHNldENETUluc3RhbmNlKENETUluc3RhbmNl
Kik7CisgICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0KCk7CisgICAgYm9vbCB3YWl0aW5nRm9yS2V5
KCkgY29uc3QgeyByZXR1cm4gbV93YWl0aW5nRm9yS2V5OyB9CiAKICAgICB2b2lkIGZsdXNoKCk7
CiAKQEAgLTE4OSw2ICsxOTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wYXJzaW5nU3VjY2Vl
ZGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9wYXJzZXJTdGF0ZVdhc1Jlc2V0IHsgZmFsc2UgfTsK
ICAgICBib29sIG1fZGlzY2FyZFNhbXBsZXNVbnRpbE5leHRJbml0aWFsaXphdGlvblNlZ21lbnQg
eyBmYWxzZSB9OworICAgIGJvb2wgbV93YWl0aW5nRm9yS2V5IHsgdHJ1ZSB9OwogICAgIGludCBt
X2VuYWJsZWRWaWRlb1RyYWNrSUQgeyAtMSB9OwogICAgIGludCBtX3Byb3RlY3RlZFRyYWNrSUQg
eyAtMSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMubW0KaW5kZXggNTI4ZTNiYTZjMjE5MjEwNGE1MmU1N2QxYWMwOWU0NzA5
OTYwNmQyNi4uNTRjYzQ0ZGY4OTkyMDU4NzM0NjZjMDgwOGJkNGMzYTEzMTk4MzVmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW0KQEAgLTY2Niw2ICs2NjYsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpk
aWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGbwogICAgIH0KICNl
bmRpZgogCisgICAgbV93YWl0aW5nRm9yS2V5ID0gdHJ1ZTsKKyAgICBtX21lZGlhU291cmNlLT5w
bGF5ZXIoKS0+d2FpdGluZ0ZvcktleUNoYW5nZWQoKTsKKwogICAgIFVOVVNFRF9QQVJBTShpbml0
RGF0YSk7CiAgICAgVU5VU0VEX1BBUkFNKHRyYWNrSUQpOwogICAgIFVOVVNFRF9QQVJBTShoYXNT
ZXNzaW9uU2VtYXBob3JlKTsKQEAgLTkyMiw2ICs5MjUsOCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpzZXRDRE1JbnN0YW5jZShDRE1JbnN0YW5jZSogaW5zdGFuY2UpCiAgICAg
ICAgICAgICBtX2hhc1Nlc3Npb25TZW1hcGhvcmUgPSBudWxscHRyOwogICAgICAgICB9CiAgICAg
fQorICAgIG1fd2FpdGluZ0ZvcktleSA9IGZhbHNlOworICAgIG1fbWVkaWFTb3VyY2UtPnBsYXll
cigpLT53YWl0aW5nRm9yS2V5Q2hhbmdlZCgpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaW5z
dGFuY2UpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCmluZGV4IDdjMmE5ZWIzZGI2MDEyYjVkZTVhMDE4MmMwZTY3NzA1NzY2MzZlMmUu
LmU3YWNhYWJkZjEzMDgyZjc1ZGVjMjlhNjY0OTlmYjg5MTI0YTZjNTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xMzEwLDcgKzEzMTAs
MTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0
TWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGhhbmRsZVByb3RlY3Rpb25FdmVudChldmVu
dC5nZXQoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1
Y3R1cmUsICJkcm0td2FpdGluZy1mb3Ita2V5IikpIHsKICAgICAgICAgICAgIEdTVF9ERUJVRygi
ZHJtLXdhaXRpbmctZm9yLWtleSBtZXNzYWdlIGZyb20gJXMiLCBHU1RfTUVTU0FHRV9TUkNfTkFN
RShtZXNzYWdlKSk7Ci0gICAgICAgICAgICByZXBvcnRXYWl0aW5nRm9yS2V5KCk7CisgICAgICAg
ICAgICBzZXRXYWl0aW5nRm9yS2V5KHRydWUpOworICAgICAgICB9IGVsc2UgaWYgKGdzdF9zdHJ1
Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiZHJtLWtleS1yZWNlaXZlZCIpKSB7CisgICAgICAg
ICAgICBHU1RfREVCVUcoImRybS1rZXktcmVjZWl2ZWQgbWVzc2FnZSBmcm9tICVzIiwgR1NUX01F
U1NBR0VfU1JDX05BTUUobWVzc2FnZSkpOworICAgICAgICAgICAgc2V0V2FpdGluZ0ZvcktleShm
YWxzZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1
cmUsICJkcm0tY2RtLWluc3RhbmNlLW5lZWRlZCIpKSB7CiAgICAgICAgICAgICBHU1RfREVCVUco
ImRybS1jZG0taW5zdGFuY2UtbmVlZGVkIG1lc3NhZ2UgZnJvbSAlcyIsIEdTVF9NRVNTQUdFX1NS
Q19OQU1FKG1lc3NhZ2UpKTsKICAgICAgICAgICAgIGRpc3BhdGNoQ0RNSW5zdGFuY2UoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApp
bmRleCAyNmU2MjgyNzMxMzk0OTI5ZWQ4OTBkMjI0MzA2ZjAyNWU1MjY2Y2FhLi45YmVkMWIwNmYy
YWMxZDdiNjk0OTk4ZWE2OTdkZmIxN2JkNGU0MTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0xMzUzLDcgKzEzNTMsMjEg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVQcm90ZWN0aW9u
RXZlbnQoR3N0RXZlbnQqIGV2ZW50KQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlOjpyZXBvcnRXYWl0aW5nRm9yS2V5KCkKIHsKICAgICBHU1RfVFJBQ0UoIndhaXRpbmcgZm9y
IGtleSIpOwotICAgIG1fcGxheWVyLT53YWl0aW5nRm9yS2V5KCk7CisgICAgbV9wbGF5ZXItPndh
aXRpbmdGb3JLZXlDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6c2V0V2FpdGluZ0ZvcktleShib29sIHdhaXRpbmdGb3JLZXkpCit7CisgICAgaWYg
KHdhaXRpbmdGb3JLZXkgPT0gbV93YWl0aW5nRm9yS2V5KQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3dhaXRpbmdGb3JLZXkgPSB3YWl0aW5nRm9yS2V5OworICAgIHJlcG9ydFdhaXRpbmdGb3JL
ZXkoKTsKK30KKworYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp3YWl0aW5n
Rm9yS2V5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93YWl0aW5nRm9yS2V5OwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5o
CmluZGV4IDkwMjFhMDkyNGM1N2QxNGEwNzAzYzNlMThiMjY0ZmY4NWZjNmNhN2UuLjRmYTE1NWE4
MzM3Yzc5ZTIyN2I1OGVkZWFmZmZmM2Y4YzJiNDEzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaApAQCAtMTUyLDYgKzE1Miw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIGF0dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UoQ0RNSW5zdGFuY2Um
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoQ0RNSW5zdGFuY2UoKTsKICAgICB2b2lkIGlu
aXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKEdzdEV2ZW50Kik7CisgICAgdm9pZCBzZXRXYWl0
aW5nRm9yS2V5KGJvb2wpOworICAgIGJvb2wgd2FpdGluZ0ZvcktleSgpIGNvbnN0OwogICAgIHZv
aWQgcmVwb3J0V2FpdGluZ0ZvcktleSgpOwogI2VuZGlmCiAKQEAgLTI3NCw2ICsyNzYsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgUmVmUHRyPGNvbnN0IENETUluc3RhbmNlPiBtX2NkbUluc3RhbmNlOwog
ICAgIEhhc2hTZXQ8dWludDMyX3Q+IG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHM7CiAgICAgYm9v
bCBtX25lZWRUb1Jlc2VuZENyZWRlbnRpYWxzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fd2FpdGlu
Z0ZvcktleSB7IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlv
bkRlY3J5cHRvckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIu
Y3BwCmluZGV4IDRlMzUyNzJlZGRhYjI3MWQ1MjE4MGM4NDQ0MjBiOTFjZmI4YTA4ODMuLmYzZWUz
ZmE5MWYyZDljYzMzZGNhMWM0YWFhMjExNGI1YjRhMzIwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlw
dGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0
cmVhbWVyLmNwcApAQCAtMzA4LDYgKzMwOCw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRNZWRp
YUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0U2lua0V2ZW50SGFuZGxlcihHc3RCYXNlVHJhbnNmCiAg
ICAgICAgICAgICBwcml2LT5rZXlSZWNlaXZlZCA9IHRydWU7CiAgICAgICAgICAgICBwcml2LT53
YWl0aW5nRm9yS2V5ID0gZmFsc2U7CiAgICAgICAgICAgICBwcml2LT5jb25kaXRpb24ubm90aWZ5
T25lKCk7CisgICAgICAgICAgICBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UoR1NUX0VMRU1FTlQo
c2VsZiksIGdzdF9tZXNzYWdlX25ld19lbGVtZW50KEdTVF9PQkpFQ1Qoc2VsZiksIGdzdF9zdHJ1
Y3R1cmVfbmV3X2VtcHR5KCJkcm0ta2V5LXJlY2VpdmVkIikpKTsKICAgICAgICAgfSBlbHNlIGlm
IChwcml2LT53YWl0aW5nRm9yS2V5KSB7CiAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNl
bGYsICJzdGlsbCB3YWl0aW5nIGZvciBrZXksIHJlcG9zdGluZyIpOwogICAgICAgICAgICAgZ3N0
X2VsZW1lbnRfcG9zdF9tZXNzYWdlKEdTVF9FTEVNRU5UKHNlbGYpLCBnc3RfbWVzc2FnZV9uZXdf
ZWxlbWVudChHU1RfT0JKRUNUKHNlbGYpLCBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgiZHJtLXdh
aXRpbmctZm9yLWtleSIpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350874</attachid>
            <date>2018-09-26 11:11:43 -0700</date>
            <delta_ts>2018-09-27 14:41:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-189951-20180926111143.patch</filename>
            <type>text/plain</type>
            <size>23155</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Mjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ1YTcyZTZiNzMwOGIyN2NjNGI2YThj
Nzc5NmM1MmRkNjgwOGEzM2YuLjY5ZWFlZjAxZTc3ZTk2NWViMjBiYWRkZDMwZDM1NDg5NjFjZDgy
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgtMDktMjYgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXIgc2hvdWxkIGhhdmUgbWVkaWFQbGF5
ZXJXYWl0aW5nRm9yS2V5Q2hhbmdlZCgpIC8gYm9vbCB3YWl0aW5nRm9yS2V5KCkgYWNjZXNzb3IK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTk1MQor
CisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBUZW1wbGF0ZWQg
ZnVuY3Rpb25zIHNob3VsZCB0YWtlIHItdmFsdWUgcmVmZXJlbmNlcywgYXMgdGhleSBoYXZlIHBl
cmZlY3QgdHlwZSBkZWR1Y3Rpb24gZm9yCisgICAgICAgIGFsbCBwYXJhbWV0ZXIgdHlwZXM7IHJl
ZmVyZW5jZXMsIGwtdmFsdWUgcmVmZXJlbmNlcywgYW5kIHItdmFsdWUgcmVmZXJlbmNlcyBpbiB0
ZW1wbGF0ZSBmdW5jdGlvbgorICAgICAgICBwYXJhbWV0ZXJzIGhhdmUgc3BlY2lhbCB0eXBlIGRl
ZHVjdGlvbiBzZW1hbnRpY3MuCisgICAgICAgIFNlZTogPGh0dHBzOi8vZW4uY3BwcmVmZXJlbmNl
LmNvbS93L2NwcC9sYW5ndWFnZS9yZWZlcmVuY2UjRm9yd2FyZGluZ19yZWZlcmVuY2VzPgorCisg
ICAgICAgIFByZXZpb3VzbHksIGNvbnN0IHJlZmVyZW5jZSBwYXJhbWV0ZXJzIHdvdWxkIGJlIGNv
cGllZCB3aGVuIHBhc3NlZCBpbnRvIGFueU9mKCksIGFuZCBjb250YWluZXJzCisgICAgICAgIG9m
IFJlZjw+IHdvdWxkIGdlbmVyYXRlIGNvbXBpbGUgZXJyb3JzIHdoZW4gcGFzc2VkIGludG8gYW55
T2YsIGFzIHRoZXkgY2Fubm90IGJlIGNvcGllZC4gTm93LAorICAgICAgICB3aXRoIHItdmFsdWUg
cmVmZXJlbmNlIHR5cGVzIGluIHRlbXBsYXRlIHBhcmFtZXRlcnMsIGEgY29uc3QgcmVmZXJlbmNl
IGlzIG1hcHBlZCB0byBhIGNvbnN0IHJlZmVyZW5jZSwKKyAgICAgICAgYSBub24tY29uc3QgcmVm
ZXJlbmNlIGlzIG1hcHBlZCB0byBhIG5vbi1jb25zdCByZWZlcmVuY2UsIGFuZCBhIHItdmFsdWUg
cmVmZXJlbmNlIGlzIG1hcHBlZCB0bworICAgICAgICBhbiByLXZhbHVlIHJlZmVyZW5jZS4KKwor
ICAgICAgICAqIHd0Zi9BbGdvcml0aG1zLmg6CisgICAgICAgIChXVEY6OmZvckVhY2gpOgorICAg
ICAgICAoV1RGOjphbnlPZik6CisgICAgICAgIChXVEY6OmFsbE9mKToKKwogMjAxOC0wOC0yOSAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgVVNFX01F
RElBUkVNT1RFIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA1ZDNjYWZiYzAwMWNmODc5ODVjZjNiMThk
YzExM2FlOGFiZWM3ODMuLjhlZjY4NDY3MGJiMWE4N2Q0ZGJhYTQwY2FjZTYzN2U1ZDZjNjZkZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxOC0wOS0yNSAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVBsYXllciBzaG91bGQgaGF2ZSBtZWRp
YVBsYXllcldhaXRpbmdGb3JLZXlDaGFuZ2VkKCkgLyBib29sIHdhaXRpbmdGb3JLZXkoKSBhY2Nl
c3NvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5
OTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEluIG9y
ZGVyIHRvIGltcGxlbWVudCB0aGUgIlJlc3VtZSBQbGF5YmFjayIgc2VjdGlvbiBvZiBFTUUsIHBh
cnQgNCwgd2UgbmVlZCB0byBiZSBhYmxlCisgICAgICAgIHRvIHF1ZXJ5IHdoZXRoZXIgdGhlIE1l
ZGlhUGxheWVyIGlzIHN0aWxsIHdhaXRpbmcgZm9yIGEga2V5IGFmdGVyIGF0dGVtcHRUb0RlY3J5
cHQoKQorICAgICAgICBoYXMgYmVlbiBjYWxsZWQuIEN1cnJlbnRseSB0aGlzIGludm9sdmVzIG5v
IGJlaGF2aW9yYWwgY2hhbmdlcywgYXMgYWxsIG1vZGVybiBFTUUgcG9ydHMKKyAgICAgICAgd2ls
bCBzdGlsbCBqdXN0IG5vdGlmeSB0aGUgbWVkaWEgZWxlbWVudCB0aGF0IHRoZXkgbm8gbG9uZ2Vy
IG5lZWQga2V5cyBhZnRlciBvbmUgaGFzCisgICAgICAgIGJlZW4gYWRkZWQsIGJ1dCBmdXR1cmUg
cG9ydHMgbWF5IGJlIGFibGUgdG8gd2FpdCBmb3IgbXVsdGlwbGUga2V5cyBiZWZvcmUgcmVwb3J0
aW5nCisgICAgICAgIHRoYXQgaXQgaXMgbm8gbG9uZ2VyIHdhaXRpbmcgZm9yIGtleXMuCisKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJXYWl0aW5nRm9yS2V5Q2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdHRlbXB0VG9SZXN1bWVQbGF5YmFja0lmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
V2FpdGluZ0ZvcktleSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OndhaXRpbmdGb3JLZXlDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp3YWl0aW5nRm9yS2V5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjp3YWl0aW5nRm9yS2V5KTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVyV2FpdGluZ0ZvcktleUNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVyV2FpdGluZ0ZvcktleSk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OndhaXRpbmdG
b3JLZXkgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmF0dGVtcHRUb0RlY3J5
cHRXaXRoSW5zdGFuY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6YXR0ZW1wdFRvRGVjcnlwdFdpdGhJbnN0YW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OndhaXRp
bmdGb3JLZXkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjp3YWl0aW5nRm9yS2V5Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVD
b250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQpOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmF0dGVtcHRUb0RlY3J5cHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpoYW5kbGVNZXNzYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpyZXBvcnRXYWl0aW5nRm9yS2V5KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnNldFdh
aXRpbmdGb3JLZXkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6d2FpdGluZ0ZvcktleSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25E
ZWNyeXB0b3JHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Via2l0TWVkaWFDb21tb25FbmNyeXB0
aW9uRGVjcnlwdFNpbmtFdmVudEhhbmRsZXIpOgorCiAyMDE4LTA5LTI0ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFNoYXJlZEJ1ZmZlciBzaG91bGQgaGF2ZSBh
biBlcXVhbGl0eSB0ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BbGdvcml0aG1zLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9BbGdvcml0aG1zLmgKaW5kZXggNDhiNjQ0ZTg2MWFjYTVkMjZjN2Mx
MzY0YzhiZDYyMzVjYmIwMTgwZS4uMTYwY2Y1YTJmNWIwOTBlYWVmM2ZiOWYyNDZiNjBlZGFlMDYx
MWY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQWxnb3JpdGhtcy5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0FsZ29yaXRobXMuaApAQCAtMjgsMTQgKzI4LDE0IEBACiBuYW1lc3BhY2UgV1RG
IHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyVHlwZSwgdHlwZW5hbWUgRm9yRWFjaEZ1
bmN0aW9uPgotdm9pZCBmb3JFYWNoKENvbnRhaW5lclR5cGUgY29udGFpbmVyLCBGb3JFYWNoRnVu
Y3Rpb24gZm9yRWFjaEZ1bmN0aW9uKQordm9pZCBmb3JFYWNoKENvbnRhaW5lclR5cGUmJiBjb250
YWluZXIsIEZvckVhY2hGdW5jdGlvbiBmb3JFYWNoRnVuY3Rpb24pCiB7CiAgICAgZm9yIChhdXRv
JiB2YWx1ZSA6IGNvbnRhaW5lcikKICAgICAgICAgZm9yRWFjaEZ1bmN0aW9uKHZhbHVlKTsKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyVHlwZSwgdHlwZW5hbWUgQW55T2ZGdW5jdGlv
bj4KLWJvb2wgYW55T2YoQ29udGFpbmVyVHlwZSBjb250YWluZXIsIEFueU9mRnVuY3Rpb24gYW55
T2ZGdW5jdGlvbikKK2Jvb2wgYW55T2YoQ29udGFpbmVyVHlwZSYmIGNvbnRhaW5lciwgQW55T2ZG
dW5jdGlvbiBhbnlPZkZ1bmN0aW9uKQogewogICAgIGZvciAoYXV0byYgdmFsdWUgOiBjb250YWlu
ZXIpIHsKICAgICAgICAgaWYgKGFueU9mRnVuY3Rpb24odmFsdWUpKQpAQCAtNDUsNyArNDUsNyBA
QCBib29sIGFueU9mKENvbnRhaW5lclR5cGUgY29udGFpbmVyLCBBbnlPZkZ1bmN0aW9uIGFueU9m
RnVuY3Rpb24pCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRhaW5lclR5cGUsIHR5cGVuYW1l
IEFsbE9mRnVuY3Rpb24+Ci1ib29sIGFsbE9mKENvbnRhaW5lclR5cGUgY29udGFpbmVyLCBBbGxP
ZkZ1bmN0aW9uIGFsbE9mRnVuY3Rpb24pCitib29sIGFsbE9mKENvbnRhaW5lclR5cGUmJiBjb250
YWluZXIsIEFsbE9mRnVuY3Rpb24gYWxsT2ZGdW5jdGlvbikKIHsKICAgICBmb3IgKGF1dG8mIHZh
bHVlIDogY29udGFpbmVyKSB7CiAgICAgICAgIGlmICghYWxsT2ZGdW5jdGlvbih2YWx1ZSkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA4MzkyZGFiZjdhNWEx
Y2YwZDliMzBlMjAyNTJjODhlNjM3MWU1NWY2Li5jNGM1MTdiZmM3ZDFjYjk4MWZiZmU4ZjZiOTQw
M2IxNWJkM2ExM2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTI3ODcsOCArMjc4NywyOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
SW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoY29uc3QgU3RyaW5nJiBpbgogICAgIG1fYXN5
bmNFdmVudFF1ZXVlLmVucXVldWVFdmVudChNZWRpYUVuY3J5cHRlZEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmVuY3J5cHRlZEV2ZW50LCBpbml0aWFsaXplciwgRXZlbnQ6OklzVHJ1c3RlZDo6
WWVzKSk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJXYWl0aW5nRm9y
S2V5KCkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJXYWl0aW5nRm9yS2V5Q2hh
bmdlZCgpCiB7CisgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KCFtX3BsYXllci0+d2FpdGluZ0ZvcktleSgpICYmIG1fcGxheWJhY2tCbG9ja2VkV2FpdGluZ0Zv
cktleSkgeworICAgICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlh
LyNyZXN1bWUtcGxheWJhY2sKKyAgICAgICAgLy8gVzNDIEVkaXRvcidzIERyYWZ0IDIzIEp1bmUg
MjAxNworCisgICAgICAgIC8vIE5PVEU6IGNvbnRpbnVlZCBmcm9tIEhUTUxNZWRpYUVsZW1lbnQ6
OmF0dGVtcHRUb0RlY3J5cHQoKS4KKyAgICAgICAgLy8gNC4gSWYgdGhlIHVzZXIgYWdlbnQgY2Fu
IGFkdmFuY2UgdGhlIGN1cnJlbnQgcGxheWJhY2sgcG9zaXRpb24gaW4gdGhlIGRpcmVjdGlvbiBv
ZiBwbGF5YmFjazoKKyAgICAgICAgLy8gICA0LjEuIFNldCB0aGUgbWVkaWEgZWxlbWVudCdzIGRl
Y3J5cHRpb24gYmxvY2tlZCB3YWl0aW5nIGZvciBrZXkgdmFsdWUgdG8gZmFsc2UuCisgICAgICAg
IC8vIEZJWE1FOiBeCisgICAgICAgIC8vICAgNC4yLiBTZXQgdGhlIG1lZGlhIGVsZW1lbnQncyBw
bGF5YmFjayBibG9ja2VkIHdhaXRpbmcgZm9yIGtleSB2YWx1ZSB0byBmYWxzZS4KKyAgICAgICAg
bV9wbGF5YmFja0Jsb2NrZWRXYWl0aW5nRm9yS2V5ID0gZmFsc2U7CisKKyAgICAgICAgLy8gICA0
LjMuIFNldCB0aGUgbWVkaWEgZWxlbWVudCdzIHJlYWR5U3RhdGUgdmFsdWUgdG8gSEFWRV9DVVJS
RU5UX0RBVEEsIEhBVkVfRlVUVVJFX0RBVEEgb3IgSEFWRV9FTk9VR0hfREFUQSBhcyBhcHByb3By
aWF0ZS4KKyAgICAgICAgc2V0UmVhZHlTdGF0ZShtX3BsYXllci0+cmVhZHlTdGF0ZSgpKTsKKwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Vu
Y3J5cHRlZC1tZWRpYS8jd2FpdC1mb3Ita2V5CiAgICAgLy8gVzNDIFJlY29tbWVuZGF0aW9uIDE4
IFNlcHRlbWJlciAyMDE3CiAKQEAgLTI4OTAsMTQgKzI5MTAsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OmF0dGVtcHRUb1Jlc3VtZVBsYXliYWNrSWZOZWNlc3NhcnkoKQogICAgIC8vIDMuIFJ1
biB0aGUgQXR0ZW1wdCB0byBEZWNyeXB0IGFsZ29yaXRobSBvbiB0aGUgbWVkaWEgZWxlbWVudC4K
ICAgICBhdHRlbXB0VG9EZWNyeXB0KCk7CiAKLSAgICAvLyA0LiBJZiB0aGUgdXNlciBhZ2VudCBj
YW4gYWR2YW5jZSB0aGUgY3VycmVudCBwbGF5YmFjayBwb3NpdGlvbiBpbiB0aGUgZGlyZWN0aW9u
IG9mIHBsYXliYWNrOgotICAgIC8vICAgNC4xLiBTZXQgdGhlIG1lZGlhIGVsZW1lbnQncyBkZWNy
eXB0aW9uIGJsb2NrZWQgd2FpdGluZyBmb3Iga2V5IHZhbHVlIHRvIGZhbHNlLgotICAgIC8vIEZJ
WE1FOiBeCi0gICAgLy8gICA0LjIuIFNldCB0aGUgbWVkaWEgZWxlbWVudCdzIHBsYXliYWNrIGJs
b2NrZWQgd2FpdGluZyBmb3Iga2V5IHZhbHVlIHRvIGZhbHNlLgotICAgIG1fcGxheWJhY2tCbG9j
a2VkV2FpdGluZ0ZvcktleSA9IGZhbHNlOwotCi0gICAgLy8gICA0LjMuIFNldCB0aGUgbWVkaWEg
ZWxlbWVudCdzIHJlYWR5U3RhdGUgdmFsdWUgdG8gSEFWRV9DVVJSRU5UX0RBVEEsIEhBVkVfRlVU
VVJFX0RBVEEgb3IgSEFWRV9FTk9VR0hfREFUQSBhcyBhcHByb3ByaWF0ZS4KLSAgICBzZXRSZWFk
eVN0YXRlKG1fcGxheWVyLT5yZWFkeVN0YXRlKCkpOworICAgIC8vIE5PVEU6IGNvbnRpbnVlZCBp
biBIVE1MTWVkaWFFbGVtZW50Ojp3YWl0aW5nRm9yS2V5Q2hhbmdlZCgpCiB9CiAKIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6Y2RtQ2xpZW50QXR0ZW1wdFRvUmVzdW1lUGxheWJhY2tJZk5lY2Vzc2Fy
eSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDljOGQ1NDFiODBm
OTMyYzMwODcwMzVkNDNkZjU1OGVhNzAzY2QyMDQuLjZmYjJjYjg5Y2Y1Yzc4ZDg3M2ZhOGI2Mjc3
MzQ3ODZkYjY1ZWZmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC02NzMsNyArNjczLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CiAgICAgdm9pZCBtZWRpYVBsYXllckluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKGNvbnN0
IFN0cmluZyYsIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBs
YXllcldhaXRpbmdGb3JLZXkoKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyV2FpdGluZ0Zv
cktleUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIHZvaWQgYXR0ZW1wdFRvRGVjcnlwdCgpOwogICAg
IHZvaWQgYXR0ZW1wdFRvUmVzdW1lUGxheWJhY2tJZk5lY2Vzc2FyeSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGMyZTgwZDYy
ZmE1YWI0NTFjNzE2MDQ4MTFhMzdkYTdhYjliMDJjMTMuLjEwNWE4MGYxYTA0MDQ4YTU3ZTEyOWQ0
MjBlMzdmODY3NjRiOGY1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTEyNjYsOSArMTI2NiwxNiBAQCB2b2lkIE1lZGlhUGxh
eWVyOjppbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChjb25zdCBTdHJpbmcmIGluaXREYXRh
VHlwZSwgUmVmUAogICAgIGNsaWVudCgpLm1lZGlhUGxheWVySW5pdGlhbGl6YXRpb25EYXRhRW5j
b3VudGVyZWQoaW5pdERhdGFUeXBlLCBXVEZNb3ZlKGluaXREYXRhKSk7CiB9CiAKLXZvaWQgTWVk
aWFQbGF5ZXI6OndhaXRpbmdGb3JLZXkoKQordm9pZCBNZWRpYVBsYXllcjo6d2FpdGluZ0Zvcktl
eUNoYW5nZWQoKQogewotICAgIGNsaWVudCgpLm1lZGlhUGxheWVyV2FpdGluZ0ZvcktleSgpOwor
ICAgIGNsaWVudCgpLm1lZGlhUGxheWVyV2FpdGluZ0ZvcktleUNoYW5nZWQoKTsKK30KKworYm9v
bCBNZWRpYVBsYXllcjo6d2FpdGluZ0ZvcktleSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3ByaXZh
dGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT53YWl0aW5n
Rm9yS2V5KCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKaW5kZXggNzYwZjBlNDM4NDg3MTlmMWQzZDQ5ZWQxMzUxNDhjM2Y4
OGY2OGQ4ZC4uNDYyYTcyNjYwNTg0NzEyM2U4N2I3NDk1NWY0ZjE2OGZmODJmYTZmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0xNjks
NyArMTY5LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICB2
aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJJbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChjb25z
dCBTdHJpbmcmLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBt
ZWRpYVBsYXllcldhaXRpbmdGb3JLZXkoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5
ZXJXYWl0aW5nRm9yS2V5Q2hhbmdlZCgpIHsgfQogI2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKFdJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKQEAgLTQ4OCw3ICs0ODgsOCBAQCBwdWJsaWM6CiAKICNp
ZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHZvaWQgaW5pdGlhbGl6YXRpb25EYXRhRW5j
b3VudGVyZWQoY29uc3QgU3RyaW5nJiwgUmVmUHRyPEFycmF5QnVmZmVyPiYmKTsKLSAgICB2b2lk
IHdhaXRpbmdGb3JLZXkoKTsKKyAgICB2b2lkIHdhaXRpbmdGb3JLZXlDaGFuZ2VkKCk7CisgICAg
Ym9vbCB3YWl0aW5nRm9yS2V5KCkgY29uc3Q7CiAjZW5kaWYKIAogICAgIFN0cmluZyByZWZlcnJl
cigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaAppbmRleCA1NDU0N2Y5YTA5OTgxNGFkZjBjMTRlY2MyZDBlNDQ1
YzdiMDdkNGZhLi4yNDEzZGE1ZmJhNzc3OTRmYTIzOTllZjc4NWY3MmE2YWZiMjJkYTkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaApAQCAtMjMyLDYgKzIzMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2Rt
SW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjZG1J
bnN0YW5jZURldGFjaGVkKENETUluc3RhbmNlJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGVt
cHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UoQ0RNSW5zdGFuY2UmKSB7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgd2FpdGluZ0ZvcktleSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBjNTQ1YWUxMjg5
ZThhOTI3Mzc0NWY0NzFmODQ3ZjQyZmZhOWNkZWUzLi4yOTI3YWNhMDVhZTJmMmIxMDFjNzg2ZGQw
OWY4ZTNhMjFkMWE2NGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xNDcsNiArMTQ3LDgg
QEAgcHVibGljOgogICAgIHZvaWQgY2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYpIGZp
bmFsOwogICAgIHZvaWQgY2RtSW5zdGFuY2VEZXRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwog
ICAgIHZvaWQgYXR0ZW1wdFRvRGVjcnlwdFdpdGhJbnN0YW5jZShDRE1JbnN0YW5jZSYpIGZpbmFs
OworICAgIHZvaWQgc2V0V2FpdGluZ0ZvcktleShib29sKTsKKyAgICBib29sIHdhaXRpbmdGb3JL
ZXkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3dhaXRpbmdGb3JLZXk7IH0KICNlbmRpZgogCiBw
cml2YXRlOgpAQCAtMzkyLDYgKzM5NCw3IEBAIHByaXZhdGU6CiAgICAgV2Vha1B0cjxDRE1TZXNz
aW9uQVZGb3VuZGF0aW9uT2JqQz4gbV9zZXNzaW9uOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkgJiYgSEFWRShBVkNPTlRFTlRLRVlTRVNTSU9OKQorICAgIGJvb2wgbV93YWl0
aW5nRm9yS2V5IHsgZmFsc2UgfTsKICAgICBSZWZQdHI8Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakM+IG1fY2RtSW5zdGFuY2U7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KaW5kZXggMzcxNDliNTg5YWZiNzc1MjUyMDlmMjBiZGFhMmY2NDE2MjFkNWQ3Yi4uN2Q0OWQ0
ZTEwYzllNTE2NWJjZWFlMjUxNjNkOTZhZGFhZmJkN2MxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCkBAIC0xNzg0LDcgKzE3ODQsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnNob3VsZFdhaXRGb3JMb2FkaW5nT2ZSZXNvdXJjZShBVkFzc2V0UgogICAgICAg
ICBSZXRhaW5QdHI8TlNEYXRhPiBrZXlVUklEYXRhID0gW2tleVVSSSBkYXRhVXNpbmdFbmNvZGlu
ZzpOU1VURjhTdHJpbmdFbmNvZGluZyBhbGxvd0xvc3N5Q29udmVyc2lvbjpZRVNdOwogICAgICAg
ICBhdXRvIGtleVVSSUJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGtleVVSSURhdGEuZ2V0
KCkpOwogICAgICAgICBwbGF5ZXIoKS0+aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoInNr
ZCJfcywga2V5VVJJQnVmZmVyLT50cnlDcmVhdGVBcnJheUJ1ZmZlcigpKTsKLSAgICAgICAgcGxh
eWVyKCktPndhaXRpbmdGb3JLZXkoKTsKKyAgICAgICAgc2V0V2FpdGluZ0ZvcktleSh0cnVlKTsK
ICNlbmRpZgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0yNTAzLDYgKzI1MDMsMTYg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjphdHRlbXB0VG9EZWNy
eXB0V2l0aEluc3RhbmNlKENETUluc3RhbmMKICAgICAgICAgICAgIGluZm9SZXF1ZXN0LmNvbnRl
bnRUeXBlID0gQVZTdHJlYW1pbmdLZXlEZWxpdmVyeUNvbnRlbnRLZXlUeXBlOwogICAgICAgICBb
cmVxdWVzdCBmaW5pc2hMb2FkaW5nXTsKICAgICB9CisgICAgc2V0V2FpdGluZ0ZvcktleShmYWxz
ZSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0V2Fp
dGluZ0ZvcktleShib29sIHdhaXRpbmdGb3JLZXkpCit7CisgICAgaWYgKG1fd2FpdGluZ0Zvcktl
eSA9PSB3YWl0aW5nRm9yS2V5KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3dhaXRpbmdGb3JL
ZXkgPSB3YWl0aW5nRm9yS2V5OworICAgIHBsYXllcigpLT53YWl0aW5nRm9yS2V5Q2hhbmdlZCgp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggNGNiMjljYzY3MjFk
MDkxZDIzNjZiMjJiZmI4NGU0Y2QwNjMxNjBmNy4uZDc4MWFhNDE5NzBmYmZkODExOTA4YzQxYWE3
YTdmNTJjNWM1OTJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTEyMCw2ICsxMjAs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNlJikg
ZmluYWw7CiAgICAgdm9pZCBjZG1JbnN0YW5jZURldGFjaGVkKENETUluc3RhbmNlJikgZmluYWw7
CiAgICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0aEluc3RhbmNlKENETUluc3RhbmNlJikgZmlu
YWw7CisgICAgYm9vbCB3YWl0aW5nRm9yS2V5KCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHdh
aXRpbmdGb3JLZXlDaGFuZ2VkKCk7CiAgICAgQ0RNSW5zdGFuY2UqIGNkbUluc3RhbmNlKCkgY29u
c3QgeyByZXR1cm4gbV9jZG1JbnN0YW5jZS5nZXQoKTsgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbQppbmRleCA2OWM2MWI2NDllMjY1ODRmNzVmZDBiMGVmYjYzZjRiNWZiZmNi
ODk0Li5lNDIzNjYzODE5MTkzMzg5MmZlYjRmODdkOGM5ZmViZjZiYWEzMzM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxvYmpjX3J1bnRp
bWUuaD4KICNpbXBvcnQgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9BVkZvdW5kYXRpb25TUEkuaD4KKyNpbXBvcnQgPHd0Zi9B
bGdvcml0aG1zLmg+CiAjaW1wb3J0IDx3dGYvRGVxdWUuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTk1MiwxMCArOTUzLDIx
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphdHRlbXB0VG9E
ZWNyeXB0V2l0aEluc3RhbmNlKENETUluc3RhCiB7CiB9CiAKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp3YWl0aW5nRm9yS2V5KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gYW55T2YobV9tZWRpYVNvdXJjZVByaXZhdGUtPnNvdXJjZUJ1ZmZlcnMoKSwgW10gKGF1dG8m
IHNvdXJjZUJ1ZmZlcikgeworICAgICAgICByZXR1cm4gc291cmNlQnVmZmVyLT53YWl0aW5nRm9y
S2V5KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjp3YWl0aW5nRm9yS2V5Q2hhbmdlZCgpCit7CisgICAgbV9wbGF5ZXItPndhaXRpbmdG
b3JLZXlDaGFuZ2VkKCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjppbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChjb25zdCBTdHJpbmcmIGluaXRE
YXRhVHlwZSwgUmVmUHRyPEFycmF5QnVmZmVyPiYmIGluaXREYXRhKQogewogICAgIG1fcGxheWVy
LT5pbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChpbml0RGF0YVR5cGUsIFdURk1vdmUoaW5p
dERhdGEpKTsKLSAgICBtX3BsYXllci0+d2FpdGluZ0ZvcktleSgpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5o
CmluZGV4IDI5M2M2MGIwMjdiMjdhYzY1ZGY2ZWMyMWYxODc2OTY2MTJmMjAxNjMuLjUyMDEzYTEw
ZDZkYzQwOTJkZTk5NzE4NmVkODRiYWNiNTFlM2YzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaApAQCAtMTA5LDYgKzEwOSw4
IEBAIHB1YmxpYzoKICAgICBBVlN0cmVhbURhdGFQYXJzZXIqIHBhcnNlcigpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyc2VyLmdldCgpOyB9CiAgICAgdm9pZCBzZXRDRE1TZXNzaW9uKENETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakMqKTsKICAgICB2b2lkIHNldENETUluc3RhbmNlKENETUluc3RhbmNl
Kik7CisgICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0KCk7CisgICAgYm9vbCB3YWl0aW5nRm9yS2V5
KCkgY29uc3QgeyByZXR1cm4gbV93YWl0aW5nRm9yS2V5OyB9CiAKICAgICB2b2lkIGZsdXNoKCk7
CiAKQEAgLTE4OSw2ICsxOTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wYXJzaW5nU3VjY2Vl
ZGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9wYXJzZXJTdGF0ZVdhc1Jlc2V0IHsgZmFsc2UgfTsK
ICAgICBib29sIG1fZGlzY2FyZFNhbXBsZXNVbnRpbE5leHRJbml0aWFsaXphdGlvblNlZ21lbnQg
eyBmYWxzZSB9OworICAgIGJvb2wgbV93YWl0aW5nRm9yS2V5IHsgdHJ1ZSB9OwogICAgIGludCBt
X2VuYWJsZWRWaWRlb1RyYWNrSUQgeyAtMSB9OwogICAgIGludCBtX3Byb3RlY3RlZFRyYWNrSUQg
eyAtMSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMubW0KaW5kZXggNTI4ZTNiYTZjMjE5MjEwNGE1MmU1N2QxYWMwOWU0NzA5
OTYwNmQyNi4uYjllYzU2ZTVlNTYxYTQ2NDg0OWExYzhlYWFlYTI3NWNmMmQxMjQ2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW0KQEAgLTY2NCw2ICs2NjQsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpk
aWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGbwogICAgICAgICBh
dXRvIGluaXREYXRhQnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoaW5pdERhdGEpOwogICAg
ICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVy
ZWQoInNpbmYiLCBpbml0RGF0YUJ1ZmZlci0+dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKSk7CiAgICAg
fQorCisgICAgbV93YWl0aW5nRm9yS2V5ID0gdHJ1ZTsKKyAgICBtX21lZGlhU291cmNlLT5wbGF5
ZXIoKS0+d2FpdGluZ0ZvcktleUNoYW5nZWQoKTsKICNlbmRpZgogCiAgICAgVU5VU0VEX1BBUkFN
KGluaXREYXRhKTsKQEAgLTkyMiw2ICs5MjUsOCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpzZXRDRE1JbnN0YW5jZShDRE1JbnN0YW5jZSogaW5zdGFuY2UpCiAgICAgICAgICAg
ICBtX2hhc1Nlc3Npb25TZW1hcGhvcmUgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgfQorICAg
IG1fd2FpdGluZ0ZvcktleSA9IGZhbHNlOworICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT53
YWl0aW5nRm9yS2V5Q2hhbmdlZCgpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2Up
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IDdjMmE5ZWIzZGI2MDEyYjVkZTVhMDE4MmMwZTY3NzA1NzY2MzZlMmUuLmU3YWNh
YWJkZjEzMDgyZjc1ZGVjMjlhNjY0OTlmYjg5MTI0YTZjNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xMzEwLDcgKzEzMTAsMTAgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2Fn
ZSogbWVzc2FnZSkKICAgICAgICAgICAgIGhhbmRsZVByb3RlY3Rpb25FdmVudChldmVudC5nZXQo
KSk7CiAgICAgICAgIH0gZWxzZSBpZiAoZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUs
ICJkcm0td2FpdGluZy1mb3Ita2V5IikpIHsKICAgICAgICAgICAgIEdTVF9ERUJVRygiZHJtLXdh
aXRpbmctZm9yLWtleSBtZXNzYWdlIGZyb20gJXMiLCBHU1RfTUVTU0FHRV9TUkNfTkFNRShtZXNz
YWdlKSk7Ci0gICAgICAgICAgICByZXBvcnRXYWl0aW5nRm9yS2V5KCk7CisgICAgICAgICAgICBz
ZXRXYWl0aW5nRm9yS2V5KHRydWUpOworICAgICAgICB9IGVsc2UgaWYgKGdzdF9zdHJ1Y3R1cmVf
aGFzX25hbWUoc3RydWN0dXJlLCAiZHJtLWtleS1yZWNlaXZlZCIpKSB7CisgICAgICAgICAgICBH
U1RfREVCVUcoImRybS1rZXktcmVjZWl2ZWQgbWVzc2FnZSBmcm9tICVzIiwgR1NUX01FU1NBR0Vf
U1JDX05BTUUobWVzc2FnZSkpOworICAgICAgICAgICAgc2V0V2FpdGluZ0ZvcktleShmYWxzZSk7
CiAgICAgICAgIH0gZWxzZSBpZiAoZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJk
cm0tY2RtLWluc3RhbmNlLW5lZWRlZCIpKSB7CiAgICAgICAgICAgICBHU1RfREVCVUcoImRybS1j
ZG0taW5zdGFuY2UtbmVlZGVkIG1lc3NhZ2UgZnJvbSAlcyIsIEdTVF9NRVNTQUdFX1NSQ19OQU1F
KG1lc3NhZ2UpKTsKICAgICAgICAgICAgIGRpc3BhdGNoQ0RNSW5zdGFuY2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCAy
NmU2MjgyNzMxMzk0OTI5ZWQ4OTBkMjI0MzA2ZjAyNWU1MjY2Y2FhLi45YmVkMWIwNmYyYWMxZDdi
Njk0OTk4ZWE2OTdkZmIxN2JkNGU0MTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0xMzUzLDcgKzEzNTMsMjEgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVQcm90ZWN0aW9uRXZlbnQo
R3N0RXZlbnQqIGV2ZW50KQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpy
ZXBvcnRXYWl0aW5nRm9yS2V5KCkKIHsKICAgICBHU1RfVFJBQ0UoIndhaXRpbmcgZm9yIGtleSIp
OwotICAgIG1fcGxheWVyLT53YWl0aW5nRm9yS2V5KCk7CisgICAgbV9wbGF5ZXItPndhaXRpbmdG
b3JLZXlDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZTo6c2V0V2FpdGluZ0ZvcktleShib29sIHdhaXRpbmdGb3JLZXkpCit7CisgICAgaWYgKHdhaXRp
bmdGb3JLZXkgPT0gbV93YWl0aW5nRm9yS2V5KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3dh
aXRpbmdGb3JLZXkgPSB3YWl0aW5nRm9yS2V5OworICAgIHJlcG9ydFdhaXRpbmdGb3JLZXkoKTsK
K30KKworYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp3YWl0aW5nRm9yS2V5
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93YWl0aW5nRm9yS2V5OwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCmluZGV4
IDkwMjFhMDkyNGM1N2QxNGEwNzAzYzNlMThiMjY0ZmY4NWZjNmNhN2UuLjRmYTE1NWE4MzM3Yzc5
ZTIyN2I1OGVkZWFmZmZmM2Y4YzJiNDEzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaApAQCAtMTUyLDYgKzE1Miw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGF0dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UoQ0RNSW5zdGFuY2UmKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpc3BhdGNoQ0RNSW5zdGFuY2UoKTsKICAgICB2b2lkIGluaXRpYWxp
emF0aW9uRGF0YUVuY291bnRlcmVkKEdzdEV2ZW50Kik7CisgICAgdm9pZCBzZXRXYWl0aW5nRm9y
S2V5KGJvb2wpOworICAgIGJvb2wgd2FpdGluZ0ZvcktleSgpIGNvbnN0OwogICAgIHZvaWQgcmVw
b3J0V2FpdGluZ0ZvcktleSgpOwogI2VuZGlmCiAKQEAgLTI3NCw2ICsyNzYsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgUmVmUHRyPGNvbnN0IENETUluc3RhbmNlPiBtX2NkbUluc3RhbmNlOwogICAgIEhh
c2hTZXQ8dWludDMyX3Q+IG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHM7CiAgICAgYm9vbCBtX25l
ZWRUb1Jlc2VuZENyZWRlbnRpYWxzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fd2FpdGluZ0Zvcktl
eSB7IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5
cHRvckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCmlu
ZGV4IDRlMzUyNzJlZGRhYjI3MWQ1MjE4MGM4NDQ0MjBiOTFjZmI4YTA4ODMuLmYzZWUzZmE5MWYy
ZDljYzMzZGNhMWM0YWFhMjExNGI1YjRhMzIwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRl
Y3J5cHRvckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVy
LmNwcApAQCAtMzA4LDYgKzMwOCw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRNZWRpYUNvbW1v
bkVuY3J5cHRpb25EZWNyeXB0U2lua0V2ZW50SGFuZGxlcihHc3RCYXNlVHJhbnNmCiAgICAgICAg
ICAgICBwcml2LT5rZXlSZWNlaXZlZCA9IHRydWU7CiAgICAgICAgICAgICBwcml2LT53YWl0aW5n
Rm9yS2V5ID0gZmFsc2U7CiAgICAgICAgICAgICBwcml2LT5jb25kaXRpb24ubm90aWZ5T25lKCk7
CisgICAgICAgICAgICBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UoR1NUX0VMRU1FTlQoc2VsZiks
IGdzdF9tZXNzYWdlX25ld19lbGVtZW50KEdTVF9PQkpFQ1Qoc2VsZiksIGdzdF9zdHJ1Y3R1cmVf
bmV3X2VtcHR5KCJkcm0ta2V5LXJlY2VpdmVkIikpKTsKICAgICAgICAgfSBlbHNlIGlmIChwcml2
LT53YWl0aW5nRm9yS2V5KSB7CiAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNlbGYsICJz
dGlsbCB3YWl0aW5nIGZvciBrZXksIHJlcG9zdGluZyIpOwogICAgICAgICAgICAgZ3N0X2VsZW1l
bnRfcG9zdF9tZXNzYWdlKEdTVF9FTEVNRU5UKHNlbGYpLCBnc3RfbWVzc2FnZV9uZXdfZWxlbWVu
dChHU1RfT0JKRUNUKHNlbGYpLCBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgiZHJtLXdhaXRpbmct
Zm9yLWtleSIpKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>