<?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>217552</bug_id>
          
          <creation_ts>2020-10-09 20:29:44 -0700</creation_ts>
          <short_desc>Clean up CAAudioStreamDescription</short_desc>
          <delta_ts>2020-10-26 11:24:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>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="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1696475</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-09 20:29:44 -0700</bug_when>
    <thetext>Clean up CAAudioStreamDescription</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696480</commentid>
    <comment_count>1</comment_count>
      <attachid>411004</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-09 20:44:14 -0700</bug_when>
    <thetext>Created attachment 411004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696548</commentid>
    <comment_count>2</comment_count>
      <attachid>411020</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-10 14:29:25 -0700</bug_when>
    <thetext>Created attachment 411020
Fix crashes in layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696812</commentid>
    <comment_count>3</comment_count>
      <attachid>411020</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-12 03:06:17 -0700</bug_when>
    <thetext>Comment on attachment 411020
Fix crashes in layout tests

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        constructor and assignment operator because of the updates on the two getters.

Can you describe the benefit of this change?

&gt; Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.cpp:117
&gt;      return m_platformDescription;

This is a potential change of behavior.
m_streamDescription could for instance be modified (for instance using streamDescription() non const getter).
This would make m_platformDescription out of sync.

&gt; Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.cpp:122
&gt; +    return m_format;

Why removing the lazy init of m_format?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696884</commentid>
    <comment_count>4</comment_count>
      <attachid>411020</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-12 09:45:30 -0700</bug_when>
    <thetext>Comment on attachment 411020
Fix crashes in layout tests

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        constructor and assignment operator because of the updates on the two getters.
&gt; 
&gt; Can you describe the benefit of this change?

Sure.
I encountered some weirdness(linker errors) when I tried to move the WEBCORE_EXPORT from the class to methods, so I took a closer look and found this class looks strange. The class defines the function calculateFormat() but does not provide an implementation, and CAAudioStreamDescription::platformDescription() always needs to update m_platformDescription.

&gt;&gt; Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.cpp:117
&gt;&gt;      return m_platformDescription;
&gt; 
&gt; This is a potential change of behavior.
&gt; m_streamDescription could for instance be modified (for instance using streamDescription() non const getter).
&gt; This would make m_platformDescription out of sync.

Oops, sounds not a good encapsulation. Should we disable that possibility?

&gt;&gt; Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.cpp:122
&gt;&gt; +    return m_format;
&gt; 
&gt; Why removing the lazy init of m_format?

So it is just a lazy init? I thought we may need to do some unnecessary work whenever format() is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696887</commentid>
    <comment_count>5</comment_count>
      <attachid>411020</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-12 09:56:50 -0700</bug_when>
    <thetext>Comment on attachment 411020
Fix crashes in layout tests

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

&gt;&gt;&gt; Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.cpp:117
&gt;&gt;&gt;      return m_platformDescription;
&gt;&gt; 
&gt;&gt; This is a potential change of behavior.
&gt;&gt; m_streamDescription could for instance be modified (for instance using streamDescription() non const getter).
&gt;&gt; This would make m_platformDescription out of sync.
&gt; 
&gt; Oops, sounds not a good encapsulation. Should we disable that possibility?

Actually, I was wrong here since we pass m_streamDescription as a pointer and not by value.
If we can remove streamDescription() non const getter, we should probably do it in any case.

I am not sure platformDescription is called much, so a lazy init seems fine here.

&gt;&gt;&gt; Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.cpp:122
&gt;&gt;&gt; +    return m_format;
&gt;&gt; 
&gt;&gt; Why removing the lazy init of m_format?
&gt; 
&gt; So it is just a lazy init? I thought we may need to do some unnecessary work whenever format() is called.

It is a half lazy init. Agreed, it is a bit weird also since m_streamDescription could change but we would not change m_format accordingly if m_format is not None.
I guess that to make it clearer, we could use an Optional&lt;Format&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698885</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-16 20:30:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/70401637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701158</commentid>
    <comment_count>7</comment_count>
      <attachid>411020</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-23 15:40:27 -0700</bug_when>
    <thetext>Comment on attachment 411020
Fix crashes in layout tests

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.cpp:122
&gt;&gt;&gt;&gt; +    return m_format;
&gt;&gt;&gt; 
&gt;&gt;&gt; Why removing the lazy init of m_format?
&gt;&gt; 
&gt;&gt; So it is just a lazy init? I thought we may need to do some unnecessary work whenever format() is called.
&gt; 
&gt; It is a half lazy init. Agreed, it is a bit weird also since m_streamDescription could change but we would not change m_format accordingly if m_format is not None.
&gt; I guess that to make it clearer, we could use an Optional&lt;Format&gt;.

