<?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>186525</bug_id>
          
          <creation_ts>2018-06-11 08:26:45 -0700</creation_ts>
          <short_desc>[LFC] Remove redundant position functions for out-of-flow elements</short_desc>
          <delta_ts>2018-06-11 08:34:16 -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>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1431903</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-06-11 08:26:45 -0700</bug_when>
    <thetext>Position is computed as part of the Horizontal/Vertical geometry computation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431907</commentid>
    <comment_count>1</comment_count>
      <attachid>342434</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-06-11 08:30:13 -0700</bug_when>
    <thetext>Created attachment 342434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431908</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-06-11 08:33:16 -0700</bug_when>
    <thetext>Committed r232716: &lt;https://trac.webkit.org/changeset/232716&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431909</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-11 08:34:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/41005025&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342434</attachid>
            <date>2018-06-11 08:30:13 -0700</date>
            <delta_ts>2018-06-11 08:32:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186525-20180611083012.patch</filename>
            <type>text/plain</type>
            <size>16102</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ0MjZmMTAxZGFlMWEx
MjAxYzUyMTNhYzczMjA4OGNjZjY3Mjg0Mi4uNjEyZmI2NzI2MmIzYWRhYzRjZGJlYmRhZWMxZWYw
OGZkMDI4NDA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTA2LTExICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gUmVtb3ZlIHJlZHVu
ZGFudCBwb3NpdGlvbiBmdW5jdGlvbnMgZm9yIG91dC1vZi1mbG93IGVsZW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY1MjUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3NpdGlvbiBpcyBjb21w
dXRlZCBhcyBwYXJ0IG9mIHRoZSBIb3Jpem9udGFsL1ZlcnRpY2FsIGdlb21ldHJ5IGNvbXB1dGF0
aW9uLgorICAgICAgICAoc2VlIG91dE9mRmxvdyhOb24pUmVwbGFjZWRIb3Jpem9udGFsR2VvbWV0
cnkvb3V0T2ZGbG93KE5vbilSZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkgZnVuY3Rpb25zKQorCisg
ICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVPdXRPZkZsb3dQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L0Zv
cm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2Vv
bWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpvdXRPZkZsb3dOb25SZXBsYWNl
ZFBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6b3V0T2ZGbG93
UmVwbGFjZWRQb3NpdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZv
cm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93UG9zaXRpb24pOiBEZWxldGVkLgor
CiAyMDE4LTA2LTExICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ10gTWVyZ2UgdG9wLCBib3R0b20sIGhlaWdodCBhbmQgdmVydGljYWwgbWFyZ2luIGNvbXB1
dGF0aW9uIGZvciBvdXQtb2YtZmxvdyByZXBsYWNlZCBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNmFlYjRjMmVlN2Y1MTA5MzgwMGZh
MTJkZTM5NjZlMTI5MDQ4NmJkMi4uOTkzMGRjOGQzZTk0OTAzMGE4ZTEyMTdkMjY2ZjdlZWFlZDdk
OGNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBA
IC00OSwxMSArNDksNiBAQCBGb3JtYXR0aW5nQ29udGV4dDo6fkZvcm1hdHRpbmdDb250ZXh0KCkK
IHsKIH0KIAotdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd1Bvc2l0aW9u
KExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBEaXNw
bGF5OjpCb3gmIGRpc3BsYXlCb3gpIGNvbnN0Ci17Ci0gICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0
KEdlb21ldHJ5OjpvdXRPZkZsb3dQb3NpdGlvbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpKTsK
LX0KLQogdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUZsb2F0aW5nSGVpZ2h0QW5kTWFy
Z2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBE
aXNwbGF5OjpCb3gmIGRpc3BsYXlCb3gpIGNvbnN0CiB7CiAgICAgYXV0byBoZWlnaHRBbmRNYXJn
aW4gPSBHZW9tZXRyeTo6ZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5
b3V0Qm94KTsKQEAgLTEyNiw3ICsxMjEsNiBAQCB2b2lkIEZvcm1hdHRpbmdDb250ZXh0OjpsYXlv
dXRPdXRPZkZsb3dEZXNjZW5kYW50cyhMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0KQogICAg
ICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0KGxheW91dENvbnRleHQsIGxheW91dENvbnRl
eHQuZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUobGF5b3V0Qm94LCAqZm9ybWF0dGluZ0NvbnRl
eHQpKTsKIAogICAgICAgICBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShsYXlvdXRD
b250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOwotICAgICAgICBjb21wdXRlT3V0T2ZGbG93
UG9zaXRpb24obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBkaXNwbGF5Qm94KTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggMmY5YWZh
NmI3NWU3NzU2ZTQ4ODg0YjZmYWQwN2U0NmUzYzA3MWE4Ny4uMzUzYmVjMWFlZDQzZTYxMzNhOTkx
Zjk0ZTU2MDU5Nzk0Njc1NzcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zv
cm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0LmgKQEAgLTExMSw4ICsxMTEsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBI
ZWlnaHRBbmRNYXJnaW4gZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNv
bnN0IEJveCYpOwogICAgICAgICBzdGF0aWMgV2lkdGhBbmRNYXJnaW4gZmxvYXRpbmdXaWR0aEFu
ZE1hcmdpbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAKLSAgICAgICAgc3RhdGljIExh
eW91dFBvaW50IG91dE9mRmxvd1Bvc2l0aW9uKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsK
LQogICAgICAgICBzdGF0aWMgSGVpZ2h0QW5kTWFyZ2luIGlubGluZVJlcGxhY2VkSGVpZ2h0QW5k
TWFyZ2luKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKICAgICAgICAgc3RhdGljIFdpZHRo
QW5kTWFyZ2luIGlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNv
bnN0IEJveCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRNYXJnaW5MZWZ0
ID0geyB9LAogICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRl
ZE1hcmdpblJpZ2h0ID0geyB9KTsKQEAgLTEzOCw3ICsxMzYsNiBAQCBwcm90ZWN0ZWQ6CiAgICAg
fTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGNvbXB1dGVPdXRPZkZsb3dQb3NpdGlvbihMYXlvdXRD
b250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3Q7CiAgICAgdm9pZCBjb21w
dXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jiwg
RGlzcGxheTo6Qm94JikgY29uc3Q7CiAgICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRh
bEdlb21ldHJ5KExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25z
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0
R2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2Vv
bWV0cnkuY3BwCmluZGV4IGY1YWZjNjEzNjc1MzU1ZTc4YjU0NGUxODgwNTc4MDc4MzIwYzI1ZDAu
LmQ1NDUxOGU5NWMyZmQ3MmY1OTk0MDkwYzljYTNkY2M1ZjM2MGZjNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTUz
NSwxOTQgKzUzNSw2IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6V2lkdGhBbmRNYXJn
aW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluCiAgICAgcmV0dXJuIGlubGlu
ZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBjb21wdXRl
ZE5vbkNvbGxhcHNlZEhvcml6b250YWxNYXJnaW5WYWx1ZXMubGVmdCwgY29tcHV0ZWROb25Db2xs
YXBzZWRIb3Jpem9udGFsTWFyZ2luVmFsdWVzLnJpZ2h0KTsKIH0KIAotc3RhdGljIExheW91dFBv
aW50IG91dE9mRmxvd05vblJlcGxhY2VkUG9zaXRpb24oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29u
dGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCi17Ci0gICAgQVNTRVJUKGxheW91dEJveC5pc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiAhbGF5b3V0Qm94LnJlcGxhY2VkKCkpOwotCi0gICAgLy8g
MTAuMy43IEFic29sdXRlbHkgcG9zaXRpb25lZCwgbm9uLXJlcGxhY2VkIGVsZW1lbnRzIChsZWZ0
L3JpZ2h0KQotICAgIC8vIDEwLjYuNCBBYnNvbHV0ZWx5IHBvc2l0aW9uZWQsIG5vbi1yZXBsYWNl
ZCBlbGVtZW50cyAodG9wL2JvdHRvbSkKLQotICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UndmUgdGhl
IHNpemUgY29tcHV0ZWQuCi0gICAgYXV0byYgZGlzcGxheUJveCA9ICpsYXlvdXRDb250ZXh0LmRp
c3BsYXlCb3hGb3JMYXlvdXRCb3gobGF5b3V0Qm94KTsKLSAgICBhdXRvIHNpemUgPSBkaXNwbGF5
Qm94LnNpemUoKTsKLSAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwotCi0gICAg
Ly8gMTAuNi40IEFic29sdXRlbHkgcG9zaXRpb25lZCwgbm9uLXJlcGxhY2VkIGVsZW1lbnRzCi0g
ICAgYXV0byB0b3AgPSBzdHlsZS5sb2dpY2FsVG9wKCk7Ci0gICAgYXV0byBib3R0b20gPSBzdHls
ZS5sb2dpY2FsQm90dG9tKCk7Ci0gICAgYXV0byBjb250YWluaW5nQmxvY2tIZWlnaHQgPSBsYXlv
dXRDb250ZXh0LmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goKmxheW91dEJveC5jb250YWluaW5nQmxv
Y2soKSktPmhlaWdodCgpOwotCi0gICAgLy8gJ3RvcCcgKyAnbWFyZ2luLXRvcCcgKyAnYm9yZGVy
LXRvcC13aWR0aCcgKyAncGFkZGluZy10b3AnICsgJ2hlaWdodCcgKyAncGFkZGluZy1ib3R0b20n
ICsgJ2JvcmRlci1ib3R0b20td2lkdGgnICsgJ21hcmdpbi1ib3R0b20nICsgJ2JvdHRvbScKLSAg
ICAvLyA9IGhlaWdodCBvZiBjb250YWluaW5nIGJsb2NrCi0gICAgLy8KLSAgICAvLyAxLiAndG9w
JyBhbmQgJ2hlaWdodCcgYXJlICdhdXRvJyBhbmQgJ2JvdHRvbScgaXMgbm90ICdhdXRvJywgdGhl
biB0aGUgaGVpZ2h0IGlzIGJhc2VkIG9uIHRoZSBjb250ZW50IHBlciAxMC42LjcsCi0gICAgLy8g
ICAgIHNldCAnYXV0bycgdmFsdWVzIGZvciAnbWFyZ2luLXRvcCcgYW5kICdtYXJnaW4tYm90dG9t
JyB0byAwLCBhbmQgc29sdmUgZm9yICd0b3AnCi0gICAgLy8gMi4gJ3RvcCcgYW5kICdib3R0b20n
IGFyZSAnYXV0bycgYW5kICdoZWlnaHQnIGlzIG5vdCAnYXV0bycsIHRoZW4gc2V0ICd0b3AnIHRv
IHRoZSBzdGF0aWMgcG9zaXRpb24sIHNldCAnYXV0bycgdmFsdWVzIGZvcgotICAgIC8vICAgICdt
YXJnaW4tdG9wJyBhbmQgJ21hcmdpbi1ib3R0b20nIHRvIDAsIGFuZCBzb2x2ZSBmb3IgJ2JvdHRv
bScKLSAgICAvLyAzLiAnaGVpZ2h0JyBhbmQgJ2JvdHRvbScgYXJlICdhdXRvJyBhbmQgJ3RvcCcg
aXMgbm90ICdhdXRvJywgdGhlbiB0aGUgaGVpZ2h0IGlzIGJhc2VkIG9uIHRoZSBjb250ZW50IHBl
ciAxMC42LjcsIHNldCAnYXV0bycKLSAgICAvLyAgICAgdmFsdWVzIGZvciAnbWFyZ2luLXRvcCcg
YW5kICdtYXJnaW4tYm90dG9tJyB0byAwLCBhbmQgc29sdmUgZm9yICdib3R0b20nCi0gICAgLy8g
NC4gJ3RvcCcgaXMgJ2F1dG8nLCAnaGVpZ2h0JyBhbmQgJ2JvdHRvbScgYXJlIG5vdCAnYXV0bycs
IHRoZW4gc2V0ICdhdXRvJyB2YWx1ZXMgZm9yICdtYXJnaW4tdG9wJyBhbmQgJ21hcmdpbi1ib3R0
b20nIHRvIDAsIGFuZCBzb2x2ZSBmb3IgJ3RvcCcKLSAgICAvLyA1LiAnaGVpZ2h0JyBpcyAnYXV0
bycsICd0b3AnIGFuZCAnYm90dG9tJyBhcmUgbm90ICdhdXRvJywgdGhlbiAnYXV0bycgdmFsdWVz
IGZvciAnbWFyZ2luLXRvcCcgYW5kICdtYXJnaW4tYm90dG9tJyBhcmUgc2V0IHRvIDAgYW5kIHNv
bHZlIGZvciAnaGVpZ2h0JwotICAgIC8vIDYuICdib3R0b20nIGlzICdhdXRvJywgJ3RvcCcgYW5k
ICdoZWlnaHQnIGFyZSBub3QgJ2F1dG8nLCB0aGVuIHNldCAnYXV0bycgdmFsdWVzIGZvciAnbWFy
Z2luLXRvcCcgYW5kICdtYXJnaW4tYm90dG9tJyB0byAwIGFuZCBzb2x2ZSBmb3IgJ2JvdHRvbScK
LSAgICBMYXlvdXRVbml0IGNvbXB1dGVkVG9wVmFsdWU7Ci0gICAgaWYgKHRvcC5pc0F1dG8oKSAm
JiAhYm90dG9tLmlzQXV0bygpKSB7Ci0gICAgICAgIC8vICMxICM0Ci0gICAgICAgIGF1dG8gbWFy
Z2luVG9wID0gZGlzcGxheUJveC5tYXJnaW5Ub3AoKTsKLSAgICAgICAgYXV0byBtYXJnaW5Cb3R0
b20gPSBkaXNwbGF5Qm94Lm1hcmdpbkJvdHRvbSgpOwotICAgIAotICAgICAgICBhdXRvIHBhZGRp
bmdUb3AgPSBkaXNwbGF5Qm94LnBhZGRpbmdUb3AoKTsKLSAgICAgICAgYXV0byBwYWRkaW5nQm90
dG9tID0gZGlzcGxheUJveC5wYWRkaW5nQm90dG9tKCk7Ci0KLSAgICAgICAgYXV0byBib3JkZXJU
b3AgPSBkaXNwbGF5Qm94LmJvcmRlclRvcCgpOwotICAgICAgICBhdXRvIGJvcmRlckJvdHRvbSA9
IGRpc3BsYXlCb3guYm9yZGVyQm90dG9tKCk7Ci0KLSAgICAgICAgY29tcHV0ZWRUb3BWYWx1ZSA9
IGNvbnRhaW5pbmdCbG9ja0hlaWdodCAtIChtYXJnaW5Ub3AgKyBib3JkZXJUb3AgKyBwYWRkaW5n
VG9wICsgc2l6ZS5oZWlnaHQoKSArIHBhZGRpbmdCb3R0b20gKyBib3JkZXJCb3R0b20gKyBtYXJn
aW5Cb3R0b20gKyBib3R0b20udmFsdWUoKSk7Ci0gICAgfSBlbHNlIGlmICh0b3AuaXNBdXRvKCkg
JiYgYm90dG9tLmlzQXV0bygpKSB7Ci0gICAgICAgIC8vICMyCi0gICAgICAgIC8vIEFscmVhZHkg
Y29tcHV0ZWQgYXMgcGFydCBvZiB0aGUgY29tcHV0ZVN0YXRpY1Bvc2l0aW9uKCk7Ci0gICAgICAg
IGNvbXB1dGVkVG9wVmFsdWUgPSBkaXNwbGF5Qm94LnRvcCgpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIC8vICMzICM1ICM2IGhhdmUgdG9wICE9IGF1dG8KLSAgICAgICAgY29tcHV0ZWRUb3BWYWx1
ZSA9IHZhbHVlRm9yTGVuZ3RoKHRvcCwgY29udGFpbmluZ0Jsb2NrSGVpZ2h0KTsKLSAgICB9Ci0K
LQotICAgIC8vIDEwLjMuNyBBYnNvbHV0ZWx5IHBvc2l0aW9uZWQsIG5vbi1yZXBsYWNlZCBlbGVt
ZW50cwotICAgIGF1dG8gbGVmdCA9IHN0eWxlLmxvZ2ljYWxMZWZ0KCk7Ci0gICAgYXV0byByaWdo
dCA9IHN0eWxlLmxvZ2ljYWxSaWdodCgpOwotICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGgg
PSBsYXlvdXRDb250ZXh0LmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goKmxheW91dEJveC5jb250YWlu
aW5nQmxvY2soKSktPndpZHRoKCk7Ci0KLSAgICAvLyAnbGVmdCcgKyAnbWFyZ2luLWxlZnQnICsg
J2JvcmRlci1sZWZ0LXdpZHRoJyArICdwYWRkaW5nLWxlZnQnICsgJ3dpZHRoJyArICdwYWRkaW5n
LXJpZ2h0JyArICdib3JkZXItcmlnaHQtd2lkdGgnICsgJ21hcmdpbi1yaWdodCcgKyAncmlnaHQn
Ci0gICAgLy8gPSB3aWR0aCBvZiBjb250YWluaW5nIGJsb2NrCi0gICAgLy8KLSAgICAvLyBJZiBh
bGwgdGhyZWUgb2YgJ2xlZnQnLCAnd2lkdGgnLCBhbmQgJ3JpZ2h0JyBhcmUgJ2F1dG8nOiBGaXJz
dCBzZXQgYW55ICdhdXRvJyB2YWx1ZXMgZm9yICdtYXJnaW4tbGVmdCcgYW5kICdtYXJnaW4tcmln
aHQnIHRvIDAuCi0gICAgLy8gVGhlbiwgaWYgdGhlICdkaXJlY3Rpb24nIHByb3BlcnR5IG9mIHRo
ZSBlbGVtZW50IGVzdGFibGlzaGluZyB0aGUgc3RhdGljLXBvc2l0aW9uIGNvbnRhaW5pbmcgYmxv
Y2sgaXMgJ2x0cicgc2V0ICdsZWZ0JyB0byB0aGUgc3RhdGljCi0gICAgLy8gcG9zaXRpb24gYW5k
IGFwcGx5IHJ1bGUgbnVtYmVyIHRocmVlIGJlbG93OyBvdGhlcndpc2UsIHNldCAncmlnaHQnIHRv
IHRoZSBzdGF0aWMgcG9zaXRpb24gYW5kIGFwcGx5IHJ1bGUgbnVtYmVyIG9uZSBiZWxvdy4KLQot
ICAgIC8vIDEuICdsZWZ0JyBhbmQgJ3dpZHRoJyBhcmUgJ2F1dG8nIGFuZCAncmlnaHQnIGlzIG5v
dCAnYXV0bycsIHRoZW4gdGhlIHdpZHRoIGlzIHNocmluay10by1maXQuIFRoZW4gc29sdmUgZm9y
ICdsZWZ0JwotICAgIC8vIDIuICdsZWZ0JyBhbmQgJ3JpZ2h0JyBhcmUgJ2F1dG8nIGFuZCAnd2lk
dGgnIGlzIG5vdCAnYXV0bycsIHRoZW4gaWYgdGhlICdkaXJlY3Rpb24nIHByb3BlcnR5IG9mIHRo
ZSBlbGVtZW50IGVzdGFibGlzaGluZyB0aGUgc3RhdGljLXBvc2l0aW9uIAotICAgIC8vICAgIGNv
bnRhaW5pbmcgYmxvY2sgaXMgJ2x0cicgc2V0ICdsZWZ0JyB0byB0aGUgc3RhdGljIHBvc2l0aW9u
LCBvdGhlcndpc2Ugc2V0ICdyaWdodCcgdG8gdGhlIHN0YXRpYyBwb3NpdGlvbi4KLSAgICAvLyAg
ICBUaGVuIHNvbHZlIGZvciAnbGVmdCcgKGlmICdkaXJlY3Rpb24gaXMgJ3J0bCcpIG9yICdyaWdo
dCcgKGlmICdkaXJlY3Rpb24nIGlzICdsdHInKS4KLSAgICAvLyAzLiAnd2lkdGgnIGFuZCAncmln
aHQnIGFyZSAnYXV0bycgYW5kICdsZWZ0JyBpcyBub3QgJ2F1dG8nLCB0aGVuIHRoZSB3aWR0aCBp
cyBzaHJpbmstdG8tZml0IC4gVGhlbiBzb2x2ZSBmb3IgJ3JpZ2h0JwotICAgIC8vIDQuICdsZWZ0
JyBpcyAnYXV0bycsICd3aWR0aCcgYW5kICdyaWdodCcgYXJlIG5vdCAnYXV0bycsIHRoZW4gc29s
dmUgZm9yICdsZWZ0JwotICAgIC8vIDUuICd3aWR0aCcgaXMgJ2F1dG8nLCAnbGVmdCcgYW5kICdy
aWdodCcgYXJlIG5vdCAnYXV0bycsIHRoZW4gc29sdmUgZm9yICd3aWR0aCcKLSAgICAvLyA2LiAn
cmlnaHQnIGlzICdhdXRvJywgJ2xlZnQnIGFuZCAnd2lkdGgnIGFyZSBub3QgJ2F1dG8nLCB0aGVu
IHNvbHZlIGZvciAncmlnaHQnCi0gICAgTGF5b3V0VW5pdCBjb21wdXRlZExlZnRWYWx1ZTsKLSAg
ICBpZiAobGVmdC5pc0F1dG8oKSAmJiAhcmlnaHQuaXNBdXRvKCkpIHsKLSAgICAgICAgLy8gIzEg
IzQKLSAgICAgICAgYXV0byBtYXJnaW5MZWZ0ID0gZGlzcGxheUJveC5tYXJnaW5MZWZ0KCk7Ci0g
ICAgICAgIGF1dG8gbWFyZ2luUmlnaHQgPSBkaXNwbGF5Qm94Lm1hcmdpblJpZ2h0KCk7Ci0gICAg
Ci0gICAgICAgIGF1dG8gcGFkZGluZ0xlZnQgPSBkaXNwbGF5Qm94LnBhZGRpbmdMZWZ0KCk7Ci0g
ICAgICAgIGF1dG8gcGFkZGluZ1JpZ2h0ID0gZGlzcGxheUJveC5wYWRkaW5nUmlnaHQoKTsKLQot
ICAgICAgICBhdXRvIGJvcmRlckxlZnQgPSBkaXNwbGF5Qm94LmJvcmRlckxlZnQoKTsKLSAgICAg
ICAgYXV0byBib3JkZXJSaWdodCA9IGRpc3BsYXlCb3guYm9yZGVyUmlnaHQoKTsKLQotICAgICAg
ICBjb21wdXRlZExlZnRWYWx1ZSA9IGNvbnRhaW5pbmdCbG9ja1dpZHRoIC0gKG1hcmdpbkxlZnQg
KyBib3JkZXJMZWZ0ICsgcGFkZGluZ0xlZnQgKyBzaXplLndpZHRoKCkgKyBwYWRkaW5nUmlnaHQg
KyBib3JkZXJSaWdodCArIG1hcmdpblJpZ2h0ICsgcmlnaHQudmFsdWUoKSk7Ci0gICAgfSBlbHNl
IGlmIChsZWZ0LmlzQXV0bygpICYmIHJpZ2h0LmlzQXV0bygpKSB7Ci0gICAgICAgIC8vICMyCi0g
ICAgICAgIC8vIEZJWE1FOiBydGwKLSAgICAgICAgY29tcHV0ZWRMZWZ0VmFsdWUgPSBkaXNwbGF5
Qm94LmxlZnQoKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyAjMyAjNSAjNiBoYXZlIGxlZnQg
IT0gYXV0bwotICAgICAgICBjb21wdXRlZExlZnRWYWx1ZSA9IHZhbHVlRm9yTGVuZ3RoKGxlZnQs
IGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4geyBjb21wdXRlZExl
ZnRWYWx1ZSwgY29tcHV0ZWRUb3BWYWx1ZSB9OwotfQotCi1zdGF0aWMgTGF5b3V0UG9pbnQgb3V0
T2ZGbG93UmVwbGFjZWRQb3NpdGlvbihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25z
dCBCb3gmIGxheW91dEJveCkKLXsKLSAgICBBU1NFUlQobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9z
aXRpb25lZCgpICYmIGxheW91dEJveC5yZXBsYWNlZCgpKTsKLQotICAgIC8vIDEwLjYuNSBBYnNv
bHV0ZWx5IHBvc2l0aW9uZWQsIHJlcGxhY2VkIGVsZW1lbnRzICh0b3AvYm90dG9tKQotICAgIC8v
IDEwLjMuOCBBYnNvbHV0ZWx5IHBvc2l0aW9uZWQsIHJlcGxhY2VkIGVsZW1lbnRzIChsZWZ0L3Jp
Z2h0KQotCi0gICAgLy8gQXQgdGhpcyBwb2ludCB3ZSd2ZSB0aGUgc2l6ZSBjb21wdXRlZC4KLSAg
ICBhdXRvJiBkaXNwbGF5Qm94ID0gKmxheW91dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJv
eChsYXlvdXRCb3gpOwotICAgIGF1dG8gc2l6ZSA9IGRpc3BsYXlCb3guc2l6ZSgpOwotICAgIGF1
dG8mIHN0eWxlID0gbGF5b3V0Qm94LnN0eWxlKCk7Ci0KLSAgICAvLyAxMC42LjUgQWJzb2x1dGVs
eSBwb3NpdGlvbmVkLCByZXBsYWNlZCBlbGVtZW50cwotICAgIC8vCi0gICAgLy8gVGhpcyBzaXR1
YXRpb24gaXMgc2ltaWxhciB0byB0aGUgcHJldmlvdXMgb25lLCBleGNlcHQgdGhhdCB0aGUgZWxl
bWVudCBoYXMgYW4gaW50cmluc2ljIGhlaWdodC4gVGhlIHNlcXVlbmNlIG9mIHN1YnN0aXR1dGlv
bnMgaXMgbm93OgotICAgIC8vIFRoZSB1c2VkIHZhbHVlIG9mICdoZWlnaHQnIGlzIGRldGVybWlu
ZWQgYXMgZm9yIGlubGluZSByZXBsYWNlZCBlbGVtZW50cy4gSWYgJ21hcmdpbi10b3AnIG9yICdt
YXJnaW4tYm90dG9tJyBpcyBzcGVjaWZpZWQgYXMgJ2F1dG8nCi0gICAgLy8gaXRzIHVzZWQgdmFs
dWUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgcnVsZXMgYmVsb3cuCi0gICAgLy8KLSAgICAvLyAxLiBJ
ZiBib3RoICd0b3AnIGFuZCAnYm90dG9tJyBoYXZlIHRoZSB2YWx1ZSAnYXV0bycsIHJlcGxhY2Ug
J3RvcCcgd2l0aCB0aGUgZWxlbWVudCdzIHN0YXRpYyBwb3NpdGlvbi4KLSAgICAvLyAyLiBJZiAn
Ym90dG9tJyBpcyAnYXV0bycsIHJlcGxhY2UgYW55ICdhdXRvJyBvbiAnbWFyZ2luLXRvcCcgb3Ig
J21hcmdpbi1ib3R0b20nIHdpdGggJzAnLgotICAgIC8vIDMuIElmIGF0IHRoaXMgcG9pbnQgYm90
aCAnbWFyZ2luLXRvcCcgYW5kICdtYXJnaW4tYm90dG9tJyBhcmUgc3RpbGwgJ2F1dG8nLCBzb2x2
ZSB0aGUgZXF1YXRpb24gdW5kZXIgdGhlIGV4dHJhIGNvbnN0cmFpbnQgdGhhdCB0aGUgdHdvIG1h
cmdpbnMgbXVzdCBnZXQgZXF1YWwgdmFsdWVzLgotICAgIC8vIDQuIElmIGF0IHRoaXMgcG9pbnQg
dGhlcmUgaXMgb25seSBvbmUgJ2F1dG8nIGxlZnQsIHNvbHZlIHRoZSBlcXVhdGlvbiBmb3IgdGhh
dCB2YWx1ZS4KLSAgICAvLyA1LiBJZiBhdCB0aGlzIHBvaW50IHRoZSB2YWx1ZXMgYXJlIG92ZXIt
Y29uc3RyYWluZWQsIGlnbm9yZSB0aGUgdmFsdWUgZm9yICdib3R0b20nIGFuZCBzb2x2ZSBmb3Ig
dGhhdCB2YWx1ZS4KLSAgICBhdXRvIHRvcCA9IHN0eWxlLmxvZ2ljYWxUb3AoKTsKLSAgICBhdXRv
IGJvdHRvbSA9IHN0eWxlLmxvZ2ljYWxCb3R0b20oKTsKLSAgICBhdXRvIGNvbnRhaW5pbmdCbG9j
a0hlaWdodCA9IGxheW91dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJveCgqbGF5b3V0Qm94
LmNvbnRhaW5pbmdCbG9jaygpKS0+aGVpZ2h0KCk7Ci0gICAgTGF5b3V0VW5pdCBjb21wdXRlZFRv
cFZhbHVlOwotCi0gICAgaWYgKCF0b3AuaXNBdXRvKCkpCi0gICAgICAgIGNvbXB1dGVkVG9wVmFs
dWUgPSB2YWx1ZUZvckxlbmd0aCh0b3AsIGNvbnRhaW5pbmdCbG9ja0hlaWdodCk7Ci0gICAgZWxz
ZSBpZiAoYm90dG9tLmlzQXV0bygpKSB7Ci0gICAgICAgIC8vICMxCi0gICAgICAgIGNvbXB1dGVk
VG9wVmFsdWUgPSBkaXNwbGF5Qm94LnRvcCgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vICM0
Ci0gICAgICAgIGF1dG8gbWFyZ2luVG9wID0gZGlzcGxheUJveC5tYXJnaW5Ub3AoKTsKLSAgICAg
ICAgYXV0byBtYXJnaW5Cb3R0b20gPSBkaXNwbGF5Qm94Lm1hcmdpbkJvdHRvbSgpOwotCi0gICAg
ICAgIGF1dG8gcGFkZGluZ1RvcCA9IGRpc3BsYXlCb3gucGFkZGluZ1RvcCgpOwotICAgICAgICBh
dXRvIHBhZGRpbmdCb3R0b20gPSBkaXNwbGF5Qm94LnBhZGRpbmdCb3R0b20oKTsKLQotICAgICAg
ICBhdXRvIGJvcmRlclRvcCA9IGRpc3BsYXlCb3guYm9yZGVyVG9wKCk7Ci0gICAgICAgIGF1dG8g
Ym9yZGVyQm90dG9tID0gZGlzcGxheUJveC5ib3JkZXJCb3R0b20oKTsKLQotICAgICAgICBjb21w
dXRlZFRvcFZhbHVlID0gY29udGFpbmluZ0Jsb2NrSGVpZ2h0IC0gKG1hcmdpblRvcCArIGJvcmRl
clRvcCArIHBhZGRpbmdUb3AgKyBzaXplLmhlaWdodCgpICsgcGFkZGluZ0JvdHRvbSArIGJvcmRl
ckJvdHRvbSArIG1hcmdpbkJvdHRvbSArIGJvdHRvbS52YWx1ZSgpKTsKLSAgICB9Ci0KLQotICAg
IC8vIDEwLjMuOCBBYnNvbHV0ZWx5IHBvc2l0aW9uZWQsIHJlcGxhY2VkIGVsZW1lbnRzCi0gICAg
Ly8KLSAgICAvLyBJbiB0aGlzIGNhc2UsIHNlY3Rpb24gMTAuMy43IGFwcGxpZXMgdXAgdGhyb3Vn
aCBhbmQgaW5jbHVkaW5nIHRoZSBjb25zdHJhaW50IGVxdWF0aW9uLCBidXQgdGhlIHJlc3Qgb2Yg
c2VjdGlvbiAxMC4zLjcgaXMgcmVwbGFjZWQgYnkgdGhlIGZvbGxvd2luZyBydWxlczoKLSAgICAv
LwotICAgIC8vIFRoZSB1c2VkIHZhbHVlIG9mICd3aWR0aCcgaXMgZGV0ZXJtaW5lZCBhcyBmb3Ig
aW5saW5lIHJlcGxhY2VkIGVsZW1lbnRzLiAKLSAgICAvLwotICAgIC8vIDEuIElmICdtYXJnaW4t
bGVmdCcgb3IgJ21hcmdpbi1yaWdodCcgaXMgc3BlY2lmaWVkIGFzICdhdXRvJyBpdHMgdXNlZCB2
YWx1ZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBydWxlcyBiZWxvdy4KLSAgICAvLyAyLiBJZiBib3Ro
ICdsZWZ0JyBhbmQgJ3JpZ2h0JyBoYXZlIHRoZSB2YWx1ZSAnYXV0bycsIHRoZW4gaWYgdGhlICdk
aXJlY3Rpb24nIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IGVzdGFibGlzaGluZyB0aGUKLSAgICAv
LyAgICBzdGF0aWMtcG9zaXRpb24gY29udGFpbmluZyBibG9jayBpcyAnbHRyJywgc2V0ICdsZWZ0
JyB0byB0aGUgc3RhdGljIHBvc2l0aW9uOyBlbHNlIGlmICdkaXJlY3Rpb24nIGlzICdydGwnLCBz
ZXQgJ3JpZ2h0JyB0byB0aGUgc3RhdGljIHBvc2l0aW9uLgotICAgIC8vIDMuIElmICdsZWZ0JyBv
ciAncmlnaHQnIGFyZSAnYXV0bycsIHJlcGxhY2UgYW55ICdhdXRvJyBvbiAnbWFyZ2luLWxlZnQn
IG9yICdtYXJnaW4tcmlnaHQnIHdpdGggJzAnLgotICAgIC8vIDQuIElmIGF0IHRoaXMgcG9pbnQg
Ym90aCAnbWFyZ2luLWxlZnQnIGFuZCAnbWFyZ2luLXJpZ2h0JyBhcmUgc3RpbGwgJ2F1dG8nLCBz
b2x2ZSB0aGUgZXF1YXRpb24gdW5kZXIgdGhlIGV4dHJhIGNvbnN0cmFpbnQKLSAgICAvLyAgICB0
aGF0IHRoZSB0d28gbWFyZ2lucyBtdXN0IGdldCBlcXVhbCB2YWx1ZXMsIHVubGVzcyB0aGlzIHdv
dWxkIG1ha2UgdGhlbSBuZWdhdGl2ZSwgaW4gd2hpY2ggY2FzZSB3aGVuIHRoZSBkaXJlY3Rpb24g
b2YKLSAgICAvLyAgICB0aGUgY29udGFpbmluZyBibG9jayBpcyAnbHRyJyAoJ3J0bCcpLCBzZXQg
J21hcmdpbi1sZWZ0JyAoJ21hcmdpbi1yaWdodCcpIHRvIHplcm8gYW5kIHNvbHZlIGZvciAnbWFy
Z2luLXJpZ2h0JyAoJ21hcmdpbi1sZWZ0JykuCi0gICAgLy8gNS4gSWYgYXQgdGhpcyBwb2ludCB0
aGVyZSBpcyBhbiAnYXV0bycgbGVmdCwgc29sdmUgdGhlIGVxdWF0aW9uIGZvciB0aGF0IHZhbHVl
LgotICAgIC8vIDYuIElmIGF0IHRoaXMgcG9pbnQgdGhlIHZhbHVlcyBhcmUgb3Zlci1jb25zdHJh
aW5lZCwgaWdub3JlIHRoZSB2YWx1ZSBmb3IgZWl0aGVyICdsZWZ0JyAoaW4gY2FzZSB0aGUgJ2Rp
cmVjdGlvbicKLSAgICAvLyAgICBwcm9wZXJ0eSBvZiB0aGUgY29udGFpbmluZyBibG9jayBpcyAn
cnRsJykgb3IgJ3JpZ2h0JyAoaW4gY2FzZSAnZGlyZWN0aW9uJyBpcyAnbHRyJykgYW5kIHNvbHZl
IGZvciB0aGF0IHZhbHVlLgotICAgIGF1dG8gbGVmdCA9IHN0eWxlLmxvZ2ljYWxMZWZ0KCk7Ci0g
ICAgYXV0byByaWdodCA9IHN0eWxlLmxvZ2ljYWxSaWdodCgpOwotICAgIGF1dG8gY29udGFpbmlu
Z0Jsb2NrV2lkdGggPSBsYXlvdXRDb250ZXh0LmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goKmxheW91
dEJveC5jb250YWluaW5nQmxvY2soKSktPndpZHRoKCk7Ci0gICAgTGF5b3V0VW5pdCBjb21wdXRl
ZExlZnRWYWx1ZTsKLQotICAgIGlmICghbGVmdC5pc0F1dG8oKSkgICAKLSAgICAgICAgY29tcHV0
ZWRMZWZ0VmFsdWUgPSB2YWx1ZUZvckxlbmd0aChsZWZ0LCBjb250YWluaW5nQmxvY2tXaWR0aCk7
Ci0gICAgZWxzZSBpZiAocmlnaHQuaXNBdXRvKCkpIHsKLSAgICAgICAgLy8gRklYTUU6IHRha2Ug
ZGlyZWN0aW9uIGludG8gYWNjb3VudAotICAgICAgICBjb21wdXRlZExlZnRWYWx1ZSA9IGRpc3Bs
YXlCb3gubGVmdCgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vICM1Ci0gICAgICAgIGF1dG8g
bWFyZ2luTGVmdCA9IGRpc3BsYXlCb3gubWFyZ2luTGVmdCgpOwotICAgICAgICBhdXRvIG1hcmdp
blJpZ2h0ID0gZGlzcGxheUJveC5tYXJnaW5SaWdodCgpOwotICAgIAotICAgICAgICBhdXRvIHBh
ZGRpbmdMZWZ0ID0gZGlzcGxheUJveC5wYWRkaW5nTGVmdCgpOwotICAgICAgICBhdXRvIHBhZGRp
bmdSaWdodCA9IGRpc3BsYXlCb3gucGFkZGluZ1JpZ2h0KCk7Ci0KLSAgICAgICAgYXV0byBib3Jk
ZXJMZWZ0ID0gZGlzcGxheUJveC5ib3JkZXJMZWZ0KCk7Ci0gICAgICAgIGF1dG8gYm9yZGVyUmln
aHQgPSBkaXNwbGF5Qm94LmJvcmRlclJpZ2h0KCk7Ci0KLSAgICAgICAgY29tcHV0ZWRMZWZ0VmFs
dWUgPSBjb250YWluaW5nQmxvY2tXaWR0aCAtIChtYXJnaW5MZWZ0ICsgYm9yZGVyTGVmdCArIHBh
ZGRpbmdMZWZ0ICsgc2l6ZS53aWR0aCgpICsgcGFkZGluZ1JpZ2h0ICsgYm9yZGVyUmlnaHQgKyBt
YXJnaW5SaWdodCArIHJpZ2h0LnZhbHVlKCkpOwotICAgIH0KLQotICAgIHJldHVybiB7IGNvbXB1
dGVkTGVmdFZhbHVlLCBjb21wdXRlZFRvcFZhbHVlIH07Ci19Ci0KIEZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6VmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
Om91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwg
Y29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc091dE9mRmxv
d1Bvc2l0aW9uZWQoKSk7CkBAIC03NTksMTUgKzU3MSw2IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6V2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9h
dGluCiAgICAgcmV0dXJuIGZsb2F0aW5nUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihsYXlvdXRDb250
ZXh0LCBsYXlvdXRCb3gpOwogfQogCi1MYXlvdXRQb2ludCBGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6Om91dE9mRmxvd1Bvc2l0aW9uKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNv
bnN0IEJveCYgbGF5b3V0Qm94KQotewotICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkpOwotCi0gICAgaWYgKCFsYXlvdXRCb3gucmVwbGFjZWQoKSkKLSAgICAgICAg
cmV0dXJuIG91dE9mRmxvd05vblJlcGxhY2VkUG9zaXRpb24obGF5b3V0Q29udGV4dCwgbGF5b3V0
Qm94KTsKLSAgICByZXR1cm4gb3V0T2ZGbG93UmVwbGFjZWRQb3NpdGlvbihsYXlvdXRDb250ZXh0
LCBsYXlvdXRCb3gpOwotfQotCiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OkhlaWdodEFu
ZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJlcGxhY2VkSGVpZ2h0
QW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0
Qm94KQogewogICAgIEFTU0VSVCgobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8
IGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpIHx8IGxheW91dEJveC5pc0luRmxvdygp
KSAmJiBsYXlvdXRCb3gucmVwbGFjZWQoKSk7Cg==
</data>
<flag name="review"
          id="360532"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>