<?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>170274</bug_id>
          
          <creation_ts>2017-03-30 00:10:29 -0700</creation_ts>
          <short_desc>[GCrypt] Implement AES_KW support</short_desc>
          <delta_ts>2017-04-03 11:36:24 -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>
          <dependson>170269</dependson>
    
    <dependson>170271</dependson>
          <blocked>133122</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>buildbot</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1292724</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-03-30 00:10:29 -0700</bug_when>
    <thetext>[GCrypt] Implement AES_KW support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292725</commentid>
    <comment_count>1</comment_count>
      <attachid>305844</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-03-30 00:13:31 -0700</bug_when>
    <thetext>Created attachment 305844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292726</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-03-30 00:15:11 -0700</bug_when>
    <thetext>Attachment 305844 did not pass style-queue:


ERROR: Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:109:  CryptoAlgorithmAES_KW::platformWrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:121:  CryptoAlgorithmAES_KW::platformUnwrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292733</commentid>
    <comment_count>3</comment_count>
      <attachid>305846</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-03-30 00:29:10 -0700</bug_when>
    <thetext>Created attachment 305846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292734</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-03-30 00:31:07 -0700</bug_when>
    <thetext>Attachment 305846 did not pass style-queue:


ERROR: Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:110:  CryptoAlgorithmAES_KW::platformWrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:122:  CryptoAlgorithmAES_KW::platformUnwrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292739</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-03-30 00:44:37 -0700</bug_when>
    <thetext>Depends on the Utilities.h header that&apos;s being added in bug #170269, as well as the HandleDeleter&lt;gcry_cipher_hd_t&gt; specialization that&apos;s being added in bug #170271.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293504</commentid>
    <comment_count>6</comment_count>
      <attachid>305846</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-04-01 18:06:31 -0700</bug_when>
    <thetext>Comment on attachment 305846
Patch

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

&gt; Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:36
&gt; +#include &lt;pal/crypto/gcrypt/Handle.h&gt;
&gt; +#include &lt;pal/crypto/gcrypt/Utilities.h&gt;

