<?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>236507</bug_id>
          
          <creation_ts>2022-02-11 07:27:59 -0800</creation_ts>
          <short_desc>[GPU Process] [CG] Add an ArgumentCoder for CFCharacterSetRef</short_desc>
          <delta_ts>2022-02-12 19:58:33 -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>Layout and Rendering</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>
          
          <blocked>236508</blocked>
    
    <blocked>236547</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1840346</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-11 07:27:59 -0800</bug_when>
    <thetext>The CFDictionaryRef which is used for creating the CTFontDescriptorRef may contain the entry: { key = &quot;UnicodeCharSet&quot;, value = CFCharacterSetRef }. When this happens, the following assertion fires:

SHOULD NEVER BE REACHED
/Volumes/Data/WebKit/OpenSource/Source/WebKit/Shared/cf/ArgumentCodersCF.cpp(127) : IPC::CFType IPC::typeFromCFTypeRef(CFTypeRef)
1   0x507d52259 WTFCrash
2   0x4ebd1d84b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x4ebd309cc IPC::typeFromCFTypeRef(void const*)
4   0x4ebd3280c void IPC::ArgumentCoder&lt;__CFDictionary const*, void&gt;::encode&lt;IPC::Encoder&gt;(IPC::Encoder&amp;, __CFDictionary const*)
5   0x4ecaf170d void IPC::CFRetainPtrArgumentCoder&lt;__CFDictionary const*&gt;::encode&lt;IPC::Encoder&gt;(IPC::Encoder&amp;, WTF::RetainPtr&lt;__CFDictionary const*&gt; const&amp;)
6   0x4ecae349d IPC::Encoder&amp; IPC::Encoder::operator&lt;&lt;&lt;WTF::RetainPtr&lt;__CFDictionary const*&gt;&amp;&gt;(WTF::RetainPtr&lt;__CFDictionary const*&gt;&amp;)
7   0x4ecae2f57 IPC::ArgumentCoder&lt;WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt;, void&gt;::encodePlatformData(IPC::Encoder&amp;, WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; const&amp;)
8   0x4ed39a06f IPC::ArgumentCoder&lt;WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt;, void&gt;::encode(IPC::Encoder&amp;, WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; const&amp;)
9   0x4edd58e2d IPC::Encoder&amp; IPC::Encoder::operator&lt;&lt;&lt;WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; const&amp;&gt;(WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; const&amp;)
10  0x4edd58ded void IPC::TupleEncoder&lt;1ul, WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; const&amp;&gt;::encode&lt;IPC::Encoder&gt;(IPC::Encoder&amp;, std::__1::tuple&lt;WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; const&amp;&gt; const&amp;)
11  0x4edd58d9d void IPC::ArgumentCoder&lt;std::__1::tuple&lt;WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; const&amp;&gt;, void&gt;::encode&lt;IPC::Encoder&gt;(IPC::Encoder&amp;, std::__1::tuple&lt;WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; const&amp;&gt; const&amp;)
12  0x4edd58d5d IPC::Encoder&amp; IPC::Encoder::operator&lt;&lt;&lt;std::__1::tuple&lt;WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; const&amp;&gt; const&amp;&gt;(std::__1::tuple&lt;WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; const&amp;&gt; const&amp;)
13  0x4edd58cdf bool IPC::Connection::send&lt;Messages::RemoteRenderingBackend::CacheFont&gt;(Messages::RemoteRenderingBackend::CacheFont&amp;&amp;, unsigned long long, WTF::OptionSet&lt;IPC::SendOption&gt;, std::__1::optional&lt;WTF::Thread::QOS&gt;)
14  0x4edd58c6e bool IPC::Connection::send&lt;Messages::RemoteRenderingBackend::CacheFont, WebKit::RenderingBackendIdentifierType&gt;(Messages::RemoteRenderingBackend::CacheFont&amp;&amp;, WTF::ObjectIdentifier&lt;WebKit::RenderingBackendIdentifierType&gt;, WTF::OptionSet&lt;IPC::SendOption&gt;, std::__1::optional&lt;WTF::Thread::QOS&gt;)
15  0x4edd58bdd bool IPC::StreamClientConnection::send&lt;Messages::RemoteRenderingBackend::CacheFont, WebKit::RenderingBackendIdentifierType&gt;(Messages::RemoteRenderingBackend::CacheFont&amp;&amp;, WTF::ObjectIdentifier&lt;WebKit::RenderingBackendIdentifierType&gt;, IPC::Timeout)
16  0x4edd58aa4 void WebKit::RemoteRenderingBackendProxy::sendToStream&lt;Messages::RemoteRenderingBackend::CacheFont, WebKit::RenderingBackendIdentifierType&gt;(Messages::RemoteRenderingBackend::CacheFont&amp;&amp;, WTF::ObjectIdentifier&lt;WebKit::RenderingBackendIdentifierType&gt;)
17  0x4edc85ce3 void WebKit::RemoteRenderingBackendProxy::sendToStream&lt;Messages::RemoteRenderingBackend::CacheFont&gt;(Messages::RemoteRenderingBackend::CacheFont&amp;&amp;)
18  0x4edc85c9a WebKit::RemoteRenderingBackendProxy::cacheFont(WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt;&amp;&amp;)
19  0x4edc68af8 WebKit::RemoteResourceCacheProxy::recordFontUse(WebCore::Font&amp;)
20  0x4edc68a41 WebKit::RemoteDisplayListRecorderProxy::recordResourceUse(WebCore::Font&amp;)
21  0x5301d9831 WebCore::DisplayList::Recorder::drawGlyphsAndCacheFont(WebCore::Font const&amp;, unsigned short const*, CGSize const*, unsigned int, WebCore::FloatPoint const&amp;, WebCore::FontSmoothingMode)
22  0x53014a2dd WebCore::DrawGlyphsRecorder::recordDrawGlyphs(CGRenderingState*, CGGState*, CGAffineTransform const*, unsigned short const*, CGPoint const*, unsigned long)
23  0x53014811c WebCore::drawGlyphs(CGContextDelegate*, CGRenderingState*, CGGState*, CGAffineTransform const*, unsigned short const*, CGPoint const*, unsigned long)
24  0x7fff28ffac95 draw_glyphs.11610
25  0x7fff20ff2077 invocation function for block in DrawGlyphsAtPositions(TFont const*, unsigned short const*, CGPoint const*, unsigned long, CGContext*, CGAffineTransform, CGAffineTransform, bool, TRun const*, CGContextType, void const*)
26  0x7fff20feb14a EnumerateOverlappingGlyphs(CGContext*, TFont const&amp;, unsigned short const*, long, int, void (CFRange, bool) block_pointer)
27  0x7fff20fee8c9 DrawGlyphsAtPositions(TFont const*, unsigned short const*, CGPoint const*, unsigned long, CGContext*, CGAffineTransform, CGAffineTransform, bool, TRun const*, CGContextType, void const*)
28  0x7fff20feec13 CTFontDrawGlyphs
29  0x53014c88a WebCore::showGlyphsWithAdvances(WebCore::FloatPoint const&amp;, WebCore::Font const&amp;, CGContext*, unsigned short const*, CGSize const*, unsigned int, WebCore::AffineTransform const&amp;)
30  0x53014b4ee WebCore::FontCascade::drawGlyphs(WebCore::GraphicsContext&amp;, WebCore::Font const&amp;, unsigned short const*, CGSize const*, unsigned int, WebCore::FloatPoint const&amp;, WebCore::FontSmoothingMode)
31  0x53014b668 WebCore::DrawGlyphsRecorder::drawNonOTSVGRun(WebCore::Font const&amp;, unsigned short const*, CGSize const*, unsigned int, WebCore::FloatPoint const&amp;, WebCore::FontSmoothingMode)
com.apple.WebKit.WebContent.Development terminated (pid 13223) because the process crashed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840350</commentid>
    <comment_count>1</comment_count>
      <attachid>451695</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-11 07:36:08 -0800</bug_when>
    <thetext>Created attachment 451695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840391</commentid>
    <comment_count>2</comment_count>
      <attachid>451695</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-02-11 09:19:45 -0800</bug_when>
    <thetext>Comment on attachment 451695
