<?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>239113</bug_id>
          
          <creation_ts>2022-04-12 00:38:13 -0700</creation_ts>
          <short_desc>REGRESSION(r249162): CanvasRenderingContext2DBase::drawImage() crashes if the image is animated and the first frame cannot be decoded</short_desc>
          <delta_ts>2022-05-16 16:46:15 -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>Images</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=74779</see_also>
          <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="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>heycam</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1860609</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-12 00:38:13 -0700</bug_when>
    <thetext>Some pages may draw the BitmapImage before loading the encoded data is complete. This case is already handled by BitmapImage::draw() which returns peacefully if the &quot;current frame&quot; cannot be decoded. 

To draw an animated BitmapImage to a canvas, r249162 changed the old behavior to draw the first frame always. To do that, this revision creates another temporary static BitmapImage and draws this temporary BitmapImage instead of drawing the original image. This temporary static BitmapImage is created from the first frame of the original image.

The problem is CanvasRenderingContext2DBase::drawImage() does not check whether the first frame is decoded with a valid NativeImage or not before creating the temporary static BitmapImage. If the NativeImage is null, BitmapImage will create an ImageSource with a null NativeImage. But because ImageSource does not take into account the case of the null NativeImage, a segmentation fault crash will happen once the members of the null NativeImage is accessed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860610</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-12 00:38:42 -0700</bug_when>
    <thetext>rdar://87980543</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860628</commentid>
    <comment_count>2</comment_count>
      <attachid>457318</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-12 02:33:30 -0700</bug_when>
    <thetext>Created attachment 457318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860758</commentid>
    <comment_count>3</comment_count>
      <attachid>457350</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-12 12:04:43 -0700</bug_when>
    <thetext>Created attachment 457350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860883</commentid>
    <comment_count>4</comment_count>
      <attachid>457350</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-12 14:12:52 -0700</bug_when>
    <thetext>Comment on attachment 457350
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        static image. If the first frame can&apos;t be decoded, it should return

Do we know when this happens (when the first frame can&apos;t be decoded)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864214</commentid>
    <comment_count>5</comment_count>
      <attachid>457350</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-25 13:53:45 -0700</bug_when>
    <thetext>Comment on attachment 457350
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        static image. If the first frame can&apos;t be decoded, it should return
&gt; 
&gt; Do we know when this happens (when the first frame can&apos;t be decoded)?

I think I misunderstood this bug. The null check will prevent the crash but it will leave a racy behavior while decoding the frames of the animated image.

The problem is the animated image is decoded asynchronously. But drawing the animated image to the canvas requires decoding the first frame. So we decode the first frame synchronously. But ImageIO is not thread safe with regarding to the frame decoding. Also this will mess all ImageIO calculations since each frame is composed by adding a delta to the previous frame. ImageIO has to decode the frames 0, 1, ... n-1 to be able to decode frame n. So if we want to decode frame zero for canvas drawing while the current frame is n, ImageIO will delete all the frames and decode frame zero. Then it has to decode all the other frames from frame 1 till frame n-1 again before returning frame n.

So it looks like we need to cache frame zero always and never delete it even under memory pressure. We use this rule with the current frame and we just need to extend to the frame zero as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864319</commentid>
    <comment_count>6</comment_count>
      <attachid>457350</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-25 18:05:11 -0700</bug_when>
    <thetext>Comment on attachment 457350
Patch

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

&gt;&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt;&gt; +        static image. If the first frame can&apos;t be decoded, it should return
&gt;&gt; 
&gt;&gt; Do we know when this happens (when the first frame can&apos;t be decoded)?
&gt; 
&gt; I think I misunderstood this bug. The null check will prevent the crash but it will leave a racy behavior while decoding the frames of the animated image.
&gt; 
&gt; The problem is the animated image is decoded asynchronously. But drawing the animated image to the canvas requires decoding the first frame. So we decode the first frame synchronously. But ImageIO is not thread safe with regarding to the frame decoding. Also this will mess all ImageIO calculations since each frame is composed by adding a delta to the previous frame. ImageIO has to decode the frames 0, 1, ... n-1 to be able to decode frame n. So if we want to decode frame zero for canvas drawing while the current frame is n, ImageIO will delete all the frames and decode frame zero. Then it has to decode all the other frames from frame 1 till frame n-1 again before returning frame n.
&gt; 
&gt; So it looks like we need to cache frame zero always and never delete it even under memory pressure. We use this rule with the current frame and we just need to extend to the frame zero as well.

I tried to write a test case with multiple large animated images and I was hoping it will crash on macOS or on iOS but it did not. It looks like my theory about ImageIO being thread unsafe when decoding frames from different threads is incorrect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864321</commentid>
    <comment_count>7</comment_count>
      <attachid>458320</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-04-25 18:35:50 -0700</bug_when>
    <thetext>Created attachment 458320
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868306</commentid>
    <comment_count>8</comment_count>
      <attachid>459207</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-11 21:11:05 -0700</bug_when>
    <thetext>Created attachment 459207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868319</commentid>
    <comment_count>9</comment_count>
      <attachid>459208</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-12 00:40:06 -0700</bug_when>
    <thetext>Created attachment 459208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869497</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-16 16:46:10 -0700</bug_when>
    <thetext>Committed r294280 (250624@main): &lt;https://commits.webkit.org/250624@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459208.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457318</attachid>
            <date>2022-04-12 02:33:30 -0700</date>
            <delta_ts>2022-04-12 12:04:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239113-20220412023329.patch</filename>
            <type>text/plain</type>
            <size>7871</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJjZDViOGQ1YTU3ZDc0
ZjJlZjRmYmZlOWUwZjkyODQ0MGZlZDRiMS4uMjFkMDBlZDVlMGU2NWQxNGJjODM5M2IwOWZjZmRk
ZDVlOGZkOTM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTA0LTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI0
OTE2Mik6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSgpIGNyYXNoZXMg
aWYgdGhlIGltYWdlIGlzIGFuaW1hdGVkIGFuZCB0aGUgZmlyc3QgZnJhbWUgY2Fubm90IGJlIGRl
Y29kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
OTExMworICAgICAgICByZGFyOi8vODc5ODA1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3
SW1hZ2UoKSBuZWVkcyB0byBlbnN1cmUgdGhlIGZpcnN0IGZyYW1lCisgICAgICAgIG9mIHRoZSBh
bmltYXRlZCBpbWFnZSBjYW4gYmUgZGVjb2RlZCBjb3JyZWN0bHkgYmVmb3JlIGNyZWF0aW5nIHRo
ZSB0ZW1wb3JhcnkKKyAgICAgICAgc3RhdGljIGltYWdlLiBJZiB0aGUgZmlyc3QgZnJhbWUgY2Fu
J3QgYmUgZGVjb2RlZCwgaXQgc2hvdWxkIHJldHVybgorICAgICAgICBpbW1lZGlhdGVseS4gVGhp
cyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiB0aGlzIGZ1bmN0aW9uIGJlZm9yZSByMjQ5MTYyLgor
CisgICAgICAgIFRvIG1ha2UgdGhlIGNvZGUgbW9yZSByb2J1c3QsIG1ha2UgSW1hZ2VTb3VyY2Ug
dGFrZSBhIFJlZjxOYXRpdmVJbWFnZT4KKyAgICAgICAgaW5zdGVhZCBvZiB0YWtpbmcgYSBSZWZQ
dHI8TmF0aXZlSW1hZ2U+LgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVNvdXJjZTo6SW1hZ2VTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNl
dE5hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5o
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmNyZWF0ZSk6CisKIDIwMjItMDQtMDcg
IE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAKICAgICAgICAg
VW5pZnkgcmVmZXJlbmNlIGJveCAvIENUTSBjb21wdXRhdGlvbiBpbiBSZW5kZXJMYXllcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlLmNwcAppbmRleCBlMDFkZjM5MjkzNmU4MjA5Y2ViZDRkNjQ4NGJmZmUyOGUw
NDJiNGVhLi40ODNhZGY3N2VhZTIyODJiZmU5MGM4ZjU2NGVmNzA4Y2I2MmVmNmE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlLmNwcApAQCAtMTU0NSw4ICsxNTQ1LDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShEb2N1bWVudCYgZG9jdW1l
bnQsIENhCiAKICAgICBpZiAoaW1hZ2UtPmlzQml0bWFwSW1hZ2UoKSkgewogICAgICAgICAvLyBE
cmF3aW5nIGFuIGFuaW1hdGVkIGltYWdlIHRvIGEgY2FudmFzIHNob3VsZCBkcmF3IHRoZSBmaXJz
dCBmcmFtZSAoZXhjZXB0IGZvciBhIGZldyBsYXlvdXQgdGVzdHMpCi0gICAgICAgIGlmIChpbWFn
ZS0+aXNBbmltYXRlZCgpICYmICFkb2N1bWVudC5zZXR0aW5ncygpLmFuaW1hdGVkSW1hZ2VEZWJ1
Z0NhbnZhc0RyYXdpbmdFbmFibGVkKCkpCisgICAgICAgIGlmIChpbWFnZS0+aXNBbmltYXRlZCgp
ICYmICFkb2N1bWVudC5zZXR0aW5ncygpLmFuaW1hdGVkSW1hZ2VEZWJ1Z0NhbnZhc0RyYXdpbmdF
bmFibGVkKCkpIHsKICAgICAgICAgICAgIGltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0ZShpbWFn
ZS0+bmF0aXZlSW1hZ2UoKSk7CisgICAgICAgICAgICBpZiAoIWltYWdlKQorICAgICAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIH0KICAgICAgICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+
KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKGRvY3VtZW50LnNldHRpbmdzKCkpOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3Bw
CmluZGV4IDFhMGJhMzY2ZjQyM2I1MmI3NzJlZDg1YjNiZDNlMzhmNTNlYjkxMDguLjE4MDM4M2Q0
NzFlZTU2MWQzNGM2YjI1YmY5M2YyOWJiNTYwYTNmMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgQml0
bWFwSW1hZ2U6OkJpdG1hcEltYWdlKEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogewogfQogCi1C
aXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoUmVmUHRyPE5hdGl2ZUltYWdlPiYmIGltYWdlLCBJbWFn
ZU9ic2VydmVyKiBvYnNlcnZlcikKK0JpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShSZWY8TmF0aXZl
SW1hZ2U+JiYgaW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIDogSW1hZ2Uob2Jz
ZXJ2ZXIpCiAgICAgLCBtX3NvdXJjZShJbWFnZVNvdXJjZTo6Y3JlYXRlKFdURk1vdmUoaW1hZ2Up
KSkKIHsKQEAgLTIyOSw3ICsyMjksNiBAQCBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1hZ2U6OmRy
YXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlcwogICAgIGlm
IChkZXN0UmVjdC5pc0VtcHR5KCkgfHwgcmVxdWVzdGVkU3JjUmVjdC5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKLSAgICAKICAgICBhdXRv
IHNyY1JlY3QgPSByZXF1ZXN0ZWRTcmNSZWN0OwogICAgIGF1dG8gcHJlZmVycmVkU2l6ZSA9IHNp
emUoKTsKICAgICBhdXRvIHNyY1NpemUgPSBzb3VyY2VTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCBmMjMyMWM4NWYxNDdjMWEz
ZDVkMzNkMTdkNTM4M2JjNWNiMWI2MGMzLi45NmNhYTNjMDFmNzY4OWMyNjUzMTIyMTIwOWEyOTBj
NzdmNjM1NTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmgKQEAgLTUzLDEzICs1MywxNSBAQCBjbGFzcyBUaW1lcjsKIAogY2xhc3MgQml0bWFw
SW1hZ2UgZmluYWwgOiBwdWJsaWMgSW1hZ2UgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Qml0
bWFwSW1hZ2U+IGNyZWF0ZShQbGF0Zm9ybUltYWdlUHRyJiYgcGxhdGZvcm1JbWFnZSwgSW1hZ2VP
YnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgIHN0YXRpYyBSZWZQdHI8Qml0bWFwSW1h
Z2U+IGNyZWF0ZShQbGF0Zm9ybUltYWdlUHRyJiYgcGxhdGZvcm1JbWFnZSwgSW1hZ2VPYnNlcnZl
ciogb2JzZXJ2ZXIgPSBudWxscHRyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQml0bWFwSW1hZ2UoTmF0aXZlSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKHBsYXRmb3JtSW1hZ2Up
KSwgb2JzZXJ2ZXIpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShOYXRpdmVJbWFnZTo6Y3JlYXRl
KFdURk1vdmUocGxhdGZvcm1JbWFnZSkpLCBvYnNlcnZlcik7CiAgICAgfQotICAgIHN0YXRpYyBS
ZWY8Qml0bWFwSW1hZ2U+IGNyZWF0ZShSZWZQdHI8TmF0aXZlSW1hZ2U+JiYgbmF0aXZlSW1hZ2Us
IEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAgICBzdGF0aWMgUmVmUHRyPEJp
dG1hcEltYWdlPiBjcmVhdGUoUmVmUHRyPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlLCBJbWFn
ZU9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBCaXRtYXBJbWFnZShXVEZNb3ZlKG5hdGl2ZUltYWdlKSwgb2JzZXJ2ZXIpKTsK
KyAgICAgICAgaWYgKCFuYXRpdmVJbWFnZSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJpdG1hcEltYWdlKG5hdGl2ZUltYWdlLnJlbGVh
c2VOb25OdWxsKCksIG9ic2VydmVyKSk7CiAgICAgfQogICAgIHN0YXRpYyBSZWY8Qml0bWFwSW1h
Z2U+IGNyZWF0ZShJbWFnZU9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIpCiAgICAgewpAQCAt
MTU0LDcgKzE1Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlY29kZShGdW5jdGlvbjx2b2lkKCk+
JiYpOwogCiBwcml2YXRlOgotICAgIFdFQkNPUkVfRVhQT1JUIEJpdG1hcEltYWdlKFJlZlB0cjxO
YXRpdmVJbWFnZT4mJiwgSW1hZ2VPYnNlcnZlciogPSBudWxscHRyKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBCaXRtYXBJbWFnZShSZWY8TmF0aXZlSW1hZ2U+JiYsIEltYWdlT2JzZXJ2ZXIqID0gbnVs
bHB0cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgQml0bWFwSW1hZ2UoSW1hZ2VPYnNlcnZlciogPSBu
dWxscHRyKTsKIAogICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gZnJhbWVJbWFnZUF0SW5kZXgoc2l6
ZV90IGluZGV4KSB7IHJldHVybiBtX3NvdXJjZS0+ZnJhbWVJbWFnZUF0SW5kZXgoaW5kZXgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAK
aW5kZXggNGIzYTVlMTQyODdiNTczYzMyOTRhYTBhYTZjNmFiMmVjMjMwMjQ1My4uMDEzMzI1MTU5
ZWFjM2VjMTA1OWVkMjE1NTAxYjEyMWNhMWU3Yzk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcApAQCAtNDQsNyArNDQsNyBAQCBJbWFn
ZVNvdXJjZTo6SW1hZ2VTb3VyY2UoQml0bWFwSW1hZ2UqIGltYWdlLCBBbHBoYU9wdGlvbiBhbHBo
YU9wdGlvbiwgR2FtbWFBbmRDbwogewogfQogCi1JbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2UoUmVm
UHRyPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlKQorSW1hZ2VTb3VyY2U6OkltYWdlU291cmNl
KFJlZjxOYXRpdmVJbWFnZT4mJiBuYXRpdmVJbWFnZSkKICAgICA6IG1fcnVuTG9vcChSdW5Mb29w
OjpjdXJyZW50KCkpCiB7CiAgICAgbV9mcmFtZUNvdW50ID0gMTsKQEAgLTIzMiw3ICsyMzIsNyBA
QCB2b2lkIEltYWdlU291cmNlOjpncm93RnJhbWVzKCkKICAgICAgICAgbV9mcmFtZXMuZ3Jvdyhu
ZXdTaXplKTsKIH0KIAotdm9pZCBJbWFnZVNvdXJjZTo6c2V0TmF0aXZlSW1hZ2UoUmVmUHRyPE5h
dGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlKQordm9pZCBJbWFnZVNvdXJjZTo6c2V0TmF0aXZlSW1h
Z2UoUmVmPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlKQogewogICAgIEFTU0VSVChtX2ZyYW1l
cy5zaXplKCkgPT0gMSk7CiAgICAgSW1hZ2VGcmFtZSYgZnJhbWUgPSBtX2ZyYW1lc1swXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCmluZGV4IGY5
ODE0MTdmMjRlYmM3ZjJkYmQ1NzNkYWUwZTU5MjU5ODk0NGU2NmEuLmFlY2ViMjA2ZDUzY2EyMTgw
ZDNhMjZjYjRkN2YyZmM1MzlmODFiNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEltYWdlU291cmNlKGltYWdlLCBhbHBoYU9wdGlvbiwgZ2Ft
bWFBbmRDb2xvclByb2ZpbGVPcHRpb24pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPEltYWdl
U291cmNlPiBjcmVhdGUoUmVmUHRyPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlKQorICAgIHN0
YXRpYyBSZWY8SW1hZ2VTb3VyY2U+IGNyZWF0ZShSZWY8TmF0aXZlSW1hZ2U+JiYgbmF0aXZlSW1h
Z2UpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZVNvdXJjZShXVEZN
b3ZlKG5hdGl2ZUltYWdlKSkpOwogICAgIH0KQEAgLTEyOCw3ICsxMjgsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgSW1hZ2VTb3VyY2UoQml0bWFwSW1hZ2UqLCBBbHBoYU9wdGlvbiA9IEFs
cGhhT3B0aW9uOjpQcmVtdWx0aXBsaWVkLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiA9IEdh
bW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uOjpBcHBsaWVkKTsKLSAgICBJbWFnZVNvdXJjZShSZWZQ
dHI8TmF0aXZlSW1hZ2U+JiYpOworICAgIEltYWdlU291cmNlKFJlZjxOYXRpdmVJbWFnZT4mJik7
CiAKICAgICBlbnVtIGNsYXNzIE1ldGFkYXRhVHlwZSB7CiAgICAgICAgIEFjY2Vzc2liaWxpdHlE
ZXNjcmlwdGlvbiAgICA9IDEgPDwgMCwKQEAgLTE2MSw3ICsxNjEsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGVjb2RlZFNpemVSZXNldCh1bnNpZ25lZCBkZWNvZGVkU2l6ZSk7CiAgICAgdm9pZCBl
bmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQoRW5jb2RlZERhdGFTdGF0dXMpOwogCi0gICAgdm9pZCBz
ZXROYXRpdmVJbWFnZShSZWZQdHI8TmF0aXZlSW1hZ2U+JiYpOworICAgIHZvaWQgc2V0TmF0aXZl
SW1hZ2UoUmVmPE5hdGl2ZUltYWdlPiYmKTsKICAgICB2b2lkIGNhY2hlTWV0YWRhdGFBdEluZGV4
KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCwgRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0YXR1
czo6SW52YWxpZCk7CiAgICAgdm9pZCBjYWNoZVBsYXRmb3JtSW1hZ2VBdEluZGV4KFBsYXRmb3Jt
SW1hZ2VQdHImJiwgc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsLCBjb25zdCBEZWNvZGluZ09wdGlv
bnMmLCBEZWNvZGluZ1N0YXR1cyA9IERlY29kaW5nU3RhdHVzOjpJbnZhbGlkKTsKICAgICB2b2lk
IGNhY2hlUGxhdGZvcm1JbWFnZUF0SW5kZXhBc3luYyhQbGF0Zm9ybUltYWdlUHRyJiYsIHNpemVf
dCwgU3Vic2FtcGxpbmdMZXZlbCwgY29uc3QgRGVjb2RpbmdPcHRpb25zJiwgRGVjb2RpbmdTdGF0
dXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457350</attachid>
            <date>2022-04-12 12:04:43 -0700</date>
            <delta_ts>2022-04-25 18:35:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239113-20220412120442.patch</filename>
            <type>text/plain</type>
            <size>8673</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJjZDViOGQ1YTU3ZDc0
