<?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>224083</bug_id>
          
          <creation_ts>2021-04-01 15:40:04 -0700</creation_ts>
          <short_desc>WebCrypto in Safari will not AES-GCM encrypt 0 bytes</short_desc>
          <delta_ts>2021-04-08 14:31:08 -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>WebCore Misc.</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1746301</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-04-01 15:40:04 -0700</bug_when>
    <thetext>WebCrypto in Safari will not AES-GCM encrypt 0 bytes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746302</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-04-01 15:40:16 -0700</bug_when>
    <thetext>rdar://75093377</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746305</commentid>
    <comment_count>2</comment_count>
      <attachid>424955</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-04-01 15:45:19 -0700</bug_when>
    <thetext>Created attachment 424955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746414</commentid>
    <comment_count>3</comment_count>
      <attachid>424955</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-04-02 01:22:36 -0700</bug_when>
    <thetext>Comment on attachment 424955
Patch

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

&gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:42
&gt; +    cipherText.reserveCapacity(cipherText.size() + desiredTagLengthInBytes);

Can we just do Vector&lt;uint8_t&gt; cipherText(plainText.size() + desiredTagLengthInBytes) and update below code to memcpy the tag?
This would allow to do a single allocation.

&gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:61
&gt; +    plainText.reserveCapacity(cipherText.size());

Are we guaranteed that cipherText.size() &lt;= desiredTagLengthInBytes?
If not, can we just write:
if (cipherText.size() &lt;= desiredTagLengthInBytes)
    return Vector&lt;uint8_t&gt; { };

If this is guaranteed, can we do:
auto length = cipherText.size() - desiredTagLengthInBytes;
if (!length)
    return Vector&lt;uint8_t&gt; { };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746748</commentid>
    <comment_count>4</comment_count>
      <attachid>424955</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-04-02 19:17:01 -0700</bug_when>
    <thetext>Comment on attachment 424955
Patch

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

Thanks Youenn for reviewing this patch.

&gt;&gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:42
&gt;&gt; +    cipherText.reserveCapacity(cipherText.size() + desiredTagLengthInBytes);
&gt; 
&gt; Can we just do Vector&lt;uint8_t&gt; cipherText(plainText.size() + desiredTagLengthInBytes) and update below code to memcpy the tag?
&gt; This would allow to do a single allocation.

Good catch. Fixed.

&gt;&gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:61
&gt;&gt; +    plainText.reserveCapacity(cipherText.size());
&gt; 
&gt; Are we guaranteed that cipherText.size() &lt;= desiredTagLengthInBytes?
&gt; If not, can we just write:
&gt; if (cipherText.size() &lt;= desiredTagLengthInBytes)
&gt;     return Vector&lt;uint8_t&gt; { };
&gt; 
&gt; If this is guaranteed, can we do:
&gt; auto length = cipherText.size() - desiredTagLengthInBytes;
&gt; if (!length)
&gt;     return Vector&lt;uint8_t&gt; { };

We cannot return empty vector directly. The cipher will contain the tag which will need to be validated by the AES-GCM algorithm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746752</commentid>
    <comment_count>5</comment_count>
      <attachid>425078</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-04-02 19:20:26 -0700</bug_when>
    <thetext>Created attachment 425078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747491</commentid>
    <comment_count>6</comment_count>
      <attachid>425078</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-04-06 10:10:31 -0700</bug_when>
    <thetext>Comment on attachment 425078
Patch

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

&gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:73
&gt; +    plainText.shrink(cipherText.size() - desiredTagLengthInBytes);

You could use offset here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747514</commentid>
    <comment_count>7</comment_count>
      <attachid>425078</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-04-06 10:33:58 -0700</bug_when>
    <thetext>Comment on attachment 425078
Patch

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

Thanks Youenn for r+ this patch.

&gt;&gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:73
&gt;&gt; +    plainText.shrink(cipherText.size() - desiredTagLengthInBytes);
&gt; 
&gt; You could use offset here.

Good catch. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747515</commentid>
    <comment_count>8</comment_count>
      <attachid>425300</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-04-06 10:39:15 -0700</bug_when>
    <thetext>Created attachment 425300
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747518</commentid>
    <comment_count>9</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-04-06 10:44:39 -0700</bug_when>
    <thetext>rdar://59951871</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747534</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-06 11:10:36 -0700</bug_when>
    <thetext>Committed r275535: &lt;https://commits.webkit.org/r275535&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425300.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747653</commentid>
    <comment_count>11</comment_count>
      <attachid>425300</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-06 14:46:33 -0700</bug_when>
    <thetext>Comment on attachment 425300
Patch for landing

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

&gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:40
&gt; +    // This is a wordaround for rdar://75093377. Force the buffer to be a non null pointer.

Typo in &quot;workaround&quot; here, and 2 other places below.

Also not sure we should call this a &quot;workaround&quot;. Just because we misunderstood and thought the pointer could be null, doesn’t mean we should comment each line saying &quot;workaround&quot; like this.

Honestly, I find the relationship of the comment to he code confusing. I am fairly expect on how Vector works and I can’t find anything here that is &quot;forcing&quot; a buffer to be a non-null pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748464</commentid>
    <comment_count>12</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-04-08 14:02:03 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #11)