Patch

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

&gt; Source/WebKit/Shared/cf/ArgumentCodersCF.cpp:704
&gt; +    if (CFDataRef data = CFCharacterSetCreateBitmapRepresentation(nullptr, characterSet)) {

Usually for these kind of things we need to encode whether the CFCharacterSetCreateBitmapRepresentation succeeded or not so in the decode case, we know whether to try to decode the CFDataRef. Is there something that makes that not needed here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840514</commentid>
    <comment_count>3</comment_count>
      <attachid>451738</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-11 13:20:40 -0800</bug_when>
    <thetext>Created attachment 451738
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840515</commentid>
    <comment_count>4</comment_count>
      <attachid>451695</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-11 13:21:10 -0800</bug_when>
    <thetext>Comment on attachment 451695
Patch

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

&gt;&gt; Source/WebKit/Shared/cf/ArgumentCodersCF.cpp:704
&gt;&gt; +    if (CFDataRef data = CFCharacterSetCreateBitmapRepresentation(nullptr, characterSet)) {
&gt; 
&gt; Usually for these kind of things we need to encode whether the CFCharacterSetCreateBitmapRepresentation succeeded or not so in the decode case, we know whether to try to decode the CFDataRef. Is there something that makes that not needed here?

I agree. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840541</commentid>
    <comment_count>5</comment_count>
      <attachid>451738</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-02-11 13:50:45 -0800</bug_when>
    <thetext>Comment on attachment 451738
Patch

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

&gt; Source/WebKit/Shared/cf/ArgumentCodersCF.cpp:69
&gt; +    CFCharacterSet,

These are meant to be sorted alphabetically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840601</commentid>
    <comment_count>6</comment_count>
      <attachid>451752</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-02-11 15:47:05 -0800</bug_when>
    <thetext>Created attachment 451752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840615</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-11 16:43:13 -0800</bug_when>
    <thetext>Committed r289680 (247166@main): &lt;https://commits.webkit.org/247166@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451752.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840616</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-11 16:44:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/88842002&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451695</attachid>
            <date>2022-02-11 07:36:08 -0800</date>
            <delta_ts>2022-02-11 13:20:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236507-20220211073607.patch</filename>
            <type>text/plain</type>
            <size>5208</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUzOTY0Njk1ZGE5NjEzZjVi
ZmI0Yjg3OWZkOTU1YjNkOTEwZjYxYzkuLjY5ZDUwZjc1NzY5NDlhYTYwODk3YmNhYzZjMDg3NTJj
NmM1YThlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDItMTEgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBbQ0dd
IEFkZCBhbiBBcmd1bWVudENvZGVyIGZvciBDRkNoYXJhY3RlclNldFJlZgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NTA3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ0ZDaGFyYWN0ZXJTZXRSZWYgaXMg
dXNlZCBmb3IgZW5jb2RpbmcgYW5kIGRlY29kaW5nIHRoZSBzeXN0ZW0gZm9udHMuCisKKyAgICAg
ICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHA6CisgICAgICAgIChJUEM6OnR5cGVG
cm9tQ0ZUeXBlUmVmKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDRlR5cGVSZWY+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJldGFpblB0cjxDRlR5cGVSZWY+
Pjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDRkNoYXJhY3RlclNldFJl
Zj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGQ2hh
cmFjdGVyU2V0UmVmPj46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL2NmL0FyZ3VtZW50Q29k
ZXJzQ0YuaDoKKwogMjAyMi0wMi0xMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBTZXBhcmF0ZSBvdXQgc2V0Vm9sYXRpbGUoKSBmcm9tIHNldE5vblZv
bGF0aWxlKCkgb24gSU9TdXJmYWNlLWJhY2tlZCBidWZmZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCmluZGV4IGU2YWNlODEzODllY2MyYTI1ZmE4MDhh
Mjk2NzE0NmI2NzBlYzExNTYuLjNmZWE0MWM5OGFhZDkxZjZmOTFlYjdiZDYwNWU0YjdkNjkyMjAx
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0Yu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCkBA
IC02Niw2ICs2Niw3IEBAIGVudW0gY2xhc3MgQ0ZUeXBlIDogdWludDhfdCB7CiAgICAgQ0ZOdW1i
ZXIsCiAgICAgQ0ZTdHJpbmcsCiAgICAgQ0ZVUkwsCisgICAgQ0ZDaGFyYWN0ZXJTZXQsCiAgICAg
U2VjQ2VydGlmaWNhdGUsCiAjaWYgSEFWRShTRUNfS0VZQ0hBSU4pCiAgICAgU2VjS2V5Y2hhaW5J
dGVtLApAQCAtMTA3LDYgKzEwOCw4IEBAIHN0YXRpYyBDRlR5cGUgdHlwZUZyb21DRlR5cGVSZWYo
Q0ZUeXBlUmVmIHR5cGUpCiAgICAgICAgIHJldHVybiBDRlR5cGU6OkNGU3RyaW5nOwogICAgIGlm
ICh0eXBlSUQgPT0gQ0ZVUkxHZXRUeXBlSUQoKSkKICAgICAgICAgcmV0dXJuIENGVHlwZTo6Q0ZV
Ukw7CisgICAgaWYgKHR5cGVJRCA9PSBDRkNoYXJhY3RlclNldEdldFR5cGVJRCgpKQorICAgICAg
ICByZXR1cm4gQ0ZUeXBlOjpDRkNoYXJhY3RlclNldDsKICAgICBpZiAodHlwZUlEID09IENHQ29s
b3JTcGFjZUdldFR5cGVJRCgpKQogICAgICAgICByZXR1cm4gQ0ZUeXBlOjpDR0NvbG9yU3BhY2U7
CiAgICAgaWYgKHR5cGVJRCA9PSBTZWNDZXJ0aWZpY2F0ZUdldFR5cGVJRCgpKQpAQCAtMTYyLDYg
KzE2NSw5IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDRlR5cGVSZWY+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgQ0ZUeXBlUmVmIHR5cGVSZWYpCiAgICAgY2FzZSBDRlR5cGU6OkNGVVJMOgogICAg
ICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PENGVVJMUmVmPih0eXBlUmVmKTsKICAgICAgICAg
cmV0dXJuOworICAgIGNhc2UgQ0ZUeXBlOjpDRkNoYXJhY3RlclNldDoKKyAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDxDRkNoYXJhY3RlclNldFJlZj4odHlwZVJlZik7CisgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIENGVHlwZTo6Q0dDb2xvclNwYWNlOgogICAgICAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PENHQ29sb3JTcGFjZVJlZj4oY29uc3RfY2FzdDx2b2lkKj4odHlwZVJlZikp
OwogICAgICAgICByZXR1cm47CkBAIC0yNjEsNiArMjY3LDEzIEBAIHN0ZDo6b3B0aW9uYWw8UmV0
YWluUHRyPENGVHlwZVJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGVHlwZVJlZj4+Ojpk
ZWNvZGUoCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICByZXR1cm4g
V1RGTW92ZSgqdXJsKTsKICAgICB9CisgICAgY2FzZSBDRlR5cGU6OkNGQ2hhcmFjdGVyU2V0OiB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGQ2hhcmFjdGVyU2V0UmVmPj4gY2hh
cmFjdGVyU2V0OworICAgICAgICBkZWNvZGVyID4+IGNoYXJhY3RlclNldDsKKyAgICAgICAgaWYg
KCFjaGFyYWN0ZXJTZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAg
ICByZXR1cm4gV1RGTW92ZSgqY2hhcmFjdGVyU2V0KTsKKyAgICB9CiAgICAgY2FzZSBDRlR5cGU6
OkNHQ29sb3JTcGFjZTogewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDR0NvbG9y
U3BhY2VSZWY+PiBjb2xvclNwYWNlOwogICAgICAgICBkZWNvZGVyID4+IGNvbG9yU3BhY2U7CkBA
IC02ODUsNiArNjk4LDI4IEBAIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGVVJMUmVmPj4gQXJn
dW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZVUkxSZWY+Pjo6ZGVjb2RlKERlCiAgICAgcmV0dXJuIFdU
Rk1vdmUocmVzdWx0KTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KK3ZvaWQgQXJn
dW1lbnRDb2RlcjxDRkNoYXJhY3RlclNldFJlZj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBD
RkNoYXJhY3RlclNldFJlZiBjaGFyYWN0ZXJTZXQpCit7CisgICAgaWYgKENGRGF0YVJlZiBkYXRh
ID0gQ0ZDaGFyYWN0ZXJTZXRDcmVhdGVCaXRtYXBSZXByZXNlbnRhdGlvbihudWxscHRyLCBjaGFy
YWN0ZXJTZXQpKSB7CisgICAgICAgIGVuY29kZXIgPDwgZGF0YTsKKyAgICAgICAgQ0ZSZWxlYXNl
KGRhdGEpOworICAgIH0KK30KKwordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENGQ2hhcmFj
dGVyU2V0UmVmPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBDRkNoYXJhY3RlclNldFJlZik7
Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q0ZDaGFyYWN0ZXJTZXRSZWY+OjplbmNvZGU8
U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgQ0ZDaGFy
YWN0ZXJTZXRSZWYpOworCitzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkNoYXJhY3RlclNldFJl
Zj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGQ2hhcmFjdGVyU2V0UmVmPj46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGRGF0YVJl
Zj4+IGRhdGE7CisgICAgZGVjb2RlciA+PiBkYXRhOworICAgIGlmICghZGF0YSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBhZG9wdENGKENGQ2hhcmFjdGVyU2V0
Q3JlYXRlV2l0aEJpdG1hcFJlcHJlc2VudGF0aW9uKG51bGxwdHIsIGRhdGEtPmdldCgpKSk7Cit9
CisKIGVudW0gY2xhc3MgQ0dDb2xvclNwYWNlRW5jb2RpbmdTY2hlbWUgOiBib29sIHsgTmFtZSwg
UHJvcGVydHlMaXN0IH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CkBAIC04ODQsNiAr
OTE5LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxJUEM6OkNGVHlwZT4gewogICAg
ICAgICBJUEM6OkNGVHlwZTo6Q0ZOdW1iZXIsCiAgICAgICAgIElQQzo6Q0ZUeXBlOjpDRlN0cmlu
ZywKICAgICAgICAgSVBDOjpDRlR5cGU6OkNGVVJMLAorICAgICAgICBJUEM6OkNGVHlwZTo6Q0ZD
aGFyYWN0ZXJTZXQsCiAgICAgICAgIElQQzo6Q0ZUeXBlOjpTZWNDZXJ0aWZpY2F0ZSwKICNpZiBI
QVZFKFNFQ19LRVlDSEFJTikKICAgICAgICAgSVBDOjpDRlR5cGU6OlNlY0tleWNoYWluSXRlbSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaAppbmRleCAwNjg3YTZi
ZTJiNjhjOWY3YjA0NDY2NTVmYTAxMGE3NDViYjI2ZGEyLi5kMmVlMjQ1YjgyYTUwNDlhZDBlN2Ex
N2FhMDBkMjQ0MjliMjIwM2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9B
cmd1bWVudENvZGVyc0NGLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRD
b2RlcnNDRi5oCkBAIC0xMTUsNiArMTE1LDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8UmV0YWluUHRyPENGVVJMUmVmPj4gOiBDRlJldGFpblB0ckFyZ3VtZW50Q29kZXI8CiAg
ICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGVVJMUmVmPj4gZGVjb2RlKERlY29k
ZXImKTsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0ZDaGFyYWN0ZXJT
ZXRSZWY+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIENGQ2hhcmFjdGVyU2V0UmVmKTsKK307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFJldGFpblB0cjxDRkNoYXJhY3RlclNldFJlZj4+IDogQ0ZSZXRhaW5QdHJB
cmd1bWVudENvZGVyPENGQ2hhcmFjdGVyU2V0UmVmPiB7CisgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UmV0YWluUHRyPENGQ2hhcmFjdGVyU2V0UmVmPj4gZGVjb2RlKERlY29kZXImKTsKK307CisK
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dDb2xvclNwYWNlUmVmPiB7CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBD
R0NvbG9yU3BhY2VSZWYpOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451738</attachid>
            <date>2022-02-11 13:20:40 -0800</date>
            <delta_ts>2022-02-11 13:50:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236507-20220211132039.patch</filename>
            <type>text/plain</type>
            <size>5484</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM5ZWI0YjJlYWMyYzE0NjE4
OTk5MDViMGUzNWRlZTgwZTAyZmMyZjEuLjU2OWM0MGVhYjA0MjYxMDE4OWU5MTUyNDExZWFiNDdl
NDgzNjllZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDItMTEgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBbQ0dd
IEFkZCBhbiBBcmd1bWVudENvZGVyIGZvciBDRkNoYXJhY3RlclNldFJlZgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NTA3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ0ZDaGFyYWN0ZXJTZXRSZWYgaXMg
dXNlZCBmb3IgZW5jb2RpbmcgYW5kIGRlY29kaW5nIHRoZSBzeXN0ZW0gZm9udHMuCisKKyAgICAg
ICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHA6CisgICAgICAgIChJUEM6OnR5cGVG
cm9tQ0ZUeXBlUmVmKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDRlR5cGVSZWY+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJldGFpblB0cjxDRlR5cGVSZWY+
Pjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDRkNoYXJhY3RlclNldFJl
Zj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGQ2hh
cmFjdGVyU2V0UmVmPj46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL2NmL0FyZ3VtZW50Q29k
ZXJzQ0YuaDoKKwogMjAyMi0wMi0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgU3VwcG9ydCByZW1vdGUgdmlkZW8gZnJhbWVzIGluIFdlYlJUQyB2aWRlbyBw
aXBlbGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2Rl
cnNDRi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcApp
bmRleCBlNmFjZTgxMzg5ZWNjMmEyNWZhODA4YTI5NjcxNDZiNjcwZWMxMTU2Li5mZWM4OGExZjll
N2I2NWQ2NzJjYzAyNDIwMmRkYjcyYTM1ZTg0YWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcApAQCAtNjYsNiArNjYsNyBAQCBlbnVtIGNsYXNzIENG
VHlwZSA6IHVpbnQ4X3QgewogICAgIENGTnVtYmVyLAogICAgIENGU3RyaW5nLAogICAgIENGVVJM
LAorICAgIENGQ2hhcmFjdGVyU2V0LAogICAgIFNlY0NlcnRpZmljYXRlLAogI2lmIEhBVkUoU0VD
X0tFWUNIQUlOKQogICAgIFNlY0tleWNoYWluSXRlbSwKQEAgLTEwNyw2ICsxMDgsOCBAQCBzdGF0
aWMgQ0ZUeXBlIHR5cGVGcm9tQ0ZUeXBlUmVmKENGVHlwZVJlZiB0eXBlKQogICAgICAgICByZXR1
cm4gQ0ZUeXBlOjpDRlN0cmluZzsKICAgICBpZiAodHlwZUlEID09IENGVVJMR2V0VHlwZUlEKCkp
CiAgICAgICAgIHJldHVybiBDRlR5cGU6OkNGVVJMOworICAgIGlmICh0eXBlSUQgPT0gQ0ZDaGFy
YWN0ZXJTZXRHZXRUeXBlSUQoKSkKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6Q0ZDaGFyYWN0ZXJT
ZXQ7CiAgICAgaWYgKHR5cGVJRCA9PSBDR0NvbG9yU3BhY2VHZXRUeXBlSUQoKSkKICAgICAgICAg
cmV0dXJuIENGVHlwZTo6Q0dDb2xvclNwYWNlOwogICAgIGlmICh0eXBlSUQgPT0gU2VjQ2VydGlm
aWNhdGVHZXRUeXBlSUQoKSkKQEAgLTE2Miw2ICsxNjUsOSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8
Q0ZUeXBlUmVmPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENGVHlwZVJlZiB0eXBlUmVmKQog
ICAgIGNhc2UgQ0ZUeXBlOjpDRlVSTDoKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxD
RlVSTFJlZj4odHlwZVJlZik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIENGVHlwZTo6Q0ZD
aGFyYWN0ZXJTZXQ6CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Q0ZDaGFyYWN0ZXJT
ZXRSZWY+KHR5cGVSZWYpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDRlR5cGU6OkNHQ29s
b3JTcGFjZToKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxDR0NvbG9yU3BhY2VSZWY+
KGNvbnN0X2Nhc3Q8dm9pZCo+KHR5cGVSZWYpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjYxLDYg
KzI2NywxMyBAQCBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRlR5cGVSZWY+PiBBcmd1bWVudENv
ZGVyPFJldGFpblB0cjxDRlR5cGVSZWY+Pjo6ZGVjb2RlKAogICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICAgICAgcmV0dXJuIFdURk1vdmUoKnVybCk7CiAgICAgfQorICAgIGNh
c2UgQ0ZUeXBlOjpDRkNoYXJhY3RlclNldDogeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFJldGFp
blB0cjxDRkNoYXJhY3RlclNldFJlZj4+IGNoYXJhY3RlclNldDsKKyAgICAgICAgZGVjb2RlciA+
PiBjaGFyYWN0ZXJTZXQ7CisgICAgICAgIGlmICghY2hhcmFjdGVyU2V0KQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKmNoYXJhY3RlclNl
dCk7CisgICAgfQogICAgIGNhc2UgQ0ZUeXBlOjpDR0NvbG9yU3BhY2U6IHsKICAgICAgICAgc3Rk
OjpvcHRpb25hbDxSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPj4gY29sb3JTcGFjZTsKICAgICAg
ICAgZGVjb2RlciA+PiBjb2xvclNwYWNlOwpAQCAtNjg1LDYgKzY5OCw0MyBAQCBzdGQ6Om9wdGlv
bmFsPFJldGFpblB0cjxDRlVSTFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGVVJMUmVm
Pj46OmRlY29kZShEZQogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKK3RlbXBsYXRl
PHR5cGVuYW1lIEVuY29kZXI+Cit2b2lkIEFyZ3VtZW50Q29kZXI8Q0ZDaGFyYWN0ZXJTZXRSZWY+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0ZDaGFyYWN0ZXJTZXRSZWYgY2hhcmFjdGVyU2V0
KQoreworICAgIGF1dG8gZGF0YSA9IGFkb3B0Q0YoQ0ZDaGFyYWN0ZXJTZXRDcmVhdGVCaXRtYXBS
ZXByZXNlbnRhdGlvbihudWxscHRyLCBjaGFyYWN0ZXJTZXQpKTsKKyAgICBpZiAoIWRhdGEpIHsK
KyAgICAgICAgZW5jb2RlciA8PCBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGVuY29kZXIgPDwgdHJ1ZSA8PCBkYXRhOworfQorCit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29k
ZXI8Q0ZDaGFyYWN0ZXJTZXRSZWY+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIENGQ2hhcmFj
dGVyU2V0UmVmKTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxDRkNoYXJhY3RlclNldFJl
Zj46OmVuY29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29k
ZXImLCBDRkNoYXJhY3RlclNldFJlZik7CisKK3N0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGQ2hh
cmFjdGVyU2V0UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZDaGFyYWN0ZXJTZXRSZWY+
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxib29sPiBo
YXNEYXRhOworICAgIGRlY29kZXIgPj4gaGFzRGF0YTsKKyAgICBpZiAoIWhhc0RhdGEpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpZiAoISpoYXNEYXRhKQorICAgICAgICBy
ZXR1cm4geyBudWxscHRyIH07CisKKyAgICBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkRhdGFS
ZWY+PiBkYXRhOworICAgIGRlY29kZXIgPj4gZGF0YTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIGNoYXJhY3RlclNldCA9IGFkb3B0Q0Yo
Q0ZDaGFyYWN0ZXJTZXRDcmVhdGVXaXRoQml0bWFwUmVwcmVzZW50YXRpb24obnVsbHB0ciwgZGF0
YS0+Z2V0KCkpKTsKKyAgICBpZiAoIWNoYXJhY3RlclNldCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHJldHVybiBXVEZNb3ZlKGNoYXJhY3RlclNldCk7Cit9CisKIGVudW0g
Y2xhc3MgQ0dDb2xvclNwYWNlRW5jb2RpbmdTY2hlbWUgOiBib29sIHsgTmFtZSwgUHJvcGVydHlM
aXN0IH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CkBAIC04ODQsNiArOTM0LDcgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxJUEM6OkNGVHlwZT4gewogICAgICAgICBJUEM6
OkNGVHlwZTo6Q0ZOdW1iZXIsCiAgICAgICAgIElQQzo6Q0ZUeXBlOjpDRlN0cmluZywKICAgICAg
ICAgSVBDOjpDRlR5cGU6OkNGVVJMLAorICAgICAgICBJUEM6OkNGVHlwZTo6Q0ZDaGFyYWN0ZXJT
ZXQsCiAgICAgICAgIElQQzo6Q0ZUeXBlOjpTZWNDZXJ0aWZpY2F0ZSwKICNpZiBIQVZFKFNFQ19L
RVlDSEFJTikKICAgICAgICAgSVBDOjpDRlR5cGU6OlNlY0tleWNoYWluSXRlbSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaAppbmRleCAwNjg3YTZiZTJiNjhjOWY3
YjA0NDY2NTVmYTAxMGE3NDViYjI2ZGEyLi5kMmVlMjQ1YjgyYTUwNDlhZDBlN2ExN2FhMDBkMjQ0
MjliMjIwM2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENv
ZGVyc0NGLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5o
CkBAIC0xMTUsNiArMTE1LDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmV0
YWluUHRyPENGVVJMUmVmPj4gOiBDRlJldGFpblB0ckFyZ3VtZW50Q29kZXI8CiAgICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGVVJMUmVmPj4gZGVjb2RlKERlY29kZXImKTsKIH07
CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0ZDaGFyYWN0ZXJTZXRSZWY+IHsK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIENGQ2hhcmFjdGVyU2V0UmVmKTsKK307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFJldGFpblB0cjxDRkNoYXJhY3RlclNldFJlZj4+IDogQ0ZSZXRhaW5QdHJBcmd1bWVudENv
ZGVyPENGQ2hhcmFjdGVyU2V0UmVmPiB7CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmV0YWlu
UHRyPENGQ2hhcmFjdGVyU2V0UmVmPj4gZGVjb2RlKERlY29kZXImKTsKK307CisKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dDb2xvclNwYWNlUmVmPiB7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0NvbG9yU3Bh
Y2VSZWYpOwogfTsK
</data>
<flag name="review"
          id="478568"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451752</attachid>
            <date>2022-02-11 15:47:05 -0800</date>
            <delta_ts>2022-02-11 16:43:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236507-20220211154704.patch</filename>
            <type>text/plain</type>
            <size>5440</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM5ZWI0YjJlYWMyYzE0NjE4
OTk5MDViMGUzNWRlZTgwZTAyZmMyZjEuLjE3YWI1MjA2ZWE4ZDAxZDBlNTM1NTU5OGE4NDNjMjVh
MjgwZjdjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDItMTEgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBbQ0dd
IEFkZCBhbiBBcmd1bWVudENvZGVyIGZvciBDRkNoYXJhY3RlclNldFJlZgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NTA3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBDRkNoYXJhY3RlclNldFJlZiBpcyB1c2Vk
IGZvciBlbmNvZGluZyBhbmQgZGVjb2RpbmcgdGhlIHN5c3RlbSBmb250cy4KKworICAgICAgICAq
IFNoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcDoKKyAgICAgICAgKElQQzo6dHlwZUZyb21D
RlR5cGVSZWYpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENGVHlwZVJlZj46OmVuY29k
ZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGVHlwZVJlZj4+Ojpk
ZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENGQ2hhcmFjdGVyU2V0UmVmPjo6
ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZDaGFyYWN0
ZXJTZXRSZWY+Pjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnND
Ri5oOgorCiAyMDIyLTAyLTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTdXBwb3J0IHJlbW90ZSB2aWRlbyBmcmFtZXMgaW4gV2ViUlRDIHZpZGVvIHBpcGVs
aW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NG
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCmluZGV4
IGU2YWNlODEzODllY2MyYTI1ZmE4MDhhMjk2NzE0NmI2NzBlYzExNTYuLjgxMjA3YjliNDJhODY4
Y2U4MWI2ZDNjMGYzNjJlZjZjZTMxY2ZmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2Nm
L0FyZ3VtZW50Q29kZXJzQ0YuY3BwCkBAIC01OSw2ICs1OSw3IEBAIENGVHlwZVJlZiB0b2tlbk51
bGxwdHJUeXBlUmVmKCkKIGVudW0gY2xhc3MgQ0ZUeXBlIDogdWludDhfdCB7CiAgICAgQ0ZBcnJh
eSwKICAgICBDRkJvb2xlYW4sCisgICAgQ0ZDaGFyYWN0ZXJTZXQsCiAgICAgQ0ZEYXRhLAogICAg
IENGRGF0ZSwKICAgICBDRkRpY3Rpb25hcnksCkBAIC05Myw2ICs5NCw4IEBAIHN0YXRpYyBDRlR5
cGUgdHlwZUZyb21DRlR5cGVSZWYoQ0ZUeXBlUmVmIHR5cGUpCiAgICAgICAgIHJldHVybiBDRlR5
cGU6OkNGQXJyYXk7CiAgICAgaWYgKHR5cGVJRCA9PSBDRkJvb2xlYW5HZXRUeXBlSUQoKSkKICAg
ICAgICAgcmV0dXJuIENGVHlwZTo6Q0ZCb29sZWFuOworICAgIGlmICh0eXBlSUQgPT0gQ0ZDaGFy
YWN0ZXJTZXRHZXRUeXBlSUQoKSkKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6Q0ZDaGFyYWN0ZXJT
ZXQ7CiAgICAgaWYgKHR5cGVJRCA9PSBDRkRhdGFHZXRUeXBlSUQoKSkKICAgICAgICAgcmV0dXJu
IENGVHlwZTo6Q0ZEYXRhOwogICAgIGlmICh0eXBlSUQgPT0gQ0ZEYXRlR2V0VHlwZUlEKCkpCkBA
IC0xNDIsNiArMTQ1LDkgQEAgdm9pZCBBcmd1bWVudENvZGVyPENGVHlwZVJlZj46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBDRlR5cGVSZWYgdHlwZVJlZikKICAgICBjYXNlIENGVHlwZTo6Q0ZC
b29sZWFuOgogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PENGQm9vbGVhblJlZj4odHlw
ZVJlZik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIENGVHlwZTo6Q0ZDaGFyYWN0ZXJTZXQ6
CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Q0ZDaGFyYWN0ZXJTZXRSZWY+KHR5cGVS
ZWYpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDRlR5cGU6OkNGRGF0YToKICAgICAgICAg
ZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxDRkRhdGFSZWY+KHR5cGVSZWYpOwogICAgICAgICByZXR1
cm47CkBAIC0yMTcsNiArMjIzLDEzIEBAIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGVHlwZVJl
Zj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGVHlwZVJlZj4+OjpkZWNvZGUoCiAgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICByZXR1cm4gV1RGTW92ZSgqYm9vbGVh
bik7CiAgICAgfQorICAgIGNhc2UgQ0ZUeXBlOjpDRkNoYXJhY3RlclNldDogeworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkNoYXJhY3RlclNldFJlZj4+IGNoYXJhY3RlclNldDsK
KyAgICAgICAgZGVjb2RlciA+PiBjaGFyYWN0ZXJTZXQ7CisgICAgICAgIGlmICghY2hhcmFjdGVy
U2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIFdU
Rk1vdmUoKmNoYXJhY3RlclNldCk7CisgICAgfQogICAgIGNhc2UgQ0ZUeXBlOjpDRkRhdGE6IHsK
ICAgICAgICAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gZGF0YTsKICAgICAg
ICAgZGVjb2RlciA+PiBkYXRhOwpAQCAtMzk4LDYgKzQxMSw0MyBAQCBzdGQ6Om9wdGlvbmFsPFJl
dGFpblB0cjxDRkJvb2xlYW5SZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxDRkJvb2xlYW5S
ZWY+Pjo6ZAogICAgIHJldHVybiBhZG9wdENGKCpib29sZWFuID8ga0NGQm9vbGVhblRydWUgOiBr
Q0ZCb29sZWFuRmFsc2UpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgordm9pZCBB
cmd1bWVudENvZGVyPENGQ2hhcmFjdGVyU2V0UmVmPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IENGQ2hhcmFjdGVyU2V0UmVmIGNoYXJhY3RlclNldCkKK3sKKyAgICBhdXRvIGRhdGEgPSBhZG9w
dENGKENGQ2hhcmFjdGVyU2V0Q3JlYXRlQml0bWFwUmVwcmVzZW50YXRpb24obnVsbHB0ciwgY2hh
cmFjdGVyU2V0KSk7CisgICAgaWYgKCFkYXRhKSB7CisgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBlbmNvZGVyIDw8IHRydWUgPDwgZGF0YTsK
K30KKwordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENGQ2hhcmFjdGVyU2V0UmVmPjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBDRkNoYXJhY3RlclNldFJlZik7Cit0ZW1wbGF0ZSB2b2lk
IEFyZ3VtZW50Q29kZXI8Q0ZDaGFyYWN0ZXJTZXRSZWY+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlv
bkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgQ0ZDaGFyYWN0ZXJTZXRSZWYpOwor
CitzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkNoYXJhY3RlclNldFJlZj4+IEFyZ3VtZW50Q29k
ZXI8UmV0YWluUHRyPENGQ2hhcmFjdGVyU2V0UmVmPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaGFzRGF0YTsKKyAgICBkZWNvZGVyID4+IGhh
c0RhdGE7CisgICAgaWYgKCFoYXNEYXRhKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgaWYgKCEqaGFzRGF0YSkKKyAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciB9OworCisgICAg
c3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gZGF0YTsKKyAgICBkZWNvZGVyID4+
IGRhdGE7CisgICAgaWYgKCFkYXRhKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgYXV0byBjaGFyYWN0ZXJTZXQgPSBhZG9wdENGKENGQ2hhcmFjdGVyU2V0Q3JlYXRlV2l0aEJp
dG1hcFJlcHJlc2VudGF0aW9uKG51bGxwdHIsIGRhdGEtPmdldCgpKSk7CisgICAgaWYgKCFjaGFy
YWN0ZXJTZXQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gV1RG
TW92ZShjaGFyYWN0ZXJTZXQpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogdm9p
ZCBBcmd1bWVudENvZGVyPENGRGF0YVJlZj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRkRh
dGFSZWYgZGF0YSkKIHsKQEAgLTg3Nyw2ICs5MjcsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPElQQzo6Q0ZUeXBlPiB7CiAgICAgICAgIElQQzo6Q0ZUeXBlLAogICAgICAgICBJUEM6
OkNGVHlwZTo6Q0ZBcnJheSwKICAgICAgICAgSVBDOjpDRlR5cGU6OkNGQm9vbGVhbiwKKyAgICAg
ICAgSVBDOjpDRlR5cGU6OkNGQ2hhcmFjdGVyU2V0LAogICAgICAgICBJUEM6OkNGVHlwZTo6Q0ZE
YXRhLAogICAgICAgICBJUEM6OkNGVHlwZTo6Q0ZEYXRlLAogICAgICAgICBJUEM6OkNGVHlwZTo6
Q0ZEaWN0aW9uYXJ5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1l
bnRDb2RlcnNDRi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5o
CmluZGV4IDA2ODdhNmJlMmI2OGM5ZjdiMDQ0NjY1NWZhMDEwYTc0NWJiMjZkYTIuLmE4MjBhMTY3
MmE2Nzk5Mjc1MDJlMzBmOWZiODBjNWY3OWI5ODg5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9jZi9Bcmd1bWVudENvZGVyc0NGLmgKQEAgLTczLDYgKzczLDEzIEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGQm9vbGVhblJlZj4+IDogQ0ZSZXRhaW5QdHJB
cmd1bWVudENvCiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGQm9vbGVhblJl
Zj4+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPENGQ2hhcmFjdGVyU2V0UmVmPiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4g
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDRkNoYXJhY3RlclNldFJlZik7Cit9OwordGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZDaGFyYWN0ZXJTZXRSZWY+
PiA6IENGUmV0YWluUHRyQXJndW1lbnRDb2RlcjxDRkNoYXJhY3RlclNldFJlZj4geworICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkNoYXJhY3RlclNldFJlZj4+IGRlY29kZShE
ZWNvZGVyJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENGRGF0YVJl
Zj4gewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgQ0ZEYXRhUmVmKTsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>