ZjJlZjRmYmZlOWUwZjkyODQ0MGZlZDRiMS4uMjFkMDBlZDVlMGU2NWQxNGJjODM5M2IwOWZjZmRk
ZDVlOGZkOTM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTA0LTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI0
OTE2Mik6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSgpIGNyYXNoZXMg
aWYgdGhlIGltYWdlIGlzIGFuaW1hdGVkIGFuZCB0aGUgZmlyc3QgZnJhbWUgY2Fubm90IGJlIGRl
Y29kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
OTExMworICAgICAgICByZGFyOi8vODc5ODA1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3
SW1hZ2UoKSBuZWVkcyB0byBlbnN1cmUgdGhlIGZpcnN0IGZyYW1lCisgICAgICAgIG9mIHRoZSBh
bmltYXRlZCBpbWFnZSBjYW4gYmUgZGVjb2RlZCBjb3JyZWN0bHkgYmVmb3JlIGNyZWF0aW5nIHRo
ZSB0ZW1wb3JhcnkKKyAgICAgICAgc3RhdGljIGltYWdlLiBJZiB0aGUgZmlyc3QgZnJhbWUgY2Fu
J3QgYmUgZGVjb2RlZCwgaXQgc2hvdWxkIHJldHVybgorICAgICAgICBpbW1lZGlhdGVseS4gVGhp
cyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiB0aGlzIGZ1bmN0aW9uIGJlZm9yZSByMjQ5MTYyLgor
CisgICAgICAgIFRvIG1ha2UgdGhlIGNvZGUgbW9yZSByb2J1c3QsIG1ha2UgSW1hZ2VTb3VyY2Ug
dGFrZSBhIFJlZjxOYXRpdmVJbWFnZT4KKyAgICAgICAgaW5zdGVhZCBvZiB0YWtpbmcgYSBSZWZQ
dHI8TmF0aXZlSW1hZ2U+LgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVNvdXJjZTo6SW1hZ2VTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNl
dE5hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5o
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmNyZWF0ZSk6CisKIDIwMjItMDQtMDcg
IE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAKICAgICAgICAg
VW5pZnkgcmVmZXJlbmNlIGJveCAvIENUTSBjb21wdXRhdGlvbiBpbiBSZW5kZXJMYXllcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlLmNwcAppbmRleCBlMDFkZjM5MjkzNmU4MjA5Y2ViZDRkNjQ4NGJmZmUyOGUw
NDJiNGVhLi40ODNhZGY3N2VhZTIyODJiZmU5MGM4ZjU2NGVmNzA4Y2I2MmVmNmE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlLmNwcApAQCAtMTU0NSw4ICsxNTQ1LDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShEb2N1bWVudCYgZG9jdW1l
bnQsIENhCiAKICAgICBpZiAoaW1hZ2UtPmlzQml0bWFwSW1hZ2UoKSkgewogICAgICAgICAvLyBE
cmF3aW5nIGFuIGFuaW1hdGVkIGltYWdlIHRvIGEgY2FudmFzIHNob3VsZCBkcmF3IHRoZSBmaXJz
dCBmcmFtZSAoZXhjZXB0IGZvciBhIGZldyBsYXlvdXQgdGVzdHMpCi0gICAgICAgIGlmIChpbWFn
ZS0+aXNBbmltYXRlZCgpICYmICFkb2N1bWVudC5zZXR0aW5ncygpLmFuaW1hdGVkSW1hZ2VEZWJ1
Z0NhbnZhc0RyYXdpbmdFbmFibGVkKCkpCisgICAgICAgIGlmIChpbWFnZS0+aXNBbmltYXRlZCgp
ICYmICFkb2N1bWVudC5zZXR0aW5ncygpLmFuaW1hdGVkSW1hZ2VEZWJ1Z0NhbnZhc0RyYXdpbmdF
bmFibGVkKCkpIHsKICAgICAgICAgICAgIGltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0ZShpbWFn
ZS0+bmF0aXZlSW1hZ2UoKSk7CisgICAgICAgICAgICBpZiAoIWltYWdlKQorICAgICAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIH0KICAgICAgICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+
KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKGRvY3VtZW50LnNldHRpbmdzKCkpOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3Bw
CmluZGV4IDFhMGJhMzY2ZjQyM2I1MmI3NzJlZDg1YjNiZDNlMzhmNTNlYjkxMDguLjE4MDM4M2Q0
NzFlZTU2MWQzNGM2YjI1YmY5M2YyOWJiNTYwYTNmMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgQml0
bWFwSW1hZ2U6OkJpdG1hcEltYWdlKEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogewogfQogCi1C
aXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoUmVmUHRyPE5hdGl2ZUltYWdlPiYmIGltYWdlLCBJbWFn
ZU9ic2VydmVyKiBvYnNlcnZlcikKK0JpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShSZWY8TmF0aXZl
SW1hZ2U+JiYgaW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIDogSW1hZ2Uob2Jz
ZXJ2ZXIpCiAgICAgLCBtX3NvdXJjZShJbWFnZVNvdXJjZTo6Y3JlYXRlKFdURk1vdmUoaW1hZ2Up
KSkKIHsKQEAgLTIyOSw3ICsyMjksNiBAQCBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1hZ2U6OmRy
YXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlcwogICAgIGlm
IChkZXN0UmVjdC5pc0VtcHR5KCkgfHwgcmVxdWVzdGVkU3JjUmVjdC5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKLSAgICAKICAgICBhdXRv
IHNyY1JlY3QgPSByZXF1ZXN0ZWRTcmNSZWN0OwogICAgIGF1dG8gcHJlZmVycmVkU2l6ZSA9IHNp
emUoKTsKICAgICBhdXRvIHNyY1NpemUgPSBzb3VyY2VTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCBmMjMyMWM4NWYxNDdjMWEz
ZDVkMzNkMTdkNTM4M2JjNWNiMWI2MGMzLi4xNTVlZTQ1NmEzOWZhZjE4OWJmOGZlODc2NWM5M2E3
YTQ0N2UwN2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmgKQEAgLTUzLDExICs1MywxNyBAQCBjbGFzcyBUaW1lcjsKIAogY2xhc3MgQml0bWFw
SW1hZ2UgZmluYWwgOiBwdWJsaWMgSW1hZ2UgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Qml0
bWFwSW1hZ2U+IGNyZWF0ZShQbGF0Zm9ybUltYWdlUHRyJiYgcGxhdGZvcm1JbWFnZSwgSW1hZ2VP
YnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgIHN0YXRpYyBSZWZQdHI8Qml0bWFwSW1h
Z2U+IGNyZWF0ZShQbGF0Zm9ybUltYWdlUHRyJiYgcGxhdGZvcm1JbWFnZSwgSW1hZ2VPYnNlcnZl
ciogb2JzZXJ2ZXIgPSBudWxscHRyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQml0bWFwSW1hZ2UoTmF0aXZlSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKHBsYXRmb3JtSW1hZ2Up
KSwgb2JzZXJ2ZXIpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShOYXRpdmVJbWFnZTo6Y3JlYXRl
KFdURk1vdmUocGxhdGZvcm1JbWFnZSkpLCBvYnNlcnZlcik7CiAgICAgfQotICAgIHN0YXRpYyBS
ZWY8Qml0bWFwSW1hZ2U+IGNyZWF0ZShSZWZQdHI8TmF0aXZlSW1hZ2U+JiYgbmF0aXZlSW1hZ2Us
IEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAgICBzdGF0aWMgUmVmUHRyPEJp
dG1hcEltYWdlPiBjcmVhdGUoUmVmUHRyPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlLCBJbWFn
ZU9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIpCisgICAgeworICAgICAgICBpZiAoIW5hdGl2
ZUltYWdlKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBjcmVh
dGUobmF0aXZlSW1hZ2UucmVsZWFzZU5vbk51bGwoKSwgb2JzZXJ2ZXIpOworICAgIH0KKyAgICBz
dGF0aWMgUmVmPEJpdG1hcEltYWdlPiBjcmVhdGUoUmVmPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUlt
YWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBCaXRtYXBJbWFnZShXVEZNb3ZlKG5hdGl2ZUltYWdlKSwgb2Jz
ZXJ2ZXIpKTsKICAgICB9CkBAIC0xNTQsNyArMTYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVj
b2RlKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKIHByaXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
Qml0bWFwSW1hZ2UoUmVmUHRyPE5hdGl2ZUltYWdlPiYmLCBJbWFnZU9ic2VydmVyKiA9IG51bGxw
dHIpOworICAgIFdFQkNPUkVfRVhQT1JUIEJpdG1hcEltYWdlKFJlZjxOYXRpdmVJbWFnZT4mJiwg
SW1hZ2VPYnNlcnZlciogPSBudWxscHRyKTsKICAgICBXRUJDT1JFX0VYUE9SVCBCaXRtYXBJbWFn
ZShJbWFnZU9ic2VydmVyKiA9IG51bGxwdHIpOwogCiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBm
cmFtZUltYWdlQXRJbmRleChzaXplX3QgaW5kZXgpIHsgcmV0dXJuIG1fc291cmNlLT5mcmFtZUlt
YWdlQXRJbmRleChpbmRleCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmNwcAppbmRleCA0YjNhNWUxNDI4N2I1NzNjMzI5NGFhMGFhNmM2YWIy
ZWMyMzAyNDUzLi4wMTMzMjUxNTllYWMzZWMxMDU5ZWQyMTU1MDFiMTIxY2ExZTdjOTdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBA
IC00NCw3ICs0NCw3IEBAIEltYWdlU291cmNlOjpJbWFnZVNvdXJjZShCaXRtYXBJbWFnZSogaW1h
Z2UsIEFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBHYW1tYUFuZENvCiB7CiB9CiAKLUltYWdlU291
cmNlOjpJbWFnZVNvdXJjZShSZWZQdHI8TmF0aXZlSW1hZ2U+JiYgbmF0aXZlSW1hZ2UpCitJbWFn
ZVNvdXJjZTo6SW1hZ2VTb3VyY2UoUmVmPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlKQogICAg
IDogbV9ydW5Mb29wKFJ1bkxvb3A6OmN1cnJlbnQoKSkKIHsKICAgICBtX2ZyYW1lQ291bnQgPSAx
OwpAQCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgSW1hZ2VTb3VyY2U6Omdyb3dGcmFtZXMoKQogICAg
ICAgICBtX2ZyYW1lcy5ncm93KG5ld1NpemUpOwogfQogCi12b2lkIEltYWdlU291cmNlOjpzZXRO
YXRpdmVJbWFnZShSZWZQdHI8TmF0aXZlSW1hZ2U+JiYgbmF0aXZlSW1hZ2UpCit2b2lkIEltYWdl
U291cmNlOjpzZXROYXRpdmVJbWFnZShSZWY8TmF0aXZlSW1hZ2U+JiYgbmF0aXZlSW1hZ2UpCiB7
CiAgICAgQVNTRVJUKG1fZnJhbWVzLnNpemUoKSA9PSAxKTsKICAgICBJbWFnZUZyYW1lJiBmcmFt
ZSA9IG1fZnJhbWVzWzBdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmgKaW5kZXggZjk4MTQxN2YyNGViYzdmMmRiZDU3M2RhZTBlNTkyNTk4OTQ0ZTY2
YS4uYWVjZWIyMDZkNTNjYTIxODBkM2EyNmNiNGQ3ZjJmYzUzOWY4MWI2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCkBAIC01MSw3ICs1MSw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW1hZ2VTb3VyY2UoaW1h
Z2UsIGFscGhhT3B0aW9uLCBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikpOwogICAgIH0KIAot
ICAgIHN0YXRpYyBSZWY8SW1hZ2VTb3VyY2U+IGNyZWF0ZShSZWZQdHI8TmF0aXZlSW1hZ2U+JiYg
bmF0aXZlSW1hZ2UpCisgICAgc3RhdGljIFJlZjxJbWFnZVNvdXJjZT4gY3JlYXRlKFJlZjxOYXRp
dmVJbWFnZT4mJiBuYXRpdmVJbWFnZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEltYWdlU291cmNlKFdURk1vdmUobmF0aXZlSW1hZ2UpKSk7CiAgICAgfQpAQCAtMTI4LDcg
KzEyOCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBJbWFnZVNvdXJjZShCaXRtYXBJbWFn
ZSosIEFscGhhT3B0aW9uID0gQWxwaGFPcHRpb246OlByZW11bHRpcGxpZWQsIEdhbW1hQW5kQ29s
b3JQcm9maWxlT3B0aW9uID0gR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb246OkFwcGxpZWQpOwot
ICAgIEltYWdlU291cmNlKFJlZlB0cjxOYXRpdmVJbWFnZT4mJik7CisgICAgSW1hZ2VTb3VyY2Uo
UmVmPE5hdGl2ZUltYWdlPiYmKTsKIAogICAgIGVudW0gY2xhc3MgTWV0YWRhdGFUeXBlIHsKICAg
ICAgICAgQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uICAgID0gMSA8PCAwLApAQCAtMTYxLDcgKzE2
MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWNvZGVkU2l6ZVJlc2V0KHVuc2lnbmVkIGRlY29k
ZWRTaXplKTsKICAgICB2b2lkIGVuY29kZWREYXRhU3RhdHVzQ2hhbmdlZChFbmNvZGVkRGF0YVN0
YXR1cyk7CiAKLSAgICB2b2lkIHNldE5hdGl2ZUltYWdlKFJlZlB0cjxOYXRpdmVJbWFnZT4mJik7
CisgICAgdm9pZCBzZXROYXRpdmVJbWFnZShSZWY8TmF0aXZlSW1hZ2U+JiYpOwogICAgIHZvaWQg
Y2FjaGVNZXRhZGF0YUF0SW5kZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsLCBEZWNvZGluZ1N0
YXR1cyA9IERlY29kaW5nU3RhdHVzOjpJbnZhbGlkKTsKICAgICB2b2lkIGNhY2hlUGxhdGZvcm1J
bWFnZUF0SW5kZXgoUGxhdGZvcm1JbWFnZVB0ciYmLCBzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWws
IGNvbnN0IERlY29kaW5nT3B0aW9ucyYsIERlY29kaW5nU3RhdHVzID0gRGVjb2RpbmdTdGF0dXM6
OkludmFsaWQpOwogICAgIHZvaWQgY2FjaGVQbGF0Zm9ybUltYWdlQXRJbmRleEFzeW5jKFBsYXRm
b3JtSW1hZ2VQdHImJiwgc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsLCBjb25zdCBEZWNvZGluZ09w
dGlvbnMmLCBEZWNvZGluZ1N0YXR1cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5k
ZXggN2EwNzMyZTI5MmVlY2VmNTYzMDgwM2Y1MGQ2ODg3OWU0MGJkNTQ3OC4uYWE4YzExNWIyN2M4
NmZhNmI3M2RlY2I4Y2UzMDYxMjJhZWM4MzEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
LmNwcApAQCAtMzAyLDcgKzMwMiw3IEBAIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
ZHJhd1N5c3RlbUltYWdlKFN5c3RlbUltYWdlJiBzeXN0ZW1JbWFnZSwgY29uc3QKICAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
Ci0gICAgICAgIGJhZGdlLnNldEltYWdlKEJpdG1hcEltYWdlOjpjcmVhdGUoV1RGTW92ZShuYXRp
dmVJbWFnZSkpKTsKKyAgICAgICAgYmFkZ2Uuc2V0SW1hZ2UoQml0bWFwSW1hZ2U6OmNyZWF0ZShu
YXRpdmVJbWFnZS5yZWxlYXNlTm9uTnVsbCgpKSk7CiAgICAgfQogI2VuZGlmCiAgICAgaGFuZGxl
SXRlbShEaXNwbGF5TGlzdDo6RHJhd1N5c3RlbUltYWdlKHN5c3RlbUltYWdlLCBkZXN0aW5hdGlv
blJlY3QpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458320</attachid>
            <date>2022-04-25 18:35:50 -0700</date>
            <delta_ts>2022-05-11 21:11:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239113-20220425183549.patch</filename>
            <type>text/plain</type>
            <size>9529</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM2ODJkZGU4OWM0Y2Rm
