<?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>174779</bug_id>
          
          <creation_ts>2017-07-24 02:23:00 -0700</creation_ts>
          <short_desc>[EME][GStreamer] Multi-key support in the GStreamer ClearKey decryptor</short_desc>
          <delta_ts>2017-07-26 07:33:17 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>174858</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>calvaris</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1331566</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-24 02:23:00 -0700</bug_when>
    <thetext>[EME][GStreamer] Multi-key support in the GStreamer ClearKey decryptor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331568</commentid>
    <comment_count>1</comment_count>
      <attachid>316277</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-24 02:27:07 -0700</bug_when>
    <thetext>Created attachment 316277
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332311</commentid>
    <comment_count>2</comment_count>
      <attachid>316441</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-26 03:35:49 -0700</bug_when>
    <thetext>Created attachment 316441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332328</commentid>
    <comment_count>3</comment_count>
      <attachid>316441</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-07-26 06:37:33 -0700</bug_when>
    <thetext>Comment on attachment 316441
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:47
&gt; +static gboolean webKitMediaClearKeyDecryptorSetupCipher(WebKitMediaCommonEncryptionDecrypt*, GstBuffer* kidBuffer);

Remove parameter name.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:152
&gt; +        GRefPtr&lt;GstBuffer&gt; keyIDBuffer(adoptGRef(gst_buffer_copy(static_cast&lt;GstBuffer*&gt;(g_value_get_boxed(gst_value_list_get_value(keyIDsList, i))))));
&gt; +        GRefPtr&lt;GstBuffer&gt; keyValueBuffer(adoptGRef(gst_buffer_copy(static_cast&lt;GstBuffer*&gt;(g_value_get_boxed(gst_value_list_get_value(keyValuesList, i))))));

I think, and it&apos;s funny that I said this, that it is better to use gst_value_get_buffer here to avoid the cast. I also think that you could just use GRefPtr constructor, avoid the copy and let the GRefPtr constructor ref the buffer for you instead of forcing the copy. Why would you want to copy it?

Just saying, though this code works and does not leak.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:159
&gt; +static gboolean webKitMediaClearKeyDecryptorSetupCipher(WebKitMediaCommonEncryptionDecrypt* self, GstBuffer* kidBuffer)