Yeah, seems better to use an Optional&lt;&gt;. However, it won&apos;t solve the problem when m_streamDescription is changed by other objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701161</commentid>
    <comment_count>8</comment_count>
      <attachid>412215</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-23 16:28:34 -0700</bug_when>
    <thetext>Created attachment 412215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701483</commentid>
    <comment_count>9</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-26 09:46:31 -0700</bug_when>
    <thetext>Looks like it is not a good idea to refactor the CAAudioStreamDescription class now. Let’s remove the unused private function and close this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701546</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-26 11:24:15 -0700</bug_when>
    <thetext>Committed r268988: &lt;https://trac.webkit.org/changeset/268988&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412215.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411004</attachid>
            <date>2020-10-09 20:44:14 -0700</date>
            <delta_ts>2020-10-10 14:29:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217552-20201009204413.patch</filename>
            <type>text/plain</type>
            <size>7696</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMxYWE4Njk0MDM0ZjFl
ZDg1MGRmZjdlYzFlNmViYThkZTNiNGJiZS4uZDU2YjMzZTA3NGJlODI2N2M1Nzk0ZmQ5M2UwMTA2
ZDMzOTZlYTEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTEwLTA5ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTc1NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbXBsZW1lbnQgY2FsY3VsYXRlRm9ybWF0KCkgYW5kIGNsZWFuIHVwIHR3byBnZXR0
ZXJzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIGJlaGF2aW9y
IGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL0NBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b246OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb246OnBsYXRmb3JtRGVzY3JpcHRpb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOjpmb3JtYXQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOjpjYWxjdWxhdGVGb3JtYXQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5o
OgorCiAyMDIwLTEwLTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBNZWNoYW5pY2FsIGNsZWFudXAgaW4gRGlzcGxheUxp
c3RSZWNvcmRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5jcHAKaW5kZXggYTYxOTAyOGJk
Nzc3OTU3MGU3NTc1ZDUwOWU5OWYxYWYzOTg2MDY4ZC4uZmYyOTY5NmYyNmI1MTA5Mjc3YTc1ZGQw
YWNiNzA2NzRmODVjNjE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uY3BwCkBAIC0z
MSw2ICszMSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bjo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKCkKICAgICA6IG1fc3RyZWFtRGVzY3JpcHRpb24o
eyB9KQogeworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbiA9IHsgUGxhdGZvcm1EZXNjcmlwdGlv
bjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSwgJm1fc3RyZWFtRGVzY3JpcHRpb24gfTsKKyAgICBj
YWxjdWxhdGVGb3JtYXQoKTsKIH0KIAogQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOjp+Q0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uKCkgPSBkZWZhdWx0OwpAQCAtMzgsNiArNDAsOCBAQCBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb246On5DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24oKSA9IGRlZmF1bHQ7
CiBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gJmRlc2MpCiAgICAgOiBtX3N0cmVhbURlc2Ny
aXB0aW9uKGRlc2MpCiB7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uID0geyBQbGF0Zm9ybURl
c2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlLCAmbV9zdHJlYW1EZXNjcmlwdGlvbiB9
OworICAgIGNhbGN1bGF0ZUZvcm1hdCgpOwogfQogCiBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb246
OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihkb3VibGUgc2FtcGxlUmF0ZSwgdWludDMyX3QgbnVt
Q2hhbm5lbHMsIFBDTUZvcm1hdCBmb3JtYXQsIGJvb2wgaXNJbnRlcmxlYXZlZCkKQEAgLTU2LDE4
ICs2MCwyMiBAQCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbihkb3VibGUgc2FtcGxlUmF0ZSwgdWludDMyX3QgbgogICAgIGNhc2UgSW50MTY6CiAgICAg
ICAgIHdvcmRzaXplID0gMjsKICAgICAgICAgbV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9ybWF0Rmxh
Z3MgfD0ga0F1ZGlvRm9ybWF0RmxhZ0lzU2lnbmVkSW50ZWdlcjsKKyAgICAgICAgbV9mb3JtYXQg
PSBJbnQxNjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbnQzMjoKICAgICAgICAgd29yZHNp
emUgPSA0OwogICAgICAgICBtX3N0cmVhbURlc2NyaXB0aW9uLm1Gb3JtYXRGbGFncyB8PSBrQXVk
aW9Gb3JtYXRGbGFnSXNTaWduZWRJbnRlZ2VyOworICAgICAgICBtX2Zvcm1hdCA9IEludDMyOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEZsb2F0MzI6CiAgICAgICAgIHdvcmRzaXplID0gNDsK
ICAgICAgICAgbV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9ybWF0RmxhZ3MgfD0ga0F1ZGlvRm9ybWF0
RmxhZ0lzRmxvYXQ7CisgICAgICAgIG1fZm9ybWF0ID0gRmxvYXQzMjsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBGbG9hdDY0OgogICAgICAgICB3b3Jkc2l6ZSA9IDg7CiAgICAgICAgIG1fc3Ry
ZWFtRGVzY3JpcHRpb24ubUZvcm1hdEZsYWdzIHw9IGtBdWRpb0Zvcm1hdEZsYWdJc0Zsb2F0Owor
ICAgICAgICBtX2Zvcm1hdCA9IEZsb2F0NjQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTm9u
ZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04MiwzNCArOTAsMzcgQEAgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24oZG91YmxlIHNh
bXBsZVJhdGUsIHVpbnQzMl90IG4KICAgICAgICAgbV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9ybWF0
RmxhZ3MgfD0ga0F1ZGlvRm9ybWF0RmxhZ0lzTm9uSW50ZXJsZWF2ZWQ7CiAgICAgICAgIG1fc3Ry
ZWFtRGVzY3JpcHRpb24ubUJ5dGVzUGVyRnJhbWUgPSBtX3N0cmVhbURlc2NyaXB0aW9uLm1CeXRl
c1BlclBhY2tldCA9IHdvcmRzaXplOwogICAgIH0KKworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlv
biA9IHsgUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSwgJm1fc3Ry
ZWFtRGVzY3JpcHRpb24gfTsKIH0KIAogY29uc3QgUGxhdGZvcm1EZXNjcmlwdGlvbiYgQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uOjpwbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICBt
X3BsYXRmb3JtRGVzY3JpcHRpb24gPSB7IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJl
YW1CYXNpY1R5cGUsICZtX3N0cmVhbURlc2NyaXB0aW9uIH07CiAgICAgcmV0dXJuIG1fcGxhdGZv
cm1EZXNjcmlwdGlvbjsKIH0KIAogQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjo6UENNRm9ybWF0IENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbjo6Zm9ybWF0KCkgY29uc3QKIHsKLSAgICBpZiAobV9mb3Jt
YXQgIT0gTm9uZSkKLSAgICAgICAgcmV0dXJuIG1fZm9ybWF0OworICAgIHJldHVybiBtX2Zvcm1h
dDsKK30KIAordm9pZCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb246OmNhbGN1bGF0ZUZvcm1hdCgp
Cit7CiAgICAgaWYgKG1fc3RyZWFtRGVzY3JpcHRpb24ubUZvcm1hdElEICE9IGtBdWRpb0Zvcm1h
dExpbmVhclBDTSkKLSAgICAgICAgcmV0dXJuIE5vbmU7CisgICAgICAgIHJldHVybjsKICAgICBp
ZiAobV9zdHJlYW1EZXNjcmlwdGlvbi5tRnJhbWVzUGVyUGFja2V0ICE9IDEpCi0gICAgICAgIHJl
dHVybiBOb25lOworICAgICAgICByZXR1cm47CiAgICAgaWYgKG1fc3RyZWFtRGVzY3JpcHRpb24u
bUJ5dGVzUGVyRnJhbWUgIT0gbV9zdHJlYW1EZXNjcmlwdGlvbi5tQnl0ZXNQZXJQYWNrZXQpCi0g
ICAgICAgIHJldHVybiBOb25lOworICAgICAgICByZXR1cm47CiAgICAgaWYgKG1fc3RyZWFtRGVz
Y3JpcHRpb24ubUJpdHNQZXJDaGFubmVsIC8gc2l6ZW9mKGRvdWJsZSkgPiBtX3N0cmVhbURlc2Ny
aXB0aW9uLm1CeXRlc1BlckZyYW1lKQotICAgICAgICByZXR1cm4gTm9uZTsKKyAgICAgICAgcmV0
dXJuOwogICAgIGlmICghbV9zdHJlYW1EZXNjcmlwdGlvbi5tQ2hhbm5lbHNQZXJGcmFtZSkKLSAg
ICAgICAgcmV0dXJuIE5vbmU7CisgICAgICAgIHJldHVybjsKIAogICAgIHVuc2lnbmVkIHdvcmRz
aXplID0gbV9zdHJlYW1EZXNjcmlwdGlvbi5tQnl0ZXNQZXJGcmFtZTsKICAgICBpZiAoaXNJbnRl
cmxlYXZlZCgpKSB7CiAgICAgICAgIGlmICh3b3Jkc2l6ZSAlIG1fc3RyZWFtRGVzY3JpcHRpb24u
bUNoYW5uZWxzUGVyRnJhbWUpCi0gICAgICAgICAgICByZXR1cm4gTm9uZTsKKyAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICB3b3Jkc2l6ZSAvPSBtX3N0cmVhbURlc2NyaXB0aW9uLm1DaGFu
bmVsc1BlckZyYW1lOwogICAgIH0KQEAgLTExOCwyOCArMTI5LDM0IEBAIEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb246OlBDTUZvcm1hdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb246OmZvcm1hdCgpIGNv
bnN0CiAgICAgICAgIC8vIFBhY2tlZCBhbmQgbmF0aXZlIGVuZGlhbiwgZ29vZAogICAgICAgICBp
ZiAobV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9ybWF0RmxhZ3MgJiBrTGluZWFyUENNRm9ybWF0Rmxh
Z0lzRmxvYXQpIHsKICAgICAgICAgICAgIGlmIChtX3N0cmVhbURlc2NyaXB0aW9uLm1Gb3JtYXRG
bGFncyAmIChrTGluZWFyUENNRm9ybWF0RmxhZ0lzU2lnbmVkSW50ZWdlciB8IGtMaW5lYXJQQ01G
b3JtYXRGbGFnc1NhbXBsZUZyYWN0aW9uTWFzaykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5v
bmU7CisgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBpZiAod29yZHNpemUg
PT0gc2l6ZW9mKGZsb2F0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gbV9mb3JtYXQgPSBGbG9h
dDMyOwotICAgICAgICAgICAgaWYgKHdvcmRzaXplID09IHNpemVvZihkb3VibGUpKQotICAgICAg
ICAgICAgICAgIHJldHVybiBtX2Zvcm1hdCA9IEZsb2F0NjQ7CisgICAgICAgICAgICBpZiAod29y
ZHNpemUgPT0gc2l6ZW9mKGZsb2F0KSkgeworICAgICAgICAgICAgICAgIG1fZm9ybWF0ID0gRmxv
YXQzMjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAod29yZHNpemUgPT0gc2l6ZW9mKGRvdWJsZSkpIHsKKyAgICAgICAgICAgICAgICBtX2Zv
cm1hdCA9IEZsb2F0NjQ7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQog
Ci0gICAgICAgICAgICByZXR1cm4gTm9uZTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogCiAgICAgICAgIGlmIChtX3N0cmVhbURlc2NyaXB0aW9uLm1Gb3JtYXRGbGFncyAmIGtMaW5l
YXJQQ01Gb3JtYXRGbGFnSXNTaWduZWRJbnRlZ2VyKSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBm
cmFjdGlvbkJpdHMgPSAobV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9ybWF0RmxhZ3MgJiBrTGluZWFy
UENNRm9ybWF0RmxhZ3NTYW1wbGVGcmFjdGlvbk1hc2spID4+IGtMaW5lYXJQQ01Gb3JtYXRGbGFn
c1NhbXBsZUZyYWN0aW9uU2hpZnQ7CiAgICAgICAgICAgICBpZiAoIWZyYWN0aW9uQml0cykgewot
ICAgICAgICAgICAgICAgIGlmICh3b3Jkc2l6ZSA9PSBzaXplb2YoaW50MTZfdCkpCi0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBtX2Zvcm1hdCA9IEludDE2OwotICAgICAgICAgICAgICAgIGlm
ICh3b3Jkc2l6ZSA9PSBzaXplb2YoaW50MzJfdCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBtX2Zvcm1hdCA9IEludDMyOworICAgICAgICAgICAgICAgIGlmICh3b3Jkc2l6ZSA9PSBzaXpl
b2YoaW50MTZfdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9mb3JtYXQgPSBJbnQxNjsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBpZiAod29yZHNpemUgPT0gc2l6ZW9mKGludDMyX3QpKSB7CisgICAgICAgICAgICAgICAg
ICAgIG1fZm9ybWF0ID0gSW50MzI7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICByZXR1
cm4gTm9uZTsKIH0KIAogYm9vbCBvcGVyYXRvcj09KGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiYgYSwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiBiKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9DQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24uaAppbmRleCAwOGVhMmYyNmQ0OWEzZTMxM2MwZDczZmNlMTJmMjVh
NGQwODZmNmMyLi45OTJiMjczODM3NTZlNmU4YWU5MDkzMzlmMGUzZjBlZGZhNGJjYjMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9DQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9D
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaApAQCAtMzgsNyArMzgsOCBAQCBjbGFzcyBXRUJDT1JF
X0VYUE9SVCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZmluYWwgOiBwdWJsaWMgQXVkaW9TdHJl
YW1EZXNjcmlwdAogcHVibGljOgogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbigpOwogICAg
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24mKTsKLSAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24oZG91YmxlLCB1aW50MzJfdCwgUENN
Rm9ybWF0LCBib29sKTsKKyAgICAvLyBPbmx5IHVzZWQgaW4gdGVzdHMKKyAgICBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24oZG91YmxlIHNhbXBsZVJhdGUsIHVpbnQzMl90IG51bUNoYW5uZWxzLCBQ
Q01Gb3JtYXQsIGJvb2wgaXNJbnRlcmxlYXZlZCk7CiAgICAgfkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbigpOwogCiAgICAgY29uc3QgUGxhdGZvcm1EZXNjcmlwdGlvbiYgcGxhdGZvcm1EZXNjcmlw
dGlvbigpIGNvbnN0IGZpbmFsOwpAQCAtNzUsOCArNzYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
Y2FsY3VsYXRlRm9ybWF0KCk7CiAKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbV9z
dHJlYW1EZXNjcmlwdGlvbjsKLSAgICBtdXRhYmxlIFBsYXRmb3JtRGVzY3JpcHRpb24gbV9wbGF0
Zm9ybURlc2NyaXB0aW9uOwotICAgIG11dGFibGUgUENNRm9ybWF0IG1fZm9ybWF0IHsgTm9uZSB9
OworICAgIFBsYXRmb3JtRGVzY3JpcHRpb24gbV9wbGF0Zm9ybURlc2NyaXB0aW9uOworICAgIFBD
TUZvcm1hdCBtX2Zvcm1hdCB7IE5vbmUgfTsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411020</attachid>
            <date>2020-10-10 14:29:25 -0700</date>
            <delta_ts>2020-10-23 16:28:32 -0700</delta_ts>
            <desc>Fix crashes in layout tests</desc>
            <filename>bug-217552-20201010142924.patch</filename>
            <type>text/plain</type>
            <size>8694</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMxYWE4Njk0MDM0ZjFl