&gt; Comment on attachment 425300 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425300&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:40
&gt; &gt; +    // This is a wordaround for rdar://75093377. Force the buffer to be a non null pointer.
&gt; 
&gt; Typo in &quot;workaround&quot; here, and 2 other places below.
&gt; 
&gt; Also not sure we should call this a &quot;workaround&quot;. Just because we
&gt; misunderstood and thought the pointer could be null, doesn’t mean we should
&gt; comment each line saying &quot;workaround&quot; like this.
&gt; 
&gt; Honestly, I find the relationship of the comment to he code confusing. I am
&gt; fairly expect on how Vector works and I can’t find anything here that is
&gt; &quot;forcing&quot; a buffer to be a non-null pointer.

Got you. Will land a follow up to fix the comments. As long as the Vector&apos;s capacity is larger than 0, then .data() will be non-null pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748473</commentid>
    <comment_count>13</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-04-08 14:31:08 -0700</bug_when>
    <thetext>A follow up according to Darin&apos;s comment.
Committed r275678: &lt;https://commits.webkit.org/r275678&gt;
Committed r275678 (236314@main): &lt;https://commits.webkit.org/236314@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424955</attachid>
            <date>2021-04-01 15:45:19 -0700</date>
            <delta_ts>2021-04-02 19:20:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224083-20210401154518.patch</filename>
            <type>text/plain</type>
            <size>6124</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyYWQwYTg2ODdmZjZk
