<?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>202182</bug_id>
          
          <creation_ts>2019-09-24 21:18:14 -0700</creation_ts>
          <short_desc>[LFC][IFC] Use existing Line::Content::LineBox to track the current line geometry</short_desc>
          <delta_ts>2019-09-25 07:33:11 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1573941</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-09-24 21:18:14 -0700</bug_when>
    <thetext>Currently Line has 
    LayoutPoint m_logicalTopLeft;
    LayoutUnit m_contentLogicalWidth;
    LayoutUnit m_lineLogicalHeight;

    LineBox::Baseline m_baseline;
    LayoutUnit m_baselineTop;

Use Line&apos;s m_content-&gt;lineBox() instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573942</commentid>
    <comment_count>1</comment_count>
      <attachid>379525</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-24 21:22:54 -0700</bug_when>
    <thetext>Created attachment 379525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573953</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-24 23:00:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/55692712&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574043</commentid>
    <comment_count>3</comment_count>
      <attachid>379525</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-25 07:33:09 -0700</bug_when>
    <thetext>Comment on attachment 379525
Patch

Clearing flags on attachment: 379525

Committed r250342: &lt;https://trac.webkit.org/changeset/250342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574044</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-25 07:33:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379525</attachid>
            <date>2019-09-24 21:22:54 -0700</date>
            <delta_ts>2019-09-25 07:33:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202182-20190924212252.patch</filename>
            <type>text/plain</type>
            <size>21102</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY1ZjlkMzlmOWM4MzVm