:(

&gt; Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:65
&gt; +    Vector&lt;uint8_t&gt; output(data.size() + 8);

Correct, but it needs a short comment to explain the + 8 (e.g. &quot;On encryption the provided output buffer must be 64 bit (8 byte) larger than the input buffer&quot; from https://www.gnupg.org/documentation/manuals/gcrypt/Available-cipher-modes.html).

&gt; Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:72
&gt; +    return WTFMove(output);

:(

&gt; Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:100
&gt; +    Vector&lt;uint8_t&gt; output(data.size() - 8);

Comment

&gt; Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:107
&gt; +    return WTFMove(output);

:(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293588</commentid>
    <comment_count>7</comment_count>
      <attachid>305846</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-02 23:58:20 -0700</bug_when>
    <thetext>Comment on attachment 305846
Patch

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

&gt;&gt; Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:65
&gt;&gt; +    Vector&lt;uint8_t&gt; output(data.size() + 8);
&gt; 
&gt; Correct, but it needs a short comment to explain the + 8 (e.g. &quot;On encryption the provided output buffer must be 64 bit (8 byte) larger than the input buffer&quot; from https://www.gnupg.org/documentation/manuals/gcrypt/Available-cipher-modes.html).

OK.

&gt;&gt; Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:100
&gt;&gt; +    Vector&lt;uint8_t&gt; output(data.size() - 8);
&gt; 
&gt; Comment

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293620</commentid>
    <comment_count>8</comment_count>
      <attachid>306071</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-03 03:59:51 -0700</bug_when>
    <thetext>Created attachment 306071
Patch for landing

Still depends on bug #170271.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293699</commentid>
    <comment_count>9</comment_count>
      <attachid>306087</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-03 11:19:03 -0700</bug_when>
    <thetext>Created attachment 306087
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293701</commentid>
    <comment_count>10</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-03 11:20:25 -0700</bug_when>
    <thetext>Attachment 306087 did not pass style-queue:


ERROR: Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:112:  CryptoAlgorithmAES_KW::platformWrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:124:  CryptoAlgorithmAES_KW::platformUnwrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293709</commentid>
    <comment_count>11</comment_count>
      <attachid>306087</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-03 11:36:10 -0700</bug_when>
    <thetext>Comment on attachment 306087
Patch for landing

Clearing flags on attachment: 306087

Committed r214823: &lt;http://trac.webkit.org/changeset/214823&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293710</commentid>
    <comment_count>12</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-03 11:36:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305844</attachid>
            <date>2017-03-30 00:13:31 -0700</date>
            <delta_ts>2017-03-30 00:29:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170274-20170330091329.patch</filename>
            <type>text/plain</type>
            <size>5384</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0NTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJlYjc1YTI5MDk1N2Y4
OTY1ODEyMjI0YzE2ZmMxNzcxMDE3MDZlNS4uNWIxM2VkMmU5OTNhODJkNWZiNTkxYzU2YjQ1MTZi
NjczN2U5NGI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTAzLTMwICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0NyeXB0XSBJbXBs
ZW1lbnQgQUVTX0tXIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MDI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudCB0aGUgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9y
bXtXcmFwLFVud3JhcH1LZXkoKQorICAgICAgICBmdW5jdGlvbmFsaXR5IGZvciBjb25maWd1cmF0
aW9ucyB0aGF0IHVzZSBsaWJnY3J5cHQuIFRoaXMgaXMgZG9uZQorICAgICAgICBieSBsZXZlcmFn
aW5nIHRoZSBnY3J5X2NpcGhlcl8qIEFQSXMgZm9yIHRoZSBBRVMgYWxnb3JpdGhtIHRoYXQncwor
ICAgICAgICBkZWR1Y3RlZCBhcHByb3ByaWF0ZWx5IGZyb20gdGhlIGtleSBzaXplIGFuZCB0aGUg
QUVTV1JBUCBjaXBoZXIgbW9kZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgLS0gY3VycmVudCBv
bmVzIGNvdmVyIHRoaXMgc3VmZmljaWVudGx5LCBidXQgYXJlIG5vdCB5ZXQKKyAgICAgICAgZW5h
YmxlZCBkdWUgdG8gb3RoZXIgbWlzc2luZyBwbGF0Zm9ybS1zcGVjaWZpYyBTVUJUTEVfQ1JZUFRP
CisgICAgICAgIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIGNyeXB0by9nY3J5cHQvQ3J5
cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdjcnlwdFdy
YXBLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Z2NyeXB0VW53cmFwS2V5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1XcmFwS2V5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1VbndyYXBLZXkpOgorCiAy
MDE3LTAzLTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWlncmF0ZSB0byBrQ1RGb250Q1NTV2lkdGhBdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0Ny
eXB0LmNwcAppbmRleCA5YTU4YjY0Y2E5ZGI2MDI3MDFiYzZmNTEyOGE4ZjM3YzQ3ZjIyZGE4Li5h
YTcxNDBmYWVkMGE3NTQyZTc2Mzg5NTkyMjQyYzg0NDQ1NDFiNTc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19LV0dDcnlwdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfS1dH
Q3J5cHQuY3BwCkBAIC0yOCwxOSArMjgsMTA2IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBU
TykKIAorI2luY2x1ZGUgIkNyeXB0b0tleUFFUy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUu
aCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPHBhbC9jcnlwdG8vZ2Ny
eXB0L0hhbmRsZS5oPgorI2luY2x1ZGUgPHBhbC9jcnlwdG8vZ2NyeXB0L1V0aWxpdGllcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0
Zm9ybVdyYXBLZXkoUmVmPENyeXB0b0tleT4mJiwgVmVjdG9yPHVpbnQ4X3Q+JiYsIFZlY3RvckNh
bGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0
b3I8dWludDhfdD4+IGdjcnlwdFdyYXBLZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IGF1dG8gYWxnb3JpdGhtID0gUEFMOjpHQ3J5cHQ6OmFlc0FsZ29yaXRobUZvcktleVNpemUoa2V5
LnNpemUoKSAqIDgpOworICAgIGlmICghYWxnb3JpdGhtKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgUEFMOjpHQ3J5cHQ6OkhhbmRsZTxnY3J5X2NpcGhlcl9oZF90PiBoYW5k
bGU7CisgICAgZ2NyeV9lcnJvcl90IGVycm9yID0gZ2NyeV9jaXBoZXJfb3BlbigmaGFuZGxlLCAq
YWxnb3JpdGhtLCBHQ1JZX0NJUEhFUl9NT0RFX0FFU1dSQVAsIDApOworICAgIGlmIChlcnJvciAh
PSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJv
cik7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgZXJyb3IgPSBn
Y3J5X2NpcGhlcl9zZXRrZXkoaGFuZGxlLCBrZXkuZGF0YSgpLCBrZXkuc2l6ZSgpKTsKKyAgICBp
ZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgeworICAgICAgICBQQUw6OkdDcnlwdDo6bG9n
RXJyb3IoZXJyb3IpOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAg
IGVycm9yID0gZ2NyeV9jaXBoZXJfZmluYWwoaGFuZGxlKTsKKyAgICBpZiAoZXJyb3IgIT0gR1BH
X0VSUl9OT19FUlJPUikgeworICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOwor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIFZlY3Rvcjx1aW50OF90
PiBvdXRwdXQoZGF0YS5zaXplKCkgKyA4KTsKKyAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2VuY3J5
cHQoaGFuZGxlLCBvdXRwdXQuZGF0YSgpLCBvdXRwdXQuc2l6ZSgpLCBkYXRhLmRhdGEoKSwgZGF0
YS5zaXplKCkpOworICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAg
IFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgfQorCisgICAgcmV0dXJuIFdURk1vdmUob3V0cHV0KTsKIH0KIAotdm9pZCBDcnlw
dG9BbGdvcml0aG1BRVNfS1c6OnBsYXRmb3JtVW53cmFwS2V5KFJlZjxDcnlwdG9LZXk+JiYsIFZl
Y3Rvcjx1aW50OF90PiYmLCBWZWN0b3JDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmKQor
c3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBnY3J5cHRVbndyYXBLZXkoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSkKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGF1dG8gYWxnb3JpdGhtID0gUEFMOjpHQ3J5cHQ6
OmFlc0FsZ29yaXRobUZvcktleVNpemUoa2V5LnNpemUoKSAqIDgpOworICAgIGlmICghYWxnb3Jp
dGhtKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgUEFMOjpHQ3J5cHQ6Okhh
bmRsZTxnY3J5X2NpcGhlcl9oZF90PiBoYW5kbGU7CisgICAgZ2NyeV9lcnJvcl90IGVycm9yID0g
Z2NyeV9jaXBoZXJfb3BlbigmaGFuZGxlLCAqYWxnb3JpdGhtLCBHQ1JZX0NJUEhFUl9NT0RFX0FF
U1dSQVAsIDApOworICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAg
IFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgfQorCisgICAgZXJyb3IgPSBnY3J5X2NpcGhlcl9zZXRrZXkoaGFuZGxlLCBrZXku
ZGF0YSgpLCBrZXkuc2l6ZSgpKTsKKyAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikg
eworICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIH0KKworICAgIGVycm9yID0gZ2NyeV9jaXBoZXJfZmluYWwoaGFu
ZGxlKTsKKyAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgeworICAgICAgICBQQUw6
OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIH0KKworICAgIFZlY3Rvcjx1aW50OF90PiBvdXRwdXQoZGF0YS5zaXplKCkgLSA4KTsKKyAg
ICBlcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQoaGFuZGxlLCBvdXRwdXQuZGF0YSgpLCBvdXRw
dXQuc2l6ZSgpLCBkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgIGlmIChlcnJvciAhPSBH
UEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgcmV0dXJuIFdURk1v
dmUob3V0cHV0KTsKK30KKwordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OnBsYXRmb3JtV3Jh
cEtleShSZWY8Q3J5cHRvS2V5PiYmIGtleSwgVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgVmVjdG9y
Q2FsbGJhY2smJiBjYWxsYmFjaywgRXhjZXB0aW9uQ2FsbGJhY2smJiBleGNlcHRpb25DYWxsYmFj
aykKK3sKKyAgICBhdXRvJiBhZXNLZXkgPSBkb3duY2FzdDxDcnlwdG9LZXlBRVM+KGtleS5nZXQo
KSk7CisgICAgYXV0byBvdXRwdXQgPSBnY3J5cHRXcmFwS2V5KGFlc0tleS5rZXkoKSwgZGF0YSk7
CisgICAgaWYgKCFvdXRwdXQpIHsKKyAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soT3BlcmF0aW9u
RXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2FsbGJhY2soKm91dHB1dCk7
Cit9CisKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9ybVVud3JhcEtleShSZWY8
Q3J5cHRvS2V5PiYmIGtleSwgVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgVmVjdG9yQ2FsbGJhY2sm
JiBjYWxsYmFjaywgRXhjZXB0aW9uQ2FsbGJhY2smJiBleGNlcHRpb25DYWxsYmFjaykKK3sKKyAg
ICBhdXRvJiBhZXNLZXkgPSBkb3duY2FzdDxDcnlwdG9LZXlBRVM+KGtleS5nZXQoKSk7CisgICAg
YXV0byBvdXRwdXQgPSBnY3J5cHRVbndyYXBLZXkoYWVzS2V5LmtleSgpLCBkYXRhKTsKKyAgICBp
ZiAoIW91dHB1dCkgeworICAgICAgICBleGNlcHRpb25DYWxsYmFjayhPcGVyYXRpb25FcnJvcik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYWxsYmFjaygqb3V0cHV0KTsKIH0KIAog
RXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9ybUVuY3J5cHQo
Y29uc3QgQ3J5cHRvS2V5QUVTJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNh
bGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305846</attachid>
            <date>2017-03-30 00:29:10 -0700</date>
            <delta_ts>2017-04-03 03:59:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170274-20170330092908.patch</filename>
            <type>text/plain</type>
            <size>5688</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0NTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJlYjc1YTI5MDk1N2Y4
OTY1ODEyMjI0YzE2ZmMxNzcxMDE3MDZlNS4uNWIxM2VkMmU5OTNhODJkNWZiNTkxYzU2YjQ1MTZi
NjczN2U5NGI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTAzLTMwICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0NyeXB0XSBJbXBs
ZW1lbnQgQUVTX0tXIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MDI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudCB0aGUgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9y
bXtXcmFwLFVud3JhcH1LZXkoKQorICAgICAgICBmdW5jdGlvbmFsaXR5IGZvciBjb25maWd1cmF0
aW9ucyB0aGF0IHVzZSBsaWJnY3J5cHQuIFRoaXMgaXMgZG9uZQorICAgICAgICBieSBsZXZlcmFn
aW5nIHRoZSBnY3J5X2NpcGhlcl8qIEFQSXMgZm9yIHRoZSBBRVMgYWxnb3JpdGhtIHRoYXQncwor
ICAgICAgICBkZWR1Y3RlZCBhcHByb3ByaWF0ZWx5IGZyb20gdGhlIGtleSBzaXplIGFuZCB0aGUg
QUVTV1JBUCBjaXBoZXIgbW9kZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgLS0gY3VycmVudCBv
bmVzIGNvdmVyIHRoaXMgc3VmZmljaWVudGx5LCBidXQgYXJlIG5vdCB5ZXQKKyAgICAgICAgZW5h
YmxlZCBkdWUgdG8gb3RoZXIgbWlzc2luZyBwbGF0Zm9ybS1zcGVjaWZpYyBTVUJUTEVfQ1JZUFRP
CisgICAgICAgIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIGNyeXB0by9nY3J5cHQvQ3J5
cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdjcnlwdFdy
YXBLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Z2NyeXB0VW53cmFwS2V5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1XcmFwS2V5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1VbndyYXBLZXkpOgorCiAy
MDE3LTAzLTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWlncmF0ZSB0byBrQ1RGb250Q1NTV2lkdGhBdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0Ny
eXB0LmNwcAppbmRleCA5YTU4YjY0Y2E5ZGI2MDI3MDFiYzZmNTEyOGE4ZjM3YzQ3ZjIyZGE4Li4y
YzUwYzk2NjNlMjA2Y2I0MjQ1Yzk0NDNlYWU2MDk5NjRjODM3MWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19LV0dDcnlwdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfS1dH
Q3J5cHQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IE1ldHJv
bG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTkgKzI5LDEwNiBAQAogCiAjaWYg
RU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKKyNpbmNsdWRlICJDcnlwdG9LZXlBRVMuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNs
dWRlIDxwYWwvY3J5cHRvL2djcnlwdC9IYW5kbGUuaD4KKyNpbmNsdWRlIDxwYWwvY3J5cHRvL2dj
cnlwdC9VdGlsaXRpZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIENyeXB0b0Fs
Z29yaXRobUFFU19LVzo6cGxhdGZvcm1XcmFwS2V5KFJlZjxDcnlwdG9LZXk+JiYsIFZlY3Rvcjx1
aW50OF90PiYmLCBWZWN0b3JDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmKQorc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBnY3J5cHRXcmFwS2V5KGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICBhdXRvIGFsZ29yaXRobSA9IFBBTDo6R0NyeXB0OjphZXNBbGdv
cml0aG1Gb3JLZXlTaXplKGtleS5zaXplKCkgKiA4KTsKKyAgICBpZiAoIWFsZ29yaXRobSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIFBBTDo6R0NyeXB0OjpIYW5kbGU8Z2Ny
eV9jaXBoZXJfaGRfdD4gaGFuZGxlOworICAgIGdjcnlfZXJyb3JfdCBlcnJvciA9IGdjcnlfY2lw
aGVyX29wZW4oJmhhbmRsZSwgKmFsZ29yaXRobSwgR0NSWV9DSVBIRVJfTU9ERV9BRVNXUkFQLCAw
KTsKKyAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgeworICAgICAgICBQQUw6OkdD
cnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
IH0KKworICAgIGVycm9yID0gZ2NyeV9jaXBoZXJfc2V0a2V5KGhhbmRsZSwga2V5LmRhdGEoKSwg
a2V5LnNpemUoKSk7CisgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAg
ICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICB9CisKKyAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2ZpbmFsKGhhbmRsZSk7Cisg
ICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6
OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisK
KyAgICBWZWN0b3I8dWludDhfdD4gb3V0cHV0KGRhdGEuc2l6ZSgpICsgOCk7CisgICAgZXJyb3Ig
PSBnY3J5X2NpcGhlcl9lbmNyeXB0KGhhbmRsZSwgb3V0cHV0LmRhdGEoKSwgb3V0cHV0LnNpemUo
KSwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKKyAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9O
T19FUlJPUikgeworICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiBXVEZNb3ZlKG91dHB1
dCk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9ybVVud3JhcEtleShS
ZWY8Q3J5cHRvS2V5PiYmLCBWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhj
ZXB0aW9uQ2FsbGJhY2smJikKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4g
Z2NyeXB0VW53cmFwS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIGRhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBhdXRvIGFsZ29y
aXRobSA9IFBBTDo6R0NyeXB0OjphZXNBbGdvcml0aG1Gb3JLZXlTaXplKGtleS5zaXplKCkgKiA4
KTsKKyAgICBpZiAoIWFsZ29yaXRobSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIFBBTDo6R0NyeXB0OjpIYW5kbGU8Z2NyeV9jaXBoZXJfaGRfdD4gaGFuZGxlOworICAgIGdj
cnlfZXJyb3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJmhhbmRsZSwgKmFsZ29yaXRobSwg
R0NSWV9DSVBIRVJfTU9ERV9BRVNXUkFQLCAwKTsKKyAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9O
T19FUlJPUikgeworICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIGVycm9yID0gZ2NyeV9jaXBoZXJf
c2V0a2V5KGhhbmRsZSwga2V5LmRhdGEoKSwga2V5LnNpemUoKSk7CisgICAgaWYgKGVycm9yICE9
IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9y
KTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBlcnJvciA9IGdj
cnlfY2lwaGVyX2ZpbmFsKGhhbmRsZSk7CisgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJS
T1IpIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBWZWN0b3I8dWludDhfdD4gb3V0cHV0KGRh
dGEuc2l6ZSgpIC0gOCk7CisgICAgZXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNyeXB0KGhhbmRsZSwg
b3V0cHV0LmRhdGEoKSwgb3V0cHV0LnNpemUoKSwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsK
KyAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgeworICAgICAgICBQQUw6OkdDcnlw
dDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0K
KworICAgIHJldHVybiBXVEZNb3ZlKG91dHB1dCk7Cit9CisKK3ZvaWQgQ3J5cHRvQWxnb3JpdGht
QUVTX0tXOjpwbGF0Zm9ybVdyYXBLZXkoUmVmPENyeXB0b0tleT4mJiBrZXksIFZlY3Rvcjx1aW50
OF90PiYmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIEV4Y2VwdGlvbkNhbGxiYWNr
JiYgZXhjZXB0aW9uQ2FsbGJhY2spCit7CisgICAgYXV0byYgYWVzS2V5ID0gZG93bmNhc3Q8Q3J5
cHRvS2V5QUVTPihrZXkuZ2V0KCkpOworICAgIGF1dG8gb3V0cHV0ID0gZ2NyeXB0V3JhcEtleShh
ZXNLZXkua2V5KCksIGRhdGEpOworICAgIGlmICghb3V0cHV0KSB7CisgICAgICAgIGV4Y2VwdGlv
bkNhbGxiYWNrKE9wZXJhdGlvbkVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGNhbGxiYWNrKCpvdXRwdXQpOworfQorCit2b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxh
dGZvcm1VbndyYXBLZXkoUmVmPENyeXB0b0tleT4mJiBrZXksIFZlY3Rvcjx1aW50OF90PiYmIGRh
dGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIEV4Y2VwdGlvbkNhbGxiYWNrJiYgZXhjZXB0
aW9uQ2FsbGJhY2spCit7CisgICAgYXV0byYgYWVzS2V5ID0gZG93bmNhc3Q8Q3J5cHRvS2V5QUVT
PihrZXkuZ2V0KCkpOworICAgIGF1dG8gb3V0cHV0ID0gZ2NyeXB0VW53cmFwS2V5KGFlc0tleS5r
ZXkoKSwgZGF0YSk7CisgICAgaWYgKCFvdXRwdXQpIHsKKyAgICAgICAgZXhjZXB0aW9uQ2FsbGJh
Y2soT3BlcmF0aW9uRXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2FsbGJh
Y2soKm91dHB1dCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobUFFU19L
Vzo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306071</attachid>
            <date>2017-04-03 03:59:51 -0700</date>
            <delta_ts>2017-04-03 11:18:42 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170274-20170403125950.patch</filename>
            <type>text/plain</type>
            <size>5854</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0NzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlmYjk4NWYxNTNhM2M1
OWFkNmI3ZGRkMWM3MTRmNzBjMzJhYzVlZC4uNGU1N2E0YjE1YzBkZGI5Y2UzNzAwY2RmYjVjMWVi
ZTU0MzIzMDA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA0LTAzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0NyeXB0XSBJbXBs
ZW1lbnQgQUVTX0tXIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MDI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56
YXJvLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0
Zm9ybXtXcmFwLFVud3JhcH1LZXkoKQorICAgICAgICBmdW5jdGlvbmFsaXR5IGZvciBjb25maWd1
cmF0aW9ucyB0aGF0IHVzZSBsaWJnY3J5cHQuIFRoaXMgaXMgZG9uZQorICAgICAgICBieSBsZXZl
cmFnaW5nIHRoZSBnY3J5X2NpcGhlcl8qIEFQSXMgZm9yIHRoZSBBRVMgYWxnb3JpdGhtIHRoYXQn
cworICAgICAgICBkZWR1Y3RlZCBhcHByb3ByaWF0ZWx5IGZyb20gdGhlIGtleSBzaXplIGFuZCB0
aGUgQUVTV1JBUCBjaXBoZXIgbW9kZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgLS0gY3VycmVu
dCBvbmVzIGNvdmVyIHRoaXMgc3VmZmljaWVudGx5LCBidXQgYXJlIG5vdCB5ZXQKKyAgICAgICAg
ZW5hYmxlZCBkdWUgdG8gb3RoZXIgbWlzc2luZyBwbGF0Zm9ybS1zcGVjaWZpYyBTVUJUTEVfQ1JZ
UFRPCisgICAgICAgIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIGNyeXB0by9nY3J5cHQv
Q3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omdjcnlw
dFdyYXBLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Z2NyeXB0VW53cmFwS2V5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1XcmFwS2V5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1VbndyYXBLZXkpOgor
CiAyMDE3LTA0LTAyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAg
ICAgIEJ1aWxkIGZpeCBmb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5
cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcAppbmRleCA5YTU4YjY0Y2E5
ZGI2MDI3MDFiYzZmNTEyOGE4ZjM3YzQ3ZjIyZGE4Li5kMzkyMWRjZTZlOGZkNGNiODk2YjU0YTYw
YTAwNGZiOGM2ZTZlZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0
L0NyeXB0b0FsZ29yaXRobUFFU19LV0dDcnlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfS1dHQ3J5cHQuY3BwCkBAIC0xLDUgKzEsNiBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjgsMTkgKzI5LDEwOCBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAK
KyNpbmNsdWRlICJDcnlwdG9LZXlBRVMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDxwYWwvY3J5cHRvL2djcnlwdC9I
YW5kbGUuaD4KKyNpbmNsdWRlIDxwYWwvY3J5cHRvL2djcnlwdC9VdGlsaXRpZXMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1X
cmFwS2V5KFJlZjxDcnlwdG9LZXk+JiYsIFZlY3Rvcjx1aW50OF90PiYmLCBWZWN0b3JDYWxsYmFj
ayYmLCBFeGNlcHRpb25DYWxsYmFjayYmKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVp
bnQ4X3Q+PiBnY3J5cHRXcmFwS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGRhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBhdXRv
IGFsZ29yaXRobSA9IFBBTDo6R0NyeXB0OjphZXNBbGdvcml0aG1Gb3JLZXlTaXplKGtleS5zaXpl
KCkgKiA4KTsKKyAgICBpZiAoIWFsZ29yaXRobSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgIFBBTDo6R0NyeXB0OjpIYW5kbGU8Z2NyeV9jaXBoZXJfaGRfdD4gaGFuZGxlOwor
ICAgIGdjcnlfZXJyb3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJmhhbmRsZSwgKmFsZ29y
aXRobSwgR0NSWV9DSVBIRVJfTU9ERV9BRVNXUkFQLCAwKTsKKyAgICBpZiAoZXJyb3IgIT0gR1BH
X0VSUl9OT19FUlJPUikgeworICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOwor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIGVycm9yID0gZ2NyeV9j
aXBoZXJfc2V0a2V5KGhhbmRsZSwga2V5LmRhdGEoKSwga2V5LnNpemUoKSk7CisgICAgaWYgKGVy
cm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9y
KGVycm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBlcnJv
ciA9IGdjcnlfY2lwaGVyX2ZpbmFsKGhhbmRsZSk7CisgICAgaWYgKGVycm9yICE9IEdQR19FUlJf
Tk9fRVJST1IpIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICAvLyBPbiBlbmNyeXB0aW9uIHRo
ZSBwcm92aWRlZCBvdXRwdXQgYnVmZmVyIG11c3QgYmUgNjQgYml0ICg4IGJ5dGUpIGxhcmdlciB0
aGFuIHRoZSBpbnB1dCBidWZmZXIuCisgICAgVmVjdG9yPHVpbnQ4X3Q+IG91dHB1dChkYXRhLnNp
emUoKSArIDgpOworICAgIGVycm9yID0gZ2NyeV9jaXBoZXJfZW5jcnlwdChoYW5kbGUsIG91dHB1
dC5kYXRhKCksIG91dHB1dC5zaXplKCksIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAg
aWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6Omxv
Z0Vycm9yKGVycm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAg
ICByZXR1cm4gb3V0cHV0OwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZv
cm1VbndyYXBLZXkoUmVmPENyeXB0b0tleT4mJiwgVmVjdG9yPHVpbnQ4X3Q+JiYsIFZlY3RvckNh
bGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0
b3I8dWludDhfdD4+IGdjcnlwdFVud3JhcEtleShjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSwg
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgYXV0byBhbGdvcml0aG0gPSBQQUw6OkdDcnlwdDo6YWVzQWxnb3JpdGhtRm9yS2V5U2l6ZShr
ZXkuc2l6ZSgpICogOCk7CisgICAgaWYgKCFhbGdvcml0aG0pCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBQQUw6OkdDcnlwdDo6SGFuZGxlPGdjcnlfY2lwaGVyX2hkX3Q+IGhh
bmRsZTsKKyAgICBnY3J5X2Vycm9yX3QgZXJyb3IgPSBnY3J5X2NpcGhlcl9vcGVuKCZoYW5kbGUs
ICphbGdvcml0aG0sIEdDUllfQ0lQSEVSX01PREVfQUVTV1JBUCwgMCk7CisgICAgaWYgKGVycm9y
ICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVy
cm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBlcnJvciA9
IGdjcnlfY2lwaGVyX3NldGtleShoYW5kbGUsIGtleS5kYXRhKCksIGtleS5zaXplKCkpOworICAg
IGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgIFBBTDo6R0NyeXB0Ojps
b2dFcnJvcihlcnJvcik7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisg
ICAgZXJyb3IgPSBnY3J5X2NpcGhlcl9maW5hbChoYW5kbGUpOworICAgIGlmIChlcnJvciAhPSBH
UEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgLy8gT24gZGVjcnlw
dGlvbiB0aGUgb3V0cHV0IGJ1ZmZlciBtYXkgYmUgc3BlY2lmaWVkIDY0IGJpdCAoOCBieXRlKSBz
aG9ydGVyIHRoYW4gdGhlbiBpbnB1dCBidWZmZXIuCisgICAgVmVjdG9yPHVpbnQ4X3Q+IG91dHB1
dChkYXRhLnNpemUoKSAtIDgpOworICAgIGVycm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlwdChoYW5k
bGUsIG91dHB1dC5kYXRhKCksIG91dHB1dC5zaXplKCksIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUo
KSk7CisgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgUEFMOjpH
Q3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9CisKKyAgICByZXR1cm4gb3V0cHV0OworfQorCit2b2lkIENyeXB0b0FsZ29yaXRobUFFU19L
Vzo6cGxhdGZvcm1XcmFwS2V5KFJlZjxDcnlwdG9LZXk+JiYga2V5LCBWZWN0b3I8dWludDhfdD4m
JiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBFeGNlcHRpb25DYWxsYmFjayYmIGV4
Y2VwdGlvbkNhbGxiYWNrKQoreworICAgIGF1dG8mIGFlc0tleSA9IGRvd25jYXN0PENyeXB0b0tl
eUFFUz4oa2V5LmdldCgpKTsKKyAgICBhdXRvIG91dHB1dCA9IGdjcnlwdFdyYXBLZXkoYWVzS2V5
LmtleSgpLCBkYXRhKTsKKyAgICBpZiAoIW91dHB1dCkgeworICAgICAgICBleGNlcHRpb25DYWxs
YmFjayhPcGVyYXRpb25FcnJvcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYWxs
YmFjaygqb3V0cHV0KTsKK30KKwordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OnBsYXRmb3Jt
VW53cmFwS2V5KFJlZjxDcnlwdG9LZXk+JiYga2V5LCBWZWN0b3I8dWludDhfdD4mJiBkYXRhLCBW
ZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBFeGNlcHRpb25DYWxsYmFjayYmIGV4Y2VwdGlvbkNh
bGxiYWNrKQoreworICAgIGF1dG8mIGFlc0tleSA9IGRvd25jYXN0PENyeXB0b0tleUFFUz4oa2V5
LmdldCgpKTsKKyAgICBhdXRvIG91dHB1dCA9IGdjcnlwdFVud3JhcEtleShhZXNLZXkua2V5KCks
IGRhdGEpOworICAgIGlmICghb3V0cHV0KSB7CisgICAgICAgIGV4Y2VwdGlvbkNhbGxiYWNrKE9w
ZXJhdGlvbkVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhbGxiYWNrKCpv
dXRwdXQpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OnBs
YXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306087</attachid>
            <date>2017-04-03 11:19:03 -0700</date>
            <delta_ts>2017-04-03 11:19:03 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170274-20170403201850.patch</filename>
            <type>text/plain</type>
            <size>5934</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0ODIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IyMWZmMzU0ZTY1NzY1
MTIyMmViZDEzMjA4M2EyZjM2NDU1OGZiYy4uZDBiOTYxYzAxNGE3NGVlMTU2YWFmNWUwZTQ2Y2Jm
OTQyZGVmYWI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE3LTA0LTAzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbR0NyeXB0XSBJbXBs
ZW1lbnQgQUVTX0tXIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MDI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56
YXJvLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0
Zm9ybXtXcmFwLFVud3JhcH1LZXkoKQorICAgICAgICBmdW5jdGlvbmFsaXR5IGZvciBjb25maWd1
cmF0aW9ucyB0aGF0IHVzZSBsaWJnY3J5cHQuIFRoaXMgaXMgZG9uZQorICAgICAgICBieSBsZXZl
cmFnaW5nIHRoZSBnY3J5X2NpcGhlcl8qIEFQSXMgZm9yIHRoZSBBRVMgYWxnb3JpdGhtIHRoYXQn
cworICAgICAgICBkZWR1Y3RlZCBhcHByb3ByaWF0ZWx5IGZyb20gdGhlIGtleSBzaXplIGFuZCB0
aGUgQUVTV1JBUCBjaXBoZXIgbW9kZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgLS0gY3VycmVu
dCBvbmVzIGNvdmVyIHRoaXMgc3VmZmljaWVudGx5LCBidXQgYXJlIG5vdCB5ZXQKKyAgICAgICAg
ZW5hYmxlZCBkdWUgdG8gb3RoZXIgbWlzc2luZyBwbGF0Zm9ybS1zcGVjaWZpYyBTVUJUTEVfQ1JZ
UFRPCisgICAgICAgIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIGNyeXB0by9nY3J5cHQv
Q3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omdjcnlw
dFdyYXBLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Z2NyeXB0VW53cmFwS2V5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1XcmFwS2V5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1VbndyYXBLZXkpOgor
CisyMDE3LTA0LTAzICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKwogICAg
ICAgICBbR0NyeXB0XSBJbXBsZW1lbnQgQUVTX0dDTSBzdXBwb3J0CiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAyNzEKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfS1dHQ3J5cHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfS1dHQ3J5
cHQuY3BwCmluZGV4IDlhNThiNjRjYTlkYjYwMjcwMWJjNmY1MTI4YThmMzdjNDdmMjJkYTguLmQz
OTIxZGNlNmU4ZmQ0Y2I4OTZiNTRhNjBhMDA0ZmI4YzZlNmVmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19LV0dD
cnlwdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgTWV0cm9s
b2dpY2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxOSArMjksMTA4IEBACiAKICNpZiBF
TkFCTEUoU1VCVExFX0NSWVBUTykKIAorI2luY2x1ZGUgIkNyeXB0b0tleUFFUy5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1
ZGUgPHBhbC9jcnlwdG8vZ2NyeXB0L0hhbmRsZS5oPgorI2luY2x1ZGUgPHBhbC9jcnlwdG8vZ2Ny
eXB0L1V0aWxpdGllcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgQ3J5cHRvQWxn
b3JpdGhtQUVTX0tXOjpwbGF0Zm9ybVdyYXBLZXkoUmVmPENyeXB0b0tleT4mJiwgVmVjdG9yPHVp
bnQ4X3Q+JiYsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpCitzdGF0aWMg
c3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGdjcnlwdFdyYXBLZXkoY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSkKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIGF1dG8gYWxnb3JpdGhtID0gUEFMOjpHQ3J5cHQ6OmFlc0FsZ29y
aXRobUZvcktleVNpemUoa2V5LnNpemUoKSAqIDgpOworICAgIGlmICghYWxnb3JpdGhtKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgUEFMOjpHQ3J5cHQ6OkhhbmRsZTxnY3J5
X2NpcGhlcl9oZF90PiBoYW5kbGU7CisgICAgZ2NyeV9lcnJvcl90IGVycm9yID0gZ2NyeV9jaXBo
ZXJfb3BlbigmaGFuZGxlLCAqYWxnb3JpdGhtLCBHQ1JZX0NJUEhFUl9NT0RFX0FFU1dSQVAsIDAp
OworICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAgICAgIFBBTDo6R0Ny
eXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
fQorCisgICAgZXJyb3IgPSBnY3J5X2NpcGhlcl9zZXRrZXkoaGFuZGxlLCBrZXkuZGF0YSgpLCBr
ZXkuc2l6ZSgpKTsKKyAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgeworICAgICAg
ICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgIH0KKworICAgIGVycm9yID0gZ2NyeV9jaXBoZXJfZmluYWwoaGFuZGxlKTsKKyAg
ICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgeworICAgICAgICBQQUw6OkdDcnlwdDo6
bG9nRXJyb3IoZXJyb3IpOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKwor
ICAgIC8vIE9uIGVuY3J5cHRpb24gdGhlIHByb3ZpZGVkIG91dHB1dCBidWZmZXIgbXVzdCBiZSA2
NCBiaXQgKDggYnl0ZSkgbGFyZ2VyIHRoYW4gdGhlIGlucHV0IGJ1ZmZlci4KKyAgICBWZWN0b3I8
dWludDhfdD4gb3V0cHV0KGRhdGEuc2l6ZSgpICsgOCk7CisgICAgZXJyb3IgPSBnY3J5X2NpcGhl
cl9lbmNyeXB0KGhhbmRsZSwgb3V0cHV0LmRhdGEoKSwgb3V0cHV0LnNpemUoKSwgZGF0YS5kYXRh
KCksIGRhdGEuc2l6ZSgpKTsKKyAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgewor
ICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiBvdXRwdXQ7CiB9CiAKLXZvaWQgQ3J5cHRv
QWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9ybVVud3JhcEtleShSZWY8Q3J5cHRvS2V5PiYmLCBWZWN0
b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJikKK3N0
YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gZ2NyeXB0VW53cmFwS2V5KGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBhdXRvIGFsZ29yaXRobSA9IFBBTDo6R0NyeXB0Ojph
ZXNBbGdvcml0aG1Gb3JLZXlTaXplKGtleS5zaXplKCkgKiA4KTsKKyAgICBpZiAoIWFsZ29yaXRo
bSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIFBBTDo6R0NyeXB0OjpIYW5k
bGU8Z2NyeV9jaXBoZXJfaGRfdD4gaGFuZGxlOworICAgIGdjcnlfZXJyb3JfdCBlcnJvciA9IGdj
cnlfY2lwaGVyX29wZW4oJmhhbmRsZSwgKmFsZ29yaXRobSwgR0NSWV9DSVBIRVJfTU9ERV9BRVNX
UkFQLCAwKTsKKyAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19FUlJPUikgeworICAgICAgICBQ
QUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgIH0KKworICAgIGVycm9yID0gZ2NyeV9jaXBoZXJfc2V0a2V5KGhhbmRsZSwga2V5LmRh
dGEoKSwga2V5LnNpemUoKSk7CisgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsK
KyAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2ZpbmFsKGhhbmRs
ZSk7CisgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgUEFMOjpH
Q3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9CisKKyAgICAvLyBPbiBkZWNyeXB0aW9uIHRoZSBvdXRwdXQgYnVmZmVyIG1heSBiZSBzcGVj
aWZpZWQgNjQgYml0ICg4IGJ5dGUpIHNob3J0ZXIgdGhhbiB0aGVuIGlucHV0IGJ1ZmZlci4KKyAg
ICBWZWN0b3I8dWludDhfdD4gb3V0cHV0KGRhdGEuc2l6ZSgpIC0gOCk7CisgICAgZXJyb3IgPSBn
Y3J5X2NpcGhlcl9kZWNyeXB0KGhhbmRsZSwgb3V0cHV0LmRhdGEoKSwgb3V0cHV0LnNpemUoKSwg
ZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKKyAgICBpZiAoZXJyb3IgIT0gR1BHX0VSUl9OT19F
UlJPUikgeworICAgICAgICBQQUw6OkdDcnlwdDo6bG9nRXJyb3IoZXJyb3IpOworICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiBvdXRwdXQ7Cit9CisKK3Zv
aWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9ybVdyYXBLZXkoUmVmPENyeXB0b0tleT4m
JiBrZXksIFZlY3Rvcjx1aW50OF90PiYmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ss
IEV4Y2VwdGlvbkNhbGxiYWNrJiYgZXhjZXB0aW9uQ2FsbGJhY2spCit7CisgICAgYXV0byYgYWVz
S2V5ID0gZG93bmNhc3Q8Q3J5cHRvS2V5QUVTPihrZXkuZ2V0KCkpOworICAgIGF1dG8gb3V0cHV0
ID0gZ2NyeXB0V3JhcEtleShhZXNLZXkua2V5KCksIGRhdGEpOworICAgIGlmICghb3V0cHV0KSB7
CisgICAgICAgIGV4Y2VwdGlvbkNhbGxiYWNrKE9wZXJhdGlvbkVycm9yKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGNhbGxiYWNrKCpvdXRwdXQpOworfQorCit2b2lkIENyeXB0b0Fs
Z29yaXRobUFFU19LVzo6cGxhdGZvcm1VbndyYXBLZXkoUmVmPENyeXB0b0tleT4mJiBrZXksIFZl
Y3Rvcjx1aW50OF90PiYmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIEV4Y2VwdGlv
bkNhbGxiYWNrJiYgZXhjZXB0aW9uQ2FsbGJhY2spCit7CisgICAgYXV0byYgYWVzS2V5ID0gZG93
bmNhc3Q8Q3J5cHRvS2V5QUVTPihrZXkuZ2V0KCkpOworICAgIGF1dG8gb3V0cHV0ID0gZ2NyeXB0
VW53cmFwS2V5KGFlc0tleS5rZXkoKSwgZGF0YSk7CisgICAgaWYgKCFvdXRwdXQpIHsKKyAgICAg
ICAgZXhjZXB0aW9uQ2FsbGJhY2soT3BlcmF0aW9uRXJyb3IpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgY2FsbGJhY2soKm91dHB1dCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IENy
eXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0tleUFFUyYs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJikK
</data>

          </attachment>
      

    </bug>

</bugzilla>