ZDg1MGRmZjdlYzFlNmViYThkZTNiNGJiZS4uYzhjODdjZThkMjc1NmVlOTg1ZjczMWY2NWY5ODBh
NDA2ZTUyYTVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTEwLTEwICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTc1NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbXBsZW1lbnQgY2FsY3VsYXRlRm9ybWF0KCkgYW5kIGNsZWFuIHVwIHR3byBnZXR0
ZXJzLiBBbHNvLCBpbXBsZW1lbnQgdGhlIGNvcHkKKyAgICAgICAgY29uc3RydWN0b3IgYW5kIGFz
c2lnbm1lbnQgb3BlcmF0b3IgYmVjYXVzZSBvZiB0aGUgdXBkYXRlcyBvbiB0aGUgdHdvIGdldHRl
cnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3Ig
Y2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bjo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkNBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbjo6cGxhdGZvcm1EZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb246OmZvcm1hdCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb246OmNhbGN1bGF0ZUZvcm1hdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg6
CisKIDIwMjAtMTAtMDkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVIFByb2Nlc3NdIE1lY2hhbmljYWwgY2xlYW51cCBpbiBEaXNwbGF5TGlz
dFJlY29yZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmNwcAppbmRleCBhNjE5MDI4YmQ3
Nzc5NTcwZTc1NzVkNTA5ZTk5ZjFhZjM5ODYwNjhkLi5iN2U1ZTNkNzQ1OTNhMTg0YTcwMjA2NGVl
ZmE0Mzk0NzMwMDA1Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5jcHAKQEAgLTMx
LDEzICszMSwzNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b246OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbigpCiAgICAgOiBtX3N0cmVhbURlc2NyaXB0aW9u
KHsgfSkKIHsKKyAgICBjYWxjdWxhdGVGb3JtYXQoKTsKKyAgICBtX3BsYXRmb3JtRGVzY3JpcHRp
b24gPSB7IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUsICZtX3N0
cmVhbURlc2NyaXB0aW9uIH07Cit9CisKK0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjo6Q0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uKGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzYykK
KyAgICA6IG1fc3RyZWFtRGVzY3JpcHRpb24oZGVzYy5tX3N0cmVhbURlc2NyaXB0aW9uKQorICAg
ICwgbV9mb3JtYXQoZGVzYy5tX2Zvcm1hdCkKK3sKKyAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24g
PSB7IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUsICZtX3N0cmVh
bURlc2NyaXB0aW9uIH07Cit9CisKK0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uOjpvcGVyYXRvcj0oY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjKQoreworICAgIGlmICh0aGlzID09ICZkZXNjKQorICAgICAgICByZXR1cm4gKnRoaXM7
CisKKyAgICBtX3N0cmVhbURlc2NyaXB0aW9uID0gZGVzYy5tX3N0cmVhbURlc2NyaXB0aW9uOwor
ICAgIG1fZm9ybWF0ID0gZGVzYy5tX2Zvcm1hdDsKKyAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24g
PSB7IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUsICZtX3N0cmVh
bURlc2NyaXB0aW9uIH07CisgICAgcmV0dXJuICp0aGlzOwogfQogCiBDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb246On5DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24oKSA9IGRlZmF1bHQ7CiAKLUNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGNvbnN0IEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiAmZGVzYykKK0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjo6
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biYgZGVzYykKICAgICA6IG1fc3RyZWFtRGVzY3JpcHRpb24oZGVzYykKIHsKKyAgICBjYWxjdWxh
dGVGb3JtYXQoKTsKKyAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24gPSB7IFBsYXRmb3JtRGVzY3Jp
cHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUsICZtX3N0cmVhbURlc2NyaXB0aW9uIH07CiB9
CiAKIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGRv
dWJsZSBzYW1wbGVSYXRlLCB1aW50MzJfdCBudW1DaGFubmVscywgUENNRm9ybWF0IGZvcm1hdCwg
Ym9vbCBpc0ludGVybGVhdmVkKQpAQCAtNTYsMTggKzc4LDIyIEBAIENBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbjo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGRvdWJsZSBzYW1wbGVSYXRlLCB1aW50
MzJfdCBuCiAgICAgY2FzZSBJbnQxNjoKICAgICAgICAgd29yZHNpemUgPSAyOwogICAgICAgICBt
X3N0cmVhbURlc2NyaXB0aW9uLm1Gb3JtYXRGbGFncyB8PSBrQXVkaW9Gb3JtYXRGbGFnSXNTaWdu
ZWRJbnRlZ2VyOworICAgICAgICBtX2Zvcm1hdCA9IEludDE2OwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEludDMyOgogICAgICAgICB3b3Jkc2l6ZSA9IDQ7CiAgICAgICAgIG1fc3RyZWFtRGVz
Y3JpcHRpb24ubUZvcm1hdEZsYWdzIHw9IGtBdWRpb0Zvcm1hdEZsYWdJc1NpZ25lZEludGVnZXI7
CisgICAgICAgIG1fZm9ybWF0ID0gSW50MzI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmxv
YXQzMjoKICAgICAgICAgd29yZHNpemUgPSA0OwogICAgICAgICBtX3N0cmVhbURlc2NyaXB0aW9u
Lm1Gb3JtYXRGbGFncyB8PSBrQXVkaW9Gb3JtYXRGbGFnSXNGbG9hdDsKKyAgICAgICAgbV9mb3Jt
YXQgPSBGbG9hdDMyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsb2F0NjQ6CiAgICAgICAg
IHdvcmRzaXplID0gODsKICAgICAgICAgbV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9ybWF0RmxhZ3Mg
fD0ga0F1ZGlvRm9ybWF0RmxhZ0lzRmxvYXQ7CisgICAgICAgIG1fZm9ybWF0ID0gRmxvYXQ2NDsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb25lOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTgyLDM0ICsxMDgsMzcgQEAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOjpDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24oZG91YmxlIHNhbXBsZVJhdGUsIHVpbnQzMl90IG4KICAgICAg
ICAgbV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9ybWF0RmxhZ3MgfD0ga0F1ZGlvRm9ybWF0RmxhZ0lz
Tm9uSW50ZXJsZWF2ZWQ7CiAgICAgICAgIG1fc3RyZWFtRGVzY3JpcHRpb24ubUJ5dGVzUGVyRnJh
bWUgPSBtX3N0cmVhbURlc2NyaXB0aW9uLm1CeXRlc1BlclBhY2tldCA9IHdvcmRzaXplOwogICAg
IH0KKworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbiA9IHsgUGxhdGZvcm1EZXNjcmlwdGlvbjo6
Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSwgJm1fc3RyZWFtRGVzY3JpcHRpb24gfTsKIH0KIAogY29u
c3QgUGxhdGZvcm1EZXNjcmlwdGlvbiYgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOjpwbGF0Zm9y
bURlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24gPSB7IFBs
YXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUsICZtX3N0cmVhbURlc2Ny
aXB0aW9uIH07CiAgICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsKIH0KIAogQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbjo6UENNRm9ybWF0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjo6Zm9y
bWF0KCkgY29uc3QKIHsKLSAgICBpZiAobV9mb3JtYXQgIT0gTm9uZSkKLSAgICAgICAgcmV0dXJu
IG1fZm9ybWF0OworICAgIHJldHVybiBtX2Zvcm1hdDsKK30KIAordm9pZCBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb246OmNhbGN1bGF0ZUZvcm1hdCgpCit7CiAgICAgaWYgKG1fc3RyZWFtRGVzY3Jp
cHRpb24ubUZvcm1hdElEICE9IGtBdWRpb0Zvcm1hdExpbmVhclBDTSkKLSAgICAgICAgcmV0dXJu
IE5vbmU7CisgICAgICAgIHJldHVybjsKICAgICBpZiAobV9zdHJlYW1EZXNjcmlwdGlvbi5tRnJh
bWVzUGVyUGFja2V0ICE9IDEpCi0gICAgICAgIHJldHVybiBOb25lOworICAgICAgICByZXR1cm47
CiAgICAgaWYgKG1fc3RyZWFtRGVzY3JpcHRpb24ubUJ5dGVzUGVyRnJhbWUgIT0gbV9zdHJlYW1E
ZXNjcmlwdGlvbi5tQnl0ZXNQZXJQYWNrZXQpCi0gICAgICAgIHJldHVybiBOb25lOworICAgICAg
ICByZXR1cm47CiAgICAgaWYgKG1fc3RyZWFtRGVzY3JpcHRpb24ubUJpdHNQZXJDaGFubmVsIC8g
c2l6ZW9mKGRvdWJsZSkgPiBtX3N0cmVhbURlc2NyaXB0aW9uLm1CeXRlc1BlckZyYW1lKQotICAg
ICAgICByZXR1cm4gTm9uZTsKKyAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV9zdHJlYW1EZXNj
cmlwdGlvbi5tQ2hhbm5lbHNQZXJGcmFtZSkKLSAgICAgICAgcmV0dXJuIE5vbmU7CisgICAgICAg
IHJldHVybjsKIAogICAgIHVuc2lnbmVkIHdvcmRzaXplID0gbV9zdHJlYW1EZXNjcmlwdGlvbi5t
Qnl0ZXNQZXJGcmFtZTsKICAgICBpZiAoaXNJbnRlcmxlYXZlZCgpKSB7CiAgICAgICAgIGlmICh3
b3Jkc2l6ZSAlIG1fc3RyZWFtRGVzY3JpcHRpb24ubUNoYW5uZWxzUGVyRnJhbWUpCi0gICAgICAg
ICAgICByZXR1cm4gTm9uZTsKKyAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB3b3Jkc2l6
ZSAvPSBtX3N0cmVhbURlc2NyaXB0aW9uLm1DaGFubmVsc1BlckZyYW1lOwogICAgIH0KQEAgLTEx
OCwyOCArMTQ3LDM0IEBAIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb246OlBDTUZvcm1hdCBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb246OmZvcm1hdCgpIGNvbnN0CiAgICAgICAgIC8vIFBhY2tlZCBhbmQg
bmF0aXZlIGVuZGlhbiwgZ29vZAogICAgICAgICBpZiAobV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9y
bWF0RmxhZ3MgJiBrTGluZWFyUENNRm9ybWF0RmxhZ0lzRmxvYXQpIHsKICAgICAgICAgICAgIGlm
IChtX3N0cmVhbURlc2NyaXB0aW9uLm1Gb3JtYXRGbGFncyAmIChrTGluZWFyUENNRm9ybWF0Rmxh
Z0lzU2lnbmVkSW50ZWdlciB8IGtMaW5lYXJQQ01Gb3JtYXRGbGFnc1NhbXBsZUZyYWN0aW9uTWFz
aykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmU7CisgICAgICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgICAgICBpZiAod29yZHNpemUgPT0gc2l6ZW9mKGZsb2F0KSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gbV9mb3JtYXQgPSBGbG9hdDMyOwotICAgICAgICAgICAgaWYgKHdvcmRz
aXplID09IHNpemVvZihkb3VibGUpKQotICAgICAgICAgICAgICAgIHJldHVybiBtX2Zvcm1hdCA9
IEZsb2F0NjQ7CisgICAgICAgICAgICBpZiAod29yZHNpemUgPT0gc2l6ZW9mKGZsb2F0KSkgewor
ICAgICAgICAgICAgICAgIG1fZm9ybWF0ID0gRmxvYXQzMjsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAod29yZHNpemUgPT0gc2l6ZW9mKGRv
dWJsZSkpIHsKKyAgICAgICAgICAgICAgICBtX2Zvcm1hdCA9IEZsb2F0NjQ7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogCi0gICAgICAgICAgICByZXR1cm4gTm9uZTsK
KyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX3N0cmVhbURl
c2NyaXB0aW9uLm1Gb3JtYXRGbGFncyAmIGtMaW5lYXJQQ01Gb3JtYXRGbGFnSXNTaWduZWRJbnRl
Z2VyKSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBmcmFjdGlvbkJpdHMgPSAobV9zdHJlYW1EZXNj
cmlwdGlvbi5tRm9ybWF0RmxhZ3MgJiBrTGluZWFyUENNRm9ybWF0RmxhZ3NTYW1wbGVGcmFjdGlv
bk1hc2spID4+IGtMaW5lYXJQQ01Gb3JtYXRGbGFnc1NhbXBsZUZyYWN0aW9uU2hpZnQ7CiAgICAg
ICAgICAgICBpZiAoIWZyYWN0aW9uQml0cykgewotICAgICAgICAgICAgICAgIGlmICh3b3Jkc2l6
ZSA9PSBzaXplb2YoaW50MTZfdCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtX2Zvcm1h
dCA9IEludDE2OwotICAgICAgICAgICAgICAgIGlmICh3b3Jkc2l6ZSA9PSBzaXplb2YoaW50MzJf
dCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtX2Zvcm1hdCA9IEludDMyOworICAgICAg
ICAgICAgICAgIGlmICh3b3Jkc2l6ZSA9PSBzaXplb2YoaW50MTZfdCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgbV9mb3JtYXQgPSBJbnQxNjsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAod29yZHNpemUgPT0gc2l6ZW9m
KGludDMyX3QpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fZm9ybWF0ID0gSW50MzI7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICByZXR1cm4gTm9uZTsKIH0KIAogYm9vbCBvcGVyYXRv
cj09KGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYgYSwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uJiBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaAppbmRleCAw
OGVhMmYyNmQ0OWEzZTMxM2MwZDczZmNlMTJmMjVhNGQwODZmNmMyLi5hNGEzOTdiNzZiYTVkNmQ5
NmYwY2U1NjU1NjQ2NDc3OWQzNTJmYTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaApA
QCAtMzcsOCArMzcsMTEgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uIGZpbmFsIDogcHVibGljIEF1ZGlvU3RyZWFtRGVzY3JpcHQKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24oKTsK
KyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24oY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJik7CisgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBvcGVyYXRvcj0oY29uc3QgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJik7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGNv
bnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYpOwotICAgIENBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbihkb3VibGUsIHVpbnQzMl90LCBQQ01Gb3JtYXQsIGJvb2wpOworICAgIC8vIE9ubHkg
dXNlZCBpbiB0ZXN0cworICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihkb3VibGUgc2FtcGxl
UmF0ZSwgdWludDMyX3QgbnVtQ2hhbm5lbHMsIFBDTUZvcm1hdCwgYm9vbCBpc0ludGVybGVhdmVk
KTsKICAgICB+Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKCk7CiAKICAgICBjb25zdCBQbGF0Zm9y
bURlc2NyaXB0aW9uJiBwbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QgZmluYWw7CkBAIC03NSw4
ICs3OCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYWxjdWxhdGVGb3JtYXQoKTsKIAogICAgIEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBtX3N0cmVhbURlc2NyaXB0aW9uOwotICAgIG11dGFi
bGUgUGxhdGZvcm1EZXNjcmlwdGlvbiBtX3BsYXRmb3JtRGVzY3JpcHRpb247Ci0gICAgbXV0YWJs
ZSBQQ01Gb3JtYXQgbV9mb3JtYXQgeyBOb25lIH07CisgICAgUENNRm9ybWF0IG1fZm9ybWF0IHsg
Tm9uZSB9OworICAgIFBsYXRmb3JtRGVzY3JpcHRpb24gbV9wbGF0Zm9ybURlc2NyaXB0aW9uOwog
fTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412215</attachid>
            <date>2020-10-23 16:28:34 -0700</date>
            <delta_ts>2020-10-26 11:24:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217552-20201023162833.patch</filename>
            <type>text/plain</type>
            <size>1371</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4OTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTExYjkyYTJmZTNlMzFm
