<?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>188619</bug_id>
          
          <creation_ts>2018-08-15 13:55:52 -0700</creation_ts>
          <short_desc>[LFC][Floating] Add estimated margin top computation.</short_desc>
          <delta_ts>2018-08-16 08:44:18 -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>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>1450450</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-15 13:55:52 -0700</bug_when>
    <thetext>we need that for floats at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450479</commentid>
    <comment_count>1</comment_count>
      <attachid>347211</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-08-15 15:04:17 -0700</bug_when>
    <thetext>Created attachment 347211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450525</commentid>
    <comment_count>2</comment_count>
      <attachid>347224</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-08-15 16:49:30 -0700</bug_when>
    <thetext>Created attachment 347224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450693</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-16 08:43:59 -0700</bug_when>
    <thetext>Committed r234927: &lt;https://trac.webkit.org/changeset/234927&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450694</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-16 08:44:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/43382738&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347211</attachid>
            <date>2018-08-15 15:04:17 -0700</date>
            <delta_ts>2018-08-15 16:01:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188619-20180815150416.patch</filename>
            <type>text/plain</type>
            <size>17383</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0ODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBlZjM4OTNjMmMxMGQz
MjIyNThiNzkxMzBiNjIxNzE3NjhjMDRjMC4uYmY5ZTA3M2IyMjAyMDc0MGEwZDVkYjY0YTlmZjgz
NmQxYzg5Y2RlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTA4LTE1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2xGQ11bRmxvYXRpbmddIEFk
ZCBlc3RpbWF0ZWQgbWFyZ2luIHRvcCBjb21wdXRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODYxOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpZ3VyZSBvdXQgd2hldGhl
ciBhIGJveCBzaG91bGQgYXZvaWQgYSBmbG9hdCwgd2UgbmVlZCB0byBrbm93IHRoZSBmaW5hbCBw
b3NpdGlvbnMgb2YgYm90aCAoaWdub3JlIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGZvciBub3cpLgor
ICAgICAgICBJbiBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgZmluYWwgcG9zaXRpb24gaW5jbHVk
ZXMgdGhlIHN0YXRpYyBwb3NpdGlvbiBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgKG5vbiljb2xsYXBz
ZWQgbWFyZ2lucy4KKyAgICAgICAgVGhlIHZlcnRpY2FsIG1hcmdpbnMgYXJlIGNvbXB1dGVkIHdo
ZW4gYWxsIHRoZSBkZXNjZW5kYW50cyBhcmUgZmluYWxpemVkIGJlY2F1c2UgdGhlIG1hcmdpbnMg
Y291bGQgYmUgZGVwZW5kaW5nIG9uIHRoZSBoZWlnaHQgb2YgdGhlIGJveAorICAgICAgICAoYW5k
IHRoZSBoZWlnaHQgY291bGQgYmUgYmFzZWQgb24gdGhlIGNvbnRlbnQpLgorICAgICAgICBTbyB3
aGVuIHdlIGdldCB0byB0aGUgcG9pbnQgdG8gZGVjaWRlIGlmIGEgYm94IGludGVyc2VjdHMgd2l0
aCBhIHBhcnRpY3VsYXIgZmxvYXQgYm94LCB3ZSBkb24ndCB5ZXQgaGF2ZSBpdHMgZmluYWwgdmVy
dGljYWwgcG9zaXRpb24uCisKKyAgICAgICAgVGhlIGlkZWEgaGVyZSBpcyB0aGF0IGFzIGxvbmcg
YXMgd2UgZG9uJ3QgY3Jvc3MgdGhlIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCBib3VuZGFyeSwg
d2Ugc2hvdWxkIGJlIGFibGUgdG8gcHJlLWNvbXB1dGUgdGhlIGZpbmFsIHRvcCBtYXJnaW4uCisg
ICAgICAgIChpZiB0aGlzIGhvbGRzIHRydWUgZm9yIGFsbCB0aGUgY2FzZXMsIHRoZSBlc3RpbWF0
ZWQgcHJlZml4IGNvdWxkIGJlIHJlbW92ZWQgYW5kIGp1c3QgdXNlIG1hcmdpblRvcCgpIGluc3Rl
YWQuKQorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgYmxvY2stb25seSB0ZXN0cy4KKwor
ICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Omxh
eW91dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRNYXJnaW5Ub3AgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkTWFyZ2lu
VG9wRm9yQW5jZXN0b3JzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUZsb2F0aW5nUG9zaXRpb24gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlVmVydGlj
YWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSW5GbG93SGVpZ2h0QW5kTWFyZ2luIGNv
bnN0KToKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29s
bGFwc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0OjpNYXJnaW5Db2xsYXBzZTo6ZXN0aW1hdGVkTWFyZ2luVG9wKToKKyAgICAgICAgKiBsYXlv
dXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
OjpCb3g6OkJveCk6CisgICAgICAgICogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6c2V0SGFzVmFsaWRUb3ApOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRIYXNWYWxpZExlZnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheTo6Qm94Ojp0b3AgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6Qm94OjpsZWZ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6dG9w
TGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNldFRvcExlZnQp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRUb3ApOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheTo6Qm94OjpzZXRMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6
OkJveDo6c2V0VmVydGljYWxNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94
OjpzZXRFc3RpbWF0ZWRNYXJnaW5Ub3ApOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94
Ojplc3RpbWF0ZWRNYXJnaW5Ub3AgY29uc3QpOgorCiAyMDE4LTA4LTE0ICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bRmxvYXRpbmddIEFkZCBzdXBwb3J0
IGZvciBuZWdhdGl2ZSBjbGVhcmFuY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApp
bmRleCBjNjFlNTU0ODJiY2NjMDJjNWFiMGQzZDNhOGExNzNiMDgwNDllYTg3Li5jNGY0MDRkODc0
YzhiYzFiMmFhYzdhMDU0ZDZjMWM3YjFkNjlmZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OmxheW91dChMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBGb3JtYXR0aW5nU3RhdAogICAg
ICAgICAgICAgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gs
IGRpc3BsYXlCb3gpOwogICAgICAgICAgICAgLy8gRmluYWxpemUgcG9zaXRpb24gd2l0aCBjbGVh
cmFuY2UuCiAgICAgICAgICAgICBpZiAobGF5b3V0Qm94Lmhhc0Zsb2F0Q2xlYXIoKSkKLSAgICAg
ICAgICAgICAgICBjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIoZmxvYXRpbmdD
b250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOworICAgICAgICAgICAgICAgIGNvbXB1dGVW
ZXJ0aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihsYXlvdXRDb250ZXh0LCBmbG9hdGluZ0NvbnRl
eHQsIGxheW91dEJveCwgZGlzcGxheUJveCk7CiAgICAgICAgICAgICBpZiAoIWlzPENvbnRhaW5l
cj4obGF5b3V0Qm94KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIGF1
dG8mIGNvbnRhaW5lciA9IGRvd25jYXN0PENvbnRhaW5lcj4obGF5b3V0Qm94KTsKQEAgLTE1Niw2
ICsxNTYsMzcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljUG9z
aXRpb24oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwKICAgICBkaXNwbGF5Qm94LnNldFRv
cExlZnQoR2VvbWV0cnk6OnN0YXRpY1Bvc2l0aW9uKGxheW91dENvbnRleHQsIGxheW91dEJveCkp
OwogfQogCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRNYXJn
aW5Ub3AoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gs
IERpc3BsYXk6OkJveCYgZGlzcGxheUJveCkgY29uc3QKK3sKKyAgICBhdXRvIGVzdGltYXRlZE1h
cmdpblRvcCA9IE1hcmdpbkNvbGxhcHNlOjplc3RpbWF0ZWRNYXJnaW5Ub3AobGF5b3V0Q29udGV4
dCwgbGF5b3V0Qm94KTsKKyAgICBkaXNwbGF5Qm94LnNldEVzdGltYXRlZE1hcmdpblRvcChlc3Rp
bWF0ZWRNYXJnaW5Ub3ApOworICAgIGRpc3BsYXlCb3gubW92ZVZlcnRpY2FsbHkoZXN0aW1hdGVk
TWFyZ2luVG9wKTsKK30KKwordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0
aW1hdGVkTWFyZ2luVG9wRm9yQW5jZXN0b3JzKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQs
IGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAoreworICAgIC8vIFdlIG9ubHkgbmVlZCB0byBl
c3RpbWF0ZSBtYXJnaW4gdG9wIGZvciBmbG9hdCByZWxhdGVkIGxheW91dC4KKyAgICBBU1NFUlQo
bGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgfHwgbGF5b3V0Qm94Lmhhc0Zsb2F0Q2xl
YXIoKSk7CisKKyAgICAvLyBJbiBvcmRlciB0byBmaWd1cmUgb3V0IHdoZXRoZXIgYSBib3ggc2hv
dWxkIGF2b2lkIGEgZmxvYXQsIHdlIG5lZWQgdG8ga25vdyB0aGUgZmluYWwgcG9zaXRpb25zIG9m
IGJvdGggKGlnbm9yZSByZWxhdGl2ZSBwb3NpdGlvbmluZyBmb3Igbm93KS4KKyAgICAvLyBJbiBi
bG9jayBmb3JtYXR0aW5nIGNvbnRleHQgZmluYWwgcG9zaXRpb24gaW5jbHVkZXMgdGhlIHN0YXRp
YyBwb3NpdGlvbiBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgKG5vbiljb2xsYXBzZWQgbWFyZ2lucy4K
KyAgICAvLyBUaGUgdmVydGljYWwgbWFyZ2lucyBhcmUgY29tcHV0ZWQgd2hlbiBhbGwgdGhlIGRl
c2NlbmRhbnRzIGFyZSBmaW5hbGl6ZWQgYmVjYXVzZSB0aGUgbWFyZ2lucyBjb3VsZCBiZSBkZXBl
bmRpbmcgb24gdGhlIGhlaWdodCBvZiB0aGUgYm94CisgICAgLy8gKGFuZCB0aGUgaGVpZ2h0IGNv
dWxkIGJlIGJhc2VkIG9uIHRoZSBjb250ZW50KS4KKyAgICAvLyBTbyB3aGVuIHdlIGdldCB0byB0
aGUgcG9pbnQgdG8gZGVjaWRlIGlmIGEgYm94IGludGVyc2VjdHMgd2l0aCBhIHBhcnRpY3VsYXIg
ZmxvYXQgYm94LCB3ZSBkb24ndCB5ZXQgaGF2ZSBpdHMgZmluYWwgdmVydGljYWwgcG9zaXRpb24u
CisgICAgLy8KKyAgICAvLyBUaGUgaWRlYSBoZXJlIGlzIHRoYXQgYXMgbG9uZyBhcyB3ZSBkb24n
dCBjcm9zcyB0aGUgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0IGJvdW5kYXJ5LCB3ZSBzaG91bGQg
YmUgYWJsZSB0byBwcmUtY29tcHV0ZSB0aGUgZmluYWwgdG9wIG1hcmdpbi4KKworICAgIGZvciAo
YXV0byogYW5jZXN0b3IgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7IGFuY2VzdG9yICYm
ICFhbmNlc3Rvci0+ZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCk7IGFuY2VzdG9y
ID0gYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpKSB7CisgICAgICAgIGF1dG8qIGRpc3BsYXlC
b3ggPSBsYXlvdXRDb250ZXh0LmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goKmFuY2VzdG9yKTsKKyAg
ICAgICAgQVNTRVJUKGRpc3BsYXlCb3gpOworICAgICAgICAvLyBGSVhNRTogd2l0aCBpbmNyZW1l
bnRhbCBsYXlvdXQsIHdlIG1pZ2h0IGFjdHVhbGx5IGhhdmUgYSB2YWxpZCAobm9uLWVzdGltYXRl
ZCkgbWFyZ2luIHRvcCBhcyB3ZWxsLgorICAgICAgICBpZiAoZGlzcGxheUJveC0+ZXN0aW1hdGVk
TWFyZ2luVG9wKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY29tcHV0ZUVzdGlt
YXRlZE1hcmdpblRvcChsYXlvdXRDb250ZXh0LCAqYW5jZXN0b3IsICpkaXNwbGF5Qm94KTsKKyAg
ICB9Cit9CisKIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUZsb2F0aW5nUG9z
aXRpb24oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgRmxvYXRpbmdDb250ZXh0JiBmbG9h
dGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBEaXNwbGF5OjpCb3gmIGRpc3BsYXlC
b3gpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgp
KTsKQEAgLTE2NiwxMyArMTk3LDE1IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZUZsb2F0aW5nUG9zaXRpb24oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4CiAgICAgICAg
IGF1dG8mIHByZXZpb3VzRGlzcGxheUJveCA9ICpsYXlvdXRDb250ZXh0LmRpc3BsYXlCb3hGb3JM
YXlvdXRCb3goKnByZXZpb3VzSW5GbG93Qm94KTsKICAgICAgICAgZGlzcGxheUJveC5tb3ZlVmVy
dGljYWxseShwcmV2aW91c0Rpc3BsYXlCb3gubm9uQ29sbGFwc2VkTWFyZ2luQm90dG9tKCkgLSBw
cmV2aW91c0Rpc3BsYXlCb3gubWFyZ2luQm90dG9tKCkpOwogICAgIH0KKyAgICBjb21wdXRlRXN0
aW1hdGVkTWFyZ2luVG9wRm9yQW5jZXN0b3JzKGxheW91dENvbnRleHQsIGxheW91dEJveCk7CiAg
ICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KGZsb2F0aW5nQ29udGV4dC5wb3NpdGlvbkZvckZsb2F0
KGxheW91dEJveCkpOwogICAgIGZsb2F0aW5nQ29udGV4dC5mbG9hdGluZ1N0YXRlKCkuYXBwZW5k
KGxheW91dEJveCk7CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVZl
cnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYgZmxvYXRp
bmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgRGlzcGxheTo6Qm94JiBkaXNwbGF5Qm94
KSBjb25zdAordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlVmVydGljYWxQb3Np
dGlvbkZvckZsb2F0Q2xlYXIoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgRmxv
YXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBEaXNw
bGF5OjpCb3gmIGRpc3BsYXlCb3gpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5oYXNG
bG9hdENsZWFyKCkpOworICAgIGNvbXB1dGVFc3RpbWF0ZWRNYXJnaW5Ub3BGb3JBbmNlc3RvcnMo
bGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KTsKICAgICBpZiAoYXV0byB2ZXJ0aWNhbFBvc2l0aW9u
V2l0aENsZWFyYW5jZSA9IGZsb2F0aW5nQ29udGV4dC52ZXJ0aWNhbFBvc2l0aW9uV2l0aENsZWFy
YW5jZShsYXlvdXRCb3gpKQogICAgICAgICBkaXNwbGF5Qm94LnNldFRvcCgqdmVydGljYWxQb3Np
dGlvbldpdGhDbGVhcmFuY2UpOwogfQpAQCAtMjA4LDkgKzI0MSwxMiBAQCB2b2lkIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVJbkZsb3dIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4
dCYgbGF5b3V0QwogewogICAgIGF1dG8gaGVpZ2h0QW5kTWFyZ2luID0gR2VvbWV0cnk6OmluRmxv
d0hlaWdodEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOwogICAgIGRpc3BsYXlC
b3guc2V0Q29udGVudEJveEhlaWdodChoZWlnaHRBbmRNYXJnaW4uaGVpZ2h0KTsKLSAgICBkaXNw
bGF5Qm94Lm1vdmVWZXJ0aWNhbGx5KGhlaWdodEFuZE1hcmdpbi5jb2xsYXBzZWRNYXJnaW4udmFs
dWVfb3IoaGVpZ2h0QW5kTWFyZ2luLm1hcmdpbikudG9wKTsKICAgICBkaXNwbGF5Qm94LnNldFZl
cnRpY2FsTWFyZ2luKGhlaWdodEFuZE1hcmdpbi5jb2xsYXBzZWRNYXJnaW4udmFsdWVfb3IoaGVp
Z2h0QW5kTWFyZ2luLm1hcmdpbikpOwogICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxOb25Db2xs
YXBzZWRNYXJnaW4oaGVpZ2h0QW5kTWFyZ2luLm1hcmdpbik7CisKKyAgICAvLyBUaGlzIGJveCBo
YXMgYWxyZWFkeSBiZWVuIG1vdmVkIGJ5IHRoZSBlc3RpbWF0ZWQgdmFsdWUgb2YgdGhlIHZlcnRp
Y2FsIG1hcmdpbi4gRG8gbm90IG5lZWQgdG8gbW92ZSBhZ2Fpbi4KKyAgICBpZiAoIWRpc3BsYXlC
b3guZXN0aW1hdGVkTWFyZ2luVG9wKCkpCisgICAgICAgIGRpc3BsYXlCb3gubW92ZVZlcnRpY2Fs
bHkoaGVpZ2h0QW5kTWFyZ2luLmNvbGxhcHNlZE1hcmdpbi52YWx1ZV9vcihoZWlnaHRBbmRNYXJn
aW4ubWFyZ2luKS50b3ApOwogfQogCiB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVJbkZsb3dXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25z
dCBCb3gmIGxheW91dEJveCwgRGlzcGxheTo6Qm94JiBkaXNwbGF5Qm94KSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCAzMjQ3ZWQ1NjgxMzJmOWY5NjQyYTczOGFjZmVkZGI2
NTA2NGIyZTQ4Li5lODY4N2EzYTQ0ZGFmM2NmMzU2ZDQ4Y2VhZDMyZDE3NjIwNjgwMjlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0
dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtNTcsMTAgKzU3LDEyIEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIGNvbXB1dGVTdGF0aWNQb3NpdGlvbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94
JiwgRGlzcGxheTo6Qm94JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wdXRlRmxvYXRp
bmdQb3NpdGlvbihMYXlvdXRDb250ZXh0JiwgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94Jiwg
RGlzcGxheTo6Qm94JikgY29uc3Q7Ci0gICAgdm9pZCBjb21wdXRlVmVydGljYWxQb3NpdGlvbkZv
ckZsb2F0Q2xlYXIoY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6
Qm94JikgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xl
YXIoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIERp
c3BsYXk6OkJveCYpIGNvbnN0OwogICAgIHZvaWQgY29tcHV0ZUluRmxvd1Bvc2l0aW9uZWRQb3Np
dGlvbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdm9pZCBjb21wdXRlSW5GbG93V2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4
dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNvbnN0OwogICAgIHZvaWQgY29tcHV0ZUlu
Rmxvd0hlaWdodEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6
Qm94JikgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlRXN0aW1hdGVkTWFyZ2luVG9wKExheW91dENv
bnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdDsKKyAgICB2b2lkIGNvbXB1
dGVFc3RpbWF0ZWRNYXJnaW5Ub3BGb3JBbmNlc3RvcnMoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJv
eCYpIGNvbnN0OwogCiAgICAgRm9ybWF0dGluZ0NvbnRleHQ6Okluc3RyaW5zaWNXaWR0aENvbnN0
cmFpbnRzIGluc3RyaW5zaWNXaWR0aENvbnN0cmFpbnRzKExheW91dENvbnRleHQmLCBjb25zdCBC
b3gmKSBjb25zdCBvdmVycmlkZTsKIApAQCAtODcsNiArODksNyBAQCBwcml2YXRlOgogICAgIGNs
YXNzIE1hcmdpbkNvbGxhcHNlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBMYXlvdXRV
bml0IG1hcmdpblRvcChjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CisgICAgICAg
IHN0YXRpYyBMYXlvdXRVbml0IGVzdGltYXRlZE1hcmdpblRvcChjb25zdCBMYXlvdXRDb250ZXh0
JiwgY29uc3QgQm94Jik7CiAgICAgICAgIHN0YXRpYyBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbShj
b25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAKICAgICAgICAgc3RhdGljIGJvb2wg
aXNNYXJnaW5Cb3R0b21Db2xsYXBzZWRXaXRoUGFyZW50KGNvbnN0IExheW91dENvbnRleHQmLCBj
b25zdCBCb3gmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCmluZGV4IDg2MTBmMWJiMmVlMzZj
YmM2NmU3NTZjYzlhMWI3NjllYWI0NWYxZDMuLjAzNWE1OTE2Y2FlYjY4YjU5ZWZmYjE3YTFjYTY4
OWVlZDAzNDc3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcApAQCAtMzMyLDYgKzMzMiwx
OCBAQCBMYXlvdXRVbml0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpu
b25Db2xsYXBzZWRNYXJnaW5Cb3R0b20oY29ucwogICAgIHJldHVybiBtYXJnaW5WYWx1ZShjb21w
dXRlZE5vbkNvbGxhcHNlZE1hcmdpbkJvdHRvbShsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpLCBj
b2xsYXBzZWRNYXJnaW5Cb3R0b21Gcm9tTGFzdENoaWxkKGxheW91dENvbnRleHQsIGxheW91dEJv
eCkpOwogfQogCitMYXlvdXRVbml0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxh
cHNlOjplc3RpbWF0ZWRNYXJnaW5Ub3AoY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4
dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCit7CisgICAgQVNTRVJUKGxheW91dEJveC5pc0Jsb2Nr
TGV2ZWxCb3goKSk7CisgICAgLy8gQ2FuJ3QgZXN0aW1hdGUgdmVydGljYWwgbWFyZ2lucyBmb3Ig
b3V0IG9mIGZsb3cgYm94IChhbmQgd2Ugc2hvdWxkbid0IG5lZWQgdG8gZG8gaXQgZm9yIGZsb2F0
IGJveCkuCisgICAgQVNTRVJUKGxheW91dEJveC5pc0luRmxvdygpKTsKKyAgICAvLyBDYW4ndCBj
cm9zcyBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgd2l0aCBtYXJnaW4gZXN0aW1hdGlvbi4gCisg
ICAgQVNTRVJUKCFsYXlvdXRCb3guZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkp
OworCisgICAgLy8gTGV0J3MganVzdCB1c2UgdGhlIG5vcm1hbCBwYXRoIGZvciBub3cuCisgICAg
cmV0dXJuIG1hcmdpblRvcChsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOworfQorCiB9CiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNw
bGF5Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94
LmNwcAppbmRleCA5OGFmY2M1MDYwNWRjZjMzYWZlYjkwNGI2YmVmZjc2OGM0NzYxOTQyLi43MThi
MTZlYWY1MDIzZGM0YjEwZTkxOWFhM2RjNDcwZjI3MGE5OThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guY3BwCkBAIC01OSw5ICs1OSwxMiBA
QCBCb3g6OkJveChjb25zdCBCb3gmIG90aGVyKQogICAgICwgbV9jb250ZW50SGVpZ2h0KG90aGVy
Lm1fY29udGVudEhlaWdodCkKICAgICAsIG1fbWFyZ2luKG90aGVyLm1fbWFyZ2luKQogICAgICwg
bV92ZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbihvdGhlci5tX3ZlcnRpY2FsTm9uQ29sbGFwc2Vk
TWFyZ2luKQorICAgICwgbV9lc3RpbWF0ZWRNYXJnaW5Ub3Aob3RoZXIubV9lc3RpbWF0ZWRNYXJn
aW5Ub3ApCiAgICAgLCBtX2JvcmRlcihvdGhlci5tX2JvcmRlcikKICAgICAsIG1fcGFkZGluZyhv
dGhlci5tX3BhZGRpbmcpCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgICwgbV9oYXNWYWxpZFRv
cChvdGhlci5tX2hhc1ZhbGlkVG9wKQorICAgICwgbV9oYXNWYWxpZExlZnQob3RoZXIubV9oYXNW
YWxpZExlZnQpCiAgICAgLCBtX2hhc1ZhbGlkSG9yaXpvbnRhbE1hcmdpbihvdGhlci5tX2hhc1Zh
bGlkSG9yaXpvbnRhbE1hcmdpbikKICAgICAsIG1faGFzVmFsaWRWZXJ0aWNhbE1hcmdpbihvdGhl
ci5tX2hhc1ZhbGlkVmVydGljYWxNYXJnaW4pCiAgICAgLCBtX2hhc1ZhbGlkVmVydGljYWxOb25D
b2xsYXBzZWRNYXJnaW4ob3RoZXIubV9oYXNWYWxpZFZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2lu
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlC
b3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmgKaW5k
ZXggZmQwOTZkM2YzMzIxNGRmMTYzMjY3MGRkMjA1ZmZmMDk0Mzc4YTE0ZS4uYWJjYWJjMzVjN2Fm
MWI4Y2JiNGEyZTQyODg4Mzc2ZTIyMzRjYTE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oCkBAIC0xMTcsMTIgKzExNywxMiBAQCBwdWJsaWM6
CiAKICAgICB+Qm94KCk7CiAKLSAgICBMYXlvdXRVbml0IHRvcCgpIGNvbnN0IHsgcmV0dXJuIG1f
dG9wTGVmdC55KCk7IH0KLSAgICBMYXlvdXRVbml0IGxlZnQoKSBjb25zdCB7IHJldHVybiBtX3Rv
cExlZnQueCgpOyB9CisgICAgTGF5b3V0VW5pdCB0b3AoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0
IGxlZnQoKSBjb25zdDsKICAgICBMYXlvdXRVbml0IGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIHRv
cCgpICsgaGVpZ2h0KCk7IH0KICAgICBMYXlvdXRVbml0IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4g
bGVmdCgpICsgd2lkdGgoKTsgfQogCi0gICAgTGF5b3V0UG9pbnQgdG9wTGVmdCgpIGNvbnN0IHsg
cmV0dXJuIG1fdG9wTGVmdDsgfQorICAgIExheW91dFBvaW50IHRvcExlZnQoKSBjb25zdDsKICAg
ICBMYXlvdXRQb2ludCBib3R0b21SaWdodCgpIGNvbnN0IHsgcmV0dXJuIHsgcmlnaHQoKSwgYm90
dG9tKCkgfTsgfQogCiAgICAgTGF5b3V0U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4geyB3aWR0
aCgpLCBoZWlnaHQoKSB9OyB9CkBAIC0xMzgsNiArMTM4LDcgQEAgcHVibGljOgogCiAgICAgTGF5
b3V0VW5pdCBub25Db2xsYXBzZWRNYXJnaW5Ub3AoKSBjb25zdDsKICAgICBMYXlvdXRVbml0IG5v
bkNvbGxhcHNlZE1hcmdpbkJvdHRvbSgpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gZXN0aW1hdGVkTWFyZ2luVG9wKCkgY29uc3Q7CiAKICAgICBMYXlvdXRVbml0IGJvcmRl
clRvcCgpIGNvbnN0OwogICAgIExheW91dFVuaXQgYm9yZGVyTGVmdCgpIGNvbnN0OwpAQCAtMTcy
LDkgKzE3Myw5IEBAIHByaXZhdGU6CiAgICAgICAgIEJveFNpemluZyBib3hTaXppbmcgeyBCb3hT
aXppbmc6OkNvbnRlbnRCb3ggfTsKICAgICB9OwogCi0gICAgdm9pZCBzZXRUb3BMZWZ0KGNvbnN0
IExheW91dFBvaW50JiB0b3BMZWZ0KSB7IG1fdG9wTGVmdCA9IHRvcExlZnQ7IH0KLSAgICB2b2lk
IHNldFRvcChMYXlvdXRVbml0IHRvcCkgeyBtX3RvcExlZnQuc2V0WSh0b3ApOyB9Ci0gICAgdm9p
ZCBzZXRMZWZ0KExheW91dFVuaXQgbGVmdCkgeyBtX3RvcExlZnQuc2V0WChsZWZ0KTsgfQorICAg
IHZvaWQgc2V0VG9wTGVmdChjb25zdCBMYXlvdXRQb2ludCYpOworICAgIHZvaWQgc2V0VG9wKExh
eW91dFVuaXQpOworICAgIHZvaWQgc2V0TGVmdChMYXlvdXRVbml0KTsKICAgICB2b2lkIG1vdmVI
b3Jpem9udGFsbHkoTGF5b3V0VW5pdCBvZmZzZXQpIHsgbV90b3BMZWZ0Lm1vdmUob2Zmc2V0LCB7
IH0pOyB9CiAgICAgdm9pZCBtb3ZlVmVydGljYWxseShMYXlvdXRVbml0IG9mZnNldCkgeyBtX3Rv
cExlZnQubW92ZSh7IH0sIG9mZnNldCk7IH0KIApAQCAtMTg0LDYgKzE4NSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzZXRIb3Jpem9udGFsTWFyZ2luKExheW91dDo6SG9yaXpvbnRhbEVkZ2VzKTsK
ICAgICB2b2lkIHNldFZlcnRpY2FsTWFyZ2luKExheW91dDo6VmVydGljYWxFZGdlcyk7CiAgICAg
dm9pZCBzZXRWZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbihMYXlvdXQ6OlZlcnRpY2FsRWRnZXMp
OworICAgIHZvaWQgc2V0RXN0aW1hdGVkTWFyZ2luVG9wKExheW91dFVuaXQpOwogCiAgICAgdm9p
ZCBzZXRCb3JkZXIoTGF5b3V0OjpFZGdlcyk7CiAgICAgdm9pZCBzZXRQYWRkaW5nKExheW91dDo6
RWRnZXMpOwpAQCAtMTkzLDYgKzE5NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnZhbGlkYXRl
Qm9yZGVyKCkgeyBtX2hhc1ZhbGlkQm9yZGVyID0gZmFsc2U7IH0KICAgICB2b2lkIGludmFsaWRh
dGVQYWRkaW5nKCkgeyBtX2hhc1ZhbGlkUGFkZGluZyA9IGZhbHNlOyB9CiAKKyAgICB2b2lkIHNl
dEhhc1ZhbGlkVG9wKCkgeyBtX2hhc1ZhbGlkVG9wID0gdHJ1ZTsgfQorICAgIHZvaWQgc2V0SGFz
VmFsaWRMZWZ0KCkgeyBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7IH0KICAgICB2b2lkIHNldEhhc1Zh
bGlkVmVydGljYWxNYXJnaW4oKSB7IG1faGFzVmFsaWRWZXJ0aWNhbE1hcmdpbiA9IHRydWU7IH0K
ICAgICB2b2lkIHNldEhhc1ZhbGlkVmVydGljYWxOb25Db2xsYXBzZWRNYXJnaW4oKSB7IG1faGFz
VmFsaWRWZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbiA9IHRydWU7IH0KICAgICB2b2lkIHNldEhh
c1ZhbGlkSG9yaXpvbnRhbE1hcmdpbigpIHsgbV9oYXNWYWxpZEhvcml6b250YWxNYXJnaW4gPSB0
cnVlOyB9CkBAIC0yMTIsMTEgKzIxNiwxNCBAQCBwcml2YXRlOgogCiAgICAgTGF5b3V0OjpFZGdl
cyBtX21hcmdpbjsKICAgICBMYXlvdXQ6OlZlcnRpY2FsRWRnZXMgbV92ZXJ0aWNhbE5vbkNvbGxh
cHNlZE1hcmdpbjsKKyAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IG1fZXN0aW1hdGVkTWFy
Z2luVG9wOwogCiAgICAgTGF5b3V0OjpFZGdlcyBtX2JvcmRlcjsKICAgICBMYXlvdXQ6OkVkZ2Vz
IG1fcGFkZGluZzsKIAogI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBib29sIG1faGFzVmFsaWRU
b3AgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNWYWxpZExlZnQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9oYXNWYWxpZEhvcml6b250YWxNYXJnaW4geyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNW
YWxpZFZlcnRpY2FsTWFyZ2luIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzVmFsaWRWZXJ0aWNh
bE5vbkNvbGxhcHNlZE1hcmdpbiB7IGZhbHNlIH07CkBAIC00MTYsNiArNDIzLDUwIEBAIGlubGlu
ZSBCb3g6OlJlY3Q6Om9wZXJhdG9yIExheW91dFJlY3QoKSBjb25zdAogICAgIHJldHVybiBtX3Jl
Y3Q7CiB9CiAKK2lubGluZSBMYXlvdXRVbml0IEJveDo6dG9wKCkgY29uc3QKK3sKKyAgICBBU1NF
UlQobV9oYXNWYWxpZFRvcCAmJiAobV9lc3RpbWF0ZWRNYXJnaW5Ub3AgfHwgbV9oYXNWYWxpZFZl
cnRpY2FsTWFyZ2luKSk7CisgICAgcmV0dXJuIG1fdG9wTGVmdC55KCk7IAorfQorCitpbmxpbmUg
TGF5b3V0VW5pdCBCb3g6OmxlZnQoKSBjb25zdAoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVm
dCAmJiBtX2hhc1ZhbGlkSG9yaXpvbnRhbE1hcmdpbik7CisgICAgcmV0dXJuIG1fdG9wTGVmdC54
KCk7Cit9CisKK2lubGluZSBMYXlvdXRQb2ludCBCb3g6OnRvcExlZnQoKSBjb25zdAoreworICAg
IEFTU0VSVChtX2hhc1ZhbGlkVG9wICYmIChtX2VzdGltYXRlZE1hcmdpblRvcCB8fCBtX2hhc1Zh
bGlkVmVydGljYWxNYXJnaW4pKTsKKyAgICBBU1NFUlQobV9oYXNWYWxpZExlZnQgJiYgbV9oYXNW
YWxpZEhvcml6b250YWxNYXJnaW4pOworICAgIHJldHVybiBtX3RvcExlZnQ7Cit9CisKK2lubGlu
ZSB2b2lkIEJveDo6c2V0VG9wTGVmdChjb25zdCBMYXlvdXRQb2ludCYgdG9wTGVmdCkKK3sgCisj
aWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIHNldEhhc1ZhbGlkVG9wKCk7CisgICAgc2V0SGFzVmFs
aWRMZWZ0KCk7CisjZW5kaWYKKyAgICBtX3RvcExlZnQgPSB0b3BMZWZ0OworfQorCitpbmxpbmUg
dm9pZCBCb3g6OnNldFRvcChMYXlvdXRVbml0IHRvcCkKK3sKKyNpZiAhQVNTRVJUX0RJU0FCTEVE
CisgICAgc2V0SGFzVmFsaWRUb3AoKTsKKyNlbmRpZgorICAgIG1fdG9wTGVmdC5zZXRZKHRvcCk7
Cit9CisKK2lubGluZSB2b2lkIEJveDo6c2V0TGVmdChMYXlvdXRVbml0IGxlZnQpCit7CisjaWYg
IUFTU0VSVF9ESVNBQkxFRAorICAgIHNldEhhc1ZhbGlkTGVmdCgpOworI2VuZGlmCisgICAgbV90
b3BMZWZ0LnNldFgobGVmdCk7Cit9CisKIGlubGluZSB2b2lkIEJveDo6c2V0Q29udGVudEJveEhl
aWdodChMYXlvdXRVbml0IGhlaWdodCkKIHsgCiAjaWYgIUFTU0VSVF9ESVNBQkxFRApAQCAtNDU3
LDYgKzUwOCw3IEBAIGlubGluZSB2b2lkIEJveDo6c2V0VmVydGljYWxNYXJnaW4oTGF5b3V0OjpW
ZXJ0aWNhbEVkZ2VzIG1hcmdpbikKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgc2V0SGFzVmFs
aWRWZXJ0aWNhbE1hcmdpbigpOwogI2VuZGlmCisgICAgQVNTRVJUKCFtX2VzdGltYXRlZE1hcmdp
blRvcCB8fCAqbV9lc3RpbWF0ZWRNYXJnaW5Ub3AgPT0gbWFyZ2luLnRvcCk7CiAgICAgbV9tYXJn
aW4udmVydGljYWwgPSBtYXJnaW47CiB9CiAKQEAgLTQ2OCw2ICs1MjAsMTEgQEAgaW5saW5lIHZv
aWQgQm94OjpzZXRWZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbihMYXlvdXQ6OlZlcnRpY2FsRWRn
ZXMgbWFyZ2luKQogICAgIG1fdmVydGljYWxOb25Db2xsYXBzZWRNYXJnaW4gPSBtYXJnaW47CiB9
CiAKK2lubGluZSB2b2lkIEJveDo6c2V0RXN0aW1hdGVkTWFyZ2luVG9wKExheW91dFVuaXQgbWFy
Z2luVG9wKQoreworICAgIG1fZXN0aW1hdGVkTWFyZ2luVG9wID0gbWFyZ2luVG9wOworfQorCiBp
bmxpbmUgdm9pZCBCb3g6OnNldEJvcmRlcihMYXlvdXQ6OkVkZ2VzIGJvcmRlcikKIHsKICNpZiAh
QVNTRVJUX0RJU0FCTEVECkBAIC01MDgsNiArNTY1LDExIEBAIGlubGluZSBMYXlvdXRVbml0IEJv
eDo6bWFyZ2luUmlnaHQoKSBjb25zdAogICAgIHJldHVybiBtX21hcmdpbi5ob3Jpem9udGFsLnJp
Z2h0OwogfQogCitpbmxpbmUgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBCb3g6OmVzdGltYXRl
ZE1hcmdpblRvcCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZXN0aW1hdGVkTWFyZ2luVG9wOwor
fQorCiBpbmxpbmUgTGF5b3V0VW5pdCBCb3g6Om5vbkNvbGxhcHNlZE1hcmdpblRvcCgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKG1faGFzVmFsaWRWZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347224</attachid>
            <date>2018-08-15 16:49:30 -0700</date>
            <delta_ts>2018-08-16 07:27:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188619-20180815164928.patch</filename>
            <type>text/plain</type>
            <size>17135</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0OTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVmMzlmZmE3Y2I1Mjky