NDJhOGQxYjVlMGYwODE4MmZjOTFjYTdlZC4uYTIzMWU3ZjI5Mjc1NjA4YWVhOTI4YjNkODRkYmM0
ZmZjZWY4YTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTA0LTI1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI0
OTE2Mik6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSgpIGNyYXNoZXMg
aWYgdGhlIGltYWdlIGlzIGFuaW1hdGVkIGFuZCB0aGUgZmlyc3QgZnJhbWUgY2Fubm90IGJlIGRl
Y29kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
OTExMworICAgICAgICByZGFyOi8vODc5ODA1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCisKKyAgICAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0lt
YWdlKCkgbmVlZHMgdG8gZW5zdXJlIHRoZSBmaXJzdCBmcmFtZQorICAgICAgICBvZiB0aGUgYW5p
bWF0ZWQgaW1hZ2UgY2FuIGJlIGRlY29kZWQgY29ycmVjdGx5IGJlZm9yZSBjcmVhdGluZyB0aGUg
dGVtcG9yYXJ5CisgICAgICAgIHN0YXRpYyBpbWFnZS4gSWYgdGhlIGZpcnN0IGZyYW1lIGNhbid0
IGJlIGRlY29kZWQsIGl0IHNob3VsZCByZXR1cm4KKyAgICAgICAgaW1tZWRpYXRlbHkuIFRoaXMg
bWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgdGhpcyBmdW5jdGlvbiBiZWZvcmUgcjI0OTE2Mi4KKwor
ICAgICAgICBUbyBtYWtlIHRoZSBjb2RlIG1vcmUgcm9idXN0LCBtYWtlIEltYWdlU291cmNlIHRh
a2UgYSBSZWY8TmF0aXZlSW1hZ2U+CisgICAgICAgIGluc3RlYWQgb2YgdGFraW5nIGEgUmVmUHRy
PE5hdGl2ZUltYWdlPi4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZTo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OkltYWdlU291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpzZXROYXRpdmVJbWFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlU291cmNlOjpjcmVhdGUpOgorCiAyMDIyLTA0LTI1ICBDbGF1ZGlvIFNhYXZlZHJhICA8
Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gUmVtb3ZlIHVudXNl
ZCBydGMgdmFyaWFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTU5ZmQzZWYwYWVkOGEyZjkxMjljNWYyMDA3NGQz
NTNiZWY4NDhhNi4uYjA3YmM0YWMwOGViNmM4OWU5YTViZGI0MzBhMDdhOGU5MzAwYzUxMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0wNC0yNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWlkQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNDkxNjIpOiBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UoKSBjcmFzaGVzIGlmIHRoZSBpbWFnZSBpcyBh
bmltYXRlZCBhbmQgdGhlIGZpcnN0IGZyYW1lIGNhbm5vdCBiZSBkZWNvZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkxMTMKKyAgICAgICAgcmRh
cjovLzg3OTgwNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd1N5c3RlbUlt
YWdlKToKKwogMjAyMi0wNC0yNSAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHTElCXSBEZWZhdWx0LWhhbmRsZSByZWNlbnRseS1hZGRlZCBQcm9j
ZXNzVGVybWluYXRpb25SZWFzb24gdmFsdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCmluZGV4IDAw
M2E5MDFlMDQzZTM3YzhlM2MwNjY4YzYzMzcyNDBmNmNkZTYxY2UuLjE1MWJkYjE0MTZmMDZiZmM3
ZGZkMWFlMTAzOWM3ODQ3Y2VjMTg3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCkBAIC0xNTQ1
LDggKzE1NDUsMTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZTo6ZHJhd0ltYWdlKERvY3VtZW50JiBkb2N1bWVudCwgQ2EKIAogICAgIGlmIChpbWFnZS0+
aXNCaXRtYXBJbWFnZSgpKSB7CiAgICAgICAgIC8vIERyYXdpbmcgYW4gYW5pbWF0ZWQgaW1hZ2Ug
dG8gYSBjYW52YXMgc2hvdWxkIGRyYXcgdGhlIGZpcnN0IGZyYW1lIChleGNlcHQgZm9yIGEgZmV3
IGxheW91dCB0ZXN0cykKLSAgICAgICAgaWYgKGltYWdlLT5pc0FuaW1hdGVkKCkgJiYgIWRvY3Vt
ZW50LnNldHRpbmdzKCkuYW5pbWF0ZWRJbWFnZURlYnVnQ2FudmFzRHJhd2luZ0VuYWJsZWQoKSkK
KyAgICAgICAgaWYgKGltYWdlLT5pc0FuaW1hdGVkKCkgJiYgIWRvY3VtZW50LnNldHRpbmdzKCku
YW5pbWF0ZWRJbWFnZURlYnVnQ2FudmFzRHJhd2luZ0VuYWJsZWQoKSkgewogICAgICAgICAgICAg
aW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKGltYWdlLT5uYXRpdmVJbWFnZSgpKTsKKyAgICAg
ICAgICAgIGlmICghaW1hZ2UpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAg
fQogICAgICAgICBkb3duY2FzdDxCaXRtYXBJbWFnZT4oKmltYWdlKS51cGRhdGVGcm9tU2V0dGlu
Z3MoZG9jdW1lbnQuc2V0dGluZ3MoKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggMWEwYmEzNjZmNDIzYjUyYjc3
MmVkODViM2JkM2UzOGY1M2ViOTEwOC4uMmNhYjBmZTgwNjQwY2EyMWQ5YzgxZjBkMTQ4NzU0YjAx
MjVkNTg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmNwcApAQCAtNTIsOSArNTIsOCBAQCBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoSW1h
Z2VPYnNlcnZlciogb2JzZXJ2ZXIpCiB7CiB9CiAKLUJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShS
ZWZQdHI8TmF0aXZlSW1hZ2U+JiYgaW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQotICAg
IDogSW1hZ2Uob2JzZXJ2ZXIpCi0gICAgLCBtX3NvdXJjZShJbWFnZVNvdXJjZTo6Y3JlYXRlKFdU
Rk1vdmUoaW1hZ2UpKSkKK0JpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShSZWY8TmF0aXZlSW1hZ2U+
JiYgaW1hZ2UpCisgICAgOiBtX3NvdXJjZShJbWFnZVNvdXJjZTo6Y3JlYXRlKFdURk1vdmUoaW1h
Z2UpKSkKIHsKIH0KIApAQCAtMjI5LDcgKzIyOCw2IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJ
bWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
CiAgICAgaWYgKGRlc3RSZWN0LmlzRW1wdHkoKSB8fCByZXF1ZXN0ZWRTcmNSZWN0LmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKIAotICAgIAog
ICAgIGF1dG8gc3JjUmVjdCA9IHJlcXVlc3RlZFNyY1JlY3Q7CiAgICAgYXV0byBwcmVmZXJyZWRT
aXplID0gc2l6ZSgpOwogICAgIGF1dG8gc3JjU2l6ZSA9IHNvdXJjZVNpemUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IGYyMzIxYzg1
ZjE0N2MxYTNkNWQzM2QxN2Q1MzgzYmM1Y2IxYjYwYzMuLmQzZjRmZWJkMDgwNDZlYjIyNWVjMDIy
OTA1NWI5MTExNzcyODgzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQml0bWFwSW1hZ2UuaApAQCAtNTMsMTMgKzUzLDE5IEBAIGNsYXNzIFRpbWVyOwogCiBjbGFz
cyBCaXRtYXBJbWFnZSBmaW5hbCA6IHB1YmxpYyBJbWFnZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxCaXRtYXBJbWFnZT4gY3JlYXRlKFBsYXRmb3JtSW1hZ2VQdHImJiBwbGF0Zm9ybUltYWdl
LCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIpCisgICAgc3RhdGljIFJlZlB0cjxC
aXRtYXBJbWFnZT4gY3JlYXRlKFBsYXRmb3JtSW1hZ2VQdHImJiBwbGF0Zm9ybUltYWdlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQml0bWFwSW1hZ2UoTmF0aXZlSW1hZ2U6
OmNyZWF0ZShXVEZNb3ZlKHBsYXRmb3JtSW1hZ2UpKSwgb2JzZXJ2ZXIpKTsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZShOYXRpdmVJbWFnZTo6Y3JlYXRlKFdURk1vdmUocGxhdGZvcm1JbWFnZSkpKTsK
ICAgICB9Ci0gICAgc3RhdGljIFJlZjxCaXRtYXBJbWFnZT4gY3JlYXRlKFJlZlB0cjxOYXRpdmVJ
bWFnZT4mJiBuYXRpdmVJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQor
ICAgIHN0YXRpYyBSZWZQdHI8Qml0bWFwSW1hZ2U+IGNyZWF0ZShSZWZQdHI8TmF0aXZlSW1hZ2U+
JiYgbmF0aXZlSW1hZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCaXRt
YXBJbWFnZShXVEZNb3ZlKG5hdGl2ZUltYWdlKSwgb2JzZXJ2ZXIpKTsKKyAgICAgICAgaWYgKCFu
YXRpdmVJbWFnZSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4g
Y3JlYXRlKG5hdGl2ZUltYWdlLnJlbGVhc2VOb25OdWxsKCkpOworICAgIH0KKyAgICBzdGF0aWMg
UmVmPEJpdG1hcEltYWdlPiBjcmVhdGUoUmVmPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQml0bWFwSW1hZ2UoV1RGTW92ZShu
YXRpdmVJbWFnZSkpKTsKICAgICB9CiAgICAgc3RhdGljIFJlZjxCaXRtYXBJbWFnZT4gY3JlYXRl
KEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKICAgICB7CkBAIC0xNTQsNyArMTYw
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVjb2RlKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKIHBy
aXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQgQml0bWFwSW1hZ2UoUmVmUHRyPE5hdGl2ZUltYWdl
PiYmLCBJbWFnZU9ic2VydmVyKiA9IG51bGxwdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIEJpdG1h
cEltYWdlKFJlZjxOYXRpdmVJbWFnZT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgQml0bWFwSW1h
Z2UoSW1hZ2VPYnNlcnZlciogPSBudWxscHRyKTsKIAogICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4g
ZnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90IGluZGV4KSB7IHJldHVybiBtX3NvdXJjZS0+ZnJhbWVJ
bWFnZUF0SW5kZXgoaW5kZXgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggNGIzYTVlMTQyODdiNTczYzMyOTRhYTBhYTZjNmFi
MmVjMjMwMjQ1My4uMDEzMzI1MTU5ZWFjM2VjMTA1OWVkMjE1NTAxYjEyMWNhMWU3Yzk3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcApA
QCAtNDQsNyArNDQsNyBAQCBJbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2UoQml0bWFwSW1hZ2UqIGlt
YWdlLCBBbHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwgR2FtbWFBbmRDbwogewogfQogCi1JbWFnZVNv
dXJjZTo6SW1hZ2VTb3VyY2UoUmVmUHRyPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlKQorSW1h
Z2VTb3VyY2U6OkltYWdlU291cmNlKFJlZjxOYXRpdmVJbWFnZT4mJiBuYXRpdmVJbWFnZSkKICAg
ICA6IG1fcnVuTG9vcChSdW5Mb29wOjpjdXJyZW50KCkpCiB7CiAgICAgbV9mcmFtZUNvdW50ID0g
MTsKQEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIEltYWdlU291cmNlOjpncm93RnJhbWVzKCkKICAg
ICAgICAgbV9mcmFtZXMuZ3JvdyhuZXdTaXplKTsKIH0KIAotdm9pZCBJbWFnZVNvdXJjZTo6c2V0
TmF0aXZlSW1hZ2UoUmVmUHRyPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlKQordm9pZCBJbWFn
ZVNvdXJjZTo6c2V0TmF0aXZlSW1hZ2UoUmVmPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlKQog
ewogICAgIEFTU0VSVChtX2ZyYW1lcy5zaXplKCkgPT0gMSk7CiAgICAgSW1hZ2VGcmFtZSYgZnJh
bWUgPSBtX2ZyYW1lc1swXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5oCmluZGV4IGY5ODE0MTdmMjRlYmM3ZjJkYmQ1NzNkYWUwZTU5MjU5ODk0NGU2
NmEuLmFlY2ViMjA2ZDUzY2EyMTgwZDNhMjZjYjRkN2YyZmM1MzlmODFiNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAtNTEsNyArNTEs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEltYWdlU291cmNlKGlt
YWdlLCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pKTsKICAgICB9CiAK
LSAgICBzdGF0aWMgUmVmPEltYWdlU291cmNlPiBjcmVhdGUoUmVmUHRyPE5hdGl2ZUltYWdlPiYm
IG5hdGl2ZUltYWdlKQorICAgIHN0YXRpYyBSZWY8SW1hZ2VTb3VyY2U+IGNyZWF0ZShSZWY8TmF0
aXZlSW1hZ2U+JiYgbmF0aXZlSW1hZ2UpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbWFnZVNvdXJjZShXVEZNb3ZlKG5hdGl2ZUltYWdlKSkpOwogICAgIH0KQEAgLTEyOCw3
ICsxMjgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSW1hZ2VTb3VyY2UoQml0bWFwSW1h
Z2UqLCBBbHBoYU9wdGlvbiA9IEFscGhhT3B0aW9uOjpQcmVtdWx0aXBsaWVkLCBHYW1tYUFuZENv
bG9yUHJvZmlsZU9wdGlvbiA9IEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uOjpBcHBsaWVkKTsK
LSAgICBJbWFnZVNvdXJjZShSZWZQdHI8TmF0aXZlSW1hZ2U+JiYpOworICAgIEltYWdlU291cmNl
KFJlZjxOYXRpdmVJbWFnZT4mJik7CiAKICAgICBlbnVtIGNsYXNzIE1ldGFkYXRhVHlwZSB7CiAg
ICAgICAgIEFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbiAgICA9IDEgPDwgMCwKQEAgLTE2MSw3ICsx
NjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVjb2RlZFNpemVSZXNldCh1bnNpZ25lZCBkZWNv
ZGVkU2l6ZSk7CiAgICAgdm9pZCBlbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQoRW5jb2RlZERhdGFT
dGF0dXMpOwogCi0gICAgdm9pZCBzZXROYXRpdmVJbWFnZShSZWZQdHI8TmF0aXZlSW1hZ2U+JiYp
OworICAgIHZvaWQgc2V0TmF0aXZlSW1hZ2UoUmVmPE5hdGl2ZUltYWdlPiYmKTsKICAgICB2b2lk
IGNhY2hlTWV0YWRhdGFBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCwgRGVjb2RpbmdT
dGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6SW52YWxpZCk7CiAgICAgdm9pZCBjYWNoZVBsYXRmb3Jt
SW1hZ2VBdEluZGV4KFBsYXRmb3JtSW1hZ2VQdHImJiwgc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVs
LCBjb25zdCBEZWNvZGluZ09wdGlvbnMmLCBEZWNvZGluZ1N0YXR1cyA9IERlY29kaW5nU3RhdHVz
OjpJbnZhbGlkKTsKICAgICB2b2lkIGNhY2hlUGxhdGZvcm1JbWFnZUF0SW5kZXhBc3luYyhQbGF0
Zm9ybUltYWdlUHRyJiYsIHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCwgY29uc3QgRGVjb2RpbmdP
cHRpb25zJiwgRGVjb2RpbmdTdGF0dXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmlu
ZGV4IDdhMDczMmUyOTJlZWNlZjU2MzA4MDNmNTBkNjg4NzllNDBiZDU0NzguLmFhOGMxMTViMjdj
ODZmYTZiNzNkZWNiOGNlMzA2MTIyYWVjODMxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
ci5jcHAKQEAgLTMwMiw3ICszMDIsNyBAQCB2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OmRyYXdTeXN0ZW1JbWFnZShTeXN0ZW1JbWFnZSYgc3lzdGVtSW1hZ2UsIGNvbnN0CiAgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQotICAgICAgICBiYWRnZS5zZXRJbWFnZShCaXRtYXBJbWFnZTo6Y3JlYXRlKFdURk1vdmUobmF0
aXZlSW1hZ2UpKSk7CisgICAgICAgIGJhZGdlLnNldEltYWdlKEJpdG1hcEltYWdlOjpjcmVhdGUo
bmF0aXZlSW1hZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgIH0KICNlbmRpZgogICAgIGhhbmRs
ZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdTeXN0ZW1JbWFnZShzeXN0ZW1JbWFnZSwgZGVzdGluYXRp
b25SZWN0KSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459207</attachid>
            <date>2022-05-11 21:11:05 -0700</date>
            <delta_ts>2022-05-12 00:40:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239113-20220511211105.patch</filename>
            <type>text/plain</type>
            <size>13185</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzRjNDcxZTM0NTNkMjk1
