<?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>232527</bug_id>
          
          <creation_ts>2021-10-30 00:08:57 -0700</creation_ts>
          <short_desc>Factor out didDraw / didDrawEntireCanvas calls in canvas drawing functions</short_desc>
          <delta_ts>2021-11-04 21:52:51 -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>Canvas</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron McCormack (:heycam)">heycam</reporter>
          <assigned_to name="Cameron McCormack (:heycam)">heycam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1810400</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-10-30 00:08:57 -0700</bug_when>
    <thetext>There are various canvas drawing functions in CanvasRenderingContext2DBase that end similarly:

```
    if (isEntireBackingStoreDirty())
        didDraw(std::nullopt);
    else if (repaintEntireCanvas)
        didDrawEntireCanvas();
    else
        didDraw(... some rect calculation ...);
```

We can factor out the commonality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810401</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-30 00:09:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/84834950&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810402</commentid>
    <comment_count>2</comment_count>
      <attachid>442904</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-10-30 00:13:41 -0700</bug_when>
    <thetext>Created attachment 442904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811773</commentid>
    <comment_count>3</comment_count>
      <attachid>442904</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-04 00:00:26 -0700</bug_when>
    <thetext>Comment on attachment 442904
Patch

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

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:1065
&gt; +        return path.fastBoundingRect();

I suppose this is the case where computing the rect is expensive? (thus the lambda)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811777</commentid>
    <comment_count>4</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-11-04 00:10:57 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; &gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:1065
&gt; &gt; +        return path.fastBoundingRect();
&gt; 
&gt; I suppose this is the case where computing the rect is expensive? (thus the
&gt; lambda)

I imagine so.  I didn&apos;t measure.  But I know Simon was careful previously not to compute it if not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811778</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-04 00:12:39 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 442904 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812054</commentid>
    <comment_count>6</comment_count>
      <attachid>443371</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-11-04 20:34:15 -0700</bug_when>
    <thetext>Created attachment 443371
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812061</commentid>
    <comment_count>7</comment_count>
      <attachid>443374</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-11-04 21:08:37 -0700</bug_when>
    <thetext>Created attachment 443374
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812067</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-04 21:52:48 -0700</bug_when>
    <thetext>Committed r285334 (243897@main): &lt;https://commits.webkit.org/243897@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443374.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442904</attachid>
            <date>2021-10-30 00:13:41 -0700</date>
            <delta_ts>2021-11-04 20:34:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232527-20211030181340.patch</filename>
            <type>text/plain</type>
            <size>8562</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDcxN2M1MzU5MGZkNjVh
