<?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>205961</bug_id>
          
          <creation_ts>2020-01-08 15:03:14 -0800</creation_ts>
          <short_desc>IndexedDB: include prefetched cursor records in result of iterating cursor</short_desc>
          <delta_ts>2022-02-10 16:50:58 -0800</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>DUPLICATE</resolution>
          <dup_id>207602</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jsbell</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1604306</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-01-08 15:03:14 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604312</commentid>
    <comment_count>1</comment_count>
      <attachid>387148</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-01-08 15:20:10 -0800</bug_when>
    <thetext>Created attachment 387148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604337</commentid>
    <comment_count>2</comment_count>
      <attachid>387154</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-01-08 16:03:13 -0800</bug_when>
    <thetext>Created attachment 387154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604379</commentid>
    <comment_count>3</comment_count>
      <attachid>387154</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-01-08 17:04:05 -0800</bug_when>
    <thetext>Comment on attachment 387154
Patch

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

&gt; Source/WebCore/Modules/indexeddb/shared/IDBCursorRecord.h:67
&gt; +    encoder &lt;&lt; !!value;

How did this ever work?
Why does it need changing?  It was an still is a std::unique_ptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604382</commentid>
    <comment_count>4</comment_count>
      <attachid>387154</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-01-08 17:11:49 -0800</bug_when>
    <thetext>Comment on attachment 387154
Patch

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

&gt;&gt; Source/WebCore/Modules/indexeddb/shared/IDBCursorRecord.h:67
&gt;&gt; +    encoder &lt;&lt; !!value;
&gt; 
&gt; How did this ever work?
&gt; Why does it need changing?  It was an still is a std::unique_ptr.

