<?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>199930</bug_id>
          
          <creation_ts>2019-07-18 21:14:41 -0700</creation_ts>
          <short_desc>[LFC][IFC] Add partial content handling</short_desc>
          <delta_ts>2019-07-19 06:35:50 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1554118</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-07-18 21:14:41 -0700</bug_when>
    <thetext>This is in preparation for adding split content support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554121</commentid>
    <comment_count>1</comment_count>
      <attachid>374440</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-07-18 21:28:43 -0700</bug_when>
    <thetext>Created attachment 374440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554144</commentid>
    <comment_count>2</comment_count>
      <attachid>374440</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-07-18 23:52:21 -0700</bug_when>
    <thetext>Comment on attachment 374440
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=374440&amp;action=review

&gt; Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp:211
&gt; +        // Shrink availble space for current line and move existing inline runs.

available</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554189</commentid>
    <comment_count>3</comment_count>
      <attachid>374459</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-07-19 05:53:49 -0700</bug_when>
    <thetext>Created attachment 374459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554192</commentid>
    <comment_count>4</comment_count>
      <attachid>374459</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-19 06:35:48 -0700</bug_when>
    <thetext>Comment on attachment 374459
Patch

Clearing flags on attachment: 374459

Committed r247644: &lt;https://trac.webkit.org/changeset/247644&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554193</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-19 06:35:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374440</attachid>
            <date>2019-07-18 21:28:43 -0700</date>
            <delta_ts>2019-07-19 05:53:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199930-20190718212842.patch</filename>
            <type>text/plain</type>
            <size>13828</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJiZDlhYWI3OGQ5YTc2
