<?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>198366</bug_id>
          
          <creation_ts>2019-05-29 21:47:24 -0700</creation_ts>
          <short_desc>[LFC[IFC] Do not reuse the same Line object.</short_desc>
          <delta_ts>2019-05-31 06:43:45 -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>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>1540244</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-05-29 21:47:24 -0700</bug_when>
    <thetext>while laying out the lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540245</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-29 21:47:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/51250279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540246</commentid>
    <comment_count>2</comment_count>
      <attachid>370920</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-05-29 21:52:26 -0700</bug_when>
    <thetext>Created attachment 370920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540280</commentid>
    <comment_count>3</comment_count>
      <attachid>370920</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-05-30 05:08:16 -0700</bug_when>
    <thetext>Comment on attachment 370920
Patch

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

&gt; Source/WebCore/layout/inlineformatting/InlineLine.h:38
&gt;  class Line {
&gt;  public:

You should WTF_MAKE_FAST_ALLOCATED here since this is now heap allocated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540703</commentid>
    <comment_count>4</comment_count>
      <attachid>371053</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-05-31 06:13:27 -0700</bug_when>
    <thetext>Created attachment 371053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540708</commentid>
    <comment_count>5</comment_count>
      <attachid>371053</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-31 06:43:43 -0700</bug_when>
    <thetext>Comment on attachment 371053
Patch

Clearing flags on attachment: 371053

Committed r245962: &lt;https://trac.webkit.org/changeset/245962&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540709</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-31 06:43:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370920</attachid>
            <date>2019-05-29 21:52:26 -0700</date>
            <delta_ts>2019-05-31 06:13:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198366-20190529215226.patch</filename>
            <type>text/plain</type>
            <size>14172</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBkMWQwOGQ4MzA2ZjA3
MDZiMDYwNTU5NjcwZTNkNGE3Y2E3Mzk4Zi4uNTNjNGI2M2E0NTY2YjcyZjgzZjk4ZTk3ZTE2M2Ew
NjBlM2IyNWNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTA1LTI5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ1tJRkNdIERvIG5vdCBy
ZXVzZSB0aGUgc2FtZSBMaW5lIG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5ODM2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTEyNTAy
Nzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgY29uc3RydWN0aW5nIExpbmUgaW5zaWRlIGNyZWF0ZUlu
bGluZVJ1bnNGb3JMaW5lIGFuZCByZXR1cm4gTGluZTo6Q29udGVudC4gCisKKyAgICAgICAgKiBs
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAg
ICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxh
eW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250
ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OmxheW91dCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5l
TGF5b3V0Ojpwcm9jZXNzSW5saW5lUnVucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0Ojppbml0aWFsaXplTGluZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
TGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkxpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjptX2xpbmVMb2dpY2FsV2lkdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6
Om1vdmVMb2dpY2FsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVu
ZE5vbkJyZWFrYWJsZVNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YXBw
ZW5kVGV4dENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRO
b25SZXBsYWNlZElubGluZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFw
cGVuZEhhcmRMaW5lQnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpyZXNl
dCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpoYXNDb250ZW50IGNvbnN0KToK
KwogMjAxOS0wNS0yOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtMRkNdW0lGQ10gTW92ZSBmaW5hbCBydW5zIHRvIGEgZGVkaWNhdGVkIGNsYXNzIChMaW5lOjpD
b250ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggOTM0YTcwMGEwMjQw
YzJiY2Q3MzBjYjVlNDg4OGU2YzJkNGNkZDAyZS4uY2MwMzhhYzU1MTMxNzIzODgzYTVlNjZhYWE0
ZDAyNGMwZTc2N2Q3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiRGlzcGxheUJveC5oIgogI2luY2x1ZGUgIkZvcm1hdHRpbmdD
b250ZXh0LmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAi
SW5saW5lTGluZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzcsNyArMzgsNiBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgRmxv
YXRpbmdTdGF0ZTsKIGNsYXNzIElubGluZUNvbnRhaW5lcjsKLWNsYXNzIExpbmU7CiAKIC8vIFRo
aXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgbGF5b3V0IGxvZ2ljIGZvciBpbmxpbmUgZm9ybWF0dGlu
ZyBjb250ZXh0cy4KIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9DU1MyMi92aXN1cmVuLmh0bWwj
aW5saW5lLWZvcm1hdHRpbmcKQEAgLTU4LDkgKzU4LDkgQEAgcHJpdmF0ZToKIAogICAgIHByaXZh
dGU6CiAgICAgICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Zm9ybWF0dGluZ0NvbnRleHQubGF5b3V0U3RhdGUoKTsgfQotICAgICAgICB2b2lkIGluaXRpYWxp
emVMaW5lKExpbmUmLCBMYXlvdXRVbml0IGxpbmVMb2dpY2FsVG9wLCBMYXlvdXRVbml0IHdpZHRo
Q29uc3RyYWludCkgY29uc3Q7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxMaW5lPiBjcmVhdGVM
aW5lKExheW91dFVuaXQgbGluZUxvZ2ljYWxUb3AsIExheW91dFVuaXQgd2lkdGhDb25zdHJhaW50
KSBjb25zdDsKICAgICAgICAgdW5zaWduZWQgY3JlYXRlSW5saW5lUnVuc0ZvckxpbmUoTGluZSYs
IHVuc2lnbmVkIGZpcnN0SW5saW5lSXRlbUluZGV4KSBjb25zdDsKLSAgICAgICAgdm9pZCBwcm9j
ZXNzSW5saW5lUnVucyhMaW5lJikgY29uc3Q7CisgICAgICAgIHZvaWQgcHJvY2Vzc0lubGluZVJ1
bnMoY29uc3QgTGluZTo6Q29udGVudCYsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpIGNvbnN0
OwogICAgICAgICB2b2lkIGNvbW1pdElubGluZUl0ZW1Ub0xpbmUoTGluZSYsIGNvbnN0IElubGlu
ZUl0ZW0mKSBjb25zdDsKICAgICAgICAgdm9pZCBoYW5kbGVGbG9hdChMaW5lJiwgY29uc3QgRmxv
YXRpbmdDb250ZXh0JiwgY29uc3QgSW5saW5lSXRlbSYgZmxvYXRCb3gpIGNvbnN0OwogICAgICAg
ICB2b2lkIGFsaWduUnVucyhUZXh0QWxpZ25Nb2RlLCB1bnNpZ25lZCBmaXJzdFJ1bkluZGV4LCBM
YXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxh
eW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwCmluZGV4IGEyMTEzMTE1ZWEyNjk0YjdjZDBi
MmUwMWRlODc1OWVlZTM1OWVkMDcuLjk5OGZlZGE5NDlkNDY2YjBiYmRhOTlhZDdmZWY3NzFmMmFi
ZmYyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5
b3V0LmNwcApAQCAtNzUsNyArNzUsNyBAQCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxh
eW91dDo6TGluZUxheW91dChjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaQogewogfQog
Ci12b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0Ojppbml0aWFsaXplTGlu
ZShMaW5lJiBsaW5lLCBMYXlvdXRVbml0IGxpbmVMb2dpY2FsVG9wLCBMYXlvdXRVbml0IGF2YWls
YWJsZVdpZHRoKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPExpbmU+IElubGluZUZvcm1hdHRpbmdD
b250ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVMaW5lKExheW91dFVuaXQgbGluZUxvZ2ljYWxUb3As
IExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpIGNvbnN0CiB7CiAgICAgYXV0byYgZm9ybWF0dGlu
Z1Jvb3REaXNwbGF5Qm94ID0gbGF5b3V0U3RhdGUoKS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KG1f
Zm9ybWF0dGluZ1Jvb3QpOwogICAgIGF1dG8gbGluZUxvZ2ljYWxMZWZ0ID0gZm9ybWF0dGluZ1Jv
b3REaXNwbGF5Qm94LmNvbnRlbnRCb3hMZWZ0KCk7CkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6aW5pdGlhbGl6ZUxpbmUoTGluZSYg
bGluZSwgTGF5b3V0VW5pdAogICAgIGF1dG8mIGZvcm1hdHRpbmdSb290U3R5bGUgPSBtX2Zvcm1h
dHRpbmdSb290LnN0eWxlKCk7CiAgICAgYXV0byBtaW1pbXVtTGluZUhlaWdodCA9IGZvcm1hdHRp
bmdSb290U3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCk7CiAgICAgYXV0byBiYXNlbGluZU9mZnNl
dCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3JtYXR0aW5nUm9vdFN0eWxlLmZvbnRNZXRy
aWNzKCksIG1pbWltdW1MaW5lSGVpZ2h0KS5oZWlnaHQ7Ci0gICAgbGluZS5yZXNldCh7IGxpbmVM
b2dpY2FsTGVmdCwgbGluZUxvZ2ljYWxUb3AgfSwgYXZhaWxhYmxlV2lkdGgsIG1pbWltdW1MaW5l
SGVpZ2h0LCBiYXNlbGluZU9mZnNldCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TGlu
ZT4obGF5b3V0U3RhdGUoKSwgTGF5b3V0UG9pbnQgeyBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dp
Y2FsVG9wIH0sIGF2YWlsYWJsZVdpZHRoLCBtaW1pbXVtTGluZUhlaWdodCwgYmFzZWxpbmVPZmZz
ZXQpOwogfQogCiB1bnNpZ25lZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6
Y3JlYXRlSW5saW5lUnVuc0ZvckxpbmUoTGluZSYgbGluZSwgdW5zaWduZWQgc3RhcnRJbmxpbmVJ
dGVtSW5kZXgpIGNvbnN0CkBAIC0xNzIsMTcgKzE3MiwxNyBAQCB2b2lkIElubGluZUZvcm1hdHRp
bmdDb250ZXh0OjpMaW5lTGF5b3V0OjpsYXlvdXQoTGF5b3V0VW5pdCB3aWR0aENvbnN0cmFpbnQp
IGNvbgogewogICAgIEFTU0VSVCghbV9mb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKS5pc0Vt
cHR5KCkpOwogCi0gICAgTGluZSBsaW5lKGxheW91dFN0YXRlKCkpOwotICAgIGluaXRpYWxpemVM
aW5lKGxpbmUsIGxheW91dFN0YXRlKCkuZGlzcGxheUJveEZvckxheW91dEJveChtX2Zvcm1hdHRp
bmdSb290KS5jb250ZW50Qm94VG9wKCksIHdpZHRoQ29uc3RyYWludCk7Ci0KICAgICB1bnNpZ25l
ZCBzdGFydElubGluZUl0ZW1JbmRleCA9IDA7CisgICAgYXV0byBsaW5lTG9naWNhbFRvcCA9IGxh
eW91dFN0YXRlKCkuZGlzcGxheUJveEZvckxheW91dEJveChtX2Zvcm1hdHRpbmdSb290KS5jb250
ZW50Qm94VG9wKCk7CiAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgYXV0byBuZXh0SW5saW5l
SXRlbUluZGV4ID0gY3JlYXRlSW5saW5lUnVuc0ZvckxpbmUobGluZSwgc3RhcnRJbmxpbmVJdGVt
SW5kZXgpOwotICAgICAgICBwcm9jZXNzSW5saW5lUnVucyhsaW5lKTsKKyAgICAgICAgYXV0byBs
aW5lID0gY3JlYXRlTGluZShsaW5lTG9naWNhbFRvcCwgd2lkdGhDb25zdHJhaW50KTsKKyAgICAg
ICAgYXV0byBuZXh0SW5saW5lSXRlbUluZGV4ID0gY3JlYXRlSW5saW5lUnVuc0ZvckxpbmUoKmxp
bmUsIHN0YXJ0SW5saW5lSXRlbUluZGV4KTsKKyAgICAgICAgYXV0byBsaW5lQ29udGVudCA9IGxp
bmUtPmNsb3NlKCk7CisgICAgICAgIHByb2Nlc3NJbmxpbmVSdW5zKCpsaW5lQ29udGVudCwgbGlu
ZS0+YXZhaWxhYmxlV2lkdGgoKSk7CiAgICAgICAgIGlmIChuZXh0SW5saW5lSXRlbUluZGV4ID09
IG1fZm9ybWF0dGluZ1N0YXRlLmlubGluZUl0ZW1zKCkuc2l6ZSgpKQogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIHN0YXJ0SW5saW5lSXRlbUluZGV4ID0gbmV4dElubGluZUl0ZW1JbmRleDsK
LSAgICAgICAgaW5pdGlhbGl6ZUxpbmUobGluZSwgbGluZS5sb2dpY2FsQm90dG9tKCksIHdpZHRo
Q29uc3RyYWludCk7CisgICAgICAgIGxpbmVMb2dpY2FsVG9wID0gbGluZUNvbnRlbnQtPmxvZ2lj
YWxCb3R0b20oKTsKICAgICB9CiB9CiAKQEAgLTIxNCw5ICsyMTQsOCBAQCBMYXlvdXRVbml0IElu
bGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRo
KExheW91dFVuaQogICAgIHJldHVybiBzdGQ6Om1heChtYXhpbXVtTGluZVdpZHRoLCBsaW5lTG9n
aWNhbFJpZ2h0IC0gdHJpbW1hYmxlVHJhaWxpbmdXaWR0aCk7CiB9CiAKLXZvaWQgSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OnByb2Nlc3NJbmxpbmVSdW5zKExpbmUmIGxpbmUp
IGNvbnN0Cit2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0Ojpwcm9jZXNz
SW5saW5lUnVucyhjb25zdCBMaW5lOjpDb250ZW50JiBsaW5lQ29udGVudCwgTGF5b3V0VW5pdCBh
dmFpbGFibGVXaWR0aCkgY29uc3QKIHsKLSAgICBhdXRvJiBsaW5lQ29udGVudCA9IGxpbmUuY2xv
c2UoKTsKICAgICBpZiAobGluZUNvbnRlbnQuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFNwZWMg
dGVsbHMgdXMgdG8gY3JlYXRlIGEgemVybyBoZWlnaHQsIGVtcHR5IGxpbmUgYm94LgogICAgICAg
ICBhdXRvIGxpbmVCb3ggPSBEaXNwbGF5OjpSZWN0IHsgbGluZUNvbnRlbnQubG9naWNhbFRvcCgp
LCBsaW5lQ29udGVudC5sb2dpY2FsTGVmdCgpLCAwICwgMCB9OwpAQCAtMzE0LDcgKzMxMyw3IEBA
IHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OnByb2Nlc3NJbmxpbmVS
dW5zKExpbmUmIGxpbmUpIGNvbnN0CiAgICAgLy8gRklYTUUgbGluZWJveCBuZWVkcyB0byBiZSBh
anVzdGVkIGFmdGVyIGNvbnRlbnQgYWxpZ25tZW50LgogICAgIG1fZm9ybWF0dGluZ1N0YXRlLmFk
ZExpbmVCb3goeyBsaW5lQm94IH0pOwogICAgIGlmICghbGluZUNvbnRlbnQuaXNWaXN1YWxseUVt
cHR5KCkpCi0gICAgICAgIGFsaWduUnVucyhtX2Zvcm1hdHRpbmdSb290LnN0eWxlKCkudGV4dEFs
aWduKCksIHByZXZpb3VzTGluZUxhc3RSdW5JbmRleC52YWx1ZU9yKC0xKSArIDEsIGxpbmUuYXZh
aWxhYmxlV2lkdGgoKSk7CisgICAgICAgIGFsaWduUnVucyhtX2Zvcm1hdHRpbmdSb290LnN0eWxl
KCkudGV4dEFsaWduKCksIHByZXZpb3VzTGluZUxhc3RSdW5JbmRleC52YWx1ZU9yKC0xKSArIDEs
IGF2YWlsYWJsZVdpZHRoKTsKIH0KIAogdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGlu
ZUxheW91dDo6aGFuZGxlRmxvYXQoTGluZSYgbGluZSwgY29uc3QgRmxvYXRpbmdDb250ZXh0JiBm
bG9hdGluZ0NvbnRleHQsIGNvbnN0IElubGluZUl0ZW0mIGZsb2F0SXRlbSkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5j
cHAKaW5kZXggMGRkMjk3ZGYyZDczMWZhMzFkN2Q3MWE3YzlkNmM2YzM3MWJjMGM3NC4uZjhlMmE4
N2EyYTk0MDQ2NWVmZmVkOTM5NTNiZjU2ZTkxYzZkOWY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHAKQEAgLTUxLDM0
ICs1MSwyNSBAQCBMaW5lOjpDb250ZW50OjpSdW46OlJ1bihEaXNwbGF5OjpSdW4gaW5saW5lUnVu
LCBjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBibwogewogfQogCi1MaW5lOjpMaW5lKGNv
bnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkKK0xpbmU6OkxpbmUoY29uc3QgTGF5b3V0U3Rh
dGUmIGxheW91dFN0YXRlLCBjb25zdCBMYXlvdXRQb2ludCYgdG9wTGVmdCwgTGF5b3V0VW5pdCBh
dmFpbGFibGVXaWR0aCwgTGF5b3V0VW5pdCBtaW5pbXVtSGVpZ2h0LCBMYXlvdXRVbml0IGJhc2Vs
aW5lT2Zmc2V0KQogICAgIDogbV9sYXlvdXRTdGF0ZShsYXlvdXRTdGF0ZSkKKyAgICAsIG1fY29u
dGVudChzdGQ6Om1ha2VfdW5pcXVlPExpbmU6OkNvbnRlbnQ+KCkpCisgICAgLCBtX2xvZ2ljYWxU
b3BMZWZ0KHRvcExlZnQpCisgICAgLCBtX2xvZ2ljYWxIZWlnaHQoeyBiYXNlbGluZU9mZnNldCwg
bWluaW11bUhlaWdodCAtIGJhc2VsaW5lT2Zmc2V0IH0pCisgICAgLCBtX2xpbmVMb2dpY2FsV2lk
dGgoYXZhaWxhYmxlV2lkdGgpCiB7CiB9CiAKLXZvaWQgTGluZTo6cmVzZXQoY29uc3QgTGF5b3V0
UG9pbnQmIHRvcExlZnQsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIExheW91dFVuaXQgbWlu
aW11bUhlaWdodCwgTGF5b3V0VW5pdCBiYXNlbGluZU9mZnNldCkKLXsKLSAgICBtX2xvZ2ljYWxU
b3BMZWZ0ID0gdG9wTGVmdDsKLSAgICBtX2xpbmVMb2dpY2FsV2lkdGggPSBhdmFpbGFibGVXaWR0
aDsKLSAgICBtX2xvZ2ljYWxIZWlnaHQgPSB7IGJhc2VsaW5lT2Zmc2V0LCBtaW5pbXVtSGVpZ2h0
IC0gYmFzZWxpbmVPZmZzZXQgfTsKLQotICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCA9IHsgfTsK
LQotICAgIG1fY29udGVudCA9IHsgfTsKLQotICAgIG1fdHJpbW1hYmxlQ29udGVudC5jbGVhcigp
OwotfQotCi1jb25zdCBMaW5lOjpDb250ZW50JiBMaW5lOjpjbG9zZSgpCitzdGQ6OnVuaXF1ZV9w
dHI8TGluZTo6Q29udGVudD4gTGluZTo6Y2xvc2UoKQogewogICAgIHJlbW92ZVRyYWlsaW5nVHJp
bW1hYmxlQ29udGVudCgpOwogICAgIC8vIENvbnZlcnQgaW5saW5lIHJ1biBnZW9tZXRyeSBmcm9t
IHJlbGF0aXZlIHRvIHRoZSBiYXNlbGluZSB0byByZWxhdGl2ZSB0byBsb2dpY2FsIHRvcC4KLSAg
ICBmb3IgKGF1dG8mIHJ1biA6IG1fY29udGVudC5ydW5zKCkpIHsKKyAgICBmb3IgKGF1dG8mIHJ1
biA6IG1fY29udGVudC0+cnVucygpKSB7CiAgICAgICAgIGF1dG8gYWRqdXN0ZWRMb2dpY2FsVG9w
ID0gcnVuLT5pbmxpbmVSdW4ubG9naWNhbFRvcCgpICsgbV9sb2dpY2FsSGVpZ2h0LmhlaWdodCAr
IG1fbG9naWNhbFRvcExlZnQueSgpOwogICAgICAgICBydW4tPmlubGluZVJ1bi5zZXRMb2dpY2Fs
VG9wKGFkanVzdGVkTG9naWNhbFRvcCk7CiAgICAgfQotICAgIG1fY29udGVudC5zZXRMb2dpY2Fs
UmVjdCh7IGxvZ2ljYWxUb3AoKSwgbG9naWNhbExlZnQoKSwgY29udGVudExvZ2ljYWxXaWR0aCgp
LCBsb2dpY2FsSGVpZ2h0KCkgfSk7Ci0gICAgcmV0dXJuIG1fY29udGVudDsKKyAgICBtX2NvbnRl
bnQtPnNldExvZ2ljYWxSZWN0KHsgbG9naWNhbFRvcCgpLCBsb2dpY2FsTGVmdCgpLCBjb250ZW50
TG9naWNhbFdpZHRoKCksIGxvZ2ljYWxIZWlnaHQoKSB9KTsKKyAgICByZXR1cm4gV1RGTW92ZSht
X2NvbnRlbnQpOwogfQogCiB2b2lkIExpbmU6OnJlbW92ZVRyYWlsaW5nVHJpbW1hYmxlQ29udGVu
dCgpCkBAIC0xMDAsNyArOTEsNyBAQCB2b2lkIExpbmU6Om1vdmVMb2dpY2FsTGVmdChMYXlvdXRV
bml0IGRlbHRhKQogICAgIC8vIFNocmluayB0aGUgbGluZSBhbmQgbW92ZSB0aGUgaXRlbXMuCiAg
ICAgbV9sb2dpY2FsVG9wTGVmdC5tb3ZlKGRlbHRhLCAwKTsKICAgICBtX2xpbmVMb2dpY2FsV2lk
dGggLT0gZGVsdGE7Ci0gICAgZm9yIChhdXRvJiBydW4gOiBtX2NvbnRlbnQucnVucygpKQorICAg
IGZvciAoYXV0byYgcnVuIDogbV9jb250ZW50LT5ydW5zKCkpCiAgICAgICAgIHJ1bi0+aW5saW5l
UnVuLm1vdmVIb3Jpem9udGFsbHkoZGVsdGEpOwogfQogCkBAIC0xMjAsNyArMTExLDcgQEAgTGF5
b3V0VW5pdCBMaW5lOjp0cmFpbGluZ1RyaW1tYWJsZVdpZHRoKCkgY29uc3QKIAogdm9pZCBMaW5l
OjphcHBlbmROb25CcmVha2FibGVTcGFjZShjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBj
b25zdCBEaXNwbGF5OjpSZWN0JiBsb2dpY2FsUmVjdCkKIHsKLSAgICBtX2NvbnRlbnQucnVucygp
LmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPENvbnRlbnQ6OlJ1bj4oRGlzcGxheTo6UnVuIHsgbG9n
aWNhbFJlY3QgfSwgaW5saW5lSXRlbSwgZmFsc2UsIGZhbHNlKSk7CisgICAgbV9jb250ZW50LT5y
dW5zKCkuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8Q29udGVudDo6UnVuPihEaXNwbGF5OjpSdW4g
eyBsb2dpY2FsUmVjdCB9LCBpbmxpbmVJdGVtLCBmYWxzZSwgZmFsc2UpKTsKICAgICBtX2NvbnRl
bnRMb2dpY2FsV2lkdGggKz0gaW5saW5lSXRlbS53aWR0aCgpOwogfQogCkBAIC0xNjUsNyArMTU2
LDcgQEAgdm9pZCBMaW5lOjphcHBlbmRUZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0SXRlbSYg
aW5saW5lSXRlbSwgTGF5b3V0U2l6ZSBydW5TaXoKICAgICAgICAgaWYgKCFpc1RyaW1tYWJsZSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgLy8gTGVhZGluZyB3aGl0ZXNwYWNl
LgotICAgICAgICBhdXRvJiBydW5zID0gbV9jb250ZW50LnJ1bnMoKTsKKyAgICAgICAgYXV0byYg
cnVucyA9IG1fY29udGVudC0+cnVucygpOwogICAgICAgICBpZiAocnVucy5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGxhc3QgaXRl
bSBpcyB0cmltbWFibGUgYXMgd2VsbC4KQEAgLTE5MSw3ICsxODIsNyBAQCB2b2lkIExpbmU6OmFw
cGVuZFRleHRDb250ZW50KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRT
aXplIHJ1blNpegogICAgIGlmIChpc1RyaW1tYWJsZSkKICAgICAgICAgbV90cmltbWFibGVDb250
ZW50LmFkZChsaW5lSXRlbS5nZXQoKSk7CiAKLSAgICBtX2NvbnRlbnQucnVucygpLmFwcGVuZChX
VEZNb3ZlKGxpbmVJdGVtKSk7CisgICAgbV9jb250ZW50LT5ydW5zKCkuYXBwZW5kKFdURk1vdmUo
bGluZUl0ZW0pKTsKICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggKz0gaXNDb21wbGV0ZWx5Q29s
bGFwc2VkID8gTGF5b3V0VW5pdCgpIDogcnVuU2l6ZS53aWR0aCgpOwogfQogCkBAIC0yMTksNyAr
MjEwLDcgQEAgdm9pZCBMaW5lOjphcHBlbmROb25SZXBsYWNlZElubGluZUJveChjb25zdCBJbmxp
bmVJdGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRTaXplIHIKICAgICBhdXRvIGhvcml6b250YWxNYXJn
aW4gPSBkaXNwbGF5Qm94Lmhvcml6b250YWxNYXJnaW4oKTsKICAgICBhdXRvIGxvZ2ljYWxSZWN0
ID0gRGlzcGxheTo6UmVjdCB7IGxvZ2ljYWxUb3AsIGNvbnRlbnRMb2dpY2FsUmlnaHQoKSArIGhv
cml6b250YWxNYXJnaW4uc3RhcnQsIHJ1blNpemUud2lkdGgoKSwgcnVuU2l6ZS5oZWlnaHQoKSB9
OwogCi0gICAgbV9jb250ZW50LnJ1bnMoKS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxDb250ZW50
OjpSdW4+KERpc3BsYXk6OlJ1biB7IGxvZ2ljYWxSZWN0IH0sIGlubGluZUl0ZW0sIGZhbHNlLCBm
YWxzZSkpOworICAgIG1fY29udGVudC0+cnVucygpLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPENv
bnRlbnQ6OlJ1bj4oRGlzcGxheTo6UnVuIHsgbG9naWNhbFJlY3QgfSwgaW5saW5lSXRlbSwgZmFs
c2UsIGZhbHNlKSk7CiAgICAgbV9jb250ZW50TG9naWNhbFdpZHRoICs9IChydW5TaXplLndpZHRo
KCkgKyBob3Jpem9udGFsTWFyZ2luLnN0YXJ0ICsgaG9yaXpvbnRhbE1hcmdpbi5lbmQpOwogICAg
IG1fdHJpbW1hYmxlQ29udGVudC5jbGVhcigpOwogfQpAQCAtMjM0LDcgKzIyNSw3IEBAIHZvaWQg
TGluZTo6YXBwZW5kSGFyZExpbmVCcmVhayhjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtKQog
ewogICAgIGF1dG8gYXNjZW50ID0gaW5saW5lSXRlbS5sYXlvdXRCb3goKS5zdHlsZSgpLmZvbnRN
ZXRyaWNzKCkuYXNjZW50KCk7CiAgICAgYXV0byBsb2dpY2FsUmVjdCA9IERpc3BsYXk6OlJlY3Qg
eyAtYXNjZW50LCBjb250ZW50TG9naWNhbFJpZ2h0KCksIHsgfSwgbG9naWNhbEhlaWdodCgpIH07
Ci0gICAgbV9jb250ZW50LnJ1bnMoKS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxDb250ZW50OjpS
dW4+KERpc3BsYXk6OlJ1biB7IGxvZ2ljYWxSZWN0IH0sIGlubGluZUl0ZW0sIGZhbHNlLCBmYWxz
ZSkpOworICAgIG1fY29udGVudC0+cnVucygpLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPENvbnRl
bnQ6OlJ1bj4oRGlzcGxheTo6UnVuIHsgbG9naWNhbFJlY3QgfSwgaW5saW5lSXRlbSwgZmFsc2Us
IGZhbHNlKSk7CiB9CiAKIExpbmU6OlVzZWRIZWlnaHRBbmREZXB0aCBMaW5lOjpoYWxmTGVhZGlu
Z01ldHJpY3MoY29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzLCBMYXlvdXRVbml0IGxpbmVM
b2dpY2FsSGVpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lTGluZS5oCmluZGV4IGI5Y2Y5ZDk1NDU1NjdmZjVjOTMwZTFhM2FjYzg0NDYz
ZDRiNDRiYTkuLjEwNzUyNjBhOTFhNWJjNTI2MDA2YmQ5YWZjZTY5MmUzMGFiOTQ3NDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5l
LmgKQEAgLTI5LDE1ICsyOSwxNCBAQAogCiAjaW5jbHVkZSAiRGlzcGxheVJ1bi5oIgogI2luY2x1
ZGUgIklubGluZUl0ZW0uaCIKKyNpbmNsdWRlICJJbmxpbmVUZXh0SXRlbS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgTGluZSB7CiBwdWJsaWM6
Ci0gICAgTGluZShjb25zdCBMYXlvdXRTdGF0ZSYpOwotCi0gICAgdm9pZCByZXNldChjb25zdCBM
YXlvdXRQb2ludCYgdG9wTGVmdCwgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCwgTGF5b3V0VW5p
dCBtaW5pbXVtTGluZUhlaWdodCwgTGF5b3V0VW5pdCBiYXNlbGluZU9mZnNldCk7CisgICAgTGlu
ZShjb25zdCBMYXlvdXRTdGF0ZSYsIGNvbnN0IExheW91dFBvaW50JiB0b3BMZWZ0LCBMYXlvdXRV
bml0IGF2YWlsYWJsZVdpZHRoLCBMYXlvdXRVbml0IG1pbmltdW1MaW5lSGVpZ2h0LCBMYXlvdXRV
bml0IGJhc2VsaW5lT2Zmc2V0KTsKIAogICAgIGNsYXNzIENvbnRlbnQgewogICAgIHB1YmxpYzoK
QEAgLTcyLDcgKzcxLDcgQEAgcHVibGljOgogICAgICAgICBEaXNwbGF5OjpSZWN0IG1fbG9naWNh
bFJlY3Q7CiAgICAgICAgIFJ1bnMgbV9ydW5zOwogICAgIH07Ci0gICAgY29uc3QgQ29udGVudCYg
Y2xvc2UoKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudD4gY2xvc2UoKTsKIAogICAgIHZv
aWQgYXBwZW5kVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBMYXlvdXRTaXplKTsK
ICAgICB2b2lkIGFwcGVuZE5vblJlcGxhY2VkSW5saW5lQm94KGNvbnN0IElubGluZUl0ZW0mLCBM
YXlvdXRTaXplKTsKQEAgLTgxLDcgKzgwLDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kSW5s
aW5lQ29udGFpbmVyRW5kKGNvbnN0IElubGluZUl0ZW0mKTsKICAgICB2b2lkIGFwcGVuZEhhcmRM
aW5lQnJlYWsoY29uc3QgSW5saW5lSXRlbSYpOwogCi0gICAgYm9vbCBoYXNDb250ZW50KCkgY29u
c3QgeyByZXR1cm4gIW1fY29udGVudC5pc1Zpc3VhbGx5RW1wdHkoKTsgfQorICAgIGJvb2wgaGFz
Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuICFtX2NvbnRlbnQtPmlzVmlzdWFsbHlFbXB0eSgpOyB9
CiAKICAgICBMYXlvdXRVbml0IHRyYWlsaW5nVHJpbW1hYmxlV2lkdGgoKSBjb25zdDsKIApAQCAt
MTEyLDcgKzExMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVUcmFpbGluZ1RyaW1tYWJs
ZUNvbnRlbnQoKTsKIAogICAgIGNvbnN0IExheW91dFN0YXRlJiBtX2xheW91dFN0YXRlOwotICAg
IENvbnRlbnQgbV9jb250ZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50PiBtX2NvbnRl
bnQ7CiAgICAgTGlzdEhhc2hTZXQ8Q29udGVudDo6UnVuKj4gbV90cmltbWFibGVDb250ZW50Owog
CiAgICAgTGF5b3V0UG9pbnQgbV9sb2dpY2FsVG9wTGVmdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371053</attachid>
            <date>2019-05-31 06:13:27 -0700</date>
            <delta_ts>2019-05-31 06:43:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198366-20190531061326.patch</filename>
            <type>text/plain</type>
            <size>14531</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1OTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRiZDQ0YzI5NzQ0MDEz
NzhmM2E0NDcyNzBlZTY3NGRkMzFiZWI4ZC4uYzMwYjI5Yzk2MTdkNDRjMmYwODU0MjZmZDI4YTM5
OGJmZjY2MjliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTA1LTMxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ1tJRkNdIERvIG5vdCBy
ZXVzZSB0aGUgc2FtZSBMaW5lIG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5ODM2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTEyNTAy
Nzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgVGhp
cyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgY29uc3RydWN0aW5nIExpbmUgaW5zaWRlIGNyZWF0ZUlu
bGluZVJ1bnNGb3JMaW5lIGFuZCByZXR1cm4gTGluZTo6Q29udGVudC4gCisKKyAgICAgICAgKiBs
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAg
ICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxh
eW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250
ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OmxheW91dCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5l
TGF5b3V0Ojpwcm9jZXNzSW5saW5lUnVucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0Ojppbml0aWFsaXplTGluZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
TGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkxpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjptX2xpbmVMb2dpY2FsV2lkdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6
Om1vdmVMb2dpY2FsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVu
ZE5vbkJyZWFrYWJsZVNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YXBw
ZW5kVGV4dENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRO
b25SZXBsYWNlZElubGluZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFw
cGVuZEhhcmRMaW5lQnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpyZXNl
dCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpoYXNDb250ZW50IGNvbnN0KToK
KwogMjAxOS0wNS0zMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtMRkNdW0lGQ10gTW92ZSBmaW5hbCBydW5zIHRvIGEgZGVkaWNhdGVkIGNsYXNzIChMaW5lOjpD
b250ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggOTM0YTcwMGEwMjQw
YzJiY2Q3MzBjYjVlNDg4OGU2YzJkNGNkZDAyZS4uY2MwMzhhYzU1MTMxNzIzODgzYTVlNjZhYWE0
ZDAyNGMwZTc2N2Q3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiRGlzcGxheUJveC5oIgogI2luY2x1ZGUgIkZvcm1hdHRpbmdD
b250ZXh0LmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAi
SW5saW5lTGluZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzcsNyArMzgsNiBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgRmxv
YXRpbmdTdGF0ZTsKIGNsYXNzIElubGluZUNvbnRhaW5lcjsKLWNsYXNzIExpbmU7CiAKIC8vIFRo
aXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgbGF5b3V0IGxvZ2ljIGZvciBpbmxpbmUgZm9ybWF0dGlu
ZyBjb250ZXh0cy4KIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9DU1MyMi92aXN1cmVuLmh0bWwj
aW5saW5lLWZvcm1hdHRpbmcKQEAgLTU4LDkgKzU4LDkgQEAgcHJpdmF0ZToKIAogICAgIHByaXZh
dGU6CiAgICAgICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Zm9ybWF0dGluZ0NvbnRleHQubGF5b3V0U3RhdGUoKTsgfQotICAgICAgICB2b2lkIGluaXRpYWxp
emVMaW5lKExpbmUmLCBMYXlvdXRVbml0IGxpbmVMb2dpY2FsVG9wLCBMYXlvdXRVbml0IHdpZHRo
Q29uc3RyYWludCkgY29uc3Q7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxMaW5lPiBjcmVhdGVM
aW5lKExheW91dFVuaXQgbGluZUxvZ2ljYWxUb3AsIExheW91dFVuaXQgd2lkdGhDb25zdHJhaW50
KSBjb25zdDsKICAgICAgICAgdW5zaWduZWQgY3JlYXRlSW5saW5lUnVuc0ZvckxpbmUoTGluZSYs
IHVuc2lnbmVkIGZpcnN0SW5saW5lSXRlbUluZGV4KSBjb25zdDsKLSAgICAgICAgdm9pZCBwcm9j
ZXNzSW5saW5lUnVucyhMaW5lJikgY29uc3Q7CisgICAgICAgIHZvaWQgcHJvY2Vzc0lubGluZVJ1
bnMoY29uc3QgTGluZTo6Q29udGVudCYsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpIGNvbnN0
OwogICAgICAgICB2b2lkIGNvbW1pdElubGluZUl0ZW1Ub0xpbmUoTGluZSYsIGNvbnN0IElubGlu
ZUl0ZW0mKSBjb25zdDsKICAgICAgICAgdm9pZCBoYW5kbGVGbG9hdChMaW5lJiwgY29uc3QgRmxv
YXRpbmdDb250ZXh0JiwgY29uc3QgSW5saW5lSXRlbSYgZmxvYXRCb3gpIGNvbnN0OwogICAgICAg
ICB2b2lkIGFsaWduUnVucyhUZXh0QWxpZ25Nb2RlLCB1bnNpZ25lZCBmaXJzdFJ1bkluZGV4LCBM
YXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxh
eW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwCmluZGV4IGEyMTEzMTE1ZWEyNjk0YjdjZDBi
MmUwMWRlODc1OWVlZTM1OWVkMDcuLjk5OGZlZGE5NDlkNDY2YjBiYmRhOTlhZDdmZWY3NzFmMmFi
ZmYyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5
b3V0LmNwcApAQCAtNzUsNyArNzUsNyBAQCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxh
eW91dDo6TGluZUxheW91dChjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaQogewogfQog
Ci12b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0Ojppbml0aWFsaXplTGlu
ZShMaW5lJiBsaW5lLCBMYXlvdXRVbml0IGxpbmVMb2dpY2FsVG9wLCBMYXlvdXRVbml0IGF2YWls
YWJsZVdpZHRoKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPExpbmU+IElubGluZUZvcm1hdHRpbmdD
b250ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVMaW5lKExheW91dFVuaXQgbGluZUxvZ2ljYWxUb3As
IExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpIGNvbnN0CiB7CiAgICAgYXV0byYgZm9ybWF0dGlu
Z1Jvb3REaXNwbGF5Qm94ID0gbGF5b3V0U3RhdGUoKS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KG1f
Zm9ybWF0dGluZ1Jvb3QpOwogICAgIGF1dG8gbGluZUxvZ2ljYWxMZWZ0ID0gZm9ybWF0dGluZ1Jv
b3REaXNwbGF5Qm94LmNvbnRlbnRCb3hMZWZ0KCk7CkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6aW5pdGlhbGl6ZUxpbmUoTGluZSYg
bGluZSwgTGF5b3V0VW5pdAogICAgIGF1dG8mIGZvcm1hdHRpbmdSb290U3R5bGUgPSBtX2Zvcm1h
dHRpbmdSb290LnN0eWxlKCk7CiAgICAgYXV0byBtaW1pbXVtTGluZUhlaWdodCA9IGZvcm1hdHRp
bmdSb290U3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCk7CiAgICAgYXV0byBiYXNlbGluZU9mZnNl
dCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3JtYXR0aW5nUm9vdFN0eWxlLmZvbnRNZXRy
aWNzKCksIG1pbWltdW1MaW5lSGVpZ2h0KS5oZWlnaHQ7Ci0gICAgbGluZS5yZXNldCh7IGxpbmVM
b2dpY2FsTGVmdCwgbGluZUxvZ2ljYWxUb3AgfSwgYXZhaWxhYmxlV2lkdGgsIG1pbWltdW1MaW5l
SGVpZ2h0LCBiYXNlbGluZU9mZnNldCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TGlu
ZT4obGF5b3V0U3RhdGUoKSwgTGF5b3V0UG9pbnQgeyBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dp
Y2FsVG9wIH0sIGF2YWlsYWJsZVdpZHRoLCBtaW1pbXVtTGluZUhlaWdodCwgYmFzZWxpbmVPZmZz
ZXQpOwogfQogCiB1bnNpZ25lZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6
Y3JlYXRlSW5saW5lUnVuc0ZvckxpbmUoTGluZSYgbGluZSwgdW5zaWduZWQgc3RhcnRJbmxpbmVJ
dGVtSW5kZXgpIGNvbnN0CkBAIC0xNzIsMTcgKzE3MiwxNyBAQCB2b2lkIElubGluZUZvcm1hdHRp
bmdDb250ZXh0OjpMaW5lTGF5b3V0OjpsYXlvdXQoTGF5b3V0VW5pdCB3aWR0aENvbnN0cmFpbnQp
IGNvbgogewogICAgIEFTU0VSVCghbV9mb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKS5pc0Vt
cHR5KCkpOwogCi0gICAgTGluZSBsaW5lKGxheW91dFN0YXRlKCkpOwotICAgIGluaXRpYWxpemVM
aW5lKGxpbmUsIGxheW91dFN0YXRlKCkuZGlzcGxheUJveEZvckxheW91dEJveChtX2Zvcm1hdHRp
bmdSb290KS5jb250ZW50Qm94VG9wKCksIHdpZHRoQ29uc3RyYWludCk7Ci0KICAgICB1bnNpZ25l
ZCBzdGFydElubGluZUl0ZW1JbmRleCA9IDA7CisgICAgYXV0byBsaW5lTG9naWNhbFRvcCA9IGxh
eW91dFN0YXRlKCkuZGlzcGxheUJveEZvckxheW91dEJveChtX2Zvcm1hdHRpbmdSb290KS5jb250
ZW50Qm94VG9wKCk7CiAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgYXV0byBuZXh0SW5saW5l
SXRlbUluZGV4ID0gY3JlYXRlSW5saW5lUnVuc0ZvckxpbmUobGluZSwgc3RhcnRJbmxpbmVJdGVt
SW5kZXgpOwotICAgICAgICBwcm9jZXNzSW5saW5lUnVucyhsaW5lKTsKKyAgICAgICAgYXV0byBs
aW5lID0gY3JlYXRlTGluZShsaW5lTG9naWNhbFRvcCwgd2lkdGhDb25zdHJhaW50KTsKKyAgICAg
ICAgYXV0byBuZXh0SW5saW5lSXRlbUluZGV4ID0gY3JlYXRlSW5saW5lUnVuc0ZvckxpbmUoKmxp
bmUsIHN0YXJ0SW5saW5lSXRlbUluZGV4KTsKKyAgICAgICAgYXV0byBsaW5lQ29udGVudCA9IGxp
bmUtPmNsb3NlKCk7CisgICAgICAgIHByb2Nlc3NJbmxpbmVSdW5zKCpsaW5lQ29udGVudCwgbGlu
ZS0+YXZhaWxhYmxlV2lkdGgoKSk7CiAgICAgICAgIGlmIChuZXh0SW5saW5lSXRlbUluZGV4ID09
IG1fZm9ybWF0dGluZ1N0YXRlLmlubGluZUl0ZW1zKCkuc2l6ZSgpKQogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIHN0YXJ0SW5saW5lSXRlbUluZGV4ID0gbmV4dElubGluZUl0ZW1JbmRleDsK
LSAgICAgICAgaW5pdGlhbGl6ZUxpbmUobGluZSwgbGluZS5sb2dpY2FsQm90dG9tKCksIHdpZHRo
Q29uc3RyYWludCk7CisgICAgICAgIGxpbmVMb2dpY2FsVG9wID0gbGluZUNvbnRlbnQtPmxvZ2lj
YWxCb3R0b20oKTsKICAgICB9CiB9CiAKQEAgLTIxNCw5ICsyMTQsOCBAQCBMYXlvdXRVbml0IElu
bGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRo
KExheW91dFVuaQogICAgIHJldHVybiBzdGQ6Om1heChtYXhpbXVtTGluZVdpZHRoLCBsaW5lTG9n
aWNhbFJpZ2h0IC0gdHJpbW1hYmxlVHJhaWxpbmdXaWR0aCk7CiB9CiAKLXZvaWQgSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OnByb2Nlc3NJbmxpbmVSdW5zKExpbmUmIGxpbmUp
IGNvbnN0Cit2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0Ojpwcm9jZXNz
SW5saW5lUnVucyhjb25zdCBMaW5lOjpDb250ZW50JiBsaW5lQ29udGVudCwgTGF5b3V0VW5pdCBh
dmFpbGFibGVXaWR0aCkgY29uc3QKIHsKLSAgICBhdXRvJiBsaW5lQ29udGVudCA9IGxpbmUuY2xv
c2UoKTsKICAgICBpZiAobGluZUNvbnRlbnQuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFNwZWMg
dGVsbHMgdXMgdG8gY3JlYXRlIGEgemVybyBoZWlnaHQsIGVtcHR5IGxpbmUgYm94LgogICAgICAg
ICBhdXRvIGxpbmVCb3ggPSBEaXNwbGF5OjpSZWN0IHsgbGluZUNvbnRlbnQubG9naWNhbFRvcCgp
LCBsaW5lQ29udGVudC5sb2dpY2FsTGVmdCgpLCAwICwgMCB9OwpAQCAtMzE0LDcgKzMxMyw3IEBA
IHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OnByb2Nlc3NJbmxpbmVS
dW5zKExpbmUmIGxpbmUpIGNvbnN0CiAgICAgLy8gRklYTUUgbGluZWJveCBuZWVkcyB0byBiZSBh
anVzdGVkIGFmdGVyIGNvbnRlbnQgYWxpZ25tZW50LgogICAgIG1fZm9ybWF0dGluZ1N0YXRlLmFk
ZExpbmVCb3goeyBsaW5lQm94IH0pOwogICAgIGlmICghbGluZUNvbnRlbnQuaXNWaXN1YWxseUVt
cHR5KCkpCi0gICAgICAgIGFsaWduUnVucyhtX2Zvcm1hdHRpbmdSb290LnN0eWxlKCkudGV4dEFs
aWduKCksIHByZXZpb3VzTGluZUxhc3RSdW5JbmRleC52YWx1ZU9yKC0xKSArIDEsIGxpbmUuYXZh
aWxhYmxlV2lkdGgoKSk7CisgICAgICAgIGFsaWduUnVucyhtX2Zvcm1hdHRpbmdSb290LnN0eWxl
KCkudGV4dEFsaWduKCksIHByZXZpb3VzTGluZUxhc3RSdW5JbmRleC52YWx1ZU9yKC0xKSArIDEs
IGF2YWlsYWJsZVdpZHRoKTsKIH0KIAogdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGlu
ZUxheW91dDo6aGFuZGxlRmxvYXQoTGluZSYgbGluZSwgY29uc3QgRmxvYXRpbmdDb250ZXh0JiBm
bG9hdGluZ0NvbnRleHQsIGNvbnN0IElubGluZUl0ZW0mIGZsb2F0SXRlbSkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5j
cHAKaW5kZXggMGRkMjk3ZGYyZDczMWZhMzFkN2Q3MWE3YzlkNmM2YzM3MWJjMGM3NC4uYTU1ZTAx
NGMwZjljYzJkYTVmY2ViY2I4NDQ2Y2FiYTNjODUyYzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHAKQEAgLTI4LDkg
KzI4LDEzIEBACiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAorI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5h
bWVzcGFjZSBMYXlvdXQgewogCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTGluZSk7CisK
IGJvb2wgTGluZTo6Q29udGVudDo6aXNWaXN1YWxseUVtcHR5KCkgY29uc3QKIHsKICAgICAvLyBS
ZXR1cm4gdHJ1ZSBmb3IgZW1wdHkgaW5saW5lIGNvbnRhaW5lcnMgbGlrZSA8c3Bhbj48L3NwYW4+
LgpAQCAtNTEsMzQgKzU1LDI1IEBAIExpbmU6OkNvbnRlbnQ6OlJ1bjo6UnVuKERpc3BsYXk6OlJ1
biBpbmxpbmVSdW4sIGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGJvCiB7CiB9CiAKLUxp
bmU6OkxpbmUoY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQorTGluZTo6TGluZShjb25z
dCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IExheW91dFBvaW50JiB0b3BMZWZ0LCBM
YXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoLCBMYXlvdXRVbml0IG1pbmltdW1IZWlnaHQsIExheW91
dFVuaXQgYmFzZWxpbmVPZmZzZXQpCiAgICAgOiBtX2xheW91dFN0YXRlKGxheW91dFN0YXRlKQor
ICAgICwgbV9jb250ZW50KHN0ZDo6bWFrZV91bmlxdWU8TGluZTo6Q29udGVudD4oKSkKKyAgICAs
IG1fbG9naWNhbFRvcExlZnQodG9wTGVmdCkKKyAgICAsIG1fbG9naWNhbEhlaWdodCh7IGJhc2Vs
aW5lT2Zmc2V0LCBtaW5pbXVtSGVpZ2h0IC0gYmFzZWxpbmVPZmZzZXQgfSkKKyAgICAsIG1fbGlu
ZUxvZ2ljYWxXaWR0aChhdmFpbGFibGVXaWR0aCkKIHsKIH0KIAotdm9pZCBMaW5lOjpyZXNldChj
b25zdCBMYXlvdXRQb2ludCYgdG9wTGVmdCwgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCwgTGF5
b3V0VW5pdCBtaW5pbXVtSGVpZ2h0LCBMYXlvdXRVbml0IGJhc2VsaW5lT2Zmc2V0KQotewotICAg
IG1fbG9naWNhbFRvcExlZnQgPSB0b3BMZWZ0OwotICAgIG1fbGluZUxvZ2ljYWxXaWR0aCA9IGF2
YWlsYWJsZVdpZHRoOwotICAgIG1fbG9naWNhbEhlaWdodCA9IHsgYmFzZWxpbmVPZmZzZXQsIG1p
bmltdW1IZWlnaHQgLSBiYXNlbGluZU9mZnNldCB9OwotCi0gICAgbV9jb250ZW50TG9naWNhbFdp
ZHRoID0geyB9OwotCi0gICAgbV9jb250ZW50ID0geyB9OwotCi0gICAgbV90cmltbWFibGVDb250
ZW50LmNsZWFyKCk7Ci19Ci0KLWNvbnN0IExpbmU6OkNvbnRlbnQmIExpbmU6OmNsb3NlKCkKK3N0
ZDo6dW5pcXVlX3B0cjxMaW5lOjpDb250ZW50PiBMaW5lOjpjbG9zZSgpCiB7CiAgICAgcmVtb3Zl
VHJhaWxpbmdUcmltbWFibGVDb250ZW50KCk7CiAgICAgLy8gQ29udmVydCBpbmxpbmUgcnVuIGdl
b21ldHJ5IGZyb20gcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lIHRvIHJlbGF0aXZlIHRvIGxvZ2lj
YWwgdG9wLgotICAgIGZvciAoYXV0byYgcnVuIDogbV9jb250ZW50LnJ1bnMoKSkgeworICAgIGZv
ciAoYXV0byYgcnVuIDogbV9jb250ZW50LT5ydW5zKCkpIHsKICAgICAgICAgYXV0byBhZGp1c3Rl
ZExvZ2ljYWxUb3AgPSBydW4tPmlubGluZVJ1bi5sb2dpY2FsVG9wKCkgKyBtX2xvZ2ljYWxIZWln
aHQuaGVpZ2h0ICsgbV9sb2dpY2FsVG9wTGVmdC55KCk7CiAgICAgICAgIHJ1bi0+aW5saW5lUnVu
LnNldExvZ2ljYWxUb3AoYWRqdXN0ZWRMb2dpY2FsVG9wKTsKICAgICB9Ci0gICAgbV9jb250ZW50
LnNldExvZ2ljYWxSZWN0KHsgbG9naWNhbFRvcCgpLCBsb2dpY2FsTGVmdCgpLCBjb250ZW50TG9n
aWNhbFdpZHRoKCksIGxvZ2ljYWxIZWlnaHQoKSB9KTsKLSAgICByZXR1cm4gbV9jb250ZW50Owor
ICAgIG1fY29udGVudC0+c2V0TG9naWNhbFJlY3QoeyBsb2dpY2FsVG9wKCksIGxvZ2ljYWxMZWZ0
KCksIGNvbnRlbnRMb2dpY2FsV2lkdGgoKSwgbG9naWNhbEhlaWdodCgpIH0pOworICAgIHJldHVy
biBXVEZNb3ZlKG1fY29udGVudCk7CiB9CiAKIHZvaWQgTGluZTo6cmVtb3ZlVHJhaWxpbmdUcmlt
bWFibGVDb250ZW50KCkKQEAgLTEwMCw3ICs5NSw3IEBAIHZvaWQgTGluZTo6bW92ZUxvZ2ljYWxM
ZWZ0KExheW91dFVuaXQgZGVsdGEpCiAgICAgLy8gU2hyaW5rIHRoZSBsaW5lIGFuZCBtb3ZlIHRo
ZSBpdGVtcy4KICAgICBtX2xvZ2ljYWxUb3BMZWZ0Lm1vdmUoZGVsdGEsIDApOwogICAgIG1fbGlu
ZUxvZ2ljYWxXaWR0aCAtPSBkZWx0YTsKLSAgICBmb3IgKGF1dG8mIHJ1biA6IG1fY29udGVudC5y
dW5zKCkpCisgICAgZm9yIChhdXRvJiBydW4gOiBtX2NvbnRlbnQtPnJ1bnMoKSkKICAgICAgICAg
cnVuLT5pbmxpbmVSdW4ubW92ZUhvcml6b250YWxseShkZWx0YSk7CiB9CiAKQEAgLTEyMCw3ICsx
MTUsNyBAQCBMYXlvdXRVbml0IExpbmU6OnRyYWlsaW5nVHJpbW1hYmxlV2lkdGgoKSBjb25zdAog
CiB2b2lkIExpbmU6OmFwcGVuZE5vbkJyZWFrYWJsZVNwYWNlKGNvbnN0IElubGluZUl0ZW0mIGlu
bGluZUl0ZW0sIGNvbnN0IERpc3BsYXk6OlJlY3QmIGxvZ2ljYWxSZWN0KQogewotICAgIG1fY29u
dGVudC5ydW5zKCkuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8Q29udGVudDo6UnVuPihEaXNwbGF5
OjpSdW4geyBsb2dpY2FsUmVjdCB9LCBpbmxpbmVJdGVtLCBmYWxzZSwgZmFsc2UpKTsKKyAgICBt
X2NvbnRlbnQtPnJ1bnMoKS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxDb250ZW50OjpSdW4+KERp
c3BsYXk6OlJ1biB7IGxvZ2ljYWxSZWN0IH0sIGlubGluZUl0ZW0sIGZhbHNlLCBmYWxzZSkpOwog
ICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCArPSBpbmxpbmVJdGVtLndpZHRoKCk7CiB9CiAKQEAg
LTE2NSw3ICsxNjAsNyBAQCB2b2lkIExpbmU6OmFwcGVuZFRleHRDb250ZW50KGNvbnN0IElubGlu
ZVRleHRJdGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRTaXplIHJ1blNpegogICAgICAgICBpZiAoIWlz
VHJpbW1hYmxlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAvLyBMZWFkaW5n
IHdoaXRlc3BhY2UuCi0gICAgICAgIGF1dG8mIHJ1bnMgPSBtX2NvbnRlbnQucnVucygpOworICAg
ICAgICBhdXRvJiBydW5zID0gbV9jb250ZW50LT5ydW5zKCk7CiAgICAgICAgIGlmIChydW5zLmlz
RW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAvLyBDaGVjayBpZiB0
aGUgbGFzdCBpdGVtIGlzIHRyaW1tYWJsZSBhcyB3ZWxsLgpAQCAtMTkxLDcgKzE4Niw3IEBAIHZv
aWQgTGluZTo6YXBwZW5kVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZUl0
ZW0sIExheW91dFNpemUgcnVuU2l6CiAgICAgaWYgKGlzVHJpbW1hYmxlKQogICAgICAgICBtX3Ry
aW1tYWJsZUNvbnRlbnQuYWRkKGxpbmVJdGVtLmdldCgpKTsKIAotICAgIG1fY29udGVudC5ydW5z
KCkuYXBwZW5kKFdURk1vdmUobGluZUl0ZW0pKTsKKyAgICBtX2NvbnRlbnQtPnJ1bnMoKS5hcHBl
bmQoV1RGTW92ZShsaW5lSXRlbSkpOwogICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCArPSBpc0Nv
bXBsZXRlbHlDb2xsYXBzZWQgPyBMYXlvdXRVbml0KCkgOiBydW5TaXplLndpZHRoKCk7CiB9CiAK
QEAgLTIxOSw3ICsyMTQsNyBAQCB2b2lkIExpbmU6OmFwcGVuZE5vblJlcGxhY2VkSW5saW5lQm94
KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIExheW91dFNpemUgcgogICAgIGF1dG8gaG9y
aXpvbnRhbE1hcmdpbiA9IGRpc3BsYXlCb3guaG9yaXpvbnRhbE1hcmdpbigpOwogICAgIGF1dG8g
bG9naWNhbFJlY3QgPSBEaXNwbGF5OjpSZWN0IHsgbG9naWNhbFRvcCwgY29udGVudExvZ2ljYWxS
aWdodCgpICsgaG9yaXpvbnRhbE1hcmdpbi5zdGFydCwgcnVuU2l6ZS53aWR0aCgpLCBydW5TaXpl
LmhlaWdodCgpIH07CiAKLSAgICBtX2NvbnRlbnQucnVucygpLmFwcGVuZChzdGQ6Om1ha2VfdW5p
cXVlPENvbnRlbnQ6OlJ1bj4oRGlzcGxheTo6UnVuIHsgbG9naWNhbFJlY3QgfSwgaW5saW5lSXRl
bSwgZmFsc2UsIGZhbHNlKSk7CisgICAgbV9jb250ZW50LT5ydW5zKCkuYXBwZW5kKHN0ZDo6bWFr
ZV91bmlxdWU8Q29udGVudDo6UnVuPihEaXNwbGF5OjpSdW4geyBsb2dpY2FsUmVjdCB9LCBpbmxp
bmVJdGVtLCBmYWxzZSwgZmFsc2UpKTsKICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggKz0gKHJ1
blNpemUud2lkdGgoKSArIGhvcml6b250YWxNYXJnaW4uc3RhcnQgKyBob3Jpem9udGFsTWFyZ2lu
LmVuZCk7CiAgICAgbV90cmltbWFibGVDb250ZW50LmNsZWFyKCk7CiB9CkBAIC0yMzQsNyArMjI5
LDcgQEAgdm9pZCBMaW5lOjphcHBlbmRIYXJkTGluZUJyZWFrKGNvbnN0IElubGluZUl0ZW0mIGlu
bGluZUl0ZW0pCiB7CiAgICAgYXV0byBhc2NlbnQgPSBpbmxpbmVJdGVtLmxheW91dEJveCgpLnN0
eWxlKCkuZm9udE1ldHJpY3MoKS5hc2NlbnQoKTsKICAgICBhdXRvIGxvZ2ljYWxSZWN0ID0gRGlz
cGxheTo6UmVjdCB7IC1hc2NlbnQsIGNvbnRlbnRMb2dpY2FsUmlnaHQoKSwgeyB9LCBsb2dpY2Fs
SGVpZ2h0KCkgfTsKLSAgICBtX2NvbnRlbnQucnVucygpLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVl
PENvbnRlbnQ6OlJ1bj4oRGlzcGxheTo6UnVuIHsgbG9naWNhbFJlY3QgfSwgaW5saW5lSXRlbSwg
ZmFsc2UsIGZhbHNlKSk7CisgICAgbV9jb250ZW50LT5ydW5zKCkuYXBwZW5kKHN0ZDo6bWFrZV91
bmlxdWU8Q29udGVudDo6UnVuPihEaXNwbGF5OjpSdW4geyBsb2dpY2FsUmVjdCB9LCBpbmxpbmVJ
dGVtLCBmYWxzZSwgZmFsc2UpKTsKIH0KIAogTGluZTo6VXNlZEhlaWdodEFuZERlcHRoIExpbmU6
OmhhbGZMZWFkaW5nTWV0cmljcyhjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJpY3MsIExheW91
dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmgKaW5kZXggYjljZjlkOTU0NTU2N2ZmNWM5MzBl
MWEzYWNjODQ0NjNkNGI0NGJhOS4uNjE1MjlmYjRkMGRlMGM5OWYwOWQ5MzA1ZTlmZjY4MTU1NWEw
M2E1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUxpbmUuaApAQCAtMjksMTUgKzI5LDE2IEBACiAKICNpbmNsdWRlICJEaXNwbGF5UnVu
LmgiCiAjaW5jbHVkZSAiSW5saW5lSXRlbS5oIgorI2luY2x1ZGUgIklubGluZVRleHRJdGVtLmgi
CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1l
c3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgTGluZSB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChMaW5lKTsKIHB1YmxpYzoKLSAgICBMaW5lKGNvbnN0IExheW91dFN0YXRlJik7Ci0KLSAgICB2
b2lkIHJlc2V0KGNvbnN0IExheW91dFBvaW50JiB0b3BMZWZ0LCBMYXlvdXRVbml0IGF2YWlsYWJs
ZVdpZHRoLCBMYXlvdXRVbml0IG1pbmltdW1MaW5lSGVpZ2h0LCBMYXlvdXRVbml0IGJhc2VsaW5l
T2Zmc2V0KTsKKyAgICBMaW5lKGNvbnN0IExheW91dFN0YXRlJiwgY29uc3QgTGF5b3V0UG9pbnQm
IHRvcExlZnQsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIExheW91dFVuaXQgbWluaW11bUxp
bmVIZWlnaHQsIExheW91dFVuaXQgYmFzZWxpbmVPZmZzZXQpOwogCiAgICAgY2xhc3MgQ29udGVu
dCB7CiAgICAgcHVibGljOgpAQCAtNzIsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIERpc3Bs
YXk6OlJlY3QgbV9sb2dpY2FsUmVjdDsKICAgICAgICAgUnVucyBtX3J1bnM7CiAgICAgfTsKLSAg
ICBjb25zdCBDb250ZW50JiBjbG9zZSgpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50PiBj
bG9zZSgpOwogCiAgICAgdm9pZCBhcHBlbmRUZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0SXRl
bSYsIExheW91dFNpemUpOwogICAgIHZvaWQgYXBwZW5kTm9uUmVwbGFjZWRJbmxpbmVCb3goY29u
c3QgSW5saW5lSXRlbSYsIExheW91dFNpemUpOwpAQCAtODEsNyArODIsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBhcHBlbmRJbmxpbmVDb250YWluZXJFbmQoY29uc3QgSW5saW5lSXRlbSYpOwogICAg
IHZvaWQgYXBwZW5kSGFyZExpbmVCcmVhayhjb25zdCBJbmxpbmVJdGVtJik7CiAKLSAgICBib29s
IGhhc0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiAhbV9jb250ZW50LmlzVmlzdWFsbHlFbXB0eSgp
OyB9CisgICAgYm9vbCBoYXNDb250ZW50KCkgY29uc3QgeyByZXR1cm4gIW1fY29udGVudC0+aXNW
aXN1YWxseUVtcHR5KCk7IH0KIAogICAgIExheW91dFVuaXQgdHJhaWxpbmdUcmltbWFibGVXaWR0
aCgpIGNvbnN0OwogCkBAIC0xMTIsNyArMTEzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92
ZVRyYWlsaW5nVHJpbW1hYmxlQ29udGVudCgpOwogCiAgICAgY29uc3QgTGF5b3V0U3RhdGUmIG1f
bGF5b3V0U3RhdGU7Ci0gICAgQ29udGVudCBtX2NvbnRlbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRy
PENvbnRlbnQ+IG1fY29udGVudDsKICAgICBMaXN0SGFzaFNldDxDb250ZW50OjpSdW4qPiBtX3Ry
aW1tYWJsZUNvbnRlbnQ7CiAKICAgICBMYXlvdXRQb2ludCBtX2xvZ2ljYWxUb3BMZWZ0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>