I&apos;d name it keyIDBuffer of keyIdBuffer.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:167
&gt; +        if (!gst_buffer_map(kidBuffer, &amp;kidBufferMap, GST_MAP_READ)) {

You need to unmap after use or we are leaking crap.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:263
&gt; +    GstBuffer* kidBuffer = gst_value_get_buffer(value);

rename variable

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h:57
&gt; +    gboolean (*setupCipher)(WebKitMediaCommonEncryptionDecrypt*, GstBuffer* kidBuffer);

Remove parameter name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332331</commentid>
    <comment_count>4</comment_count>
      <attachid>316446</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-26 07:02:38 -0700</bug_when>
    <thetext>Created attachment 316446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332334</commentid>
    <comment_count>5</comment_count>
      <attachid>316446</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-26 07:33:13 -0700</bug_when>
    <thetext>Comment on attachment 316446
Patch

Clearing flags on attachment: 316446

Committed r219946: &lt;http://trac.webkit.org/changeset/219946&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332335</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-26 07:33:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316277</attachid>
            <date>2017-07-24 02:27:07 -0700</date>
            <delta_ts>2017-07-26 03:35:45 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-174779-20170724112706.patch</filename>
            <type>text/plain</type>
            <size>9997</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5NzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmY5MjM5ZWRhNjYzMzg1
YjJhY2Y3ZWRkYWM2YjNlZTIyMjM4NGVlMC4uYmMwNGI5NDM0NDFkZGI4YzI2NDY2ODU4MWU4YzM3
ZDdhMGJjYTc1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTA3LTI0ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbRU1FXVtHU3RyZWFt
ZXJdIE11bHRpLWtleSBzdXBwb3J0IGluIHRoZSBHU3RyZWFtZXIgQ2xlYXJLZXkgZGVjcnlwdG9y
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ3NzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9l
bWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0
TWVkaWFDbGVhcktleURlY3J5cHRvckhhbmRsZUtleVJlc3BvbnNlKToKKyAgICAgICAgKHdlYktp
dE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JTZXR1cENpcGhlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0
cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYmtpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHRU
cmFuc2Zvcm1JblBsYWNlKToKKyAgICAgICAgKHdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRl
Y3J5cHREZWZhdWx0U2V0dXBDaXBoZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5oOgor
CiAyMDE3LTA3LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
RHJvcCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNy
eXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9XZWJLaXRDbGVhcktleURlY3J5cHRvckdTdHJlYW1lci5jcHAKaW5kZXggYmY2
Yzc2Yjc0ZTgzMDllYjRjNGIyMjIxZTU4ZTg4MjVmMzRkZGRiNy4uYmY1NmQ5N2U5ZTE2YzQyYzZi
ZmYzYmY4OThjZTM0YjcwMzNjMDZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDbGVhcktleURlY3J5cHRvckdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9XZWJLaXRDbGVhcktleURlY3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTMxLDE1ICszMSwyMCBA
QAogCiAjZGVmaW5lIENMRUFSS0VZX1NJWkUgMTYKIAorc3RydWN0IEtleSB7CisgICAgR1JlZlB0
cjxHc3RCdWZmZXI+IGtleUlEOworICAgIEdSZWZQdHI8R3N0QnVmZmVyPiBrZXlWYWx1ZTsKK307
CisKICNkZWZpbmUgV0VCS0lUX01FRElBX0NLX0RFQ1JZUFRfR0VUX1BSSVZBVEUob2JqKSAoR19U
WVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBXRUJLSVRfVFlQRV9NRURJQV9DS19ERUNS
WVBULCBXZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdFByaXZhdGUpKQogc3RydWN0IF9XZWJLaXRN
ZWRpYUNsZWFyS2V5RGVjcnlwdFByaXZhdGUgewotICAgIEdSZWZQdHI8R3N0QnVmZmVyPiBrZXk7
CisgICAgVmVjdG9yPEtleT4ga2V5czsKICAgICBnY3J5X2NpcGhlcl9oZF90IGhhbmRsZTsKIH07
CiAKIHN0YXRpYyB2b2lkIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JGaW5hbGl6ZShHT2Jq
ZWN0Kik7CiBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvckhhbmRs
ZUtleVJlc3BvbnNlKFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHQqIHNlbGYsIEdz
dEV2ZW50Kik7Ci1zdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvclNl
dHVwQ2lwaGVyKFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHQqKTsKK3N0YXRpYyBn
Ym9vbGVhbiB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yU2V0dXBDaXBoZXIoV2ViS2l0TWVk
aWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCosIEdzdEJ1ZmZlcioga2lkQnVmZmVyKTsKIHN0YXRp
YyBnYm9vbGVhbiB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yRGVjcnlwdChXZWJLaXRNZWRp
YUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KiwgR3N0QnVmZmVyKiBpdiwgR3N0QnVmZmVyKiBzYW1w
bGUsIHVuc2lnbmVkIHN1YlNhbXBsZXNDb3VudCwgR3N0QnVmZmVyKiBzdWJTYW1wbGVzKTsKIHN0
YXRpYyB2b2lkIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JSZWxlYXNlQ2lwaGVyKFdlYktp
dE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHQqKTsKIApAQCAtMTIwLDIzICsxMjUsNjAgQEAg
c3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JIYW5kbGVLZXlSZXNw
b25zZShXZWJLaXRNZWRpYUNvbW1vbkUKICAgICBXZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdFBy
aXZhdGUqIHByaXYgPSBXRUJLSVRfTUVESUFfQ0tfREVDUllQVF9HRVRfUFJJVkFURShXRUJLSVRf
TUVESUFfQ0tfREVDUllQVChzZWxmKSk7CiAgICAgY29uc3QgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1
cmUgPSBnc3RfZXZlbnRfZ2V0X3N0cnVjdHVyZShldmVudCk7CiAKLSAgICBpZiAoIWdzdF9zdHJ1
Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiZHJtLWNpcGhlciIpKQorICAgIC8vIERlbWFuZCB0
aGUgYGRybS1jaXBoZXItY2xlYXJrZXlgIEdzdFN0cnVjdHVyZS4KKyAgICBpZiAoIWdzdF9zdHJ1
Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiZHJtLWNpcGhlci1jbGVhcmtleSIpKQorICAgICAg
ICByZXR1cm4gRkFMU0U7CisKKyAgICAvLyBSZXRyaWV2ZSB0aGUgYGtleS1pZHNgIEdTdHJlYW1l
ciB2YWx1ZSBsaXN0LgorICAgIGNvbnN0IEdWYWx1ZSoga2V5SURzTGlzdCA9IGdzdF9zdHJ1Y3R1
cmVfZ2V0X3ZhbHVlKHN0cnVjdHVyZSwgImtleS1pZHMiKTsKKyAgICBBU1NFUlQoa2V5SURzTGlz
dCAmJiBHU1RfVkFMVUVfSE9MRFNfTElTVChrZXlJRHNMaXN0KSk7CisgICAgdW5zaWduZWQga2V5
SURzTGlzdFNpemUgPSBnc3RfdmFsdWVfbGlzdF9nZXRfc2l6ZShrZXlJRHNMaXN0KTsKKworICAg
IC8vIFJldHJpZXZlIHRoZSBga2V5LXZhbHVlc2AgR1N0cmVhbWVyIHZhbHVlIGxpc3QuCisgICAg
Y29uc3QgR1ZhbHVlKiBrZXlWYWx1ZXNMaXN0ID0gZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUoc3Ry
dWN0dXJlLCAia2V5LXZhbHVlcyIpOworICAgIEFTU0VSVChrZXlWYWx1ZXNMaXN0ICYmIEdTVF9W
QUxVRV9IT0xEU19MSVNUKGtleVZhbHVlc0xpc3QpKTsKKyAgICB1bnNpZ25lZCBrZXlWYWx1ZXNM
aXN0U2l6ZSA9IGdzdF92YWx1ZV9saXN0X2dldF9zaXplKGtleVZhbHVlc0xpc3QpOworCisgICAg
Ly8gQmFpbCBpZiBzb21laG93IHRoZSB0d28gbGlzdHMgZG9uJ3QgbWF0Y2ggaW4gc2l6ZS4KKyAg
ICBpZiAoa2V5SURzTGlzdFNpemUgIT0ga2V5VmFsdWVzTGlzdFNpemUpCiAgICAgICAgIHJldHVy
biBGQUxTRTsKIAotICAgIGNvbnN0IEdWYWx1ZSogdmFsdWUgPSBnc3Rfc3RydWN0dXJlX2dldF92
YWx1ZShzdHJ1Y3R1cmUsICJrZXkiKTsKLSAgICBwcml2LT5rZXkuY2xlYXIoKTsKLSAgICBwcml2
LT5rZXkgPSBhZG9wdEdSZWYoZ3N0X2J1ZmZlcl9jb3B5KGdzdF92YWx1ZV9nZXRfYnVmZmVyKHZh
bHVlKSkpOworICAgIC8vIENsZWFyIG91dCB0aGUgcHJldmlvdXMgbGlzdCBvZiBrZXlzLgorICAg
IHByaXYtPmtleXMuY2xlYXIoKTsKKworICAgIC8vIEFwcGVuZCB0aGUgcmV0cmlldmVkIEdzdEJ1
ZmZlciBvYmplY3RzIGNvbnRhaW5pbmcgZWFjaCBrZXkncyBJRCBhbmQgdmFsdWUgdG8gdGhlIGxp
c3Qgb2YgS2V5IG9iamVjdHMuCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGtleUlEc0xp
c3RTaXplOyArK2kpIHsKKyAgICAgICAgR1JlZlB0cjxHc3RCdWZmZXI+IGtleUlEQnVmZmVyKGFk
b3B0R1JlZihnc3RfYnVmZmVyX2NvcHkoc3RhdGljX2Nhc3Q8R3N0QnVmZmVyKj4oZ192YWx1ZV9n
ZXRfYm94ZWQoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlKGtleUlEc0xpc3QsIGkpKSkpKSk7Cisg
ICAgICAgIEdSZWZQdHI8R3N0QnVmZmVyPiBrZXlWYWx1ZUJ1ZmZlcihhZG9wdEdSZWYoZ3N0X2J1
ZmZlcl9jb3B5KHN0YXRpY19jYXN0PEdzdEJ1ZmZlcio+KGdfdmFsdWVfZ2V0X2JveGVkKGdzdF92
YWx1ZV9saXN0X2dldF92YWx1ZShrZXlWYWx1ZXNMaXN0LCBpKSkpKSkpOworICAgICAgICBwcml2
LT5rZXlzLmFwcGVuZChLZXkgeyBXVEZNb3ZlKGtleUlEQnVmZmVyKSwgV1RGTW92ZShrZXlWYWx1
ZUJ1ZmZlcikgfSk7CisgICAgfQorCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKLXN0YXRpYyBnYm9v
bGVhbiB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yU2V0dXBDaXBoZXIoV2ViS2l0TWVkaWFD
b21tb25FbmNyeXB0aW9uRGVjcnlwdCogc2VsZikKK3N0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRp
YUNsZWFyS2V5RGVjcnlwdG9yU2V0dXBDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9u
RGVjcnlwdCogc2VsZiwgR3N0QnVmZmVyKiBraWRCdWZmZXIpCiB7CiAgICAgV2ViS2l0TWVkaWFD
bGVhcktleURlY3J5cHRQcml2YXRlKiBwcml2ID0gV0VCS0lUX01FRElBX0NLX0RFQ1JZUFRfR0VU
X1BSSVZBVEUoV0VCS0lUX01FRElBX0NLX0RFQ1JZUFQoc2VsZikpOwogICAgIGdjcnlfZXJyb3Jf
dCBlcnJvcjsKIAotICAgIEFTU0VSVChwcml2LT5rZXkpOwotICAgIGlmICghcHJpdi0+a2V5KSB7
Ci0gICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkRlY3J5cHRpb24ga2V5IG5vdCBwcm92
aWRlZCIpOworICAgIEdSZWZQdHI8R3N0QnVmZmVyPiBrZXlCdWZmZXI7CisgICAgeworICAgICAg
ICBHc3RNYXBJbmZvIGtpZEJ1ZmZlck1hcDsKKyAgICAgICAgaWYgKCFnc3RfYnVmZmVyX21hcChr
aWRCdWZmZXIsICZraWRCdWZmZXJNYXAsIEdTVF9NQVBfUkVBRCkpIHsKKyAgICAgICAgICAgIEdT
VF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkZhaWxlZCB0byBtYXAga2V5IElEIGJ1ZmZlciIpOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChhdXRvJiBr
ZXkgOiBwcml2LT5rZXlzKSB7CisgICAgICAgICAgICBpZiAoIWdzdF9idWZmZXJfbWVtY21wKGtl
eS5rZXlJRC5nZXQoKSwgMCwga2lkQnVmZmVyTWFwLmRhdGEsIGtpZEJ1ZmZlck1hcC5zaXplKSkg
eworICAgICAgICAgICAgICAgIGtleUJ1ZmZlciA9IGtleS5rZXlWYWx1ZTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICgh
a2V5QnVmZmVyKSB7CisgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkZhaWxlZCB0byBm
aW5kIGFuIGFwcHJvcHJpYXRlIGtleSBidWZmZXIiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIApAQCAtMTQ3LDE0ICsxODksMTQgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlh
Q2xlYXJLZXlEZWNyeXB0b3JTZXR1cENpcGhlcihXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHQKICAg
ICB9CiAKICAgICBHc3RNYXBJbmZvIGtleU1hcDsKLSAgICBpZiAoIWdzdF9idWZmZXJfbWFwKHBy
aXYtPmtleS5nZXQoKSwgJmtleU1hcCwgR1NUX01BUF9SRUFEKSkgeworICAgIGlmICghZ3N0X2J1
ZmZlcl9tYXAoa2V5QnVmZmVyLmdldCgpLCAma2V5TWFwLCBHU1RfTUFQX1JFQUQpKSB7CiAgICAg
ICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkZhaWxlZCB0byBtYXAgZGVjcnlwdGlvbiBrZXki
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIEFTU0VSVChrZXlNYXAuc2l6
ZSA9PSBDTEVBUktFWV9TSVpFKTsKICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX3NldGtleShwcml2
LT5oYW5kbGUsIGtleU1hcC5kYXRhLCBrZXlNYXAuc2l6ZSk7Ci0gICAgZ3N0X2J1ZmZlcl91bm1h
cChwcml2LT5rZXkuZ2V0KCksICZrZXlNYXApOworICAgIGdzdF9idWZmZXJfdW5tYXAoa2V5QnVm
ZmVyLmdldCgpLCAma2V5TWFwKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgR1NUX0VSUk9S
X09CSkVDVChzZWxmLCAiZ2NyeV9jaXBoZXJfc2V0a2V5IGZhaWxlZDogJXMiLCBncGdfc3RyZXJy
b3IoZXJyb3IpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0
aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1l
ci5jcHAKaW5kZXggMjVlYjcxOTk3YTdjZWNkODE1NzU5MDkzMDZiNGY4OWIxMDYxOWU1Yi4uZjZi
YTYyOGZhZDAyYjk3YWZmMDgxNDZhZTliYzQ0OTNkZmU5OGVjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNy
eXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JH
U3RyZWFtZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyBHc3RDYXBzKiB3ZWJraXRNZWRp
YUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0VHJhbnNmb3JtQ2FwcyhHc3RCYXNlVHJhbnNmb3JtCiBz
dGF0aWMgR3N0Rmxvd1JldHVybiB3ZWJraXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0VHJh
bnNmb3JtSW5QbGFjZShHc3RCYXNlVHJhbnNmb3JtKiwgR3N0QnVmZmVyKik7CiBzdGF0aWMgZ2Jv
b2xlYW4gd2Via2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdFNpbmtFdmVudEhhbmRsZXIo
R3N0QmFzZVRyYW5zZm9ybSosIEdzdEV2ZW50Kik7CiAKLXN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRN
ZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0RGVmYXVsdFNldHVwQ2lwaGVyKFdlYktpdE1lZGlh
Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHQqKTsKK3N0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRpYUNv
bW1vbkVuY3J5cHRpb25EZWNyeXB0RGVmYXVsdFNldHVwQ2lwaGVyKFdlYktpdE1lZGlhQ29tbW9u
RW5jcnlwdGlvbkRlY3J5cHQqLCBHc3RCdWZmZXIqKTsKIHN0YXRpYyB2b2lkIHdlYktpdE1lZGlh
Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHREZWZhdWx0UmVsZWFzZUNpcGhlcihXZWJLaXRNZWRpYUNv
bW1vbkVuY3J5cHRpb25EZWNyeXB0Kik7CiAKIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMod2Vi
a2l0X21lZGlhX2NvbW1vbl9lbmNyeXB0aW9uX2RlY3J5cHRfZGVidWdfY2F0ZWdvcnkpOwpAQCAt
MjUzLDggKzI1MywxNiBAQCBzdGF0aWMgR3N0Rmxvd1JldHVybiB3ZWJraXRNZWRpYUNvbW1vbkVu
Y3J5cHRpb25EZWNyeXB0VHJhbnNmb3JtSW5QbGFjZShHc3RCYXNlVAogICAgICAgICBzdWJTYW1w
bGVzQnVmZmVyID0gZ3N0X3ZhbHVlX2dldF9idWZmZXIodmFsdWUpOwogICAgIH0KIAorICAgIHZh
bHVlID0gZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUocHJvdGVjdGlvbk1ldGEtPmluZm8sICJraWQi
KTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkZh
aWxlZCB0byBnZXQga2V5IElEIGZvciBzYW1wbGUiKTsKKyAgICAgICAgZ3N0X2J1ZmZlcl9yZW1v
dmVfbWV0YShidWZmZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8R3N0TWV0YSo+KHByb3RlY3Rpb25NZXRh
KSk7CisgICAgICAgIHJldHVybiBHU1RfRkxPV19OT1RfU1VQUE9SVEVEOworICAgIH0KKworICAg
IEdzdEJ1ZmZlcioga2lkQnVmZmVyID0gZ3N0X3ZhbHVlX2dldF9idWZmZXIodmFsdWUpOwogICAg
IFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHRDbGFzcyoga2xhc3MgPSBXRUJLSVRf
TUVESUFfQ0VOQ19ERUNSWVBUX0dFVF9DTEFTUyhzZWxmKTsKLSAgICBpZiAoIWtsYXNzLT5zZXR1
cENpcGhlcihzZWxmKSkgeworICAgIGlmICgha2xhc3MtPnNldHVwQ2lwaGVyKHNlbGYsIGtpZEJ1
ZmZlcikpIHsKICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRmFpbGVkIHRvIGNvbmZp
Z3VyZSBjaXBoZXIiKTsKICAgICAgICAgZ3N0X2J1ZmZlcl9yZW1vdmVfbWV0YShidWZmZXIsIHJl
aW50ZXJwcmV0X2Nhc3Q8R3N0TWV0YSo+KHByb3RlY3Rpb25NZXRhKSk7CiAgICAgICAgIHJldHVy
biBHU1RfRkxPV19OT1RfU1VQUE9SVEVEOwpAQCAtMzQ5LDcgKzM1Nyw3IEBAIHN0YXRpYyBHc3RT
dGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JDaGFu
Z2VTdGF0ZShHc3RFCiB9CiAKIAotc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ29tbW9uRW5j
cnlwdGlvbkRlY3J5cHREZWZhdWx0U2V0dXBDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0
aW9uRGVjcnlwdCopCitzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9u
RGVjcnlwdERlZmF1bHRTZXR1cENpcGhlcihXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNy
eXB0KiwgR3N0QnVmZmVyKikKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0
cmVhbWVyLmgKaW5kZXggMGE2NDczYzJiZDdiNzIxYmQ2ZjJhZWYyYzYzNTU4YWY5NDNhZjM5Yy4u
NjZlNjQ4MjlhZDA5ZGUxZWE3NTM1MWE0MmRkNDEwY2JmMWI0ZGUxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25F
bmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9y
R1N0cmVhbWVyLmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IF9XZWJLaXRNZWRpYUNvbW1vbkVu
Y3J5cHRpb25EZWNyeXB0Q2xhc3MgewogCiAgICAgY29uc3QgY2hhciogcHJvdGVjdGlvblN5c3Rl
bUlkOwogICAgIGdib29sZWFuICgqaGFuZGxlS2V5UmVzcG9uc2UpKFdlYktpdE1lZGlhQ29tbW9u
RW5jcnlwdGlvbkRlY3J5cHQqLCBHc3RFdmVudCogZXZlbnQpOwotICAgIGdib29sZWFuICgqc2V0
dXBDaXBoZXIpKFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHQqKTsKKyAgICBnYm9v
bGVhbiAoKnNldHVwQ2lwaGVyKShXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0Kiwg
R3N0QnVmZmVyKiBraWRCdWZmZXIpOwogICAgIGdib29sZWFuICgqZGVjcnlwdCkoV2ViS2l0TWVk
aWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCosIEdzdEJ1ZmZlciogaXZCdWZmZXIsIEdzdEJ1ZmZl
ciogYnVmZmVyLCB1bnNpZ25lZCBzdWJTYW1wbGVzQ291bnQsIEdzdEJ1ZmZlciogc3ViU2FtcGxl
c0J1ZmZlcik7CiAgICAgdm9pZCAoKnJlbGVhc2VDaXBoZXIpKFdlYktpdE1lZGlhQ29tbW9uRW5j
cnlwdGlvbkRlY3J5cHQqKTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316441</attachid>
            <date>2017-07-26 03:35:49 -0700</date>
            <delta_ts>2017-07-26 07:02:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174779-20170726123548.patch</filename>
            <type>text/plain</type>
            <size>11043</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQyODQ5YTNkMGRiMGQ3
MzhmZGZmNTBjMTI5ODE2NDExMzQyMzNiNC4uNzBlYWUzZDNjY2FmOWZhMGFlYWVlNjg1MzI3OWMy
MTNmNTgyMjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDE3LTA3LTI2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbRU1FXVtHU3RyZWFt
ZXJdIE11bHRpLWtleSBzdXBwb3J0IGluIHRoZSBHU3RyZWFtZXIgQ2xlYXJLZXkgZGVjcnlwdG9y
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ3NzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiB0aGUg
Q0VOQyBkZWNyeXB0b3IsIHRoZSBrZXkgSUQgdmFsdWUgaXMgcmV0cmlldmVkIGZyb20gdGhlIGlu
Zm8gc3RydWN0dXJlCisgICAgICAgIG9uIHRoZSBHc3RQcm90ZWN0aW9uTWV0YSBvYmplY3QuIEdz
dEJ1ZmZlciBmb3IgdGhhdCB2YWx1ZSBpcyByZXRyaWV2ZWQgYW5kCisgICAgICAgIHBhc3NlZCB0
byB0aGUgc2V0dXBDaXBoZXIoKSBmdW5jdGlvbi4KKworICAgICAgICBJbiB0aGUgQ2xlYXJLZXkg
ZGVjcnlwdG9yICh3aGljaCBleHRlbmRzIHRoZSBDRU5DIGRlY3J5cHRvciksIHRoZSBzaW5nbGUK
KyAgICAgICAgR3N0QnVmZmVyIG9iamVjdCBvbiB0aGUgcHJpdmF0ZSBpbnN0YW5jZSB0aGF0IGhv
bGRzIHRoZSBrZXkgdmFsdWUgaXMgcmVwbGFjZWQKKyAgICAgICAgd2l0aCBhIFZlY3RvciBvYmpl
Y3QgdGhhdCBob2xkcyBwYWlycyBvZiBrZXkgSUQgYW5kIHZhbHVlIEdzdEJ1ZmZlcnMuIEluIHRo
ZQorICAgICAgICBoYW5kbGVLZXlSZXNwb25zZSgpIGltcGxlbWVudGF0aW9uIHRoYXQgVmVjdG9y
IGlzIGVtcHRpZWQgYW5kIHRoZW4gcmVmaWxsZWQKKyAgICAgICAgd2l0aCBrZXkgSUQgYW5kIHZh
bHVlIHBhaXJzIHRoYXQgYXJlIHBhc3NlZCBpbiB0aHJvdWdoIHRoZSBkcm0tY2lwaGVyLWNsZWFy
a2V5CisgICAgICAgIHN0cnVjdHVyZSB0aGF0J3MgYXR0YWNoZWQgdG8gdGhlIEdzdEV2ZW50IHRo
YXQgc2lnbmFsbGVkIG5ldyBrZXkgaW5mb3JtYXRpb24uCisKKyAgICAgICAgSW4gdGhlIENsZWFy
S2V5IGRlY3J5cHRvcidzIHNldHVwQ2lwaGVyKCkgaW1wbGVtZW50YXRpb24gdGhlIHBhc3NlZC1p
biBrZXkgSUQKKyAgICAgICAgYnVmZmVyIGlzIHVzZWQgdG8gZmluZCBhIG1hdGNoaW5nIGtleSBJ
RCBhbmQgdmFsdWUgcGFpciBzdG9yZWQgb24gdGhlIHByaXZhdGUKKyAgICAgICAgaW5zdGFuY2Uu
IElmIG5vdCBmb3VuZCwgYW4gZXJyb3IgaXMgdGhyb3duLiBJZiBmb3VuZCwgdGhlIG1hdGNoaW5n
IGtleSB2YWx1ZQorICAgICAgICBpcyB1c2VkIGZvciBkZWNyeXB0aW9uLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDbGVhcktleURlY3J5cHRvckdT
dHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9ySGFuZGxl
S2V5UmVzcG9uc2UpOgorICAgICAgICAod2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvclNldHVw
Q2lwaGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktp
dENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Via2l0
TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdFRyYW5zZm9ybUluUGxhY2UpOgorICAgICAgICAo
d2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdERlZmF1bHRTZXR1cENpcGhlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNy
eXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmg6CisKKzIwMTctMDctMjYgIFphbiBEb2JlcnNlayAg
PHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCiAgICAgICAgIFtXUEVdIFdlYkdMMiBzdXBwb3J0CiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQyNDkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9XZWJLaXRDbGVhcktleURlY3J5cHRvckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0
cmVhbWVyLmNwcAppbmRleCBiZjZjNzZiNzRlODMwOWViNGM0YjIyMjFlNThlODgyNWYzNGRkZGI3
Li5iZjU2ZDk3ZTllMTZjNDJjNmJmZjNiZjg5OGNlMzRiNzAzM2MwNmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFy
S2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNw
cApAQCAtMzEsMTUgKzMxLDIwIEBACiAKICNkZWZpbmUgQ0xFQVJLRVlfU0laRSAxNgogCitzdHJ1
Y3QgS2V5IHsKKyAgICBHUmVmUHRyPEdzdEJ1ZmZlcj4ga2V5SUQ7CisgICAgR1JlZlB0cjxHc3RC
dWZmZXI+IGtleVZhbHVlOworfTsKKwogI2RlZmluZSBXRUJLSVRfTUVESUFfQ0tfREVDUllQVF9H
RVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJ
VF9UWVBFX01FRElBX0NLX0RFQ1JZUFQsIFdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0UHJpdmF0
ZSkpCiBzdHJ1Y3QgX1dlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0UHJpdmF0ZSB7Ci0gICAgR1Jl
ZlB0cjxHc3RCdWZmZXI+IGtleTsKKyAgICBWZWN0b3I8S2V5PiBrZXlzOwogICAgIGdjcnlfY2lw
aGVyX2hkX3QgaGFuZGxlOwogfTsKIAogc3RhdGljIHZvaWQgd2ViS2l0TWVkaWFDbGVhcktleURl
Y3J5cHRvckZpbmFsaXplKEdPYmplY3QqKTsKIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRpYUNs
ZWFyS2V5RGVjcnlwdG9ySGFuZGxlS2V5UmVzcG9uc2UoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0
aW9uRGVjcnlwdCogc2VsZiwgR3N0RXZlbnQqKTsKLXN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRp
YUNsZWFyS2V5RGVjcnlwdG9yU2V0dXBDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9u
RGVjcnlwdCopOworc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JT
ZXR1cENpcGhlcihXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KiwgR3N0QnVmZmVy
KiBraWRCdWZmZXIpOwogc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0
b3JEZWNyeXB0KFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHQqLCBHc3RCdWZmZXIq
IGl2LCBHc3RCdWZmZXIqIHNhbXBsZSwgdW5zaWduZWQgc3ViU2FtcGxlc0NvdW50LCBHc3RCdWZm
ZXIqIHN1YlNhbXBsZXMpOwogc3RhdGljIHZvaWQgd2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRv
clJlbGVhc2VDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCopOwogCkBA
IC0xMjAsMjMgKzEyNSw2MCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFDbGVhcktleURl
Y3J5cHRvckhhbmRsZUtleVJlc3BvbnNlKFdlYktpdE1lZGlhQ29tbW9uRQogICAgIFdlYktpdE1l
ZGlhQ2xlYXJLZXlEZWNyeXB0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9NRURJQV9DS19ERUNSWVBU
X0dFVF9QUklWQVRFKFdFQktJVF9NRURJQV9DS19ERUNSWVBUKHNlbGYpKTsKICAgICBjb25zdCBH
c3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdzdF9ldmVudF9nZXRfc3RydWN0dXJlKGV2ZW50KTsK
IAotICAgIGlmICghZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJkcm0tY2lwaGVy
IikpCisgICAgLy8gRGVtYW5kIHRoZSBgZHJtLWNpcGhlci1jbGVhcmtleWAgR3N0U3RydWN0dXJl
LgorICAgIGlmICghZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJkcm0tY2lwaGVy
LWNsZWFya2V5IikpCisgICAgICAgIHJldHVybiBGQUxTRTsKKworICAgIC8vIFJldHJpZXZlIHRo
ZSBga2V5LWlkc2AgR1N0cmVhbWVyIHZhbHVlIGxpc3QuCisgICAgY29uc3QgR1ZhbHVlKiBrZXlJ
RHNMaXN0ID0gZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUoc3RydWN0dXJlLCAia2V5LWlkcyIpOwor
ICAgIEFTU0VSVChrZXlJRHNMaXN0ICYmIEdTVF9WQUxVRV9IT0xEU19MSVNUKGtleUlEc0xpc3Qp
KTsKKyAgICB1bnNpZ25lZCBrZXlJRHNMaXN0U2l6ZSA9IGdzdF92YWx1ZV9saXN0X2dldF9zaXpl
KGtleUlEc0xpc3QpOworCisgICAgLy8gUmV0cmlldmUgdGhlIGBrZXktdmFsdWVzYCBHU3RyZWFt
ZXIgdmFsdWUgbGlzdC4KKyAgICBjb25zdCBHVmFsdWUqIGtleVZhbHVlc0xpc3QgPSBnc3Rfc3Ry
dWN0dXJlX2dldF92YWx1ZShzdHJ1Y3R1cmUsICJrZXktdmFsdWVzIik7CisgICAgQVNTRVJUKGtl
eVZhbHVlc0xpc3QgJiYgR1NUX1ZBTFVFX0hPTERTX0xJU1Qoa2V5VmFsdWVzTGlzdCkpOworICAg
IHVuc2lnbmVkIGtleVZhbHVlc0xpc3RTaXplID0gZ3N0X3ZhbHVlX2xpc3RfZ2V0X3NpemUoa2V5
VmFsdWVzTGlzdCk7CisKKyAgICAvLyBCYWlsIGlmIHNvbWVob3cgdGhlIHR3byBsaXN0cyBkb24n
dCBtYXRjaCBpbiBzaXplLgorICAgIGlmIChrZXlJRHNMaXN0U2l6ZSAhPSBrZXlWYWx1ZXNMaXN0
U2l6ZSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwogCi0gICAgY29uc3QgR1ZhbHVlKiB2YWx1ZSA9
IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlKHN0cnVjdHVyZSwgImtleSIpOwotICAgIHByaXYtPmtl
eS5jbGVhcigpOwotICAgIHByaXYtPmtleSA9IGFkb3B0R1JlZihnc3RfYnVmZmVyX2NvcHkoZ3N0
X3ZhbHVlX2dldF9idWZmZXIodmFsdWUpKSk7CisgICAgLy8gQ2xlYXIgb3V0IHRoZSBwcmV2aW91
cyBsaXN0IG9mIGtleXMuCisgICAgcHJpdi0+a2V5cy5jbGVhcigpOworCisgICAgLy8gQXBwZW5k
IHRoZSByZXRyaWV2ZWQgR3N0QnVmZmVyIG9iamVjdHMgY29udGFpbmluZyBlYWNoIGtleSdzIElE
IGFuZCB2YWx1ZSB0byB0aGUgbGlzdCBvZiBLZXkgb2JqZWN0cy4KKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwga2V5SURzTGlzdFNpemU7ICsraSkgeworICAgICAgICBHUmVmUHRyPEdzdEJ1
ZmZlcj4ga2V5SURCdWZmZXIoYWRvcHRHUmVmKGdzdF9idWZmZXJfY29weShzdGF0aWNfY2FzdDxH
c3RCdWZmZXIqPihnX3ZhbHVlX2dldF9ib3hlZChnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUoa2V5
SURzTGlzdCwgaSkpKSkpKTsKKyAgICAgICAgR1JlZlB0cjxHc3RCdWZmZXI+IGtleVZhbHVlQnVm
ZmVyKGFkb3B0R1JlZihnc3RfYnVmZmVyX2NvcHkoc3RhdGljX2Nhc3Q8R3N0QnVmZmVyKj4oZ192
YWx1ZV9nZXRfYm94ZWQoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlKGtleVZhbHVlc0xpc3QsIGkp
KSkpKSk7CisgICAgICAgIHByaXYtPmtleXMuYXBwZW5kKEtleSB7IFdURk1vdmUoa2V5SURCdWZm
ZXIpLCBXVEZNb3ZlKGtleVZhbHVlQnVmZmVyKSB9KTsKKyAgICB9CisKICAgICByZXR1cm4gVFJV
RTsKIH0KIAotc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JTZXR1
cENpcGhlcihXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KiBzZWxmKQorc3RhdGlj
IGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JTZXR1cENpcGhlcihXZWJLaXRN
ZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KiBzZWxmLCBHc3RCdWZmZXIqIGtpZEJ1ZmZlcikK
IHsKICAgICBXZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdFByaXZhdGUqIHByaXYgPSBXRUJLSVRf
TUVESUFfQ0tfREVDUllQVF9HRVRfUFJJVkFURShXRUJLSVRfTUVESUFfQ0tfREVDUllQVChzZWxm
KSk7CiAgICAgZ2NyeV9lcnJvcl90IGVycm9yOwogCi0gICAgQVNTRVJUKHByaXYtPmtleSk7Ci0g
ICAgaWYgKCFwcml2LT5rZXkpIHsKLSAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRGVj
cnlwdGlvbiBrZXkgbm90IHByb3ZpZGVkIik7CisgICAgR1JlZlB0cjxHc3RCdWZmZXI+IGtleUJ1
ZmZlcjsKKyAgICB7CisgICAgICAgIEdzdE1hcEluZm8ga2lkQnVmZmVyTWFwOworICAgICAgICBp
ZiAoIWdzdF9idWZmZXJfbWFwKGtpZEJ1ZmZlciwgJmtpZEJ1ZmZlck1hcCwgR1NUX01BUF9SRUFE
KSkgeworICAgICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRmFpbGVkIHRvIG1hcCBr
ZXkgSUQgYnVmZmVyIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKwor
ICAgICAgICBmb3IgKGF1dG8mIGtleSA6IHByaXYtPmtleXMpIHsKKyAgICAgICAgICAgIGlmICgh
Z3N0X2J1ZmZlcl9tZW1jbXAoa2V5LmtleUlELmdldCgpLCAwLCBraWRCdWZmZXJNYXAuZGF0YSwg
a2lkQnVmZmVyTWFwLnNpemUpKSB7CisgICAgICAgICAgICAgICAga2V5QnVmZmVyID0ga2V5Lmtl
eVZhbHVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQorCisgICAgaWYgKCFrZXlCdWZmZXIpIHsKKyAgICAgICAgR1NUX0VSUk9SX09CSkVD
VChzZWxmLCAiRmFpbGVkIHRvIGZpbmQgYW4gYXBwcm9wcmlhdGUga2V5IGJ1ZmZlciIpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xNDcsMTQgKzE4OSwxNCBAQCBzdGF0aWMg
Z2Jvb2xlYW4gd2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvclNldHVwQ2lwaGVyKFdlYktpdE1l
ZGlhQ29tbW9uRW5jcnlwdAogICAgIH0KIAogICAgIEdzdE1hcEluZm8ga2V5TWFwOwotICAgIGlm
ICghZ3N0X2J1ZmZlcl9tYXAocHJpdi0+a2V5LmdldCgpLCAma2V5TWFwLCBHU1RfTUFQX1JFQUQp
KSB7CisgICAgaWYgKCFnc3RfYnVmZmVyX21hcChrZXlCdWZmZXIuZ2V0KCksICZrZXlNYXAsIEdT
VF9NQVBfUkVBRCkpIHsKICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRmFpbGVkIHRv
IG1hcCBkZWNyeXB0aW9uIGtleSIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAg
ICAgQVNTRVJUKGtleU1hcC5zaXplID09IENMRUFSS0VZX1NJWkUpOwogICAgIGVycm9yID0gZ2Ny
eV9jaXBoZXJfc2V0a2V5KHByaXYtPmhhbmRsZSwga2V5TWFwLmRhdGEsIGtleU1hcC5zaXplKTsK
LSAgICBnc3RfYnVmZmVyX3VubWFwKHByaXYtPmtleS5nZXQoKSwgJmtleU1hcCk7CisgICAgZ3N0
X2J1ZmZlcl91bm1hcChrZXlCdWZmZXIuZ2V0KCksICZrZXlNYXApOwogICAgIGlmIChlcnJvcikg
ewogICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNlbGYsICJnY3J5X2NpcGhlcl9zZXRrZXkgZmFp
bGVkOiAlcyIsIGdwZ19zdHJlcnJvcihlcnJvcikpOwogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1l
L1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0
aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCAyNWViNzE5OTdhN2NlY2Q4MTU3NTkwOTMw
NmI0Zjg5YjEwNjE5ZTViLi5mNmJhNjI4ZmFkMDJiOTdhZmYwODE0NmFlOWJjNDQ5M2RmZTk4ZWNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RhdGlj
IEdzdENhcHMqIHdlYmtpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHRUcmFuc2Zvcm1DYXBz
KEdzdEJhc2VUcmFuc2Zvcm0KIHN0YXRpYyBHc3RGbG93UmV0dXJuIHdlYmtpdE1lZGlhQ29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRUcmFuc2Zvcm1JblBsYWNlKEdzdEJhc2VUcmFuc2Zvcm0qLCBHc3RC
dWZmZXIqKTsKIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNy
eXB0U2lua0V2ZW50SGFuZGxlcihHc3RCYXNlVHJhbnNmb3JtKiwgR3N0RXZlbnQqKTsKIAotc3Rh
dGljIGdib29sZWFuIHdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHREZWZhdWx0U2V0
dXBDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCopOworc3RhdGljIGdi
b29sZWFuIHdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHREZWZhdWx0U2V0dXBDaXBo
ZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCosIEdzdEJ1ZmZlciopOwogc3Rh
dGljIHZvaWQgd2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdERlZmF1bHRSZWxlYXNl
Q2lwaGVyKFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHQqKTsKIAogR1NUX0RFQlVH
X0NBVEVHT1JZX1NUQVRJQyh3ZWJraXRfbWVkaWFfY29tbW9uX2VuY3J5cHRpb25fZGVjcnlwdF9k
ZWJ1Z19jYXRlZ29yeSk7CkBAIC0yNTMsOCArMjUzLDE2IEBAIHN0YXRpYyBHc3RGbG93UmV0dXJu
IHdlYmtpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHRUcmFuc2Zvcm1JblBsYWNlKEdzdEJh
c2VUCiAgICAgICAgIHN1YlNhbXBsZXNCdWZmZXIgPSBnc3RfdmFsdWVfZ2V0X2J1ZmZlcih2YWx1
ZSk7CiAgICAgfQogCisgICAgdmFsdWUgPSBnc3Rfc3RydWN0dXJlX2dldF92YWx1ZShwcm90ZWN0
aW9uTWV0YS0+aW5mbywgImtpZCIpOworICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgR1NUX0VS
Uk9SX09CSkVDVChzZWxmLCAiRmFpbGVkIHRvIGdldCBrZXkgSUQgZm9yIHNhbXBsZSIpOworICAg
ICAgICBnc3RfYnVmZmVyX3JlbW92ZV9tZXRhKGJ1ZmZlciwgcmVpbnRlcnByZXRfY2FzdDxHc3RN
ZXRhKj4ocHJvdGVjdGlvbk1ldGEpKTsKKyAgICAgICAgcmV0dXJuIEdTVF9GTE9XX05PVF9TVVBQ
T1JURUQ7CisgICAgfQorCisgICAgR3N0QnVmZmVyKiBraWRCdWZmZXIgPSBnc3RfdmFsdWVfZ2V0
X2J1ZmZlcih2YWx1ZSk7CiAgICAgV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdENs
YXNzKiBrbGFzcyA9IFdFQktJVF9NRURJQV9DRU5DX0RFQ1JZUFRfR0VUX0NMQVNTKHNlbGYpOwot
ICAgIGlmICgha2xhc3MtPnNldHVwQ2lwaGVyKHNlbGYpKSB7CisgICAgaWYgKCFrbGFzcy0+c2V0
dXBDaXBoZXIoc2VsZiwga2lkQnVmZmVyKSkgewogICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNl
bGYsICJGYWlsZWQgdG8gY29uZmlndXJlIGNpcGhlciIpOwogICAgICAgICBnc3RfYnVmZmVyX3Jl
bW92ZV9tZXRhKGJ1ZmZlciwgcmVpbnRlcnByZXRfY2FzdDxHc3RNZXRhKj4ocHJvdGVjdGlvbk1l
dGEpKTsKICAgICAgICAgcmV0dXJuIEdTVF9GTE9XX05PVF9TVVBQT1JURUQ7CkBAIC0zNDksNyAr
MzU3LDcgQEAgc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHdlYktpdE1lZGlhQ29tbW9uRW5j
cnlwdGlvbkRlY3J5cHRvckNoYW5nZVN0YXRlKEdzdEUKIH0KIAogCi1zdGF0aWMgZ2Jvb2xlYW4g
d2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdERlZmF1bHRTZXR1cENpcGhlcihXZWJL
aXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KikKK3N0YXRpYyBnYm9vbGVhbiB3ZWJLaXRN
ZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0RGVmYXVsdFNldHVwQ2lwaGVyKFdlYktpdE1lZGlh
Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHQqLCBHc3RCdWZmZXIqKQogewogICAgIHJldHVybiB0cnVl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVu
Y3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuaAppbmRleCAwYTY0NzNjMmJkN2I3MjFiZDZmMmFl
ZjJjNjM1NThhZjk0M2FmMzljLi42NmU2NDgyOWFkMDlkZTFlYTc1MzUxYTQyZGQ0MTBjYmYxYjRk
ZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1v
bkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuaApAQCAtNTQsNyArNTQsNyBAQCBzdHJ1Y3Qg
X1dlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHRDbGFzcyB7CiAKICAgICBjb25zdCBj
aGFyKiBwcm90ZWN0aW9uU3lzdGVtSWQ7CiAgICAgZ2Jvb2xlYW4gKCpoYW5kbGVLZXlSZXNwb25z
ZSkoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCosIEdzdEV2ZW50KiBldmVudCk7
Ci0gICAgZ2Jvb2xlYW4gKCpzZXR1cENpcGhlcikoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9u
RGVjcnlwdCopOworICAgIGdib29sZWFuICgqc2V0dXBDaXBoZXIpKFdlYktpdE1lZGlhQ29tbW9u
RW5jcnlwdGlvbkRlY3J5cHQqLCBHc3RCdWZmZXIqIGtpZEJ1ZmZlcik7CiAgICAgZ2Jvb2xlYW4g
KCpkZWNyeXB0KShXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KiwgR3N0QnVmZmVy
KiBpdkJ1ZmZlciwgR3N0QnVmZmVyKiBidWZmZXIsIHVuc2lnbmVkIHN1YlNhbXBsZXNDb3VudCwg
R3N0QnVmZmVyKiBzdWJTYW1wbGVzQnVmZmVyKTsKICAgICB2b2lkICgqcmVsZWFzZUNpcGhlciko
V2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCopOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316446</attachid>
            <date>2017-07-26 07:02:38 -0700</date>
            <delta_ts>2017-07-26 07:33:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174779-20170726160236.patch</filename>
            <type>text/plain</type>
            <size>10998</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQyODQ5YTNkMGRiMGQ3
MzhmZGZmNTBjMTI5ODE2NDExMzQyMzNiNC4uNzBlYWUzZDNjY2FmOWZhMGFlYWVlNjg1MzI3OWMy
MTNmNTgyMjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDE3LTA3LTI2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbRU1FXVtHU3RyZWFt
ZXJdIE11bHRpLWtleSBzdXBwb3J0IGluIHRoZSBHU3RyZWFtZXIgQ2xlYXJLZXkgZGVjcnlwdG9y
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ3NzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiB0aGUg
Q0VOQyBkZWNyeXB0b3IsIHRoZSBrZXkgSUQgdmFsdWUgaXMgcmV0cmlldmVkIGZyb20gdGhlIGlu
Zm8gc3RydWN0dXJlCisgICAgICAgIG9uIHRoZSBHc3RQcm90ZWN0aW9uTWV0YSBvYmplY3QuIEdz
dEJ1ZmZlciBmb3IgdGhhdCB2YWx1ZSBpcyByZXRyaWV2ZWQgYW5kCisgICAgICAgIHBhc3NlZCB0
byB0aGUgc2V0dXBDaXBoZXIoKSBmdW5jdGlvbi4KKworICAgICAgICBJbiB0aGUgQ2xlYXJLZXkg
ZGVjcnlwdG9yICh3aGljaCBleHRlbmRzIHRoZSBDRU5DIGRlY3J5cHRvciksIHRoZSBzaW5nbGUK
KyAgICAgICAgR3N0QnVmZmVyIG9iamVjdCBvbiB0aGUgcHJpdmF0ZSBpbnN0YW5jZSB0aGF0IGhv
bGRzIHRoZSBrZXkgdmFsdWUgaXMgcmVwbGFjZWQKKyAgICAgICAgd2l0aCBhIFZlY3RvciBvYmpl
Y3QgdGhhdCBob2xkcyBwYWlycyBvZiBrZXkgSUQgYW5kIHZhbHVlIEdzdEJ1ZmZlcnMuIEluIHRo
ZQorICAgICAgICBoYW5kbGVLZXlSZXNwb25zZSgpIGltcGxlbWVudGF0aW9uIHRoYXQgVmVjdG9y
IGlzIGVtcHRpZWQgYW5kIHRoZW4gcmVmaWxsZWQKKyAgICAgICAgd2l0aCBrZXkgSUQgYW5kIHZh
bHVlIHBhaXJzIHRoYXQgYXJlIHBhc3NlZCBpbiB0aHJvdWdoIHRoZSBkcm0tY2lwaGVyLWNsZWFy
a2V5CisgICAgICAgIHN0cnVjdHVyZSB0aGF0J3MgYXR0YWNoZWQgdG8gdGhlIEdzdEV2ZW50IHRo
YXQgc2lnbmFsbGVkIG5ldyBrZXkgaW5mb3JtYXRpb24uCisKKyAgICAgICAgSW4gdGhlIENsZWFy
S2V5IGRlY3J5cHRvcidzIHNldHVwQ2lwaGVyKCkgaW1wbGVtZW50YXRpb24gdGhlIHBhc3NlZC1p
biBrZXkgSUQKKyAgICAgICAgYnVmZmVyIGlzIHVzZWQgdG8gZmluZCBhIG1hdGNoaW5nIGtleSBJ
RCBhbmQgdmFsdWUgcGFpciBzdG9yZWQgb24gdGhlIHByaXZhdGUKKyAgICAgICAgaW5zdGFuY2Uu
IElmIG5vdCBmb3VuZCwgYW4gZXJyb3IgaXMgdGhyb3duLiBJZiBmb3VuZCwgdGhlIG1hdGNoaW5n
IGtleSB2YWx1ZQorICAgICAgICBpcyB1c2VkIGZvciBkZWNyeXB0aW9uLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDbGVhcktleURlY3J5cHRvckdT
dHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9ySGFuZGxl
S2V5UmVzcG9uc2UpOgorICAgICAgICAod2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvclNldHVw
Q2lwaGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktp
dENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Via2l0
TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdFRyYW5zZm9ybUluUGxhY2UpOgorICAgICAgICAo
d2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdERlZmF1bHRTZXR1cENpcGhlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNy
eXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmg6CisKKzIwMTctMDctMjYgIFphbiBEb2JlcnNlayAg
PHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCiAgICAgICAgIFtXUEVdIFdlYkdMMiBzdXBwb3J0CiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQyNDkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9XZWJLaXRDbGVhcktleURlY3J5cHRvckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0
cmVhbWVyLmNwcAppbmRleCBiZjZjNzZiNzRlODMwOWViNGM0YjIyMjFlNThlODgyNWYzNGRkZGI3
Li5kMTdkNDNiMDJjNjY4ZTE4ZDNjZTQ3ZjdmZTI4ZDQyNTVkZmYwOWVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFy
S2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNw
cApAQCAtMzEsMTUgKzMxLDIwIEBACiAKICNkZWZpbmUgQ0xFQVJLRVlfU0laRSAxNgogCitzdHJ1
Y3QgS2V5IHsKKyAgICBHUmVmUHRyPEdzdEJ1ZmZlcj4ga2V5SUQ7CisgICAgR1JlZlB0cjxHc3RC
dWZmZXI+IGtleVZhbHVlOworfTsKKwogI2RlZmluZSBXRUJLSVRfTUVESUFfQ0tfREVDUllQVF9H
RVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJ
VF9UWVBFX01FRElBX0NLX0RFQ1JZUFQsIFdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0UHJpdmF0
ZSkpCiBzdHJ1Y3QgX1dlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0UHJpdmF0ZSB7Ci0gICAgR1Jl
ZlB0cjxHc3RCdWZmZXI+IGtleTsKKyAgICBWZWN0b3I8S2V5PiBrZXlzOwogICAgIGdjcnlfY2lw
aGVyX2hkX3QgaGFuZGxlOwogfTsKIAogc3RhdGljIHZvaWQgd2ViS2l0TWVkaWFDbGVhcktleURl
Y3J5cHRvckZpbmFsaXplKEdPYmplY3QqKTsKIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRpYUNs
ZWFyS2V5RGVjcnlwdG9ySGFuZGxlS2V5UmVzcG9uc2UoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0
aW9uRGVjcnlwdCogc2VsZiwgR3N0RXZlbnQqKTsKLXN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRp
YUNsZWFyS2V5RGVjcnlwdG9yU2V0dXBDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9u
RGVjcnlwdCopOworc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JT
ZXR1cENpcGhlcihXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KiwgR3N0QnVmZmVy
Kik7CiBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvckRlY3J5cHQo
V2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCosIEdzdEJ1ZmZlciogaXYsIEdzdEJ1
ZmZlciogc2FtcGxlLCB1bnNpZ25lZCBzdWJTYW1wbGVzQ291bnQsIEdzdEJ1ZmZlciogc3ViU2Ft
cGxlcyk7CiBzdGF0aWMgdm9pZCB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yUmVsZWFzZUNp
cGhlcihXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0Kik7CiAKQEAgLTEyMCwyMyAr
MTI1LDYyIEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9ySGFu
ZGxlS2V5UmVzcG9uc2UoV2ViS2l0TWVkaWFDb21tb25FCiAgICAgV2ViS2l0TWVkaWFDbGVhcktl
eURlY3J5cHRQcml2YXRlKiBwcml2ID0gV0VCS0lUX01FRElBX0NLX0RFQ1JZUFRfR0VUX1BSSVZB
VEUoV0VCS0lUX01FRElBX0NLX0RFQ1JZUFQoc2VsZikpOwogICAgIGNvbnN0IEdzdFN0cnVjdHVy
ZSogc3RydWN0dXJlID0gZ3N0X2V2ZW50X2dldF9zdHJ1Y3R1cmUoZXZlbnQpOwogCi0gICAgaWYg
KCFnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImRybS1jaXBoZXIiKSkKKyAgICAv
LyBEZW1hbmQgdGhlIGBkcm0tY2lwaGVyLWNsZWFya2V5YCBHc3RTdHJ1Y3R1cmUuCisgICAgaWYg
KCFnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImRybS1jaXBoZXItY2xlYXJrZXki
KSkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworCisgICAgLy8gUmV0cmlldmUgdGhlIGBrZXktaWRz
YCBHU3RyZWFtZXIgdmFsdWUgbGlzdC4KKyAgICBjb25zdCBHVmFsdWUqIGtleUlEc0xpc3QgPSBn
c3Rfc3RydWN0dXJlX2dldF92YWx1ZShzdHJ1Y3R1cmUsICJrZXktaWRzIik7CisgICAgQVNTRVJU
KGtleUlEc0xpc3QgJiYgR1NUX1ZBTFVFX0hPTERTX0xJU1Qoa2V5SURzTGlzdCkpOworICAgIHVu
c2lnbmVkIGtleUlEc0xpc3RTaXplID0gZ3N0X3ZhbHVlX2xpc3RfZ2V0X3NpemUoa2V5SURzTGlz
dCk7CisKKyAgICAvLyBSZXRyaWV2ZSB0aGUgYGtleS12YWx1ZXNgIEdTdHJlYW1lciB2YWx1ZSBs
aXN0LgorICAgIGNvbnN0IEdWYWx1ZSoga2V5VmFsdWVzTGlzdCA9IGdzdF9zdHJ1Y3R1cmVfZ2V0
X3ZhbHVlKHN0cnVjdHVyZSwgImtleS12YWx1ZXMiKTsKKyAgICBBU1NFUlQoa2V5VmFsdWVzTGlz
dCAmJiBHU1RfVkFMVUVfSE9MRFNfTElTVChrZXlWYWx1ZXNMaXN0KSk7CisgICAgdW5zaWduZWQg
a2V5VmFsdWVzTGlzdFNpemUgPSBnc3RfdmFsdWVfbGlzdF9nZXRfc2l6ZShrZXlWYWx1ZXNMaXN0
KTsKKworICAgIC8vIEJhaWwgaWYgc29tZWhvdyB0aGUgdHdvIGxpc3RzIGRvbid0IG1hdGNoIGlu
IHNpemUuCisgICAgaWYgKGtleUlEc0xpc3RTaXplICE9IGtleVZhbHVlc0xpc3RTaXplKQogICAg
ICAgICByZXR1cm4gRkFMU0U7CiAKLSAgICBjb25zdCBHVmFsdWUqIHZhbHVlID0gZ3N0X3N0cnVj
dHVyZV9nZXRfdmFsdWUoc3RydWN0dXJlLCAia2V5Iik7Ci0gICAgcHJpdi0+a2V5LmNsZWFyKCk7
Ci0gICAgcHJpdi0+a2V5ID0gYWRvcHRHUmVmKGdzdF9idWZmZXJfY29weShnc3RfdmFsdWVfZ2V0
X2J1ZmZlcih2YWx1ZSkpKTsKKyAgICAvLyBDbGVhciBvdXQgdGhlIHByZXZpb3VzIGxpc3Qgb2Yg
a2V5cy4KKyAgICBwcml2LT5rZXlzLmNsZWFyKCk7CisKKyAgICAvLyBBcHBlbmQgdGhlIHJldHJp
ZXZlZCBHc3RCdWZmZXIgb2JqZWN0cyBjb250YWluaW5nIGVhY2gga2V5J3MgSUQgYW5kIHZhbHVl
IHRvIHRoZSBsaXN0IG9mIEtleSBvYmplY3RzLgorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBrZXlJRHNMaXN0U2l6ZTsgKytpKSB7CisgICAgICAgIEdSZWZQdHI8R3N0QnVmZmVyPiBrZXlJ
REJ1ZmZlcihnc3RfdmFsdWVfZ2V0X2J1ZmZlcihnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUoa2V5
SURzTGlzdCwgaSkpKTsKKyAgICAgICAgR1JlZlB0cjxHc3RCdWZmZXI+IGtleVZhbHVlQnVmZmVy
KGdzdF92YWx1ZV9nZXRfYnVmZmVyKGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZShrZXlWYWx1ZXNM
aXN0LCBpKSkpOworICAgICAgICBwcml2LT5rZXlzLmFwcGVuZChLZXkgeyBXVEZNb3ZlKGtleUlE
QnVmZmVyKSwgV1RGTW92ZShrZXlWYWx1ZUJ1ZmZlcikgfSk7CisgICAgfQorCiAgICAgcmV0dXJu
IFRSVUU7CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9y
U2V0dXBDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCogc2VsZikKK3N0
YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yU2V0dXBDaXBoZXIoV2Vi
S2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCogc2VsZiwgR3N0QnVmZmVyKiBrZXlJREJ1
ZmZlcikKIHsKICAgICBXZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdFByaXZhdGUqIHByaXYgPSBX
RUJLSVRfTUVESUFfQ0tfREVDUllQVF9HRVRfUFJJVkFURShXRUJLSVRfTUVESUFfQ0tfREVDUllQ
VChzZWxmKSk7CiAgICAgZ2NyeV9lcnJvcl90IGVycm9yOwogCi0gICAgQVNTRVJUKHByaXYtPmtl
eSk7Ci0gICAgaWYgKCFwcml2LT5rZXkpIHsKLSAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxm
LCAiRGVjcnlwdGlvbiBrZXkgbm90IHByb3ZpZGVkIik7CisgICAgR1JlZlB0cjxHc3RCdWZmZXI+
IGtleUJ1ZmZlcjsKKyAgICB7CisgICAgICAgIEdzdE1hcEluZm8ga2V5SURCdWZmZXJNYXA7Cisg
ICAgICAgIGlmICghZ3N0X2J1ZmZlcl9tYXAoa2V5SURCdWZmZXIsICZrZXlJREJ1ZmZlck1hcCwg
R1NUX01BUF9SRUFEKSkgeworICAgICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRmFp
bGVkIHRvIG1hcCBrZXkgSUQgYnVmZmVyIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKworICAgICAgICBmb3IgKGF1dG8mIGtleSA6IHByaXYtPmtleXMpIHsKKyAgICAg
ICAgICAgIGlmICghZ3N0X2J1ZmZlcl9tZW1jbXAoa2V5LmtleUlELmdldCgpLCAwLCBrZXlJREJ1
ZmZlck1hcC5kYXRhLCBrZXlJREJ1ZmZlck1hcC5zaXplKSkgeworICAgICAgICAgICAgICAgIGtl
eUJ1ZmZlciA9IGtleS5rZXlWYWx1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGdzdF9idWZmZXJfdW5tYXAoa2V5SURCdWZmZXIs
ICZrZXlJREJ1ZmZlck1hcCk7CisgICAgfQorCisgICAgaWYgKCFrZXlCdWZmZXIpIHsKKyAgICAg
ICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRmFpbGVkIHRvIGZpbmQgYW4gYXBwcm9wcmlhdGUg
a2V5IGJ1ZmZlciIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xNDcsMTQg
KzE5MSwxNCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvclNl
dHVwQ2lwaGVyKFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdAogICAgIH0KIAogICAgIEdzdE1hcElu
Zm8ga2V5TWFwOwotICAgIGlmICghZ3N0X2J1ZmZlcl9tYXAocHJpdi0+a2V5LmdldCgpLCAma2V5
TWFwLCBHU1RfTUFQX1JFQUQpKSB7CisgICAgaWYgKCFnc3RfYnVmZmVyX21hcChrZXlCdWZmZXIu
Z2V0KCksICZrZXlNYXAsIEdTVF9NQVBfUkVBRCkpIHsKICAgICAgICAgR1NUX0VSUk9SX09CSkVD
VChzZWxmLCAiRmFpbGVkIHRvIG1hcCBkZWNyeXB0aW9uIGtleSIpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCiAgICAgQVNTRVJUKGtleU1hcC5zaXplID09IENMRUFSS0VZX1NJWkUp
OwogICAgIGVycm9yID0gZ2NyeV9jaXBoZXJfc2V0a2V5KHByaXYtPmhhbmRsZSwga2V5TWFwLmRh
dGEsIGtleU1hcC5zaXplKTsKLSAgICBnc3RfYnVmZmVyX3VubWFwKHByaXYtPmtleS5nZXQoKSwg
JmtleU1hcCk7CisgICAgZ3N0X2J1ZmZlcl91bm1hcChrZXlCdWZmZXIuZ2V0KCksICZrZXlNYXAp
OwogICAgIGlmIChlcnJvcikgewogICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNlbGYsICJnY3J5
X2NpcGhlcl9zZXRrZXkgZmFpbGVkOiAlcyIsIGdwZ19zdHJlcnJvcihlcnJvcikpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9X
ZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCAyNWViNzE5
OTdhN2NlY2Q4MTU3NTkwOTMwNmI0Zjg5YjEwNjE5ZTViLi43YjBkYTNmODNjZDJmZjZkNGE2NWNl
ZWFkMTFkYjA4MzFmNmY4MmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTQ0
LDcgKzQ0LDcgQEAgc3RhdGljIEdzdENhcHMqIHdlYmtpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRl
Y3J5cHRUcmFuc2Zvcm1DYXBzKEdzdEJhc2VUcmFuc2Zvcm0KIHN0YXRpYyBHc3RGbG93UmV0dXJu
IHdlYmtpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHRUcmFuc2Zvcm1JblBsYWNlKEdzdEJh
c2VUcmFuc2Zvcm0qLCBHc3RCdWZmZXIqKTsKIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRNZWRpYUNv
bW1vbkVuY3J5cHRpb25EZWNyeXB0U2lua0V2ZW50SGFuZGxlcihHc3RCYXNlVHJhbnNmb3JtKiwg
R3N0RXZlbnQqKTsKIAotc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlv
bkRlY3J5cHREZWZhdWx0U2V0dXBDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVj
cnlwdCopOworc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5
cHREZWZhdWx0U2V0dXBDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCos
IEdzdEJ1ZmZlciopOwogc3RhdGljIHZvaWQgd2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVj
cnlwdERlZmF1bHRSZWxlYXNlQ2lwaGVyKFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5
cHQqKTsKIAogR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyh3ZWJraXRfbWVkaWFfY29tbW9uX2Vu
Y3J5cHRpb25fZGVjcnlwdF9kZWJ1Z19jYXRlZ29yeSk7CkBAIC0yNTMsOCArMjUzLDE2IEBAIHN0
YXRpYyBHc3RGbG93UmV0dXJuIHdlYmtpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHRUcmFu
c2Zvcm1JblBsYWNlKEdzdEJhc2VUCiAgICAgICAgIHN1YlNhbXBsZXNCdWZmZXIgPSBnc3RfdmFs
dWVfZ2V0X2J1ZmZlcih2YWx1ZSk7CiAgICAgfQogCisgICAgdmFsdWUgPSBnc3Rfc3RydWN0dXJl
X2dldF92YWx1ZShwcm90ZWN0aW9uTWV0YS0+aW5mbywgImtpZCIpOworICAgIGlmICghdmFsdWUp
IHsKKyAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRmFpbGVkIHRvIGdldCBrZXkgSUQg
Zm9yIHNhbXBsZSIpOworICAgICAgICBnc3RfYnVmZmVyX3JlbW92ZV9tZXRhKGJ1ZmZlciwgcmVp
bnRlcnByZXRfY2FzdDxHc3RNZXRhKj4ocHJvdGVjdGlvbk1ldGEpKTsKKyAgICAgICAgcmV0dXJu
IEdTVF9GTE9XX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgR3N0QnVmZmVyKiBrZXlJREJ1
ZmZlciA9IGdzdF92YWx1ZV9nZXRfYnVmZmVyKHZhbHVlKTsKICAgICBXZWJLaXRNZWRpYUNvbW1v
bkVuY3J5cHRpb25EZWNyeXB0Q2xhc3MqIGtsYXNzID0gV0VCS0lUX01FRElBX0NFTkNfREVDUllQ
VF9HRVRfQ0xBU1Moc2VsZik7Ci0gICAgaWYgKCFrbGFzcy0+c2V0dXBDaXBoZXIoc2VsZikpIHsK
KyAgICBpZiAoIWtsYXNzLT5zZXR1cENpcGhlcihzZWxmLCBrZXlJREJ1ZmZlcikpIHsKICAgICAg
ICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRmFpbGVkIHRvIGNvbmZpZ3VyZSBjaXBoZXIiKTsK
ICAgICAgICAgZ3N0X2J1ZmZlcl9yZW1vdmVfbWV0YShidWZmZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8
R3N0TWV0YSo+KHByb3RlY3Rpb25NZXRhKSk7CiAgICAgICAgIHJldHVybiBHU1RfRkxPV19OT1Rf
U1VQUE9SVEVEOwpAQCAtMzQ5LDcgKzM1Nyw3IEBAIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVy
biB3ZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JDaGFuZ2VTdGF0ZShHc3RFCiB9
CiAKIAotc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHRE
ZWZhdWx0U2V0dXBDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCopCitz
dGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdERlZmF1bHRT
ZXR1cENpcGhlcihXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KiwgR3N0QnVmZmVy
KikKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5
cHRvckdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmgKaW5kZXgg
MGE2NDczYzJiZDdiNzIxYmQ2ZjJhZWYyYzYzNTU4YWY5NDNhZjM5Yy4uMjY3NzkxYWUzZWIxNmNk
MzdjNzg1OWVkNmRmYzdjMjRhYTQ4Y2IxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlw
dG9yR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmgKQEAg
LTU0LDcgKzU0LDcgQEAgc3RydWN0IF9XZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0
Q2xhc3MgewogCiAgICAgY29uc3QgY2hhciogcHJvdGVjdGlvblN5c3RlbUlkOwogICAgIGdib29s
ZWFuICgqaGFuZGxlS2V5UmVzcG9uc2UpKFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5
cHQqLCBHc3RFdmVudCogZXZlbnQpOwotICAgIGdib29sZWFuICgqc2V0dXBDaXBoZXIpKFdlYktp
dE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHQqKTsKKyAgICBnYm9vbGVhbiAoKnNldHVwQ2lw
aGVyKShXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KiwgR3N0QnVmZmVyKik7CiAg
ICAgZ2Jvb2xlYW4gKCpkZWNyeXB0KShXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0
KiwgR3N0QnVmZmVyKiBpdkJ1ZmZlciwgR3N0QnVmZmVyKiBidWZmZXIsIHVuc2lnbmVkIHN1YlNh
bXBsZXNDb3VudCwgR3N0QnVmZmVyKiBzdWJTYW1wbGVzQnVmZmVyKTsKICAgICB2b2lkICgqcmVs
ZWFzZUNpcGhlcikoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCopOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>