Nzc4YTZkNDlmNzI5M2JhMTA5YjFmY2VlNS4uNDU5NDE4YzUwODg3NTdhMDY2NDg4Zjc4NzQ5ZjYz
NmIxYzNkMDlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTA3LTE4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBBZGQgcGFy
dGlhbCBjb250ZW50IGhhbmRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTk5MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlIHRoZSBhY3R1YWwgaW5saW5lIGl0ZW0gcGxhY2VtZW50IHRvIGEg
ZGVkaWNhdGVkIGZ1bmN0aW9ucy4gVGhpcyBlbmFibGVzIHVzIHRvCisgICAgICAgIGNvbnN0cnVj
dCBhIGRlZGljYXRlZCBJbmxpbmVJdGVtIGZvciB0aGUgcGFydGlhbCBjb250ZW50IGFuZCBwYXNz
IGl0IGluIHRvIHRoaXMgZnVuY3Rpb24uCisKKyAgICAgICAgPHNwYW4+VGhlIHF1aWNrIGJyb3du
IGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZzwvc3Bhbj4gPC0gaW5saW5lIGNvbnRlbnQKKyAg
ICAgICAgW1RoZV1bIF1bcXVpY2tdWyBdW2Jyb3duXVsgXVtmb3hdWyBdW2p1bXBzXVsgXVtvdmVy
XVsgXVt0aGVdWyBdW2xhenldWyBdW2RvZ10gPC0gSW5saW5lSXRlbXMKKyAgICAgICAgCisgICAg
ICAgIExpbmUgYnJlYWtpbmc6CisgICAgICAgIFtUaGVdWyBdW3F1XQorICAgICAgICBbaWNrXSA8
LSBQYXJ0aWFsIElubGluZUl0ZW0gKHBvc2l0aW9uOiA2IGxlbmd0aDogMykgZnJvbSBbcXVpY2td
IChwb3NpdGlvbjogNCBsZW5ndGg6IDUpCisKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0OjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVMYXlvdXQ6OnBsYWNlSW5saW5lSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVMYXlvdXQ6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVJ
bnB1dDo6TGluZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0
dGluZ0NvbnRleHQ6OklubGluZUxheW91dDo6bGF5b3V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OklubGluZUxheW91dDo6Y29tcHV0
ZWRJbnRyaW5zaWNXaWR0aCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lVGV4dEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVU
ZXh0SXRlbTo6c3BsaXQpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZVRleHRJdGVtLmg6CisKIDIwMTktMDctMTcgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTEZDXVtJRkNdIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5
b3V0OjpwbGFjZUlubGluZUl0ZW1zIGlzIGdldHRpbmcgdG9vIGNvbXBsZXguCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dExpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcAppbmRleCBjNDBhZTQ5
NjBiYzFkMTA0ZWI1YmEwZWQ0ZGFmYmI3NzU5MGE5ODBkLi5kNGVlYWZiMmQ3ODc0OWM2ZTYyMDNm
NGZjMDI0Njg3OTkxNDBkMmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdD
b250ZXh0TGluZUxheW91dC5jcHAKQEAgLTcyLDI0ICs3MiwyOCBAQCBzdGF0aWMgTGF5b3V0VW5p
dCBpbmxpbmVJdGVtV2lkdGgoY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBJ
bmxpbmVJdAogICAgIHJldHVybiBkaXNwbGF5Qm94LndpZHRoKCk7CiB9CiAKLXN0cnVjdCBJbmxp
bmVJbmRleEFuZFNwbGl0UG9zaXRpb24geworc3RydWN0IEluZGV4QW5kUmFuZ2UgewogICAgIHVu
c2lnbmVkIGluZGV4IHsgMCB9OwotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBzcGxpdFBvc2l0aW9u
OworICAgIHN0cnVjdCBSYW5nZSB7CisgICAgICAgIHVuc2lnbmVkIHN0YXJ0IHsgMCB9OworICAg
ICAgICB1bnNpZ25lZCBsZW5ndGggeyAwIH07CisgICAgfTsKKyAgICBPcHRpb25hbDxSYW5nZT4g
cGFydGlhbENvbnRleHQ7CiB9OwogCiBzdHJ1Y3QgTGluZUlucHV0IHsKLSAgICBMaW5lSW5wdXQo
Y29uc3QgTGluZTo6SW5pdGlhbENvbnN0cmFpbnRzJiBpbml0aWFsTGluZUNvbnN0cmFpbnRzLCBM
aW5lOjpTa2lwVmVydGljYWxBbGlnbWVudCwgSW5saW5lSW5kZXhBbmRTcGxpdFBvc2l0aW9uIGZp
cnN0VG9Qcm9jZXNzLCBjb25zdCBJbmxpbmVJdGVtcyYpOworICAgIExpbmVJbnB1dChjb25zdCBM
aW5lOjpJbml0aWFsQ29uc3RyYWludHMmIGluaXRpYWxMaW5lQ29uc3RyYWludHMsIExpbmU6OlNr
aXBWZXJ0aWNhbEFsaWdtZW50LCBJbmRleEFuZFJhbmdlIGZpcnN0VG9Qcm9jZXNzLCBjb25zdCBJ
bmxpbmVJdGVtcyYpOwogCiAgICAgTGluZTo6SW5pdGlhbENvbnN0cmFpbnRzIGluaXRpYWxDb25z
dHJhaW50czsKICAgICAvLyBGSVhNRSBBbHRlcm5hdGl2ZWx5IHdlIGNvdWxkIGp1c3QgaGF2ZSBh
IHNlY29uZCBwYXNzIHdpdGggdmVydGljYWwgcG9zaXRpb25pbmcgKHByZWZlcnJlZCB3aWR0aCBj
b21wdXRhdGlvbiBvcHRzIG91dCkgCiAgICAgTGluZTo6U2tpcFZlcnRpY2FsQWxpZ21lbnQgc2tp
cFZlcnRpY2FsQWxpZ21lbnQ7Ci0gICAgSW5saW5lSW5kZXhBbmRTcGxpdFBvc2l0aW9uIGZpcnN0
SW5saW5lSXRlbTsKKyAgICBJbmRleEFuZFJhbmdlIGZpcnN0SW5saW5lSXRlbTsKICAgICBjb25z
dCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXM7CiAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gZmxv
YXRNaW5pbXVtTG9naWNhbEJvdHRvbTsKIH07CiAKIHN0cnVjdCBMaW5lQ29udGVudCB7Ci0gICAg
T3B0aW9uYWw8SW5saW5lSW5kZXhBbmRTcGxpdFBvc2l0aW9uPiBsYXN0Q29tbWl0dGVkOworICAg
IE9wdGlvbmFsPEluZGV4QW5kUmFuZ2U+IGxhc3RDb21taXR0ZWQ7CiAgICAgVmVjdG9yPFdlYWtQ
dHI8SW5saW5lSXRlbT4+IGZsb2F0czsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGluZTo6Q29udGVu
dD4gcnVuczsKIH07CkBAIC0xMDIsNiArMTA2LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0
U3RhdGU7IH0KKyAgICBlbnVtIGNsYXNzIElzRW5kT2ZMaW5lIHsgTm8sIFllcyB9OworICAgIElz
RW5kT2ZMaW5lIHBsYWNlSW5saW5lSXRlbShjb25zdCBJbmxpbmVJdGVtJik7CiAgICAgdm9pZCBj
b21taXRQZW5kaW5nQ29udGVudCgpOwogICAgIExpbmVDb250ZW50IGNsb3NlKCk7CiAgICAgCkBA
IC0xMzIsNyArMTM4LDYgQEAgcHJpdmF0ZToKICAgICBVbmNvbW1pdHRlZENvbnRlbnQgbV91bmNv
bW1pdHRlZENvbnRlbnQ7CiAgICAgdW5zaWduZWQgbV9jb21taXR0ZWRJbmxpbmVJdGVtQ291bnQg
eyAwIH07CiAgICAgVmVjdG9yPFdlYWtQdHI8SW5saW5lSXRlbT4+IG1fZmxvYXRzOwotICAgIE9w
dGlvbmFsPHVuc2lnbmVkPiBtX3NwbGl0UG9zaXRpb247CiB9OwogCiB2b2lkIExpbmVMYXlvdXQ6
OlVuY29tbWl0dGVkQ29udGVudDo6YWRkKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIExh
eW91dFVuaXQgbG9naWNhbFdpZHRoKQpAQCAtMTcwLDYyICsxNzUsODIgQEAgTGluZUNvbnRlbnQg
TGluZUxheW91dDo6Y2xvc2UoKQogICAgIEFTU0VSVChtX2NvbW1pdHRlZElubGluZUl0ZW1Db3Vu
dCB8fCBtX2xpbmVIYXNGbG9hdEJveCk7CiAgICAgaWYgKCFtX2NvbW1pdHRlZElubGluZUl0ZW1D
b3VudCkKICAgICAgICAgcmV0dXJuIExpbmVDb250ZW50IHsgV1RGOjpudWxsb3B0LCBXVEZNb3Zl
KG1fZmxvYXRzKSwgbV9saW5lLmNsb3NlKCkgfTsKLSAgICBhdXRvIGxhc3RDb21taXRlZEl0ZW0g
PSBJbmxpbmVJbmRleEFuZFNwbGl0UG9zaXRpb24geyBtX2xpbmVJbnB1dC5maXJzdElubGluZUl0
ZW0uaW5kZXggKyAobV9jb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgLSAxKSwgbV9zcGxpdFBvc2l0
aW9uIH07CisgICAgLy8gRklYTUUgQWRkIHBhcnRpYWwgY29udGV4dCBpZiBhcHBsaWNhYmxlLgor
ICAgIGF1dG8gbGFzdENvbW1pdGVkSXRlbSA9IEluZGV4QW5kUmFuZ2UgeyBtX2xpbmVJbnB1dC5m
aXJzdElubGluZUl0ZW0uaW5kZXggKyAobV9jb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgLSAxKSwg
eyB9IH07CiAgICAgcmV0dXJuIExpbmVDb250ZW50IHsgbGFzdENvbW1pdGVkSXRlbSwgV1RGTW92
ZShtX2Zsb2F0cyksIG1fbGluZS5jbG9zZSgpIH07CiB9CiAKLUxpbmVDb250ZW50IExpbmVMYXlv
dXQ6OmxheW91dCgpCitMaW5lTGF5b3V0OjpJc0VuZE9mTGluZSBMaW5lTGF5b3V0OjpwbGFjZUlu
bGluZUl0ZW0oY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSkKIHsKLSAgICAvLyBJdGVyYXRl
IHRocm91Z2ggdGhlIGlubGluZSBjb250ZW50IGFuZCBwbGFjZSB0aGUgaW5saW5lIGJveGVzIG9u
IHRoZSBjdXJyZW50IGxpbmUuCi0gICAgZm9yIChhdXRvIGlubGluZUl0ZW1JbmRleCA9IG1fbGlu
ZUlucHV0LmZpcnN0SW5saW5lSXRlbS5pbmRleDsgaW5saW5lSXRlbUluZGV4IDwgbV9saW5lSW5w
dXQuaW5saW5lSXRlbXMuc2l6ZSgpOyArK2lubGluZUl0ZW1JbmRleCkgewotICAgICAgICBhdXRv
IGF2YWlsYWJsZVdpZHRoID0gbV9saW5lLmF2YWlsYWJsZVdpZHRoKCkgLSBtX3VuY29tbWl0dGVk
Q29udGVudC53aWR0aCgpOwotICAgICAgICBhdXRvIGN1cnJlbnRMb2dpY2FsUmlnaHQgPSBtX2xp
bmUuY29udGVudExvZ2ljYWxSaWdodCgpICsgbV91bmNvbW1pdHRlZENvbnRlbnQud2lkdGgoKTsK
LSAgICAgICAgYXV0byYgaW5saW5lSXRlbSA9IG1fbGluZUlucHV0LmlubGluZUl0ZW1zW2lubGlu
ZUl0ZW1JbmRleF07Ci0gICAgICAgIGF1dG8gaXRlbUxvZ2ljYWxXaWR0aCA9IGlubGluZUl0ZW1X
aWR0aChsYXlvdXRTdGF0ZSgpLCAqaW5saW5lSXRlbSwgY3VycmVudExvZ2ljYWxSaWdodCk7Ci0K
LSAgICAgICAgLy8gRklYTUU6IEVuc3VyZSBMaW5lQ29udGV4dDo6dHJpbW1hYmxlV2lkdGggaW5j
bHVkZXMgdW5jb21taXR0ZWQgY29udGVudCBpZiBuZWVkZWQuCi0gICAgICAgIGF1dG8gbGluZUlz
Q29uc2lkZXJlZEVtcHR5ID0gIW1fbGluZS5oYXNDb250ZW50KCkgJiYgIW1fbGluZUhhc0Zsb2F0
Qm94OwotICAgICAgICBhdXRvIGJyZWFraW5nQ29udGV4dCA9IG1fbGluZUJyZWFrZXIuYnJlYWtp
bmdDb250ZXh0KCppbmxpbmVJdGVtLCBpdGVtTG9naWNhbFdpZHRoLCB7IGF2YWlsYWJsZVdpZHRo
LCBjdXJyZW50TG9naWNhbFJpZ2h0LCBtX2xpbmUudHJhaWxpbmdUcmltbWFibGVXaWR0aCgpLCBs
aW5lSXNDb25zaWRlcmVkRW1wdHkgfSk7Ci0gICAgICAgIGlmIChicmVha2luZ0NvbnRleHQuaXNB
dEJyZWFraW5nT3Bwb3J0dW5pdHkpCi0gICAgICAgICAgICBjb21taXRQZW5kaW5nQ29udGVudCgp
OwotCi0gICAgICAgIC8vIENvbnRlbnQgZG9lcyBub3QgZml0IHRoZSBjdXJyZW50IGxpbmUuCi0g
ICAgICAgIGlmIChicmVha2luZ0NvbnRleHQuYnJlYWtpbmdCZWhhdmlvciA9PSBMaW5lQnJlYWtl
cjo6QnJlYWtpbmdCZWhhdmlvcjo6V3JhcCkKLSAgICAgICAgICAgIHJldHVybiBjbG9zZSgpOwor
ICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSBtX2xpbmUuYXZhaWxhYmxlV2lkdGgoKSAtIG1fdW5j
b21taXR0ZWRDb250ZW50LndpZHRoKCk7CisgICAgYXV0byBjdXJyZW50TG9naWNhbFJpZ2h0ID0g
bV9saW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKSArIG1fdW5jb21taXR0ZWRDb250ZW50LndpZHRo
KCk7CisgICAgYXV0byBpdGVtTG9naWNhbFdpZHRoID0gaW5saW5lSXRlbVdpZHRoKGxheW91dFN0
YXRlKCksIGlubGluZUl0ZW0sIGN1cnJlbnRMb2dpY2FsUmlnaHQpOworCisgICAgLy8gRklYTUU6
IEVuc3VyZSBMaW5lQ29udGV4dDo6dHJpbW1hYmxlV2lkdGggaW5jbHVkZXMgdW5jb21taXR0ZWQg
Y29udGVudCBpZiBuZWVkZWQuCisgICAgYXV0byBsaW5lSXNDb25zaWRlcmVkRW1wdHkgPSAhbV9s
aW5lLmhhc0NvbnRlbnQoKSAmJiAhbV9saW5lSGFzRmxvYXRCb3g7CisgICAgYXV0byBicmVha2lu
Z0NvbnRleHQgPSBtX2xpbmVCcmVha2VyLmJyZWFraW5nQ29udGV4dChpbmxpbmVJdGVtLCBpdGVt
TG9naWNhbFdpZHRoLCB7IGF2YWlsYWJsZVdpZHRoLCBjdXJyZW50TG9naWNhbFJpZ2h0LCBtX2xp
bmUudHJhaWxpbmdUcmltbWFibGVXaWR0aCgpLCBsaW5lSXNDb25zaWRlcmVkRW1wdHkgfSk7Cisg
ICAgaWYgKGJyZWFraW5nQ29udGV4dC5pc0F0QnJlYWtpbmdPcHBvcnR1bml0eSkKKyAgICAgICAg
Y29tbWl0UGVuZGluZ0NvbnRlbnQoKTsKKworICAgIC8vIENvbnRlbnQgZG9lcyBub3QgZml0IHRo
ZSBjdXJyZW50IGxpbmUuCisgICAgaWYgKGJyZWFraW5nQ29udGV4dC5icmVha2luZ0JlaGF2aW9y
ID09IExpbmVCcmVha2VyOjpCcmVha2luZ0JlaGF2aW9yOjpXcmFwKQorICAgICAgICByZXR1cm4g
SXNFbmRPZkxpbmU6OlllczsKKworICAgIC8vIFBhcnRpYWwgY29udGVudCBzdGF5cyBvbiB0aGUg
Y3VycmVudCBsaW5lLgorICAgIGlmIChicmVha2luZ0NvbnRleHQuYnJlYWtpbmdCZWhhdmlvciA9
PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6U3BsaXQpIHsKKyAgICAgICAgQVNTRVJU
KGlubGluZUl0ZW0uaXNUZXh0KCkpOworCisgICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURf
WUVUKCk7CisgICAgICAgIHJldHVybiBJc0VuZE9mTGluZTo6WWVzOworICAgIH0KIAotICAgICAg
ICAvLyBQYXJ0aWFsIGNvbnRlbnQgc3RheXMgb24gdGhlIGN1cnJlbnQgbGluZS4gCi0gICAgICAg
IGlmIChicmVha2luZ0NvbnRleHQuYnJlYWtpbmdCZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJl
YWtpbmdCZWhhdmlvcjo6U3BsaXQpIHsKLSAgICAgICAgICAgIEFTU0VSVChpbmxpbmVJdGVtLT5p
c1RleHQoKSk7CisgICAgQVNTRVJUKGJyZWFraW5nQ29udGV4dC5icmVha2luZ0JlaGF2aW9yID09
IExpbmVCcmVha2VyOjpCcmVha2luZ0JlaGF2aW9yOjpLZWVwKTsKKyAgICBpZiAoaW5saW5lSXRl
bS5pc0Zsb2F0KCkpIHsKKyAgICAgICAgYXV0byYgZmxvYXRCb3ggPSBpbmxpbmVJdGVtLmxheW91
dEJveCgpOworICAgICAgICBBU1NFUlQobGF5b3V0U3RhdGUoKS5oYXNEaXNwbGF5Qm94KGZsb2F0
Qm94KSk7CisgICAgICAgIC8vIFNocmluayBhdmFpbGJsZSBzcGFjZSBmb3IgY3VycmVudCBsaW5l
IGFuZCBtb3ZlIGV4aXN0aW5nIGlubGluZSBydW5zLgorICAgICAgICBhdXRvIGZsb2F0Qm94V2lk
dGggPSBsYXlvdXRTdGF0ZSgpLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goZmxvYXRCb3gpLm1hcmdp
bkJveFdpZHRoKCk7CisgICAgICAgIGZsb2F0Qm94LmlzTGVmdEZsb2F0aW5nUG9zaXRpb25lZCgp
ID8gbV9saW5lLm1vdmVMb2dpY2FsTGVmdChmbG9hdEJveFdpZHRoKSA6IG1fbGluZS5tb3ZlTG9n
aWNhbFJpZ2h0KGZsb2F0Qm94V2lkdGgpOworICAgICAgICBtX2Zsb2F0cy5hcHBlbmQobWFrZVdl
YWtQdHIoaW5saW5lSXRlbSkpOworICAgICAgICArK21fY29tbWl0dGVkSW5saW5lSXRlbUNvdW50
OworICAgICAgICBtX2xpbmVIYXNGbG9hdEJveCA9IHRydWU7CisgICAgICAgIHJldHVybiBJc0Vu
ZE9mTGluZTo6Tm87CisgICAgfQogCi0gICAgICAgICAgICBBU1NFUlRfTk9UX0lNUExFTUVOVEVE
X1lFVCgpOwotICAgICAgICAgICAgcmV0dXJuIGNsb3NlKCk7Ci0gICAgICAgIH0KKyAgICBtX3Vu
Y29tbWl0dGVkQ29udGVudC5hZGQoaW5saW5lSXRlbSwgaXRlbUxvZ2ljYWxXaWR0aCk7CisgICAg
aWYgKGJyZWFraW5nQ29udGV4dC5pc0F0QnJlYWtpbmdPcHBvcnR1bml0eSkKKyAgICAgICAgY29t
bWl0UGVuZGluZ0NvbnRlbnQoKTsKIAotICAgICAgICBBU1NFUlQoYnJlYWtpbmdDb250ZXh0LmJy
ZWFraW5nQmVoYXZpb3IgPT0gTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZpb3I6OktlZXApOwot
ICAgICAgICBpZiAoaW5saW5lSXRlbS0+aXNGbG9hdCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBm
bG9hdEJveCA9IGlubGluZUl0ZW0tPmxheW91dEJveCgpOwotICAgICAgICAgICAgQVNTRVJUKGxh
eW91dFN0YXRlKCkuaGFzRGlzcGxheUJveChmbG9hdEJveCkpOwotICAgICAgICAgICAgLy8gU2hy
aW5rIGF2YWlsYmxlIHNwYWNlIGZvciBjdXJyZW50IGxpbmUgYW5kIG1vdmUgZXhpc3RpbmcgaW5s
aW5lIHJ1bnMuCi0gICAgICAgICAgICBhdXRvIGZsb2F0Qm94V2lkdGggPSBsYXlvdXRTdGF0ZSgp
LmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goZmxvYXRCb3gpLm1hcmdpbkJveFdpZHRoKCk7Ci0gICAg
ICAgICAgICBmbG9hdEJveC5pc0xlZnRGbG9hdGluZ1Bvc2l0aW9uZWQoKSA/IG1fbGluZS5tb3Zl
TG9naWNhbExlZnQoZmxvYXRCb3hXaWR0aCkgOiBtX2xpbmUubW92ZUxvZ2ljYWxSaWdodChmbG9h
dEJveFdpZHRoKTsKLSAgICAgICAgICAgIG1fZmxvYXRzLmFwcGVuZChtYWtlV2Vha1B0cigqaW5s
aW5lSXRlbSkpOwotICAgICAgICAgICAgKyttX2NvbW1pdHRlZElubGluZUl0ZW1Db3VudDsKLSAg
ICAgICAgICAgIG1fbGluZUhhc0Zsb2F0Qm94ID0gdHJ1ZTsKLSAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICB9CisgICAgcmV0dXJuIGlubGluZUl0ZW0uaXNIYXJkTGluZUJyZWFrKCkgPyBJ
c0VuZE9mTGluZTo6WWVzIDogSXNFbmRPZkxpbmU6Ok5vOworfQogCi0gICAgICAgIG1fdW5jb21t
aXR0ZWRDb250ZW50LmFkZCgqaW5saW5lSXRlbSwgaXRlbUxvZ2ljYWxXaWR0aCk7Ci0gICAgICAg
IGlmIChicmVha2luZ0NvbnRleHQuaXNBdEJyZWFraW5nT3Bwb3J0dW5pdHkpCi0gICAgICAgICAg
ICBjb21taXRQZW5kaW5nQ29udGVudCgpOworTGluZUNvbnRlbnQgTGluZUxheW91dDo6bGF5b3V0
KCkKK3sKKyAgICAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIGlubGluZSBjb250ZW50IGFuZCBwbGFj
ZSB0aGUgaW5saW5lIGJveGVzIG9uIHRoZSBjdXJyZW50IGxpbmUuCisgICAgLy8gU3RhcnQgd2l0
aCB0aGUgcGFydGlhbCB0ZXh0IGZyb20gdGhlIHByZXZpb3VzIGxpbmUuCisgICAgYXV0byBmaXJz
dElubGluZUl0ZW0gPSBtX2xpbmVJbnB1dC5maXJzdElubGluZUl0ZW07CisgICAgdW5zaWduZWQg
Zmlyc3ROb25QYXJ0aWFsSW5kZXggPSBmaXJzdElubGluZUl0ZW0uaW5kZXg7CisgICAgaWYgKGZp
cnN0SW5saW5lSXRlbS5wYXJ0aWFsQ29udGV4dCkgeworICAgICAgICAvLyBIYW5kbGUgcGFydGlh
bCBpbmxpbmUgaXRlbSAoc3BsaXQgdGV4dCBmcm9tIHRoZSBwcmV2aW91cyBsaW5lKS4KKyAgICAg
ICAgYXV0byYgb3JpZ2luYWxUZXh0SXRlbSA9IG1fbGluZUlucHV0LmlubGluZUl0ZW1zW2ZpcnN0
SW5saW5lSXRlbS5pbmRleF07CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKG9yaWdpbmFsVGV4dEl0
ZW0tPmlzVGV4dCgpKTsKKworICAgICAgICBhdXRvIHRleHRSYW5nZSA9ICpmaXJzdElubGluZUl0
ZW0ucGFydGlhbENvbnRleHQ7CisgICAgICAgIGF1dG8gcGFydGlhbElubGluZUl0ZW0gPSBkb3du
Y2FzdDxJbmxpbmVUZXh0SXRlbT4oKm9yaWdpbmFsVGV4dEl0ZW0pLnNwbGl0KHRleHRSYW5nZS5z
dGFydCwgdGV4dFJhbmdlLmxlbmd0aCk7CisgICAgICAgIGlmIChwbGFjZUlubGluZUl0ZW0ocGFy
dGlhbElubGluZUl0ZW0pID09IElzRW5kT2ZMaW5lOjpZZXMpCisgICAgICAgICAgICByZXR1cm4g
Y2xvc2UoKTsKKyAgICAgICAgKytmaXJzdE5vblBhcnRpYWxJbmRleDsKKyAgICB9CiAKLSAgICAg
ICAgaWYgKGlubGluZUl0ZW0tPmlzSGFyZExpbmVCcmVhaygpKQorICAgIGZvciAoYXV0byBpbmxp
bmVJdGVtSW5kZXggPSBmaXJzdE5vblBhcnRpYWxJbmRleDsgaW5saW5lSXRlbUluZGV4IDwgbV9s
aW5lSW5wdXQuaW5saW5lSXRlbXMuc2l6ZSgpOyArK2lubGluZUl0ZW1JbmRleCkgeworICAgICAg
ICBpZiAocGxhY2VJbmxpbmVJdGVtKCptX2xpbmVJbnB1dC5pbmxpbmVJdGVtc1tpbmxpbmVJdGVt
SW5kZXhdKSA9PSBJc0VuZE9mTGluZTo6WWVzKQogICAgICAgICAgICAgcmV0dXJuIGNsb3NlKCk7
CiAgICAgfQogICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KCk7CiAgICAgcmV0dXJuIGNsb3NlKCk7
CiB9CiAKLUxpbmVJbnB1dDo6TGluZUlucHV0KGNvbnN0IExpbmU6OkluaXRpYWxDb25zdHJhaW50
cyYgaW5pdGlhbExpbmVDb25zdHJhaW50cywgTGluZTo6U2tpcFZlcnRpY2FsQWxpZ21lbnQgc2tp
cFZlcnRpY2FsQWxpZ21lbnQsIElubGluZUluZGV4QW5kU3BsaXRQb3NpdGlvbiBmaXJzdFRvUHJv
Y2VzcywgY29uc3QgSW5saW5lSXRlbXMmIGlubGluZUl0ZW1zKQorTGluZUlucHV0OjpMaW5lSW5w
dXQoY29uc3QgTGluZTo6SW5pdGlhbENvbnN0cmFpbnRzJiBpbml0aWFsTGluZUNvbnN0cmFpbnRz
LCBMaW5lOjpTa2lwVmVydGljYWxBbGlnbWVudCBza2lwVmVydGljYWxBbGlnbWVudCwgSW5kZXhB
bmRSYW5nZSBmaXJzdFRvUHJvY2VzcywgY29uc3QgSW5saW5lSXRlbXMmIGlubGluZUl0ZW1zKQog
ICAgIDogaW5pdGlhbENvbnN0cmFpbnRzKGluaXRpYWxMaW5lQ29uc3RyYWludHMpCiAgICAgLCBz
a2lwVmVydGljYWxBbGlnbWVudChza2lwVmVydGljYWxBbGlnbWVudCkKICAgICAsIGZpcnN0SW5s
aW5lSXRlbShmaXJzdFRvUHJvY2VzcykKQEAgLTI4NSw3ICszMTAsNyBAQCB2b2lkIElubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmxheW91dChjb25zdCBJbmxpbmVJdGVtcyYg
aW5saW5lSXRlbQogICAgICAgICBsaW5lSW5wdXQuaW5pdGlhbENvbnN0cmFpbnRzLmxvZ2ljYWxU
b3BMZWZ0LnNldFgobGluZUxvZ2ljYWxMZWZ0KTsKICAgICB9OwogCi0gICAgSW5saW5lSW5kZXhB
bmRTcGxpdFBvc2l0aW9uIGN1cnJlbnRJbmxpbmVJdGVtOworICAgIEluZGV4QW5kUmFuZ2UgY3Vy
cmVudElubGluZUl0ZW07CiAgICAgd2hpbGUgKGN1cnJlbnRJbmxpbmVJdGVtLmluZGV4IDwgaW5s
aW5lSXRlbXMuc2l6ZSgpKSB7CiAgICAgICAgIGF1dG8gbGluZUlucHV0ID0gTGluZUlucHV0IHsg
eyB7IGxpbmVMb2dpY2FsTGVmdCwgbGluZUxvZ2ljYWxUb3AgfSwgd2lkdGhDb25zdHJhaW50LCBR
dWlya3M6OmxpbmVIZWlnaHRDb25zdHJhaW50cyhsYXlvdXRTdGF0ZSgpLCBtX2Zvcm1hdHRpbmdS
b290KSB9LCBMaW5lOjpTa2lwVmVydGljYWxBbGlnbWVudDo6Tm8sIGN1cnJlbnRJbmxpbmVJdGVt
LCBpbmxpbmVJdGVtcyB9OwogICAgICAgICBhcHBseUZsb2F0Q29uc3RyYWludChsaW5lSW5wdXQp
OwpAQCAtMzA2LDcgKzMzMSw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OklubGlu
ZUxheW91dDo6bGF5b3V0KGNvbnN0IElubGluZUl0ZW1zJiBpbmxpbmVJdGVtCiBMYXlvdXRVbml0
IElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmNvbXB1dGVkSW50cmluc2lj
V2lkdGgoY29uc3QgSW5saW5lSXRlbXMmIGlubGluZUl0ZW1zLCBMYXlvdXRVbml0IHdpZHRoQ29u
c3RyYWludCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IG1heGltdW1MaW5lV2lkdGg7Ci0gICAg
SW5saW5lSW5kZXhBbmRTcGxpdFBvc2l0aW9uIGN1cnJlbnRJbmxpbmVJdGVtOworICAgIEluZGV4
QW5kUmFuZ2UgY3VycmVudElubGluZUl0ZW07CiAgICAgd2hpbGUgKGN1cnJlbnRJbmxpbmVJdGVt
LmluZGV4IDwgaW5saW5lSXRlbXMuc2l6ZSgpKSB7CiAgICAgICAgIGF1dG8gbGluZUNvbnRlbnQg
PSBMaW5lTGF5b3V0KGxheW91dFN0YXRlKCksIHsgeyB7IH0sIHdpZHRoQ29uc3RyYWludCwgUXVp
cmtzOjpsaW5lSGVpZ2h0Q29uc3RyYWludHMobGF5b3V0U3RhdGUoKSwgbV9mb3JtYXR0aW5nUm9v
dCkgfSwgTGluZTo6U2tpcFZlcnRpY2FsQWxpZ21lbnQ6OlllcywgY3VycmVudElubGluZUl0ZW0s
IGlubGluZUl0ZW1zIH0pLmxheW91dCgpOwogICAgICAgICBjdXJyZW50SW5saW5lSXRlbSA9IHsg
bGluZUNvbnRlbnQubGFzdENvbW1pdHRlZC0+aW5kZXggKyAxLCBXVEY6Om51bGxvcHQgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRl
eHRJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZVRleHRJdGVtLmNwcAppbmRleCBmOWVlZjQ3ODJhZjc4Mzk1Y2MzNDJlNDM4OGJkNzZlNTI3ZDlm
ODE4Li43M2I3NmU4Y2YxN2FjOGNlOTg1YzM3MmMzYTQyZTdlZjU2MTk2YjI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4
dEl0ZW0uY3BwCkBAIC0xMjcsNiArMTI3LDEzIEBAIElubGluZVRleHRJdGVtOjpJbmxpbmVUZXh0
SXRlbShjb25zdCBJbmxpbmVCb3gmIGlubGluZUJveCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnCiB7
CiB9CiAKK0lubGluZVRleHRJdGVtIElubGluZVRleHRJdGVtOjpzcGxpdCh1bnNpZ25lZCBzcGxp
dFBvc2l0aW9uLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoc3BsaXRQ
b3NpdGlvbiA+PSB0aGlzLT5zdGFydCgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChzcGxpdFBvc2l0
aW9uICsgbGVuZ3RoIDw9IGVuZCgpKTsKKyAgICByZXR1cm4geyBkb3duY2FzdDxJbmxpbmVCb3g+
KGxheW91dEJveCgpKSwgc3BsaXRQb3NpdGlvbiwgbGVuZ3RoLCBpc1doaXRlc3BhY2UoKSwgaXND
b2xsYXBzZWQoKSB9OworfQorCiB9CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5oCmluZGV4IGM3ZDhm
MzRhNGI2MGMxZjkyNjQzODVjZjNmMDcwMmRmYzVhNTMxNGEuLjg3YmQ5YzJkMzQxMmQ0NTQ3ZjNl
Zjk1ZWU0ZjRjNGZiNTc2NjQ2ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uaApAQCAtNDYsNiArNDYsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBtX2lzV2hpdGVz
cGFjZTsgfQogICAgIGJvb2wgaXNDb2xsYXBzZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ29sbGFw
c2VkOyB9CiAKKyAgICBJbmxpbmVUZXh0SXRlbSBzcGxpdCh1bnNpZ25lZCBzcGxpdFBvc2l0aW9u
LCB1bnNpZ25lZCBsZW5ndGgpOworCiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc3RhcnQgeyAw
IH07CiAgICAgdW5zaWduZWQgbV9sZW5ndGggeyAwIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374459</attachid>
            <date>2019-07-19 05:53:49 -0700</date>
            <delta_ts>2019-07-19 06:35:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199930-20190719055346.patch</filename>
            <type>text/plain</type>
            <size>13821</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJiZDlhYWI3OGQ5YTc2