ZWQ4MWQ4MWE0MTQzMmQzYmI3NDQyYWE1Yi4uMmNiMTAzZjMxZTU3YzcyYzZmYTlhNjllOTc5Mjg5
MWM4YTI2Nzc0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEwLTMwICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgRmFjdG9yIG91dCBk
aWREcmF3IC8gZGlkRHJhd0VudGlyZUNhbnZhcyBjYWxscyBpbiBjYW52YXMgZHJhd2luZyBmdW5j
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MjUyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQ4MzQ5NTA+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlIGV4Y2Vw
dCBmb3IgaW4gZHJhd0ltYWdlLCB3aGVyZSB0aGUKKyAgICAgICAgcGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQgY29kZSBwYXRoIG5vdyB3aWxsIGNoZWNrIHdoZXRoZXIgdG8gY2FsbAorICAgICAg
ICBkaWREcmF3RW50aXJlQ2FudmFzLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlOjpmaWxsSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c3Ryb2tlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZmlsbFJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c3Ryb2tlUmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZGlkRHJhdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3VGV4dFVu
Y2hlY2tlZCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZS5oOgorCiAyMDIxLTEwLTI5ICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+
CiAKICAgICAgICAgSGF2ZSBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQgdXNlIFNoYXJlZEJ1
ZmZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAppbmRleCBlNDAyNzgwM2IxYzU3MDRlNjEzYWJlMDIx
OWRkNjE2YjVhYTdiMzYzLi5lNzhhMDcyZjhmZTA5ZTRiNjAwOGVlOTM4YjcxODdhN2Y4N2Q2MmYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcApAQCAtMTA2MSwxMiArMTA2MSw5IEBAIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZmlsbEludGVybmFsKGNvbnN0IFBhdGgmIHBhdGgs
IENhbnZhc0ZpbGxSdWxlCiAgICAgfSBlbHNlCiAgICAgICAgIGMtPmZpbGxQYXRoKHBhdGgpOwog
ICAgIAotICAgIGlmIChpc0VudGlyZUJhY2tpbmdTdG9yZURpcnR5KCkpCi0gICAgICAgIGRpZERy
YXcoc3RkOjpudWxsb3B0KTsKLSAgICBlbHNlIGlmIChyZXBhaW50RW50aXJlQ2FudmFzKQotICAg
ICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7Ci0gICAgZWxzZQotICAgICAgICBkaWREcmF3KHBh
dGguZmFzdEJvdW5kaW5nUmVjdCgpKTsKKyAgICBkaWREcmF3KHJlcGFpbnRFbnRpcmVDYW52YXMs
IFsmXSB7CisgICAgICAgIHJldHVybiBwYXRoLmZhc3RCb3VuZGluZ1JlY3QoKTsKKyAgICB9KTsK
IAogICAgIGMtPnNldEZpbGxSdWxlKHNhdmVkRmlsbFJ1bGUpOwogfQpAQCAtMTEwMCwxNSArMTA5
NywxMSBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OnN0cm9rZUludGVybmFs
KGNvbnN0IFBhdGgmIHBhdGgpCiAgICAgfSBlbHNlCiAgICAgICAgIGMtPnN0cm9rZVBhdGgocGF0
aCk7CiAKLSAgICBpZiAoaXNFbnRpcmVCYWNraW5nU3RvcmVEaXJ0eSgpKQotICAgICAgICBkaWRE
cmF3KHN0ZDo6bnVsbG9wdCk7Ci0gICAgZWxzZSBpZiAocmVwYWludEVudGlyZUNhbnZhcykKLSAg
ICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwotICAgIGVsc2UgeworICAgIGRpZERyYXcocmVw
YWludEVudGlyZUNhbnZhcywgWyZdIHsKICAgICAgICAgYXV0byBkaXJ0eVJlY3QgPSBwYXRoLmZh
c3RCb3VuZGluZ1JlY3QoKTsKICAgICAgICAgaW5mbGF0ZVN0cm9rZVJlY3QoZGlydHlSZWN0KTsK
LSAgICAgICAgZGlkRHJhdyhkaXJ0eVJlY3QpOwotICAgIH0KKyAgICAgICAgcmV0dXJuIGRpcnR5
UmVjdDsKKyAgICB9KTsKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpj
bGlwSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0aCwgQ2FudmFzRmlsbFJ1bGUgd2luZGluZ1J1bGUp
CkBAIC0xMjcwLDEyICsxMjYzLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
OjpmaWxsUmVjdChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB3aWR0aCwgZG8KICAgICB9IGVs
c2UKICAgICAgICAgYy0+ZmlsbFJlY3QocmVjdCk7CiAKLSAgICBpZiAoaXNFbnRpcmVCYWNraW5n
U3RvcmVEaXJ0eSgpKQotICAgICAgICBkaWREcmF3KHN0ZDo6bnVsbG9wdCk7Ci0gICAgZWxzZSBp
ZiAocmVwYWludEVudGlyZUNhbnZhcykKLSAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwot
ICAgIGVsc2UKLSAgICAgICAgZGlkRHJhdyhyZWN0KTsKKyAgICBkaWREcmF3KHJlcGFpbnRFbnRp
cmVDYW52YXMsIHJlY3QpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6
OnN0cm9rZVJlY3QoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgd2lkdGgsIGRvdWJsZSBoZWln
aHQpCkBAIC0xMzEwLDE1ICsxMjk4LDExIEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZTo6c3Ryb2tlUmVjdChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB3aWR0aCwKICAgICB9
IGVsc2UKICAgICAgICAgYy0+c3Ryb2tlUmVjdChyZWN0LCBzdGF0ZSgpLmxpbmVXaWR0aCk7CiAK
LSAgICBpZiAoaXNFbnRpcmVCYWNraW5nU3RvcmVEaXJ0eSgpKQotICAgICAgICBkaWREcmF3KHN0
ZDo6bnVsbG9wdCk7Ci0gICAgZWxzZSBpZiAocmVwYWludEVudGlyZUNhbnZhcykKLSAgICAgICAg
ZGlkRHJhd0VudGlyZUNhbnZhcygpOwotICAgIGVsc2UgeworICAgIGRpZERyYXcocmVwYWludEVu
dGlyZUNhbnZhcywgWyZdIHsKICAgICAgICAgYXV0byBib3VuZGluZ1JlY3QgPSByZWN0OwogICAg
ICAgICBib3VuZGluZ1JlY3QuaW5mbGF0ZShzdGF0ZSgpLmxpbmVXaWR0aCAvIDIpOwotICAgICAg
ICBkaWREcmF3KGJvdW5kaW5nUmVjdCk7Ci0gICAgfQorICAgICAgICByZXR1cm4gYm91bmRpbmdS
ZWN0OworICAgIH0pOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OnNl
dFNoYWRvdyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBibHVyLCBjb25zdCBTdHJp
bmcmIGNvbG9yU3RyaW5nLCBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBhbHBoYSkKQEAgLTE1ODIsMTIg
KzE1NjYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
OjpkcmF3SW1hZ2UoRG9jdW1lbnQmIGRvY3VtZW50LCBDYQogICAgIH0gZWxzZQogICAgICAgICBj
LT5kcmF3SW1hZ2VGb3JDYW52YXMoKmltYWdlLCBub3JtYWxpemVkRHN0UmVjdCwgbm9ybWFsaXpl
ZFNyY1JlY3QsIG9wdGlvbnMsIGNvbG9yU3BhY2UoKSk7CiAKLSAgICBpZiAoaXNFbnRpcmVCYWNr
aW5nU3RvcmVEaXJ0eSgpKQotICAgICAgICBkaWREcmF3KHN0ZDo6bnVsbG9wdCk7Ci0gICAgZWxz
ZSBpZiAocmVwYWludEVudGlyZUNhbnZhcykKLSAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygp
OwotICAgIGVsc2UKLSAgICAgICAgZGlkRHJhdyhub3JtYWxpemVkRHN0UmVjdCk7CisgICAgZGlk
RHJhdyhyZXBhaW50RW50aXJlQ2FudmFzLCBub3JtYWxpemVkRHN0UmVjdCk7CiAKICAgICBpZiAo
aW1hZ2UtPmRyYXdzU1ZHSW1hZ2UoKSkKICAgICAgICAgaW1hZ2UtPnNldEltYWdlT2JzZXJ2ZXIo
b2JzZXJ2ZXIpOwpAQCAtMTY0NCwxMiArMTYyMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShDYW52YXNCYXNlJiBzb3VyY2VDYW52
CiAgICAgfSBlbHNlCiAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0
LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5k
IH0pOwogCi0gICAgaWYgKGlzRW50aXJlQmFja2luZ1N0b3JlRGlydHkoKSkKLSAgICAgICAgZGlk
RHJhdyhzdGQ6Om51bGxvcHQpOwotICAgIGVsc2UgaWYgKHJlcGFpbnRFbnRpcmVDYW52YXMpCi0g
ICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKLSAgICBlbHNlCi0gICAgICAgIGRpZERyYXco
ZHN0UmVjdCk7CisgICAgZGlkRHJhdyhyZXBhaW50RW50aXJlQ2FudmFzLCBkc3RSZWN0KTsKIAog
ICAgIHJldHVybiB7IH07CiB9CkBAIC0xNjc2LDE3ICsxNjUwLDE0IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShIVE1MVmlkZW9FbGVt
ZW50JiB2aWRlCiAKICAgICBjaGVja09yaWdpbigmdmlkZW8pOwogCisgICAgYm9vbCByZXBhaW50
RW50aXJlQ2FudmFzID0gcmVjdENvbnRhaW5zQ2FudmFzKGRzdFJlY3QpOworCiAjaWYgVVNFKENH
KQogICAgIGlmICghY2FudmFzQmFzZSgpLmJ1ZmZlcigpLT5pc1JlbW90ZSgpKSB7CiAgICAgICAg
IGlmIChhdXRvIGltYWdlID0gdmlkZW8ubmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpKSB7CiAg
ICAgICAgICAgICBjLT5kcmF3TmF0aXZlSW1hZ2UoKmltYWdlLCBGbG9hdFNpemUodmlkZW8udmlk
ZW9XaWR0aCgpLCB2aWRlby52aWRlb0hlaWdodCgpKSwgZHN0UmVjdCwgc3JjUmVjdCk7CiAKLSAg
ICAgICAgICAgIGlmIChpc0VudGlyZUJhY2tpbmdTdG9yZURpcnR5KCkpCi0gICAgICAgICAgICAg
ICAgZGlkRHJhdyhzdGQ6Om51bGxvcHQpOwotICAgICAgICAgICAgZWxzZSBpZiAocmVjdENvbnRh
aW5zQ2FudmFzKGRzdFJlY3QpKQotICAgICAgICAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMo
KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBkaWREcmF3KGRzdFJlY3QpOwor
ICAgICAgICAgICAgZGlkRHJhdyhyZXBhaW50RW50aXJlQ2FudmFzLCBkc3RSZWN0KTsKIAogICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQpAQCAtMTcwMSwxMCArMTY3Miw3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShI
VE1MVmlkZW9FbGVtZW50JiB2aWRlCiAgICAgdmlkZW8ucGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQoKmMsIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNpemUodmlkZW8pKSk7CiAgICAgc3RhdGVT
YXZlci5yZXN0b3JlKCk7CiAKLSAgICBpZiAoaXNFbnRpcmVCYWNraW5nU3RvcmVEaXJ0eSgpKQot
ICAgICAgICBkaWREcmF3KHN0ZDo6bnVsbG9wdCk7Ci0gICAgZWxzZQotICAgICAgICBkaWREcmF3
KGRzdFJlY3QpOworICAgIGRpZERyYXcocmVwYWludEVudGlyZUNhbnZhcywgZHN0UmVjdCk7CiAK
ICAgICByZXR1cm4geyB9OwogfQpAQCAtMTc1MiwxMiArMTcyMCw3IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShJbWFnZUJpdG1hcCYg
aW1hZ2VCaXRtCiAgICAgfSBlbHNlCiAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVy
LCBkc3RSZWN0LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmds
b2JhbEJsZW5kIH0pOwogCi0gICAgaWYgKGlzRW50aXJlQmFja2luZ1N0b3JlRGlydHkoKSkKLSAg
ICAgICAgZGlkRHJhdyhzdGQ6Om51bGxvcHQpOwotICAgIGVsc2UgaWYgKHJlcGFpbnRFbnRpcmVD
YW52YXMpCi0gICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKLSAgICBlbHNlCi0gICAgICAg
IGRpZERyYXcoZHN0UmVjdCk7CisgICAgZGlkRHJhdyhyZXBhaW50RW50aXJlQ2FudmFzLCBkc3RS
ZWN0KTsKIAogICAgIHJldHVybiB7IH07CiB9CkBAIC0yMDkzLDYgKzIwNTYsMjQgQEAgdm9pZCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkaWREcmF3KHN0ZDo6b3B0aW9uYWw8RmxvYXRS
ZWN0PiByZWN0LCBPcHRpb24KICAgICB9CiB9CiAKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZTo6ZGlkRHJhdyhib29sIGVudGlyZUNhbnZhcywgY29uc3QgRmxvYXRSZWN0JiByZWN0
KQoreworICAgIHJldHVybiBkaWREcmF3KGVudGlyZUNhbnZhcywgWyZdIHsKKyAgICAgICAgcmV0
dXJuIHJlY3Q7CisgICAgfSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFJlY3RQcm92aWRlcj4K
K3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZGlkRHJhdyhib29sIGVudGlyZUNh
bnZhcywgUmVjdFByb3ZpZGVyIHJlY3RQcm92aWRlcikKK3sKKyAgICBpZiAoaXNFbnRpcmVCYWNr
aW5nU3RvcmVEaXJ0eSgpKQorICAgICAgICBkaWREcmF3KHN0ZDo6bnVsbG9wdCk7CisgICAgZWxz
ZSBpZiAoZW50aXJlQ2FudmFzKQorICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CisgICAg
ZWxzZQorICAgICAgICBkaWREcmF3KHJlY3RQcm92aWRlcigpKTsKK30KKwogdm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjbGVhckFjY3VtdWxhdGVkRGlydHlSZWN0KCkKIHsKICAg
ICBtX2RpcnR5UmVjdCA9IHsgfTsKQEAgLTI1MzMsMTIgKzI1MTQsNyBAQCB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdUZXh0VW5jaGVja2VkKGNvbnN0IFRleHRSdW4mIHRl
eHRSdW4sIGRvdQogICAgIH0gZWxzZQogICAgICAgICBmb250UHJveHkuZHJhd0JpZGlUZXh0KCpj
LCB0ZXh0UnVuLCBsb2NhdGlvbiwgRm9udENhc2NhZGU6OlVzZUZhbGxiYWNrSWZGb250Tm90UmVh
ZHkpOwogCi0gICAgaWYgKGlzRW50aXJlQmFja2luZ1N0b3JlRGlydHkoKSkKLSAgICAgICAgZGlk
RHJhdyhzdGQ6Om51bGxvcHQpOwotICAgIGVsc2UgaWYgKHJlcGFpbnRFbnRpcmVDYW52YXMpCi0g
ICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKLSAgICBlbHNlCi0gICAgICAgIGRpZERyYXco
dGV4dFJlY3QpOworICAgIGRpZERyYXcocmVwYWludEVudGlyZUNhbnZhcywgdGV4dFJlY3QpOwog
fQogCiBSZWY8VGV4dE1ldHJpY3M+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6Om1lYXN1
cmVUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oCmluZGV4
IGIwYjJiOTI2MWYzZDYwMjk2MDcxN2VkNWRhODQwZTJlNWYyYjMwZjIuLmQ0YWUwZTQxMGNjOTUz
ZTliNmE4N2U0MjZjM2U5ZjNlZmYzNDI0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgKQEAgLTMyNCw2
ICszMjQsOCBAQCBwcml2YXRlOgogICAgIH07CiAgICAgdm9pZCBkaWREcmF3KHN0ZDo6b3B0aW9u
YWw8RmxvYXRSZWN0PiwgT3B0aW9uU2V0PERpZERyYXdPcHRpb24+ID0geyBEaWREcmF3T3B0aW9u
OjpBcHBseVRyYW5zZm9ybSwgRGlkRHJhd09wdGlvbjo6QXBwbHlTaGFkb3csIERpZERyYXdPcHRp
b246OkFwcGx5Q2xpcCB9KTsKICAgICB2b2lkIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKKyAgICB2
b2lkIGRpZERyYXcoYm9vbCBlbnRpcmVDYW52YXMsIGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFJlY3RQcm92aWRlcj4gdm9pZCBkaWREcmF3KGJvb2wgZW50aXJlQ2Fu
dmFzLCBSZWN0UHJvdmlkZXIpOwogCiAgICAgdm9pZCBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0Nh
bnZhcygpIG92ZXJyaWRlOwogICAgIGJvb2wgbmVlZHNQcmVwYXJhdGlvbkZvckRpc3BsYXkoKSBj
b25zdCBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443371</attachid>
            <date>2021-11-04 20:34:15 -0700</date>
            <delta_ts>2021-11-04 21:08:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232527-20211105143414.patch</filename>
            <type>text/plain</type>
            <size>2790</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU4M2YzMmE5YWE1M2Q4