If the pointer is not nullptr, we deref the pointer and encode IDBValue object. We encode !!value to indicate whether there is a subsequent encoded IDBValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604385</commentid>
    <comment_count>5</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-01-08 17:14:14 -0800</bug_when>
    <thetext>(In reply to Sihui Liu from comment #4)
&gt; Comment on attachment 387154 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=387154&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/indexeddb/shared/IDBCursorRecord.h:67
&gt; &gt;&gt; +    encoder &lt;&lt; !!value;
&gt; &gt; 
&gt; &gt; How did this ever work?
&gt; &gt; Why does it need changing?  It was an still is a std::unique_ptr.
&gt; 
&gt; If the pointer is not nullptr, we deref the pointer and encode IDBValue
&gt; object. We encode !!value to indicate whether there is a subsequent encoded
&gt; IDBValue.

It seems like we cannot encode a unique_ptr and pass that to another process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605764</commentid>
    <comment_count>6</comment_count>
      <attachid>387154</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-13 01:39:20 -0800</bug_when>
    <thetext>Comment on attachment 387154
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBCursor.cpp:355
&gt; +            m_prefetchedRecords.append(record);

Can we write it as the following:
if (auto prefetchedRecords = getResult.prefetchedRecords())
    m_prefetchedRecords = WTFMove(prefetchedRecords)

That would require IDBGetResult prefetchedRecords to return a Deque.

&gt; Source/WebCore/Modules/indexeddb/IDBGetResult.h:80
&gt; +    IDBGetResult(const IDBKeyData&amp; keyData, const IDBKeyData&amp; primaryKeyData, IDBValue&amp;&amp; value, const Optional&lt;IDBKeyPath&gt;&amp; keyPath, const Optional&lt;Vector&lt;IDBCursorRecord&gt;&gt;&amp; prefetechedRecords)

Can we change all/some of these to r-values, in particular prefetechedRecords?

&gt; Source/WebCore/Modules/indexeddb/IDBGetResult.h:100
&gt; +    const Optional&lt;Vector&lt;IDBCursorRecord&gt;&gt; prefetchedRecords() const { return m_prefetchedRecords; }

s/const Optional&lt;Vector&lt;IDBCursorRecord&gt;&gt;/const Optional&lt;Vector&lt;IDBCursorRecord&gt;&gt;&amp;/

What is the difference between m_prefetchedRecords = {} and m_prefetchedRecords = Vector&lt;IDBCursorRecord&gt; { }?
Can we change it to a Deque&lt;IDBCursorRecord&gt;?

&gt; Source/WebCore/Modules/indexeddb/shared/IDBCursorRecord.h:38
&gt;      std::unique_ptr&lt;IDBValue&gt; value;

Why is it a unique_ptr in IDBCursorRecord but not in other places like IDBCursor?
Can we use an IDBValue or an Optional&lt;IDBValue&gt;?
That may allow removing these move/copy assignmenst/constructors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619137</commentid>
    <comment_count>7</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-02-14 12:37:04 -0800</bug_when>
    <thetext>This is part of https://bugs.webkit.org/show_bug.cgi?id=207602, which has been fixed.

*** This bug has been marked as a duplicate of bug 207602 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387148</attachid>
            <date>2020-01-08 15:20:10 -0800</date>
            <delta_ts>2020-01-08 16:03:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205961-20200108152010.patch</filename>
            <type>text/plain</type>
            <size>8646</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU0YTdjNzk3OTVlMjk3
OWFhNjM4MzgwMjc1YmYzMTZkOWM0MTk0Mi4uZmM4YmM4YTQyMjU1NDVlNjg0Njc3MWRkYzVmMTky
ZTMzMDZhMjQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAxLTA4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEluZGV4ZWREQjogaW5jbHVk
ZSBwcmVmZXRjaGVkIGN1cnNvciByZWNvcmRzIGluIHJlc3VsdCBvZiBpdGVyYXRpbmcgY3Vyc29y
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU5NjEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3JrIHRv
d2FyZHMgY2FjaGluZyBwcmVmZXRjaGVkIGN1cnNvciByZWNvcmRzIGluIHdlYiBwcm9jZXNzLgor
CisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZSBzaW5jZSBwcmVmZXRjaGVkIGN1cnNvciByZWNv
cmRzIGFyZSBub3QgaW4gdXNlIHlldC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnNldEdldFJlc3VsdCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmg6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJHZXRS
ZXN1bHQ6OklEQkdldFJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJHZXRSZXN1bHQ6OnBy
ZWZldGNoZWRSZWNvcmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3VsdDo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3VsdDo6ZGVjb2RlKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vyc29yUmVjb3JkLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JSZWNvcmQ6OklEQkN1cnNvclJlY29yZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDdXJzb3JSZWNvcmQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJDdXJzb3JSZWNvcmQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJDdXJzb3JSZWNvcmQ6OmRlY29kZSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDIwLTAxLTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBlbmNvZGluZyBXZWJDb3JlOjpG
b250IG92ZXIgSVBDIGZvciBEaXNwbGF5TGlzdDo6RHJhd0dseXBocwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggMzY4ZWRjMjA0ODNiNTQx
YWNkN2IzYmY1OWJmNWNmMTdhMWM5M2EwYi4uZTlmMTllZjQ2NTEwYmI1ODY1MjY3NTU2ZDUzZjQ1
N2U3ZGE1ODVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3IuY3BwCkBAIC0zNDksNiArMzQ5LDEyIEBAIGJvb2wgSURCQ3Vyc29yOjpzZXRHZXRSZXN1
bHQoSURCUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgSURCR2V0UmVzdWx0JiBnZXRSZXN1bHQpCiAg
ICAgICAgIG1fa2V5UGF0aCA9IGdldFJlc3VsdC5rZXlQYXRoKCk7CiAgICAgfQogCisgICAgaWYg
KGF1dG8gcHJlZmV0Y2hlZFJlY29yZHMgPSBnZXRSZXN1bHQucHJlZmV0Y2hlZFJlY29yZHMoKSkg
eworICAgICAgICBtX3ByZWZldGNoZWRSZWNvcmRzLmNsZWFyKCk7CisgICAgICAgIGZvciAoYXV0
byByZWNvcmQgOiAqcHJlZmV0Y2hlZFJlY29yZHMpCisgICAgICAgICAgICBtX3ByZWZldGNoZWRS
ZWNvcmRzLmFwcGVuZChyZWNvcmQpOworICAgIH0KKwogICAgIG1fZ290VmFsdWUgPSB0cnVlOwog
ICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3IuaAppbmRleCA0NjIyZTcwMzM0NGIzNjA4MGE3MWRlYTMyZGY4YTUzMWRjZmM1OGFj
Li5hYjZkZjZkMWExMmU4MzU2MzZlYTRmYTY0OGZhOGQ0MDI5NDcyNjE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaApAQCAtMTEzLDYgKzExMyw4IEBA
IHByaXZhdGU6CiAgICAgSlNWYWx1ZUluV3JhcHBlZE9iamVjdCBtX2tleVdyYXBwZXI7CiAgICAg
SlNWYWx1ZUluV3JhcHBlZE9iamVjdCBtX3ByaW1hcnlLZXlXcmFwcGVyOwogICAgIEpTVmFsdWVJ
bldyYXBwZWRPYmplY3QgbV92YWx1ZVdyYXBwZXI7CisKKyAgICBEZXF1ZTxJREJDdXJzb3JSZWNv
cmQ+IG1fcHJlZmV0Y2hlZFJlY29yZHM7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkdldFJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmgKaW5kZXggZTg3YzM5MDEyMzM0OWQxMTUzZDFm
YzA4YzllNmIyYmY3NDUxYjI1My4uMjlhYjgyYTU0MzYwYTA3NGU1NGNiMzRjYTlkMWQyZDkyZThj
YzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0
UmVzdWx0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0UmVz
dWx0LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQog
CisjaW5jbHVkZSAiSURCQ3Vyc29yUmVjb3JkLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5j
bHVkZSAiSURCS2V5RGF0YS5oIgogI2luY2x1ZGUgIklEQktleVBhdGguaCIKQEAgLTc2LDYgKzc3
LDE1IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCisgICAgSURCR2V0UmVzdWx0KGNvbnN0IElE
QktleURhdGEmIGtleURhdGEsIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXlEYXRhLCBJREJW
YWx1ZSYmIHZhbHVlLCBjb25zdCBPcHRpb25hbDxJREJLZXlQYXRoPiYga2V5UGF0aCwgY29uc3Qg
T3B0aW9uYWw8VmVjdG9yPElEQkN1cnNvclJlY29yZD4+JiBwcmVmZXRlY2hlZFJlY29yZHMpCisg
ICAgICAgIDogbV92YWx1ZShXVEZNb3ZlKHZhbHVlKSkKKyAgICAgICAgLCBtX2tleURhdGEoa2V5
RGF0YSkKKyAgICAgICAgLCBtX3ByaW1hcnlLZXlEYXRhKHByaW1hcnlLZXlEYXRhKQorICAgICAg
ICAsIG1fa2V5UGF0aChrZXlQYXRoKQorICAgICAgICAsIG1fcHJlZmV0Y2hlZFJlY29yZHMocHJl
ZmV0ZWNoZWRSZWNvcmRzKQorICAgIHsKKyAgICB9CisKICAgICBlbnVtIElzb2xhdGVkQ29weVRh
ZyB7IElzb2xhdGVkQ29weSB9OwogICAgIElEQkdldFJlc3VsdChjb25zdCBJREJHZXRSZXN1bHQm
LCBJc29sYXRlZENvcHlUYWcpOwogCkBAIC04Nyw2ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBjb25z
dCBJREJLZXlEYXRhJiBrZXlEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9rZXlEYXRhOyB9CiAgICAg
Y29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleURhdGEoKSBjb25zdCB7IHJldHVybiBtX3ByaW1h
cnlLZXlEYXRhOyB9CiAgICAgY29uc3QgT3B0aW9uYWw8SURCS2V5UGF0aD4mIGtleVBhdGgoKSBj
b25zdCB7IHJldHVybiBtX2tleVBhdGg7IH0KKyAgICBjb25zdCBPcHRpb25hbDxWZWN0b3I8SURC
Q3Vyc29yUmVjb3JkPj4gcHJlZmV0Y2hlZFJlY29yZHMoKSBjb25zdCB7IHJldHVybiBtX3ByZWZl
dGNoZWRSZWNvcmRzOyB9CiAgICAgYm9vbCBpc0RlZmluZWQoKSBjb25zdCB7IHJldHVybiBtX2lz
RGVmaW5lZDsgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OwpAQCAtMTAxLDEzICsxMTIsMTQgQEAgcHJpdmF0ZToKICAgICBJREJLZXlE
YXRhIG1fa2V5RGF0YTsKICAgICBJREJLZXlEYXRhIG1fcHJpbWFyeUtleURhdGE7CiAgICAgT3B0
aW9uYWw8SURCS2V5UGF0aD4gbV9rZXlQYXRoOworICAgIE9wdGlvbmFsPFZlY3RvcjxJREJDdXJz
b3JSZWNvcmQ+PiBtX3ByZWZldGNoZWRSZWNvcmRzOwogICAgIGJvb2wgbV9pc0RlZmluZWQgeyB0
cnVlIH07CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBJREJHZXRSZXN1bHQ6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgbV9rZXlE
YXRhIDw8IG1fcHJpbWFyeUtleURhdGEgPDwgbV9rZXlQYXRoIDw8IG1faXNEZWZpbmVkIDw8IG1f
dmFsdWU7CisgICAgZW5jb2RlciA8PCBtX2tleURhdGEgPDwgbV9wcmltYXJ5S2V5RGF0YSA8PCBt
X2tleVBhdGggPDwgbV9pc0RlZmluZWQgPDwgbV92YWx1ZSA8PCBtX3ByZWZldGNoZWRSZWNvcmRz
OwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMTM3LDYgKzE0OSw5IEBAIGJvb2wg
SURCR2V0UmVzdWx0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSURCR2V0UmVzdWx0JiByZXN1
bHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXN1bHQubV92YWx1ZSA9IFdURk1vdmUo
KnZhbHVlKTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fcHJlZmV0Y2hlZFJl
Y29yZHMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkN1
cnNvclJlY29yZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
QkN1cnNvclJlY29yZC5oCmluZGV4IGI0ZjU1ZmQ2NmI0YWExZmMyZjgxZjRhNzQ5Mzk2OTFjMDA5
NjI0ZTEuLmI5ZjVhZGIzOGYwM2Q4NmFjOTYxZDlkMjJjNTdlZjg4N2QwOGUyZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJDdXJzb3JSZWNv
cmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vy
c29yUmVjb3JkLmgKQEAgLTM3LDYgKzM3LDI0IEBAIHN0cnVjdCBJREJDdXJzb3JSZWNvcmQgewog
ICAgIElEQktleURhdGEgcHJpbWFyeUtleTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCVmFsdWU+
IHZhbHVlOwogCisgICAgSURCQ3Vyc29yUmVjb3JkKCkgPSBkZWZhdWx0OworICAgIElEQkN1cnNv
clJlY29yZChjb25zdCBJREJDdXJzb3JSZWNvcmQmIHJlY29yZCkKKyAgICAgICAgOiBrZXkocmVj
b3JkLmtleSkKKyAgICAgICAgLCBwcmltYXJ5S2V5KHJlY29yZC5wcmltYXJ5S2V5KQorICAgICAg
ICAsIHZhbHVlKG1ha2VVbmlxdWU8SURCVmFsdWU+KCpyZWNvcmQudmFsdWUpKQorICAgIHsKKyAg
ICB9CisgICAgSURCQ3Vyc29yUmVjb3JkKElEQkN1cnNvclJlY29yZCYmKSA9IGRlZmF1bHQ7Cisg
ICAgSURCQ3Vyc29yUmVjb3JkJiBvcGVyYXRvcj0oY29uc3QgSURCQ3Vyc29yUmVjb3JkJiBvdGhl
cikKKyAgICB7CisgICAgICAgIGtleSA9IG90aGVyLmtleTsKKyAgICAgICAgcHJpbWFyeUtleSA9
IG90aGVyLnByaW1hcnlLZXk7CisgICAgICAgIHZhbHVlID0gbWFrZVVuaXF1ZTxJREJWYWx1ZT4o
Km90aGVyLnZhbHVlKTsKKworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIElEQkN1
cnNvclJlY29yZCYgb3BlcmF0b3I9KElEQkN1cnNvclJlY29yZCYmKSA9IGRlZmF1bHQ7CisKICAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBJ
REJDdXJzb3JSZWNvcmQmKTsKIH07CkBAIC00NCw3ICs2MiwxMSBAQCBzdHJ1Y3QgSURCQ3Vyc29y
UmVjb3JkIHsKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIElEQkN1cnNvclJlY29yZDo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBrZXkgPDwg
cHJpbWFyeUtleSA8PCB2YWx1ZTsKKyAgICBlbmNvZGVyIDw8IGtleSA8PCBwcmltYXJ5S2V5Owor
CisgICAgZW5jb2RlciA8PCAhIXZhbHVlOworICAgIGlmICh2YWx1ZSkKKyAgICAgICAgZW5jb2Rl
ciA8PCAqdmFsdWU7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC01Niw4ICs3OCwx
NSBAQCBib29sIElEQkN1cnNvclJlY29yZDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQkN1
cnNvclJlY29yZCYgcmVjb3JkKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVjb3JkLnByaW1h
cnlLZXkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlY29yZC52YWx1ZSkpCisgICAgYm9vbCBoYXNWYWx1ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGhhc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChoYXNWYWx1ZSkg
eworICAgICAgICBhdXRvIHZhbHVlID0gbWFrZVVuaXF1ZTxJREJWYWx1ZT4oKTsKKyAgICAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZSgqdmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZWNvcmQudmFsdWUgPSBXVEZNb3ZlKHZhbHVlKTsKKyAgICB9CiAKICAgICByZXR1
cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA0NTE0YWY2YzUyMzkxMDExODc3OTNiZjlkZmUzOGVhY2E4NjM0ZTRm
Li44NGRlNWVlYWU2OGY5ZWY1OGI1MGMxMTE0NTExNWYyMDVhMjBlMWE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDA2LDcg
KzE0MDYsNyBAQAogCQk1MTBENEEzNDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJy
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0
QTJFMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEQ0QTM3MTAzMTY1RUUwMDQ5
RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJl
YW1IYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk1MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEz
MjEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTExMEZDRkMxRTAzNjQx
RDAwNkY4RDBCIC8qIElEQkN1cnNvclJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMEZDRkIxRTAzNjJBNTAwNkY4RDBCIC8qIElEQkN1cnNv
clJlY29yZC5oICovOyB9OworCQk1MTEwRkNGQzFFMDM2NDFEMDA2RjhEMEIgLyogSURCQ3Vyc29y
UmVjb3JkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTEwRkNGQjFFMDM2MkE1MDA2RjhEMEIgLyogSURCQ3Vyc29yUmVjb3JkLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTExRUMxMjgxQzUwQUFDQTAw
MzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxp
emF0aW9uLmggKi87IH07CiAJCTUxMUVDMTJDMUM1MEFCQkYwMDMyRjk4MyAvKiBTUUxpdGVJREJU
cmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTExRUMxMkExQzUwQUJCQTAwMzJGOTgzIC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9uLmggKi87
IH07CiAJCTUxMUVDMTMwMUM1MEFCRjUwMDMyRjk4MyAvKiBTUUxpdGVJREJDdXJzb3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTJFMUM1MEFC
RUMwMDMyRjk4MyAvKiBTUUxpdGVJREJDdXJzb3IuaCAqLzsgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387154</attachid>
            <date>2020-01-08 16:03:13 -0800</date>
            <delta_ts>2022-02-10 16:50:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205961-20200108160312.patch</filename>
            <type>text/plain</type>
            <size>9273</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU0YTdjNzk3OTVlMjk3
OWFhNjM4MzgwMjc1YmYzMTZkOWM0MTk0Mi4uMDg0Yzk1MzIyMjBmMzE0ODRlYWRiNjBiYTZkZjll
NTBjM2M2ZjJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTAxLTA4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEluZGV4ZWREQjogaW5jbHVk
ZSBwcmVmZXRjaGVkIGN1cnNvciByZWNvcmRzIGluIHJlc3VsdCBvZiBpdGVyYXRpbmcgY3Vyc29y
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU5NjEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3JrIHRv
d2FyZHMgY2FjaGluZyBwcmVmZXRjaGVkIGN1cnNvciByZWNvcmRzIGluIHdlYiBwcm9jZXNzLgor
CisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZSBzaW5jZSBwcmVmZXRjaGVkIGN1cnNvciByZWNv
cmRzIGFyZSBub3QgaW4gdXNlIHlldC4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkN1cnNvcjo6c2V0R2V0UmVzdWx0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3IuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3VsdDo6SURCR2V0UmVzdWx0KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkdldFJlc3VsdDo6cHJlZmV0Y2hlZFJlY29yZHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCR2V0UmVzdWx0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCR2V0UmVzdWx0OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJDdXJzb3JSZWNvcmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclJlY29y
ZDo6SURCQ3Vyc29yUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclJlY29yZDo6
b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclJlY29yZDo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclJlY29yZDo6ZGVjb2RlKToKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMDEtMDggIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIGVuY29kaW5nIFdlYkNvcmU6OkZvbnQgb3ZlciBJUEMgZm9yIERpc3BsYXlMaXN0OjpE
cmF3R2x5cGhzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA4MTJlZDQ2OWQyMDkwODU1OGNkZDdjZGU4
MjgzY2VlODg2YjhlY2MwLi4zMzAzNjI2NjZkZGNlZDFkYzY5MDFkNDE3ODc1OTA0NDc5ZTVlNjNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTY3LDYgKzY3LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24uaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmgKIAorICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJDdXJzb3JSZWNvcmQuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJDdXJz
b3JJbmZvLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmgK
ICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggMzY4ZWRjMjA0ODNiNTQx
YWNkN2IzYmY1OWJmNWNmMTdhMWM5M2EwYi4uZTlmMTllZjQ2NTEwYmI1ODY1MjY3NTU2ZDUzZjQ1
N2U3ZGE1ODVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3IuY3BwCkBAIC0zNDksNiArMzQ5LDEyIEBAIGJvb2wgSURCQ3Vyc29yOjpzZXRHZXRSZXN1
bHQoSURCUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgSURCR2V0UmVzdWx0JiBnZXRSZXN1bHQpCiAg
ICAgICAgIG1fa2V5UGF0aCA9IGdldFJlc3VsdC5rZXlQYXRoKCk7CiAgICAgfQogCisgICAgaWYg
KGF1dG8gcHJlZmV0Y2hlZFJlY29yZHMgPSBnZXRSZXN1bHQucHJlZmV0Y2hlZFJlY29yZHMoKSkg
eworICAgICAgICBtX3ByZWZldGNoZWRSZWNvcmRzLmNsZWFyKCk7CisgICAgICAgIGZvciAoYXV0
byByZWNvcmQgOiAqcHJlZmV0Y2hlZFJlY29yZHMpCisgICAgICAgICAgICBtX3ByZWZldGNoZWRS
ZWNvcmRzLmFwcGVuZChyZWNvcmQpOworICAgIH0KKwogICAgIG1fZ290VmFsdWUgPSB0cnVlOwog
ICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3IuaAppbmRleCA0NjIyZTcwMzM0NGIzNjA4MGE3MWRlYTMyZGY4YTUzMWRjZmM1OGFj
Li5hYjZkZjZkMWExMmU4MzU2MzZlYTRmYTY0OGZhOGQ0MDI5NDcyNjE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaApAQCAtMTEzLDYgKzExMyw4IEBA
IHByaXZhdGU6CiAgICAgSlNWYWx1ZUluV3JhcHBlZE9iamVjdCBtX2tleVdyYXBwZXI7CiAgICAg
SlNWYWx1ZUluV3JhcHBlZE9iamVjdCBtX3ByaW1hcnlLZXlXcmFwcGVyOwogICAgIEpTVmFsdWVJ
bldyYXBwZWRPYmplY3QgbV92YWx1ZVdyYXBwZXI7CisKKyAgICBEZXF1ZTxJREJDdXJzb3JSZWNv
cmQ+IG1fcHJlZmV0Y2hlZFJlY29yZHM7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkdldFJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmgKaW5kZXggZTg3YzM5MDEyMzM0OWQxMTUzZDFm
YzA4YzllNmIyYmY3NDUxYjI1My4uMjlhYjgyYTU0MzYwYTA3NGU1NGNiMzRjYTlkMWQyZDkyZThj
YzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0
UmVzdWx0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0UmVz
dWx0LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQog
CisjaW5jbHVkZSAiSURCQ3Vyc29yUmVjb3JkLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5j
bHVkZSAiSURCS2V5RGF0YS5oIgogI2luY2x1ZGUgIklEQktleVBhdGguaCIKQEAgLTc2LDYgKzc3
LDE1IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCisgICAgSURCR2V0UmVzdWx0KGNvbnN0IElE
QktleURhdGEmIGtleURhdGEsIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXlEYXRhLCBJREJW
YWx1ZSYmIHZhbHVlLCBjb25zdCBPcHRpb25hbDxJREJLZXlQYXRoPiYga2V5UGF0aCwgY29uc3Qg
T3B0aW9uYWw8VmVjdG9yPElEQkN1cnNvclJlY29yZD4+JiBwcmVmZXRlY2hlZFJlY29yZHMpCisg
ICAgICAgIDogbV92YWx1ZShXVEZNb3ZlKHZhbHVlKSkKKyAgICAgICAgLCBtX2tleURhdGEoa2V5
RGF0YSkKKyAgICAgICAgLCBtX3ByaW1hcnlLZXlEYXRhKHByaW1hcnlLZXlEYXRhKQorICAgICAg
ICAsIG1fa2V5UGF0aChrZXlQYXRoKQorICAgICAgICAsIG1fcHJlZmV0Y2hlZFJlY29yZHMocHJl
ZmV0ZWNoZWRSZWNvcmRzKQorICAgIHsKKyAgICB9CisKICAgICBlbnVtIElzb2xhdGVkQ29weVRh
ZyB7IElzb2xhdGVkQ29weSB9OwogICAgIElEQkdldFJlc3VsdChjb25zdCBJREJHZXRSZXN1bHQm
LCBJc29sYXRlZENvcHlUYWcpOwogCkBAIC04Nyw2ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBjb25z
dCBJREJLZXlEYXRhJiBrZXlEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9rZXlEYXRhOyB9CiAgICAg
Y29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleURhdGEoKSBjb25zdCB7IHJldHVybiBtX3ByaW1h
cnlLZXlEYXRhOyB9CiAgICAgY29uc3QgT3B0aW9uYWw8SURCS2V5UGF0aD4mIGtleVBhdGgoKSBj
b25zdCB7IHJldHVybiBtX2tleVBhdGg7IH0KKyAgICBjb25zdCBPcHRpb25hbDxWZWN0b3I8SURC
Q3Vyc29yUmVjb3JkPj4gcHJlZmV0Y2hlZFJlY29yZHMoKSBjb25zdCB7IHJldHVybiBtX3ByZWZl
dGNoZWRSZWNvcmRzOyB9CiAgICAgYm9vbCBpc0RlZmluZWQoKSBjb25zdCB7IHJldHVybiBtX2lz
RGVmaW5lZDsgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OwpAQCAtMTAxLDEzICsxMTIsMTQgQEAgcHJpdmF0ZToKICAgICBJREJLZXlE
YXRhIG1fa2V5RGF0YTsKICAgICBJREJLZXlEYXRhIG1fcHJpbWFyeUtleURhdGE7CiAgICAgT3B0
aW9uYWw8SURCS2V5UGF0aD4gbV9rZXlQYXRoOworICAgIE9wdGlvbmFsPFZlY3RvcjxJREJDdXJz
b3JSZWNvcmQ+PiBtX3ByZWZldGNoZWRSZWNvcmRzOwogICAgIGJvb2wgbV9pc0RlZmluZWQgeyB0
cnVlIH07CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBJREJHZXRSZXN1bHQ6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgbV9rZXlE
YXRhIDw8IG1fcHJpbWFyeUtleURhdGEgPDwgbV9rZXlQYXRoIDw8IG1faXNEZWZpbmVkIDw8IG1f
dmFsdWU7CisgICAgZW5jb2RlciA8PCBtX2tleURhdGEgPDwgbV9wcmltYXJ5S2V5RGF0YSA8PCBt
X2tleVBhdGggPDwgbV9pc0RlZmluZWQgPDwgbV92YWx1ZSA8PCBtX3ByZWZldGNoZWRSZWNvcmRz
OwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMTM3LDYgKzE0OSw5IEBAIGJvb2wg
SURCR2V0UmVzdWx0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSURCR2V0UmVzdWx0JiByZXN1
bHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXN1bHQubV92YWx1ZSA9IFdURk1vdmUo
KnZhbHVlKTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fcHJlZmV0Y2hlZFJl
Y29yZHMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkN1
cnNvclJlY29yZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
QkN1cnNvclJlY29yZC5oCmluZGV4IGI0ZjU1ZmQ2NmI0YWExZmMyZjgxZjRhNzQ5Mzk2OTFjMDA5
NjI0ZTEuLmI5ZjVhZGIzOGYwM2Q4NmFjOTYxZDlkMjJjNTdlZjg4N2QwOGUyZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJDdXJzb3JSZWNv
cmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vy
c29yUmVjb3JkLmgKQEAgLTM3LDYgKzM3LDI0IEBAIHN0cnVjdCBJREJDdXJzb3JSZWNvcmQgewog
ICAgIElEQktleURhdGEgcHJpbWFyeUtleTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCVmFsdWU+
IHZhbHVlOwogCisgICAgSURCQ3Vyc29yUmVjb3JkKCkgPSBkZWZhdWx0OworICAgIElEQkN1cnNv
clJlY29yZChjb25zdCBJREJDdXJzb3JSZWNvcmQmIHJlY29yZCkKKyAgICAgICAgOiBrZXkocmVj
b3JkLmtleSkKKyAgICAgICAgLCBwcmltYXJ5S2V5KHJlY29yZC5wcmltYXJ5S2V5KQorICAgICAg
ICAsIHZhbHVlKG1ha2VVbmlxdWU8SURCVmFsdWU+KCpyZWNvcmQudmFsdWUpKQorICAgIHsKKyAg
ICB9CisgICAgSURCQ3Vyc29yUmVjb3JkKElEQkN1cnNvclJlY29yZCYmKSA9IGRlZmF1bHQ7Cisg
ICAgSURCQ3Vyc29yUmVjb3JkJiBvcGVyYXRvcj0oY29uc3QgSURCQ3Vyc29yUmVjb3JkJiBvdGhl
cikKKyAgICB7CisgICAgICAgIGtleSA9IG90aGVyLmtleTsKKyAgICAgICAgcHJpbWFyeUtleSA9
IG90aGVyLnByaW1hcnlLZXk7CisgICAgICAgIHZhbHVlID0gbWFrZVVuaXF1ZTxJREJWYWx1ZT4o
Km90aGVyLnZhbHVlKTsKKworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIElEQkN1
cnNvclJlY29yZCYgb3BlcmF0b3I9KElEQkN1cnNvclJlY29yZCYmKSA9IGRlZmF1bHQ7CisKICAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBJ
REJDdXJzb3JSZWNvcmQmKTsKIH07CkBAIC00NCw3ICs2MiwxMSBAQCBzdHJ1Y3QgSURCQ3Vyc29y
UmVjb3JkIHsKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIElEQkN1cnNvclJlY29yZDo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBrZXkgPDwg
cHJpbWFyeUtleSA8PCB2YWx1ZTsKKyAgICBlbmNvZGVyIDw8IGtleSA8PCBwcmltYXJ5S2V5Owor
CisgICAgZW5jb2RlciA8PCAhIXZhbHVlOworICAgIGlmICh2YWx1ZSkKKyAgICAgICAgZW5jb2Rl
ciA8PCAqdmFsdWU7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC01Niw4ICs3OCwx
NSBAQCBib29sIElEQkN1cnNvclJlY29yZDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQkN1
cnNvclJlY29yZCYgcmVjb3JkKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVjb3JkLnByaW1h
cnlLZXkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlY29yZC52YWx1ZSkpCisgICAgYm9vbCBoYXNWYWx1ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGhhc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChoYXNWYWx1ZSkg
eworICAgICAgICBhdXRvIHZhbHVlID0gbWFrZVVuaXF1ZTxJREJWYWx1ZT4oKTsKKyAgICAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZSgqdmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZWNvcmQudmFsdWUgPSBXVEZNb3ZlKHZhbHVlKTsKKyAgICB9CiAKICAgICByZXR1
cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA0NTE0YWY2YzUyMzkxMDExODc3OTNiZjlkZmUzOGVhY2E4NjM0ZTRm
Li44NGRlNWVlYWU2OGY5ZWY1OGI1MGMxMTE0NTExNWYyMDVhMjBlMWE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDA2LDcg
KzE0MDYsNyBAQAogCQk1MTBENEEzNDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJy
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0
QTJFMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEQ0QTM3MTAzMTY1RUUwMDQ5
RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJl
YW1IYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk1MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEz
MjEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTExMEZDRkMxRTAzNjQx
RDAwNkY4RDBCIC8qIElEQkN1cnNvclJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMEZDRkIxRTAzNjJBNTAwNkY4RDBCIC8qIElEQkN1cnNv
clJlY29yZC5oICovOyB9OworCQk1MTEwRkNGQzFFMDM2NDFEMDA2RjhEMEIgLyogSURCQ3Vyc29y
UmVjb3JkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTEwRkNGQjFFMDM2MkE1MDA2RjhEMEIgLyogSURCQ3Vyc29yUmVjb3JkLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTExRUMxMjgxQzUwQUFDQTAw
MzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxp
emF0aW9uLmggKi87IH07CiAJCTUxMUVDMTJDMUM1MEFCQkYwMDMyRjk4MyAvKiBTUUxpdGVJREJU
cmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTExRUMxMkExQzUwQUJCQTAwMzJGOTgzIC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9uLmggKi87
IH07CiAJCTUxMUVDMTMwMUM1MEFCRjUwMDMyRjk4MyAvKiBTUUxpdGVJREJDdXJzb3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTJFMUM1MEFC
RUMwMDMyRjk4MyAvKiBTUUxpdGVJREJDdXJzb3IuaCAqLzsgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>