YjNmZDAxMjUzZjhjMTQ0MzhhNWM3OTY0Mi4uNjY3NDg0ZDNlNjVlMDVjZWQ1ZjVhOTRjOWEzYTgx
NzM3MGFkOTRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIyLTA1LTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI0
OTE2Mik6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSgpIGNyYXNoZXMg
aWYgdGhlIGltYWdlIGlzIGFuaW1hdGVkIGFuZCB0aGUgZmlyc3QgZnJhbWUgY2Fubm90IGJlIGRl
Y29kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
OTExMworICAgICAgICByZGFyOi8vODc5ODA1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3
SW1hZ2UoKSBuZWVkcyB0byBlbnN1cmUgdGhlIGZpcnN0IGZyYW1lCisgICAgICAgIG9mIHRoZSBh
bmltYXRlZCBpbWFnZSBjYW4gYmUgZGVjb2RlZCBjb3JyZWN0bHkgYmVmb3JlIGNyZWF0aW5nIHRo
ZSB0ZW1wb3JhcnkKKyAgICAgICAgc3RhdGljIGltYWdlLiBJZiB0aGUgZmlyc3QgZnJhbWUgY2Fu
J3QgYmUgZGVjb2RlZCwgdGhpcyBmdW5jdGlvbiBzaG91bGQgcmV0dXJuCisgICAgICAgIGltbWVk
aWF0ZWx5LiBUaGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mIHRoaXMgZnVuY3Rpb24gYmVmb3Jl
IHIyNDkxNjIuCisKKyAgICAgICAgVGhlIGFuaW1hdGVkIGltYWdlIGRlY29kZXMgaXRzIGZyYW1l
cyBhc3luY2hyb25vdXNseSBpbiBhIHdvcmsgcXVldWUuIEJ1dAorICAgICAgICB0aGUgZmlyc3Qg
ZnJhbWUgaGFzIHRvIGJlIGRlY29kZWQgc3luY2hyb25vdXNseSBpbiB0aGUgbWFpbiBydW4gbG9v
cC4gU28KKyAgICAgICAgdG8gYXZvaWQgcnVubmluZyB0aGUgaW1hZ2UgZGVjb2RlciBpbiB0d28g
ZGlmZmVyZW50IHRocmVhZHMgd2UgYXJlIGdvaW5nCisgICAgICAgIHRvIGtlZXAgdGhlIGZpcnN0
IGFuZCB0aGUgY3VycmVudCBmcmFtZSBjYWNoZWQgd2hlbiB3ZSByZWNlaXZlIGEgbWVtb3J5Cisg
ICAgICAgIHByZXNzdXJlIHdhcm5pbmcuIFRoaXMgc2hvdWxkIG5vdCBpbmNyZWFzZSB0aGUgbWVt
b3J5IGFsbG9jYXRpb24gb2YgdGhlCisgICAgICAgIGFuaW1hdGVkIGltYWdlIGJlY2F1c2UgdGhl
IG51bWJlcnMgb2YgY2FjaGVkIGZyYW1lcyBpbmNyZWFzZXMgcXVpY2tseSBhbmQKKyAgICAgICAg
d2Uga2VlcCBhbGwgb2YgdGhlbSB0aWxsIGEgbWVtb3J5IHdhcm5pbmcgaXMgcmVjZWl2ZWQuIEJ1
dCB0aGUgbWVtb3J5CisgICAgICAgIHByZXNzdXJlIHdhcm5pbmcgd2lsbCBiZSByZWNlaXZlZCBh
IGxpdHRsZSBiaXQgbW9yZSBvZnRlbi4gVGhpcyBkZXBlbmRzCisgICAgICAgIG9uIHRoZSBtZW1v
cnkgc2l6ZSBvZiB0aGUgZmlyc3QgZnJhbWUuCisKKyAgICAgICAgVG8gbWFrZSB0aGUgY29kZSBt
b3JlIHJvYnVzdCwgbWFrZSBJbWFnZVNvdXJjZSB0YWtlIGEgUmVmPE5hdGl2ZUltYWdlPgorICAg
ICAgICBpbnN0ZWFkIG9mIHRha2luZyBhIFJlZlB0cjxOYXRpdmVJbWFnZT4uCisKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcElt
YWdlOjpkZXN0cm95RGVjb2RlZERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlU291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VTb3VyY2U6OnNldE5hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6aXNEZWNvZGVyQXZhaWxhYmxl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpkZXN0cm95QWxsRGVjb2Rl
ZERhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmRlc3Ryb3lB
bGxEZWNvZGVkRGF0YUV4Y2x1ZGVGcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZVNvdXJjZTo6ZGVzdHJveURlY29kZWREYXRhQmVmb3JlRnJhbWUpOiBEZWxldGVkLgorCiAy
MDIyLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXZWJwYWdlIFRyYW5zbGF0aW9uXSBBdm9pZCByZW1vdmluZyBlbGVtZW50cyB3aXRoIG5v
IGNoaWxkcmVuIGR1cmluZyB0ZXh0IG1hbmlwdWxhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMjY0ZmE1YTdk
NmMzOTNhMjAwNzM1ZGNhMDZlZWZhYzAwZjAzOGQ2Li4wZDZiODBiMGUxOTgwYzRlMWZiMzczOWQx
ZmZmYjZhYmY0NGY1YTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTA1LTExICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04o
cjI0OTE2Mik6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSgpIGNyYXNo
ZXMgaWYgdGhlIGltYWdlIGlzIGFuaW1hdGVkIGFuZCB0aGUgZmlyc3QgZnJhbWUgY2Fubm90IGJl
IGRlY29kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTExMworICAgICAgICByZGFyOi8vODc5ODA1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OmRyYXdTeXN0ZW1JbWFnZSk6CisKIDIwMjItMDUtMTEgIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXUF0gUmVtb3ZlIG9ic29sZXRlIG1l
c3NhZ2UgZmlsdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAppbmRleCBjMjRhODY3ZWQzMjBjMjVi
YmZlZWRlYTY5MGExNTY2OTlhZTAxZWM1Li5kZjExZjliMjQxODUyODIwNDUxY2Y1NjMyZDI4OGEz
ZmEyOTIxMzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcApAQCAtMTU0NSw4ICsxNTQ1LDExIEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFn
ZShEb2N1bWVudCYgZG9jdW1lbnQsIENhCiAKICAgICBpZiAoaW1hZ2UtPmlzQml0bWFwSW1hZ2Uo
KSkgewogICAgICAgICAvLyBEcmF3aW5nIGFuIGFuaW1hdGVkIGltYWdlIHRvIGEgY2FudmFzIHNo
b3VsZCBkcmF3IHRoZSBmaXJzdCBmcmFtZSAoZXhjZXB0IGZvciBhIGZldyBsYXlvdXQgdGVzdHMp
Ci0gICAgICAgIGlmIChpbWFnZS0+aXNBbmltYXRlZCgpICYmICFkb2N1bWVudC5zZXR0aW5ncygp
LmFuaW1hdGVkSW1hZ2VEZWJ1Z0NhbnZhc0RyYXdpbmdFbmFibGVkKCkpCisgICAgICAgIGlmIChp
bWFnZS0+aXNBbmltYXRlZCgpICYmICFkb2N1bWVudC5zZXR0aW5ncygpLmFuaW1hdGVkSW1hZ2VE
ZWJ1Z0NhbnZhc0RyYXdpbmdFbmFibGVkKCkpIHsKICAgICAgICAgICAgIGltYWdlID0gQml0bWFw
SW1hZ2U6OmNyZWF0ZShpbWFnZS0+bmF0aXZlSW1hZ2UoKSk7CisgICAgICAgICAgICBpZiAoIWlt
YWdlKQorICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KICAgICAgICAgZG93
bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKGRvY3VtZW50LnNl
dHRpbmdzKCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDFhMGJhMzY2ZjQyM2I1MmI3NzJlZDg1YjNiZDNlMzhm
NTNlYjkxMDguLmE4N2FjNjkwYjJlY2FmYWVkMjBmNDBlYzMzOTRmNGFkMDFjYmM0ZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAg
LTUyLDkgKzUyLDggQEAgQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKEltYWdlT2JzZXJ2ZXIqIG9i
c2VydmVyKQogewogfQogCi1CaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoUmVmUHRyPE5hdGl2ZUlt
YWdlPiYmIGltYWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlcikKLSAgICA6IEltYWdlKG9ic2Vy
dmVyKQotICAgICwgbV9zb3VyY2UoSW1hZ2VTb3VyY2U6OmNyZWF0ZShXVEZNb3ZlKGltYWdlKSkp
CitCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoUmVmPE5hdGl2ZUltYWdlPiYmIGltYWdlKQorICAg
IDogbV9zb3VyY2UoSW1hZ2VTb3VyY2U6OmNyZWF0ZShXVEZNb3ZlKGltYWdlKSkpCiB7CiB9CiAK
QEAgLTc3LDEyICs3NiwxNSBAQCB2b2lkIEJpdG1hcEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGEo
Ym9vbCBkZXN0cm95QWxsKQogewogICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAl
cCAtIHVybDogJXMiLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCi0gICAgaWYgKCFkZXN0cm95QWxsKQotICAgICAgICBtX3NvdXJjZS0+
ZGVzdHJveURlY29kZWREYXRhQmVmb3JlRnJhbWUobV9jdXJyZW50RnJhbWUpOwotICAgIGVsc2Ug
aWYgKCFjYW5EZXN0cm95RGVjb2RlZERhdGEoKSkKLSAgICAgICAgbV9zb3VyY2UtPmRlc3Ryb3lB
bGxEZWNvZGVkRGF0YUV4Y2x1ZGVGcmFtZShtX2N1cnJlbnRGcmFtZSk7Ci0gICAgZWxzZSB7Ci0g
ICAgICAgIG1fc291cmNlLT5kZXN0cm95QWxsRGVjb2RlZERhdGEoKTsKKyAgICBpZiAoIWRlc3Ry
b3lBbGwpIHsKKyAgICAgICAgLy8gRGVzdHJveSBhbGwgdGhlIGZyYW1lcyBiZXR3ZWVuIGZyYW1l
MCBhbmQgbV9jdXJyZW50RnJhbWUuCisgICAgICAgIG1fc291cmNlLT5kZXN0cm95RGVjb2RlZERh
dGEoMSwgbV9jdXJyZW50RnJhbWUpOworICAgIH0gZWxzZSBpZiAoIWNhbkRlc3Ryb3lEZWNvZGVk
RGF0YSgpKSB7CisgICAgICAgIC8vIERlc3Ryb3kgYWxsIHRoZSBmcmFtZXMgZXhjZXB0IGZyYW1l
MCBhbmQgbV9jdXJyZW50RnJhbWUuCisgICAgICAgIG1fc291cmNlLT5kZXN0cm95RGVjb2RlZERh
dGEoMSwgbV9jdXJyZW50RnJhbWUpOworICAgICAgICBtX3NvdXJjZS0+ZGVzdHJveURlY29kZWRE
YXRhKG1fY3VycmVudEZyYW1lICsgMSwgZnJhbWVDb3VudCgpKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBtX3NvdXJjZS0+ZGVzdHJveURlY29kZWREYXRhKDAsIGZyYW1lQ291bnQoKSk7CiAgICAg
ICAgIG1fY3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6SW52YWxp
ZDsKICAgICB9CiAKQEAgLTIyOSw3ICsyMzEsNiBAQCBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1h
Z2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlcwog
ICAgIGlmIChkZXN0UmVjdC5pc0VtcHR5KCkgfHwgcmVxdWVzdGVkU3JjUmVjdC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKLSAgICAKICAg
ICBhdXRvIHNyY1JlY3QgPSByZXF1ZXN0ZWRTcmNSZWN0OwogICAgIGF1dG8gcHJlZmVycmVkU2l6
ZSA9IHNpemUoKTsKICAgICBhdXRvIHNyY1NpemUgPSBzb3VyY2VTaXplKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCBmMjMyMWM4NWYx
NDdjMWEzZDVkMzNkMTdkNTM4M2JjNWNiMWI2MGMzLi4zZTIzZTg5ZWY1ZjVhM2U2ZTdmNzA2ZGNi
OGZlMDljODcyY2M0NGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmgKQEAgLTUzLDEzICs1MywxNSBAQCBjbGFzcyBUaW1lcjsKIAogY2xhc3Mg
Qml0bWFwSW1hZ2UgZmluYWwgOiBwdWJsaWMgSW1hZ2UgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8Qml0bWFwSW1hZ2U+IGNyZWF0ZShQbGF0Zm9ybUltYWdlUHRyJiYgcGxhdGZvcm1JbWFnZSwg
SW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgIHN0YXRpYyBSZWZQdHI8Qml0
bWFwSW1hZ2U+IGNyZWF0ZShQbGF0Zm9ybUltYWdlUHRyJiYgcGxhdGZvcm1JbWFnZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJpdG1hcEltYWdlKE5hdGl2ZUltYWdlOjpj
cmVhdGUoV1RGTW92ZShwbGF0Zm9ybUltYWdlKSksIG9ic2VydmVyKSk7CisgICAgICAgIHJldHVy
biBjcmVhdGUoTmF0aXZlSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKHBsYXRmb3JtSW1hZ2UpKSk7CiAg
ICAgfQotICAgIHN0YXRpYyBSZWY8Qml0bWFwSW1hZ2U+IGNyZWF0ZShSZWZQdHI8TmF0aXZlSW1h
Z2U+JiYgbmF0aXZlSW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAg
ICBzdGF0aWMgUmVmUHRyPEJpdG1hcEltYWdlPiBjcmVhdGUoUmVmUHRyPE5hdGl2ZUltYWdlPiYm
IG5hdGl2ZUltYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQml0bWFw
SW1hZ2UoV1RGTW92ZShuYXRpdmVJbWFnZSksIG9ic2VydmVyKSk7CisgICAgICAgIGlmICghbmF0
aXZlSW1hZ2UpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQml0bWFwSW1hZ2UobmF0aXZlSW1hZ2UucmVsZWFzZU5vbk51bGwoKSkpOwog
ICAgIH0KICAgICBzdGF0aWMgUmVmPEJpdG1hcEltYWdlPiBjcmVhdGUoSW1hZ2VPYnNlcnZlciog
b2JzZXJ2ZXIgPSBudWxscHRyKQogICAgIHsKQEAgLTE1NCw3ICsxNTYsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkZWNvZGUoRnVuY3Rpb248dm9pZCgpPiYmKTsKIAogcHJpdmF0ZToKLSAgICBXRUJD
T1JFX0VYUE9SVCBCaXRtYXBJbWFnZShSZWZQdHI8TmF0aXZlSW1hZ2U+JiYsIEltYWdlT2JzZXJ2
ZXIqID0gbnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgQml0bWFwSW1hZ2UoUmVmPE5hdGl2
ZUltYWdlPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBCaXRtYXBJbWFnZShJbWFnZU9ic2VydmVy
KiA9IG51bGxwdHIpOwogCiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBmcmFtZUltYWdlQXRJbmRl
eChzaXplX3QgaW5kZXgpIHsgcmV0dXJuIG1fc291cmNlLT5mcmFtZUltYWdlQXRJbmRleChpbmRl
eCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmNwcAppbmRleCA0YjNhNWUxNDI4N2I1NzNjMzI5NGFhMGFhNmM2YWIyZWMyMzAyNDUzLi5mMTQ4
ZThmYmE4YzVlODlmNTc1YTcyN2ExMWEwYzc1NjYwZDVlODcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC00NCw3ICs0NCw3IEBA
IEltYWdlU291cmNlOjpJbWFnZVNvdXJjZShCaXRtYXBJbWFnZSogaW1hZ2UsIEFscGhhT3B0aW9u
IGFscGhhT3B0aW9uLCBHYW1tYUFuZENvCiB7CiB9CiAKLUltYWdlU291cmNlOjpJbWFnZVNvdXJj
ZShSZWZQdHI8TmF0aXZlSW1hZ2U+JiYgbmF0aXZlSW1hZ2UpCitJbWFnZVNvdXJjZTo6SW1hZ2VT
b3VyY2UoUmVmPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlKQogICAgIDogbV9ydW5Mb29wKFJ1
bkxvb3A6OmN1cnJlbnQoKSkKIHsKICAgICBtX2ZyYW1lQ291bnQgPSAxOwpAQCAtMTIwLDE3ICsx
MjAsMTcgQEAgYm9vbCBJbWFnZVNvdXJjZTo6aXNBbGxEYXRhUmVjZWl2ZWQoKQogICAgIHJldHVy
biBpc0RlY29kZXJBdmFpbGFibGUoKSA/IG1fZGVjb2Rlci0+aXNBbGxEYXRhUmVjZWl2ZWQoKSA6
IGZyYW1lQ291bnQoKTsKIH0KIAotdm9pZCBJbWFnZVNvdXJjZTo6ZGVzdHJveURlY29kZWREYXRh
KHNpemVfdCBmcmFtZUNvdW50LCBzaXplX3QgZXhjbHVkZUZyYW1lKQordm9pZCBJbWFnZVNvdXJj
ZTo6ZGVzdHJveURlY29kZWREYXRhKHNpemVfdCBiZWdpbiwgc2l6ZV90IGVuZCkKIHsKLSAgICB1
bnNpZ25lZCBkZWNvZGVkU2l6ZSA9IDA7CisgICAgaWYgKGJlZ2luID49IGVuZCkKKyAgICAgICAg
cmV0dXJuOwogCi0gICAgQVNTRVJUKGZyYW1lQ291bnQgPD0gbV9mcmFtZXMuc2l6ZSgpKTsKKyAg
ICBBU1NFUlQoZW5kIDw9IG1fZnJhbWVzLnNpemUoKSk7CiAKLSAgICBmb3IgKHNpemVfdCBpbmRl
eCA9IDA7IGluZGV4IDwgZnJhbWVDb3VudDsgKytpbmRleCkgewotICAgICAgICBpZiAoaW5kZXgg
PT0gZXhjbHVkZUZyYW1lKQotICAgICAgICAgICAgY29udGludWU7CisgICAgdW5zaWduZWQgZGVj
b2RlZFNpemUgPSAwOworCisgICAgZm9yIChzaXplX3QgaW5kZXggPSBiZWdpbjsgaW5kZXggPCBl
bmQ7ICsraW5kZXgpCiAgICAgICAgIGRlY29kZWRTaXplICs9IG1fZnJhbWVzW2luZGV4XS5jbGVh
ckltYWdlKCk7Ci0gICAgfQogCiAgICAgZGVjb2RlZFNpemVSZXNldChkZWNvZGVkU2l6ZSk7CiB9
CkBAIC0yMzIsNyArMjMyLDcgQEAgdm9pZCBJbWFnZVNvdXJjZTo6Z3Jvd0ZyYW1lcygpCiAgICAg
ICAgIG1fZnJhbWVzLmdyb3cobmV3U2l6ZSk7CiB9CiAKLXZvaWQgSW1hZ2VTb3VyY2U6OnNldE5h
dGl2ZUltYWdlKFJlZlB0cjxOYXRpdmVJbWFnZT4mJiBuYXRpdmVJbWFnZSkKK3ZvaWQgSW1hZ2VT
b3VyY2U6OnNldE5hdGl2ZUltYWdlKFJlZjxOYXRpdmVJbWFnZT4mJiBuYXRpdmVJbWFnZSkKIHsK
ICAgICBBU1NFUlQobV9mcmFtZXMuc2l6ZSgpID09IDEpOwogICAgIEltYWdlRnJhbWUmIGZyYW1l
ID0gbV9mcmFtZXNbMF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VTb3VyY2UuaAppbmRleCBmOTgxNDE3ZjI0ZWJjN2YyZGJkNTczZGFlMGU1OTI1OTg5NDRlNjZh
Li43MmRmY2FhMjZkY2I3MGVlMTc4MWM0ZGJlMjE4MjA0ODAzYzRlMmViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTUxLDcgKzUxLDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZVNvdXJjZShpbWFn
ZSwgYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKSk7CiAgICAgfQogCi0g
ICAgc3RhdGljIFJlZjxJbWFnZVNvdXJjZT4gY3JlYXRlKFJlZlB0cjxOYXRpdmVJbWFnZT4mJiBu
YXRpdmVJbWFnZSkKKyAgICBzdGF0aWMgUmVmPEltYWdlU291cmNlPiBjcmVhdGUoUmVmPE5hdGl2
ZUltYWdlPiYmIG5hdGl2ZUltYWdlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSW1hZ2VTb3VyY2UoV1RGTW92ZShuYXRpdmVJbWFnZSkpKTsKICAgICB9CkBAIC02Miw5ICs2
Miw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQWxsRGF0YVJlY2VpdmVkKCk7CiAKICAgICB1bnNp
Z25lZCBkZWNvZGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVjb2RlZFNpemU7IH0KLSAgICB2
b2lkIGRlc3Ryb3lBbGxEZWNvZGVkRGF0YSgpIHsgZGVzdHJveURlY29kZWREYXRhKGZyYW1lQ291
bnQoKSwgZnJhbWVDb3VudCgpKTsgfQotICAgIHZvaWQgZGVzdHJveUFsbERlY29kZWREYXRhRXhj
bHVkZUZyYW1lKHNpemVfdCBleGNsdWRlRnJhbWUpIHsgZGVzdHJveURlY29kZWREYXRhKGZyYW1l
Q291bnQoKSwgZXhjbHVkZUZyYW1lKTsgfQotICAgIHZvaWQgZGVzdHJveURlY29kZWREYXRhQmVm
b3JlRnJhbWUoc2l6ZV90IGJlZm9yZUZyYW1lKSB7IGRlc3Ryb3lEZWNvZGVkRGF0YShiZWZvcmVG
cmFtZSwgYmVmb3JlRnJhbWUpOyB9CisgICAgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEoc2l6ZV90
IGJlZ2luLCBzaXplX3QgZW5kKTsKICAgICB2b2lkIGRlc3Ryb3lJbmNvbXBsZXRlRGVjb2RlZERh
dGEoKTsKICAgICB2b2lkIGNsZWFyRnJhbWVCdWZmZXJDYWNoZShzaXplX3QgYmVmb3JlRnJhbWUp
OwogCkBAIC0xMjgsNyArMTI2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEltYWdlU291
cmNlKEJpdG1hcEltYWdlKiwgQWxwaGFPcHRpb24gPSBBbHBoYU9wdGlvbjo6UHJlbXVsdGlwbGll
ZCwgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gPSBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlv
bjo6QXBwbGllZCk7Ci0gICAgSW1hZ2VTb3VyY2UoUmVmUHRyPE5hdGl2ZUltYWdlPiYmKTsKKyAg
ICBJbWFnZVNvdXJjZShSZWY8TmF0aXZlSW1hZ2U+JiYpOwogCiAgICAgZW51bSBjbGFzcyBNZXRh
ZGF0YVR5cGUgewogICAgICAgICBBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24gICAgPSAxIDw8IDAs
CkBAIC0xNTMsNyArMTUxLDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZW5zdXJlRGVjb2RlckF2
YWlsYWJsZShGcmFnbWVudGVkU2hhcmVkQnVmZmVyKiBkYXRhKTsKICAgICBib29sIGlzRGVjb2Rl
ckF2YWlsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVjb2RlcjsgfQotICAgIHZvaWQgZGVzdHJv
eURlY29kZWREYXRhKHNpemVfdCBmcmFtZUNvdW50LCBzaXplX3QgZXhjbHVkZUZyYW1lKTsKICAg
ICB2b2lkIGRlY29kZWRTaXplQ2hhbmdlZChsb25nIGxvbmcgZGVjb2RlZFNpemUpOwogICAgIHZv
aWQgZGlkRGVjb2RlUHJvcGVydGllcyh1bnNpZ25lZCBkZWNvZGVkUHJvcGVydGllc1NpemUpOwog
ICAgIHZvaWQgZGVjb2RlZFNpemVJbmNyZWFzZWQodW5zaWduZWQgZGVjb2RlZFNpemUpOwpAQCAt
MTYxLDcgKzE1OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWNvZGVkU2l6ZVJlc2V0KHVuc2ln
bmVkIGRlY29kZWRTaXplKTsKICAgICB2b2lkIGVuY29kZWREYXRhU3RhdHVzQ2hhbmdlZChFbmNv
ZGVkRGF0YVN0YXR1cyk7CiAKLSAgICB2b2lkIHNldE5hdGl2ZUltYWdlKFJlZlB0cjxOYXRpdmVJ
bWFnZT4mJik7CisgICAgdm9pZCBzZXROYXRpdmVJbWFnZShSZWY8TmF0aXZlSW1hZ2U+JiYpOwog
ICAgIHZvaWQgY2FjaGVNZXRhZGF0YUF0SW5kZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsLCBE
ZWNvZGluZ1N0YXR1cyA9IERlY29kaW5nU3RhdHVzOjpJbnZhbGlkKTsKICAgICB2b2lkIGNhY2hl
UGxhdGZvcm1JbWFnZUF0SW5kZXgoUGxhdGZvcm1JbWFnZVB0ciYmLCBzaXplX3QsIFN1YnNhbXBs
aW5nTGV2ZWwsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYsIERlY29kaW5nU3RhdHVzID0gRGVjb2Rp
bmdTdGF0dXM6OkludmFsaWQpOwogICAgIHZvaWQgY2FjaGVQbGF0Zm9ybUltYWdlQXRJbmRleEFz
eW5jKFBsYXRmb3JtSW1hZ2VQdHImJiwgc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsLCBjb25zdCBE
ZWNvZGluZ09wdGlvbnMmLCBEZWNvZGluZ1N0YXR1cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
ci5jcHAKaW5kZXggN2EwNzMyZTI5MmVlY2VmNTYzMDgwM2Y1MGQ2ODg3OWU0MGJkNTQ3OC4uYWE4
YzExNWIyN2M4NmZhNmI3M2RlY2I4Y2UzMDYxMjJhZWM4MzEwOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyLmNwcApAQCAtMzAyLDcgKzMwMiw3IEBAIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6ZHJhd1N5c3RlbUltYWdlKFN5c3RlbUltYWdlJiBzeXN0ZW1JbWFnZSwgY29uc3QK
ICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9Ci0gICAgICAgIGJhZGdlLnNldEltYWdlKEJpdG1hcEltYWdlOjpjcmVhdGUoV1RG
TW92ZShuYXRpdmVJbWFnZSkpKTsKKyAgICAgICAgYmFkZ2Uuc2V0SW1hZ2UoQml0bWFwSW1hZ2U6
OmNyZWF0ZShuYXRpdmVJbWFnZS5yZWxlYXNlTm9uTnVsbCgpKSk7CiAgICAgfQogI2VuZGlmCiAg
ICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd1N5c3RlbUltYWdlKHN5c3RlbUltYWdlLCBk
ZXN0aW5hdGlvblJlY3QpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459208</attachid>
            <date>2022-05-12 00:40:06 -0700</date>
            <delta_ts>2022-05-16 16:46:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239113-20220512004005.patch</filename>
            <type>text/plain</type>
            <size>13313</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzRjNDcxZTM0NTNkMjk1