OGEyOWRhMGZhMzM1YzIzNzAzNDczYTJjZS4uZThlM2Q5MTMwZmIwYzlkNzkzOTNjM2FmZGQyOTAw
ZTgwYWJjYjgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEwLTI5ICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgc2VuZGlu
ZyB2aWRlbyBkYXRhIHRvIFdlYiBwcm9jZXNzIGZvciBjYW52YXMuZHJhd0ltYWdlKHZpZGVvKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzY2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzU3NjAwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCisKKyAgICAgICAgVXNpbmcgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgp
IHRvIGdldCB0aGUgaW1hZ2UgdG8gcGFpbnQgb24gdG8gdGhlCisgICAgICAgIGNhbnZhcyByZXN1
bHRzIGluIGEgU2hhcmVhYmxlQml0bWFwIGJlaW5nIGNyZWF0ZWQgdG8gc2VuZCB0byB0aGUKKyAg
ICAgICAgV2ViIHByb2Nlc3MsIHRoZSBpZGVudGlmaWVyIGZvciB3aGljaCB3ZSB0aGVuIHNlbmQg
YmFjayB0byB0aGUgR1BVCisgICAgICAgIHByb2Nlc3MgZm9yIHRoZSBkcmF3SW1hZ2UoKSBjYWxs
LiBCdXQgaWYgd2UgdXNlCisgICAgICAgIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KCksIHRo
aXMgdXNlcyB0aGUgUGFpbnRGcmFtZUZvck1lZGlhCisgICAgICAgIG1lc3NhZ2UsIHdoaWNoIGp1
c3Qgc2VuZHMgdGhlIE1lZGlhUGxheWVyIElEIGFuZCBhdm9pZHMgdGhlIGJpdG1hcAorICAgICAg
ICBjcmVhdGlvbi4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZTo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmlzUmVtb3RlIGNvbnN0KToKKwog
MjAyMS0xMS0wNCAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIE5lc3RlZCBydW4gbG9vcHMgdW5kZXIgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6d2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSBjYW4gY2F1c2UgaGFu
ZyB3aGVuIHRpbWVvdXQgZmlyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKaW5kZXggMGYyMWEwOGFm
Y2RhYzVkNWUwZWVmMzhkNDljMzE5MTAwMmNkNWYxZC4uYzczZDdlMjEzOTBlZjI3MjA4ZWE3MmQw
ODgyM2YwNDlhYzA3NmUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKQEAgLTE2NzcsMTcgKzE2
NzcsMTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6
ZHJhd0ltYWdlKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGUKICAgICBjaGVja09yaWdpbigmdmlkZW8p
OwogCiAjaWYgVVNFKENHKQotICAgIGlmIChhdXRvIGltYWdlID0gdmlkZW8ubmF0aXZlSW1hZ2VG
b3JDdXJyZW50VGltZSgpKSB7Ci0gICAgICAgIGMtPmRyYXdOYXRpdmVJbWFnZSgqaW1hZ2UsIEZs
b2F0U2l6ZSh2aWRlby52aWRlb1dpZHRoKCksIHZpZGVvLnZpZGVvSGVpZ2h0KCkpLCBkc3RSZWN0
LCBzcmNSZWN0KTsKLQotICAgICAgICBpZiAoaXNFbnRpcmVCYWNraW5nU3RvcmVEaXJ0eSgpKQot
ICAgICAgICAgICAgZGlkRHJhdyhzdGQ6Om51bGxvcHQpOwotICAgICAgICBlbHNlIGlmIChyZWN0
Q29udGFpbnNDYW52YXMoZHN0UmVjdCkpCi0gICAgICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFz
KCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRpZERyYXcoZHN0UmVjdCk7CisgICAgaWYg
KGMtPmhhc1BsYXRmb3JtQ29udGV4dCgpKSB7CisgICAgICAgIGlmIChhdXRvIGltYWdlID0gdmlk
ZW8ubmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpKSB7CisgICAgICAgICAgICBjLT5kcmF3TmF0
aXZlSW1hZ2UoKmltYWdlLCBGbG9hdFNpemUodmlkZW8udmlkZW9XaWR0aCgpLCB2aWRlby52aWRl
b0hlaWdodCgpKSwgZHN0UmVjdCwgc3JjUmVjdCk7CisKKyAgICAgICAgICAgIGlmIChpc0VudGly
ZUJhY2tpbmdTdG9yZURpcnR5KCkpCisgICAgICAgICAgICAgICAgZGlkRHJhdyhzdGQ6Om51bGxv
cHQpOworICAgICAgICAgICAgZWxzZSBpZiAocmVjdENvbnRhaW5zQ2FudmFzKGRzdFJlY3QpKQor
ICAgICAgICAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBkaWREcmF3KGRzdFJlY3QpOwogCi0gICAgICAgIHJldHVybiB7IH07
CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443374</attachid>
            <date>2021-11-04 21:08:37 -0700</date>
            <delta_ts>2021-11-04 21:52:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232527-20211105150836.patch</filename>
            <type>text/plain</type>
            <size>8572</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZThlM2Q5MTMwZmIwYzlk