YmZjODViNWE2MTlkMjIzNWNlOTQ1ODgwMC4uN2IwZWE3NjkyYWI4ODE5ODBjZGYxZWEwNjdlMWU0
YTFmOGQ3ZDFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA0LTAxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViQ3J5cHRvIGluIFNh
ZmFyaSB3aWxsIG5vdCBBRVMtR0NNIGVuY3J5cHQgMCBieXRlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MDgzCisgICAgICAgIDxyZGFyOi8vNzUw
OTMzNzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q29tbW9uQ3J5cHRvIHdpbGwgYmFpbCBvdXQgYm90aCB0aGUgZW5jcnlwdGlvbiBhbmQgZGVjcnlw
dGlvbiBwcm9jZXNzIGlmIHRoZSBkYXRhT3V0IGlzIGEgbnVsbCBwb2ludGVyLgorICAgICAgICBU
byB3b3JrYXJvdW5kIHRoZSBpc3N1ZSwgdGhpcyBwYXRjaCBmb3JjZXMgdGhlIGRhdGFPdXQgdG8g
YmUgYSBub24tbnVsbCBwb2ludGVyLgorCisgICAgICAgIFRlc3Q6IGNyeXB0by9zdWJ0bGUvYWVz
LWdjbS1nZW5lcmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwtcGxhaW4tdGV4dC5odG1sCisK
KyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6ZW5jcnlwdEFFU19HQ00pOgorICAgICAgICAoV2ViQ29yZTo6ZGVjeXB0
QUVTX0dDTSk6CisKIDIwMjEtMDQtMDEgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIE1ha2UgRm9udENhY2hlIGNvbnN0cnVjdGFibGUgYW5kIHNhZmUgdG8gdXNlIG9m
ZiB0aGUgbWFpbiB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFj
L0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwCmluZGV4IDkyMzQ0MTUxOGU3Yjk5YTdhODdj
YjgzMTcwNTJjNzg1NDBlMGFiZTQuLjQ4MzYzMTY1YzQzZTA1NDhkMTdjNDQ0NTI2OTIzZTIxZWU0
MTQyMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3Jp
dGhtQUVTX0dDTU1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9B
bGdvcml0aG1BRVNfR0NNTWFjLmNwcApAQCAtMzgsNiArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBlbmNyeXB0QUVTX0dDTShj
b25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBwbGFpblRleHQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYWRk
aXRpb25hbERhdGEsIHNpemVfdCBkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcykKIHsKICAgICBWZWN0
b3I8dWludDhfdD4gY2lwaGVyVGV4dChwbGFpblRleHQuc2l6ZSgpKTsgLy8gUGVyIHNlY3Rpb24g
NS4yLjEuMjogaHR0cDovL252bHB1YnMubmlzdC5nb3YvbmlzdHB1YnMvTGVnYWN5L1NQL25pc3Rz
cGVjaWFscHVibGljYXRpb244MDAtMzhkLnBkZgorICAgIC8vIFRoaXMgaXMgYSB3b3JkYXJvdW5k
IGZvciByZGFyOi8vNzUwOTMzNzcuIEZvcmNlIHRoZSBidWZmZXIgdG8gYmUgYSBub24gbnVsbCBw
b2ludGVyLgorICAgIGNpcGhlclRleHQucmVzZXJ2ZUNhcGFjaXR5KGNpcGhlclRleHQuc2l6ZSgp
ICsgZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXMpOworCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHRhZyhk
ZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcyk7CiAgICAgLy8gdGFnTGVuZ3RoIGlzIGFjdHVhbCBhbiBp
bnB1dCA8cmRhcjovL3Byb2JsZW0vMzA2NjAwNzQ+CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KQEAgLTU0LDYgKzU3LDkgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rv
cjx1aW50OF90Pj4gZW5jcnlwdEFFU19HQ00oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY28K
IHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IGRlY3lwdEFFU19HQ00oY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgY2lwaGVyVGV4dCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBhZGRpdGlv
bmFsRGF0YSwgc2l6ZV90IGRlc2lyZWRUYWdMZW5ndGhJbkJ5dGVzKQogewogICAgIFZlY3Rvcjx1
aW50OF90PiBwbGFpblRleHQoY2lwaGVyVGV4dC5zaXplKCkgLSBkZXNpcmVkVGFnTGVuZ3RoSW5C
eXRlcyk7IC8vIFBlciBzZWN0aW9uIDUuMi4xLjI6IGh0dHA6Ly9udmxwdWJzLm5pc3QuZ292L25p
c3RwdWJzL0xlZ2FjeS9TUC9uaXN0c3BlY2lhbHB1YmxpY2F0aW9uODAwLTM4ZC5wZGYKKyAgICAv
LyBUaGlzIGlzIGEgd29yZGFyb3VuZCBmb3IgcmRhcjovLzc1MDkzMzc3LiBGb3JjZSB0aGUgYnVm
ZmVyIHRvIGJlIGEgbm9uIG51bGwgcG9pbnRlci4KKyAgICBwbGFpblRleHQucmVzZXJ2ZUNhcGFj
aXR5KGNpcGhlclRleHQuc2l6ZSgpKTsKKwogICAgIFZlY3Rvcjx1aW50OF90PiB0YWcoZGVzaXJl
ZFRhZ0xlbmd0aEluQnl0ZXMpOwogICAgIHNpemVfdCBvZmZzZXQgPSBjaXBoZXJUZXh0LnNpemUo
KSAtIGRlc2lyZWRUYWdMZW5ndGhJbkJ5dGVzOwogICAgIC8vIHRhZ0xlbmd0aCBpcyBhY3R1YWwg
YW4gaW5wdXQgPHJkYXI6Ly9wcm9ibGVtLzMwNjYwMDc0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc3MmRjZjJhMjJjNjQ2
ZWQyYjQzODFlNDlkZjJkZTYzZGYwOWQ3NDQuLmNjYzZkZWRmODhmMmFiMGQ1N2VjZWNiODIxYmY2
MmZjNjQwYzVlZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNC0wMSAgSmlld2VuIFRh
biAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkNyeXB0byBpbiBTYWZhcmkg
d2lsbCBub3QgQUVTLUdDTSBlbmNyeXB0IDAgYnl0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDA4MworICAgICAgICA8cmRhcjovLzc1MDkzMzc3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3J5
cHRvL3N1YnRsZS9hZXMtZ2NtLWdlbmVyYXRlLWtleS1lbmNyeXB0LWRlY3J5cHQtbnVsbC1wbGFp
bi10ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9hZXMt
Z2NtLWdlbmVyYXRlLWtleS1lbmNyeXB0LWRlY3J5cHQtbnVsbC1wbGFpbi10ZXh0Lmh0bWw6IEFk
ZGVkLgorCiAyMDIxLTA0LTAxICBDaHJpcyBHYW1icmVsbCAgPGNnYW1icmVsbEBhcHBsZS5jb20+
CiAKICAgICAgICAgRmxha3kgTGF5b3V0VGVzdHMgaW4gaHR0cC90ZXN0cy9hcHBjYWNoZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZ2NtLWdlbmVyYXRlLWtleS1l
bmNyeXB0LWRlY3J5cHQtbnVsbC1wbGFpbi10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvYWVzLWdjbS1nZW5lcmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwt
cGxhaW4tdGV4dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAxMzdhNzBhM2NjNjk3YzU5NWYz
ZmNmYmU4NGVkZGE1MzdmODQwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvYWVzLWdjbS1nZW5lcmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwtcGxhaW4t
dGV4dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBlbmNyeXB0aW5nJmRlY3J5
cHRpbmcgdXNpbmcgQUVTLUdDTSBhbGdvcml0aG0gd2l0aCBhIGdlbmVyYXRlZCAyNTZiaXQga2V5
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitHZW5lcmF0aW5nIGEga2V5Li4uCitF
bmNyeXB0aW5nLi4uCitQQVNTIGJ5dGVzVG9BU0NJSVN0cmluZyhjaXBoZXJUZXh0KSBpcyBub3Qg
IiIKK0RlY3J5cHRpbmcuLi4KK1BBU1MgYnl0ZXNUb0FTQ0lJU3RyaW5nKGRlY3J5cHRlZFRleHQp
IGlzIHBsYWluVGV4dAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWdjbS1n
ZW5lcmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwtcGxhaW4tdGV4dC5odG1sIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZ2NtLWdlbmVyYXRlLWtleS1lbmNyeXB0LWRlY3J5cHQt
bnVsbC1wbGFpbi10ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE1MGU5M2RlN2U0ZmMzNTlhMzE5OTZl
NTAwNWQ2MGUxM2VjMjNjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvYWVzLWdjbS1nZW5lcmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwtcGxhaW4tdGV4
dC5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZW5jcnlwdGluZyZkZWNyeXB0aW5nIHVz
aW5nIEFFUy1HQ00gYWxnb3JpdGhtIHdpdGggYSBnZW5lcmF0ZWQgMjU2Yml0IGtleSIpOworCitq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3ZhciBwbGFpblRleHQgPSAiIjsKK3ZhciBhZXNHY21QYXJh
bXMgPSB7CisgICAgbmFtZTogImFlcy1nY20iLAorICAgIGl2OiBhc2NpaVRvVWludDhBcnJheSgi
am5Pdzk5b09aRkxJRVBNciIpLAorfQorCitkZWJ1ZygiR2VuZXJhdGluZyBhIGtleS4uLiIpOwor
Y3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImFlcy1nY20iLCBsZW5ndGg6IDI1Nn0s
IHRydWUsIFsiZGVjcnlwdCIsICJlbmNyeXB0Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAga2V5ID0gcmVzdWx0OworICAgIGRlYnVnKCJFbmNyeXB0aW5nLi4uIik7CisgICAgcmV0dXJu
IGNyeXB0by5zdWJ0bGUuZW5jcnlwdChhZXNHY21QYXJhbXMsIGtleSwgYXNjaWlUb1VpbnQ4QXJy
YXkocGxhaW5UZXh0KSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGNpcGhlclRl
eHQgPSByZXN1bHQ7CisgICAgc2hvdWxkTm90QmVFcXVhbFRvU3RyaW5nKCJieXRlc1RvQVNDSUlT
dHJpbmcoY2lwaGVyVGV4dCkiLCBwbGFpblRleHQpOworICAgIGRlYnVnKCJEZWNyeXB0aW5nLi4u
Iik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGVjcnlwdChhZXNHY21QYXJhbXMsIGtleSwg
Y2lwaGVyVGV4dCk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRlY3J5cHRlZFRl
eHQgPSByZXN1bHQ7CisKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0FTQ0lJU3RyaW5nKGRlY3J5cHRl
ZFRleHQpIiwgInBsYWluVGV4dCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2Ny
aXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425078</attachid>
            <date>2021-04-02 19:20:26 -0700</date>
            <delta_ts>2021-04-06 10:10:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224083-20210402192025.patch</filename>
            <type>text/plain</type>
            <size>7018</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyYWQwYTg2ODdmZjZk