ZjkyNTVjZWEzOTYxMzU0NDA0ZGQ5MmEwNS4uN2Y4OGMwOTZiNTM2OTc0MjNhZjVmYTVlZDk3ZjNi
ZDYyYjRlNTVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTEwLTIzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTc1NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgYW4gdW51c2VkIHByaXZhdGUgZnVuY3Rpb24uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9jb2NvYS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaDoKKwogMjAyMC0x
MC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFuYWx5c2Vy
Tm9kZSdzIG91dHB1dCBzaG91bGQgb25seSBoYXZlIG9uZSBjaGFubmVsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0NBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbi5oCmluZGV4IDA4ZWEyZjI2ZDQ5YTNlMzEzYzBkNzNmY2UxMmYyNWE0ZDA4NmY2
YzIuLjE0Mjk3OTAyMGY3ZjliOTNkZmIzYTc2ZWVhMGJjZWM3NDQ2ZDgyZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0NBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0NBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbi5oCkBAIC03Miw4ICs3Miw2IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mKTsKIAogcHJpdmF0ZToKLSAgICB2b2lk
IGNhbGN1bGF0ZUZvcm1hdCgpOwotCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG1f
c3RyZWFtRGVzY3JpcHRpb247CiAgICAgbXV0YWJsZSBQbGF0Zm9ybURlc2NyaXB0aW9uIG1fcGxh
dGZvcm1EZXNjcmlwdGlvbjsKICAgICBtdXRhYmxlIFBDTUZvcm1hdCBtX2Zvcm1hdCB7IE5vbmUg
fTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>