NzkzOTNjM2FmZGQyOTAwZTgwYWJjYjgwYy4uZGMzNDIwZWNkY2I0YWM4ZWI1NWRkYTM3OTdhMThj
NmY5NjdhZGFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEwLTMwICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgRmFjdG9yIG91dCBk
aWREcmF3IC8gZGlkRHJhd0VudGlyZUNhbnZhcyBjYWxscyBpbiBjYW52YXMgZHJhd2luZyBmdW5j
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MjUyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQ4MzQ5NTA+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlIGV4Y2Vw
dCBmb3IgaW4gZHJhd0ltYWdlLCB3aGVyZSB0aGUKKyAgICAgICAgcGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQgY29kZSBwYXRoIG5vdyB3aWxsIGNoZWNrIHdoZXRoZXIgdG8gY2FsbAorICAgICAg
ICBkaWREcmF3RW50aXJlQ2FudmFzLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlOjpmaWxsSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c3Ryb2tlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZmlsbFJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c3Ryb2tlUmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZGlkRHJhdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3VGV4dFVu
Y2hlY2tlZCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZS5oOgorCiAyMDIxLTEwLTI5ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgQXZvaWQgc2VuZGluZyB2aWRlbyBkYXRhIHRvIFdlYiBwcm9jZXNzIGZv
ciBjYW52YXMuZHJhd0ltYWdlKHZpZGVvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAppbmRleCBjNzNk
N2UyMTM5MGVmMjcyMDhlYTcyZDA4ODIzZjA0OWFjMDc2ZTI5Li42ZGVmZWI4MTJjMzcyMmMzOGVh
MmZjOGQwNzkxZmFlMjliMTYwZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcApAQCAtMTA2MSwx
MiArMTA2MSw5IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZmlsbEludGVy
bmFsKGNvbnN0IFBhdGgmIHBhdGgsIENhbnZhc0ZpbGxSdWxlCiAgICAgfSBlbHNlCiAgICAgICAg
IGMtPmZpbGxQYXRoKHBhdGgpOwogICAgIAotICAgIGlmIChpc0VudGlyZUJhY2tpbmdTdG9yZURp
cnR5KCkpCi0gICAgICAgIGRpZERyYXcoc3RkOjpudWxsb3B0KTsKLSAgICBlbHNlIGlmIChyZXBh
aW50RW50aXJlQ2FudmFzKQotICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7Ci0gICAgZWxz
ZQotICAgICAgICBkaWREcmF3KHBhdGguZmFzdEJvdW5kaW5nUmVjdCgpKTsKKyAgICBkaWREcmF3
KHJlcGFpbnRFbnRpcmVDYW52YXMsIFsmXSB7CisgICAgICAgIHJldHVybiBwYXRoLmZhc3RCb3Vu
ZGluZ1JlY3QoKTsKKyAgICB9KTsKIAogICAgIGMtPnNldEZpbGxSdWxlKHNhdmVkRmlsbFJ1bGUp
OwogfQpAQCAtMTEwMCwxNSArMTA5NywxMSBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2U6OnN0cm9rZUludGVybmFsKGNvbnN0IFBhdGgmIHBhdGgpCiAgICAgfSBlbHNlCiAgICAg
ICAgIGMtPnN0cm9rZVBhdGgocGF0aCk7CiAKLSAgICBpZiAoaXNFbnRpcmVCYWNraW5nU3RvcmVE
aXJ0eSgpKQotICAgICAgICBkaWREcmF3KHN0ZDo6bnVsbG9wdCk7Ci0gICAgZWxzZSBpZiAocmVw
YWludEVudGlyZUNhbnZhcykKLSAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwotICAgIGVs
c2UgeworICAgIGRpZERyYXcocmVwYWludEVudGlyZUNhbnZhcywgWyZdIHsKICAgICAgICAgYXV0
byBkaXJ0eVJlY3QgPSBwYXRoLmZhc3RCb3VuZGluZ1JlY3QoKTsKICAgICAgICAgaW5mbGF0ZVN0
cm9rZVJlY3QoZGlydHlSZWN0KTsKLSAgICAgICAgZGlkRHJhdyhkaXJ0eVJlY3QpOwotICAgIH0K
KyAgICAgICAgcmV0dXJuIGRpcnR5UmVjdDsKKyAgICB9KTsKIH0KIAogdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlOjpjbGlwSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0aCwgQ2FudmFz
RmlsbFJ1bGUgd2luZGluZ1J1bGUpCkBAIC0xMjcwLDEyICsxMjYzLDcgQEAgdm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpmaWxsUmVjdChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJs
ZSB3aWR0aCwgZG8KICAgICB9IGVsc2UKICAgICAgICAgYy0+ZmlsbFJlY3QocmVjdCk7CiAKLSAg
ICBpZiAoaXNFbnRpcmVCYWNraW5nU3RvcmVEaXJ0eSgpKQotICAgICAgICBkaWREcmF3KHN0ZDo6
bnVsbG9wdCk7Ci0gICAgZWxzZSBpZiAocmVwYWludEVudGlyZUNhbnZhcykKLSAgICAgICAgZGlk
RHJhd0VudGlyZUNhbnZhcygpOwotICAgIGVsc2UKLSAgICAgICAgZGlkRHJhdyhyZWN0KTsKKyAg
ICBkaWREcmF3KHJlcGFpbnRFbnRpcmVDYW52YXMsIHJlY3QpOwogfQogCiB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREJhc2U6OnN0cm9rZVJlY3QoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3Vi
bGUgd2lkdGgsIGRvdWJsZSBoZWlnaHQpCkBAIC0xMzEwLDE1ICsxMjk4LDExIEBAIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c3Ryb2tlUmVjdChkb3VibGUgeCwgZG91YmxlIHks
IGRvdWJsZSB3aWR0aCwKICAgICB9IGVsc2UKICAgICAgICAgYy0+c3Ryb2tlUmVjdChyZWN0LCBz
dGF0ZSgpLmxpbmVXaWR0aCk7CiAKLSAgICBpZiAoaXNFbnRpcmVCYWNraW5nU3RvcmVEaXJ0eSgp
KQotICAgICAgICBkaWREcmF3KHN0ZDo6bnVsbG9wdCk7Ci0gICAgZWxzZSBpZiAocmVwYWludEVu
dGlyZUNhbnZhcykKLSAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwotICAgIGVsc2Ugewor
ICAgIGRpZERyYXcocmVwYWludEVudGlyZUNhbnZhcywgWyZdIHsKICAgICAgICAgYXV0byBib3Vu
ZGluZ1JlY3QgPSByZWN0OwogICAgICAgICBib3VuZGluZ1JlY3QuaW5mbGF0ZShzdGF0ZSgpLmxp
bmVXaWR0aCAvIDIpOwotICAgICAgICBkaWREcmF3KGJvdW5kaW5nUmVjdCk7Ci0gICAgfQorICAg
ICAgICByZXR1cm4gYm91bmRpbmdSZWN0OworICAgIH0pOwogfQogCiB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2U6OnNldFNoYWRvdyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBm
bG9hdCBibHVyLCBjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBzdGQ6Om9wdGlvbmFsPGZsb2F0
PiBhbHBoYSkKQEAgLTE1ODIsMTIgKzE1NjYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UoRG9jdW1lbnQmIGRvY3VtZW50LCBDYQog
ICAgIH0gZWxzZQogICAgICAgICBjLT5kcmF3SW1hZ2VGb3JDYW52YXMoKmltYWdlLCBub3JtYWxp
emVkRHN0UmVjdCwgbm9ybWFsaXplZFNyY1JlY3QsIG9wdGlvbnMsIGNvbG9yU3BhY2UoKSk7CiAK
LSAgICBpZiAoaXNFbnRpcmVCYWNraW5nU3RvcmVEaXJ0eSgpKQotICAgICAgICBkaWREcmF3KHN0
ZDo6bnVsbG9wdCk7Ci0gICAgZWxzZSBpZiAocmVwYWludEVudGlyZUNhbnZhcykKLSAgICAgICAg
ZGlkRHJhd0VudGlyZUNhbnZhcygpOwotICAgIGVsc2UKLSAgICAgICAgZGlkRHJhdyhub3JtYWxp
emVkRHN0UmVjdCk7CisgICAgZGlkRHJhdyhyZXBhaW50RW50aXJlQ2FudmFzLCBub3JtYWxpemVk
RHN0UmVjdCk7CiAKICAgICBpZiAoaW1hZ2UtPmRyYXdzU1ZHSW1hZ2UoKSkKICAgICAgICAgaW1h
Z2UtPnNldEltYWdlT2JzZXJ2ZXIob2JzZXJ2ZXIpOwpAQCAtMTY0NCwxMiArMTYyMyw3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShD
YW52YXNCYXNlJiBzb3VyY2VDYW52CiAgICAgfSBlbHNlCiAgICAgICAgIGMtPmRyYXdJbWFnZUJ1
ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRl
LCBzdGF0ZSgpLmdsb2JhbEJsZW5kIH0pOwogCi0gICAgaWYgKGlzRW50aXJlQmFja2luZ1N0b3Jl
RGlydHkoKSkKLSAgICAgICAgZGlkRHJhdyhzdGQ6Om51bGxvcHQpOwotICAgIGVsc2UgaWYgKHJl
cGFpbnRFbnRpcmVDYW52YXMpCi0gICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKLSAgICBl
bHNlCi0gICAgICAgIGRpZERyYXcoZHN0UmVjdCk7CisgICAgZGlkRHJhdyhyZXBhaW50RW50aXJl
Q2FudmFzLCBkc3RSZWN0KTsKIAogICAgIHJldHVybiB7IH07CiB9CkBAIC0xNjc2LDE3ICsxNjUw
LDE0IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRy
YXdJbWFnZShIVE1MVmlkZW9FbGVtZW50JiB2aWRlCiAKICAgICBjaGVja09yaWdpbigmdmlkZW8p
OwogCisgICAgYm9vbCByZXBhaW50RW50aXJlQ2FudmFzID0gcmVjdENvbnRhaW5zQ2FudmFzKGRz
dFJlY3QpOworCiAjaWYgVVNFKENHKQogICAgIGlmIChjLT5oYXNQbGF0Zm9ybUNvbnRleHQoKSkg
ewogICAgICAgICBpZiAoYXV0byBpbWFnZSA9IHZpZGVvLm5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKSkgewogICAgICAgICAgICAgYy0+ZHJhd05hdGl2ZUltYWdlKCppbWFnZSwgRmxvYXRTaXpl
KHZpZGVvLnZpZGVvV2lkdGgoKSwgdmlkZW8udmlkZW9IZWlnaHQoKSksIGRzdFJlY3QsIHNyY1Jl
Y3QpOwogCi0gICAgICAgICAgICBpZiAoaXNFbnRpcmVCYWNraW5nU3RvcmVEaXJ0eSgpKQotICAg
ICAgICAgICAgICAgIGRpZERyYXcoc3RkOjpudWxsb3B0KTsKLSAgICAgICAgICAgIGVsc2UgaWYg
KHJlY3RDb250YWluc0NhbnZhcyhkc3RSZWN0KSkKLSAgICAgICAgICAgICAgICBkaWREcmF3RW50
aXJlQ2FudmFzKCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZGlkRHJhdyhk
c3RSZWN0KTsKKyAgICAgICAgICAgIGRpZERyYXcocmVwYWludEVudGlyZUNhbnZhcywgZHN0UmVj
dCk7CiAKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KQEAgLTE3MDEsMTAgKzE2
NzIsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpk
cmF3SW1hZ2UoSFRNTFZpZGVvRWxlbWVudCYgdmlkZQogICAgIHZpZGVvLnBhaW50Q3VycmVudEZy
YW1lSW5Db250ZXh0KCpjLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBzaXplKHZpZGVvKSkpOwog
ICAgIHN0YXRlU2F2ZXIucmVzdG9yZSgpOwogCi0gICAgaWYgKGlzRW50aXJlQmFja2luZ1N0b3Jl
RGlydHkoKSkKLSAgICAgICAgZGlkRHJhdyhzdGQ6Om51bGxvcHQpOwotICAgIGVsc2UKLSAgICAg
ICAgZGlkRHJhdyhkc3RSZWN0KTsKKyAgICBkaWREcmF3KHJlcGFpbnRFbnRpcmVDYW52YXMsIGRz
dFJlY3QpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTE3NTIsMTIgKzE3MjAsNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UoSW1h
Z2VCaXRtYXAmIGltYWdlQml0bQogICAgIH0gZWxzZQogICAgICAgICBjLT5kcmF3SW1hZ2VCdWZm
ZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgeyBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwg
c3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKIAotICAgIGlmIChpc0VudGlyZUJhY2tpbmdTdG9yZURp
cnR5KCkpCi0gICAgICAgIGRpZERyYXcoc3RkOjpudWxsb3B0KTsKLSAgICBlbHNlIGlmIChyZXBh
aW50RW50aXJlQ2FudmFzKQotICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7Ci0gICAgZWxz
ZQotICAgICAgICBkaWREcmF3KGRzdFJlY3QpOworICAgIGRpZERyYXcocmVwYWludEVudGlyZUNh
bnZhcywgZHN0UmVjdCk7CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtMjA5Myw2ICsyMDU2LDI0
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZGlkRHJhdyhzdGQ6Om9wdGlv
bmFsPEZsb2F0UmVjdD4gcmVjdCwgT3B0aW9uCiAgICAgfQogfQogCit2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2U6OmRpZERyYXcoYm9vbCBlbnRpcmVDYW52YXMsIGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKK3sKKyAgICByZXR1cm4gZGlkRHJhdyhlbnRpcmVDYW52YXMsIFsmXSB7Cisg
ICAgICAgIHJldHVybiByZWN0OworICAgIH0pOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBSZWN0
UHJvdmlkZXI+Cit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRpZERyYXcoYm9v
bCBlbnRpcmVDYW52YXMsIFJlY3RQcm92aWRlciByZWN0UHJvdmlkZXIpCit7CisgICAgaWYgKGlz
RW50aXJlQmFja2luZ1N0b3JlRGlydHkoKSkKKyAgICAgICAgZGlkRHJhdyhzdGQ6Om51bGxvcHQp
OworICAgIGVsc2UgaWYgKGVudGlyZUNhbnZhcykKKyAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZh
cygpOworICAgIGVsc2UKKyAgICAgICAgZGlkRHJhdyhyZWN0UHJvdmlkZXIoKSk7Cit9CisKIHZv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Y2xlYXJBY2N1bXVsYXRlZERpcnR5UmVj
dCgpCiB7CiAgICAgbV9kaXJ0eVJlY3QgPSB7IH07CkBAIC0yNTMzLDEyICsyNTE0LDcgQEAgdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3VGV4dFVuY2hlY2tlZChjb25zdCBU
ZXh0UnVuJiB0ZXh0UnVuLCBkb3UKICAgICB9IGVsc2UKICAgICAgICAgZm9udFByb3h5LmRyYXdC
aWRpVGV4dCgqYywgdGV4dFJ1biwgbG9jYXRpb24sIEZvbnRDYXNjYWRlOjpVc2VGYWxsYmFja0lm
Rm9udE5vdFJlYWR5KTsKIAotICAgIGlmIChpc0VudGlyZUJhY2tpbmdTdG9yZURpcnR5KCkpCi0g
ICAgICAgIGRpZERyYXcoc3RkOjpudWxsb3B0KTsKLSAgICBlbHNlIGlmIChyZXBhaW50RW50aXJl
Q2FudmFzKQotICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7Ci0gICAgZWxzZQotICAgICAg
ICBkaWREcmF3KHRleHRSZWN0KTsKKyAgICBkaWREcmF3KHJlcGFpbnRFbnRpcmVDYW52YXMsIHRl
eHRSZWN0KTsKIH0KIAogUmVmPFRleHRNZXRyaWNzPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlOjptZWFzdXJlVGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2UuaAppbmRleCBiMGIyYjkyNjFmM2Q2MDI5NjA3MTdlZDVkYTg0MGUyZTVmMmIzMGYyLi5kNGFl
MGU0MTBjYzk1M2U5YjZhODdlNDI2YzNlOWYzZWZmMzQyNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5o
CkBAIC0zMjQsNiArMzI0LDggQEAgcHJpdmF0ZToKICAgICB9OwogICAgIHZvaWQgZGlkRHJhdyhz
dGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4sIE9wdGlvblNldDxEaWREcmF3T3B0aW9uPiA9IHsgRGlk
RHJhd09wdGlvbjo6QXBwbHlUcmFuc2Zvcm0sIERpZERyYXdPcHRpb246OkFwcGx5U2hhZG93LCBE
aWREcmF3T3B0aW9uOjpBcHBseUNsaXAgfSk7CiAgICAgdm9pZCBkaWREcmF3RW50aXJlQ2FudmFz
KCk7CisgICAgdm9pZCBkaWREcmF3KGJvb2wgZW50aXJlQ2FudmFzLCBjb25zdCBGbG9hdFJlY3Qm
KTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSZWN0UHJvdmlkZXI+IHZvaWQgZGlkRHJhdyhib29s
IGVudGlyZUNhbnZhcywgUmVjdFByb3ZpZGVyKTsKIAogICAgIHZvaWQgcGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMoKSBvdmVycmlkZTsKICAgICBib29sIG5lZWRzUHJlcGFyYXRpb25Gb3JE
aXNwbGF5KCkgY29uc3QgZmluYWw7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>