N2U2MzA5ZTkzMTE5MDk1Njk0Njc1MGRkMy4uYWQ0NzYzM2E1MjJjNDcwOGEyY2Q3MDc2NDAyYzNk
MGYwZTE2NjNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE4LTA4LTE1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2xGQ11bRmxvYXRpbmddIEFk
ZCBlc3RpbWF0ZWQgbWFyZ2luIHRvcCBjb21wdXRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODYxOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpZ3VyZSBvdXQgd2hldGhl
ciBhIGJveCBzaG91bGQgYXZvaWQgYSBmbG9hdCwgd2UgbmVlZCB0byBrbm93IHRoZSBmaW5hbCBw
b3NpdGlvbnMgb2YgYm90aCAoaWdub3JlIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGZvciBub3cpLgor
ICAgICAgICBJbiBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgdGhlIGZpbmFsIHBvc2l0aW9uIGZv
ciBhIG5vcm1hbCBmbG93IGJveCBpbmNsdWRlcworICAgICAgICAxLiB0aGUgc3RhdGljIHBvc2l0
aW9uIGFuZCAKKyAgICAgICAgMi4gdGhlIGNvcnJlc3BvbmRpbmcgKG5vbiljb2xsYXBzZWQgbWFy
Z2lucy4KKyAgICAgICAgTm93IHRoZSB2ZXJ0aWNhbCBtYXJnaW5zIGFyZSBjb21wdXRlZCB3aGVu
IGFsbCB0aGUgZGVzY2VuZGFudHMgYXJlIGZpbmFsaXplZCwgYmVjYXVzZSB0aGUgbWFyZ2luIHZh
bHVlcyBtaWdodCBiZSBkZXBlbmRpbmcgb24gdGhlIGhlaWdodCBvZiB0aGUgYm94CisgICAgICAg
IChhbmQgdGhlIGhlaWdodCBtaWdodCBiZSBiYXNlZCBvbiB0aGUgY29udGVudCkuCisgICAgICAg
IFNvIHdoZW4gd2UgZ2V0IHRvIHRoZSBwb2ludCB3aGVyZSB3ZSBpbnRlcnNlY3QgdGhlIGJveCB3
aXRoIHRoZSBmbG9hdCB0byBkZWNpZGUgaWYgdGhlIGJveCBuZWVkcyB0byBtb3ZlLCB3ZSBkb24n
dCB5ZXQgaGF2ZSB0aGUgZmluYWwgdmVydGljYWwgcG9zaXRpb24uCisKKyAgICAgICAgVGhlIGlk
ZWEgaGVyZSBpcyB0aGF0IGFzIGxvbmcgYXMgd2UgZG9uJ3QgY3Jvc3MgdGhlIGJsb2NrIGZvcm1h
dHRpbmcgY29udGV4dCBib3VuZGFyeSwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gcHJlLWNvbXB1dGUg
dGhlIGZpbmFsIHRvcCBtYXJnaW4uCisgICAgICAgIChpZiB0aGlzIGhvbGRzIHRydWUgZm9yIGFs
bCB0aGUgY2FzZXMsIHRoZSBlc3RpbWF0ZWQgcHJlZml4IGNvdWxkIGJlIHJlbW92ZWQgYW5kIGp1
c3QgdXNlIG1hcmdpblRvcCgpIGluc3RlYWQuKQorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3Rp
bmcgYmxvY2stb25seSB0ZXN0cy4KKworICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRNYXJnaW5Ub3Ag
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlRXN0aW1hdGVkTWFyZ2luVG9wRm9yQW5jZXN0b3JzIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUZsb2F0aW5n
UG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0Ojpjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
SW5GbG93SGVpZ2h0QW5kTWFyZ2luIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6ZXN0aW1hdGVkTWFy
Z2luVG9wKToKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OkJveCk6CisgICAgICAgICogbGF5b3V0L2Rp
c3BsYXl0cmVlL0Rpc3BsYXlCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6
c2V0SGFzVmFsaWRUb3ApOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRIYXNW
YWxpZExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94Ojp0b3AgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpsZWZ0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXk6OkJveDo6dG9wTGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5OjpCb3g6OnNldFRvcExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94
OjpzZXRUb3ApOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRMZWZ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6c2V0VmVydGljYWxNYXJnaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRFc3RpbWF0ZWRNYXJnaW5Ub3ApOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94Ojplc3RpbWF0ZWRNYXJnaW5Ub3AgY29uc3QpOgorCiAy
MDE4LTA4LTE1ICBDaHJpc3RvcGhlciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNvbT4KIAogICAg
ICAgICBbQ3VybF0gSW1wbGVtZW50IGRlZmF1bHQgY29va2llIHBhdGggaGFuZGxpbmcgY29ycmVj
dGx5IGFzIG91dGxpbmVkIGluIFJGQzYyNjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNw
cAppbmRleCBjNjFlNTU0ODJiY2NjMDJjNWFiMGQzZDNhOGExNzNiMDgwNDllYTg3Li5mYWRlZDIy
YzA1MmQ4MGQ3Yzc1OTc3NzVlNWUzODQyNjhmMDAyMjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5n
Q29udGV4dC5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6OmxheW91dChMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBGb3JtYXR0aW5nU3RhdAog
ICAgICAgICAgICAgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRC
b3gsIGRpc3BsYXlCb3gpOwogICAgICAgICAgICAgLy8gRmluYWxpemUgcG9zaXRpb24gd2l0aCBj
bGVhcmFuY2UuCiAgICAgICAgICAgICBpZiAobGF5b3V0Qm94Lmhhc0Zsb2F0Q2xlYXIoKSkKLSAg
ICAgICAgICAgICAgICBjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIoZmxvYXRp
bmdDb250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOworICAgICAgICAgICAgICAgIGNvbXB1
dGVWZXJ0aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihsYXlvdXRDb250ZXh0LCBmbG9hdGluZ0Nv
bnRleHQsIGxheW91dEJveCwgZGlzcGxheUJveCk7CiAgICAgICAgICAgICBpZiAoIWlzPENvbnRh
aW5lcj4obGF5b3V0Qm94KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IGF1dG8mIGNvbnRhaW5lciA9IGRvd25jYXN0PENvbnRhaW5lcj4obGF5b3V0Qm94KTsKQEAgLTE1
Niw2ICsxNTYsMzkgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGlj
UG9zaXRpb24oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwKICAgICBkaXNwbGF5Qm94LnNl
dFRvcExlZnQoR2VvbWV0cnk6OnN0YXRpY1Bvc2l0aW9uKGxheW91dENvbnRleHQsIGxheW91dEJv
eCkpOwogfQogCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRN
YXJnaW5Ub3AoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRC
b3gsIERpc3BsYXk6OkJveCYgZGlzcGxheUJveCkgY29uc3QKK3sKKyAgICBhdXRvIGVzdGltYXRl
ZE1hcmdpblRvcCA9IE1hcmdpbkNvbGxhcHNlOjplc3RpbWF0ZWRNYXJnaW5Ub3AobGF5b3V0Q29u
dGV4dCwgbGF5b3V0Qm94KTsKKyAgICBkaXNwbGF5Qm94LnNldEVzdGltYXRlZE1hcmdpblRvcChl
c3RpbWF0ZWRNYXJnaW5Ub3ApOworICAgIGRpc3BsYXlCb3gubW92ZVZlcnRpY2FsbHkoZXN0aW1h
dGVkTWFyZ2luVG9wKTsKK30KKwordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
RXN0aW1hdGVkTWFyZ2luVG9wRm9yQW5jZXN0b3JzKExheW91dENvbnRleHQmIGxheW91dENvbnRl
eHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAoreworICAgIC8vIFdlIG9ubHkgbmVlZCB0
byBlc3RpbWF0ZSBtYXJnaW4gdG9wIGZvciBmbG9hdCByZWxhdGVkIGxheW91dC4KKyAgICBBU1NF
UlQobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgfHwgbGF5b3V0Qm94Lmhhc0Zsb2F0
Q2xlYXIoKSk7CisKKyAgICAvLyBJbiBvcmRlciB0byBmaWd1cmUgb3V0IHdoZXRoZXIgYSBib3gg
c2hvdWxkIGF2b2lkIGEgZmxvYXQsIHdlIG5lZWQgdG8ga25vdyB0aGUgZmluYWwgcG9zaXRpb25z
IG9mIGJvdGggKGlnbm9yZSByZWxhdGl2ZSBwb3NpdGlvbmluZyBmb3Igbm93KS4KKyAgICAvLyBJ
biBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgdGhlIGZpbmFsIHBvc2l0aW9uIGZvciBhIG5vcm1h
bCBmbG93IGJveCBpbmNsdWRlcworICAgIC8vIDEuIHRoZSBzdGF0aWMgcG9zaXRpb24gYW5kIAor
ICAgIC8vIDIuIHRoZSBjb3JyZXNwb25kaW5nIChub24pY29sbGFwc2VkIG1hcmdpbnMuCisgICAg
Ly8gTm93IHRoZSB2ZXJ0aWNhbCBtYXJnaW5zIGFyZSBjb21wdXRlZCB3aGVuIGFsbCB0aGUgZGVz
Y2VuZGFudHMgYXJlIGZpbmFsaXplZCwgYmVjYXVzZSB0aGUgbWFyZ2luIHZhbHVlcyBtaWdodCBi
ZSBkZXBlbmRpbmcgb24gdGhlIGhlaWdodCBvZiB0aGUgYm94CisgICAgLy8gKGFuZCB0aGUgaGVp
Z2h0IG1pZ2h0IGJlIGJhc2VkIG9uIHRoZSBjb250ZW50KS4KKyAgICAvLyBTbyB3aGVuIHdlIGdl
dCB0byB0aGUgcG9pbnQgd2hlcmUgd2UgaW50ZXJzZWN0IHRoZSBib3ggd2l0aCB0aGUgZmxvYXQg
dG8gZGVjaWRlIGlmIHRoZSBib3ggbmVlZHMgdG8gbW92ZSwgd2UgZG9uJ3QgeWV0IGhhdmUgdGhl
IGZpbmFsIHZlcnRpY2FsIHBvc2l0aW9uLgorICAgIC8vCisgICAgLy8gVGhlIGlkZWEgaGVyZSBp
cyB0aGF0IGFzIGxvbmcgYXMgd2UgZG9uJ3QgY3Jvc3MgdGhlIGJsb2NrIGZvcm1hdHRpbmcgY29u
dGV4dCBib3VuZGFyeSwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gcHJlLWNvbXB1dGUgdGhlIGZpbmFs
IHRvcCBtYXJnaW4uCisKKyAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gbGF5b3V0Qm94LmNvbnRh
aW5pbmdCbG9jaygpOyBhbmNlc3RvciAmJiAhYW5jZXN0b3ItPmVzdGFibGlzaGVzQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dCgpOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5jb250YWluaW5nQmxvY2soKSkg
eworICAgICAgICBhdXRvKiBkaXNwbGF5Qm94ID0gbGF5b3V0Q29udGV4dC5kaXNwbGF5Qm94Rm9y
TGF5b3V0Qm94KCphbmNlc3Rvcik7CisgICAgICAgIEFTU0VSVChkaXNwbGF5Qm94KTsKKyAgICAg
ICAgLy8gRklYTUU6IHdpdGggaW5jcmVtZW50YWwgbGF5b3V0LCB3ZSBtaWdodCBhY3R1YWxseSBo
YXZlIGEgdmFsaWQgKG5vbi1lc3RpbWF0ZWQpIG1hcmdpbiB0b3AgYXMgd2VsbC4KKyAgICAgICAg
aWYgKGRpc3BsYXlCb3gtPmVzdGltYXRlZE1hcmdpblRvcCgpKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGNvbXB1dGVFc3RpbWF0ZWRNYXJnaW5Ub3AobGF5b3V0Q29udGV4dCwgKmFu
Y2VzdG9yLCAqZGlzcGxheUJveCk7CisgICAgfQorfQorCiB2b2lkIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVGbG9hdGluZ1Bvc2l0aW9uKExheW91dENvbnRleHQmIGxheW91dENvbnRl
eHQsIEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJv
eCwgRGlzcGxheTo6Qm94JiBkaXNwbGF5Qm94KSBjb25zdAogewogICAgIEFTU0VSVChsYXlvdXRC
b3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSk7CkBAIC0xNjYsMTMgKzE5OSwxOCBAQCB2b2lkIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVGbG9hdGluZ1Bvc2l0aW9uKExheW91dENvbnRl
eHQmIGxheW91dENvbnRleAogICAgICAgICBhdXRvJiBwcmV2aW91c0Rpc3BsYXlCb3ggPSAqbGF5
b3V0Q29udGV4dC5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KCpwcmV2aW91c0luRmxvd0JveCk7CiAg
ICAgICAgIGRpc3BsYXlCb3gubW92ZVZlcnRpY2FsbHkocHJldmlvdXNEaXNwbGF5Qm94Lm5vbkNv
bGxhcHNlZE1hcmdpbkJvdHRvbSgpIC0gcHJldmlvdXNEaXNwbGF5Qm94Lm1hcmdpbkJvdHRvbSgp
KTsKICAgICB9CisgICAgY29tcHV0ZUVzdGltYXRlZE1hcmdpblRvcEZvckFuY2VzdG9ycyhsYXlv
dXRDb250ZXh0LCBsYXlvdXRCb3gpOwogICAgIGRpc3BsYXlCb3guc2V0VG9wTGVmdChmbG9hdGlu
Z0NvbnRleHQucG9zaXRpb25Gb3JGbG9hdChsYXlvdXRCb3gpKTsKICAgICBmbG9hdGluZ0NvbnRl
eHQuZmxvYXRpbmdTdGF0ZSgpLmFwcGVuZChsYXlvdXRCb3gpOwogfQogCi12b2lkIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihjb25z
dCBGbG9hdGluZ0NvbnRleHQmIGZsb2F0aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gs
IERpc3BsYXk6OkJveCYgZGlzcGxheUJveCkgY29uc3QKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKExheW91dENvbnRleHQm
IGxheW91dENvbnRleHQsIGNvbnN0IEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBj
b25zdCBCb3gmIGxheW91dEJveCwgRGlzcGxheTo6Qm94JiBkaXNwbGF5Qm94KSBjb25zdAogewog
ICAgIEFTU0VSVChsYXlvdXRCb3guaGFzRmxvYXRDbGVhcigpKTsKKyAgICBpZiAoZmxvYXRpbmdD
b250ZXh0LmZsb2F0aW5nU3RhdGUoKS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGNvbXB1dGVFc3RpbWF0ZWRNYXJnaW5Ub3BGb3JBbmNlc3RvcnMobGF5b3V0Q29udGV4dCwgbGF5
b3V0Qm94KTsKICAgICBpZiAoYXV0byB2ZXJ0aWNhbFBvc2l0aW9uV2l0aENsZWFyYW5jZSA9IGZs
b2F0aW5nQ29udGV4dC52ZXJ0aWNhbFBvc2l0aW9uV2l0aENsZWFyYW5jZShsYXlvdXRCb3gpKQog
ICAgICAgICBkaXNwbGF5Qm94LnNldFRvcCgqdmVydGljYWxQb3NpdGlvbldpdGhDbGVhcmFuY2Up
OwogfQpAQCAtMjA4LDkgKzI0NiwxMyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVJbkZsb3dIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0QwogewogICAg
IGF1dG8gaGVpZ2h0QW5kTWFyZ2luID0gR2VvbWV0cnk6OmluRmxvd0hlaWdodEFuZE1hcmdpbihs
YXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOwogICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJveEhl
aWdodChoZWlnaHRBbmRNYXJnaW4uaGVpZ2h0KTsKLSAgICBkaXNwbGF5Qm94Lm1vdmVWZXJ0aWNh
bGx5KGhlaWdodEFuZE1hcmdpbi5jb2xsYXBzZWRNYXJnaW4udmFsdWVfb3IoaGVpZ2h0QW5kTWFy
Z2luLm1hcmdpbikudG9wKTsKLSAgICBkaXNwbGF5Qm94LnNldFZlcnRpY2FsTWFyZ2luKGhlaWdo
dEFuZE1hcmdpbi5jb2xsYXBzZWRNYXJnaW4udmFsdWVfb3IoaGVpZ2h0QW5kTWFyZ2luLm1hcmdp
bikpOworICAgIGF1dG8gbWFyZ2luVmFsdWUgPSBoZWlnaHRBbmRNYXJnaW4uY29sbGFwc2VkTWFy
Z2luLnZhbHVlX29yKGhlaWdodEFuZE1hcmdpbi5tYXJnaW4pOworICAgIGRpc3BsYXlCb3guc2V0
VmVydGljYWxNYXJnaW4obWFyZ2luVmFsdWUpOwogICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxO
b25Db2xsYXBzZWRNYXJnaW4oaGVpZ2h0QW5kTWFyZ2luLm1hcmdpbik7CisKKyAgICAvLyBUaGlz
IGJveCBoYXMgYWxyZWFkeSBiZWVuIG1vdmVkIGJ5IHRoZSBlc3RpbWF0ZWQgdmVydGljYWwgbWFy
Z2luLiBObyBuZWVkIHRvIG1vdmUgaXQgYWdhaW4uCisgICAgaWYgKCFkaXNwbGF5Qm94LmVzdGlt
YXRlZE1hcmdpblRvcCgpKQorICAgICAgICBkaXNwbGF5Qm94Lm1vdmVWZXJ0aWNhbGx5KG1hcmdp
blZhbHVlLnRvcCk7CiB9CiAKIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUlu
Rmxvd1dpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJv
eCYgbGF5b3V0Qm94LCBEaXNwbGF5OjpCb3gmIGRpc3BsYXlCb3gpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dC5oCmluZGV4IDMyNDdlZDU2ODEzMmY5Zjk2NDJhNzM4YWNmZWRkYjY1MDY0
YjJlNDguLmU4Njg3YTNhNDRkYWYzY2YzNTZkNDhjZWFkMzJkMTc2MjA2ODAyOWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5n
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC01NywxMCArNTcsMTIgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgY29tcHV0ZVN0YXRpY1Bvc2l0aW9uKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBE
aXNwbGF5OjpCb3gmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVGbG9hdGluZ1Bv
c2l0aW9uKExheW91dENvbnRleHQmLCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNw
bGF5OjpCb3gmKSBjb25zdDsKLSAgICB2b2lkIGNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yRmxv
YXRDbGVhcihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gm
KSBjb25zdDsKKyAgICB2b2lkIGNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihM
YXlvdXRDb250ZXh0JiwgY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxh
eTo6Qm94JikgY29uc3Q7CiAgICAgdm9pZCBjb21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0aW9u
KExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2b2lkIGNvbXB1dGVJbkZsb3dXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0Jiwg
Y29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3Q7CiAgICAgdm9pZCBjb21wdXRlSW5GbG93
SGVpZ2h0QW5kTWFyZ2luKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gm
KSBjb25zdDsKKyAgICB2b2lkIGNvbXB1dGVFc3RpbWF0ZWRNYXJnaW5Ub3AoTGF5b3V0Q29udGV4
dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNvbnN0OworICAgIHZvaWQgY29tcHV0ZUVz
dGltYXRlZE1hcmdpblRvcEZvckFuY2VzdG9ycyhMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jikg
Y29uc3Q7CiAKICAgICBGb3JtYXR0aW5nQ29udGV4dDo6SW5zdHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMgaW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYp
IGNvbnN0IG92ZXJyaWRlOwogCkBAIC04Nyw2ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgY2xhc3Mg
TWFyZ2luQ29sbGFwc2UgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIExheW91dFVuaXQg
bWFyZ2luVG9wKGNvbnN0IExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKKyAgICAgICAgc3Rh
dGljIExheW91dFVuaXQgZXN0aW1hdGVkTWFyZ2luVG9wKGNvbnN0IExheW91dENvbnRleHQmLCBj
b25zdCBCb3gmKTsKICAgICAgICAgc3RhdGljIExheW91dFVuaXQgbWFyZ2luQm90dG9tKGNvbnN0
IExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKIAogICAgICAgICBzdGF0aWMgYm9vbCBpc01h
cmdpbkJvdHRvbUNvbGxhcHNlZFdpdGhQYXJlbnQoY29uc3QgTGF5b3V0Q29udGV4dCYsIGNvbnN0
IEJveCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKaW5kZXggODYxMGYxYmIyZWUzNmNiYzY2
ZTc1NmNjOWExYjc2OWVhYjQ1ZjFkMy4uZjU3YmZmMDdlNDM1NjY2NzEyNjk1ZTUwZjU3YzE4MTJj
MTdjYjI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCkBAIC0zMzIsNiArMzMyLDE4IEBA
IExheW91dFVuaXQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om5vbkNv
bGxhcHNlZE1hcmdpbkJvdHRvbShjb25zCiAgICAgcmV0dXJuIG1hcmdpblZhbHVlKGNvbXB1dGVk
Tm9uQ29sbGFwc2VkTWFyZ2luQm90dG9tKGxheW91dENvbnRleHQsIGxheW91dEJveCksIGNvbGxh
cHNlZE1hcmdpbkJvdHRvbUZyb21MYXN0Q2hpbGQobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KSk7
CiB9CiAKK0xheW91dFVuaXQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6
OmVzdGltYXRlZE1hcmdpblRvcChjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBj
b25zdCBCb3gmIGxheW91dEJveCkKK3sKKyAgICBBU1NFUlQobGF5b3V0Qm94LmlzQmxvY2tMZXZl
bEJveCgpKTsKKyAgICAvLyBDYW4ndCBlc3RpbWF0ZSB2ZXJ0aWNhbCBtYXJnaW5zIGZvciBvdXQg
b2YgZmxvdyBib3hlcyAoYW5kIHdlIHNob3VsZG4ndCBuZWVkIHRvIGRvIGl0IGZvciBmbG9hdCBi
b3hlcykuCisgICAgQVNTRVJUKGxheW91dEJveC5pc0luRmxvdygpKTsKKyAgICAvLyBDYW4ndCBj
cm9zcyBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgYm91bmRhcnkuIAorICAgIEFTU0VSVCghbGF5
b3V0Qm94LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpKTsKKworICAgIC8vIExl
dCdzIGp1c3QgdXNlIHRoZSBub3JtYWwgcGF0aCBmb3Igbm93LgorICAgIHJldHVybiBtYXJnaW5U
b3AobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KTsKK30KKwogfQogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5jcHAKaW5kZXggOThh
ZmNjNTA2MDVkY2YzM2FmZWI5MDRiNmJlZmY3NjhjNDc2MTk0Mi4uNzE4YjE2ZWFmNTAyM2RjNGIx
MGU5MTlhYTNkYzQ3MGYyNzBhOTk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9k
aXNwbGF5dHJlZS9EaXNwbGF5Qm94LmNwcApAQCAtNTksOSArNTksMTIgQEAgQm94OjpCb3goY29u
c3QgQm94JiBvdGhlcikKICAgICAsIG1fY29udGVudEhlaWdodChvdGhlci5tX2NvbnRlbnRIZWln
aHQpCiAgICAgLCBtX21hcmdpbihvdGhlci5tX21hcmdpbikKICAgICAsIG1fdmVydGljYWxOb25D
b2xsYXBzZWRNYXJnaW4ob3RoZXIubV92ZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbikKKyAgICAs
IG1fZXN0aW1hdGVkTWFyZ2luVG9wKG90aGVyLm1fZXN0aW1hdGVkTWFyZ2luVG9wKQogICAgICwg
bV9ib3JkZXIob3RoZXIubV9ib3JkZXIpCiAgICAgLCBtX3BhZGRpbmcob3RoZXIubV9wYWRkaW5n
KQogI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICAsIG1faGFzVmFsaWRUb3Aob3RoZXIubV9oYXNW
YWxpZFRvcCkKKyAgICAsIG1faGFzVmFsaWRMZWZ0KG90aGVyLm1faGFzVmFsaWRMZWZ0KQogICAg
ICwgbV9oYXNWYWxpZEhvcml6b250YWxNYXJnaW4ob3RoZXIubV9oYXNWYWxpZEhvcml6b250YWxN
YXJnaW4pCiAgICAgLCBtX2hhc1ZhbGlkVmVydGljYWxNYXJnaW4ob3RoZXIubV9oYXNWYWxpZFZl
cnRpY2FsTWFyZ2luKQogICAgICwgbV9oYXNWYWxpZFZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2lu
KG90aGVyLm1faGFzVmFsaWRWZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oCmluZGV4IGZkMDk2ZDNmMzMy
MTRkZjE2MzI2NzBkZDIwNWZmZjA5NDM3OGExNGUuLmRhNTNhZTJhNzFkZTg2NjgyNWNkMGU4MDQz
NzUzNDlkNjY4ZTBjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5
dHJlZS9EaXNwbGF5Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVl
L0Rpc3BsYXlCb3guaApAQCAtMTE3LDEyICsxMTcsMTIgQEAgcHVibGljOgogCiAgICAgfkJveCgp
OwogCi0gICAgTGF5b3V0VW5pdCB0b3AoKSBjb25zdCB7IHJldHVybiBtX3RvcExlZnQueSgpOyB9
Ci0gICAgTGF5b3V0VW5pdCBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV90b3BMZWZ0LngoKTsgfQor
ICAgIExheW91dFVuaXQgdG9wKCkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBsZWZ0KCkgY29uc3Q7
CiAgICAgTGF5b3V0VW5pdCBib3R0b20oKSBjb25zdCB7IHJldHVybiB0b3AoKSArIGhlaWdodCgp
OyB9CiAgICAgTGF5b3V0VW5pdCByaWdodCgpIGNvbnN0IHsgcmV0dXJuIGxlZnQoKSArIHdpZHRo
KCk7IH0KIAotICAgIExheW91dFBvaW50IHRvcExlZnQoKSBjb25zdCB7IHJldHVybiBtX3RvcExl
ZnQ7IH0KKyAgICBMYXlvdXRQb2ludCB0b3BMZWZ0KCkgY29uc3Q7CiAgICAgTGF5b3V0UG9pbnQg
Ym90dG9tUmlnaHQoKSBjb25zdCB7IHJldHVybiB7IHJpZ2h0KCksIGJvdHRvbSgpIH07IH0KIAog
ICAgIExheW91dFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHsgd2lkdGgoKSwgaGVpZ2h0KCkg
fTsgfQpAQCAtMTM4LDYgKzEzOCw3IEBAIHB1YmxpYzoKIAogICAgIExheW91dFVuaXQgbm9uQ29s
bGFwc2VkTWFyZ2luVG9wKCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBub25Db2xsYXBzZWRNYXJn
aW5Cb3R0b20oKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGVzdGltYXRl
ZE1hcmdpblRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fZXN0aW1hdGVkTWFyZ2luVG9wOyB9CiAKICAg
ICBMYXlvdXRVbml0IGJvcmRlclRvcCgpIGNvbnN0OwogICAgIExheW91dFVuaXQgYm9yZGVyTGVm
dCgpIGNvbnN0OwpAQCAtMTcyLDkgKzE3Myw5IEBAIHByaXZhdGU6CiAgICAgICAgIEJveFNpemlu
ZyBib3hTaXppbmcgeyBCb3hTaXppbmc6OkNvbnRlbnRCb3ggfTsKICAgICB9OwogCi0gICAgdm9p
ZCBzZXRUb3BMZWZ0KGNvbnN0IExheW91dFBvaW50JiB0b3BMZWZ0KSB7IG1fdG9wTGVmdCA9IHRv
cExlZnQ7IH0KLSAgICB2b2lkIHNldFRvcChMYXlvdXRVbml0IHRvcCkgeyBtX3RvcExlZnQuc2V0
WSh0b3ApOyB9Ci0gICAgdm9pZCBzZXRMZWZ0KExheW91dFVuaXQgbGVmdCkgeyBtX3RvcExlZnQu
c2V0WChsZWZ0KTsgfQorICAgIHZvaWQgc2V0VG9wTGVmdChjb25zdCBMYXlvdXRQb2ludCYpOwor
ICAgIHZvaWQgc2V0VG9wKExheW91dFVuaXQpOworICAgIHZvaWQgc2V0TGVmdChMYXlvdXRVbml0
KTsKICAgICB2b2lkIG1vdmVIb3Jpem9udGFsbHkoTGF5b3V0VW5pdCBvZmZzZXQpIHsgbV90b3BM
ZWZ0Lm1vdmUob2Zmc2V0LCB7IH0pOyB9CiAgICAgdm9pZCBtb3ZlVmVydGljYWxseShMYXlvdXRV
bml0IG9mZnNldCkgeyBtX3RvcExlZnQubW92ZSh7IH0sIG9mZnNldCk7IH0KIApAQCAtMTg0LDYg
KzE4NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRIb3Jpem9udGFsTWFyZ2luKExheW91dDo6
SG9yaXpvbnRhbEVkZ2VzKTsKICAgICB2b2lkIHNldFZlcnRpY2FsTWFyZ2luKExheW91dDo6VmVy
dGljYWxFZGdlcyk7CiAgICAgdm9pZCBzZXRWZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbihMYXlv
dXQ6OlZlcnRpY2FsRWRnZXMpOworICAgIHZvaWQgc2V0RXN0aW1hdGVkTWFyZ2luVG9wKExheW91
dFVuaXQgbWFyZ2luVG9wKSB7IG1fZXN0aW1hdGVkTWFyZ2luVG9wID0gbWFyZ2luVG9wOyB9CiAK
ICAgICB2b2lkIHNldEJvcmRlcihMYXlvdXQ6OkVkZ2VzKTsKICAgICB2b2lkIHNldFBhZGRpbmco
TGF5b3V0OjpFZGdlcyk7CkBAIC0xOTMsNiArMTk1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGlu
dmFsaWRhdGVCb3JkZXIoKSB7IG1faGFzVmFsaWRCb3JkZXIgPSBmYWxzZTsgfQogICAgIHZvaWQg
aW52YWxpZGF0ZVBhZGRpbmcoKSB7IG1faGFzVmFsaWRQYWRkaW5nID0gZmFsc2U7IH0KIAorICAg
IHZvaWQgc2V0SGFzVmFsaWRUb3AoKSB7IG1faGFzVmFsaWRUb3AgPSB0cnVlOyB9CisgICAgdm9p
ZCBzZXRIYXNWYWxpZExlZnQoKSB7IG1faGFzVmFsaWRMZWZ0ID0gdHJ1ZTsgfQogICAgIHZvaWQg
c2V0SGFzVmFsaWRWZXJ0aWNhbE1hcmdpbigpIHsgbV9oYXNWYWxpZFZlcnRpY2FsTWFyZ2luID0g
dHJ1ZTsgfQogICAgIHZvaWQgc2V0SGFzVmFsaWRWZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbigp
IHsgbV9oYXNWYWxpZFZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luID0gdHJ1ZTsgfQogICAgIHZv
aWQgc2V0SGFzVmFsaWRIb3Jpem9udGFsTWFyZ2luKCkgeyBtX2hhc1ZhbGlkSG9yaXpvbnRhbE1h
cmdpbiA9IHRydWU7IH0KQEAgLTIxMiwxMSArMjE2LDE0IEBAIHByaXZhdGU6CiAKICAgICBMYXlv
dXQ6OkVkZ2VzIG1fbWFyZ2luOwogICAgIExheW91dDo6VmVydGljYWxFZGdlcyBtX3ZlcnRpY2Fs
Tm9uQ29sbGFwc2VkTWFyZ2luOworICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbV9lc3Rp
bWF0ZWRNYXJnaW5Ub3A7CiAKICAgICBMYXlvdXQ6OkVkZ2VzIG1fYm9yZGVyOwogICAgIExheW91
dDo6RWRnZXMgbV9wYWRkaW5nOwogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIGJvb2wgbV9o
YXNWYWxpZFRvcCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1ZhbGlkTGVmdCB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2hhc1ZhbGlkSG9yaXpvbnRhbE1hcmdpbiB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2hhc1ZhbGlkVmVydGljYWxNYXJnaW4geyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNWYWxp
ZFZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luIHsgZmFsc2UgfTsKQEAgLTQxNiw2ICs0MjMsNTAg
QEAgaW5saW5lIEJveDo6UmVjdDo6b3BlcmF0b3IgTGF5b3V0UmVjdCgpIGNvbnN0CiAgICAgcmV0
dXJuIG1fcmVjdDsKIH0KIAoraW5saW5lIExheW91dFVuaXQgQm94Ojp0b3AoKSBjb25zdAorewor
ICAgIEFTU0VSVChtX2hhc1ZhbGlkVG9wICYmIChtX2VzdGltYXRlZE1hcmdpblRvcCB8fCBtX2hh
c1ZhbGlkVmVydGljYWxNYXJnaW4pKTsKKyAgICByZXR1cm4gbV90b3BMZWZ0LnkoKTsgCit9CisK
K2lubGluZSBMYXlvdXRVbml0IEJveDo6bGVmdCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFz
VmFsaWRMZWZ0ICYmIG1faGFzVmFsaWRIb3Jpem9udGFsTWFyZ2luKTsKKyAgICByZXR1cm4gbV90
b3BMZWZ0LngoKTsKK30KKworaW5saW5lIExheW91dFBvaW50IEJveDo6dG9wTGVmdCgpIGNvbnN0
Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRUb3AgJiYgKG1fZXN0aW1hdGVkTWFyZ2luVG9wIHx8
IG1faGFzVmFsaWRWZXJ0aWNhbE1hcmdpbikpOworICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVmdCAm
JiBtX2hhc1ZhbGlkSG9yaXpvbnRhbE1hcmdpbik7CisgICAgcmV0dXJuIG1fdG9wTGVmdDsKK30K
KworaW5saW5lIHZvaWQgQm94OjpzZXRUb3BMZWZ0KGNvbnN0IExheW91dFBvaW50JiB0b3BMZWZ0
KQoreyAKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgc2V0SGFzVmFsaWRUb3AoKTsKKyAgICBz
ZXRIYXNWYWxpZExlZnQoKTsKKyNlbmRpZgorICAgIG1fdG9wTGVmdCA9IHRvcExlZnQ7Cit9CisK
K2lubGluZSB2b2lkIEJveDo6c2V0VG9wKExheW91dFVuaXQgdG9wKQoreworI2lmICFBU1NFUlRf
RElTQUJMRUQKKyAgICBzZXRIYXNWYWxpZFRvcCgpOworI2VuZGlmCisgICAgbV90b3BMZWZ0LnNl
dFkodG9wKTsKK30KKworaW5saW5lIHZvaWQgQm94OjpzZXRMZWZ0KExheW91dFVuaXQgbGVmdCkK
K3sKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgc2V0SGFzVmFsaWRMZWZ0KCk7CisjZW5kaWYK
KyAgICBtX3RvcExlZnQuc2V0WChsZWZ0KTsKK30KKwogaW5saW5lIHZvaWQgQm94OjpzZXRDb250
ZW50Qm94SGVpZ2h0KExheW91dFVuaXQgaGVpZ2h0KQogeyAKICNpZiAhQVNTRVJUX0RJU0FCTEVE
CkBAIC00NTcsNiArNTA4LDcgQEAgaW5saW5lIHZvaWQgQm94OjpzZXRWZXJ0aWNhbE1hcmdpbihM
YXlvdXQ6OlZlcnRpY2FsRWRnZXMgbWFyZ2luKQogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICBz
ZXRIYXNWYWxpZFZlcnRpY2FsTWFyZ2luKCk7CiAjZW5kaWYKKyAgICBBU1NFUlQoIW1fZXN0aW1h
dGVkTWFyZ2luVG9wIHx8ICptX2VzdGltYXRlZE1hcmdpblRvcCA9PSBtYXJnaW4udG9wKTsKICAg
ICBtX21hcmdpbi52ZXJ0aWNhbCA9IG1hcmdpbjsKIH0KIAo=
</data>
<flag name="review"
          id="365026"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>