<?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>204218</bug_id>
          
          <creation_ts>2019-11-14 20:03:13 -0800</creation_ts>
          <short_desc>[LFC][Invalidation] Add a temporary RenderObject to Layout::Box map</short_desc>
          <delta_ts>2019-11-15 06:26:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <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>1590413</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-11-14 20:03:13 -0800</bug_when>
    <thetext>to be able to track style changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590414</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-14 20:03:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/57215201&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590415</commentid>
    <comment_count>2</comment_count>
      <attachid>383598</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-11-14 20:11:13 -0800</bug_when>
    <thetext>Created attachment 383598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590479</commentid>
    <comment_count>3</comment_count>
      <attachid>383598</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-15 06:26:12 -0800</bug_when>
    <thetext>Comment on attachment 383598
Patch

Clearing flags on attachment: 383598

Committed r252482: &lt;https://trac.webkit.org/changeset/252482&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590480</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-15 06:26:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383598</attachid>
            <date>2019-11-14 20:11:13 -0800</date>
            <delta_ts>2019-11-15 06:26:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204218-20191114201057.patch</filename>
            <type>text/plain</type>
            <size>22380</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDg3MDBlM2E5OGM3ZTI1
MjY1NzBkYjQzZWU5ZDY5MjNkODBhZTBhYi4uNmUwZTNmZWNmMTI3Y2U4NjE1MDZkYWVmZWRlN2Y1
NjVkZTdmMjc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTExLTE0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSW52YWxpZGF0aW9u
XSBBZGQgYSB0ZW1wb3JhcnkgUmVuZGVyT2JqZWN0IHRvIExheW91dDo6Qm94IG1hcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MjE4CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NzIxNTIwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBMYXlvdXRUcmVlQ29udGVudDo6cmVuZGVyT2JqZWN0VG9MYXlv
dXRCb3ggbWFwIGVuYWJsZXMgdXMgdG8gZmluZCB0aGUgYXNzb2NpYXRlZCBMYXlvdXQ6OkJveCB3
aGVuIHN0eWxlIGNoYW5nZXMgb24gYSByZW5kZXJlci4KKyAgICAgICAgVGhpcyBpcyB0ZW1wb3Jh
cnkgdW50aWwgYWZ0ZXIgd2UgaW1wbGVtZW50IGZ1bGx5IGludGVncmF0ZSBMRkMgd2l0aCB0aGUg
c3R5bGUgc3lzdGVtLgorCisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpydW5MYXlvdXRBbmRWZXJpZnkp
OgorICAgICAgICAqIGxheW91dC9MYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkxheW91dFN0YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAgICogbGF5b3V0L0xheW91
dFN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpyb290IGNv
bnN0KToKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRyZWVC
dWlsZGVyOjpidWlsZExheW91dFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlv
dXRUcmVlQ29udGVudDo6TGF5b3V0VHJlZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpUcmVlQnVpbGRlcjo6VHJlZUJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpUcmVlQnVpbGRlcjo6YnVpbGRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VHJl
ZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRy
ZWVCdWlsZGVyOjpidWlsZFRhYmxlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6VHJlZUJ1aWxkZXI6OmJ1aWxkU3ViVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OnByaW50TGF5b3V0VHJlZUZvckxpdmVEb2N1bWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5b3V0VHJlZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OlRyZWVCdWlsZGVyOjpjcmVhdGVUYWJsZVN0cnVjdHVyZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRyZWVCdWlsZGVyOjpjcmVhdGVTdWJUcmVl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRl
ci5oOgorCiAyMDE5LTExLTE0ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSW52YWxpZGF0aW9uXSBTa2lwIG5vbi1kaXJ0eSBvdXQtb2YtZmxvdyBib3hl
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAppbmRleCAxYjkzMzU5MTlh
ZTU0OTcwMDI0Y2ZjMzk4NGY3MjZkMmRkYjI1NmRjLi5iNzk2ZDNhYmY4YmU1MjkzZjJjNWY1MDFh
ZmI0OTcwMmQxMjFmOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3Bw
CkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCBMYXlvdXRDb250ZXh0OjpydW5MYXlvdXQoTGF5b3V0
U3RhdGUmIGxheW91dFN0YXRlKQogCiBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0U3RhdGU+IExheW91
dENvbnRleHQ6OnJ1bkxheW91dEFuZFZlcmlmeShjb25zdCBSZW5kZXJWaWV3JiByZW5kZXJWaWV3
KQogewotICAgIGF1dG8gbGF5b3V0U3RhdGUgPSBtYWtlVW5pcXVlPExheW91dFN0YXRlPihUcmVl
QnVpbGRlcjo6Y3JlYXRlTGF5b3V0VHJlZShyZW5kZXJWaWV3KSk7CisgICAgYXV0byBsYXlvdXRT
dGF0ZSA9IG1ha2VVbmlxdWU8TGF5b3V0U3RhdGU+KFRyZWVCdWlsZGVyOjpidWlsZExheW91dFRy
ZWUocmVuZGVyVmlldykpOwogICAgIGluaXRpYWxpemVMYXlvdXRTdGF0ZSgqbGF5b3V0U3RhdGUs
IHJlbmRlclZpZXcpOwogICAgIHJ1bkxheW91dCgqbGF5b3V0U3RhdGUpOwogICAgIExheW91dENv
bnRleHQ6OnZlcmlmeUFuZE91dHB1dE1pc21hdGNoaW5nTGF5b3V0VHJlZSgqbGF5b3V0U3RhdGUs
IHJlbmRlclZpZXcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggYjkx
NDVjNmVhNmFmOWYwNTM0YzViMDVmYWYxMGZiZDgyOTRmOGM5NS4uNGVjYTllOWU5MzliYTQzNGNl
YTUwYTY4Yjc0ZWZlNDUxZDY2NDkwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0xheW91dFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUu
Y3BwCkBAIC0zOCwxMSArMzgsMTEgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChMYXlvdXRTdGF0ZSk7CiAKLUxheW91dFN0YXRlOjpMYXlvdXRTdGF0
ZShzdGQ6OnVuaXF1ZV9wdHI8Q29udGFpbmVyPiByb290KQotICAgIDogbV9yb290KFdURk1vdmUo
cm9vdCkpCitMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoTGF5b3V0VHJlZUNvbnRlbnQmJiBsYXlv
dXRUcmVlQ29udGVudCkKKyAgICA6IG1fbGF5b3V0VHJlZUNvbnRlbnQoV1RGTW92ZShsYXlvdXRU
cmVlQ29udGVudCkpCiB7Ci0gICAgLy8gSXQgbWFrZXMgYWJzb2x1dGVseSBubyBzZW5zZSB0byBj
b25zdHJ1Y3QgYSBkZWRpY2F0ZWQgbGF5b3V0IHN0YXRlIGZvciBhIG5vbi1mb3JtYXR0aW5nIGNv
bnRleHQgcm9vdCAoaXQgd291bGQgYmUgYSBuby1vcCkuCi0gICAgQVNTRVJUKG1fcm9vdC0+ZXN0
YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKKyAgICAvLyBJdCBtYWtlcyBhYnNvbHV0ZWx5
IG5vIHNlbnNlIHRvIGNvbnN0cnVjdCBhIGRlZGljYXRlZCBsYXlvdXQgc3RhdGUgZm9yIGEgbm9u
LWZvcm1hdHRpbmcgY29udGV4dCByb290IChsYXlvdXQgd291bGQgYmUgYSBuby1vcCkuCisgICAg
QVNTRVJUKG1fbGF5b3V0VHJlZUNvbnRlbnQucm9vdExheW91dEJveC0+ZXN0YWJsaXNoZXNGb3Jt
YXR0aW5nQ29udGV4dCgpKTsKIH0KIAogTGF5b3V0U3RhdGU6On5MYXlvdXRTdGF0ZSgpID0gZGVm
YXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKaW5kZXggODRmZjhlYTM5MmJiODI5
Y2UxNmIyYjI2YmY5NGFkM2QxYTFjMjM0Yy4uMTZmNTJmNWQ3ZWEyYzI2YWI3MjJmMjY5MWU0MjM0
YzE0ZDU3OTc2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKQEAgLTI4LDYgKzI4
LDcgQEAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAogI2luY2x1ZGUg
IkxheW91dENvbnRhaW5lci5oIgorI2luY2x1ZGUgIkxheW91dFRyZWVCdWlsZGVyLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2MuaD4KQEAgLTQ4LDcgKzQ5LDcgQEAgY2xhc3MgRm9ybWF0dGluZ1N0YXRl
OwogY2xhc3MgTGF5b3V0U3RhdGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoTGF5b3V0
U3RhdGUpOwogcHVibGljOgotICAgIExheW91dFN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxDb250YWlu
ZXI+IHJvb3QpOworICAgIExheW91dFN0YXRlKExheW91dFRyZWVDb250ZW50JiYpOwogICAgIH5M
YXlvdXRTdGF0ZSgpOwogCiAgICAgRm9ybWF0dGluZ1N0YXRlJiBjcmVhdGVGb3JtYXR0aW5nU3Rh
dGVGb3JGb3JtYXR0aW5nUm9vdElmTmVlZGVkKGNvbnN0IENvbnRhaW5lciYgZm9ybWF0dGluZ0Nv
bnRleHRSb290KTsKQEAgLTcxLDE3ICs3MiwxOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpbkxpbWl0
ZWRRdWlya3NNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9xdWlya3NNb2RlID09IFF1aXJrc01vZGU6
OkxpbWl0ZWQ7IH0KICAgICBib29sIGluTm9RdWlya3NNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9x
dWlya3NNb2RlID09IFF1aXJrc01vZGU6Ok5vOyB9CiAKLSAgICBjb25zdCBDb250YWluZXImIHJv
b3QoKSBjb25zdCB7IHJldHVybiAqbV9yb290OyB9CisgICAgY29uc3QgQ29udGFpbmVyJiByb290
KCkgY29uc3QgeyByZXR1cm4gKm1fbGF5b3V0VHJlZUNvbnRlbnQucm9vdExheW91dEJveDsgfQog
CiBwcml2YXRlOgotICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHRoZSBvd25lcnNoaXAgbW9kZWwg
Zm9yIHRoZSBsYXlvdXQgdHJlZS4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGFpbmVyPiBtX3Jv
b3Q7CiAgICAgSGFzaE1hcDxjb25zdCBDb250YWluZXIqLCBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0
dGluZ1N0YXRlPj4gbV9mb3JtYXR0aW5nU3RhdGVzOwogI2lmbmRlZiBOREVCVUcKICAgICBIYXNo
U2V0PGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0Kj4gbV9mb3JtYXR0aW5nQ29udGV4dExpc3Q7CiAj
ZW5kaWYKICAgICBIYXNoTWFwPGNvbnN0IEJveCosIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5OjpC
b3g+PiBtX2xheW91dFRvRGlzcGxheUJveDsKICAgICBRdWlya3NNb2RlIG1fcXVpcmtzTW9kZSB7
IFF1aXJrc01vZGU6Ok5vIH07CisKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCB0aGUgb3duZXJz
aGlwIG1vZGVsIGZvciB0aGUgbGF5b3V0IHRyZWUuCisgICAgTGF5b3V0VHJlZUNvbnRlbnQgbV9s
YXlvdXRUcmVlQ29udGVudDsKIH07CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKaW5kZXgg
NjBmMDQ3NDBhZGM4NmNmNzQxMmI5YzNhNTIyYTYwOTUzNjc5NWMwOS4uMDk0OTMzN2FkY2JmZWVk
YmE1YTNmMTQxMTdmNjA2ZmEyZjY0MGI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcApAQCAtNzUsMTkgKzc1LDYg
QEAgc3RhdGljIHZvaWQgYXBwZW5kQ2hpbGQoQ29udGFpbmVyJiBwYXJlbnQsIEJveCYgbmV3Q2hp
bGQpCiAgICAgcGFyZW50LnNldExhc3RDaGlsZChuZXdDaGlsZCk7CiB9CiAKLXN0ZDo6dW5pcXVl
X3B0cjxDb250YWluZXI+IFRyZWVCdWlsZGVyOjpjcmVhdGVMYXlvdXRUcmVlKGNvbnN0IFJlbmRl
clZpZXcmIHJlbmRlclZpZXcpCi17Ci0gICAgUGhhc2VTY29wZSBzY29wZShQaGFzZTo6VHlwZTo6
VHJlZUJ1aWxkaW5nKTsKLQotICAgIGF1dG8gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUocmVu
ZGVyVmlldy5zdHlsZSgpKTsKLSAgICBzdHlsZS5zZXRMb2dpY2FsV2lkdGgoTGVuZ3RoKHJlbmRl
clZpZXcud2lkdGgoKSwgRml4ZWQpKTsKLSAgICBzdHlsZS5zZXRMb2dpY2FsSGVpZ2h0KExlbmd0
aChyZW5kZXJWaWV3LmhlaWdodCgpLCBGaXhlZCkpOwotCi0gICAgYXV0byBpbml0aWFsQ29udGFp
bmluZ0Jsb2NrID0gbWFrZVVuaXF1ZTxDb250YWluZXI+KFdURjo6bnVsbG9wdCwgV1RGTW92ZShz
dHlsZSkpOwotICAgIFRyZWVCdWlsZGVyOjpjcmVhdGVTdWJUcmVlKHJlbmRlclZpZXcsICppbml0
aWFsQ29udGFpbmluZ0Jsb2NrKTsKLSAgICByZXR1cm4gaW5pdGlhbENvbnRhaW5pbmdCbG9jazsK
LX0KLQogc3RhdGljIE9wdGlvbmFsPExheW91dFNpemU+IGFjY3VtdWxhdGVkT2Zmc2V0Rm9ySW5G
bG93UG9zaXRpb25lZENvbnRpbnVhdGlvbihjb25zdCBSZW5kZXJCb3gmIGJsb2NrKQogewogICAg
IC8vIEZJWEU6IFRoaXMgaXMgYSB3b3JrYXJvdW5kIG9mIHRoZSBjb250aW51YXRpb24gbG9naWMg
d2hlbiB0aGUgcmVsYXRpdmVseSBwb3NpdGlvbmVkIHBhcmVudCBpbmxpbmUgYm94CkBAIC0xMTUs
NiArMTAyLDM1IEBAIHN0YXRpYyBTdHJpbmcgYXBwbHlUZXh0VHJhbnNmb3JtKGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiB0ZXh0OwogfQog
CitMYXlvdXRUcmVlQ29udGVudCBUcmVlQnVpbGRlcjo6YnVpbGRMYXlvdXRUcmVlKGNvbnN0IFJl
bmRlclZpZXcmIHJlbmRlclZpZXcpCit7CisgICAgUGhhc2VTY29wZSBzY29wZShQaGFzZTo6VHlw
ZTo6VHJlZUJ1aWxkaW5nKTsKKworICAgIGF1dG8gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUo
cmVuZGVyVmlldy5zdHlsZSgpKTsKKyAgICBzdHlsZS5zZXRMb2dpY2FsV2lkdGgoTGVuZ3RoKHJl
bmRlclZpZXcud2lkdGgoKSwgRml4ZWQpKTsKKyAgICBzdHlsZS5zZXRMb2dpY2FsSGVpZ2h0KExl
bmd0aChyZW5kZXJWaWV3LmhlaWdodCgpLCBGaXhlZCkpOworCisgICAgYXV0byBsYXlvdXRUcmVl
Q29udGVudCA9IExheW91dFRyZWVDb250ZW50IHsgcmVuZGVyVmlldywgbWFrZVVuaXF1ZTxDb250
YWluZXI+KFdURjo6bnVsbG9wdCwgV1RGTW92ZShzdHlsZSkpIH07CisgICAgVHJlZUJ1aWxkZXIo
bGF5b3V0VHJlZUNvbnRlbnQpLmJ1aWxkVHJlZSgpOworICAgIHJldHVybiBsYXlvdXRUcmVlQ29u
dGVudDsKK30KKworTGF5b3V0VHJlZUNvbnRlbnQ6OkxheW91dFRyZWVDb250ZW50KGNvbnN0IFJl
bmRlckJveCYgcm9vdFJlbmRlcmVyLCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGFpbmVyPiByb290TGF5
b3V0Qm94KQorICAgIDogcm9vdFJlbmRlcmVyKHJvb3RSZW5kZXJlcikKKyAgICAsIHJvb3RMYXlv
dXRCb3goV1RGTW92ZShyb290TGF5b3V0Qm94KSkKK3sKK30KKworVHJlZUJ1aWxkZXI6OlRyZWVC
dWlsZGVyKExheW91dFRyZWVDb250ZW50JiBsYXlvdXRUcmVlQ29udGVudCkKKyAgICA6IG1fbGF5
b3V0VHJlZUNvbnRlbnQobGF5b3V0VHJlZUNvbnRlbnQpCit7Cit9CisKK3ZvaWQgVHJlZUJ1aWxk
ZXI6OmJ1aWxkVHJlZSgpCit7CisgICAgYnVpbGRTdWJUcmVlKG1fbGF5b3V0VHJlZUNvbnRlbnQu
cm9vdFJlbmRlcmVyLCAqbV9sYXlvdXRUcmVlQ29udGVudC5yb290TGF5b3V0Qm94KTsKK30KKwog
c3RkOjp1bmlxdWVfcHRyPEJveD4gVHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveChjb25zdCBS
ZW5kZXJFbGVtZW50JiBwYXJlbnRSZW5kZXJlciwgY29uc3QgUmVuZGVyT2JqZWN0JiBjaGlsZFJl
bmRlcmVyKQogewogICAgIGF1dG8gZWxlbWVudEF0dHJpYnV0ZXMgPSBbXSAoY29uc3QgUmVuZGVy
RWxlbWVudCYgcmVuZGVyZXIpIC0+IE9wdGlvbmFsPEJveDo6RWxlbWVudEF0dHJpYnV0ZXM+IHsK
QEAgLTE0NCw4NCArMTYwLDgyIEBAIHN0ZDo6dW5pcXVlX3B0cjxCb3g+IFRyZWVCdWlsZGVyOjpj
cmVhdGVMYXlvdXRCb3goY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50UmVuCiAgICAgICAgICAg
ICBjaGlsZExheW91dEJveCA9IG1ha2VVbmlxdWU8Qm94Pih0ZXh0Q29udGVudCwgUmVuZGVyU3R5
bGU6OmNsb25lKHBhcmVudFJlbmRlcmVyLnN0eWxlKCkpKTsKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgY2hpbGRMYXlvdXRCb3ggPSBtYWtlVW5pcXVlPEJveD4odGV4dENvbnRlbnQsIFJlbmRl
clN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KHBhcmVudFJlbmRlcmVyLnN0
eWxlKCksIERpc3BsYXlUeXBlOjpJbmxpbmUpKTsKLSAgICAgICAgY2hpbGRMYXlvdXRCb3gtPnNl
dElzQW5vbnltb3VzKCk7Ci0gICAgICAgIHJldHVybiBjaGlsZExheW91dEJveDsKLSAgICB9Ci0K
LSAgICBhdXRvJiByZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckVsZW1lbnQ+KGNoaWxkUmVuZGVy
ZXIpOwotICAgIGF1dG8gZGlzcGxheVR5cGUgPSByZW5kZXJlci5zdHlsZSgpLmRpc3BsYXkoKTsK
LSAgICBpZiAoaXM8UmVuZGVyTGluZUJyZWFrPihyZW5kZXJlcikpCi0gICAgICAgIHJldHVybiBt
YWtlVW5pcXVlPEJveD4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6
Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOwotCi0gICAgaWYgKGlzPFJlbmRlclRhYmxlPihyZW5k
ZXJlcikpIHsKLSAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBwcmluY2lwYWwgdGFibGUgd3JhcHBl
ciBib3ggKGFuZCBub3QgdGhlIHRhYmxlIGJveCBpdHNlbGYpLgotICAgICAgICBjaGlsZExheW91
dEJveCA9IG1ha2VVbmlxdWU8Q29udGFpbmVyPihCb3g6OkVsZW1lbnRBdHRyaWJ1dGVzIHsgQm94
OjpFbGVtZW50VHlwZTo6VGFibGVXcmFwcGVyQm94IH0sIFJlbmRlclN0eWxlOjpjbG9uZShyZW5k
ZXJlci5zdHlsZSgpKSk7Ci0gICAgICAgIGNoaWxkTGF5b3V0Qm94LT5zZXRJc0Fub255bW91cygp
OwotICAgIH0gZWxzZSBpZiAoaXM8UmVuZGVyUmVwbGFjZWQ+KHJlbmRlcmVyKSkgewotICAgICAg
ICBpZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OkJsb2NrKQotICAgICAgICAgICAgY2hp
bGRMYXlvdXRCb3ggPSBtYWtlVW5pcXVlPEJveD4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIp
LCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBjaGlsZExheW91dEJveCA9IG1ha2VVbmlxdWU8Qm94PihlbGVtZW50QXR0cmli
dXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7Ci0g
ICAgICAgIC8vIEZJWE1FOiBXZSBkb24ndCB5ZXQgc3VwcG9ydCBhbGwgcmVwbGFjZWQgZWxlbWVu
dHMgYW5kIHRoaXMgaXMgdGVtcG9yYXJ5IGFueXdheS4KLSAgICAgICAgaWYgKGNoaWxkTGF5b3V0
Qm94LT5yZXBsYWNlZCgpKQotICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3gtPnJlcGxhY2VkKCkt
PnNldEludHJpbnNpY1NpemUoZG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KHJlbmRlcmVyKS5pbnRy
aW5zaWNTaXplKCkpOwotICAgICAgICBpZiAoaXM8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKSkgewot
ICAgICAgICAgICAgYXV0byYgaW1hZ2VSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckltYWdlPihy
ZW5kZXJlcik7Ci0gICAgICAgICAgICBpZiAoaW1hZ2VSZW5kZXJlci5zaG91bGREaXNwbGF5QnJv
a2VuSW1hZ2VJY29uKCkpCi0gICAgICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3gtPnJlcGxhY2Vk
KCktPnNldEludHJpbnNpY1JhdGlvKDEpOwotICAgICAgICAgICAgaWYgKGltYWdlUmVuZGVyZXIu
Y2FjaGVkSW1hZ2UoKSkKLSAgICAgICAgICAgICAgICBjaGlsZExheW91dEJveC0+cmVwbGFjZWQo
KS0+c2V0Q2FjaGVkSW1hZ2UoKmltYWdlUmVuZGVyZXIuY2FjaGVkSW1hZ2UoKSk7Ci0gICAgICAg
IH0KICAgICB9IGVsc2UgewotICAgICAgICBpZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6
OkJsb2NrKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBvZmZzZXQgPSBhY2N1bXVsYXRlZE9mZnNl
dEZvckluRmxvd1Bvc2l0aW9uZWRDb250aW51YXRpb24oZG93bmNhc3Q8UmVuZGVyQm94PihyZW5k
ZXJlcikpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBzdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9u
ZVB0cihyZW5kZXJlci5zdHlsZSgpKTsKLSAgICAgICAgICAgICAgICBzdHlsZS0+c2V0VG9wKHsg
b2Zmc2V0LT5oZWlnaHQoKSwgRml4ZWQgfSk7Ci0gICAgICAgICAgICAgICAgc3R5bGUtPnNldExl
ZnQoeyBvZmZzZXQtPndpZHRoKCksIEZpeGVkIH0pOwotICAgICAgICAgICAgICAgIGNoaWxkTGF5
b3V0Qm94ID0gbWFrZVVuaXF1ZTxDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVy
KSwgV1RGTW92ZSgqc3R5bGUpKTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAg
IGNoaWxkTGF5b3V0Qm94ID0gbWFrZVVuaXF1ZTxDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVz
KHJlbmRlcmVyKSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKLSAgICAg
ICAgfSBlbHNlIGlmIChkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lKQotICAgICAg
ICAgICAgY2hpbGRMYXlvdXRCb3ggPSBtYWtlVW5pcXVlPENvbnRhaW5lcj4oZWxlbWVudEF0dHJp
YnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOwot
ICAgICAgICBlbHNlIGlmIChkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lQmxvY2sp
Ci0gICAgICAgICAgICBjaGlsZExheW91dEJveCA9IG1ha2VVbmlxdWU8Q29udGFpbmVyPihlbGVt
ZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHls
ZSgpKSk7Ci0gICAgICAgIGVsc2UgaWYgKGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpUYWJs
ZUNhcHRpb24gfHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlQ2VsbCkgewotICAg
ICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBtYWtlVW5pcXVlPENvbnRhaW5lcj4oZWxlbWVudEF0
dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkp
OwotICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpUYWJsZVJv
d0dyb3VwIHx8IGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpUYWJsZUhlYWRlckdyb3VwIHx8
IGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpUYWJsZUZvb3Rlckdyb3VwCi0gICAgICAgICAg
ICB8fCBkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVSb3cgfHwgZGlzcGxheVR5cGUg
PT0gRGlzcGxheVR5cGU6OlRhYmxlQ29sdW1uR3JvdXApIHsKLSAgICAgICAgICAgIGNoaWxkTGF5
b3V0Qm94ID0gbWFrZVVuaXF1ZTxDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVy
KSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKLSAgICAgICAgfSBlbHNl
IGlmIChkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVDb2x1bW4pIHsKLSAgICAgICAg
ICAgIGNoaWxkTGF5b3V0Qm94ID0gbWFrZVVuaXF1ZTxDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1
dGVzKHJlbmRlcmVyKSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKLSAg
ICAgICAgICAgIGF1dG8mIHRhYmxlQ29sRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxUYWJsZUNv
bEVsZW1lbnQmPigqcmVuZGVyZXIuZWxlbWVudCgpKTsKLSAgICAgICAgICAgIGF1dG8gY29sdW1u
V2lkdGggPSB0YWJsZUNvbEVsZW1lbnQud2lkdGgoKTsKLSAgICAgICAgICAgIGlmICghY29sdW1u
V2lkdGguaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94LT5zZXRDb2x1
bW5XaWR0aChjb2x1bW5XaWR0aC50b0ludCgpKTsKLSAgICAgICAgICAgIGlmICh0YWJsZUNvbEVs
ZW1lbnQuc3BhbigpID4gMSkKLSAgICAgICAgICAgICAgICBjaGlsZExheW91dEJveC0+c2V0Q29s
dW1uU3Bhbih0YWJsZUNvbEVsZW1lbnQuc3BhbigpKTsKKyAgICAgICAgYXV0byYgcmVuZGVyZXIg
PSBkb3duY2FzdDxSZW5kZXJFbGVtZW50PihjaGlsZFJlbmRlcmVyKTsKKyAgICAgICAgYXV0byBk
aXNwbGF5VHlwZSA9IHJlbmRlcmVyLnN0eWxlKCkuZGlzcGxheSgpOworICAgICAgICBpZiAoaXM8
UmVuZGVyTGluZUJyZWFrPihyZW5kZXJlcikpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1
ZTxCb3g+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgUmVuZGVyU3R5bGU6OmNsb25lKHJl
bmRlcmVyLnN0eWxlKCkpKTsKKworICAgICAgICBpZiAoaXM8UmVuZGVyVGFibGU+KHJlbmRlcmVy
KSkgeworICAgICAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBwcmluY2lwYWwgdGFibGUgd3JhcHBl
ciBib3ggKGFuZCBub3QgdGhlIHRhYmxlIGJveCBpdHNlbGYpLgorICAgICAgICAgICAgY2hpbGRM
YXlvdXRCb3ggPSBtYWtlVW5pcXVlPENvbnRhaW5lcj4oQm94OjpFbGVtZW50QXR0cmlidXRlcyB7
IEJveDo6RWxlbWVudFR5cGU6OlRhYmxlV3JhcHBlckJveCB9LCBSZW5kZXJTdHlsZTo6Y2xvbmUo
cmVuZGVyZXIuc3R5bGUoKSkpOworICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3gtPnNldElzQW5v
bnltb3VzKCk7CisgICAgICAgIH0gZWxzZSBpZiAoaXM8UmVuZGVyUmVwbGFjZWQ+KHJlbmRlcmVy
KSkgeworICAgICAgICAgICAgaWYgKGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpCbG9jaykK
KyAgICAgICAgICAgICAgICBjaGlsZExheW91dEJveCA9IG1ha2VVbmlxdWU8Qm94PihlbGVtZW50
QXR0cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgp
KSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBt
YWtlVW5pcXVlPEJveD4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6
Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOworICAgICAgICAgICAgLy8gRklYTUU6IFdlIGRvbid0
IHlldCBzdXBwb3J0IGFsbCByZXBsYWNlZCBlbGVtZW50cyBhbmQgdGhpcyBpcyB0ZW1wb3Jhcnkg
YW55d2F5LgorICAgICAgICAgICAgaWYgKGNoaWxkTGF5b3V0Qm94LT5yZXBsYWNlZCgpKQorICAg
ICAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94LT5yZXBsYWNlZCgpLT5zZXRJbnRyaW5zaWNTaXpl
KGRvd25jYXN0PFJlbmRlclJlcGxhY2VkPihyZW5kZXJlcikuaW50cmluc2ljU2l6ZSgpKTsKKyAg
ICAgICAgICAgIGlmIChpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKSB7CisgICAgICAgICAgICAg
ICAgYXV0byYgaW1hZ2VSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckltYWdlPihyZW5kZXJlcik7
CisgICAgICAgICAgICAgICAgaWYgKGltYWdlUmVuZGVyZXIuc2hvdWxkRGlzcGxheUJyb2tlbklt
YWdlSWNvbigpKQorICAgICAgICAgICAgICAgICAgICBjaGlsZExheW91dEJveC0+cmVwbGFjZWQo
KS0+c2V0SW50cmluc2ljUmF0aW8oMSk7CisgICAgICAgICAgICAgICAgaWYgKGltYWdlUmVuZGVy
ZXIuY2FjaGVkSW1hZ2UoKSkKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3gtPnJl
cGxhY2VkKCktPnNldENhY2hlZEltYWdlKCppbWFnZVJlbmRlcmVyLmNhY2hlZEltYWdlKCkpOwor
ICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQVNTRVJUX05PVF9J
TVBMRU1FTlRFRF9ZRVQoKTsKLSAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgICAgICBp
ZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OkJsb2NrKSB7CisgICAgICAgICAgICAgICAg
aWYgKGF1dG8gb2Zmc2V0ID0gYWNjdW11bGF0ZWRPZmZzZXRGb3JJbkZsb3dQb3NpdGlvbmVkQ29u
dGludWF0aW9uKGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpKSkgeworICAgICAgICAgICAg
ICAgICAgICBhdXRvIHN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKHJlbmRlcmVyLnN0eWxl
KCkpOworICAgICAgICAgICAgICAgICAgICBzdHlsZS0+c2V0VG9wKHsgb2Zmc2V0LT5oZWlnaHQo
KSwgRml4ZWQgfSk7CisgICAgICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRMZWZ0KHsgb2Zmc2V0
LT53aWR0aCgpLCBGaXhlZCB9KTsKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3gg
PSBtYWtlVW5pcXVlPENvbnRhaW5lcj4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBXVEZN
b3ZlKCpzdHlsZSkpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAg
ICBjaGlsZExheW91dEJveCA9IG1ha2VVbmlxdWU8Q29udGFpbmVyPihlbGVtZW50QXR0cmlidXRl
cyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7CisgICAg
ICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpJbmxpbmUpCisg
ICAgICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBtYWtlVW5pcXVlPENvbnRhaW5lcj4oZWxl
bWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5
bGUoKSkpOworICAgICAgICAgICAgZWxzZSBpZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6
OklubGluZUJsb2NrKQorICAgICAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gbWFrZVVuaXF1
ZTxDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgUmVuZGVyU3R5bGU6OmNs
b25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGRpc3BsYXlUeXBl
ID09IERpc3BsYXlUeXBlOjpUYWJsZUNhcHRpb24gfHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5
cGU6OlRhYmxlQ2VsbCkgeworICAgICAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gbWFrZVVu
aXF1ZTxDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgUmVuZGVyU3R5bGU6
OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzcGxh
eVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlUm93R3JvdXAgfHwgZGlzcGxheVR5cGUgPT0gRGlz
cGxheVR5cGU6OlRhYmxlSGVhZGVyR3JvdXAgfHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6
OlRhYmxlRm9vdGVyR3JvdXAKKyAgICAgICAgICAgICAgICB8fCBkaXNwbGF5VHlwZSA9PSBEaXNw
bGF5VHlwZTo6VGFibGVSb3cgfHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlQ29s
dW1uR3JvdXApIHsKKyAgICAgICAgICAgICAgICBjaGlsZExheW91dEJveCA9IG1ha2VVbmlxdWU8
Q29udGFpbmVyPihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9u
ZShyZW5kZXJlci5zdHlsZSgpKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlUeXBl
ID09IERpc3BsYXlUeXBlOjpUYWJsZUNvbHVtbikgeworICAgICAgICAgICAgICAgIGNoaWxkTGF5
b3V0Qm94ID0gbWFrZVVuaXF1ZTxDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVy
KSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKKyAgICAgICAgICAgICAg
ICBhdXRvJiB0YWJsZUNvbEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MVGFibGVDb2xFbGVtZW50
Jj4oKnJlbmRlcmVyLmVsZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgYXV0byBjb2x1bW5XaWR0
aCA9IHRhYmxlQ29sRWxlbWVudC53aWR0aCgpOworICAgICAgICAgICAgICAgIGlmICghY29sdW1u
V2lkdGguaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBjaGlsZExheW91dEJveC0+c2V0
Q29sdW1uV2lkdGgoY29sdW1uV2lkdGgudG9JbnQoKSk7CisgICAgICAgICAgICAgICAgaWYgKHRh
YmxlQ29sRWxlbWVudC5zcGFuKCkgPiAxKQorICAgICAgICAgICAgICAgICAgICBjaGlsZExheW91
dEJveC0+c2V0Q29sdW1uU3Bhbih0YWJsZUNvbEVsZW1lbnQuc3BhbigpKTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICAgICAgfQogICAgICAgICB9Ci0g
ICAgfQotCi0gICAgaWYgKGlzPFJlbmRlclRhYmxlQ2VsbD4ocmVuZGVyZXIpKSB7Ci0gICAgICAg
IGF1dG8mIGNlbGxFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+KCpyZW5k
ZXJlci5lbGVtZW50KCkpOwotICAgICAgICBhdXRvIHJvd1NwYW4gPSBjZWxsRWxlbWVudC5yb3dT
cGFuKCk7Ci0gICAgICAgIGlmIChyb3dTcGFuID4gMSkKLSAgICAgICAgICAgIGNoaWxkTGF5b3V0
Qm94LT5zZXRSb3dTcGFuKHJvd1NwYW4pOwogCi0gICAgICAgIGF1dG8gY29sdW1uU3BhbiA9IGNl
bGxFbGVtZW50LmNvbFNwYW4oKTsKLSAgICAgICAgaWYgKGNvbHVtblNwYW4gPiAxKQotICAgICAg
ICAgICAgY2hpbGRMYXlvdXRCb3gtPnNldENvbHVtblNwYW4oY29sdW1uU3Bhbik7Ci0gICAgfQor
ICAgICAgICBpZiAoaXM8UmVuZGVyVGFibGVDZWxsPihyZW5kZXJlcikpIHsKKyAgICAgICAgICAg
IGF1dG8mIGNlbGxFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+KCpyZW5k
ZXJlci5lbGVtZW50KCkpOworICAgICAgICAgICAgYXV0byByb3dTcGFuID0gY2VsbEVsZW1lbnQu
cm93U3BhbigpOworICAgICAgICAgICAgaWYgKHJvd1NwYW4gPiAxKQorICAgICAgICAgICAgICAg
IGNoaWxkTGF5b3V0Qm94LT5zZXRSb3dTcGFuKHJvd1NwYW4pOwogCi0gICAgaWYgKGNoaWxkUmVu
ZGVyZXIuaXNBbm9ueW1vdXMoKSkKLSAgICAgICAgY2hpbGRMYXlvdXRCb3gtPnNldElzQW5vbnlt
b3VzKCk7CisgICAgICAgICAgICBhdXRvIGNvbHVtblNwYW4gPSBjZWxsRWxlbWVudC5jb2xTcGFu
KCk7CisgICAgICAgICAgICBpZiAoY29sdW1uU3BhbiA+IDEpCisgICAgICAgICAgICAgICAgY2hp
bGRMYXlvdXRCb3gtPnNldENvbHVtblNwYW4oY29sdW1uU3Bhbik7CisgICAgICAgIH0KIAorICAg
ICAgICBpZiAoY2hpbGRSZW5kZXJlci5pc0Fub255bW91cygpKQorICAgICAgICAgICAgY2hpbGRM
YXlvdXRCb3gtPnNldElzQW5vbnltb3VzKCk7CisgICAgfQorICAgIG1fbGF5b3V0VHJlZUNvbnRl
bnQucmVuZGVyT2JqZWN0VG9MYXlvdXRCb3guYWRkKCZjaGlsZFJlbmRlcmVyLCBjaGlsZExheW91
dEJveC5nZXQoKSk7CiAgICAgcmV0dXJuIGNoaWxkTGF5b3V0Qm94OwogfQogCi12b2lkIFRyZWVC
dWlsZGVyOjpjcmVhdGVUYWJsZVN0cnVjdHVyZShjb25zdCBSZW5kZXJUYWJsZSYgdGFibGVSZW5k
ZXJlciwgQ29udGFpbmVyJiB0YWJsZVdyYXBwZXJCb3gpCit2b2lkIFRyZWVCdWlsZGVyOjpidWls
ZFRhYmxlU3RydWN0dXJlKGNvbnN0IFJlbmRlclRhYmxlJiB0YWJsZVJlbmRlcmVyLCBDb250YWlu
ZXImIHRhYmxlV3JhcHBlckJveCkKIHsKICAgICAvLyBDcmVhdGUgY2FwdGlvbiBhbmQgdGFibGUg
Ym94LgogICAgIGF1dG8qIHRhYmxlQ2hpbGQgPSB0YWJsZVJlbmRlcmVyLmZpcnN0Q2hpbGQoKTsK
QEAgLTIzMCw3ICsyNDQsNyBAQCB2b2lkIFRyZWVCdWlsZGVyOjpjcmVhdGVUYWJsZVN0cnVjdHVy
ZShjb25zdCBSZW5kZXJUYWJsZSYgdGFibGVSZW5kZXJlciwgQ29udGFpbgogICAgICAgICBhdXRv
IGNhcHRpb25Cb3ggPSBjcmVhdGVMYXlvdXRCb3godGFibGVSZW5kZXJlciwgY2FwdGlvblJlbmRl
cmVyKTsKICAgICAgICAgYXBwZW5kQ2hpbGQodGFibGVXcmFwcGVyQm94LCAqY2FwdGlvbkJveCk7
CiAgICAgICAgIGF1dG8mIGNhcHRpb25Db250YWluZXIgPSBkb3duY2FzdDxDb250YWluZXI+KCpj
YXB0aW9uQm94KTsKLSAgICAgICAgVHJlZUJ1aWxkZXI6OmNyZWF0ZVN1YlRyZWUoZG93bmNhc3Q8
UmVuZGVyRWxlbWVudD4oY2FwdGlvblJlbmRlcmVyKSwgY2FwdGlvbkNvbnRhaW5lcik7CisgICAg
ICAgIGJ1aWxkU3ViVHJlZShkb3duY2FzdDxSZW5kZXJFbGVtZW50PihjYXB0aW9uUmVuZGVyZXIp
LCBjYXB0aW9uQ29udGFpbmVyKTsKICAgICAgICAgLy8gVGVtcG9yYXJ5CiAgICAgICAgIGNhcHRp
b25Cb3gucmVsZWFzZSgpOwogICAgICAgICB0YWJsZUNoaWxkID0gdGFibGVDaGlsZC0+bmV4dFNp
YmxpbmcoKTsKQEAgLTI0Myw3ICsyNTcsNyBAQCB2b2lkIFRyZWVCdWlsZGVyOjpjcmVhdGVUYWJs
ZVN0cnVjdHVyZShjb25zdCBSZW5kZXJUYWJsZSYgdGFibGVSZW5kZXJlciwgQ29udGFpbgogICAg
ICAgICBhdXRvIHNlY3Rpb25Cb3ggPSBjcmVhdGVMYXlvdXRCb3godGFibGVSZW5kZXJlciwgKnNl
Y3Rpb25SZW5kZXJlcik7CiAgICAgICAgIGFwcGVuZENoaWxkKCp0YWJsZUJveCwgKnNlY3Rpb25C
b3gpOwogICAgICAgICBhdXRvJiBzZWN0aW9uQ29udGFpbmVyID0gZG93bmNhc3Q8Q29udGFpbmVy
Pigqc2VjdGlvbkJveCk7Ci0gICAgICAgIFRyZWVCdWlsZGVyOjpjcmVhdGVTdWJUcmVlKGRvd25j
YXN0PFJlbmRlckVsZW1lbnQ+KCpzZWN0aW9uUmVuZGVyZXIpLCBzZWN0aW9uQ29udGFpbmVyKTsK
KyAgICAgICAgYnVpbGRTdWJUcmVlKGRvd25jYXN0PFJlbmRlckVsZW1lbnQ+KCpzZWN0aW9uUmVu
ZGVyZXIpLCBzZWN0aW9uQ29udGFpbmVyKTsKICAgICAgICAgc2VjdGlvbkJveC5yZWxlYXNlKCk7
CiAgICAgICAgIHNlY3Rpb25SZW5kZXJlciA9IHNlY3Rpb25SZW5kZXJlci0+bmV4dFNpYmxpbmco
KTsKICAgICB9CkBAIC0yNTEsMTUgKzI2NSwxNSBAQCB2b2lkIFRyZWVCdWlsZGVyOjpjcmVhdGVU
YWJsZVN0cnVjdHVyZShjb25zdCBSZW5kZXJUYWJsZSYgdGFibGVSZW5kZXJlciwgQ29udGFpbgog
ICAgIHRhYmxlQm94LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBUcmVlQnVpbGRlcjo6Y3JlYXRlU3Vi
VHJlZShjb25zdCBSZW5kZXJFbGVtZW50JiByb290UmVuZGVyZXIsIENvbnRhaW5lciYgcm9vdENv
bnRhaW5lcikKK3ZvaWQgVHJlZUJ1aWxkZXI6OmJ1aWxkU3ViVHJlZShjb25zdCBSZW5kZXJFbGVt
ZW50JiByb290UmVuZGVyZXIsIENvbnRhaW5lciYgcm9vdENvbnRhaW5lcikKIHsKICAgICBmb3Ig
KGF1dG8mIGNoaWxkUmVuZGVyZXIgOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJPYmplY3Q+KHJvb3RS
ZW5kZXJlcikpIHsKICAgICAgICAgYXV0byBjaGlsZExheW91dEJveCA9IGNyZWF0ZUxheW91dEJv
eChyb290UmVuZGVyZXIsIGNoaWxkUmVuZGVyZXIpOwogICAgICAgICBhcHBlbmRDaGlsZChyb290
Q29udGFpbmVyLCAqY2hpbGRMYXlvdXRCb3gpOwogICAgICAgICBpZiAoY2hpbGRMYXlvdXRCb3gt
PmlzVGFibGVXcmFwcGVyQm94KCkpCi0gICAgICAgICAgICBjcmVhdGVUYWJsZVN0cnVjdHVyZShk
b3duY2FzdDxSZW5kZXJUYWJsZT4oY2hpbGRSZW5kZXJlciksIGRvd25jYXN0PENvbnRhaW5lcj4o
KmNoaWxkTGF5b3V0Qm94KSk7CisgICAgICAgICAgICBidWlsZFRhYmxlU3RydWN0dXJlKGRvd25j
YXN0PFJlbmRlclRhYmxlPihjaGlsZFJlbmRlcmVyKSwgZG93bmNhc3Q8Q29udGFpbmVyPigqY2hp
bGRMYXlvdXRCb3gpKTsKICAgICAgICAgZWxzZSBpZiAoaXM8Q29udGFpbmVyPigqY2hpbGRMYXlv
dXRCb3gpKQotICAgICAgICAgICAgY3JlYXRlU3ViVHJlZShkb3duY2FzdDxSZW5kZXJFbGVtZW50
PihjaGlsZFJlbmRlcmVyKSwgZG93bmNhc3Q8Q29udGFpbmVyPigqY2hpbGRMYXlvdXRCb3gpKTsK
KyAgICAgICAgICAgIGJ1aWxkU3ViVHJlZShkb3duY2FzdDxSZW5kZXJFbGVtZW50PihjaGlsZFJl
bmRlcmVyKSwgZG93bmNhc3Q8Q29udGFpbmVyPigqY2hpbGRMYXlvdXRCb3gpKTsKICAgICAgICAg
Ly8gVGVtcG9yYXJ5CiAgICAgICAgIGNoaWxkTGF5b3V0Qm94LnJlbGVhc2UoKTsKICAgICB9CkBA
IC00MDMsNyArNDE3LDcgQEAgdm9pZCBwcmludExheW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKCkK
ICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgZG9jdW1lbnQtPnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAvLyBGSVhNRTogTmVlZCB0byBmaW5kIGEgd2F5IHRv
IG91dHB1dCBnZW9tZXRyeSB3aXRob3V0IGxheW91dCBjb250ZXh0LgogICAgICAgICBhdXRvJiBy
ZW5kZXJWaWV3ID0gKmRvY3VtZW50LT5yZW5kZXJWaWV3KCk7Ci0gICAgICAgIGF1dG8gbGF5b3V0
U3RhdGUgPSBMYXlvdXRTdGF0ZSB7IFRyZWVCdWlsZGVyOjpjcmVhdGVMYXlvdXRUcmVlKHJlbmRl
clZpZXcpIH07CisgICAgICAgIGF1dG8gbGF5b3V0U3RhdGUgPSBMYXlvdXRTdGF0ZSB7IFRyZWVC
dWlsZGVyOjpidWlsZExheW91dFRyZWUocmVuZGVyVmlldykgfTsKICAgICAgICAgbGF5b3V0U3Rh
dGUuc2V0UXVpcmtzTW9kZShyZW5kZXJWaWV3LmRvY3VtZW50KCkuaW5MaW1pdGVkUXVpcmtzTW9k
ZSgpID8gTGF5b3V0U3RhdGU6OlF1aXJrc01vZGU6OkxpbWl0ZWQgOiAocmVuZGVyVmlldy5kb2N1
bWVudCgpLmluUXVpcmtzTW9kZSgpID8gTGF5b3V0U3RhdGU6OlF1aXJrc01vZGU6OlllcyA6IExh
eW91dFN0YXRlOjpRdWlya3NNb2RlOjpObykpOwogCiAgICAgICAgIGF1dG8mIGxheW91dFJvb3Qg
PSBsYXlvdXRTdGF0ZS5yb290KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
bGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAppbmRleCBjYmNkNzMwYzdjNTJkYWZmZjJiNTQ3
NWY2ZDJhMmI4NTE2Y2JiMmQ4Li5kZjI2MDJiYzc3NDQ5YjY0NWJlZTI5ZmU3MDhjNWUxMGVkNDBk
ZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRU
cmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91
dFRyZWVCdWlsZGVyLmgKQEAgLTQwLDE0ICs0MCwyOSBAQCBjbGFzcyBCb3g7CiBjbGFzcyBDb250
YWluZXI7CiBjbGFzcyBMYXlvdXRTdGF0ZTsKIAorc3RydWN0IExheW91dFRyZWVDb250ZW50IHsK
KyAgICBMYXlvdXRUcmVlQ29udGVudChjb25zdCBSZW5kZXJCb3gmLCBzdGQ6OnVuaXF1ZV9wdHI8
Q29udGFpbmVyPik7CisKKyAgICBjb25zdCBSZW5kZXJCb3gmIHJvb3RSZW5kZXJlcjsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q29udGFpbmVyPiByb290TGF5b3V0Qm94OworCisgICAgdXNpbmcgUmVu
ZGVyT2JqZWN0VG9MYXlvdXRCb3hNYXAgPSBIYXNoTWFwPGNvbnN0IFJlbmRlck9iamVjdCosIEJv
eCo+OworICAgIFJlbmRlck9iamVjdFRvTGF5b3V0Qm94TWFwIHJlbmRlck9iamVjdFRvTGF5b3V0
Qm94OworfTsKKwogY2xhc3MgVHJlZUJ1aWxkZXIgewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8Q29udGFpbmVyPiBjcmVhdGVMYXlvdXRUcmVlKGNvbnN0IFJlbmRlclZpZXcm
KTsKKyAgICBzdGF0aWMgTGF5b3V0VHJlZUNvbnRlbnQgYnVpbGRMYXlvdXRUcmVlKGNvbnN0IFJl
bmRlclZpZXcmKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBjcmVhdGVTdWJUcmVlKGNv
bnN0IFJlbmRlckVsZW1lbnQmIHJvb3RSZW5kZXJlciwgQ29udGFpbmVyJiByb290Q29udGFpbmVy
KTsKLSAgICBzdGF0aWMgdm9pZCBjcmVhdGVUYWJsZVN0cnVjdHVyZShjb25zdCBSZW5kZXJUYWJs
ZSYgdGFibGVSZW5kZXJlciwgQ29udGFpbmVyJiB0YWJsZVdyYXBwZXJCb3gpOwotICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8Qm94PiBjcmVhdGVMYXlvdXRCb3goY29uc3QgUmVuZGVyRWxlbWVu
dCYgcGFyZW50UmVuZGVyZXIsIGNvbnN0IFJlbmRlck9iamVjdCYgY2hpbGRSZW5kZXJlcik7Cisg
ICAgVHJlZUJ1aWxkZXIoTGF5b3V0VHJlZUNvbnRlbnQmKTsKKworICAgIHZvaWQgYnVpbGRUcmVl
KCk7CisgICAgdm9pZCBidWlsZFN1YlRyZWUoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdFJlbmRl
cmVyLCBDb250YWluZXImIHJvb3RDb250YWluZXIpOworICAgIHZvaWQgYnVpbGRUYWJsZVN0cnVj
dHVyZShjb25zdCBSZW5kZXJUYWJsZSYgdGFibGVSZW5kZXJlciwgQ29udGFpbmVyJiB0YWJsZVdy
YXBwZXJCb3gpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxCb3g+IGNyZWF0ZUxheW91dEJveChjb25z
dCBSZW5kZXJFbGVtZW50JiBwYXJlbnRSZW5kZXJlciwgY29uc3QgUmVuZGVyT2JqZWN0JiBjaGls
ZFJlbmRlcmVyKTsKKworICAgIExheW91dFRyZWVDb250ZW50JiBtX2xheW91dFRyZWVDb250ZW50
OwogfTsKIAogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykK
</data>

          </attachment>
      

    </bug>

</bugzilla>