YmZjODViNWE2MTlkMjIzNWNlOTQ1ODgwMC4uN2IwZWE3NjkyYWI4ODE5ODBjZGYxZWEwNjdlMWU0
YTFmOGQ3ZDFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA0LTAxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViQ3J5cHRvIGluIFNh
ZmFyaSB3aWxsIG5vdCBBRVMtR0NNIGVuY3J5cHQgMCBieXRlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MDgzCisgICAgICAgIDxyZGFyOi8vNzUw
OTMzNzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q29tbW9uQ3J5cHRvIHdpbGwgYmFpbCBvdXQgYm90aCB0aGUgZW5jcnlwdGlvbiBhbmQgZGVjcnlw
dGlvbiBwcm9jZXNzIGlmIHRoZSBkYXRhT3V0IGlzIGEgbnVsbCBwb2ludGVyLgorICAgICAgICBU
byB3b3JrYXJvdW5kIHRoZSBpc3N1ZSwgdGhpcyBwYXRjaCBmb3JjZXMgdGhlIGRhdGFPdXQgdG8g
YmUgYSBub24tbnVsbCBwb2ludGVyLgorCisgICAgICAgIFRlc3Q6IGNyeXB0by9zdWJ0bGUvYWVz
LWdjbS1nZW5lcmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwtcGxhaW4tdGV4dC5odG1sCisK
KyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6ZW5jcnlwdEFFU19HQ00pOgorICAgICAgICAoV2ViQ29yZTo6ZGVjeXB0
QUVTX0dDTSk6CisKIDIwMjEtMDQtMDEgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIE1ha2UgRm9udENhY2hlIGNvbnN0cnVjdGFibGUgYW5kIHNhZmUgdG8gdXNlIG9m
ZiB0aGUgbWFpbiB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFj
L0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwCmluZGV4IDkyMzQ0MTUxOGU3Yjk5YTdhODdj
YjgzMTcwNTJjNzg1NDBlMGFiZTQuLmMxMzkwZTI1NWI1Yjc4YzY3MjRmNzgwYjU3MjEyNTYzY2Zh
MmM3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3Jp
dGhtQUVTX0dDTU1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9B
bGdvcml0aG1BRVNfR0NNTWFjLmNwcApAQCAtMzcsNyArMzcsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IGVuY3J5cHRBRVNfR0NN
KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaXYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBj
b25zdCBWZWN0b3I8dWludDhfdD4mIHBsYWluVGV4dCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBh
ZGRpdGlvbmFsRGF0YSwgc2l6ZV90IGRlc2lyZWRUYWdMZW5ndGhJbkJ5dGVzKQogewotICAgIFZl
Y3Rvcjx1aW50OF90PiBjaXBoZXJUZXh0KHBsYWluVGV4dC5zaXplKCkpOyAvLyBQZXIgc2VjdGlv
biA1LjIuMS4yOiBodHRwOi8vbnZscHVicy5uaXN0Lmdvdi9uaXN0cHVicy9MZWdhY3kvU1Avbmlz
dHNwZWNpYWxwdWJsaWNhdGlvbjgwMC0zOGQucGRmCisgICAgLy8gVGhpcyBpcyBhIHdvcmRhcm91
bmQgZm9yIHJkYXI6Ly83NTA5MzM3Ny4gRm9yY2UgdGhlIGJ1ZmZlciB0byBiZSBhIG5vbiBudWxs
IHBvaW50ZXIuCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNpcGhlclRleHQocGxhaW5UZXh0LnNpemUo
KSArIGRlc2lyZWRUYWdMZW5ndGhJbkJ5dGVzKTsgLy8gUGVyIHNlY3Rpb24gNS4yLjEuMjogaHR0
cDovL252bHB1YnMubmlzdC5nb3YvbmlzdHB1YnMvTGVnYWN5L1NQL25pc3RzcGVjaWFscHVibGlj
YXRpb244MDAtMzhkLnBkZgogICAgIFZlY3Rvcjx1aW50OF90PiB0YWcoZGVzaXJlZFRhZ0xlbmd0
aEluQnl0ZXMpOwogICAgIC8vIHRhZ0xlbmd0aCBpcyBhY3R1YWwgYW4gaW5wdXQgPHJkYXI6Ly9w
cm9ibGVtLzMwNjYwMDc0PgogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CkBAIC00NiwxNCArNDcsMTUgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4g
ZW5jcnlwdEFFU19HQ00oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY28KICAgICBpZiAoc3Rh
dHVzKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKIAotICAg
IGNpcGhlclRleHQuYXBwZW5kKHRhZy5kYXRhKCksIGRlc2lyZWRUYWdMZW5ndGhJbkJ5dGVzKTsK
KyAgICBtZW1jcHkoY2lwaGVyVGV4dC5kYXRhKCkgKyBwbGFpblRleHQuc2l6ZSgpLCB0YWcuZGF0
YSgpLCBkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcyk7CiAKICAgICByZXR1cm4gV1RGTW92ZShjaXBo
ZXJUZXh0KTsKIH0KIAogc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gZGVjeXB0
QUVTX0dDTShjb25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb25zdCBWZWN0b3I8dWludDhfdD4m
IGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjaXBoZXJUZXh0LCBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGFkZGl0aW9uYWxEYXRhLCBzaXplX3QgZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXMpCiB7
Ci0gICAgVmVjdG9yPHVpbnQ4X3Q+IHBsYWluVGV4dChjaXBoZXJUZXh0LnNpemUoKSAtIGRlc2ly
ZWRUYWdMZW5ndGhJbkJ5dGVzKTsgLy8gUGVyIHNlY3Rpb24gNS4yLjEuMjogaHR0cDovL252bHB1
YnMubmlzdC5nb3YvbmlzdHB1YnMvTGVnYWN5L1NQL25pc3RzcGVjaWFscHVibGljYXRpb244MDAt
MzhkLnBkZgorICAgIC8vIFRoaXMgaXMgYSB3b3JkYXJvdW5kIGZvciByZGFyOi8vNzUwOTMzNzcu
IEZvcmNlIHRoZSBidWZmZXIgdG8gYmUgYSBub24gbnVsbCBwb2ludGVyLgorICAgIFZlY3Rvcjx1
aW50OF90PiBwbGFpblRleHQoY2lwaGVyVGV4dC5zaXplKCkpOyAvLyBQZXIgc2VjdGlvbiA1LjIu
MS4yOiBodHRwOi8vbnZscHVicy5uaXN0Lmdvdi9uaXN0cHVicy9MZWdhY3kvU1AvbmlzdHNwZWNp
YWxwdWJsaWNhdGlvbjgwMC0zOGQucGRmCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHRhZyhkZXNpcmVk
VGFnTGVuZ3RoSW5CeXRlcyk7CiAgICAgc2l6ZV90IG9mZnNldCA9IGNpcGhlclRleHQuc2l6ZSgp
IC0gZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXM7CiAgICAgLy8gdGFnTGVuZ3RoIGlzIGFjdHVhbCBh
biBpbnB1dCA8cmRhcjovL3Byb2JsZW0vMzA2NjAwNzQ+CkBAIC02Nyw2ICs2OSw4IEBAIHN0YXRp
YyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IGRlY3lwdEFFU19HQ00oY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBpdiwgY29uCiAgICAgaWYgKGNvbnN0YW50VGltZU1lbWNtcCh0YWcuZGF0YSgp
LCBjaXBoZXJUZXh0LmRhdGEoKSArIG9mZnNldCwgZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXMpKQog
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKIAorICAgIC8vIFRo
aXMgaXMgYSB3b3JkYXJvdW5kIGZvciByZGFyOi8vNzUwOTMzNzcuIEZvcmNlIHRoZSBidWZmZXIg
dG8gYmUgYSBub24gbnVsbCBwb2ludGVyLgorICAgIHBsYWluVGV4dC5zaHJpbmsoY2lwaGVyVGV4
dC5zaXplKCkgLSBkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcyk7CiAgICAgcmV0dXJuIFdURk1vdmUo
cGxhaW5UZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc3MmRjZjJhMjJjNjQ2ZWQyYjQzODFlNDlkZjJkZTYz
ZGYwOWQ3NDQuLmNjYzZkZWRmODhmMmFiMGQ1N2VjZWNiODIxYmY2MmZjNjQwYzVlZDAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNC0wMSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBw
bGUuY29tPgorCisgICAgICAgIFdlYkNyeXB0byBpbiBTYWZhcmkgd2lsbCBub3QgQUVTLUdDTSBl
bmNyeXB0IDAgYnl0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNDA4MworICAgICAgICA8cmRhcjovLzc1MDkzMzc3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9hZXMtZ2Nt
LWdlbmVyYXRlLWtleS1lbmNyeXB0LWRlY3J5cHQtbnVsbC1wbGFpbi10ZXh0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9hZXMtZ2NtLWdlbmVyYXRlLWtleS1l
bmNyeXB0LWRlY3J5cHQtbnVsbC1wbGFpbi10ZXh0Lmh0bWw6IEFkZGVkLgorCiAyMDIxLTA0LTAx
ICBDaHJpcyBHYW1icmVsbCAgPGNnYW1icmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgRmxha3kg
TGF5b3V0VGVzdHMgaW4gaHR0cC90ZXN0cy9hcHBjYWNoZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9hZXMtZ2NtLWdlbmVyYXRlLWtleS1lbmNyeXB0LWRlY3J5cHQtbnVs
bC1wbGFpbi10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVz
LWdjbS1nZW5lcmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwtcGxhaW4tdGV4dC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjAxMzdhNzBhM2NjNjk3YzU5NWYzZmNmYmU4NGVkZGE1MzdmODQw
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWdjbS1n
ZW5lcmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwtcGxhaW4tdGV4dC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNCBAQAorVGVzdCBlbmNyeXB0aW5nJmRlY3J5cHRpbmcgdXNpbmcgQUVTLUdD
TSBhbGdvcml0aG0gd2l0aCBhIGdlbmVyYXRlZCAyNTZiaXQga2V5CisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitHZW5lcmF0aW5nIGEga2V5Li4uCitFbmNyeXB0aW5nLi4uCitQQVNT
IGJ5dGVzVG9BU0NJSVN0cmluZyhjaXBoZXJUZXh0KSBpcyBub3QgIiIKK0RlY3J5cHRpbmcuLi4K
K1BBU1MgYnl0ZXNUb0FTQ0lJU3RyaW5nKGRlY3J5cHRlZFRleHQpIGlzIHBsYWluVGV4dAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWdjbS1nZW5lcmF0ZS1rZXktZW5jcnlw
dC1kZWNyeXB0LW51bGwtcGxhaW4tdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9hZXMtZ2NtLWdlbmVyYXRlLWtleS1lbmNyeXB0LWRlY3J5cHQtbnVsbC1wbGFpbi10ZXh0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTE1MGU5M2RlN2U0ZmMzNTlhMzE5OTZlNTAwNWQ2MGUxM2VjMjNjZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWdjbS1nZW5l
cmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwtcGxhaW4tdGV4dC5odG1sCkBAIC0wLDAgKzEs
NDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3QgZW5jcnlwdGluZyZkZWNyeXB0aW5nIHVzaW5nIEFFUy1HQ00gYWxnb3Jp
dGhtIHdpdGggYSBnZW5lcmF0ZWQgMjU2Yml0IGtleSIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKK3ZhciBwbGFpblRleHQgPSAiIjsKK3ZhciBhZXNHY21QYXJhbXMgPSB7CisgICAgbmFtZTog
ImFlcy1nY20iLAorICAgIGl2OiBhc2NpaVRvVWludDhBcnJheSgiam5Pdzk5b09aRkxJRVBNciIp
LAorfQorCitkZWJ1ZygiR2VuZXJhdGluZyBhIGtleS4uLiIpOworY3J5cHRvLnN1YnRsZS5nZW5l
cmF0ZUtleSh7bmFtZTogImFlcy1nY20iLCBsZW5ndGg6IDI1Nn0sIHRydWUsIFsiZGVjcnlwdCIs
ICJlbmNyeXB0Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5ID0gcmVzdWx0Owor
ICAgIGRlYnVnKCJFbmNyeXB0aW5nLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZW5j
cnlwdChhZXNHY21QYXJhbXMsIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkocGxhaW5UZXh0KSk7Cit9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGNpcGhlclRleHQgPSByZXN1bHQ7CisgICAg
c2hvdWxkTm90QmVFcXVhbFRvU3RyaW5nKCJieXRlc1RvQVNDSUlTdHJpbmcoY2lwaGVyVGV4dCki
LCBwbGFpblRleHQpOworICAgIGRlYnVnKCJEZWNyeXB0aW5nLi4uIik7CisgICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuZGVjcnlwdChhZXNHY21QYXJhbXMsIGtleSwgY2lwaGVyVGV4dCk7Cit9KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRlY3J5cHRlZFRleHQgPSByZXN1bHQ7CisKKyAg
ICBzaG91bGRCZSgiYnl0ZXNUb0FTQ0lJU3RyaW5nKGRlY3J5cHRlZFRleHQpIiwgInBsYWluVGV4
dCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>
<flag name="review"
          id="444922"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425300</attachid>
            <date>2021-04-06 10:39:15 -0700</date>
            <delta_ts>2021-04-06 11:10:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224083-20210406103914.patch</filename>
            <type>text/plain</type>
            <size>6979</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyYWQwYTg2ODdmZjZk