Nzc4YTZkNDlmNzI5M2JhMTA5YjFmY2VlNS4uZjI2NGJkYTkyZDA1OGRkZTc1MDc5YTg0ZjE4OWJi
MDJjMmMyY2I0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTA3LTE4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBBZGQgcGFy
dGlhbCBjb250ZW50IGhhbmRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTk5MzAKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0
by4KKworICAgICAgICBNb3ZlIHRoZSBhY3R1YWwgaW5saW5lIGl0ZW0gcGxhY2VtZW50IHRvIGEg
ZGVkaWNhdGVkIGZ1bmN0aW9ucy4gVGhpcyBlbmFibGVzIHVzIHRvCisgICAgICAgIGNvbnN0cnVj
dCBhIGRlZGljYXRlZCBJbmxpbmVJdGVtIGZvciB0aGUgcGFydGlhbCBjb250ZW50IGFuZCBwYXNz
IGl0IGluIHRvIHRoaXMgZnVuY3Rpb24uCisKKyAgICAgICAgPHNwYW4+VGhlIHF1aWNrIGJyb3du
IGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZzwvc3Bhbj4gPC0gaW5saW5lIGNvbnRlbnQKKyAg
ICAgICAgW1RoZV1bIF1bcXVpY2tdWyBdW2Jyb3duXVsgXVtmb3hdWyBdW2p1bXBzXVsgXVtvdmVy
XVsgXVt0aGVdWyBdW2xhenldWyBdW2RvZ10gPC0gSW5saW5lSXRlbXMKKworICAgICAgICBMaW5l
IGJyZWFraW5nOgorICAgICAgICBbVGhlXVsgXVtxdV0KKyAgICAgICAgW2lja10gPC0gUGFydGlh
bCBJbmxpbmVJdGVtIChwb3NpdGlvbjogNiBsZW5ndGg6IDMpIGZyb20gW3F1aWNrXSAocG9zaXRp
b246IDQgbGVuZ3RoOiA1KQorCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGluZUxheW91dDo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5l
TGF5b3V0OjpwbGFjZUlubGluZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5l
TGF5b3V0OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lSW5wdXQ6Okxp
bmVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250
ZXh0OjpJbmxpbmVMYXlvdXQ6OmxheW91dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmNvbXB1dGVkSW50cmlu
c2ljV2lkdGggY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZVRleHRJdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06
OnNwbGl0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRl
bS5oOgorCiAyMDE5LTA3LTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6cGxh
Y2VJbmxpbmVJdGVtcyBpcyBnZXR0aW5nIHRvbyBjb21wbGV4LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRM
aW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAKaW5kZXggYzQwYWU0OTYwYmMxZDEw
NGViNWJhMGVkNGRhZmJiNzc1OTBhOTgwZC4uNzBhYzNiMzQxOGE3NzhiYWFmMmY3MzZmMWI4MzJj
YTRlNmY2ZjJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dExp
bmVMYXlvdXQuY3BwCkBAIC03MiwyNCArNzIsMjggQEAgc3RhdGljIExheW91dFVuaXQgaW5saW5l
SXRlbVdpZHRoKGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3QgSW5saW5lSXQK
ICAgICByZXR1cm4gZGlzcGxheUJveC53aWR0aCgpOwogfQogCi1zdHJ1Y3QgSW5saW5lSW5kZXhB
bmRTcGxpdFBvc2l0aW9uIHsKK3N0cnVjdCBJbmRleEFuZFJhbmdlIHsKICAgICB1bnNpZ25lZCBp
bmRleCB7IDAgfTsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gc3BsaXRQb3NpdGlvbjsKKyAgICBz
dHJ1Y3QgUmFuZ2UgeworICAgICAgICB1bnNpZ25lZCBzdGFydCB7IDAgfTsKKyAgICAgICAgdW5z
aWduZWQgbGVuZ3RoIHsgMCB9OworICAgIH07CisgICAgT3B0aW9uYWw8UmFuZ2U+IHBhcnRpYWxD
b250ZXh0OwogfTsKIAogc3RydWN0IExpbmVJbnB1dCB7Ci0gICAgTGluZUlucHV0KGNvbnN0IExp
bmU6OkluaXRpYWxDb25zdHJhaW50cyYgaW5pdGlhbExpbmVDb25zdHJhaW50cywgTGluZTo6U2tp
cFZlcnRpY2FsQWxpZ21lbnQsIElubGluZUluZGV4QW5kU3BsaXRQb3NpdGlvbiBmaXJzdFRvUHJv
Y2VzcywgY29uc3QgSW5saW5lSXRlbXMmKTsKKyAgICBMaW5lSW5wdXQoY29uc3QgTGluZTo6SW5p
dGlhbENvbnN0cmFpbnRzJiBpbml0aWFsTGluZUNvbnN0cmFpbnRzLCBMaW5lOjpTa2lwVmVydGlj
YWxBbGlnbWVudCwgSW5kZXhBbmRSYW5nZSBmaXJzdFRvUHJvY2VzcywgY29uc3QgSW5saW5lSXRl
bXMmKTsKIAogICAgIExpbmU6OkluaXRpYWxDb25zdHJhaW50cyBpbml0aWFsQ29uc3RyYWludHM7
CiAgICAgLy8gRklYTUUgQWx0ZXJuYXRpdmVseSB3ZSBjb3VsZCBqdXN0IGhhdmUgYSBzZWNvbmQg
cGFzcyB3aXRoIHZlcnRpY2FsIHBvc2l0aW9uaW5nIChwcmVmZXJyZWQgd2lkdGggY29tcHV0YXRp
b24gb3B0cyBvdXQpIAogICAgIExpbmU6OlNraXBWZXJ0aWNhbEFsaWdtZW50IHNraXBWZXJ0aWNh
bEFsaWdtZW50OwotICAgIElubGluZUluZGV4QW5kU3BsaXRQb3NpdGlvbiBmaXJzdElubGluZUl0
ZW07CisgICAgSW5kZXhBbmRSYW5nZSBmaXJzdElubGluZUl0ZW07CiAgICAgY29uc3QgSW5saW5l
SXRlbXMmIGlubGluZUl0ZW1zOwogICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IGZsb2F0TWluaW11
bUxvZ2ljYWxCb3R0b207CiB9OwogCiBzdHJ1Y3QgTGluZUNvbnRlbnQgewotICAgIE9wdGlvbmFs
PElubGluZUluZGV4QW5kU3BsaXRQb3NpdGlvbj4gbGFzdENvbW1pdHRlZDsKKyAgICBPcHRpb25h
bDxJbmRleEFuZFJhbmdlPiBsYXN0Q29tbWl0dGVkOwogICAgIFZlY3RvcjxXZWFrUHRyPElubGlu
ZUl0ZW0+PiBmbG9hdHM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPExpbmU6OkNvbnRlbnQ+IHJ1bnM7
CiB9OwpAQCAtMTAyLDYgKzEwNiw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBjb25zdCBM
YXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2xheW91dFN0YXRlOyB9
CisgICAgZW51bSBjbGFzcyBJc0VuZE9mTGluZSB7IE5vLCBZZXMgfTsKKyAgICBJc0VuZE9mTGlu
ZSBwbGFjZUlubGluZUl0ZW0oY29uc3QgSW5saW5lSXRlbSYpOwogICAgIHZvaWQgY29tbWl0UGVu
ZGluZ0NvbnRlbnQoKTsKICAgICBMaW5lQ29udGVudCBjbG9zZSgpOwogICAgIApAQCAtMTMyLDcg
KzEzOCw2IEBAIHByaXZhdGU6CiAgICAgVW5jb21taXR0ZWRDb250ZW50IG1fdW5jb21taXR0ZWRD
b250ZW50OwogICAgIHVuc2lnbmVkIG1fY29tbWl0dGVkSW5saW5lSXRlbUNvdW50IHsgMCB9Owog
ICAgIFZlY3RvcjxXZWFrUHRyPElubGluZUl0ZW0+PiBtX2Zsb2F0czsKLSAgICBPcHRpb25hbDx1
bnNpZ25lZD4gbV9zcGxpdFBvc2l0aW9uOwogfTsKIAogdm9pZCBMaW5lTGF5b3V0OjpVbmNvbW1p
dHRlZENvbnRlbnQ6OmFkZChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRVbml0
IGxvZ2ljYWxXaWR0aCkKQEAgLTE3MCw2MiArMTc1LDgyIEBAIExpbmVDb250ZW50IExpbmVMYXlv
dXQ6OmNsb3NlKCkKICAgICBBU1NFUlQobV9jb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgfHwgbV9s
aW5lSGFzRmxvYXRCb3gpOwogICAgIGlmICghbV9jb21taXR0ZWRJbmxpbmVJdGVtQ291bnQpCiAg
ICAgICAgIHJldHVybiBMaW5lQ29udGVudCB7IFdURjo6bnVsbG9wdCwgV1RGTW92ZShtX2Zsb2F0
cyksIG1fbGluZS5jbG9zZSgpIH07Ci0gICAgYXV0byBsYXN0Q29tbWl0ZWRJdGVtID0gSW5saW5l
SW5kZXhBbmRTcGxpdFBvc2l0aW9uIHsgbV9saW5lSW5wdXQuZmlyc3RJbmxpbmVJdGVtLmluZGV4
ICsgKG1fY29tbWl0dGVkSW5saW5lSXRlbUNvdW50IC0gMSksIG1fc3BsaXRQb3NpdGlvbiB9Owor
ICAgIC8vIEZJWE1FIEFkZCBwYXJ0aWFsIGNvbnRleHQgaWYgYXBwbGljYWJsZS4KKyAgICBhdXRv
IGxhc3RDb21taXRlZEl0ZW0gPSBJbmRleEFuZFJhbmdlIHsgbV9saW5lSW5wdXQuZmlyc3RJbmxp
bmVJdGVtLmluZGV4ICsgKG1fY29tbWl0dGVkSW5saW5lSXRlbUNvdW50IC0gMSksIHsgfSB9Owog
ICAgIHJldHVybiBMaW5lQ29udGVudCB7IGxhc3RDb21taXRlZEl0ZW0sIFdURk1vdmUobV9mbG9h
dHMpLCBtX2xpbmUuY2xvc2UoKSB9OwogfQogCi1MaW5lQ29udGVudCBMaW5lTGF5b3V0OjpsYXlv
dXQoKQorTGluZUxheW91dDo6SXNFbmRPZkxpbmUgTGluZUxheW91dDo6cGxhY2VJbmxpbmVJdGVt
KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0pCiB7Ci0gICAgLy8gSXRlcmF0ZSB0aHJvdWdo
IHRoZSBpbmxpbmUgY29udGVudCBhbmQgcGxhY2UgdGhlIGlubGluZSBib3hlcyBvbiB0aGUgY3Vy
cmVudCBsaW5lLgotICAgIGZvciAoYXV0byBpbmxpbmVJdGVtSW5kZXggPSBtX2xpbmVJbnB1dC5m
aXJzdElubGluZUl0ZW0uaW5kZXg7IGlubGluZUl0ZW1JbmRleCA8IG1fbGluZUlucHV0LmlubGlu
ZUl0ZW1zLnNpemUoKTsgKytpbmxpbmVJdGVtSW5kZXgpIHsKLSAgICAgICAgYXV0byBhdmFpbGFi
bGVXaWR0aCA9IG1fbGluZS5hdmFpbGFibGVXaWR0aCgpIC0gbV91bmNvbW1pdHRlZENvbnRlbnQu
d2lkdGgoKTsKLSAgICAgICAgYXV0byBjdXJyZW50TG9naWNhbFJpZ2h0ID0gbV9saW5lLmNvbnRl
bnRMb2dpY2FsUmlnaHQoKSArIG1fdW5jb21taXR0ZWRDb250ZW50LndpZHRoKCk7Ci0gICAgICAg
IGF1dG8mIGlubGluZUl0ZW0gPSBtX2xpbmVJbnB1dC5pbmxpbmVJdGVtc1tpbmxpbmVJdGVtSW5k
ZXhdOwotICAgICAgICBhdXRvIGl0ZW1Mb2dpY2FsV2lkdGggPSBpbmxpbmVJdGVtV2lkdGgobGF5
b3V0U3RhdGUoKSwgKmlubGluZUl0ZW0sIGN1cnJlbnRMb2dpY2FsUmlnaHQpOwotCi0gICAgICAg
IC8vIEZJWE1FOiBFbnN1cmUgTGluZUNvbnRleHQ6OnRyaW1tYWJsZVdpZHRoIGluY2x1ZGVzIHVu
Y29tbWl0dGVkIGNvbnRlbnQgaWYgbmVlZGVkLgotICAgICAgICBhdXRvIGxpbmVJc0NvbnNpZGVy
ZWRFbXB0eSA9ICFtX2xpbmUuaGFzQ29udGVudCgpICYmICFtX2xpbmVIYXNGbG9hdEJveDsKLSAg
ICAgICAgYXV0byBicmVha2luZ0NvbnRleHQgPSBtX2xpbmVCcmVha2VyLmJyZWFraW5nQ29udGV4
dCgqaW5saW5lSXRlbSwgaXRlbUxvZ2ljYWxXaWR0aCwgeyBhdmFpbGFibGVXaWR0aCwgY3VycmVu
dExvZ2ljYWxSaWdodCwgbV9saW5lLnRyYWlsaW5nVHJpbW1hYmxlV2lkdGgoKSwgbGluZUlzQ29u
c2lkZXJlZEVtcHR5IH0pOwotICAgICAgICBpZiAoYnJlYWtpbmdDb250ZXh0LmlzQXRCcmVha2lu
Z09wcG9ydHVuaXR5KQotICAgICAgICAgICAgY29tbWl0UGVuZGluZ0NvbnRlbnQoKTsKLQotICAg
ICAgICAvLyBDb250ZW50IGRvZXMgbm90IGZpdCB0aGUgY3VycmVudCBsaW5lLgotICAgICAgICBp
ZiAoYnJlYWtpbmdDb250ZXh0LmJyZWFraW5nQmVoYXZpb3IgPT0gTGluZUJyZWFrZXI6OkJyZWFr
aW5nQmVoYXZpb3I6OldyYXApCi0gICAgICAgICAgICByZXR1cm4gY2xvc2UoKTsKKyAgICBhdXRv
IGF2YWlsYWJsZVdpZHRoID0gbV9saW5lLmF2YWlsYWJsZVdpZHRoKCkgLSBtX3VuY29tbWl0dGVk
Q29udGVudC53aWR0aCgpOworICAgIGF1dG8gY3VycmVudExvZ2ljYWxSaWdodCA9IG1fbGluZS5j
b250ZW50TG9naWNhbFJpZ2h0KCkgKyBtX3VuY29tbWl0dGVkQ29udGVudC53aWR0aCgpOworICAg
IGF1dG8gaXRlbUxvZ2ljYWxXaWR0aCA9IGlubGluZUl0ZW1XaWR0aChsYXlvdXRTdGF0ZSgpLCBp
bmxpbmVJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKKworICAgIC8vIEZJWE1FOiBFbnN1cmUg
TGluZUNvbnRleHQ6OnRyaW1tYWJsZVdpZHRoIGluY2x1ZGVzIHVuY29tbWl0dGVkIGNvbnRlbnQg
aWYgbmVlZGVkLgorICAgIGF1dG8gbGluZUlzQ29uc2lkZXJlZEVtcHR5ID0gIW1fbGluZS5oYXND
b250ZW50KCkgJiYgIW1fbGluZUhhc0Zsb2F0Qm94OworICAgIGF1dG8gYnJlYWtpbmdDb250ZXh0
ID0gbV9saW5lQnJlYWtlci5icmVha2luZ0NvbnRleHQoaW5saW5lSXRlbSwgaXRlbUxvZ2ljYWxX
aWR0aCwgeyBhdmFpbGFibGVXaWR0aCwgY3VycmVudExvZ2ljYWxSaWdodCwgbV9saW5lLnRyYWls
aW5nVHJpbW1hYmxlV2lkdGgoKSwgbGluZUlzQ29uc2lkZXJlZEVtcHR5IH0pOworICAgIGlmIChi
cmVha2luZ0NvbnRleHQuaXNBdEJyZWFraW5nT3Bwb3J0dW5pdHkpCisgICAgICAgIGNvbW1pdFBl
bmRpbmdDb250ZW50KCk7CisKKyAgICAvLyBDb250ZW50IGRvZXMgbm90IGZpdCB0aGUgY3VycmVu
dCBsaW5lLgorICAgIGlmIChicmVha2luZ0NvbnRleHQuYnJlYWtpbmdCZWhhdmlvciA9PSBMaW5l
QnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6V3JhcCkKKyAgICAgICAgcmV0dXJuIElzRW5kT2ZM
aW5lOjpZZXM7CisKKyAgICAvLyBQYXJ0aWFsIGNvbnRlbnQgc3RheXMgb24gdGhlIGN1cnJlbnQg
bGluZS4KKyAgICBpZiAoYnJlYWtpbmdDb250ZXh0LmJyZWFraW5nQmVoYXZpb3IgPT0gTGluZUJy
ZWFrZXI6OkJyZWFraW5nQmVoYXZpb3I6OlNwbGl0KSB7CisgICAgICAgIEFTU0VSVChpbmxpbmVJ
dGVtLmlzVGV4dCgpKTsKKworICAgICAgICBBU1NFUlRfTk9UX0lNUExFTUVOVEVEX1lFVCgpOwor
ICAgICAgICByZXR1cm4gSXNFbmRPZkxpbmU6OlllczsKKyAgICB9CiAKLSAgICAgICAgLy8gUGFy
dGlhbCBjb250ZW50IHN0YXlzIG9uIHRoZSBjdXJyZW50IGxpbmUuIAotICAgICAgICBpZiAoYnJl
YWtpbmdDb250ZXh0LmJyZWFraW5nQmVoYXZpb3IgPT0gTGluZUJyZWFrZXI6OkJyZWFraW5nQmVo
YXZpb3I6OlNwbGl0KSB7Ci0gICAgICAgICAgICBBU1NFUlQoaW5saW5lSXRlbS0+aXNUZXh0KCkp
OworICAgIEFTU0VSVChicmVha2luZ0NvbnRleHQuYnJlYWtpbmdCZWhhdmlvciA9PSBMaW5lQnJl
YWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6S2VlcCk7CisgICAgaWYgKGlubGluZUl0ZW0uaXNGbG9h
dCgpKSB7CisgICAgICAgIGF1dG8mIGZsb2F0Qm94ID0gaW5saW5lSXRlbS5sYXlvdXRCb3goKTsK
KyAgICAgICAgQVNTRVJUKGxheW91dFN0YXRlKCkuaGFzRGlzcGxheUJveChmbG9hdEJveCkpOwor
ICAgICAgICAvLyBTaHJpbmsgYXZhaWxhYmxlIHNwYWNlIGZvciBjdXJyZW50IGxpbmUgYW5kIG1v
dmUgZXhpc3RpbmcgaW5saW5lIHJ1bnMuCisgICAgICAgIGF1dG8gZmxvYXRCb3hXaWR0aCA9IGxh
eW91dFN0YXRlKCkuZGlzcGxheUJveEZvckxheW91dEJveChmbG9hdEJveCkubWFyZ2luQm94V2lk
dGgoKTsKKyAgICAgICAgZmxvYXRCb3guaXNMZWZ0RmxvYXRpbmdQb3NpdGlvbmVkKCkgPyBtX2xp
bmUubW92ZUxvZ2ljYWxMZWZ0KGZsb2F0Qm94V2lkdGgpIDogbV9saW5lLm1vdmVMb2dpY2FsUmln
aHQoZmxvYXRCb3hXaWR0aCk7CisgICAgICAgIG1fZmxvYXRzLmFwcGVuZChtYWtlV2Vha1B0cihp
bmxpbmVJdGVtKSk7CisgICAgICAgICsrbV9jb21taXR0ZWRJbmxpbmVJdGVtQ291bnQ7CisgICAg
ICAgIG1fbGluZUhhc0Zsb2F0Qm94ID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIElzRW5kT2ZMaW5l
OjpObzsKKyAgICB9CiAKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7
Ci0gICAgICAgICAgICByZXR1cm4gY2xvc2UoKTsKLSAgICAgICAgfQorICAgIG1fdW5jb21taXR0
ZWRDb250ZW50LmFkZChpbmxpbmVJdGVtLCBpdGVtTG9naWNhbFdpZHRoKTsKKyAgICBpZiAoYnJl
YWtpbmdDb250ZXh0LmlzQXRCcmVha2luZ09wcG9ydHVuaXR5KQorICAgICAgICBjb21taXRQZW5k
aW5nQ29udGVudCgpOwogCi0gICAgICAgIEFTU0VSVChicmVha2luZ0NvbnRleHQuYnJlYWtpbmdC
ZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6S2VlcCk7Ci0gICAgICAg
IGlmIChpbmxpbmVJdGVtLT5pc0Zsb2F0KCkpIHsKLSAgICAgICAgICAgIGF1dG8mIGZsb2F0Qm94
ID0gaW5saW5lSXRlbS0+bGF5b3V0Qm94KCk7Ci0gICAgICAgICAgICBBU1NFUlQobGF5b3V0U3Rh
dGUoKS5oYXNEaXNwbGF5Qm94KGZsb2F0Qm94KSk7Ci0gICAgICAgICAgICAvLyBTaHJpbmsgYXZh
aWxibGUgc3BhY2UgZm9yIGN1cnJlbnQgbGluZSBhbmQgbW92ZSBleGlzdGluZyBpbmxpbmUgcnVu
cy4KLSAgICAgICAgICAgIGF1dG8gZmxvYXRCb3hXaWR0aCA9IGxheW91dFN0YXRlKCkuZGlzcGxh
eUJveEZvckxheW91dEJveChmbG9hdEJveCkubWFyZ2luQm94V2lkdGgoKTsKLSAgICAgICAgICAg
IGZsb2F0Qm94LmlzTGVmdEZsb2F0aW5nUG9zaXRpb25lZCgpID8gbV9saW5lLm1vdmVMb2dpY2Fs
TGVmdChmbG9hdEJveFdpZHRoKSA6IG1fbGluZS5tb3ZlTG9naWNhbFJpZ2h0KGZsb2F0Qm94V2lk
dGgpOwotICAgICAgICAgICAgbV9mbG9hdHMuYXBwZW5kKG1ha2VXZWFrUHRyKCppbmxpbmVJdGVt
KSk7Ci0gICAgICAgICAgICArK21fY29tbWl0dGVkSW5saW5lSXRlbUNvdW50OwotICAgICAgICAg
ICAgbV9saW5lSGFzRmxvYXRCb3ggPSB0cnVlOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgIH0KKyAgICByZXR1cm4gaW5saW5lSXRlbS5pc0hhcmRMaW5lQnJlYWsoKSA/IElzRW5kT2ZM
aW5lOjpZZXMgOiBJc0VuZE9mTGluZTo6Tm87Cit9CiAKLSAgICAgICAgbV91bmNvbW1pdHRlZENv
bnRlbnQuYWRkKCppbmxpbmVJdGVtLCBpdGVtTG9naWNhbFdpZHRoKTsKLSAgICAgICAgaWYgKGJy
ZWFraW5nQ29udGV4dC5pc0F0QnJlYWtpbmdPcHBvcnR1bml0eSkKLSAgICAgICAgICAgIGNvbW1p
dFBlbmRpbmdDb250ZW50KCk7CitMaW5lQ29udGVudCBMaW5lTGF5b3V0OjpsYXlvdXQoKQorewor
ICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgaW5saW5lIGNvbnRlbnQgYW5kIHBsYWNlIHRoZSBp
bmxpbmUgYm94ZXMgb24gdGhlIGN1cnJlbnQgbGluZS4KKyAgICAvLyBTdGFydCB3aXRoIHRoZSBw
YXJ0aWFsIHRleHQgZnJvbSB0aGUgcHJldmlvdXMgbGluZS4KKyAgICBhdXRvIGZpcnN0SW5saW5l
SXRlbSA9IG1fbGluZUlucHV0LmZpcnN0SW5saW5lSXRlbTsKKyAgICB1bnNpZ25lZCBmaXJzdE5v
blBhcnRpYWxJbmRleCA9IGZpcnN0SW5saW5lSXRlbS5pbmRleDsKKyAgICBpZiAoZmlyc3RJbmxp
bmVJdGVtLnBhcnRpYWxDb250ZXh0KSB7CisgICAgICAgIC8vIEhhbmRsZSBwYXJ0aWFsIGlubGlu
ZSBpdGVtIChzcGxpdCB0ZXh0IGZyb20gdGhlIHByZXZpb3VzIGxpbmUpLgorICAgICAgICBhdXRv
JiBvcmlnaW5hbFRleHRJdGVtID0gbV9saW5lSW5wdXQuaW5saW5lSXRlbXNbZmlyc3RJbmxpbmVJ
dGVtLmluZGV4XTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQob3JpZ2luYWxUZXh0SXRlbS0+aXNU
ZXh0KCkpOworCisgICAgICAgIGF1dG8gdGV4dFJhbmdlID0gKmZpcnN0SW5saW5lSXRlbS5wYXJ0
aWFsQ29udGV4dDsKKyAgICAgICAgYXV0byBwYXJ0aWFsSW5saW5lSXRlbSA9IGRvd25jYXN0PElu
bGluZVRleHRJdGVtPigqb3JpZ2luYWxUZXh0SXRlbSkuc3BsaXQodGV4dFJhbmdlLnN0YXJ0LCB0
ZXh0UmFuZ2UubGVuZ3RoKTsKKyAgICAgICAgaWYgKHBsYWNlSW5saW5lSXRlbShwYXJ0aWFsSW5s
aW5lSXRlbSkgPT0gSXNFbmRPZkxpbmU6OlllcykKKyAgICAgICAgICAgIHJldHVybiBjbG9zZSgp
OworICAgICAgICArK2ZpcnN0Tm9uUGFydGlhbEluZGV4OworICAgIH0KIAotICAgICAgICBpZiAo
aW5saW5lSXRlbS0+aXNIYXJkTGluZUJyZWFrKCkpCisgICAgZm9yIChhdXRvIGlubGluZUl0ZW1J
bmRleCA9IGZpcnN0Tm9uUGFydGlhbEluZGV4OyBpbmxpbmVJdGVtSW5kZXggPCBtX2xpbmVJbnB1
dC5pbmxpbmVJdGVtcy5zaXplKCk7ICsraW5saW5lSXRlbUluZGV4KSB7CisgICAgICAgIGlmIChw
bGFjZUlubGluZUl0ZW0oKm1fbGluZUlucHV0LmlubGluZUl0ZW1zW2lubGluZUl0ZW1JbmRleF0p
ID09IElzRW5kT2ZMaW5lOjpZZXMpCiAgICAgICAgICAgICByZXR1cm4gY2xvc2UoKTsKICAgICB9
CiAgICAgY29tbWl0UGVuZGluZ0NvbnRlbnQoKTsKICAgICByZXR1cm4gY2xvc2UoKTsKIH0KIAot
TGluZUlucHV0OjpMaW5lSW5wdXQoY29uc3QgTGluZTo6SW5pdGlhbENvbnN0cmFpbnRzJiBpbml0
aWFsTGluZUNvbnN0cmFpbnRzLCBMaW5lOjpTa2lwVmVydGljYWxBbGlnbWVudCBza2lwVmVydGlj
YWxBbGlnbWVudCwgSW5saW5lSW5kZXhBbmRTcGxpdFBvc2l0aW9uIGZpcnN0VG9Qcm9jZXNzLCBj
b25zdCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMpCitMaW5lSW5wdXQ6OkxpbmVJbnB1dChjb25z
dCBMaW5lOjpJbml0aWFsQ29uc3RyYWludHMmIGluaXRpYWxMaW5lQ29uc3RyYWludHMsIExpbmU6
OlNraXBWZXJ0aWNhbEFsaWdtZW50IHNraXBWZXJ0aWNhbEFsaWdtZW50LCBJbmRleEFuZFJhbmdl
IGZpcnN0VG9Qcm9jZXNzLCBjb25zdCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMpCiAgICAgOiBp
bml0aWFsQ29uc3RyYWludHMoaW5pdGlhbExpbmVDb25zdHJhaW50cykKICAgICAsIHNraXBWZXJ0
aWNhbEFsaWdtZW50KHNraXBWZXJ0aWNhbEFsaWdtZW50KQogICAgICwgZmlyc3RJbmxpbmVJdGVt
KGZpcnN0VG9Qcm9jZXNzKQpAQCAtMjg1LDcgKzMxMCw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQ6OklubGluZUxheW91dDo6bGF5b3V0KGNvbnN0IElubGluZUl0ZW1zJiBpbmxpbmVJ
dGVtCiAgICAgICAgIGxpbmVJbnB1dC5pbml0aWFsQ29uc3RyYWludHMubG9naWNhbFRvcExlZnQu
c2V0WChsaW5lTG9naWNhbExlZnQpOwogICAgIH07CiAKLSAgICBJbmxpbmVJbmRleEFuZFNwbGl0
UG9zaXRpb24gY3VycmVudElubGluZUl0ZW07CisgICAgSW5kZXhBbmRSYW5nZSBjdXJyZW50SW5s
aW5lSXRlbTsKICAgICB3aGlsZSAoY3VycmVudElubGluZUl0ZW0uaW5kZXggPCBpbmxpbmVJdGVt
cy5zaXplKCkpIHsKICAgICAgICAgYXV0byBsaW5lSW5wdXQgPSBMaW5lSW5wdXQgeyB7IHsgbGlu
ZUxvZ2ljYWxMZWZ0LCBsaW5lTG9naWNhbFRvcCB9LCB3aWR0aENvbnN0cmFpbnQsIFF1aXJrczo6
bGluZUhlaWdodENvbnN0cmFpbnRzKGxheW91dFN0YXRlKCksIG1fZm9ybWF0dGluZ1Jvb3QpIH0s
IExpbmU6OlNraXBWZXJ0aWNhbEFsaWdtZW50OjpObywgY3VycmVudElubGluZUl0ZW0sIGlubGlu
ZUl0ZW1zIH07CiAgICAgICAgIGFwcGx5RmxvYXRDb25zdHJhaW50KGxpbmVJbnB1dCk7CkBAIC0z
MDYsNyArMzMxLDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0
OjpsYXlvdXQoY29uc3QgSW5saW5lSXRlbXMmIGlubGluZUl0ZW0KIExheW91dFVuaXQgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OklubGluZUxheW91dDo6Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aChj
b25zdCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMsIExheW91dFVuaXQgd2lkdGhDb25zdHJhaW50
KSBjb25zdAogewogICAgIExheW91dFVuaXQgbWF4aW11bUxpbmVXaWR0aDsKLSAgICBJbmxpbmVJ
bmRleEFuZFNwbGl0UG9zaXRpb24gY3VycmVudElubGluZUl0ZW07CisgICAgSW5kZXhBbmRSYW5n
ZSBjdXJyZW50SW5saW5lSXRlbTsKICAgICB3aGlsZSAoY3VycmVudElubGluZUl0ZW0uaW5kZXgg
PCBpbmxpbmVJdGVtcy5zaXplKCkpIHsKICAgICAgICAgYXV0byBsaW5lQ29udGVudCA9IExpbmVM
YXlvdXQobGF5b3V0U3RhdGUoKSwgeyB7IHsgfSwgd2lkdGhDb25zdHJhaW50LCBRdWlya3M6Omxp
bmVIZWlnaHRDb25zdHJhaW50cyhsYXlvdXRTdGF0ZSgpLCBtX2Zvcm1hdHRpbmdSb290KSB9LCBM
aW5lOjpTa2lwVmVydGljYWxBbGlnbWVudDo6WWVzLCBjdXJyZW50SW5saW5lSXRlbSwgaW5saW5l
SXRlbXMgfSkubGF5b3V0KCk7CiAgICAgICAgIGN1cnJlbnRJbmxpbmVJdGVtID0geyBsaW5lQ29u
dGVudC5sYXN0Q29tbWl0dGVkLT5pbmRleCArIDEsIFdURjo6bnVsbG9wdCB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0
ZW0uY3BwCmluZGV4IGY5ZWVmNDc4MmFmNzgzOTVjYzM0MmU0Mzg4YmQ3NmU1MjdkOWY4MTguLjcz
Yjc2ZThjZjE3YWM4Y2U5ODVjMzcyYzNhNDJlN2VmNTYxOTZiMjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5j
cHAKQEAgLTEyNyw2ICsxMjcsMTMgQEAgSW5saW5lVGV4dEl0ZW06OklubGluZVRleHRJdGVtKGNv
bnN0IElubGluZUJveCYgaW5saW5lQm94LCB1bnNpZ25lZCBzdGFydCwgdW5zaWcKIHsKIH0KIAor
SW5saW5lVGV4dEl0ZW0gSW5saW5lVGV4dEl0ZW06OnNwbGl0KHVuc2lnbmVkIHNwbGl0UG9zaXRp
b24sIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChzcGxpdFBvc2l0aW9u
ID49IHRoaXMtPnN0YXJ0KCkpOworICAgIFJFTEVBU0VfQVNTRVJUKHNwbGl0UG9zaXRpb24gKyBs
ZW5ndGggPD0gZW5kKCkpOworICAgIHJldHVybiB7IGRvd25jYXN0PElubGluZUJveD4obGF5b3V0
Qm94KCkpLCBzcGxpdFBvc2l0aW9uLCBsZW5ndGgsIGlzV2hpdGVzcGFjZSgpLCBpc0NvbGxhcHNl
ZCgpIH07Cit9CisKIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmgKaW5kZXggYzdkOGYzNGE0YjYw
YzFmOTI2NDM4NWNmM2YwNzAyZGZjNWE1MzE0YS4uODdiZDljMmQzNDEyZDQ1NDdmM2VmOTVlZTRm
NGM0ZmI1NzY2NDZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5oCkBAIC00Niw2ICs0Niw4IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNXaGl0ZXNwYWNlOyB9
CiAgICAgYm9vbCBpc0NvbGxhcHNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb2xsYXBzZWQ7IH0K
IAorICAgIElubGluZVRleHRJdGVtIHNwbGl0KHVuc2lnbmVkIHNwbGl0UG9zaXRpb24sIHVuc2ln
bmVkIGxlbmd0aCk7CisKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9zdGFydCB7IDAgfTsKICAg
ICB1bnNpZ25lZCBtX2xlbmd0aCB7IDAgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>