<?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>198697</bug_id>
          
          <creation_ts>2019-06-08 18:58:22 -0700</creation_ts>
          <short_desc>[LFC][IFC] Add support for vertical-align: top and bottom</short_desc>
          <delta_ts>2019-06-15 07:03:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</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>1543174</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-06-08 18:58:22 -0700</bug_when>
    <thetext>in addition to baseline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543175</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-08 18:58:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/51556188&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543176</commentid>
    <comment_count>2</comment_count>
      <attachid>371695</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-06-08 19:05:31 -0700</bug_when>
    <thetext>Created attachment 371695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543177</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-06-08 19:06:27 -0700</bug_when>
    <thetext>Attachment 371695 did not pass style-queue:


ERROR: Source/WebCore/layout/inlineformatting/InlineLine.cpp:95:  Missing space before ( in switch(  [whitespace/parens] [5]
ERROR: Source/WebCore/layout/inlineformatting/InlineLine.cpp:290:  Missing space before ( in switch(  [whitespace/parens] [5]
ERROR: Source/WebCore/layout/inlineformatting/InlineLine.cpp:292:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 3 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543179</commentid>
    <comment_count>4</comment_count>
      <attachid>371696</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-06-08 19:07:31 -0700</bug_when>
    <thetext>Created attachment 371696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545010</commentid>
    <comment_count>5</comment_count>
      <attachid>371696</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-15 07:03:29 -0700</bug_when>
    <thetext>Comment on attachment 371696
Patch

Clearing flags on attachment: 371696

Committed r246457: &lt;https://trac.webkit.org/changeset/246457&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545011</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-15 07:03:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371695</attachid>
            <date>2019-06-08 19:05:31 -0700</date>
            <delta_ts>2019-06-08 19:07:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198697-20190608190528.patch</filename>
            <type>text/plain</type>
            <size>13721</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxNmQ1YmFkMTRkMWUy
MWIzNDg0M2RhMjEzOTM0YTlmMTMzNzY2My4uYTA0N2NlYzFiYmFhZGVhNTA5M2IyZGNkMDQ0YmM5
NmQ2Zjc4ZjU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTA2LTA4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBBZGQgc3Vw
cG9ydCBmb3IgdmVydGljYWwtYWxpZ246IHRvcCBhbmQgYm90dG9tCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg2OTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzUxNTU2MTg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSB0aGUgbGF5b3V0IGJveCdzIHZlcnRpY2FsIGFsaWdubWVudCB0byBhZGp1
c3QgbGluZSBiYXNlbGluZSBhbmQgaGVpZ2h0IGFuZCBzZXQgdGhlIHJ1bidzIGxvZ2ljYWwgdG9w
IHdoZW4gdGhlIGxpbmUgaXMgYmVpbmcgY2xvc2VkLgorCisgICAgICAgICogbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxp
bmU6OmlzVmlzdWFsbHlFbXB0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxp
bmU6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5kSW5saW5l
Q29udGFpbmVyU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRU
ZXh0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZE5vblJl
cGxhY2VkSW5saW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5k
SGFyZExpbmVCcmVhayk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFkanVzdEJh
c2VsaW5lQW5kTGluZUhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6Omlu
bGluZUl0ZW1IZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpD
b250ZW50Ojppc1Zpc3VhbGx5RW1wdHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGluZTo6Q29udGVudDo6aXNWaXN1YWxseUVtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGluZTo6Q29udGVudDo6c2V0SXNWaXN1YWxseUVtcHR5KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZTo6aGFzQ29udGVudCBjb25zdCk6CisKIDIwMTktMDYtMDcg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIElu
dHJvZHVjZSBCYXNlbGluZSB0byBMaW5lQm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCmluZGV4IDI3ZjZhNzg1OTE1YjZi
OWIxNzY3ZmM4N2IwMzZiNTMzZDY3NmE4NDguLmZiN2ExODk1ZTI1NGE1YjdmYjNhOWUwMjU2Mjgz
NTViOTY0MWMzYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCkBAIC0zNSwxOCArMzUsNiBAQCBuYW1lc3BhY2UgTGF5
b3V0IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKExpbmUpOwogCi1ib29sIExpbmU6
OkNvbnRlbnQ6OmlzVmlzdWFsbHlFbXB0eSgpIGNvbnN0Ci17Ci0gICAgLy8gUmV0dXJuIHRydWUg
Zm9yIGVtcHR5IGlubGluZSBjb250YWluZXJzIGxpa2UgPHNwYW4+PC9zcGFuPi4KLSAgICBmb3Ig
KGF1dG8mIHJ1biA6IG1fcnVucykgewotICAgICAgICBpZiAocnVuLT5pbmxpbmVJdGVtLmlzQ29u
dGFpbmVyU3RhcnQoKSB8fCBydW4tPmlubGluZUl0ZW0uaXNDb250YWluZXJFbmQoKSkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoIXJ1bi0+aXNDb2xsYXBzZWQpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCiBMaW5lOjpD
b250ZW50OjpSdW46OlJ1bihjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBEaXNw
bGF5OjpSZWN0JiBsb2dpY2FsUmVjdCwgVGV4dENvbnRleHQgdGV4dENvbnRleHQsIGJvb2wgaXND
b2xsYXBzZWQsIGJvb2wgY2FuQmVFeHRlbmRlZCkKICAgICA6IGlubGluZUl0ZW0oaW5saW5lSXRl
bSkKICAgICAsIGxvZ2ljYWxSZWN0KGxvZ2ljYWxSZWN0KQpAQCAtNzUsMTYgKzYzLDY1IEBAIExp
bmU6OkxpbmUoY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBMYXlvdXRQb2lu
dCYgdG9wTGVmdCwgTGF5b3V0VW5pCiB7CiB9CiAKK2Jvb2wgTGluZTo6aXNWaXN1YWxseUVtcHR5
KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgY2FjaGVkIGluc3RlYWQg
LWFzIHRoZSBpbmxpbmUgaXRlbXMgYXJlIGJlaW5nIGFkZGVkLgorICAgIC8vIFJldHVybiB0cnVl
IGZvciBlbXB0eSBpbmxpbmUgY29udGFpbmVycyBsaWtlIDxzcGFuPjwvc3Bhbj4uCisgICAgZm9y
IChhdXRvJiBydW4gOiBtX2NvbnRlbnQtPnJ1bnMoKSkgeworICAgICAgICBpZiAocnVuLT5pbmxp
bmVJdGVtLmlzQ29udGFpbmVyU3RhcnQoKSkgeworICAgICAgICAgICAgYXV0byYgZGlzcGxheUJv
eCA9IG1fbGF5b3V0U3RhdGUuZGlzcGxheUJveEZvckxheW91dEJveChydW4tPmlubGluZUl0ZW0u
bGF5b3V0Qm94KCkpOworICAgICAgICAgICAgaWYgKGRpc3BsYXlCb3guaG9yaXpvbnRhbEJvcmRl
cigpIHx8IChkaXNwbGF5Qm94Lmhvcml6b250YWxQYWRkaW5nKCkgJiYgZGlzcGxheUJveC5ob3Jp
em9udGFsUGFkZGluZygpLnZhbHVlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGlmIChydW4tPmlubGlu
ZUl0ZW0uaXNDb250YWluZXJFbmQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBp
ZiAoIXJ1bi0+aXNDb2xsYXBzZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIHJldHVybiB0cnVlOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8TGluZTo6Q29udGVudD4gTGlu
ZTo6Y2xvc2UoKQogewogICAgIHJlbW92ZVRyYWlsaW5nVHJpbW1hYmxlQ29udGVudCgpOwogICAg
IGlmICghbV9za2lwVmVydGljYWxBbGlnbWVudCkgewotICAgICAgICAvLyBDb252ZXJ0IGlubGlu
ZSBydW4gZ2VvbWV0cnkgZnJvbSByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUgdG8gcmVsYXRpdmUg
dG8gbG9naWNhbCB0b3AuCiAgICAgICAgIGZvciAoYXV0byYgcnVuIDogbV9jb250ZW50LT5ydW5z
KCkpIHsKLSAgICAgICAgICAgIGF1dG8gYWRqdXN0ZWRMb2dpY2FsVG9wID0gcnVuLT5sb2dpY2Fs
UmVjdC50b3AoKSArIGJhc2VsaW5lT2Zmc2V0KCk7Ci0gICAgICAgICAgICBydW4tPmxvZ2ljYWxS
ZWN0LnNldFRvcChhZGp1c3RlZExvZ2ljYWxUb3ApOworICAgICAgICAgICAgTGF5b3V0VW5pdCBs
b2dpY2FsVG9wOworICAgICAgICAgICAgYXV0byYgaW5saW5lSXRlbSA9IHJ1bi0+aW5saW5lSXRl
bTsKKyAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9IGlubGluZUl0ZW0ubGF5b3V0Qm94KCk7
CisgICAgICAgICAgICBhdXRvIGFzY2VudCA9IGlubGluZUl0ZW0uc3R5bGUoKS5mb250TWV0cmlj
cygpLmFzY2VudCgpOworCisgICAgICAgICAgICBzd2l0Y2goaW5saW5lSXRlbS5zdHlsZSgpLnZl
cnRpY2FsQWxpZ24oKSkgeworICAgICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpCYXNlbGlu
ZToKKyAgICAgICAgICAgICAgICBpZiAoaW5saW5lSXRlbS5pc0xpbmVCcmVhaygpIHx8IGlubGlu
ZUl0ZW0uaXNUZXh0KCkpCisgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxUb3AgPSBiYXNlbGlu
ZU9mZnNldCgpIC0gYXNjZW50OworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlubGluZUl0ZW0u
aXNDb250YWluZXJTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGF1dG8mIGRpc3BsYXlC
b3ggPSBtX2xheW91dFN0YXRlLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gobGF5b3V0Qm94KTsKKyAg
ICAgICAgICAgICAgICAgICAgbG9naWNhbFRvcCA9IGJhc2VsaW5lT2Zmc2V0KCkgLSBhc2NlbnQg
LSBkaXNwbGF5Qm94LmJvcmRlclRvcCgpIC0gZGlzcGxheUJveC5wYWRkaW5nVG9wKCkudmFsdWVP
cigwKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxheW91dEJveC5pc0lubGluZUJsb2Nr
Qm94KCkgJiYgbGF5b3V0Qm94LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSkg
eworICAgICAgICAgICAgICAgICAgICBhdXRvJiBmb3JtYXR0aW5nU3RhdGUgPSBkb3duY2FzdDxJ
bmxpbmVGb3JtYXR0aW5nU3RhdGU+KG1fbGF5b3V0U3RhdGUuZXN0YWJsaXNoZWRGb3JtYXR0aW5n
U3RhdGUobGF5b3V0Qm94KSk7CisgICAgICAgICAgICAgICAgICAgIC8vIFNwZWMgbWFrZXMgdXMg
Z2VuZXJhdGUgYXQgbGVhc3Qgb25lIGxpbmUgLWV2ZW4gaWYgaXQgaXMgZW1wdHkuCisgICAgICAg
ICAgICAgICAgICAgIEFTU0VSVCghZm9ybWF0dGluZ1N0YXRlLmxpbmVCb3hlcygpLmlzRW1wdHko
KSk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZSA9IGZvcm1h
dHRpbmdTdGF0ZS5saW5lQm94ZXMoKS5sYXN0KCkuYmFzZWxpbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgbG9naWNhbFRvcCA9IGJhc2VsaW5lT2Zmc2V0KCkgLSBpbmxpbmVCbG9ja0Jhc2VsaW5l
LmFzY2VudDsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbG9n
aWNhbFRvcCA9IGJhc2VsaW5lT2Zmc2V0KCkgLSBydW4tPmxvZ2ljYWxSZWN0LmhlaWdodCgpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpU
b3A6CisgICAgICAgICAgICAgICAgbG9naWNhbFRvcCA9IHsgfTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgVmVydGljYWxBbGlnbjo6Qm90dG9tOgorICAgICAgICAg
ICAgICAgIGxvZ2ljYWxUb3AgPSBsb2dpY2FsQm90dG9tKCkgLSBydW4tPmxvZ2ljYWxSZWN0Lmhl
aWdodCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICBBU1NFUlRfTk9UX0lNUExFTUVOVEVEX1lFVCgpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcnVuLT5sb2dpY2FsUmVjdC5z
ZXRUb3AobG9naWNhbFRvcCk7CiAgICAgICAgIH0KICAgICB9CisgICAgbV9jb250ZW50LT5zZXRJ
c1Zpc3VhbGx5RW1wdHkoaXNWaXN1YWxseUVtcHR5KCkpOwogICAgIG1fY29udGVudC0+c2V0TG9n
aWNhbFJlY3QoeyBsb2dpY2FsVG9wKCksIGxvZ2ljYWxMZWZ0KCksIGNvbnRlbnRMb2dpY2FsV2lk
dGgoKSwgbG9naWNhbEhlaWdodCgpIH0pOwogICAgIG1fY29udGVudC0+c2V0QmFzZWxpbmUobV9i
YXNlbGluZSk7CiAgICAgcmV0dXJuIFdURk1vdmUobV9jb250ZW50KTsKQEAgLTE0MiwxMCArMTc5
LDYgQEAgdm9pZCBMaW5lOjphcHBlbmRJbmxpbmVDb250YWluZXJTdGFydChjb25zdCBJbmxpbmVJ
dGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRVbml0IGwKICAgICBpZiAoIW1fc2tpcFZlcnRpY2FsQWxp
Z21lbnQpIHsKICAgICAgICAgYXV0byBsb2dpY2FsSGVpZ2h0ID0gaW5saW5lSXRlbUhlaWdodChp
bmxpbmVJdGVtKTsKICAgICAgICAgYWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KGlubGluZUl0
ZW0sIGxvZ2ljYWxIZWlnaHQpOwotCi0gICAgICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBtX2xheW91
dFN0YXRlLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goaW5saW5lSXRlbS5sYXlvdXRCb3goKSk7Ci0g
ICAgICAgIGF1dG8gbG9naWNhbFRvcCA9IC1pbmxpbmVJdGVtLnN0eWxlKCkuZm9udE1ldHJpY3Mo
KS5hc2NlbnQoKSAtIGRpc3BsYXlCb3guYm9yZGVyVG9wKCkgLSBkaXNwbGF5Qm94LnBhZGRpbmdU
b3AoKS52YWx1ZU9yKDApOwotICAgICAgICBsb2dpY2FsUmVjdC5zZXRUb3AobG9naWNhbFRvcCk7
CiAgICAgICAgIGxvZ2ljYWxSZWN0LnNldEhlaWdodChsb2dpY2FsSGVpZ2h0KTsKICAgICB9CiAg
ICAgYXBwZW5kTm9uQnJlYWthYmxlU3BhY2UoaW5saW5lSXRlbSwgbG9naWNhbFJlY3QpOwpAQCAt
MTkwLDEwICsyMjMsOCBAQCB2b2lkIExpbmU6OmFwcGVuZFRleHRDb250ZW50KGNvbnN0IElubGlu
ZVRleHRJdGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRVbml0IGxvZ2ljYQogICAgIGF1dG8gbG9naWNh
bFJlY3QgPSBEaXNwbGF5OjpSZWN0IHsgfTsKICAgICBsb2dpY2FsUmVjdC5zZXRMZWZ0KGNvbnRl
bnRMb2dpY2FsUmlnaHQoKSk7CiAgICAgbG9naWNhbFJlY3Quc2V0V2lkdGgobG9naWNhbFdpZHRo
KTsKLSAgICBpZiAoIW1fc2tpcFZlcnRpY2FsQWxpZ21lbnQpIHsKLSAgICAgICAgbG9naWNhbFJl
Y3Quc2V0VG9wKC1pbmxpbmVJdGVtLnN0eWxlKCkuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSk7Cisg
ICAgaWYgKCFtX3NraXBWZXJ0aWNhbEFsaWdtZW50KQogICAgICAgICBsb2dpY2FsUmVjdC5zZXRI
ZWlnaHQoaW5saW5lSXRlbUhlaWdodChpbmxpbmVJdGVtKSk7Ci0gICAgfQogCiAgICAgYXV0byB0
ZXh0Q29udGV4dCA9IENvbnRlbnQ6OlJ1bjo6VGV4dENvbnRleHQgeyBpbmxpbmVJdGVtLnN0YXJ0
KCksIGlubGluZUl0ZW0uaXNDb2xsYXBzZWQoKSA/IDEgOiBpbmxpbmVJdGVtLmxlbmd0aCgpIH07
CiAgICAgYXV0byBsaW5lSXRlbSA9IHN0ZDo6bWFrZV91bmlxdWU8Q29udGVudDo6UnVuPihpbmxp
bmVJdGVtLCBsb2dpY2FsUmVjdCwgdGV4dENvbnRleHQsIGlzQ29tcGxldGVseUNvbGxhcHNlZCwg
Y2FuQmVFeHRlbmRlZCk7CkBAIC0yMTUsOCArMjQ2LDYgQEAgdm9pZCBMaW5lOjphcHBlbmROb25S
ZXBsYWNlZElubGluZUJveChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRVbml0
IGwKICAgICBpZiAoIW1fc2tpcFZlcnRpY2FsQWxpZ21lbnQpIHsKICAgICAgICAgYXV0byBsb2dp
Y2FsSGVpZ2h0ID0gaW5saW5lSXRlbUhlaWdodChpbmxpbmVJdGVtKTsKICAgICAgICAgYWRqdXN0
QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KGlubGluZUl0ZW0sIGxvZ2ljYWxIZWlnaHQpOwotCi0gICAg
ICAgIGxvZ2ljYWxSZWN0LnNldFRvcCgtbG9naWNhbEhlaWdodCk7CiAgICAgICAgIGxvZ2ljYWxS
ZWN0LnNldEhlaWdodChsb2dpY2FsSGVpZ2h0KTsKICAgICB9CiAKQEAgLTIzMyw4ICsyNjIsMTEg
QEAgdm9pZCBMaW5lOjphcHBlbmRSZXBsYWNlZElubGluZUJveChjb25zdCBJbmxpbmVJdGVtJiBp
bmxpbmVJdGVtLCBMYXlvdXRVbml0IGxvZ2kKIAogdm9pZCBMaW5lOjphcHBlbmRIYXJkTGluZUJy
ZWFrKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0pCiB7Ci0gICAgYXV0byBhc2NlbnQgPSBp
bmxpbmVJdGVtLmxheW91dEJveCgpLnN0eWxlKCkuZm9udE1ldHJpY3MoKS5hc2NlbnQoKTsKLSAg
ICBhdXRvIGxvZ2ljYWxSZWN0ID0gRGlzcGxheTo6UmVjdCB7IC1hc2NlbnQsIGNvbnRlbnRMb2dp
Y2FsUmlnaHQoKSwgeyB9LCBsb2dpY2FsSGVpZ2h0KCkgfTsKKyAgICBhdXRvIGxvZ2ljYWxSZWN0
ID0gRGlzcGxheTo6UmVjdCB7IH07CisgICAgbG9naWNhbFJlY3Quc2V0TGVmdChjb250ZW50TG9n
aWNhbFJpZ2h0KCkpOworICAgIGxvZ2ljYWxSZWN0LnNldFdpZHRoKHsgfSk7CisgICAgaWYgKCFt
X3NraXBWZXJ0aWNhbEFsaWdtZW50KQorICAgICAgICBsb2dpY2FsUmVjdC5zZXRIZWlnaHQobG9n
aWNhbEhlaWdodCgpKTsKICAgICBtX2NvbnRlbnQtPnJ1bnMoKS5hcHBlbmQoc3RkOjptYWtlX3Vu
aXF1ZTxDb250ZW50OjpSdW4+KGlubGluZUl0ZW0sIGxvZ2ljYWxSZWN0LCBDb250ZW50OjpSdW46
OlRleHRDb250ZXh0IHsgfSwgZmFsc2UsIGZhbHNlKSk7CiB9CiAKQEAgLTI1NSwyMCArMjg3LDM3
IEBAIHZvaWQgTGluZTo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KGNvbnN0IElubGluZUl0
ZW0mIGlubGluZUl0ZW0sIExheW91dFVuaXQKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAv
LyBSZXBsYWNlZCBhbmQgbm9uLXJlcGxhY2VkIGlubGluZSBsZXZlbCBib3guCi0gICAgLy8gRklY
TUU6IFdlIG5lZWQgdG8gbG9vayBpbnNpZGUgdGhlIGlubGluZS1ibG9jaydzIGZvcm1hdHRpbmcg
Y29udGV4dCBhbmQgY2hlY2sgdGhlIGxpbmVib3hlcyAoaWYgYW55KSB0byBiZSBhYmxlIHRvIGJh
c2VsaW5lIGFsaWduLgotICAgIGlmIChsYXlvdXRCb3guZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dCgpKSB7Ci0gICAgICAgIGlmIChydW5IZWlnaHQgPT0gbG9naWNhbEhlaWdodCgp
KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAvLyBGSVhNRTogVGhpcyBmYWlscyB3aGVu
IHRoZSBsaW5lIGhlaWdodCBkaWZmZXJlbmNlIGNvbWVzIGZyb20gZm9udC1zaXplIGRpZmYuCisg
ICAgc3dpdGNoKGlubGluZUl0ZW0uc3R5bGUoKS52ZXJ0aWNhbEFsaWduKCkpIHsKKyAgICBjYXNl
IFZlcnRpY2FsQWxpZ246OkJhc2VsaW5lOgorICAgICAgICBpZiAobGF5b3V0Qm94LmlzSW5saW5l
QmxvY2tCb3ggKCkgJiYgbGF5b3V0Qm94LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQoKSkgeworICAgICAgICAgICAgLy8gSW5saW5lLWJsb2NrcyB3aXRoIGlubGluZSBjb250ZW50
IGFsd2F5cyBoYXZlIGJhc2VsaW5lcy4KKyAgICAgICAgICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0
ZSA9IGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4obV9sYXlvdXRTdGF0ZS5lc3RhYmxp
c2hlZEZvcm1hdHRpbmdTdGF0ZShsYXlvdXRCb3gpKTsKKyAgICAgICAgICAgIC8vIFNwZWMgbWFr
ZXMgdXMgZ2VuZXJhdGUgYXQgbGVhc3Qgb25lIGxpbmUgLWV2ZW4gaWYgaXQgaXMgZW1wdHkuCisg
ICAgICAgICAgICBBU1NFUlQoIWZvcm1hdHRpbmdTdGF0ZS5saW5lQm94ZXMoKS5pc0VtcHR5KCkp
OworICAgICAgICAgICAgYXV0byBpbmxpbmVCbG9ja0Jhc2VsaW5lID0gZm9ybWF0dGluZ1N0YXRl
LmxpbmVCb3hlcygpLmxhc3QoKS5iYXNlbGluZSgpOworICAgICAgICAgICAgbV9iYXNlbGluZS5k
ZXNjZW50ID0gc3RkOjptYXgoaW5saW5lQmxvY2tCYXNlbGluZS5kZXNjZW50LCBtX2Jhc2VsaW5l
LmRlc2NlbnQpOworICAgICAgICAgICAgbV9iYXNlbGluZS5hc2NlbnQgPSBzdGQ6Om1heChpbmxp
bmVCbG9ja0Jhc2VsaW5lLmFzY2VudCwgbV9iYXNlbGluZS5hc2NlbnQpOworICAgICAgICAgICAg
bV9jb250ZW50TG9naWNhbEhlaWdodCA9IHN0ZDo6bWF4KHN0ZDo6bWF4KG1fY29udGVudExvZ2lj
YWxIZWlnaHQsIHJ1bkhlaWdodCksIGJhc2VsaW5lQWxpZ25lZENvbnRlbnRIZWlnaHQoKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBtX2Jhc2VsaW5lLmRlc2NlbnQg
PSBzdGQ6Om1heDxMYXlvdXRVbml0PigwLCBtX2Jhc2VsaW5lLmRlc2NlbnQpOwogICAgICAgICBt
X2Jhc2VsaW5lLmFzY2VudCA9IHN0ZDo6bWF4KHJ1bkhlaWdodCwgbV9iYXNlbGluZS5hc2NlbnQp
OwogICAgICAgICBtX2NvbnRlbnRMb2dpY2FsSGVpZ2h0ID0gc3RkOjptYXgobV9jb250ZW50TG9n
aWNhbEhlaWdodCwgYmFzZWxpbmVBbGlnbmVkQ29udGVudEhlaWdodCgpKTsKLSAgICAgICAgcmV0
dXJuOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlRvcDoKKyAgICAg
ICAgLy8gVG9wIGFsaWduIGNvbnRlbnQgbmV2ZXIgY2hhbmdlcyB0aGUgYmFzZWxpbmUgb2Zmc2V0
LCBpdCBvbmx5IHB1c2hlcyB0aGUgYm90dG9tIG9mIHRoZSBsaW5lIGZ1cnRoZXIgZG93bi4KKyAg
ICAgICAgbV9jb250ZW50TG9naWNhbEhlaWdodCA9IHN0ZDo6bWF4KHJ1bkhlaWdodCwgbV9jb250
ZW50TG9naWNhbEhlaWdodCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVmVydGljYWxBbGln
bjo6Qm90dG9tOgorICAgICAgICBpZiAobV9jb250ZW50TG9naWNhbEhlaWdodCA8IHJ1bkhlaWdo
dCkgeworICAgICAgICAgICAgbV9iYXNlbGluZS5vZmZzZXQgPSBtX2Jhc2VsaW5lLm9mZnNldCAr
IChydW5IZWlnaHQgLSBtX2NvbnRlbnRMb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgICAgIG1fY29u
dGVudExvZ2ljYWxIZWlnaHQgPSBydW5IZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgfQotICAgIC8vIDAgZGVzY2VudCAtPiBiYXNlbGluZSBhbGlnbWVu
dCBmb3Igbm93LgotICAgIG1fYmFzZWxpbmUuZGVzY2VudCA9IHN0ZDo6bWF4PExheW91dFVuaXQ+
KDAsIG1fYmFzZWxpbmUuZGVzY2VudCk7Ci0gICAgbV9iYXNlbGluZS5hc2NlbnQgPSBzdGQ6Om1h
eChydW5IZWlnaHQsIG1fYmFzZWxpbmUuYXNjZW50KTsKLSAgICBtX2NvbnRlbnRMb2dpY2FsSGVp
Z2h0ID0gc3RkOjptYXgobV9jb250ZW50TG9naWNhbEhlaWdodCwgYmFzZWxpbmVBbGlnbmVkQ29u
dGVudEhlaWdodCgpKTsKIH0KIAogTGF5b3V0VW5pdCBMaW5lOjppbmxpbmVJdGVtSGVpZ2h0KGNv
bnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0pIGNvbnN0CkBAIC0yOTIsNyArMzQxLDcgQEAgTGF5
b3V0VW5pdCBMaW5lOjppbmxpbmVJdGVtSGVpZ2h0KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0
ZW0pIGNvbnN0CiAgICAgICAgIHJldHVybiBmb250TWV0cmljcy5oZWlnaHQoKSArIGRpc3BsYXlC
b3gudmVydGljYWxCb3JkZXIoKSArIGRpc3BsYXlCb3gudmVydGljYWxQYWRkaW5nKCkudmFsdWVP
cigwKTsKIAogICAgIC8vIE5vbi1yZXBsYWNlZCBpbmxpbmUgYm94IChlLmcuIGlubGluZS1ibG9j
aykKLSAgICByZXR1cm4gZGlzcGxheUJveC5oZWlnaHQoKTsKKyAgICByZXR1cm4gZGlzcGxheUJv
eC5tYXJnaW5Cb3goKS5oZWlnaHQoKTsKIH0KIAogTGluZUJveDo6QmFzZWxpbmUgTGluZTo6aGFs
ZkxlYWRpbmdNZXRyaWNzKGNvbnN0IEZvbnRNZXRyaWNzJiBmb250TWV0cmljcywgTGF5b3V0VW5p
dCBsaW5lTG9naWNhbEhlaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmUuaAppbmRleCA0NGNjMDE1NjFmMzU3YWE0M2Y5NTQ3YTcz
MjFmNWEyNzM4NjQyMTFkLi45NWQyNTY2OTYyYzIyNjUxNmNlN2UyNWUxMGJmMmUzOTY3OGEyZjg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lTGluZS5oCkBAIC01MSw4ICs1MSw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIFJ1bihjb25z
dCBJbmxpbmVJdGVtJiwgY29uc3QgRGlzcGxheTo6UmVjdCYsIFRleHRDb250ZXh0LCBib29sIGlz
Q29sbGFwc2VkLCBib29sIGNhbkJlRXh0ZW5kZWQpOwogCiAgICAgICAgICAgICBjb25zdCBJbmxp
bmVJdGVtJiBpbmxpbmVJdGVtOwotICAgICAgICAgICAgLy8gUmVsYXRpdmUgdG8gdGhlIGJhc2Vs
aW5lLgogICAgICAgICAgICAgRGlzcGxheTo6UmVjdCBsb2dpY2FsUmVjdDsKKyAgICAgICAgICAg
IExheW91dFVuaXQgYmFzZWxpbmU7CiAgICAgICAgICAgICBPcHRpb25hbDxUZXh0Q29udGV4dD4g
dGV4dENvbnRleHQ7CiAgICAgICAgICAgICBib29sIGlzQ29sbGFwc2VkIHsgZmFsc2UgfTsKICAg
ICAgICAgICAgIGJvb2wgY2FuQmVFeHRlbmRlZCB7IGZhbHNlIH07CkBAIC02MSw3ICs2MSw3IEBA
IHB1YmxpYzoKICAgICAgICAgY29uc3QgUnVucyYgcnVucygpIGNvbnN0IHsgcmV0dXJuIG1fcnVu
czsgfQogICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3J1bnMuaXNFbXB0
eSgpOyB9CiAgICAgICAgIC8vIE5vdCBpbiBwYWludGluZyBzZW5zZSB0aG91Z2guCi0gICAgICAg
IGJvb2wgaXNWaXN1YWxseUVtcHR5KCkgY29uc3Q7CisgICAgICAgIGJvb2wgaXNWaXN1YWxseUVt
cHR5KCkgY29uc3QgeyByZXR1cm4gbV9pc1Zpc3VhbGx5RW1wdHk7IH0KIAogICAgICAgICBMYXlv
dXRVbml0IGxvZ2ljYWxUb3AoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0LnRvcCgpOyB9
CiAgICAgICAgIExheW91dFVuaXQgbG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBtX2xvZ2lj
YWxSZWN0LmxlZnQoKTsgfQpAQCAtNzYsMTEgKzc2LDEzIEBAIHB1YmxpYzoKIAogICAgICAgICB2
b2lkIHNldExvZ2ljYWxSZWN0KGNvbnN0IERpc3BsYXk6OlJlY3QmIGxvZ2ljYWxSZWN0KSB7IG1f
bG9naWNhbFJlY3QgPSBsb2dpY2FsUmVjdDsgfQogICAgICAgICB2b2lkIHNldEJhc2VsaW5lKExp
bmVCb3g6OkJhc2VsaW5lIGJhc2VsaW5lKSB7IG1fYmFzZWxpbmUgPSBiYXNlbGluZTsgfQorICAg
ICAgICB2b2lkIHNldElzVmlzdWFsbHlFbXB0eShib29sIGlzVmlzdWFsbHlFbXB0eSkgeyBtX2lz
VmlzdWFsbHlFbXB0eSA9IGlzVmlzdWFsbHlFbXB0eTsgfQogICAgICAgICBSdW5zJiBydW5zKCkg
eyByZXR1cm4gbV9ydW5zOyB9CiAKICAgICAgICAgRGlzcGxheTo6UmVjdCBtX2xvZ2ljYWxSZWN0
OwogICAgICAgICBMaW5lQm94OjpCYXNlbGluZSBtX2Jhc2VsaW5lOwogICAgICAgICBSdW5zIG1f
cnVuczsKKyAgICAgICAgYm9vbCBtX2lzVmlzdWFsbHlFbXB0eSB7IHRydWUgfTsKICAgICB9Owog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50PiBjbG9zZSgpOwogCkBAIC05MSw3ICs5Myw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZElubGluZUNvbnRhaW5lckVuZChjb25zdCBJbmxpbmVJ
dGVtJiwgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwogICAgIHZvaWQgYXBwZW5kSGFyZExpbmVC
cmVhayhjb25zdCBJbmxpbmVJdGVtJik7CiAKLSAgICBib29sIGhhc0NvbnRlbnQoKSBjb25zdCB7
IHJldHVybiAhbV9jb250ZW50LT5pc1Zpc3VhbGx5RW1wdHkoKTsgfQorICAgIGJvb2wgaGFzQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuICFpc1Zpc3VhbGx5RW1wdHkoKTsgfQogCiAgICAgTGF5b3V0
VW5pdCB0cmFpbGluZ1RyaW1tYWJsZVdpZHRoKCkgY29uc3Q7CiAKQEAgLTEyMSw2ICsxMjMsNyBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29uc3Qg
SW5saW5lSXRlbSYsIExheW91dFVuaXQgcnVuSGVpZ2h0KTsKICAgICBMYXlvdXRVbml0IGlubGlu
ZUl0ZW1IZWlnaHQoY29uc3QgSW5saW5lSXRlbSYpIGNvbnN0OworICAgIGJvb2wgaXNWaXN1YWxs
eUVtcHR5KCkgY29uc3Q7CiAKICAgICBjb25zdCBMYXlvdXRTdGF0ZSYgbV9sYXlvdXRTdGF0ZTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudD4gbV9jb250ZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371696</attachid>
            <date>2019-06-08 19:07:31 -0700</date>
            <delta_ts>2019-06-15 07:03:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198697-20190608190729.patch</filename>
            <type>text/plain</type>
            <size>13722</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxNmQ1YmFkMTRkMWUy
MWIzNDg0M2RhMjEzOTM0YTlmMTMzNzY2My4uYTA0N2NlYzFiYmFhZGVhNTA5M2IyZGNkMDQ0YmM5
NmQ2Zjc4ZjU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTA2LTA4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBBZGQgc3Vw
cG9ydCBmb3IgdmVydGljYWwtYWxpZ246IHRvcCBhbmQgYm90dG9tCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg2OTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzUxNTU2MTg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSB0aGUgbGF5b3V0IGJveCdzIHZlcnRpY2FsIGFsaWdubWVudCB0byBhZGp1
c3QgbGluZSBiYXNlbGluZSBhbmQgaGVpZ2h0IGFuZCBzZXQgdGhlIHJ1bidzIGxvZ2ljYWwgdG9w
IHdoZW4gdGhlIGxpbmUgaXMgYmVpbmcgY2xvc2VkLgorCisgICAgICAgICogbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxp
bmU6OmlzVmlzdWFsbHlFbXB0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxp
bmU6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5kSW5saW5l
Q29udGFpbmVyU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRU
ZXh0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZE5vblJl
cGxhY2VkSW5saW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5k
SGFyZExpbmVCcmVhayk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFkanVzdEJh
c2VsaW5lQW5kTGluZUhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6Omlu
bGluZUl0ZW1IZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpD
b250ZW50Ojppc1Zpc3VhbGx5RW1wdHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGluZTo6Q29udGVudDo6aXNWaXN1YWxseUVtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGluZTo6Q29udGVudDo6c2V0SXNWaXN1YWxseUVtcHR5KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZTo6aGFzQ29udGVudCBjb25zdCk6CisKIDIwMTktMDYtMDcg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIElu
dHJvZHVjZSBCYXNlbGluZSB0byBMaW5lQm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCmluZGV4IDI3ZjZhNzg1OTE1YjZi
OWIxNzY3ZmM4N2IwMzZiNTMzZDY3NmE4NDguLjE5MWYxNTNjMzE5MzA0NGE1MTdjMDlhZmVlNDUw
NGE5MGUyNzBhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCkBAIC0zNSwxOCArMzUsNiBAQCBuYW1lc3BhY2UgTGF5
b3V0IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKExpbmUpOwogCi1ib29sIExpbmU6
OkNvbnRlbnQ6OmlzVmlzdWFsbHlFbXB0eSgpIGNvbnN0Ci17Ci0gICAgLy8gUmV0dXJuIHRydWUg
Zm9yIGVtcHR5IGlubGluZSBjb250YWluZXJzIGxpa2UgPHNwYW4+PC9zcGFuPi4KLSAgICBmb3Ig
KGF1dG8mIHJ1biA6IG1fcnVucykgewotICAgICAgICBpZiAocnVuLT5pbmxpbmVJdGVtLmlzQ29u
dGFpbmVyU3RhcnQoKSB8fCBydW4tPmlubGluZUl0ZW0uaXNDb250YWluZXJFbmQoKSkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoIXJ1bi0+aXNDb2xsYXBzZWQpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCiBMaW5lOjpD
b250ZW50OjpSdW46OlJ1bihjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBEaXNw
bGF5OjpSZWN0JiBsb2dpY2FsUmVjdCwgVGV4dENvbnRleHQgdGV4dENvbnRleHQsIGJvb2wgaXND
b2xsYXBzZWQsIGJvb2wgY2FuQmVFeHRlbmRlZCkKICAgICA6IGlubGluZUl0ZW0oaW5saW5lSXRl
bSkKICAgICAsIGxvZ2ljYWxSZWN0KGxvZ2ljYWxSZWN0KQpAQCAtNzUsMTYgKzYzLDY1IEBAIExp
bmU6OkxpbmUoY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBMYXlvdXRQb2lu
dCYgdG9wTGVmdCwgTGF5b3V0VW5pCiB7CiB9CiAKK2Jvb2wgTGluZTo6aXNWaXN1YWxseUVtcHR5
KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgY2FjaGVkIGluc3RlYWQg
LWFzIHRoZSBpbmxpbmUgaXRlbXMgYXJlIGJlaW5nIGFkZGVkLgorICAgIC8vIFJldHVybiB0cnVl
IGZvciBlbXB0eSBpbmxpbmUgY29udGFpbmVycyBsaWtlIDxzcGFuPjwvc3Bhbj4uCisgICAgZm9y
IChhdXRvJiBydW4gOiBtX2NvbnRlbnQtPnJ1bnMoKSkgeworICAgICAgICBpZiAocnVuLT5pbmxp
bmVJdGVtLmlzQ29udGFpbmVyU3RhcnQoKSkgeworICAgICAgICAgICAgYXV0byYgZGlzcGxheUJv
eCA9IG1fbGF5b3V0U3RhdGUuZGlzcGxheUJveEZvckxheW91dEJveChydW4tPmlubGluZUl0ZW0u
bGF5b3V0Qm94KCkpOworICAgICAgICAgICAgaWYgKGRpc3BsYXlCb3guaG9yaXpvbnRhbEJvcmRl
cigpIHx8IChkaXNwbGF5Qm94Lmhvcml6b250YWxQYWRkaW5nKCkgJiYgZGlzcGxheUJveC5ob3Jp
em9udGFsUGFkZGluZygpLnZhbHVlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGlmIChydW4tPmlubGlu
ZUl0ZW0uaXNDb250YWluZXJFbmQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBp
ZiAoIXJ1bi0+aXNDb2xsYXBzZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIHJldHVybiB0cnVlOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8TGluZTo6Q29udGVudD4gTGlu
ZTo6Y2xvc2UoKQogewogICAgIHJlbW92ZVRyYWlsaW5nVHJpbW1hYmxlQ29udGVudCgpOwogICAg
IGlmICghbV9za2lwVmVydGljYWxBbGlnbWVudCkgewotICAgICAgICAvLyBDb252ZXJ0IGlubGlu
ZSBydW4gZ2VvbWV0cnkgZnJvbSByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUgdG8gcmVsYXRpdmUg
dG8gbG9naWNhbCB0b3AuCiAgICAgICAgIGZvciAoYXV0byYgcnVuIDogbV9jb250ZW50LT5ydW5z
KCkpIHsKLSAgICAgICAgICAgIGF1dG8gYWRqdXN0ZWRMb2dpY2FsVG9wID0gcnVuLT5sb2dpY2Fs
UmVjdC50b3AoKSArIGJhc2VsaW5lT2Zmc2V0KCk7Ci0gICAgICAgICAgICBydW4tPmxvZ2ljYWxS
ZWN0LnNldFRvcChhZGp1c3RlZExvZ2ljYWxUb3ApOworICAgICAgICAgICAgTGF5b3V0VW5pdCBs
b2dpY2FsVG9wOworICAgICAgICAgICAgYXV0byYgaW5saW5lSXRlbSA9IHJ1bi0+aW5saW5lSXRl
bTsKKyAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9IGlubGluZUl0ZW0ubGF5b3V0Qm94KCk7
CisgICAgICAgICAgICBhdXRvIGFzY2VudCA9IGlubGluZUl0ZW0uc3R5bGUoKS5mb250TWV0cmlj
cygpLmFzY2VudCgpOworCisgICAgICAgICAgICBzd2l0Y2ggKGlubGluZUl0ZW0uc3R5bGUoKS52
ZXJ0aWNhbEFsaWduKCkpIHsKKyAgICAgICAgICAgIGNhc2UgVmVydGljYWxBbGlnbjo6QmFzZWxp
bmU6CisgICAgICAgICAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNMaW5lQnJlYWsoKSB8fCBpbmxp
bmVJdGVtLmlzVGV4dCgpKQorICAgICAgICAgICAgICAgICAgICBsb2dpY2FsVG9wID0gYmFzZWxp
bmVPZmZzZXQoKSAtIGFzY2VudDsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChpbmxpbmVJdGVt
LmlzQ29udGFpbmVyU3RhcnQoKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvJiBkaXNwbGF5
Qm94ID0gbV9sYXlvdXRTdGF0ZS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGxheW91dEJveCk7Cisg
ICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxUb3AgPSBiYXNlbGluZU9mZnNldCgpIC0gYXNjZW50
IC0gZGlzcGxheUJveC5ib3JkZXJUb3AoKSAtIGRpc3BsYXlCb3gucGFkZGluZ1RvcCgpLnZhbHVl
T3IoMCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsYXlvdXRCb3guaXNJbmxpbmVCbG9j
a0JveCgpICYmIGxheW91dEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gZG93bmNhc3Q8
SW5saW5lRm9ybWF0dGluZ1N0YXRlPihtX2xheW91dFN0YXRlLmVzdGFibGlzaGVkRm9ybWF0dGlu
Z1N0YXRlKGxheW91dEJveCkpOworICAgICAgICAgICAgICAgICAgICAvLyBTcGVjIG1ha2VzIHVz
IGdlbmVyYXRlIGF0IGxlYXN0IG9uZSBsaW5lIC1ldmVuIGlmIGl0IGlzIGVtcHR5LgorICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQoIWZvcm1hdHRpbmdTdGF0ZS5saW5lQm94ZXMoKS5pc0VtcHR5
KCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvIGlubGluZUJsb2NrQmFzZWxpbmUgPSBmb3Jt
YXR0aW5nU3RhdGUubGluZUJveGVzKCkubGFzdCgpLmJhc2VsaW5lKCk7CisgICAgICAgICAgICAg
ICAgICAgIGxvZ2ljYWxUb3AgPSBiYXNlbGluZU9mZnNldCgpIC0gaW5saW5lQmxvY2tCYXNlbGlu
ZS5hc2NlbnQ7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxv
Z2ljYWxUb3AgPSBiYXNlbGluZU9mZnNldCgpIC0gcnVuLT5sb2dpY2FsUmVjdC5oZWlnaHQoKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVmVydGljYWxBbGlnbjo6
VG9wOgorICAgICAgICAgICAgICAgIGxvZ2ljYWxUb3AgPSB7IH07CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OkJvdHRvbToKKyAgICAgICAg
ICAgICAgICBsb2dpY2FsVG9wID0gbG9naWNhbEJvdHRvbSgpIC0gcnVuLT5sb2dpY2FsUmVjdC5o
ZWlnaHQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAgICAgQVNTRVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJ1bi0+bG9naWNhbFJlY3Qu
c2V0VG9wKGxvZ2ljYWxUb3ApOwogICAgICAgICB9CiAgICAgfQorICAgIG1fY29udGVudC0+c2V0
SXNWaXN1YWxseUVtcHR5KGlzVmlzdWFsbHlFbXB0eSgpKTsKICAgICBtX2NvbnRlbnQtPnNldExv
Z2ljYWxSZWN0KHsgbG9naWNhbFRvcCgpLCBsb2dpY2FsTGVmdCgpLCBjb250ZW50TG9naWNhbFdp
ZHRoKCksIGxvZ2ljYWxIZWlnaHQoKSB9KTsKICAgICBtX2NvbnRlbnQtPnNldEJhc2VsaW5lKG1f
YmFzZWxpbmUpOwogICAgIHJldHVybiBXVEZNb3ZlKG1fY29udGVudCk7CkBAIC0xNDIsMTAgKzE3
OSw2IEBAIHZvaWQgTGluZTo6YXBwZW5kSW5saW5lQ29udGFpbmVyU3RhcnQoY29uc3QgSW5saW5l
SXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5pdCBsCiAgICAgaWYgKCFtX3NraXBWZXJ0aWNhbEFs
aWdtZW50KSB7CiAgICAgICAgIGF1dG8gbG9naWNhbEhlaWdodCA9IGlubGluZUl0ZW1IZWlnaHQo
aW5saW5lSXRlbSk7CiAgICAgICAgIGFkanVzdEJhc2VsaW5lQW5kTGluZUhlaWdodChpbmxpbmVJ
dGVtLCBsb2dpY2FsSGVpZ2h0KTsKLQotICAgICAgICBhdXRvJiBkaXNwbGF5Qm94ID0gbV9sYXlv
dXRTdGF0ZS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGlubGluZUl0ZW0ubGF5b3V0Qm94KCkpOwot
ICAgICAgICBhdXRvIGxvZ2ljYWxUb3AgPSAtaW5saW5lSXRlbS5zdHlsZSgpLmZvbnRNZXRyaWNz
KCkuYXNjZW50KCkgLSBkaXNwbGF5Qm94LmJvcmRlclRvcCgpIC0gZGlzcGxheUJveC5wYWRkaW5n
VG9wKCkudmFsdWVPcigwKTsKLSAgICAgICAgbG9naWNhbFJlY3Quc2V0VG9wKGxvZ2ljYWxUb3Ap
OwogICAgICAgICBsb2dpY2FsUmVjdC5zZXRIZWlnaHQobG9naWNhbEhlaWdodCk7CiAgICAgfQog
ICAgIGFwcGVuZE5vbkJyZWFrYWJsZVNwYWNlKGlubGluZUl0ZW0sIGxvZ2ljYWxSZWN0KTsKQEAg
LTE5MCwxMCArMjIzLDggQEAgdm9pZCBMaW5lOjphcHBlbmRUZXh0Q29udGVudChjb25zdCBJbmxp
bmVUZXh0SXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5pdCBsb2dpY2EKICAgICBhdXRvIGxvZ2lj
YWxSZWN0ID0gRGlzcGxheTo6UmVjdCB7IH07CiAgICAgbG9naWNhbFJlY3Quc2V0TGVmdChjb250
ZW50TG9naWNhbFJpZ2h0KCkpOwogICAgIGxvZ2ljYWxSZWN0LnNldFdpZHRoKGxvZ2ljYWxXaWR0
aCk7Ci0gICAgaWYgKCFtX3NraXBWZXJ0aWNhbEFsaWdtZW50KSB7Ci0gICAgICAgIGxvZ2ljYWxS
ZWN0LnNldFRvcCgtaW5saW5lSXRlbS5zdHlsZSgpLmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpOwor
ICAgIGlmICghbV9za2lwVmVydGljYWxBbGlnbWVudCkKICAgICAgICAgbG9naWNhbFJlY3Quc2V0
SGVpZ2h0KGlubGluZUl0ZW1IZWlnaHQoaW5saW5lSXRlbSkpOwotICAgIH0KIAogICAgIGF1dG8g
dGV4dENvbnRleHQgPSBDb250ZW50OjpSdW46OlRleHRDb250ZXh0IHsgaW5saW5lSXRlbS5zdGFy
dCgpLCBpbmxpbmVJdGVtLmlzQ29sbGFwc2VkKCkgPyAxIDogaW5saW5lSXRlbS5sZW5ndGgoKSB9
OwogICAgIGF1dG8gbGluZUl0ZW0gPSBzdGQ6Om1ha2VfdW5pcXVlPENvbnRlbnQ6OlJ1bj4oaW5s
aW5lSXRlbSwgbG9naWNhbFJlY3QsIHRleHRDb250ZXh0LCBpc0NvbXBsZXRlbHlDb2xsYXBzZWQs
IGNhbkJlRXh0ZW5kZWQpOwpAQCAtMjE1LDggKzI0Niw2IEBAIHZvaWQgTGluZTo6YXBwZW5kTm9u
UmVwbGFjZWRJbmxpbmVCb3goY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5p
dCBsCiAgICAgaWYgKCFtX3NraXBWZXJ0aWNhbEFsaWdtZW50KSB7CiAgICAgICAgIGF1dG8gbG9n
aWNhbEhlaWdodCA9IGlubGluZUl0ZW1IZWlnaHQoaW5saW5lSXRlbSk7CiAgICAgICAgIGFkanVz
dEJhc2VsaW5lQW5kTGluZUhlaWdodChpbmxpbmVJdGVtLCBsb2dpY2FsSGVpZ2h0KTsKLQotICAg
ICAgICBsb2dpY2FsUmVjdC5zZXRUb3AoLWxvZ2ljYWxIZWlnaHQpOwogICAgICAgICBsb2dpY2Fs
UmVjdC5zZXRIZWlnaHQobG9naWNhbEhlaWdodCk7CiAgICAgfQogCkBAIC0yMzMsOCArMjYyLDEx
IEBAIHZvaWQgTGluZTo6YXBwZW5kUmVwbGFjZWRJbmxpbmVCb3goY29uc3QgSW5saW5lSXRlbSYg
aW5saW5lSXRlbSwgTGF5b3V0VW5pdCBsb2dpCiAKIHZvaWQgTGluZTo6YXBwZW5kSGFyZExpbmVC
cmVhayhjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtKQogewotICAgIGF1dG8gYXNjZW50ID0g
aW5saW5lSXRlbS5sYXlvdXRCb3goKS5zdHlsZSgpLmZvbnRNZXRyaWNzKCkuYXNjZW50KCk7Ci0g
ICAgYXV0byBsb2dpY2FsUmVjdCA9IERpc3BsYXk6OlJlY3QgeyAtYXNjZW50LCBjb250ZW50TG9n
aWNhbFJpZ2h0KCksIHsgfSwgbG9naWNhbEhlaWdodCgpIH07CisgICAgYXV0byBsb2dpY2FsUmVj
dCA9IERpc3BsYXk6OlJlY3QgeyB9OworICAgIGxvZ2ljYWxSZWN0LnNldExlZnQoY29udGVudExv
Z2ljYWxSaWdodCgpKTsKKyAgICBsb2dpY2FsUmVjdC5zZXRXaWR0aCh7IH0pOworICAgIGlmICgh
bV9za2lwVmVydGljYWxBbGlnbWVudCkKKyAgICAgICAgbG9naWNhbFJlY3Quc2V0SGVpZ2h0KGxv
Z2ljYWxIZWlnaHQoKSk7CiAgICAgbV9jb250ZW50LT5ydW5zKCkuYXBwZW5kKHN0ZDo6bWFrZV91
bmlxdWU8Q29udGVudDo6UnVuPihpbmxpbmVJdGVtLCBsb2dpY2FsUmVjdCwgQ29udGVudDo6UnVu
OjpUZXh0Q29udGV4dCB7IH0sIGZhbHNlLCBmYWxzZSkpOwogfQogCkBAIC0yNTUsMjAgKzI4Nywz
NyBAQCB2b2lkIExpbmU6OmFkanVzdEJhc2VsaW5lQW5kTGluZUhlaWdodChjb25zdCBJbmxpbmVJ
dGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRVbml0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
Ly8gUmVwbGFjZWQgYW5kIG5vbi1yZXBsYWNlZCBpbmxpbmUgbGV2ZWwgYm94LgotICAgIC8vIEZJ
WE1FOiBXZSBuZWVkIHRvIGxvb2sgaW5zaWRlIHRoZSBpbmxpbmUtYmxvY2sncyBmb3JtYXR0aW5n
IGNvbnRleHQgYW5kIGNoZWNrIHRoZSBsaW5lYm94ZXMgKGlmIGFueSkgdG8gYmUgYWJsZSB0byBi
YXNlbGluZSBhbGlnbi4KLSAgICBpZiAobGF5b3V0Qm94LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQoKSkgewotICAgICAgICBpZiAocnVuSGVpZ2h0ID09IGxvZ2ljYWxIZWlnaHQo
KSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgZmFpbHMgd2hl
biB0aGUgbGluZSBoZWlnaHQgZGlmZmVyZW5jZSBjb21lcyBmcm9tIGZvbnQtc2l6ZSBkaWZmLgor
ICAgIHN3aXRjaCAoaW5saW5lSXRlbS5zdHlsZSgpLnZlcnRpY2FsQWxpZ24oKSkgeworICAgIGNh
c2UgVmVydGljYWxBbGlnbjo6QmFzZWxpbmU6CisgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbmxp
bmVCbG9ja0JveCgpICYmIGxheW91dEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250
ZXh0KCkpIHsKKyAgICAgICAgICAgIC8vIElubGluZS1ibG9ja3Mgd2l0aCBpbmxpbmUgY29udGVu
dCBhbHdheXMgaGF2ZSBiYXNlbGluZXMuCisgICAgICAgICAgICBhdXRvJiBmb3JtYXR0aW5nU3Rh
dGUgPSBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KG1fbGF5b3V0U3RhdGUuZXN0YWJs
aXNoZWRGb3JtYXR0aW5nU3RhdGUobGF5b3V0Qm94KSk7CisgICAgICAgICAgICAvLyBTcGVjIG1h
a2VzIHVzIGdlbmVyYXRlIGF0IGxlYXN0IG9uZSBsaW5lIC1ldmVuIGlmIGl0IGlzIGVtcHR5Lgor
ICAgICAgICAgICAgQVNTRVJUKCFmb3JtYXR0aW5nU3RhdGUubGluZUJveGVzKCkuaXNFbXB0eSgp
KTsKKyAgICAgICAgICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZSA9IGZvcm1hdHRpbmdTdGF0
ZS5saW5lQm94ZXMoKS5sYXN0KCkuYmFzZWxpbmUoKTsKKyAgICAgICAgICAgIG1fYmFzZWxpbmUu
ZGVzY2VudCA9IHN0ZDo6bWF4KGlubGluZUJsb2NrQmFzZWxpbmUuZGVzY2VudCwgbV9iYXNlbGlu
ZS5kZXNjZW50KTsKKyAgICAgICAgICAgIG1fYmFzZWxpbmUuYXNjZW50ID0gc3RkOjptYXgoaW5s
aW5lQmxvY2tCYXNlbGluZS5hc2NlbnQsIG1fYmFzZWxpbmUuYXNjZW50KTsKKyAgICAgICAgICAg
IG1fY29udGVudExvZ2ljYWxIZWlnaHQgPSBzdGQ6Om1heChzdGQ6Om1heChtX2NvbnRlbnRMb2dp
Y2FsSGVpZ2h0LCBydW5IZWlnaHQpLCBiYXNlbGluZUFsaWduZWRDb250ZW50SGVpZ2h0KCkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgbV9iYXNlbGluZS5kZXNjZW50
ID0gc3RkOjptYXg8TGF5b3V0VW5pdD4oMCwgbV9iYXNlbGluZS5kZXNjZW50KTsKICAgICAgICAg
bV9iYXNlbGluZS5hc2NlbnQgPSBzdGQ6Om1heChydW5IZWlnaHQsIG1fYmFzZWxpbmUuYXNjZW50
KTsKICAgICAgICAgbV9jb250ZW50TG9naWNhbEhlaWdodCA9IHN0ZDo6bWF4KG1fY29udGVudExv
Z2ljYWxIZWlnaHQsIGJhc2VsaW5lQWxpZ25lZENvbnRlbnRIZWlnaHQoKSk7Ci0gICAgICAgIHJl
dHVybjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpUb3A6CisgICAg
ICAgIC8vIFRvcCBhbGlnbiBjb250ZW50IG5ldmVyIGNoYW5nZXMgdGhlIGJhc2VsaW5lIG9mZnNl
dCwgaXQgb25seSBwdXNoZXMgdGhlIGJvdHRvbSBvZiB0aGUgbGluZSBmdXJ0aGVyIGRvd24uCisg
ICAgICAgIG1fY29udGVudExvZ2ljYWxIZWlnaHQgPSBzdGQ6Om1heChydW5IZWlnaHQsIG1fY29u
dGVudExvZ2ljYWxIZWlnaHQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZlcnRpY2FsQWxp
Z246OkJvdHRvbToKKyAgICAgICAgaWYgKG1fY29udGVudExvZ2ljYWxIZWlnaHQgPCBydW5IZWln
aHQpIHsKKyAgICAgICAgICAgIG1fYmFzZWxpbmUub2Zmc2V0ID0gbV9iYXNlbGluZS5vZmZzZXQg
KyAocnVuSGVpZ2h0IC0gbV9jb250ZW50TG9naWNhbEhlaWdodCk7CisgICAgICAgICAgICBtX2Nv
bnRlbnRMb2dpY2FsSGVpZ2h0ID0gcnVuSGVpZ2h0OworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAvLyAwIGRlc2NlbnQgLT4gYmFzZWxpbmUgYWxpZ21l
bnQgZm9yIG5vdy4KLSAgICBtX2Jhc2VsaW5lLmRlc2NlbnQgPSBzdGQ6Om1heDxMYXlvdXRVbml0
PigwLCBtX2Jhc2VsaW5lLmRlc2NlbnQpOwotICAgIG1fYmFzZWxpbmUuYXNjZW50ID0gc3RkOjpt
YXgocnVuSGVpZ2h0LCBtX2Jhc2VsaW5lLmFzY2VudCk7Ci0gICAgbV9jb250ZW50TG9naWNhbEhl
aWdodCA9IHN0ZDo6bWF4KG1fY29udGVudExvZ2ljYWxIZWlnaHQsIGJhc2VsaW5lQWxpZ25lZENv
bnRlbnRIZWlnaHQoKSk7CiB9CiAKIExheW91dFVuaXQgTGluZTo6aW5saW5lSXRlbUhlaWdodChj
b25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtKSBjb25zdApAQCAtMjkyLDcgKzM0MSw3IEBAIExh
eW91dFVuaXQgTGluZTo6aW5saW5lSXRlbUhlaWdodChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJ
dGVtKSBjb25zdAogICAgICAgICByZXR1cm4gZm9udE1ldHJpY3MuaGVpZ2h0KCkgKyBkaXNwbGF5
Qm94LnZlcnRpY2FsQm9yZGVyKCkgKyBkaXNwbGF5Qm94LnZlcnRpY2FsUGFkZGluZygpLnZhbHVl
T3IoMCk7CiAKICAgICAvLyBOb24tcmVwbGFjZWQgaW5saW5lIGJveCAoZS5nLiBpbmxpbmUtYmxv
Y2spCi0gICAgcmV0dXJuIGRpc3BsYXlCb3guaGVpZ2h0KCk7CisgICAgcmV0dXJuIGRpc3BsYXlC
b3gubWFyZ2luQm94KCkuaGVpZ2h0KCk7CiB9CiAKIExpbmVCb3g6OkJhc2VsaW5lIExpbmU6Omhh
bGZMZWFkaW5nTWV0cmljcyhjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJpY3MsIExheW91dFVu
aXQgbGluZUxvZ2ljYWxIZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmgKaW5kZXggNDRjYzAxNTYxZjM1N2FhNDNmOTU0N2E3
MzIxZjVhMjczODY0MjExZC4uOTVkMjU2Njk2MmMyMjY1MTZjZTdlMjVlMTBiZjJlMzk2NzhhMmY4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUxpbmUuaApAQCAtNTEsOCArNTEsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBSdW4oY29u
c3QgSW5saW5lSXRlbSYsIGNvbnN0IERpc3BsYXk6OlJlY3QmLCBUZXh0Q29udGV4dCwgYm9vbCBp
c0NvbGxhcHNlZCwgYm9vbCBjYW5CZUV4dGVuZGVkKTsKIAogICAgICAgICAgICAgY29uc3QgSW5s
aW5lSXRlbSYgaW5saW5lSXRlbTsKLSAgICAgICAgICAgIC8vIFJlbGF0aXZlIHRvIHRoZSBiYXNl
bGluZS4KICAgICAgICAgICAgIERpc3BsYXk6OlJlY3QgbG9naWNhbFJlY3Q7CisgICAgICAgICAg
ICBMYXlvdXRVbml0IGJhc2VsaW5lOwogICAgICAgICAgICAgT3B0aW9uYWw8VGV4dENvbnRleHQ+
IHRleHRDb250ZXh0OwogICAgICAgICAgICAgYm9vbCBpc0NvbGxhcHNlZCB7IGZhbHNlIH07CiAg
ICAgICAgICAgICBib29sIGNhbkJlRXh0ZW5kZWQgeyBmYWxzZSB9OwpAQCAtNjEsNyArNjEsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFJ1bnMmIHJ1bnMoKSBjb25zdCB7IHJldHVybiBtX3J1
bnM7IH0KICAgICAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9ydW5zLmlzRW1w
dHkoKTsgfQogICAgICAgICAvLyBOb3QgaW4gcGFpbnRpbmcgc2Vuc2UgdGhvdWdoLgotICAgICAg
ICBib29sIGlzVmlzdWFsbHlFbXB0eSgpIGNvbnN0OworICAgICAgICBib29sIGlzVmlzdWFsbHlF
bXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1faXNWaXN1YWxseUVtcHR5OyB9CiAKICAgICAgICAgTGF5
b3V0VW5pdCBsb2dpY2FsVG9wKCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdC50b3AoKTsg
fQogICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dp
Y2FsUmVjdC5sZWZ0KCk7IH0KQEAgLTc2LDExICs3NiwxMyBAQCBwdWJsaWM6CiAKICAgICAgICAg
dm9pZCBzZXRMb2dpY2FsUmVjdChjb25zdCBEaXNwbGF5OjpSZWN0JiBsb2dpY2FsUmVjdCkgeyBt
X2xvZ2ljYWxSZWN0ID0gbG9naWNhbFJlY3Q7IH0KICAgICAgICAgdm9pZCBzZXRCYXNlbGluZShM
aW5lQm94OjpCYXNlbGluZSBiYXNlbGluZSkgeyBtX2Jhc2VsaW5lID0gYmFzZWxpbmU7IH0KKyAg
ICAgICAgdm9pZCBzZXRJc1Zpc3VhbGx5RW1wdHkoYm9vbCBpc1Zpc3VhbGx5RW1wdHkpIHsgbV9p
c1Zpc3VhbGx5RW1wdHkgPSBpc1Zpc3VhbGx5RW1wdHk7IH0KICAgICAgICAgUnVucyYgcnVucygp
IHsgcmV0dXJuIG1fcnVuczsgfQogCiAgICAgICAgIERpc3BsYXk6OlJlY3QgbV9sb2dpY2FsUmVj
dDsKICAgICAgICAgTGluZUJveDo6QmFzZWxpbmUgbV9iYXNlbGluZTsKICAgICAgICAgUnVucyBt
X3J1bnM7CisgICAgICAgIGJvb2wgbV9pc1Zpc3VhbGx5RW1wdHkgeyB0cnVlIH07CiAgICAgfTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudD4gY2xvc2UoKTsKIApAQCAtOTEsNyArOTMsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmRJbmxpbmVDb250YWluZXJFbmQoY29uc3QgSW5saW5l
SXRlbSYsIExheW91dFVuaXQgbG9naWNhbFdpZHRoKTsKICAgICB2b2lkIGFwcGVuZEhhcmRMaW5l
QnJlYWsoY29uc3QgSW5saW5lSXRlbSYpOwogCi0gICAgYm9vbCBoYXNDb250ZW50KCkgY29uc3Qg
eyByZXR1cm4gIW1fY29udGVudC0+aXNWaXN1YWxseUVtcHR5KCk7IH0KKyAgICBib29sIGhhc0Nv
bnRlbnQoKSBjb25zdCB7IHJldHVybiAhaXNWaXN1YWxseUVtcHR5KCk7IH0KIAogICAgIExheW91
dFVuaXQgdHJhaWxpbmdUcmltbWFibGVXaWR0aCgpIGNvbnN0OwogCkBAIC0xMjEsNiArMTIzLDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgYWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KGNvbnN0
IElubGluZUl0ZW0mLCBMYXlvdXRVbml0IHJ1bkhlaWdodCk7CiAgICAgTGF5b3V0VW5pdCBpbmxp
bmVJdGVtSGVpZ2h0KGNvbnN0IElubGluZUl0ZW0mKSBjb25zdDsKKyAgICBib29sIGlzVmlzdWFs
bHlFbXB0eSgpIGNvbnN0OwogCiAgICAgY29uc3QgTGF5b3V0U3RhdGUmIG1fbGF5b3V0U3RhdGU7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnQ+IG1fY29udGVudDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>