YmZjODViNWE2MTlkMjIzNWNlOTQ1ODgwMC4uNGNmMzVlMDI0ZGVlY2Y1Y2U0NWU2NzI2YjkzOGZl
ODFmNGU5MmE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA0LTAxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViQ3J5cHRvIGluIFNh
ZmFyaSB3aWxsIG5vdCBBRVMtR0NNIGVuY3J5cHQgMCBieXRlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MDgzCisgICAgICAgIDxyZGFyOi8vNzUw
OTMzNzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBD
b21tb25DcnlwdG8gd2lsbCBiYWlsIG91dCBib3RoIHRoZSBlbmNyeXB0aW9uIGFuZCBkZWNyeXB0
aW9uIHByb2Nlc3MgaWYgdGhlIGRhdGFPdXQgaXMgYSBudWxsIHBvaW50ZXIuCisgICAgICAgIFRv
IHdvcmthcm91bmQgdGhlIGlzc3VlLCB0aGlzIHBhdGNoIGZvcmNlcyB0aGUgZGF0YU91dCB0byBi
ZSBhIG5vbi1udWxsIHBvaW50ZXIuCisKKyAgICAgICAgVGVzdDogY3J5cHRvL3N1YnRsZS9hZXMt
Z2NtLWdlbmVyYXRlLWtleS1lbmNyeXB0LWRlY3J5cHQtbnVsbC1wbGFpbi10ZXh0Lmh0bWwKKwor
ICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNyeXB0QUVTX0dDTSk6CisgICAgICAgIChXZWJDb3JlOjpkZWN5cHRB
RVNfR0NNKToKKwogMjAyMS0wNC0wMSAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgTWFrZSBGb250Q2FjaGUgY29uc3RydWN0YWJsZSBhbmQgc2FmZSB0byB1c2Ugb2Zm
IHRoZSBtYWluIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9D
cnlwdG9BbGdvcml0aG1BRVNfR0NNTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5jcHAKaW5kZXggOTIzNDQxNTE4ZTdiOTlhN2E4N2Ni
ODMxNzA1MmM3ODU0MGUwYWJlNC4uNDdmMjUxMWJlMWVhZmNiY2RlZWM1MDJkZjZlYmRiMjhlODVl
YTU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0
aG1BRVNfR0NNTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0Fs
Z29yaXRobUFFU19HQ01NYWMuY3BwCkBAIC0zNyw3ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gZW5jcnlwdEFFU19HQ00o
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgcGxhaW5UZXh0LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGFk
ZGl0aW9uYWxEYXRhLCBzaXplX3QgZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXMpCiB7Ci0gICAgVmVj
dG9yPHVpbnQ4X3Q+IGNpcGhlclRleHQocGxhaW5UZXh0LnNpemUoKSk7IC8vIFBlciBzZWN0aW9u
IDUuMi4xLjI6IGh0dHA6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJzL0xlZ2FjeS9TUC9uaXN0
c3BlY2lhbHB1YmxpY2F0aW9uODAwLTM4ZC5wZGYKKyAgICAvLyBUaGlzIGlzIGEgd29yZGFyb3Vu
ZCBmb3IgcmRhcjovLzc1MDkzMzc3LiBGb3JjZSB0aGUgYnVmZmVyIHRvIGJlIGEgbm9uIG51bGwg
cG9pbnRlci4KKyAgICBWZWN0b3I8dWludDhfdD4gY2lwaGVyVGV4dChwbGFpblRleHQuc2l6ZSgp
ICsgZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXMpOyAvLyBQZXIgc2VjdGlvbiA1LjIuMS4yOiBodHRw
Oi8vbnZscHVicy5uaXN0Lmdvdi9uaXN0cHVicy9MZWdhY3kvU1AvbmlzdHNwZWNpYWxwdWJsaWNh
dGlvbjgwMC0zOGQucGRmCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHRhZyhkZXNpcmVkVGFnTGVuZ3Ro
SW5CeXRlcyk7CiAgICAgLy8gdGFnTGVuZ3RoIGlzIGFjdHVhbCBhbiBpbnB1dCA8cmRhcjovL3By
b2JsZW0vMzA2NjAwNzQ+CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
QEAgLTQ2LDE0ICs0NywxNSBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBl
bmNyeXB0QUVTX0dDTShjb25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjbwogICAgIGlmIChzdGF0
dXMpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCi0gICAg
Y2lwaGVyVGV4dC5hcHBlbmQodGFnLmRhdGEoKSwgZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXMpOwor
ICAgIG1lbWNweShjaXBoZXJUZXh0LmRhdGEoKSArIHBsYWluVGV4dC5zaXplKCksIHRhZy5kYXRh
KCksIGRlc2lyZWRUYWdMZW5ndGhJbkJ5dGVzKTsKIAogICAgIHJldHVybiBXVEZNb3ZlKGNpcGhl
clRleHQpOwogfQogCiBzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBkZWN5cHRB
RVNfR0NNKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaXYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
a2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGNpcGhlclRleHQsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgYWRkaXRpb25hbERhdGEsIHNpemVfdCBkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcykKIHsK
LSAgICBWZWN0b3I8dWludDhfdD4gcGxhaW5UZXh0KGNpcGhlclRleHQuc2l6ZSgpIC0gZGVzaXJl
ZFRhZ0xlbmd0aEluQnl0ZXMpOyAvLyBQZXIgc2VjdGlvbiA1LjIuMS4yOiBodHRwOi8vbnZscHVi
cy5uaXN0Lmdvdi9uaXN0cHVicy9MZWdhY3kvU1AvbmlzdHNwZWNpYWxwdWJsaWNhdGlvbjgwMC0z
OGQucGRmCisgICAgLy8gVGhpcyBpcyBhIHdvcmRhcm91bmQgZm9yIHJkYXI6Ly83NTA5MzM3Ny4g
Rm9yY2UgdGhlIGJ1ZmZlciB0byBiZSBhIG5vbiBudWxsIHBvaW50ZXIuCisgICAgVmVjdG9yPHVp
bnQ4X3Q+IHBsYWluVGV4dChjaXBoZXJUZXh0LnNpemUoKSk7IC8vIFBlciBzZWN0aW9uIDUuMi4x
LjI6IGh0dHA6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJzL0xlZ2FjeS9TUC9uaXN0c3BlY2lh
bHB1YmxpY2F0aW9uODAwLTM4ZC5wZGYKICAgICBWZWN0b3I8dWludDhfdD4gdGFnKGRlc2lyZWRU
YWdMZW5ndGhJbkJ5dGVzKTsKICAgICBzaXplX3Qgb2Zmc2V0ID0gY2lwaGVyVGV4dC5zaXplKCkg
LSBkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlczsKICAgICAvLyB0YWdMZW5ndGggaXMgYWN0dWFsIGFu
IGlucHV0IDxyZGFyOi8vcHJvYmxlbS8zMDY2MDA3ND4KQEAgLTY3LDYgKzY5LDggQEAgc3RhdGlj
IEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gZGVjeXB0QUVTX0dDTShjb25zdCBWZWN0b3I8
dWludDhfdD4mIGl2LCBjb24KICAgICBpZiAoY29uc3RhbnRUaW1lTWVtY21wKHRhZy5kYXRhKCks
IGNpcGhlclRleHQuZGF0YSgpICsgb2Zmc2V0LCBkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcykpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCisgICAgLy8gVGhp
cyBpcyBhIHdvcmRhcm91bmQgZm9yIHJkYXI6Ly83NTA5MzM3Ny4gRm9yY2UgdGhlIGJ1ZmZlciB0
byBiZSBhIG5vbiBudWxsIHBvaW50ZXIuCisgICAgcGxhaW5UZXh0LnNocmluayhvZmZzZXQpOwog
ICAgIHJldHVybiBXVEZNb3ZlKHBsYWluVGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3NzJkY2YyYTIyYzY0
NmVkMmI0MzgxZTQ5ZGYyZGU2M2RmMDlkNzQ0Li42ZGRjOTg2Mjk3ZGZlMjExMDY1NTgxZmZmMWVj
ZDk0ZjdhYTBiZmNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDQtMDEgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJDcnlwdG8gaW4gU2FmYXJp
IHdpbGwgbm90IEFFUy1HQ00gZW5jcnlwdCAwIGJ5dGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQwODMKKyAgICAgICAgPHJkYXI6Ly83NTA5MzM3
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogY3J5
cHRvL3N1YnRsZS9hZXMtZ2NtLWdlbmVyYXRlLWtleS1lbmNyeXB0LWRlY3J5cHQtbnVsbC1wbGFp
bi10ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9hZXMt
Z2NtLWdlbmVyYXRlLWtleS1lbmNyeXB0LWRlY3J5cHQtbnVsbC1wbGFpbi10ZXh0Lmh0bWw6IEFk
ZGVkLgorCiAyMDIxLTA0LTAxICBDaHJpcyBHYW1icmVsbCAgPGNnYW1icmVsbEBhcHBsZS5jb20+
CiAKICAgICAgICAgRmxha3kgTGF5b3V0VGVzdHMgaW4gaHR0cC90ZXN0cy9hcHBjYWNoZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZ2NtLWdlbmVyYXRlLWtleS1l
bmNyeXB0LWRlY3J5cHQtbnVsbC1wbGFpbi10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvYWVzLWdjbS1nZW5lcmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwt
cGxhaW4tdGV4dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAxMzdhNzBhM2NjNjk3YzU5NWYz
ZmNmYmU4NGVkZGE1MzdmODQwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvYWVzLWdjbS1nZW5lcmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwtcGxhaW4t
dGV4dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBlbmNyeXB0aW5nJmRlY3J5
cHRpbmcgdXNpbmcgQUVTLUdDTSBhbGdvcml0aG0gd2l0aCBhIGdlbmVyYXRlZCAyNTZiaXQga2V5
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitHZW5lcmF0aW5nIGEga2V5Li4uCitF
bmNyeXB0aW5nLi4uCitQQVNTIGJ5dGVzVG9BU0NJSVN0cmluZyhjaXBoZXJUZXh0KSBpcyBub3Qg
IiIKK0RlY3J5cHRpbmcuLi4KK1BBU1MgYnl0ZXNUb0FTQ0lJU3RyaW5nKGRlY3J5cHRlZFRleHQp
IGlzIHBsYWluVGV4dAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWdjbS1n
ZW5lcmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwtcGxhaW4tdGV4dC5odG1sIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZ2NtLWdlbmVyYXRlLWtleS1lbmNyeXB0LWRlY3J5cHQt
bnVsbC1wbGFpbi10ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE1MGU5M2RlN2U0ZmMzNTlhMzE5OTZl
NTAwNWQ2MGUxM2VjMjNjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvYWVzLWdjbS1nZW5lcmF0ZS1rZXktZW5jcnlwdC1kZWNyeXB0LW51bGwtcGxhaW4tdGV4
dC5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZW5jcnlwdGluZyZkZWNyeXB0aW5nIHVz
aW5nIEFFUy1HQ00gYWxnb3JpdGhtIHdpdGggYSBnZW5lcmF0ZWQgMjU2Yml0IGtleSIpOworCitq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3ZhciBwbGFpblRleHQgPSAiIjsKK3ZhciBhZXNHY21QYXJh
bXMgPSB7CisgICAgbmFtZTogImFlcy1nY20iLAorICAgIGl2OiBhc2NpaVRvVWludDhBcnJheSgi
am5Pdzk5b09aRkxJRVBNciIpLAorfQorCitkZWJ1ZygiR2VuZXJhdGluZyBhIGtleS4uLiIpOwor
Y3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImFlcy1nY20iLCBsZW5ndGg6IDI1Nn0s
IHRydWUsIFsiZGVjcnlwdCIsICJlbmNyeXB0Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAga2V5ID0gcmVzdWx0OworICAgIGRlYnVnKCJFbmNyeXB0aW5nLi4uIik7CisgICAgcmV0dXJu
IGNyeXB0by5zdWJ0bGUuZW5jcnlwdChhZXNHY21QYXJhbXMsIGtleSwgYXNjaWlUb1VpbnQ4QXJy
YXkocGxhaW5UZXh0KSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGNpcGhlclRl
eHQgPSByZXN1bHQ7CisgICAgc2hvdWxkTm90QmVFcXVhbFRvU3RyaW5nKCJieXRlc1RvQVNDSUlT
dHJpbmcoY2lwaGVyVGV4dCkiLCBwbGFpblRleHQpOworICAgIGRlYnVnKCJEZWNyeXB0aW5nLi4u
Iik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGVjcnlwdChhZXNHY21QYXJhbXMsIGtleSwg
Y2lwaGVyVGV4dCk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRlY3J5cHRlZFRl
eHQgPSByZXN1bHQ7CisKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0FTQ0lJU3RyaW5nKGRlY3J5cHRl
ZFRleHQpIiwgInBsYWluVGV4dCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2Ny
aXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>