YjNmZDAxMjUzZjhjMTQ0MzhhNWM3OTY0Mi4uNjY3NDg0ZDNlNjVlMDVjZWQ1ZjVhOTRjOWEzYTgx
NzM3MGFkOTRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIyLTA1LTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI0
OTE2Mik6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSgpIGNyYXNoZXMg
aWYgdGhlIGltYWdlIGlzIGFuaW1hdGVkIGFuZCB0aGUgZmlyc3QgZnJhbWUgY2Fubm90IGJlIGRl
Y29kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
OTExMworICAgICAgICByZGFyOi8vODc5ODA1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3
SW1hZ2UoKSBuZWVkcyB0byBlbnN1cmUgdGhlIGZpcnN0IGZyYW1lCisgICAgICAgIG9mIHRoZSBh
bmltYXRlZCBpbWFnZSBjYW4gYmUgZGVjb2RlZCBjb3JyZWN0bHkgYmVmb3JlIGNyZWF0aW5nIHRo
ZSB0ZW1wb3JhcnkKKyAgICAgICAgc3RhdGljIGltYWdlLiBJZiB0aGUgZmlyc3QgZnJhbWUgY2Fu
J3QgYmUgZGVjb2RlZCwgdGhpcyBmdW5jdGlvbiBzaG91bGQgcmV0dXJuCisgICAgICAgIGltbWVk
aWF0ZWx5LiBUaGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mIHRoaXMgZnVuY3Rpb24gYmVmb3Jl
IHIyNDkxNjIuCisKKyAgICAgICAgVGhlIGFuaW1hdGVkIGltYWdlIGRlY29kZXMgaXRzIGZyYW1l
cyBhc3luY2hyb25vdXNseSBpbiBhIHdvcmsgcXVldWUuIEJ1dAorICAgICAgICB0aGUgZmlyc3Qg
ZnJhbWUgaGFzIHRvIGJlIGRlY29kZWQgc3luY2hyb25vdXNseSBpbiB0aGUgbWFpbiBydW4gbG9v
cC4gU28KKyAgICAgICAgdG8gYXZvaWQgcnVubmluZyB0aGUgaW1hZ2UgZGVjb2RlciBpbiB0d28g
ZGlmZmVyZW50IHRocmVhZHMgd2UgYXJlIGdvaW5nCisgICAgICAgIHRvIGtlZXAgdGhlIGZpcnN0
IGFuZCB0aGUgY3VycmVudCBmcmFtZSBjYWNoZWQgd2hlbiB3ZSByZWNlaXZlIGEgbWVtb3J5Cisg
ICAgICAgIHByZXNzdXJlIHdhcm5pbmcuIFRoaXMgc2hvdWxkIG5vdCBpbmNyZWFzZSB0aGUgbWVt
b3J5IGFsbG9jYXRpb24gb2YgdGhlCisgICAgICAgIGFuaW1hdGVkIGltYWdlIGJlY2F1c2UgdGhl
IG51bWJlcnMgb2YgY2FjaGVkIGZyYW1lcyBpbmNyZWFzZXMgcXVpY2tseSBhbmQKKyAgICAgICAg
d2Uga2VlcCBhbGwgb2YgdGhlbSB0aWxsIGEgbWVtb3J5IHdhcm5pbmcgaXMgcmVjZWl2ZWQuIEJ1
dCB0aGUgbWVtb3J5CisgICAgICAgIHByZXNzdXJlIHdhcm5pbmcgd2lsbCBiZSByZWNlaXZlZCBh
IGxpdHRsZSBiaXQgbW9yZSBvZnRlbi4gVGhpcyBkZXBlbmRzCisgICAgICAgIG9uIHRoZSBtZW1v
cnkgc2l6ZSBvZiB0aGUgZmlyc3QgZnJhbWUuCisKKyAgICAgICAgVG8gbWFrZSB0aGUgY29kZSBt
b3JlIHJvYnVzdCwgbWFrZSBJbWFnZVNvdXJjZSB0YWtlIGEgUmVmPE5hdGl2ZUltYWdlPgorICAg
ICAgICBpbnN0ZWFkIG9mIHRha2luZyBhIFJlZlB0cjxOYXRpdmVJbWFnZT4uCisKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcElt
YWdlOjpkZXN0cm95RGVjb2RlZERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlU291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VTb3VyY2U6OnNldE5hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6aXNEZWNvZGVyQXZhaWxhYmxl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpkZXN0cm95QWxsRGVjb2Rl
ZERhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmRlc3Ryb3lB
bGxEZWNvZGVkRGF0YUV4Y2x1ZGVGcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZVNvdXJjZTo6ZGVzdHJveURlY29kZWREYXRhQmVmb3JlRnJhbWUpOiBEZWxldGVkLgorCiAy
MDIyLTA1LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXZWJwYWdlIFRyYW5zbGF0aW9uXSBBdm9pZCByZW1vdmluZyBlbGVtZW50cyB3aXRoIG5v
IGNoaWxkcmVuIGR1cmluZyB0ZXh0IG1hbmlwdWxhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMjY0ZmE1YTdk
NmMzOTNhMjAwNzM1ZGNhMDZlZWZhYzAwZjAzOGQ2Li4wZDZiODBiMGUxOTgwYzRlMWZiMzczOWQx
ZmZmYjZhYmY0NGY1YTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTA1LTExICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04o
cjI0OTE2Mik6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSgpIGNyYXNo
ZXMgaWYgdGhlIGltYWdlIGlzIGFuaW1hdGVkIGFuZCB0aGUgZmlyc3QgZnJhbWUgY2Fubm90IGJl
IGRlY29kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTExMworICAgICAgICByZGFyOi8vODc5ODA1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OmRyYXdTeXN0ZW1JbWFnZSk6CisKIDIwMjItMDUtMTEgIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXUF0gUmVtb3ZlIG9ic29sZXRlIG1l
c3NhZ2UgZmlsdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAppbmRleCBjMjRhODY3ZWQzMjBjMjVi
YmZlZWRlYTY5MGExNTY2OTlhZTAxZWM1Li5kZjExZjliMjQxODUyODIwNDUxY2Y1NjMyZDI4OGEz
ZmEyOTIxMzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcApAQCAtMTU0NSw4ICsxNTQ1LDExIEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFn
ZShEb2N1bWVudCYgZG9jdW1lbnQsIENhCiAKICAgICBpZiAoaW1hZ2UtPmlzQml0bWFwSW1hZ2Uo
KSkgewogICAgICAgICAvLyBEcmF3aW5nIGFuIGFuaW1hdGVkIGltYWdlIHRvIGEgY2FudmFzIHNo
b3VsZCBkcmF3IHRoZSBmaXJzdCBmcmFtZSAoZXhjZXB0IGZvciBhIGZldyBsYXlvdXQgdGVzdHMp
Ci0gICAgICAgIGlmIChpbWFnZS0+aXNBbmltYXRlZCgpICYmICFkb2N1bWVudC5zZXR0aW5ncygp
LmFuaW1hdGVkSW1hZ2VEZWJ1Z0NhbnZhc0RyYXdpbmdFbmFibGVkKCkpCisgICAgICAgIGlmIChp
bWFnZS0+aXNBbmltYXRlZCgpICYmICFkb2N1bWVudC5zZXR0aW5ncygpLmFuaW1hdGVkSW1hZ2VE
ZWJ1Z0NhbnZhc0RyYXdpbmdFbmFibGVkKCkpIHsKICAgICAgICAgICAgIGltYWdlID0gQml0bWFw
SW1hZ2U6OmNyZWF0ZShpbWFnZS0+bmF0aXZlSW1hZ2UoKSk7CisgICAgICAgICAgICBpZiAoIWlt
YWdlKQorICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KICAgICAgICAgZG93
bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKGRvY3VtZW50LnNl
dHRpbmdzKCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDFhMGJhMzY2ZjQyM2I1MmI3NzJlZDg1YjNiZDNlMzhm
NTNlYjkxMDguLmE4N2FjNjkwYjJlY2FmYWVkMjBmNDBlYzMzOTRmNGFkMDFjYmM0ZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAg
LTUyLDkgKzUyLDggQEAgQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKEltYWdlT2JzZXJ2ZXIqIG9i
c2VydmVyKQogewogfQogCi1CaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoUmVmUHRyPE5hdGl2ZUlt
YWdlPiYmIGltYWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlcikKLSAgICA6IEltYWdlKG9ic2Vy
dmVyKQotICAgICwgbV9zb3VyY2UoSW1hZ2VTb3VyY2U6OmNyZWF0ZShXVEZNb3ZlKGltYWdlKSkp
CitCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoUmVmPE5hdGl2ZUltYWdlPiYmIGltYWdlKQorICAg
IDogbV9zb3VyY2UoSW1hZ2VTb3VyY2U6OmNyZWF0ZShXVEZNb3ZlKGltYWdlKSkpCiB7CiB9CiAK
QEAgLTc3LDEyICs3NiwxNSBAQCB2b2lkIEJpdG1hcEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGEo
Ym9vbCBkZXN0cm95QWxsKQogewogICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAl
cCAtIHVybDogJXMiLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCi0gICAgaWYgKCFkZXN0cm95QWxsKQotICAgICAgICBtX3NvdXJjZS0+
ZGVzdHJveURlY29kZWREYXRhQmVmb3JlRnJhbWUobV9jdXJyZW50RnJhbWUpOwotICAgIGVsc2Ug
aWYgKCFjYW5EZXN0cm95RGVjb2RlZERhdGEoKSkKLSAgICAgICAgbV9zb3VyY2UtPmRlc3Ryb3lB
bGxEZWNvZGVkRGF0YUV4Y2x1ZGVGcmFtZShtX2N1cnJlbnRGcmFtZSk7Ci0gICAgZWxzZSB7Ci0g
ICAgICAgIG1fc291cmNlLT5kZXN0cm95QWxsRGVjb2RlZERhdGEoKTsKKyAgICBpZiAoIWRlc3Ry
b3lBbGwpIHsKKyAgICAgICAgLy8gRGVzdHJveSBhbGwgdGhlIGZyYW1lcyBiZXR3ZWVuIGZyYW1l
MCBhbmQgbV9jdXJyZW50RnJhbWUuCisgICAgICAgIG1fc291cmNlLT5kZXN0cm95RGVjb2RlZERh
dGEoMSwgbV9jdXJyZW50RnJhbWUpOworICAgIH0gZWxzZSBpZiAoIWNhbkRlc3Ryb3lEZWNvZGVk
RGF0YSgpKSB7CisgICAgICAgIC8vIERlc3Ryb3kgYWxsIHRoZSBmcmFtZXMgZXhjZXB0IGZyYW1l
MCBhbmQgbV9jdXJyZW50RnJhbWUuCisgICAgICAgIG1fc291cmNlLT5kZXN0cm95RGVjb2RlZERh
dGEoMSwgbV9jdXJyZW50RnJhbWUpOworICAgICAgICBtX3NvdXJjZS0+ZGVzdHJveURlY29kZWRE
YXRhKG1fY3VycmVudEZyYW1lICsgMSwgZnJhbWVDb3VudCgpKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBtX3NvdXJjZS0+ZGVzdHJveURlY29kZWREYXRhKDAsIGZyYW1lQ291bnQoKSk7CiAgICAg
ICAgIG1fY3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6SW52YWxp
ZDsKICAgICB9CiAKQEAgLTIyOSw3ICsyMzEsNiBAQCBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1h
Z2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlcwog
ICAgIGlmIChkZXN0UmVjdC5pc0VtcHR5KCkgfHwgcmVxdWVzdGVkU3JjUmVjdC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKLSAgICAKICAg
ICBhdXRvIHNyY1JlY3QgPSByZXF1ZXN0ZWRTcmNSZWN0OwogICAgIGF1dG8gcHJlZmVycmVkU2l6
ZSA9IHNpemUoKTsKICAgICBhdXRvIHNyY1NpemUgPSBzb3VyY2VTaXplKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCBmMjMyMWM4NWYx
NDdjMWEzZDVkMzNkMTdkNTM4M2JjNWNiMWI2MGMzLi5kM2Y0ZmViZDA4MDQ2ZWIyMjVlYzAyMjkw
NTViOTExMTc3Mjg4M2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmgKQEAgLTUzLDEzICs1MywxOSBAQCBjbGFzcyBUaW1lcjsKIAogY2xhc3Mg
Qml0bWFwSW1hZ2UgZmluYWwgOiBwdWJsaWMgSW1hZ2UgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8Qml0bWFwSW1hZ2U+IGNyZWF0ZShQbGF0Zm9ybUltYWdlUHRyJiYgcGxhdGZvcm1JbWFnZSwg
SW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgIHN0YXRpYyBSZWZQdHI8Qml0
bWFwSW1hZ2U+IGNyZWF0ZShQbGF0Zm9ybUltYWdlUHRyJiYgcGxhdGZvcm1JbWFnZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJpdG1hcEltYWdlKE5hdGl2ZUltYWdlOjpj
cmVhdGUoV1RGTW92ZShwbGF0Zm9ybUltYWdlKSksIG9ic2VydmVyKSk7CisgICAgICAgIHJldHVy
biBjcmVhdGUoTmF0aXZlSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKHBsYXRmb3JtSW1hZ2UpKSk7CiAg
ICAgfQotICAgIHN0YXRpYyBSZWY8Qml0bWFwSW1hZ2U+IGNyZWF0ZShSZWZQdHI8TmF0aXZlSW1h
Z2U+JiYgbmF0aXZlSW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAg
ICBzdGF0aWMgUmVmUHRyPEJpdG1hcEltYWdlPiBjcmVhdGUoUmVmUHRyPE5hdGl2ZUltYWdlPiYm
IG5hdGl2ZUltYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQml0bWFw
SW1hZ2UoV1RGTW92ZShuYXRpdmVJbWFnZSksIG9ic2VydmVyKSk7CisgICAgICAgIGlmICghbmF0
aXZlSW1hZ2UpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZShuYXRpdmVJbWFnZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICB9CisgICAgc3RhdGljIFJl
ZjxCaXRtYXBJbWFnZT4gY3JlYXRlKFJlZjxOYXRpdmVJbWFnZT4mJiBuYXRpdmVJbWFnZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJpdG1hcEltYWdlKFdURk1vdmUobmF0
aXZlSW1hZ2UpKSk7CiAgICAgfQogICAgIHN0YXRpYyBSZWY8Qml0bWFwSW1hZ2U+IGNyZWF0ZShJ
bWFnZU9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIpCiAgICAgewpAQCAtMTU0LDcgKzE2MCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlY29kZShGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiBwcml2
YXRlOgotICAgIFdFQkNPUkVfRVhQT1JUIEJpdG1hcEltYWdlKFJlZlB0cjxOYXRpdmVJbWFnZT4m
JiwgSW1hZ2VPYnNlcnZlciogPSBudWxscHRyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBCaXRtYXBJ
bWFnZShSZWY8TmF0aXZlSW1hZ2U+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIEJpdG1hcEltYWdl
KEltYWdlT2JzZXJ2ZXIqID0gbnVsbHB0cik7CiAKICAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IGZy
YW1lSW1hZ2VBdEluZGV4KHNpemVfdCBpbmRleCkgeyByZXR1cm4gbV9zb3VyY2UtPmZyYW1lSW1h
Z2VBdEluZGV4KGluZGV4KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuY3BwCmluZGV4IDRiM2E1ZTE0Mjg3YjU3M2MzMjk0YWEwYWE2YzZhYjJl
YzIzMDI0NTMuLmYxNDhlOGZiYThjNWU4OWY1NzVhNzI3YTExYTBjNzU2NjBkNWU4NzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKQEAg
LTQ0LDcgKzQ0LDcgQEAgSW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKEJpdG1hcEltYWdlKiBpbWFn
ZSwgQWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEdhbW1hQW5kQ28KIHsKIH0KIAotSW1hZ2VTb3Vy
Y2U6OkltYWdlU291cmNlKFJlZlB0cjxOYXRpdmVJbWFnZT4mJiBuYXRpdmVJbWFnZSkKK0ltYWdl
U291cmNlOjpJbWFnZVNvdXJjZShSZWY8TmF0aXZlSW1hZ2U+JiYgbmF0aXZlSW1hZ2UpCiAgICAg
OiBtX3J1bkxvb3AoUnVuTG9vcDo6Y3VycmVudCgpKQogewogICAgIG1fZnJhbWVDb3VudCA9IDE7
CkBAIC0xMjAsMTcgKzEyMCwxNyBAQCBib29sIEltYWdlU291cmNlOjppc0FsbERhdGFSZWNlaXZl
ZCgpCiAgICAgcmV0dXJuIGlzRGVjb2RlckF2YWlsYWJsZSgpID8gbV9kZWNvZGVyLT5pc0FsbERh
dGFSZWNlaXZlZCgpIDogZnJhbWVDb3VudCgpOwogfQogCi12b2lkIEltYWdlU291cmNlOjpkZXN0
cm95RGVjb2RlZERhdGEoc2l6ZV90IGZyYW1lQ291bnQsIHNpemVfdCBleGNsdWRlRnJhbWUpCit2
b2lkIEltYWdlU291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEoc2l6ZV90IGJlZ2luLCBzaXplX3Qg
ZW5kKQogewotICAgIHVuc2lnbmVkIGRlY29kZWRTaXplID0gMDsKKyAgICBpZiAoYmVnaW4gPj0g
ZW5kKQorICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoZnJhbWVDb3VudCA8PSBtX2ZyYW1l
cy5zaXplKCkpOworICAgIEFTU0VSVChlbmQgPD0gbV9mcmFtZXMuc2l6ZSgpKTsKIAotICAgIGZv
ciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBmcmFtZUNvdW50OyArK2luZGV4KSB7Ci0gICAg
ICAgIGlmIChpbmRleCA9PSBleGNsdWRlRnJhbWUpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAg
ICB1bnNpZ25lZCBkZWNvZGVkU2l6ZSA9IDA7CisKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IGJl
Z2luOyBpbmRleCA8IGVuZDsgKytpbmRleCkKICAgICAgICAgZGVjb2RlZFNpemUgKz0gbV9mcmFt
ZXNbaW5kZXhdLmNsZWFySW1hZ2UoKTsKLSAgICB9CiAKICAgICBkZWNvZGVkU2l6ZVJlc2V0KGRl
Y29kZWRTaXplKTsKIH0KQEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIEltYWdlU291cmNlOjpncm93
RnJhbWVzKCkKICAgICAgICAgbV9mcmFtZXMuZ3JvdyhuZXdTaXplKTsKIH0KIAotdm9pZCBJbWFn
ZVNvdXJjZTo6c2V0TmF0aXZlSW1hZ2UoUmVmUHRyPE5hdGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdl
KQordm9pZCBJbWFnZVNvdXJjZTo6c2V0TmF0aXZlSW1hZ2UoUmVmPE5hdGl2ZUltYWdlPiYmIG5h
dGl2ZUltYWdlKQogewogICAgIEFTU0VSVChtX2ZyYW1lcy5zaXplKCkgPT0gMSk7CiAgICAgSW1h
Z2VGcmFtZSYgZnJhbWUgPSBtX2ZyYW1lc1swXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCmluZGV4IGY5ODE0MTdmMjRlYmM3ZjJkYmQ1NzNkYWUw
ZTU5MjU5ODk0NGU2NmEuLjcyZGZjYWEyNmRjYjcwZWUxNzgxYzRkYmUyMTgyMDQ4MDNjNGUyZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApA
QCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElt
YWdlU291cmNlKGltYWdlLCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24p
KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPEltYWdlU291cmNlPiBjcmVhdGUoUmVmUHRyPE5h
dGl2ZUltYWdlPiYmIG5hdGl2ZUltYWdlKQorICAgIHN0YXRpYyBSZWY8SW1hZ2VTb3VyY2U+IGNy
ZWF0ZShSZWY8TmF0aXZlSW1hZ2U+JiYgbmF0aXZlSW1hZ2UpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBJbWFnZVNvdXJjZShXVEZNb3ZlKG5hdGl2ZUltYWdlKSkpOwogICAg
IH0KQEAgLTYyLDkgKzYyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNBbGxEYXRhUmVjZWl2ZWQo
KTsKIAogICAgIHVuc2lnbmVkIGRlY29kZWRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9kZWNvZGVk
U2l6ZTsgfQotICAgIHZvaWQgZGVzdHJveUFsbERlY29kZWREYXRhKCkgeyBkZXN0cm95RGVjb2Rl
ZERhdGEoZnJhbWVDb3VudCgpLCBmcmFtZUNvdW50KCkpOyB9Ci0gICAgdm9pZCBkZXN0cm95QWxs
RGVjb2RlZERhdGFFeGNsdWRlRnJhbWUoc2l6ZV90IGV4Y2x1ZGVGcmFtZSkgeyBkZXN0cm95RGVj
b2RlZERhdGEoZnJhbWVDb3VudCgpLCBleGNsdWRlRnJhbWUpOyB9Ci0gICAgdm9pZCBkZXN0cm95
RGVjb2RlZERhdGFCZWZvcmVGcmFtZShzaXplX3QgYmVmb3JlRnJhbWUpIHsgZGVzdHJveURlY29k
ZWREYXRhKGJlZm9yZUZyYW1lLCBiZWZvcmVGcmFtZSk7IH0KKyAgICB2b2lkIGRlc3Ryb3lEZWNv
ZGVkRGF0YShzaXplX3QgYmVnaW4sIHNpemVfdCBlbmQpOwogICAgIHZvaWQgZGVzdHJveUluY29t
cGxldGVEZWNvZGVkRGF0YSgpOwogICAgIHZvaWQgY2xlYXJGcmFtZUJ1ZmZlckNhY2hlKHNpemVf
dCBiZWZvcmVGcmFtZSk7CiAKQEAgLTEyOCw3ICsxMjYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgSW1hZ2VTb3VyY2UoQml0bWFwSW1hZ2UqLCBBbHBoYU9wdGlvbiA9IEFscGhhT3B0aW9u
OjpQcmVtdWx0aXBsaWVkLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiA9IEdhbW1hQW5kQ29s
b3JQcm9maWxlT3B0aW9uOjpBcHBsaWVkKTsKLSAgICBJbWFnZVNvdXJjZShSZWZQdHI8TmF0aXZl
SW1hZ2U+JiYpOworICAgIEltYWdlU291cmNlKFJlZjxOYXRpdmVJbWFnZT4mJik7CiAKICAgICBl
bnVtIGNsYXNzIE1ldGFkYXRhVHlwZSB7CiAgICAgICAgIEFjY2Vzc2liaWxpdHlEZXNjcmlwdGlv
biAgICA9IDEgPDwgMCwKQEAgLTE1Myw3ICsxNTEsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBl
bnN1cmVEZWNvZGVyQXZhaWxhYmxlKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXIqIGRhdGEpOwogICAg
IGJvb2wgaXNEZWNvZGVyQXZhaWxhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9kZWNvZGVyOyB9Ci0g
ICAgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEoc2l6ZV90IGZyYW1lQ291bnQsIHNpemVfdCBleGNs
dWRlRnJhbWUpOwogICAgIHZvaWQgZGVjb2RlZFNpemVDaGFuZ2VkKGxvbmcgbG9uZyBkZWNvZGVk
U2l6ZSk7CiAgICAgdm9pZCBkaWREZWNvZGVQcm9wZXJ0aWVzKHVuc2lnbmVkIGRlY29kZWRQcm9w
ZXJ0aWVzU2l6ZSk7CiAgICAgdm9pZCBkZWNvZGVkU2l6ZUluY3JlYXNlZCh1bnNpZ25lZCBkZWNv
ZGVkU2l6ZSk7CkBAIC0xNjEsNyArMTU4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY29kZWRT
aXplUmVzZXQodW5zaWduZWQgZGVjb2RlZFNpemUpOwogICAgIHZvaWQgZW5jb2RlZERhdGFTdGF0
dXNDaGFuZ2VkKEVuY29kZWREYXRhU3RhdHVzKTsKIAotICAgIHZvaWQgc2V0TmF0aXZlSW1hZ2Uo
UmVmUHRyPE5hdGl2ZUltYWdlPiYmKTsKKyAgICB2b2lkIHNldE5hdGl2ZUltYWdlKFJlZjxOYXRp
dmVJbWFnZT4mJik7CiAgICAgdm9pZCBjYWNoZU1ldGFkYXRhQXRJbmRleChzaXplX3QsIFN1YnNh
bXBsaW5nTGV2ZWwsIERlY29kaW5nU3RhdHVzID0gRGVjb2RpbmdTdGF0dXM6OkludmFsaWQpOwog
ICAgIHZvaWQgY2FjaGVQbGF0Zm9ybUltYWdlQXRJbmRleChQbGF0Zm9ybUltYWdlUHRyJiYsIHNp
emVfdCwgU3Vic2FtcGxpbmdMZXZlbCwgY29uc3QgRGVjb2RpbmdPcHRpb25zJiwgRGVjb2RpbmdT
dGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6SW52YWxpZCk7CiAgICAgdm9pZCBjYWNoZVBsYXRmb3Jt
SW1hZ2VBdEluZGV4QXN5bmMoUGxhdGZvcm1JbWFnZVB0ciYmLCBzaXplX3QsIFN1YnNhbXBsaW5n
TGV2ZWwsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYsIERlY29kaW5nU3RhdHVzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCA3YTA3MzJlMjkyZWVjZWY1NjMwODAzZjUwZDY4ODc5
ZTQwYmQ1NDc4Li5hYThjMTE1YjI3Yzg2ZmE2YjczZGVjYjhjZTMwNjEyMmFlYzgzMTA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0zMDIsNyArMzAyLDcgQEAgdm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3U3lzdGVtSW1hZ2UoU3lzdGVtSW1hZ2UmIHN5c3Rl
bUltYWdlLCBjb25zdAogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgYmFkZ2Uuc2V0SW1hZ2UoQml0bWFwSW1h
Z2U6OmNyZWF0ZShXVEZNb3ZlKG5hdGl2ZUltYWdlKSkpOworICAgICAgICBiYWRnZS5zZXRJbWFn
ZShCaXRtYXBJbWFnZTo6Y3JlYXRlKG5hdGl2ZUltYWdlLnJlbGVhc2VOb25OdWxsKCkpKTsKICAg
ICB9CiAjZW5kaWYKICAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3U3lzdGVtSW1hZ2Uo
c3lzdGVtSW1hZ2UsIGRlc3RpbmF0aW9uUmVjdCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>