YjAyMzg3NDY0OWNkZTBlMzYxNTkxZjBmMC4uOWZiMTNmN2VmZTU3NTk3ZjJjMGZjNDA1NDMyY2I2
MTM5NjJhZThkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE5LTA5LTI0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBVc2UgZXhp
c3RpbmcgTGluZTo6Q29udGVudDo6TGluZUJveCB0byB0cmFjayB0aGUgY3VycmVudCBsaW5lIGdl
b21ldHJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDIxODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIHJlbW92ZXMgdGhlIHJlZHVuZGFudCBMaW5lOjptX2xvZ2ljYWxUb3BMZWZ0LCBt
X2NvbnRlbnRMb2dpY2FsV2lkdGgsIG1fbGluZUxvZ2ljYWxIZWlnaHQsIG1fYmFzZWxpbmUsIG1f
YmFzZWxpbmVUb3AgbWVtYmVycworICAgICAgICBhbmQgc3dpdGNoZXMgb3ZlciB0byBMaW5lOjpt
X2NvbnRlbnQncyBMaW5lQm94LiAKKworICAgICAgICAqIGxheW91dC9kaXNwbGF5dHJlZS9EaXNw
bGF5UmVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UmVjdDo6UmVjdCk6CisgICAg
ICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpM
aW5lOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OnJlbW92ZVRyYWls
aW5nVHJpbW1hYmxlQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6Om1v
dmVMb2dpY2FsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZE5v
bkJyZWFrYWJsZVNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5k
VGV4dENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmROb25S
ZXBsYWNlZElubGluZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFkanVz
dEJhc2VsaW5lQW5kTGluZUhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Om1fc2tp
cFZlcnRpY2FsQWxpZ21lbnQpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6Q29u
dGVudDo6bGluZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmNvbnRlbnRM
b2dpY2FsUmlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpsb2dp
Y2FsVG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6bG9naWNhbEJv
dHRvbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmxvZ2ljYWxMZWZ0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6bG9naWNhbEhlaWdodCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmNvbnRlbnRMb2dpY2FsV2lk
dGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpiYXNlbGluZU9mZnNl
dCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJv
eC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpzZXRMb2dpY2FsVG9wTGVm
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OnNldExvZ2ljYWxIZWlnaHQp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpzZXRMb2dpY2FsV2lkdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94Ojptb3ZlSG9yaXpvbnRhbGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6ZXhwYW5kSG9yaXpvbnRhbGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6c2hyaW5rSG9yaXpvbnRhbGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6ZXhwYW5kVmVydGljYWxseSk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OnNocmlua1ZlcnRpY2FsbHkpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpMaW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGluZUJveDo6c2V0TG9naWNhbEhlaWdodElmR3JlYXRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OnNldEJhc2VsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGluZUJveDo6YmFzZWxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpMaW5lQm94OjpiYXNlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVC
b3g6OnNldEJhc2VsaW5lT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJv
eDo6QmFzZWxpbmU6OnNldEFzY2VudElmR3JlYXRlcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVCb3g6OkJhc2VsaW5lOjpzZXREZXNjZW50SWZHcmVhdGVyKToKKwogMjAxOS0wOS0y
MyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10g
TGluZTo6Q29udGVudCBzaG91bGQgdXNlIExpbmVCb3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UmVjdC5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlSZWN0LmgKaW5kZXggNzJjODk3ZWFjNDk4MWYyMWQwNjBk
YjQ1YmNjYWZmMmIyYTIzNTY0ZC4uYmQyZDc5YTM2ZjY5OTliZjZhYjZhYzcyYjM3ZGZiZjgzZWVm
Njg4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3Bs
YXlSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlS
ZWN0LmgKQEAgLTM5LDYgKzM5LDcgQEAgY2xhc3MgUmVjdCB7CiBwdWJsaWM6CiAgICAgUmVjdCgp
ID0gZGVmYXVsdDsKICAgICBSZWN0KExheW91dFVuaXQgdG9wLCBMYXlvdXRVbml0IGxlZnQsIExh
eW91dFVuaXQgd2lkdGgsIExheW91dFVuaXQgaGVpZ2h0KTsKKyAgICBSZWN0KExheW91dFBvaW50
IHRvcExlZnQsIExheW91dFVuaXQgd2lkdGgsIExheW91dFVuaXQgaGVpZ2h0KTsKICAgICAKICAg
ICBMYXlvdXRVbml0IHRvcCgpIGNvbnN0OwogICAgIExheW91dFVuaXQgbGVmdCgpIGNvbnN0OwpA
QCAtMTA5LDYgKzExMCwxMSBAQCBpbmxpbmUgUmVjdDo6UmVjdChMYXlvdXRVbml0IHRvcCwgTGF5
b3V0VW5pdCBsZWZ0LCBMYXlvdXRVbml0IHdpZHRoLCBMYXlvdXRVbml0CiAjZW5kaWYKIH0KIAor
aW5saW5lIFJlY3Q6OlJlY3QoTGF5b3V0UG9pbnQgdG9wTGVmdCwgTGF5b3V0VW5pdCB3aWR0aCwg
TGF5b3V0VW5pdCBoZWlnaHQpCisgICAgOiBSZWN0KHRvcExlZnQueSgpLCB0b3BMZWZ0LngoKSwg
d2lkdGgsIGhlaWdodCkKK3sKK30KKwogI2lmICFBU1NFUlRfRElTQUJMRUQKIGlubGluZSB2b2lk
IFJlY3Q6OmludmFsaWRhdGVQb3NpdGlvbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCmluZGV4IDZkYzIxOTZlMTBj
NzU1ZGFjOTBjZTZiNjNkMDUyOGRhZDY3OGI2YjYuLjI5MjIwM2NjNWRlNWI4ZmMxZjU2NTM2YjVl
YzkzZTgxNzJlYmJkN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCkBAIC01NSwxMyArNTUsMTMgQEAgTGluZTo6Q29u
dGVudDo6UnVuOjpSdW4oY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgY29uc3QgVGV4dENv
bnRleHQmIHRleHRDb24KIExpbmU6OkxpbmUoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQm
IGlubGluZUZvcm1hdHRpbmdDb250ZXh0LCBjb25zdCBJbml0aWFsQ29uc3RyYWludHMmIGluaXRp
YWxDb25zdHJhaW50cywgU2tpcFZlcnRpY2FsQWxpZ21lbnQgc2tpcFZlcnRpY2FsQWxpZ21lbnQp
CiAgICAgOiBtX2lubGluZUZvcm1hdHRpbmdDb250ZXh0KGlubGluZUZvcm1hdHRpbmdDb250ZXh0
KQogICAgICwgbV9jb250ZW50KG1ha2VVbmlxdWU8TGluZTo6Q29udGVudD4oKSkKLSAgICAsIG1f
bG9naWNhbFRvcExlZnQoaW5pdGlhbENvbnN0cmFpbnRzLmxvZ2ljYWxUb3BMZWZ0KQotICAgICwg
bV9iYXNlbGluZSh7IGluaXRpYWxDb25zdHJhaW50cy5oZWlnaHRBbmRCYXNlbGluZS5iYXNlbGlu
ZU9mZnNldCwgaW5pdGlhbENvbnN0cmFpbnRzLmhlaWdodEFuZEJhc2VsaW5lLmhlaWdodCAtIGlu
aXRpYWxDb25zdHJhaW50cy5oZWlnaHRBbmRCYXNlbGluZS5iYXNlbGluZU9mZnNldCB9KQogICAg
ICwgbV9pbml0aWFsU3RydXQoaW5pdGlhbENvbnN0cmFpbnRzLmhlaWdodEFuZEJhc2VsaW5lLnN0
cnV0KQotICAgICwgbV9saW5lTG9naWNhbEhlaWdodChpbml0aWFsQ29uc3RyYWludHMuaGVpZ2h0
QW5kQmFzZWxpbmUuaGVpZ2h0KQogICAgICwgbV9saW5lTG9naWNhbFdpZHRoKGluaXRpYWxDb25z
dHJhaW50cy5hdmFpbGFibGVMb2dpY2FsV2lkdGgpCiAgICAgLCBtX3NraXBWZXJ0aWNhbEFsaWdt
ZW50KHNraXBWZXJ0aWNhbEFsaWdtZW50ID09IFNraXBWZXJ0aWNhbEFsaWdtZW50OjpZZXMpCiB7
CisgICAgYXV0byBsaW5lUmVjdCA9IERpc3BsYXk6OlJlY3QgeyBpbml0aWFsQ29uc3RyYWludHMu
bG9naWNhbFRvcExlZnQsIHsgfSwgaW5pdGlhbENvbnN0cmFpbnRzLmhlaWdodEFuZEJhc2VsaW5l
LmhlaWdodCB9OworICAgIGF1dG8gYmFzZWxpbmUgPSBMaW5lQm94OjpCYXNlbGluZSB7IGluaXRp
YWxDb25zdHJhaW50cy5oZWlnaHRBbmRCYXNlbGluZS5iYXNlbGluZU9mZnNldCwgaW5pdGlhbENv
bnN0cmFpbnRzLmhlaWdodEFuZEJhc2VsaW5lLmhlaWdodCAtIGluaXRpYWxDb25zdHJhaW50cy5o
ZWlnaHRBbmRCYXNlbGluZS5iYXNlbGluZU9mZnNldCB9OworICAgIG1fY29udGVudC0+c2V0TGlu
ZUJveChMaW5lQm94IHsgbGluZVJlY3QsIGJhc2VsaW5lLCB7IH0gfSk7CiB9CiAKIHN0YXRpYyBi
b29sIGlzSW5saW5lQ29udGFpbmVyQ29uc2lkZXJlZEVtcHR5KGNvbnN0IEZvcm1hdHRpbmdDb250
ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCkBAIC0xMDIsMTcg
KzEwMiwxOCBAQCBib29sIExpbmU6OmlzVmlzdWFsbHlFbXB0eSgpIGNvbnN0CiBzdGQ6OnVuaXF1
ZV9wdHI8TGluZTo6Q29udGVudD4gTGluZTo6Y2xvc2UoKQogewogICAgIHJlbW92ZVRyYWlsaW5n
VHJpbW1hYmxlQ29udGVudCgpOworICAgIGF1dG8mIGxpbmVCb3ggPSBtX2NvbnRlbnQtPmxpbmVC
b3goKTsKICAgICBpZiAoIW1fc2tpcFZlcnRpY2FsQWxpZ21lbnQpIHsKICAgICAgICAgaWYgKGlz
VmlzdWFsbHlFbXB0eSgpKSB7Ci0gICAgICAgICAgICBtX2Jhc2VsaW5lLnJlc2V0KCk7Ci0gICAg
ICAgICAgICBtX2Jhc2VsaW5lVG9wID0geyB9OwotICAgICAgICAgICAgbV9saW5lTG9naWNhbEhl
aWdodCA9IHsgfTsKKyAgICAgICAgICAgIGxpbmVCb3guYmFzZWxpbmUoKS5yZXNldCgpOworICAg
ICAgICAgICAgbGluZUJveC5zZXRCYXNlbGluZU9mZnNldCh7IH0pOworICAgICAgICAgICAgbGlu
ZUJveC5zZXRMb2dpY2FsSGVpZ2h0KHsgfSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBSZW1v
dmUgZGVzY2VudCB3aGVuIGFsbCBjb250ZW50IGlzIGJhc2VsaW5lIGFsaWduZWQgYnV0IG5vbmUg
b2YgdGhlbSBoYXZlIGRlc2NlbnQuCiAgICAgICAgIGlmIChmb3JtYXR0aW5nQ29udGV4dCgpLnF1
aXJrcygpLmxpbmVEZXNjZW50TmVlZHNDb2xsYXBzaW5nKCptX2NvbnRlbnQpKSB7Ci0gICAgICAg
ICAgICBtX2xpbmVMb2dpY2FsSGVpZ2h0IC09IG1fYmFzZWxpbmUuZGVzY2VudCgpOwotICAgICAg
ICAgICAgbV9iYXNlbGluZS5zZXREZXNjZW50KHsgfSk7CisgICAgICAgICAgICBsaW5lQm94LnNo
cmlua1ZlcnRpY2FsbHkobGluZUJveC5iYXNlbGluZSgpLmRlc2NlbnQoKSk7CisgICAgICAgICAg
ICBsaW5lQm94LmJhc2VsaW5lKCkuc2V0RGVzY2VudCh7IH0pOwogICAgICAgICB9CiAKICAgICAg
ICAgYXV0byYgbGF5b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0ZSgpOwpAQCAtMTU1LDcgKzE1
Niw2IEBAIHN0ZDo6dW5pcXVlX3B0cjxMaW5lOjpDb250ZW50PiBMaW5lOjpjbG9zZSgpCiAgICAg
ICAgICAgICBydW4tPm1vdmVIb3Jpem9udGFsbHkodGhpcy0+bG9naWNhbExlZnQoKSk7CiAgICAg
ICAgIH0KICAgICB9Ci0gICAgbV9jb250ZW50LT5zZXRMaW5lQm94KExpbmVCb3ggeyBEaXNwbGF5
OjpSZWN0IHsgbG9naWNhbFRvcCgpLCBsb2dpY2FsTGVmdCgpLCBjb250ZW50TG9naWNhbFdpZHRo
KCksIGxvZ2ljYWxIZWlnaHQoKSB9LCBtX2Jhc2VsaW5lLCBiYXNlbGluZU9mZnNldCgpIH0pOwog
ICAgIHJldHVybiBXVEZNb3ZlKG1fY29udGVudCk7CiB9CiAKQEAgLTE2OCw3ICsxNjgsNyBAQCB2
b2lkIExpbmU6OnJlbW92ZVRyYWlsaW5nVHJpbW1hYmxlQ29udGVudCgpCiAgICAgICAgIHRyaW1t
YWJsZVJ1bi0+c2V0VGV4dElzQ29sbGFwc2VkKCk7CiAgICAgICAgIHRyaW1tYWJsZVdpZHRoICs9
IHRyaW1tYWJsZVJ1bi0+bG9naWNhbFJlY3QoKS53aWR0aCgpOwogICAgIH0KLSAgICBtX2NvbnRl
bnRMb2dpY2FsV2lkdGggLT0gdHJpbW1hYmxlV2lkdGg7CisgICAgbV9jb250ZW50LT5saW5lQm94
KCkuc2hyaW5rSG9yaXpvbnRhbGx5KHRyaW1tYWJsZVdpZHRoKTsKIH0KIAogdm9pZCBMaW5lOjpt
b3ZlTG9naWNhbExlZnQoTGF5b3V0VW5pdCBkZWx0YSkKQEAgLTE3Niw4ICsxNzYsNyBAQCB2b2lk
IExpbmU6Om1vdmVMb2dpY2FsTGVmdChMYXlvdXRVbml0IGRlbHRhKQogICAgIGlmICghZGVsdGEp
CiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQoZGVsdGEgPiAwKTsKLSAgICAvLyBTaHJpbmsg
dGhlIGxpbmUgYW5kIG1vdmUgdGhlIGl0ZW1zLgotICAgIG1fbG9naWNhbFRvcExlZnQubW92ZShk
ZWx0YSwgMCk7CisgICAgbV9jb250ZW50LT5saW5lQm94KCkubW92ZUhvcml6b250YWxseShkZWx0
YSk7CiAgICAgbV9saW5lTG9naWNhbFdpZHRoIC09IGRlbHRhOwogfQogCkBAIC0yMTUsNyArMjE0
LDcgQEAgdm9pZCBMaW5lOjphcHBlbmQoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgpCiB2b2lkIExpbmU6OmFwcGVuZE5vbkJyZWFrYWJsZVNwYWNl
KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IERpc3BsYXk6OlJlY3QmIGxvZ2lj
YWxSZWN0KQogewogICAgIG1fY29udGVudC0+cnVucygpLmFwcGVuZChtYWtlVW5pcXVlPENvbnRl
bnQ6OlJ1bj4oaW5saW5lSXRlbSwgbG9naWNhbFJlY3QpKTsKLSAgICBtX2NvbnRlbnRMb2dpY2Fs
V2lkdGggKz0gbG9naWNhbFJlY3Qud2lkdGgoKTsKKyAgICBtX2NvbnRlbnQtPmxpbmVCb3goKS5l
eHBhbmRIb3Jpem9udGFsbHkobG9naWNhbFJlY3Qud2lkdGgoKSk7CiB9CiAKIHZvaWQgTGluZTo6
YXBwZW5kSW5saW5lQ29udGFpbmVyU3RhcnQoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwg
TGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCkBAIC0yODgsNyArMjg3LDggQEAgdm9pZCBMaW5lOjph
cHBlbmRUZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0
VW5pdCBsb2dpY2EKICAgICAgICAgbV90cmltbWFibGVDb250ZW50LmFkZChsaW5lSXRlbS5nZXQo
KSk7CiAKICAgICBtX2NvbnRlbnQtPnJ1bnMoKS5hcHBlbmQoV1RGTW92ZShsaW5lSXRlbSkpOwot
ICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCArPSBpc0NvbXBsZXRlbHlDb2xsYXBzZWQgPyBMYXlv
dXRVbml0KCkgOiBsb2dpY2FsV2lkdGg7CisgICAgaWYgKCFpc0NvbXBsZXRlbHlDb2xsYXBzZWQp
CisgICAgICAgIG1fY29udGVudC0+bGluZUJveCgpLmV4cGFuZEhvcml6b250YWxseShsb2dpY2Fs
V2lkdGgpOwogfQogCiB2b2lkIExpbmU6OmFwcGVuZE5vblJlcGxhY2VkSW5saW5lQm94KGNvbnN0
IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIExheW91dFVuaXQgbG9naWNhbFdpZHRoKQpAQCAtMzA1
LDcgKzMwNSw3IEBAIHZvaWQgTGluZTo6YXBwZW5kTm9uUmVwbGFjZWRJbmxpbmVCb3goY29uc3Qg
SW5saW5lSXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5pdCBsCiAgICAgfQogCiAgICAgbV9jb250
ZW50LT5ydW5zKCkuYXBwZW5kKG1ha2VVbmlxdWU8Q29udGVudDo6UnVuPihpbmxpbmVJdGVtLCBs
b2dpY2FsUmVjdCkpOwotICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCArPSAobG9naWNhbFdpZHRo
ICsgaG9yaXpvbnRhbE1hcmdpbi5zdGFydCArIGhvcml6b250YWxNYXJnaW4uZW5kKTsKKyAgICBt
X2NvbnRlbnQtPmxpbmVCb3goKS5leHBhbmRIb3Jpem9udGFsbHkobG9naWNhbFdpZHRoICsgaG9y
aXpvbnRhbE1hcmdpbi5zdGFydCArIGhvcml6b250YWxNYXJnaW4uZW5kKTsKICAgICBtX3RyaW1t
YWJsZUNvbnRlbnQuY2xlYXIoKTsKIH0KIApAQCAtMzMyLDYgKzMzMiw4IEBAIHZvaWQgTGluZTo6
YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0s
IExheW91dFVuaXQKICAgICBBU1NFUlQoIWlubGluZUl0ZW0uaXNDb250YWluZXJFbmQoKSk7CiAg
ICAgYXV0byYgbGF5b3V0Qm94ID0gaW5saW5lSXRlbS5sYXlvdXRCb3goKTsKICAgICBhdXRvJiBz
dHlsZSA9IGxheW91dEJveC5zdHlsZSgpOworICAgIGF1dG8mIGxpbmVCb3ggPSBtX2NvbnRlbnQt
PmxpbmVCb3goKTsKKyAgICBhdXRvJiBiYXNlbGluZSA9IGxpbmVCb3guYmFzZWxpbmUoKTsKIAog
ICAgIGlmIChpbmxpbmVJdGVtLmlzQ29udGFpbmVyU3RhcnQoKSkgewogICAgICAgICAvLyBJbmxp
bmUgY29udGFpbmVycyBzdHJldGNoIHRoZSBsaW5lIGJ5IHRoZWlyIGZvbnQgc2l6ZS4KQEAgLTM0
MiwxNCArMzQ0LDEzIEBAIHZvaWQgTGluZTo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KGNv
bnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIExheW91dFVuaXQKICAgICAgICAgICAgIGF1dG8g
aGFsZkxlYWRpbmcgPSBoYWxmTGVhZGluZ01ldHJpY3MoZm9udE1ldHJpY3MsIHN0eWxlLmNvbXB1
dGVkTGluZUhlaWdodCgpKTsKICAgICAgICAgICAgIC8vIEJvdGggaGFsZmxlYWRpbmcgYXNjZW50
IGFuZCBkZXNjZW50IGNvdWxkIGJlIG5lZ2F0aXZlICh0YWxsIGZvbnQgdnMuIHNtYWxsIGxpbmUt
aGVpZ2h0IHZhbHVlKQogICAgICAgICAgICAgaWYgKGhhbGZMZWFkaW5nLmRlc2NlbnQoKSA+IDAp
Ci0gICAgICAgICAgICAgICAgbV9iYXNlbGluZS5zZXREZXNjZW50KHN0ZDo6bWF4KG1fYmFzZWxp
bmUuZGVzY2VudCgpLCBoYWxmTGVhZGluZy5kZXNjZW50KCkpKTsKKyAgICAgICAgICAgICAgICBi
YXNlbGluZS5zZXREZXNjZW50SWZHcmVhdGVyKGhhbGZMZWFkaW5nLmRlc2NlbnQoKSk7CiAgICAg
ICAgICAgICBpZiAoaGFsZkxlYWRpbmcuYXNjZW50KCkgPiAwKQotICAgICAgICAgICAgICAgIG1f
YmFzZWxpbmUuc2V0QXNjZW50KHN0ZDo6bWF4KG1fYmFzZWxpbmUuYXNjZW50KCksIGhhbGZMZWFk
aW5nLmFzY2VudCgpKSk7Ci0gICAgICAgICAgICBjb250ZW50SGVpZ2h0ID0gbV9iYXNlbGluZS5o
ZWlnaHQoKTsKKyAgICAgICAgICAgICAgICBiYXNlbGluZS5zZXRBc2NlbnRJZkdyZWF0ZXIoaGFs
ZkxlYWRpbmcuYXNjZW50KCkpOworICAgICAgICAgICAgY29udGVudEhlaWdodCA9IGJhc2VsaW5l
LmhlaWdodCgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGNvbnRlbnRIZWlnaHQgPSBm
b250TWV0cmljcy5oZWlnaHQoKTsKLSAgICAgICAgbV9saW5lTG9naWNhbEhlaWdodCA9IHN0ZDo6
bWF4KG1fbGluZUxvZ2ljYWxIZWlnaHQsIGNvbnRlbnRIZWlnaHQpOwotICAgICAgICBtX2Jhc2Vs
aW5lVG9wID0gc3RkOjptYXgobV9iYXNlbGluZVRvcCwgbV9saW5lTG9naWNhbEhlaWdodCAtIG1f
YmFzZWxpbmUuaGVpZ2h0KCkpOworICAgICAgICBsaW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdy
ZWF0ZXIoY29udGVudEhlaWdodCwgTGluZUJveDo6QWRqdXN0QmFzZWxpbmU6Olllcyk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM1OCwxMCArMzU5LDkgQEAgdm9pZCBMaW5lOjphZGp1
c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgTGF5
b3V0VW5pdAogICAgICAgICAvLyB0aHJvdWdoIHRoZSBpbmxpbmUgY29udGFpbmVyIChzdGFydCkg
LXNlZSBhYm92ZS4gTm9ybWFsbHkgdGhlIHRleHQgY29udGVudCBpdHNlbGYgZG9lcyBub3Qgc3Ry
ZXRjaCB0aGUgbGluZS4KICAgICAgICAgaWYgKCFtX2luaXRpYWxTdHJ1dCkKICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgbV9iYXNlbGluZS5zZXRBc2NlbnQoc3RkOjptYXgobV9pbml0aWFs
U3RydXQtPmFzY2VudCgpLCBtX2Jhc2VsaW5lLmFzY2VudCgpKSk7Ci0gICAgICAgIG1fYmFzZWxp
bmUuc2V0RGVzY2VudChzdGQ6Om1heChtX2luaXRpYWxTdHJ1dC0+ZGVzY2VudCgpLCBtX2Jhc2Vs
aW5lLmRlc2NlbnQoKSkpOwotICAgICAgICBtX2xpbmVMb2dpY2FsSGVpZ2h0ID0gc3RkOjptYXgo
bV9saW5lTG9naWNhbEhlaWdodCwgbV9iYXNlbGluZS5oZWlnaHQoKSk7Ci0gICAgICAgIG1fYmFz
ZWxpbmVUb3AgPSBzdGQ6Om1heChtX2Jhc2VsaW5lVG9wLCBtX2xpbmVMb2dpY2FsSGVpZ2h0IC0g
bV9iYXNlbGluZS5oZWlnaHQoKSk7CisgICAgICAgIGJhc2VsaW5lLnNldEFzY2VudElmR3JlYXRl
cihtX2luaXRpYWxTdHJ1dC0+YXNjZW50KCkpOworICAgICAgICBiYXNlbGluZS5zZXREZXNjZW50
SWZHcmVhdGVyKG1faW5pdGlhbFN0cnV0LT5kZXNjZW50KCkpOworICAgICAgICBsaW5lQm94LnNl
dExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIoYmFzZWxpbmUuaGVpZ2h0KCksIExpbmVCb3g6OkFkanVz
dEJhc2VsaW5lOjpZZXMpOwogICAgICAgICBtX2luaXRpYWxTdHJ1dCA9IHsgfTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTM3NywyMyArMzc3LDE4IEBAIHZvaWQgTGluZTo6YWRqdXN0QmFz
ZWxpbmVBbmRMaW5lSGVpZ2h0KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIExheW91dFVu
aXQKICAgICAgICAgICAgICAgICBBU1NFUlQoIWZvcm1hdHRpbmdTdGF0ZS5saW5lQm94ZXMoKS5p
c0VtcHR5KCkpOwogICAgICAgICAgICAgICAgIG5ld0Jhc2VsaW5lQ2FuZGlkYXRlID0gZm9ybWF0
dGluZ1N0YXRlLmxpbmVCb3hlcygpLmxhc3QoKS5iYXNlbGluZSgpOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgbV9iYXNlbGluZS5zZXRBc2NlbnQoc3RkOjptYXgobmV3QmFzZWxpbmVDYW5k
aWRhdGUuYXNjZW50KCksIG1fYmFzZWxpbmUuYXNjZW50KCkpKTsKLSAgICAgICAgICAgIG1fYmFz
ZWxpbmUuc2V0RGVzY2VudChzdGQ6Om1heChuZXdCYXNlbGluZUNhbmRpZGF0ZS5kZXNjZW50KCks
IG1fYmFzZWxpbmUuZGVzY2VudCgpKSk7Ci0gICAgICAgICAgICBtX2xpbmVMb2dpY2FsSGVpZ2h0
ID0gc3RkOjptYXgoc3RkOjptYXgobV9saW5lTG9naWNhbEhlaWdodCwgcnVuSGVpZ2h0KSwgbV9i
YXNlbGluZS5oZWlnaHQoKSk7Ci0gICAgICAgICAgICAvLyBCYXNlbGluZSBhc2NlbnQvZGVzY2Vu
dCBuZXZlciBzaHJpbmsgLT4gbWF4LgotICAgICAgICAgICAgbV9iYXNlbGluZVRvcCA9IHN0ZDo6
bWF4KG1fYmFzZWxpbmVUb3AsIG1fbGluZUxvZ2ljYWxIZWlnaHQgLSBtX2Jhc2VsaW5lLmhlaWdo
dCgpKTsKKyAgICAgICAgICAgIGJhc2VsaW5lLnNldEFzY2VudElmR3JlYXRlcihuZXdCYXNlbGlu
ZUNhbmRpZGF0ZS5hc2NlbnQoKSk7CisgICAgICAgICAgICBiYXNlbGluZS5zZXREZXNjZW50SWZH
cmVhdGVyKG5ld0Jhc2VsaW5lQ2FuZGlkYXRlLmRlc2NlbnQoKSk7CisgICAgICAgICAgICBsaW5l
Qm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIoc3RkOjptYXgocnVuSGVpZ2h0LCBiYXNlbGlu
ZS5oZWlnaHQoKSksIExpbmVCb3g6OkFkanVzdEJhc2VsaW5lOjpZZXMpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpUb3A6CiAgICAg
ICAgICAgICAvLyBUb3AgYWxpZ24gY29udGVudCBuZXZlciBjaGFuZ2VzIHRoZSBiYXNlbGluZSBv
ZmZzZXQsIGl0IG9ubHkgcHVzaGVzIHRoZSBib3R0b20gb2YgdGhlIGxpbmUgZnVydGhlciBkb3du
LgotICAgICAgICAgICAgbV9saW5lTG9naWNhbEhlaWdodCA9IHN0ZDo6bWF4KHJ1bkhlaWdodCwg
bV9saW5lTG9naWNhbEhlaWdodCk7CisgICAgICAgICAgICBsaW5lQm94LnNldExvZ2ljYWxIZWln
aHRJZkdyZWF0ZXIocnVuSGVpZ2h0LCBMaW5lQm94OjpBZGp1c3RCYXNlbGluZTo6Tm8pOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVmVydGljYWxBbGlnbjo6Qm90dG9tOgogICAg
ICAgICAgICAgLy8gQm90dG9tIGFsaWduZWQsIHRhbGwgY29udGVudCBwdXNoZXMgdGhlIGJhc2Vs
aW5lIGZ1cnRoZXIgZG93biBmcm9tIHRoZSBsaW5lIHRvcC4KLSAgICAgICAgICAgIGlmIChydW5I
ZWlnaHQgPiBtX2xpbmVMb2dpY2FsSGVpZ2h0KSB7Ci0gICAgICAgICAgICAgICAgbV9iYXNlbGlu
ZVRvcCArPSAocnVuSGVpZ2h0IC0gbV9saW5lTG9naWNhbEhlaWdodCk7Ci0gICAgICAgICAgICAg
ICAgbV9saW5lTG9naWNhbEhlaWdodCA9IHJ1bkhlaWdodDsKLSAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGxpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3JlYXRlcihydW5IZWlnaHQsIExpbmVC
b3g6OkFkanVzdEJhc2VsaW5lOjpZZXMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX0lNUExFTUVOVEVEX1lFVCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5oCmlu
ZGV4IGJhOTNjNDcyOGE4NTFhYWY5NmE5YjMwZjQ0MGY2MDAyYmYzMjA3Y2UuLmI1ZGE3MzlmYzM1
NjFmNzU5MGYyNGVlYjM0YmVmMGI5MTdmY2MwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmgKQEAgLTk1LDYgKzk1LDcgQEAg
cHVibGljOgogICAgICAgICB1c2luZyBSdW5zID0gVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdW4+
PjsKICAgICAgICAgY29uc3QgUnVucyYgcnVucygpIGNvbnN0IHsgcmV0dXJuIG1fcnVuczsgfQog
ICAgICAgICBjb25zdCBMaW5lQm94JiBsaW5lQm94KCkgY29uc3QgeyByZXR1cm4gbV9saW5lQm94
OyB9CisgICAgICAgIExpbmVCb3gmIGxpbmVCb3goKSB7IHJldHVybiBtX2xpbmVCb3g7IH0KIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBMaW5lOwpAQCAtMTE2LDIxICsxMTcs
MjEgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZUxvZ2ljYWxSaWdodChMYXlvdXRVbml0KTsKIAog
ICAgIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgoKSBjb25zdCB7IHJldHVybiBsb2dpY2FsV2lk
dGgoKSAtIGNvbnRlbnRMb2dpY2FsV2lkdGgoKTsgfQotICAgIExheW91dFVuaXQgY29udGVudExv
Z2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJuIGxvZ2ljYWxMZWZ0KCkgKyBjb250ZW50TG9naWNh
bFdpZHRoKCk7IH0KLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3AoKSBjb25zdCB7IHJldHVybiBt
X2xvZ2ljYWxUb3BMZWZ0LnkoKTsgfQotICAgIExheW91dFVuaXQgbG9naWNhbEJvdHRvbSgpIGNv
bnN0IHsgcmV0dXJuIGxvZ2ljYWxUb3AoKSArIGxvZ2ljYWxIZWlnaHQoKTsgfQorICAgIExheW91
dFVuaXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudC0+bGlu
ZUJveCgpLmxvZ2ljYWxSaWdodCgpOyB9CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZW50LT5saW5lQm94KCkubG9naWNhbFRvcCgpOyB9CisgICAgTGF5
b3V0VW5pdCBsb2dpY2FsQm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50LT5saW5lQm94
KCkubG9naWNhbEJvdHRvbSgpOyB9CiAKICAgICBzdGF0aWMgTGluZUJveDo6QmFzZWxpbmUgaGFs
ZkxlYWRpbmdNZXRyaWNzKGNvbnN0IEZvbnRNZXRyaWNzJiwgTGF5b3V0VW5pdCBsaW5lTG9naWNh
bEhlaWdodCk7CiAKIHByaXZhdGU6Ci0gICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCgpIGNvbnN0
IHsgcmV0dXJuIG1fbG9naWNhbFRvcExlZnQueCgpOyB9CisgICAgTGF5b3V0VW5pdCBsb2dpY2Fs
TGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudC0+bGluZUJveCgpLmxvZ2ljYWxMZWZ0KCk7
IH0KICAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJuIGxvZ2ljYWxM
ZWZ0KCkgKyBsb2dpY2FsV2lkdGgoKTsgfQogCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgo
KSBjb25zdCB7IHJldHVybiBtX2xpbmVMb2dpY2FsV2lkdGg7IH0KLSAgICBMYXlvdXRVbml0IGxv
Z2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2xpbmVMb2dpY2FsSGVpZ2h0OyB9CisgICAg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50LT5saW5l
Qm94KCkubG9naWNhbEhlaWdodCgpOyB9CiAKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2Fs
V2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRMb2dpY2FsV2lkdGg7IH0KLSAgICBMYXlv
dXRVbml0IGJhc2VsaW5lT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9iYXNlbGluZS5hc2NlbnQo
KSArIG1fYmFzZWxpbmVUb3A7IH0KKyAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsV2lkdGgo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnQtPmxpbmVCb3goKS5sb2dpY2FsV2lkdGgoKTsgfQor
ICAgIExheW91dFVuaXQgYmFzZWxpbmVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnQt
PmxpbmVCb3goKS5iYXNlbGluZU9mZnNldCgpOyB9CiAKICAgICB2b2lkIGFwcGVuZE5vbkJyZWFr
YWJsZVNwYWNlKGNvbnN0IElubGluZUl0ZW0mLCBjb25zdCBEaXNwbGF5OjpSZWN0JiBsb2dpY2Fs
UmVjdCk7CiAgICAgdm9pZCBhcHBlbmRUZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0SXRlbSYs
IExheW91dFVuaXQgbG9naWNhbFdpZHRoKTsKQEAgLTE1MywxNCArMTU0LDcgQEAgcHJpdmF0ZToK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudD4gbV9jb250ZW50OwogICAgIExpc3RIYXNoU2V0
PENvbnRlbnQ6OlJ1bio+IG1fdHJpbW1hYmxlQ29udGVudDsKIAotICAgIExheW91dFBvaW50IG1f
bG9naWNhbFRvcExlZnQ7Ci0gICAgTGF5b3V0VW5pdCBtX2NvbnRlbnRMb2dpY2FsV2lkdGg7Ci0K
LSAgICBMaW5lQm94OjpCYXNlbGluZSBtX2Jhc2VsaW5lOwotICAgIExheW91dFVuaXQgbV9iYXNl
bGluZVRvcDsKLQogICAgIE9wdGlvbmFsPExpbmVCb3g6OkJhc2VsaW5lPiBtX2luaXRpYWxTdHJ1
dDsKLSAgICBMYXlvdXRVbml0IG1fbGluZUxvZ2ljYWxIZWlnaHQ7CiAgICAgTGF5b3V0VW5pdCBt
X2xpbmVMb2dpY2FsV2lkdGg7CiAgICAgYm9vbCBtX3NraXBWZXJ0aWNhbEFsaWdtZW50IHsgZmFs
c2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lQm94LmgKaW5kZXggY2NkOTQ1M2EyN2JjM2RmMmMzZmVkZGY5MjAzMmVk
OGIzOTA2NGZjNC4uNTNlNTlmM2JjNzVmMzhlMTlhNGIxNTY3NDJkOGU5MGQ0OWEzZDVjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmVCb3guaApAQCAtNDAsNiArNDAsOSBAQCBwdWJsaWM6CiAKICAgICAgICAgdm9pZCBzZXRB
c2NlbnQoTGF5b3V0VW5pdCk7CiAgICAgICAgIHZvaWQgc2V0RGVzY2VudChMYXlvdXRVbml0KTsK
KyAgICAgICAgdm9pZCBzZXRBc2NlbnRJZkdyZWF0ZXIoTGF5b3V0VW5pdCk7CisgICAgICAgIHZv
aWQgc2V0RGVzY2VudElmR3JlYXRlcihMYXlvdXRVbml0KTsKKwogICAgICAgICB2b2lkIHJlc2V0
KCk7CiAKICAgICAgICAgTGF5b3V0VW5pdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBhc2NlbnQo
KSArIGRlc2NlbnQoKTsgfQpAQCAtNjgsMjYgKzcxLDQ1IEBAIHB1YmxpYzoKICAgICBMYXlvdXRV
bml0IGxvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC53aWR0aCgpOyB9CiAgICAg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmhlaWdodCgp
OyB9CiAKLSAgICBCYXNlbGluZSBiYXNlbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZWxpbmU7
IH0KKyAgICB2b2lkIHNldEJhc2VsaW5lKEJhc2VsaW5lKTsKKyAgICBjb25zdCBCYXNlbGluZSYg
YmFzZWxpbmUoKSBjb25zdDsKKyAgICBCYXNlbGluZSYgYmFzZWxpbmUoKTsKICAgICAvLyBCYXNl
bGluZSBvZmZzZXQgZnJvbSBsaW5lIGxvZ2ljYWwgdG9wLiBOb3RlIHRoYXQgb2Zmc2V0IGRvZXMg
bm90IG5lY2Vzc2FyaWx5IGVxdWFsIHRvIGFzY2VudC4KICAgICAvLwotICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0gbGluZSBsb2dpY2FsIHRvcAotICAgIC8vICAgICAgICAgICAgIF4KLSAgICAv
LyAgICAgICAgICAgICB8Ci0gICAgLy8gICBeICAgICAgICAgfCBiYXNlbGluZSBvZmZzZXQKLSAg
ICAvLyAgIHwgICAgICAgICB8Ci0gICAgLy8gICB8IGFzY2VudCAgfAotICAgIC8vICAgfCAgICAg
ICAgIHwKLSAgICAvLyAgIHYgICAgICAgICB2Ci0gICAgLy8gICAtLS0tLS0tLS0tLS0tLS0tLSBi
YXNlbGluZQotICAgIC8vICAgXgotICAgIC8vICAgfCBkZXNjZW50CisgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLSAgICBsaW5lIGxvZ2ljYWwgdG9wICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tICh0
b3AgYWxpZ24pCisgICAgLy8gICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBeCisgICAgLy8gICAgICAgICAgICAgfCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBeICAgICAgICAgICB8CisgICAgLy8gICBeICAgICAgICAgfCBi
YXNlbGluZSBvZmZzZXQgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8IGJhc2VsaW5lIG9m
ZnNldAorICAgIC8vICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAgICAgICAgfAorICAgIC8vICAgfCBhc2NlbnQgIHwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCBhc2NlbnQgICAgfAorICAgIC8vICAgfCAgICAgICAgIHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAgICAgICAgICAgdgorICAgIC8vICAgdiAgICAg
ICAgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLSBi
YXNlbGluZQorICAgIC8vICAgLS0tLS0tLS0tLS0tLS0tLS0gYmFzZWxpbmUgICAgICAgICAgICAg
ICAgICAgXgorICAgIC8vICAgXiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCBkZXNjZW50CisgICAgLy8gICB8IGRlc2NlbnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2CiAgICAgLy8gICB2Ci0gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLSBs
aW5lIGxvZ2ljYWwgYm90dG9tCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLSAgICBsaW5lIGxv
Z2ljYWwgYm90dG9tICAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgTGF5b3V0VW5pdCBiYXNlbGlu
ZU9mZnNldCgpIGNvbnN0OworICAgIHZvaWQgc2V0QmFzZWxpbmVPZmZzZXQoTGF5b3V0VW5pdCk7
CisKKyAgICB2b2lkIHNldExvZ2ljYWxUb3BMZWZ0KExheW91dFBvaW50IGxvZ2ljYWxUb3BMZWZ0
KSB7IG1fcmVjdC5zZXRUb3BMZWZ0KGxvZ2ljYWxUb3BMZWZ0KTsgfQorICAgIHZvaWQgc2V0TG9n
aWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpIHsgbV9yZWN0LnNldEhlaWdodChs
b2dpY2FsSGVpZ2h0KTsgfQorCisgICAgZW51bSBjbGFzcyBBZGp1c3RCYXNlbGluZSB7IE5vLCBZ
ZXMgfTsKKyAgICB2b2lkIHNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIoTGF5b3V0VW5pdCBsb2dp
Y2FsSGVpZ2h0LCBBZGp1c3RCYXNlbGluZSk7CisgICAgdm9pZCBzZXRMb2dpY2FsV2lkdGgoTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgpIHsgbV9yZWN0LnNldFdpZHRoKGxvZ2ljYWxXaWR0aCk7IH0K
KworICAgIHZvaWQgbW92ZUhvcml6b250YWxseShMYXlvdXRVbml0IGRlbHRhKSB7IG1fcmVjdC5t
b3ZlSG9yaXpvbnRhbGx5KGRlbHRhKTsgfQorCisgICAgdm9pZCBleHBhbmRIb3Jpem9udGFsbHko
TGF5b3V0VW5pdCBkZWx0YSkgeyBtX3JlY3QuZXhwYW5kSG9yaXpvbnRhbGx5KGRlbHRhKTsgfQor
ICAgIHZvaWQgc2hyaW5rSG9yaXpvbnRhbGx5KExheW91dFVuaXQgZGVsdGEpIHsgZXhwYW5kSG9y
aXpvbnRhbGx5KC1kZWx0YSk7IH0KKworICAgIHZvaWQgZXhwYW5kVmVydGljYWxseShMYXlvdXRV
bml0IGRlbHRhKSB7IG1fcmVjdC5leHBhbmRWZXJ0aWNhbGx5KGRlbHRhKTsgfQorICAgIHZvaWQg
c2hyaW5rVmVydGljYWxseShMYXlvdXRVbml0IGRlbHRhKSB7IGV4cGFuZFZlcnRpY2FsbHkoLWRl
bHRhKTsgfQogCiBwcml2YXRlOgogI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBib29sIG1faGFz
VmFsaWRCYXNlbGluZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1ZhbGlkQmFzZWxpbmVPZmZz
ZXQgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgRGlzcGxheTo6UmVjdCBtX3JlY3Q7CkBAIC0xMDAs
OSArMTIyLDQ4IEBAIGlubGluZSBMaW5lQm94OjpMaW5lQm94KERpc3BsYXk6OlJlY3QgcmVjdCwg
Y29uc3QgQmFzZWxpbmUmIGJhc2VsaW5lLCBMYXlvdXRVbml0CiAgICAgLCBtX2Jhc2VsaW5lKGJh
c2VsaW5lKQogICAgICwgbV9iYXNlbGluZU9mZnNldChiYXNlbGluZU9mZnNldCkKIHsKKyNpZiAh
QVNTRVJUX0RJU0FCTEVECisgICAgbV9oYXNWYWxpZEJhc2VsaW5lID0gdHJ1ZTsKKyAgICBtX2hh
c1ZhbGlkQmFzZWxpbmVPZmZzZXQgPSB0cnVlOworI2VuZGlmCit9CisKK2lubGluZSB2b2lkIExp
bmVCb3g6OnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
LCBBZGp1c3RCYXNlbGluZSBhZGp1c3RCYXNlbGluZSkKK3sKKyAgICBhdXRvIGRpZmYgPSBsb2dp
Y2FsSGVpZ2h0IC0gbV9yZWN0LmhlaWdodCgpOworICAgIGlmIChkaWZmIDw9IDApCisgICAgICAg
IHJldHVybjsKKyAgICBpZiAoYWRqdXN0QmFzZWxpbmUgPT0gQWRqdXN0QmFzZWxpbmU6OlllcykK
KyAgICAgICAgc2V0QmFzZWxpbmVPZmZzZXQoYmFzZWxpbmVPZmZzZXQoKSArIGRpZmYpOworICAg
IG1fcmVjdC5zZXRIZWlnaHQobG9naWNhbEhlaWdodCk7Cit9CisKK2lubGluZSB2b2lkIExpbmVC
b3g6OnNldEJhc2VsaW5lKEJhc2VsaW5lIGJhc2VsaW5lKQoreworI2lmICFBU1NFUlRfRElTQUJM
RUQKKyAgICBtX2hhc1ZhbGlkQmFzZWxpbmUgPSB0cnVlOworI2VuZGlmCisgICAgbV9iYXNlbGlu
ZSA9IGJhc2VsaW5lOworfQorCitpbmxpbmUgY29uc3QgTGluZUJveDo6QmFzZWxpbmUmIExpbmVC
b3g6OmJhc2VsaW5lKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZEJhc2VsaW5lKTsK
KyAgICByZXR1cm4gbV9iYXNlbGluZTsKK30KKworaW5saW5lIExpbmVCb3g6OkJhc2VsaW5lJiBM
aW5lQm94OjpiYXNlbGluZSgpCit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRCYXNlbGluZSk7Cisg
ICAgcmV0dXJuIG1fYmFzZWxpbmU7Cit9CisKK2lubGluZSB2b2lkIExpbmVCb3g6OnNldEJhc2Vs
aW5lT2Zmc2V0KExheW91dFVuaXQgYmFzZWxpbmVPZmZzZXQpCit7CiAjaWYgIUFTU0VSVF9ESVNB
QkxFRAogICAgIG1faGFzVmFsaWRCYXNlbGluZU9mZnNldCA9IHRydWU7CiAjZW5kaWYKKyAgICBt
X2Jhc2VsaW5lT2Zmc2V0ID0gYmFzZWxpbmVPZmZzZXQ7CiB9CiAKIGlubGluZSBMYXlvdXRVbml0
IExpbmVCb3g6OmJhc2VsaW5lT2Zmc2V0KCkgY29uc3QKQEAgLTEzNyw2ICsxOTgsMjIgQEAgaW5s
aW5lIHZvaWQgTGluZUJveDo6QmFzZWxpbmU6OnNldERlc2NlbnQoTGF5b3V0VW5pdCBkZXNjZW50
KQogICAgIG1fZGVzY2VudCA9IGRlc2NlbnQ7CiB9CiAKK2lubGluZSB2b2lkIExpbmVCb3g6OkJh
c2VsaW5lOjpzZXRBc2NlbnRJZkdyZWF0ZXIoTGF5b3V0VW5pdCBhc2NlbnQpCit7CisjaWYgIUFT
U0VSVF9ESVNBQkxFRAorICAgIG1faGFzVmFsaWRBc2NlbnQgPSB0cnVlOworI2VuZGlmCisgICAg
bV9hc2NlbnQgPSBzdGQ6Om1heChhc2NlbnQsIG1fYXNjZW50KTsKK30KKworaW5saW5lIHZvaWQg
TGluZUJveDo6QmFzZWxpbmU6OnNldERlc2NlbnRJZkdyZWF0ZXIoTGF5b3V0VW5pdCBkZXNjZW50
KQoreworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBtX2hhc1ZhbGlkRGVzY2VudCA9IHRydWU7
CisjZW5kaWYKKyAgICBtX2Rlc2NlbnQgPSBzdGQ6Om1heChkZXNjZW50LCBtX2Rlc2NlbnQpOwor
fQorCiBpbmxpbmUgdm9pZCBMaW5lQm94OjpCYXNlbGluZTo6cmVzZXQoKQogewogI2lmICFBU1NF
UlRfRElTQUJMRUQK
</data>

          </attachment>
      

    </bug>

</bugzilla>