<?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>213707</bug_id>
          
          <creation_ts>2020-06-28 18:13:48 -0700</creation_ts>
          <short_desc>Simplify Color&apos;s interface by removing isDark()</short_desc>
          <delta_ts>2020-06-29 18:33:14 -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>New Bugs</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1666962</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-06-28 18:13:48 -0700</bug_when>
    <thetext>Simplify Color&apos;s interface by removing isDark() and lightness()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666964</commentid>
    <comment_count>1</comment_count>
      <attachid>403022</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-06-28 18:21:16 -0700</bug_when>
    <thetext>Created attachment 403022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666974</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-06-28 20:14:46 -0700</bug_when>
    <thetext>Not a huge surprise that paste-dark-mode-color-filtered.html is failing, as the heuristic is changing. Need to see if the new results are acceptable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667159</commentid>
    <comment_count>3</comment_count>
      <attachid>403022</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-29 09:57:36 -0700</bug_when>
    <thetext>Comment on attachment 403022
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        - Move Color::isDark to RenderThemeIOS.mm, it&apos;s one client and rename it

it&apos;s -&gt; its

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:1055
&gt; +static bool useConvexGradient(const Color&amp; backgroundColor)

Typically we try not to name functions that compute values with verbs. So we would name it shouldUseConvexGradient.

&gt; Source/WebKit/ChangeLog:10
&gt; +        - Remove WebCore::lightness() and Color::lightness(), and replace with
&gt; +          Color::luminance(), which is almost the same, but likely to be more
&gt; +          in line with perceptual lightness people had in mind.

Maybe do the behavior change, the switch to luminance, first in a patch that doesn’t also refactor or remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667295</commentid>
    <comment_count>4</comment_count>
      <attachid>403120</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-06-29 15:14:35 -0700</bug_when>
    <thetext>Created attachment 403120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667299</commentid>
    <comment_count>5</comment_count>
      <attachid>403121</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-06-29 15:17:45 -0700</bug_when>
    <thetext>Created attachment 403121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667302</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-06-29 15:18:57 -0700</bug_when>
    <thetext>Just going to do the isDark change in this one. Leave the lightness() for separate change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667405</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-29 18:32:06 -0700</bug_when>
    <thetext>Committed r263713: &lt;https://trac.webkit.org/changeset/263713&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403121.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667407</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-29 18:33:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/64917999&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403022</attachid>
            <date>2020-06-28 18:21:16 -0700</date>
            <delta_ts>2020-06-29 15:14:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213707-20200628182115.patch</filename>
            <type>text/plain</type>
            <size>15243</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MzY0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA2LTI4ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSBDb2xvcidzIGludGVy
ZmFjZSBieSByZW1vdmluZyBpc0RhcmsoKSBhbmQgbGlnaHRuZXNzKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzcwNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gTW92ZSBDb2xvcjo6aXNEYXJrIHRv
IFJlbmRlclRoZW1lSU9TLm1tLCBpdCdzIG9uZSBjbGllbnQgYW5kIHJlbmFtZSBpdAorICAgICAg
ICAgIHRvIHVzZUNvbnZleEdyYWRpZW50KCkgdG8gaW5kaWNhdGUgd2hhdCBpdCBpcyBhY3R1YWxs
eSBkZXRlcm1pbmluZy4KKyAgICAgICAgLSBSZW1vdmUgV2ViQ29yZTo6bGlnaHRuZXNzKCkgYW5k
IENvbG9yOjpsaWdodG5lc3MoKSwgYW5kIHJlcGxhY2Ugd2l0aAorICAgICAgICAgIENvbG9yOjps
dW1pbmFuY2UoKSwgd2hpY2ggaXMgYWxtb3N0IHRoZSBzYW1lLCBidXQgbGlrZWx5IHRvIGJlIG1v
cmUKKyAgICAgICAgICBpbiBsaW5lIHdpdGggcGVyY2VwdHVhbCBsaWdodG5lc3MgcGVvcGxlIGhh
ZCBpbiBtaW5kLgorCisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpmcmFnbWVudE5lZWRzQ29sb3JUcmFuc2Zvcm1lZCk6Cisg
ICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
OjpyZWNhbGN1bGF0ZVNjcm9sbGJhck92ZXJsYXlTdHlsZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OmlzRGFyayBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6bGlnaHRuZXNzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmxpZ2h0bmVzcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JV
dGlsaXRpZXMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAg
ICAgIChXZWJDb3JlOjp1c2VDb252ZXhHcmFkaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6cGFpbnRQdXNoQnV0dG9uRGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVJT1M6OnBhaW50RmlsZVVwbG9hZEljb25EZWNvcmF0aW9ucyk6CisKIDIw
MjAtMDYtMjggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XVtURkNdIEFkanVzdCB0YWJsZSBjb250ZW50IHZlcnRpY2FsIHBvc2l0aW9uIHRvIG1hdGNoIHZl
cnRpY2FsLWFsaWduCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAkocmV2aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU0MiwxNiArNTQyLDE2IEBAIHN0YXRpYyBib29sIGZyYWdtZW50TmVlZHNDb2xvclRyYW5zZm9y
bWUKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBhdXRvIHByb3BlcnR5
TGlnaHRuZXNzID0gWyZdKGNvbnN0IFN0eWxlUHJvcGVydGllcyYgaW5saW5lU3R5bGUsIENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCkgLT4gT3B0aW9uYWw8ZG91YmxlPiB7CisgICAgYXV0byBwcm9w
ZXJ0eUx1bWluYW5jZSA9IFsmXShjb25zdCBTdHlsZVByb3BlcnRpZXMmIGlubGluZVN0eWxlLCBD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIC0+IE9wdGlvbmFsPGRvdWJsZT4gewogICAgICAgICBh
dXRvIGNvbG9yID0gaW5saW5lU3R5bGUucHJvcGVydHlBc0NvbG9yKHByb3BlcnR5SUQpOwogICAg
ICAgICBpZiAoIWNvbG9yIHx8ICFjb2xvci52YWx1ZSgpLmlzVmlzaWJsZSgpIHx8IGNvbG9yLnZh
bHVlKCkuaXNTZW1hbnRpYygpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgICAgICBy
ZXR1cm4gY29sb3IudmFsdWUoKS5saWdodG5lc3MoKTsKKyAgICAgICAgcmV0dXJuIGNvbG9yLnZh
bHVlKCkubHVtaW5hbmNlKCk7CiAgICAgfTsKIAotICAgIGNvbnN0IGRvdWJsZSBsaWdodG5lc3NE
YXJrRW5vdWdoRm9yVGV4dCA9IDAuNDsKLSAgICBjb25zdCBkb3VibGUgbGlnaHRuZXNzTGlnaHRF
bm91Z2hGb3JCYWNrZ3JvdW5kID0gMC42OworICAgIGNvbnN0IGRvdWJsZSBsdW1pbmFuY2VEYXJr
RW5vdWdoRm9yVGV4dCA9IDAuNDsKKyAgICBjb25zdCBkb3VibGUgbHVtaW5hbmNlTGlnaHRFbm91
Z2hGb3JCYWNrZ3JvdW5kID0gMC42OwogCiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbm9kZSA9IGZy
YWdtZW50LmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5v
ZGUpKSB7CiAgICAgICAgIGlmICghaXM8U3R5bGVkRWxlbWVudD4oKm5vZGUpKQpAQCAtNTYyLDEy
ICs1NjIsMTIgQEAgc3RhdGljIGJvb2wgZnJhZ21lbnROZWVkc0NvbG9yVHJhbnNmb3JtZQogICAg
ICAgICBpZiAoIWlubGluZVN0eWxlKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAg
YXV0byB0ZXh0TGlnaHRuZXNzID0gcHJvcGVydHlMaWdodG5lc3MoKmlubGluZVN0eWxlLCBDU1NQ
cm9wZXJ0eUNvbG9yKTsKLSAgICAgICAgaWYgKHRleHRMaWdodG5lc3MgJiYgKnRleHRMaWdodG5l
c3MgPCBsaWdodG5lc3NEYXJrRW5vdWdoRm9yVGV4dCkKKyAgICAgICAgYXV0byB0ZXh0THVtaW5h
bmNlID0gcHJvcGVydHlMdW1pbmFuY2UoKmlubGluZVN0eWxlLCBDU1NQcm9wZXJ0eUNvbG9yKTsK
KyAgICAgICAgaWYgKHRleHRMdW1pbmFuY2UgJiYgKnRleHRMdW1pbmFuY2UgPCBsdW1pbmFuY2VE
YXJrRW5vdWdoRm9yVGV4dCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBh
dXRvIGJhY2tncm91bmRMaWdodG5lc3MgPSBwcm9wZXJ0eUxpZ2h0bmVzcygqaW5saW5lU3R5bGUs
IENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKTsKLSAgICAgICAgaWYgKGJhY2tncm91bmRMaWdo
dG5lc3MgJiYgKmJhY2tncm91bmRMaWdodG5lc3MgPiBsaWdodG5lc3NMaWdodEVub3VnaEZvckJh
Y2tncm91bmQpCisgICAgICAgIGF1dG8gYmFja2dyb3VuZEx1bWluYW5jZSA9IHByb3BlcnR5THVt
aW5hbmNlKCppbmxpbmVTdHlsZSwgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOworICAgICAg
ICBpZiAoYmFja2dyb3VuZEx1bWluYW5jZSAmJiAqYmFja2dyb3VuZEx1bWluYW5jZSA+IGx1bWlu
YW5jZUxpZ2h0RW5vdWdoRm9yQmFja2dyb3VuZCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDI2MzYx
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYxLDEwICszNjEsMTAgQEAgdm9pZCBGcmFtZVZpZXc6OnJlY2FsY3VsYXRlU2Nyb2xsYmFy
T3ZlcgogCiAgICAgQ29sb3IgYmFja2dyb3VuZENvbG9yID0gZG9jdW1lbnRCYWNrZ3JvdW5kQ29s
b3IoKTsKICAgICBpZiAoYmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkgewotICAgICAgICAvLyBS
ZWR1Y2UgdGhlIGJhY2tncm91bmQgY29sb3IgZnJvbSBSR0IgdG8gYSBsaWdodG5lc3MgdmFsdWUK
KyAgICAgICAgLy8gUmVkdWNlIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gUkdCIHRvIGEgbHVt
aW5hbmNlIHZhbHVlCiAgICAgICAgIC8vIGFuZCBkZXRlcm1pbmUgd2hpY2ggc2Nyb2xsYmFyIHN0
eWxlIHRvIHVzZSBiYXNlZCBvbiBhIGxpZ2h0bmVzcwogICAgICAgICAvLyBoZXVyaXN0aWMuCi0g
ICAgICAgIGlmIChiYWNrZ3JvdW5kQ29sb3IubGlnaHRuZXNzKCkgPD0gLjVmICYmIGJhY2tncm91
bmRDb2xvci5pc1Zpc2libGUoKSkKKyAgICAgICAgaWYgKGJhY2tncm91bmRDb2xvci5sdW1pbmFu
Y2UoKSA8PSAuNWYgJiYgYmFja2dyb3VuZENvbG9yLmlzVmlzaWJsZSgpKQogICAgICAgICAgICAg
Y29tcHV0ZWRPdmVybGF5U3R5bGUgPSBTY3JvbGxiYXJPdmVybGF5U3R5bGVMaWdodDsKICAgICAg
ICAgZWxzZSBpZiAoIWJhY2tncm91bmRDb2xvci5pc1Zpc2libGUoKSAmJiB1c2VEYXJrQXBwZWFy
YW5jZSgpKQogICAgICAgICAgICAgY29tcHV0ZWRPdmVybGF5U3R5bGUgPSBTY3JvbGxiYXJPdmVy
bGF5U3R5bGVMaWdodDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvci5jcHAJKHJldmlzaW9uIDI2MzYxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDIwICsxMzEsNiBAQCBDb2xv
ciBDb2xvcjo6ZGFya2VuZWQoKSBjb25zdAogICAgIHJldHVybiBtYWtlU2ltcGxlQ29sb3JGcm9t
RmxvYXRzKG11bHRpcGxpZXIgKiByLCBtdWx0aXBsaWVyICogZywgbXVsdGlwbGllciAqIGIsIGEp
OwogfQogCi1ib29sIENvbG9yOjppc0RhcmsoKSBjb25zdAotewotICAgIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBwcm9iYWJseSBiZSB1c2luZyBsdW1pbmFuY2UuCi0gICAgYXV0byBbciwgZywgYiwg
YV0gPSB0b1NSR0JBTG9zc3koKTsKLSAgICBmbG9hdCBsYXJnZXN0Tm9uQWxwaGFDaGFubmVsID0g
c3RkOjptYXgoeyByLCBnLCBiIH0pOwotICAgIHJldHVybiBhID4gMC41ICYmIGxhcmdlc3ROb25B
bHBoYUNoYW5uZWwgPCAwLjU7Ci19Ci0KLWZsb2F0IENvbG9yOjpsaWdodG5lc3MoKSBjb25zdAot
ewotICAgIC8vIEZJWE1FOiBUaGlzIGNhbiBwcm9iYWJseSBhdm9pZCBjb252ZXJzaW9uIHRvIHNS
R0IgYnkgaGF2aW5nIHBlci1jb2xvcnNwYWNlIGFsZ29yaXRobXMgZm9yIEhTTC4KLSAgICByZXR1
cm4gV2ViQ29yZTo6bGlnaHRuZXNzKHRvU1JHQkFMb3NzeSgpKTsKLX0KLQogZmxvYXQgQ29sb3I6
Omx1bWluYW5jZSgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgY2FuIHByb2JhYmx5IGF2
b2lkIGNvbnZlcnNpb24gdG8gc1JHQiBieSBoYXZpbmcgcGVyLWNvbG9yc3BhY2UgYWxnb3JpdGht
cyBmb3IgbHVtaW5hbmNlIChlLmcuIGNvbnZlcnRUb1hZWihjKS55Q29tcG9uZW50KCkpLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCShyZXZpc2lvbiAyNjM2
MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDAsMTAgKzE0MCw2IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JU
IGZsb2F0IGx1bWluYW5jZSgpIGNvbnN0OwogCi0gICAgLy8gRklYTUU6IFJlcGxhY2UgcmVtYWlu
aW5nIHVzZXMgd2l0aCBsdW1pbmFuY2UuCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0Rhcmso
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBmbG9hdCBsaWdodG5lc3MoKSBjb25zdDsKLQog
ICAgIC8vIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgUG9ydGVyLUR1ZmYncyAic291cmNl
LW92ZXIiIGVxdWF0aW9uCiAgICAgQ29sb3IgYmxlbmQoY29uc3QgQ29sb3ImKSBjb25zdDsKICAg
ICBDb2xvciBibGVuZFdpdGhXaGl0ZSgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNwcAkocmV2aXNpb24gMjYz
NjE5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsMTMgKzE0NSw2IEBAIERpc3BsYXlQMzxmbG9hdD4g
dG9EaXNwbGF5UDMoY29uc3QgU1JHQkEKICAgICByZXR1cm4gdG9EaXNwbGF5UDModG9MaW5lYXJE
aXNwbGF5UDModG9YWVoodG9MaW5lYXJTUkdCQShjb2xvcikpKSk7CiB9CiAKLWZsb2F0IGxpZ2h0
bmVzcyhjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAgIGF1dG8gW3IsIGcsIGIsIGFd
ID0gY29sb3I7Ci0gICAgYXV0byBbbWluLCBtYXhdID0gc3RkOjptaW5tYXgoeyByLCBnLCBiIH0p
OwotICAgIHJldHVybiAwLjVmICogKG1heCArIG1pbik7Ci19Ci0KIGZsb2F0IGx1bWluYW5jZShj
b25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQogewogICAgIC8vIE5PVEU6IFRoaXMgaXMgdGhlIGVx
dWl2YWxlbnQgb2YgdG9YWVpBKHRvTGluZWFyU1JHQkEoY29sb3IpKS55CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmgJKHJldmlz
aW9uIDI2MzYxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRp
bGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDkgKzUyLDcgQEAgRGlzcGxheVAzPGZsb2F0
PiB0b0Rpc3BsYXlQMyhjb25zdCBTUkdCQQogV0VCQ09SRV9FWFBPUlQgSFNMQTxmbG9hdD4gdG9I
U0xBKGNvbnN0IFNSR0JBPGZsb2F0PiYpOwogV0VCQ09SRV9FWFBPUlQgU1JHQkE8ZmxvYXQ+IHRv
U1JHQkEoY29uc3QgSFNMQTxmbG9hdD4mKTsKIAotZmxvYXQgbGlnaHRuZXNzKGNvbnN0IFNSR0JB
PGZsb2F0PiYpOwogZmxvYXQgbHVtaW5hbmNlKGNvbnN0IFNSR0JBPGZsb2F0PiYpOwotCiBmbG9h
dCBjb250cmFzdFJhdGlvKGNvbnN0IFNSR0JBPGZsb2F0PiYsIGNvbnN0IFNSR0JBPGZsb2F0PiYp
OwogCiBTUkdCQTxmbG9hdD4gcHJlbXVsdGlwbGllZChjb25zdCBTUkdCQTxmbG9hdD4mKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0JKHJldmlzaW9u
IDI2MzYxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTA1MiwxMyArMTA1MiwyMSBAQCBib29sIFJlbmRlclRoZW1lSU9T
OjpwYWludEJ1dHRvbkRlY29yYXRpCiAgICAgcmV0dXJuIHBhaW50UHVzaEJ1dHRvbkRlY29yYXRp
b25zKGJveCwgcGFpbnRJbmZvLCByZWN0KTsKIH0KIAorc3RhdGljIGJvb2wgdXNlQ29udmV4R3Jh
ZGllbnQoY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcikKK3sKKyAgICAvLyBGSVhNRTogVGhp
cyBzaG91bGQgcHJvYmFibHkgYmUgdXNpbmcgbHVtaW5hbmNlLgorICAgIGF1dG8gW3IsIGcsIGIs
IGFdID0gYmFja2dyb3VuZENvbG9yLnRvU1JHQkFMb3NzeSgpOworICAgIGZsb2F0IGxhcmdlc3RO
b25BbHBoYUNoYW5uZWwgPSBzdGQ6Om1heCh7IHIsIGcsIGIgfSk7CisgICAgcmV0dXJuIGEgPiAw
LjUgJiYgbGFyZ2VzdE5vbkFscGhhQ2hhbm5lbCA8IDAuNTsKK30KKwogYm9vbCBSZW5kZXJUaGVt
ZUlPUzo6cGFpbnRQdXNoQnV0dG9uRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiBib3gs
IGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihwYWludEluZm8uY29udGV4dCgp
KTsKICAgICBGbG9hdFJlY3QgY2xpcCA9IGFkZFJvdW5kZWRCb3JkZXJDbGlwKGJveCwgcGFpbnRJ
bmZvLmNvbnRleHQoKSwgcmVjdCk7CiAKICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gcGFp
bnRJbmZvLmNvbnRleHQoKS5wbGF0Zm9ybUNvbnRleHQoKTsKLSAgICBpZiAoYm94LnN0eWxlKCku
dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKS5pc0Rhcmso
KSkKKyAgICBpZiAodXNlQ29udmV4R3JhZGllbnQoYm94LnN0eWxlKCkudmlzaXRlZERlcGVuZGVu
dENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKSkpCiAgICAgICAgIGRyYXdBeGlhbEdy
YWRpZW50KGNnQ29udGV4dCwgZ3JhZGllbnRXaXRoTmFtZShDb252ZXhHcmFkaWVudCksIGNsaXAu
bG9jYXRpb24oKSwgRmxvYXRQb2ludChjbGlwLngoKSwgY2xpcC5tYXhZKCkpLCBMaW5lYXJJbnRl
cnBvbGF0aW9uKTsKICAgICBlbHNlIHsKICAgICAgICAgZHJhd0F4aWFsR3JhZGllbnQoY2dDb250
ZXh0LCBncmFkaWVudFdpdGhOYW1lKFNoYWRlR3JhZGllbnQpLCBjbGlwLmxvY2F0aW9uKCksIEZs
b2F0UG9pbnQoY2xpcC54KCksIGNsaXAubWF4WSgpKSwgTGluZWFySW50ZXJwb2xhdGlvbik7CkBA
IC0xMTA3LDcgKzExMTUsNyBAQCBib29sIFJlbmRlclRoZW1lSU9TOjpwYWludEZpbGVVcGxvYWRJ
Y29uCiAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIyKHBh
aW50SW5mby5jb250ZXh0KCkpOwogICAgICAgICAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9
IHBhaW50SW5mby5jb250ZXh0KCkucGxhdGZvcm1Db250ZXh0KCk7CiAgICAgICAgICAgICBwYWlu
dEluZm8uY29udGV4dCgpLmNsaXAodGh1bWJuYWlsUmVjdCk7Ci0gICAgICAgICAgICBpZiAoYmFj
a2dyb3VuZEltYWdlQ29sb3IuaXNEYXJrKCkpCisgICAgICAgICAgICBpZiAodXNlQ29udmV4R3Jh
ZGllbnQoYmFja2dyb3VuZEltYWdlQ29sb3IpKQogICAgICAgICAgICAgICAgIGRyYXdBeGlhbEdy
YWRpZW50KGNnQ29udGV4dCwgZ3JhZGllbnRXaXRoTmFtZShDb252ZXhHcmFkaWVudCksIHRodW1i
bmFpbFJlY3QubG9jYXRpb24oKSwgRmxvYXRQb2ludCh0aHVtYm5haWxSZWN0LngoKSwgdGh1bWJu
YWlsUmVjdC5tYXhZKCkpLCBMaW5lYXJJbnRlcnBvbGF0aW9uKTsKICAgICAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgICAgIGRyYXdBeGlhbEdyYWRpZW50KGNnQ29udGV4dCwgZ3JhZGllbnRX
aXRoTmFtZShTaGFkZUdyYWRpZW50KSwgdGh1bWJuYWlsUmVjdC5sb2NhdGlvbigpLCBGbG9hdFBv
aW50KHRodW1ibmFpbFJlY3QueCgpLCB0aHVtYm5haWxSZWN0Lm1heFkoKSksIExpbmVhckludGVy
cG9sYXRpb24pOwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MzY0MSkKKysrIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDYtMjgg
IFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IENvbG9y
J3MgaW50ZXJmYWNlIGJ5IHJlbW92aW5nIGlzRGFyaygpIGFuZCBsaWdodG5lc3MoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNzA3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBSZW1vdmUgV2ViQ29y
ZTo6bGlnaHRuZXNzKCkgYW5kIENvbG9yOjpsaWdodG5lc3MoKSwgYW5kIHJlcGxhY2Ugd2l0aAor
ICAgICAgICAgIENvbG9yOjpsdW1pbmFuY2UoKSwgd2hpY2ggaXMgYWxtb3N0IHRoZSBzYW1lLCBi
dXQgbGlrZWx5IHRvIGJlIG1vcmUKKyAgICAgICAgICBpbiBsaW5lIHdpdGggcGVyY2VwdHVhbCBs
aWdodG5lc3MgcGVvcGxlIGhhZCBpbiBtaW5kLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3VwZGF0ZVNjcm9sbFZp
ZXdCYWNrZ3JvdW5kXSk6CisKIDIwMjAtMDYtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggdGhyZWFkLXNhZmV0eSBpc3N1ZSBpbiB3ZWJQcm9jZXNzUG9v
bEhpZ2hEeW5hbWljUmFuZ2VEaWRDaGFuZ2VDYWxsYmFjaygpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQkocmV2aXNpb24gMjYzNjE5
KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0JKHdv
cmtpbmcgY29weSkKQEAgLTUzMSw4ICs1MzEsOCBAQCAtICh2b2lkKV91cGRhdGVTY3JvbGxWaWV3
QmFja2dyb3VuZAogICAgIGF1dG8gdWlCYWNrZ3JvdW5kQ29sb3IgPSBhZG9wdE5TKFtbVUlDb2xv
ciBhbGxvY10gaW5pdFdpdGhDR0NvbG9yOmNhY2hlZENHQ29sb3IoY29sb3IpXSk7CiAgICAgW19z
Y3JvbGxWaWV3IHNldEJhY2tncm91bmRDb2xvcjp1aUJhY2tncm91bmRDb2xvci5nZXQoKV07CiAK
LSAgICAvLyBVcGRhdGUgdGhlIGluZGljYXRvciBzdHlsZSBiYXNlZCBvbiB0aGUgbGlnaHRuZXNz
L2RhcmtuZXNzIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLgotICAgIGlmIChjb2xvci5saWdodG5l
c3MoKSA8PSAuNWYgJiYgY29sb3IuaXNWaXNpYmxlKCkpCisgICAgLy8gVXBkYXRlIHRoZSBpbmRp
Y2F0b3Igc3R5bGUgYmFzZWQgb24gdGhlIGx1bWluYW5jZSBvZiB0aGUgYmFja2dyb3VuZCBjb2xv
ci4KKyAgICBpZiAoY29sb3IubHVtaW5hbmNlKCkgPD0gLjVmICYmIGNvbG9yLmlzVmlzaWJsZSgp
KQogICAgICAgICBbX3Njcm9sbFZpZXcgc2V0SW5kaWNhdG9yU3R5bGU6VUlTY3JvbGxWaWV3SW5k
aWNhdG9yU3R5bGVXaGl0ZV07CiAgICAgZWxzZQogICAgICAgICBbX3Njcm9sbFZpZXcgc2V0SW5k
aWNhdG9yU3R5bGU6VUlTY3JvbGxWaWV3SW5kaWNhdG9yU3R5bGVCbGFja107CkluZGV4OiBUb29s
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjM2
NDEpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAor
MjAyMC0wNi0yOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU2lt
cGxpZnkgQ29sb3IncyBpbnRlcmZhY2UgYnkgcmVtb3ZpbmcgaXNEYXJrKCkgYW5kIGxpZ2h0bmVz
cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM3
MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db2xvclRlc3RzLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICBSZW1vdmUgdGVzdHMgb2YgQ29sb3I6OmxpZ2h0bmVz
cygpLgorCiAyMDIwLTA2LTI4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVuYW1lIGluaXRpYWxpemVUaHJlYWRpbmcgdG8gaW5pdGlhbGl6ZQpJbmRleDog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbG9yVGVzdHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db2xvclRlc3RzLmNwcAko
cmV2aXNpb24gMjYzNjE5KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Nv
bG9yVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw4ICs0Myw2IEBAIFRFU1QoQ29sb3Is
IFJHQlRvSFNMX1doaXRlKQogICAgIEVYUEVDVF9GTE9BVF9FUSgwLCBoc2xhQ29sb3Iuc2F0dXJh
dGlvbik7CiAgICAgRVhQRUNUX0ZMT0FUX0VRKDEsIGhzbGFDb2xvci5saWdodG5lc3MpOwogICAg
IAotICAgIEVYUEVDVF9GTE9BVF9FUShjb2xvci5saWdodG5lc3MoKSwgaHNsYUNvbG9yLmxpZ2h0
bmVzcyk7Ci0gICAgCiAgICAgYXV0byByb3VuZFRyaXBwZWRDb2xvciA9IG1ha2VTaW1wbGVDb2xv
cih0b1NSR0JBKGhzbGFDb2xvcikpOwogICAgIEVYUEVDVF9FUShjb2xvciwgcm91bmRUcmlwcGVk
Q29sb3IpOwogfQpAQCAtNTksOCArNTcsNiBAQCBURVNUKENvbG9yLCBSR0JUb0hTTF9CbGFjaykK
ICAgICBFWFBFQ1RfRkxPQVRfRVEoMCwgaHNsYUNvbG9yLnNhdHVyYXRpb24pOwogICAgIEVYUEVD
VF9GTE9BVF9FUSgwLCBoc2xhQ29sb3IubGlnaHRuZXNzKTsKIAotICAgIEVYUEVDVF9GTE9BVF9F
UShjb2xvci5saWdodG5lc3MoKSwgaHNsYUNvbG9yLmxpZ2h0bmVzcyk7Ci0KICAgICBhdXRvIHJv
dW5kVHJpcHBlZENvbG9yID0gbWFrZVNpbXBsZUNvbG9yKHRvU1JHQkEoaHNsYUNvbG9yKSk7CiAg
ICAgRVhQRUNUX0VRKGNvbG9yLCByb3VuZFRyaXBwZWRDb2xvcik7CiB9CkBAIC03NSw4ICs3MSw2
IEBAIFRFU1QoQ29sb3IsIFJHQlRvSFNMX1JlZCkKICAgICBFWFBFQ1RfRkxPQVRfRVEoMSwgaHNs
YUNvbG9yLnNhdHVyYXRpb24pOwogICAgIEVYUEVDVF9GTE9BVF9FUSgwLjUsIGhzbGFDb2xvci5s
aWdodG5lc3MpOwogCi0gICAgRVhQRUNUX0ZMT0FUX0VRKGNvbG9yLmxpZ2h0bmVzcygpLCBoc2xh
Q29sb3IubGlnaHRuZXNzKTsKLQogICAgIGF1dG8gcm91bmRUcmlwcGVkQ29sb3IgPSBtYWtlU2lt
cGxlQ29sb3IodG9TUkdCQShoc2xhQ29sb3IpKTsKICAgICBFWFBFQ1RfRVEoY29sb3IsIHJvdW5k
VHJpcHBlZENvbG9yKTsKIH0KQEAgLTkxLDggKzg1LDYgQEAgVEVTVChDb2xvciwgUkdCVG9IU0xf
R3JlZW4pCiAgICAgRVhQRUNUX0ZMT0FUX0VRKDEsIGhzbGFDb2xvci5zYXR1cmF0aW9uKTsKICAg
ICBFWFBFQ1RfRkxPQVRfRVEoMC41LCBoc2xhQ29sb3IubGlnaHRuZXNzKTsKIAotICAgIEVYUEVD
VF9GTE9BVF9FUShjb2xvci5saWdodG5lc3MoKSwgaHNsYUNvbG9yLmxpZ2h0bmVzcyk7Ci0KICAg
ICBhdXRvIHJvdW5kVHJpcHBlZENvbG9yID0gbWFrZVNpbXBsZUNvbG9yKHRvU1JHQkEoaHNsYUNv
bG9yKSk7CiAgICAgRVhQRUNUX0VRKGNvbG9yLCByb3VuZFRyaXBwZWRDb2xvcik7CiB9CkBAIC0x
MDcsOCArOTksNiBAQCBURVNUKENvbG9yLCBSR0JUb0hTTF9CbHVlKQogICAgIEVYUEVDVF9GTE9B
VF9FUSgxLCBoc2xhQ29sb3Iuc2F0dXJhdGlvbik7CiAgICAgRVhQRUNUX0ZMT0FUX0VRKDAuNSwg
aHNsYUNvbG9yLmxpZ2h0bmVzcyk7CiAKLSAgICBFWFBFQ1RfRkxPQVRfRVEoY29sb3IubGlnaHRu
ZXNzKCksIGhzbGFDb2xvci5saWdodG5lc3MpOwotCiAgICAgYXV0byByb3VuZFRyaXBwZWRDb2xv
ciA9IG1ha2VTaW1wbGVDb2xvcih0b1NSR0JBKGhzbGFDb2xvcikpOwogICAgIEVYUEVDVF9FUShj
b2xvciwgcm91bmRUcmlwcGVkQ29sb3IpOwogfQpAQCAtMTIzLDggKzExMyw2IEBAIFRFU1QoQ29s
b3IsIFJHQlRvSFNMX0RhcmtHcmF5KQogICAgIEVYUEVDVF9GTE9BVF9FUSgwLCBoc2xhQ29sb3Iu
c2F0dXJhdGlvbik7CiAgICAgRVhQRUNUX0ZMT0FUX0VRKDAuNTAxOTYwNzg0MzEzNzI1NDgsIGhz
bGFDb2xvci5saWdodG5lc3MpOwogICAgIAotICAgIEVYUEVDVF9GTE9BVF9FUShjb2xvci5saWdo
dG5lc3MoKSwgaHNsYUNvbG9yLmxpZ2h0bmVzcyk7Ci0KICAgICBhdXRvIHJvdW5kVHJpcHBlZENv
bG9yID0gbWFrZVNpbXBsZUNvbG9yKHRvU1JHQkEoaHNsYUNvbG9yKSk7CiAgICAgRVhQRUNUX0VR
KGNvbG9yLCByb3VuZFRyaXBwZWRDb2xvcik7CiB9CkBAIC0xMzksOCArMTI3LDYgQEAgVEVTVChD
b2xvciwgUkdCVG9IU0xfR3JheSkKICAgICBFWFBFQ1RfRkxPQVRfRVEoMCwgaHNsYUNvbG9yLnNh
dHVyYXRpb24pOwogICAgIEVYUEVDVF9GTE9BVF9FUSgwLjYyNzQ1MDk4MDM5MjE1Njg1LCBoc2xh
Q29sb3IubGlnaHRuZXNzKTsKIAotICAgIEVYUEVDVF9GTE9BVF9FUShjb2xvci5saWdodG5lc3Mo
KSwgaHNsYUNvbG9yLmxpZ2h0bmVzcyk7Ci0KICAgICBhdXRvIHJvdW5kVHJpcHBlZENvbG9yID0g
bWFrZVNpbXBsZUNvbG9yKHRvU1JHQkEoaHNsYUNvbG9yKSk7CiAgICAgRVhQRUNUX0VRKGNvbG9y
LCByb3VuZFRyaXBwZWRDb2xvcik7CiB9CkBAIC0xNTUsOCArMTQxLDYgQEAgVEVTVChDb2xvciwg
UkdCVG9IU0xfTGlnaHRHcmF5KQogICAgIEVYUEVDVF9GTE9BVF9FUSgwLCBoc2xhQ29sb3Iuc2F0
dXJhdGlvbik7CiAgICAgRVhQRUNUX0ZMT0FUX0VRKDAuNzUyOTQxMTc2NDcwNTg4MjIsIGhzbGFD
b2xvci5saWdodG5lc3MpOwogCi0gICAgRVhQRUNUX0ZMT0FUX0VRKGNvbG9yLmxpZ2h0bmVzcygp
LCBoc2xhQ29sb3IubGlnaHRuZXNzKTsKLQogICAgIGF1dG8gcm91bmRUcmlwcGVkQ29sb3IgPSBt
YWtlU2ltcGxlQ29sb3IodG9TUkdCQShoc2xhQ29sb3IpKTsKICAgICBFWFBFQ1RfRVEoY29sb3Is
IHJvdW5kVHJpcHBlZENvbG9yKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403120</attachid>
            <date>2020-06-29 15:14:35 -0700</date>
            <delta_ts>2020-06-29 15:17:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213707-20200629151434.patch</filename>
            <type>text/plain</type>
            <size>4573</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MzY5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA2LTI5ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSBDb2xvcidzIGludGVy
ZmFjZSBieSByZW1vdmluZyBpc0RhcmsoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNzA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgLSBNb3ZlIENvbG9yOjppc0RhcmsgdG8gUmVuZGVyVGhlbWVJT1Mu
bW0sIGl0J3Mgb25lIGNsaWVudCBhbmQgcmVuYW1lIGl0CisgICAgICAgICAgdG8gdXNlQ29udmV4
R3JhZGllbnQoKSB0byBpbmRpY2F0ZSB3aGF0IGl0IGlzIGFjdHVhbGx5IGRldGVybWluaW5nLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29sb3I6OmlzRGFyayBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjp1c2VDb252ZXhHcmFkaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUlPUzo6cGFpbnRQdXNoQnV0dG9uRGVjb3JhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVJT1M6OnBhaW50RmlsZVVwbG9hZEljb25EZWNvcmF0aW9ucyk6CisK
IDIwMjAtMDYtMjkgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bW92ZSByZW1haW5pbmcgbWFrZVNpbXBsZUNvbG9yRnJvbSogdmFyaWFudHMKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHJldmlzaW9uIDI2MzY5NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTMxLDE0ICsxMzEsNiBAQCBDb2xvciBDb2xvcjo6ZGFya2VuZWQoKSBjb25zdAog
ICAgIHJldHVybiBtYWtlU2ltcGxlQ29sb3IoU1JHQkEgeyBtdWx0aXBsaWVyICogciwgbXVsdGlw
bGllciAqIGcsIG11bHRpcGxpZXIgKiBiLCBhIH0pOwogfQogCi1ib29sIENvbG9yOjppc0Rhcmso
KSBjb25zdAotewotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSB1c2luZyBs
dW1pbmFuY2UuCi0gICAgYXV0byBbciwgZywgYiwgYV0gPSB0b1NSR0JBTG9zc3koKTsKLSAgICBm
bG9hdCBsYXJnZXN0Tm9uQWxwaGFDaGFubmVsID0gc3RkOjptYXgoeyByLCBnLCBiIH0pOwotICAg
IHJldHVybiBhID4gMC41ICYmIGxhcmdlc3ROb25BbHBoYUNoYW5uZWwgPCAwLjU7Ci19Ci0KIGZs
b2F0IENvbG9yOjpsaWdodG5lc3MoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBUaGlzIGNhbiBw
cm9iYWJseSBhdm9pZCBjb252ZXJzaW9uIHRvIHNSR0IgYnkgaGF2aW5nIHBlci1jb2xvcnNwYWNl
IGFsZ29yaXRobXMgZm9yIEhTTC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3IuaAkocmV2aXNpb24gMjYzNjk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuaAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDcgKzE0MSw2IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCBmbG9hdCBsdW1pbmFuY2UoKSBjb25zdDsKIAogICAgIC8v
IEZJWE1FOiBSZXBsYWNlIHJlbWFpbmluZyB1c2VzIHdpdGggbHVtaW5hbmNlLgotICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgaXNEYXJrKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgZmxvYXQg
bGlnaHRuZXNzKCkgY29uc3Q7CiAKICAgICAvLyBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9m
IFBvcnRlci1EdWZmJ3MgInNvdXJjZS1vdmVyIiBlcXVhdGlvbgpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQkocmV2aXNpb24gMjYzNjk3KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDUyLDEzICsxMDUyLDIxIEBAIGJvb2wgUmVuZGVyVGhlbWVJT1M6OnBhaW50QnV0dG9uRGVj
b3JhdGkKICAgICByZXR1cm4gcGFpbnRQdXNoQnV0dG9uRGVjb3JhdGlvbnMoYm94LCBwYWludElu
Zm8sIHJlY3QpOwogfQogCitzdGF0aWMgYm9vbCBzaG91bGRVc2VDb252ZXhHcmFkaWVudChjb25z
dCBDb2xvciYgYmFja2dyb3VuZENvbG9yKQoreworICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBw
cm9iYWJseSBiZSB1c2luZyBsdW1pbmFuY2UuCisgICAgYXV0byBbciwgZywgYiwgYV0gPSBiYWNr
Z3JvdW5kQ29sb3IudG9TUkdCQUxvc3N5KCk7CisgICAgZmxvYXQgbGFyZ2VzdE5vbkFscGhhQ2hh
bm5lbCA9IHN0ZDo6bWF4KHsgciwgZywgYiB9KTsKKyAgICByZXR1cm4gYSA+IDAuNSAmJiBsYXJn
ZXN0Tm9uQWxwaGFDaGFubmVsIDwgMC41OworfQorCiBib29sIFJlbmRlclRoZW1lSU9TOjpwYWlu
dFB1c2hCdXR0b25EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgR3JhcGhpY3ND
b250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKHBhaW50SW5mby5jb250ZXh0KCkpOwogICAgIEZs
b2F0UmVjdCBjbGlwID0gYWRkUm91bmRlZEJvcmRlckNsaXAoYm94LCBwYWludEluZm8uY29udGV4
dCgpLCByZWN0KTsKIAogICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBwYWludEluZm8uY29u
dGV4dCgpLnBsYXRmb3JtQ29udGV4dCgpOwotICAgIGlmIChib3guc3R5bGUoKS52aXNpdGVkRGVw
ZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLmlzRGFyaygpKQorICAgIGlm
IChzaG91bGRVc2VDb252ZXhHcmFkaWVudChib3guc3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29s
b3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpKSkKICAgICAgICAgZHJhd0F4aWFsR3JhZGll
bnQoY2dDb250ZXh0LCBncmFkaWVudFdpdGhOYW1lKENvbnZleEdyYWRpZW50KSwgY2xpcC5sb2Nh
dGlvbigpLCBGbG9hdFBvaW50KGNsaXAueCgpLCBjbGlwLm1heFkoKSksIExpbmVhckludGVycG9s
YXRpb24pOwogICAgIGVsc2UgewogICAgICAgICBkcmF3QXhpYWxHcmFkaWVudChjZ0NvbnRleHQs
IGdyYWRpZW50V2l0aE5hbWUoU2hhZGVHcmFkaWVudCksIGNsaXAubG9jYXRpb24oKSwgRmxvYXRQ
b2ludChjbGlwLngoKSwgY2xpcC5tYXhZKCkpLCBMaW5lYXJJbnRlcnBvbGF0aW9uKTsKQEAgLTEx
MDcsNyArMTExNSw3IEBAIGJvb2wgUmVuZGVyVGhlbWVJT1M6OnBhaW50RmlsZVVwbG9hZEljb24K
ICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcjIocGFpbnRJ
bmZvLmNvbnRleHQoKSk7CiAgICAgICAgICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gcGFp
bnRJbmZvLmNvbnRleHQoKS5wbGF0Zm9ybUNvbnRleHQoKTsKICAgICAgICAgICAgIHBhaW50SW5m
by5jb250ZXh0KCkuY2xpcCh0aHVtYm5haWxSZWN0KTsKLSAgICAgICAgICAgIGlmIChiYWNrZ3Jv
dW5kSW1hZ2VDb2xvci5pc0RhcmsoKSkKKyAgICAgICAgICAgIGlmIChzaG91bGRVc2VDb252ZXhH
cmFkaWVudChiYWNrZ3JvdW5kSW1hZ2VDb2xvcikpCiAgICAgICAgICAgICAgICAgZHJhd0F4aWFs
R3JhZGllbnQoY2dDb250ZXh0LCBncmFkaWVudFdpdGhOYW1lKENvbnZleEdyYWRpZW50KSwgdGh1
bWJuYWlsUmVjdC5sb2NhdGlvbigpLCBGbG9hdFBvaW50KHRodW1ibmFpbFJlY3QueCgpLCB0aHVt
Ym5haWxSZWN0Lm1heFkoKSksIExpbmVhckludGVycG9sYXRpb24pOwogICAgICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICAgICAgZHJhd0F4aWFsR3JhZGllbnQoY2dDb250ZXh0LCBncmFkaWVu
dFdpdGhOYW1lKFNoYWRlR3JhZGllbnQpLCB0aHVtYm5haWxSZWN0LmxvY2F0aW9uKCksIEZsb2F0
UG9pbnQodGh1bWJuYWlsUmVjdC54KCksIHRodW1ibmFpbFJlY3QubWF4WSgpKSwgTGluZWFySW50
ZXJwb2xhdGlvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403121</attachid>
            <date>2020-06-29 15:17:45 -0700</date>
            <delta_ts>2020-06-29 18:32:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213707-20200629151745.patch</filename>
            <type>text/plain</type>
            <size>4572</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MzY5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA2LTI5ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSBDb2xvcidzIGludGVy
ZmFjZSBieSByZW1vdmluZyBpc0RhcmsoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNzA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgLSBNb3ZlIENvbG9yOjppc0RhcmsgdG8gUmVuZGVyVGhlbWVJT1Mu
bW0sIGl0cyBvbmUgY2xpZW50IGFuZCByZW5hbWUgaXQKKyAgICAgICAgICB0byB1c2VDb252ZXhH
cmFkaWVudCgpIHRvIGluZGljYXRlIHdoYXQgaXQgaXMgYWN0dWFsbHkgZGV0ZXJtaW5pbmcuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDb2xvcjo6aXNEYXJrIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OnVzZUNvbnZleEdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lSU9TOjpwYWludFB1c2hCdXR0b25EZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUlPUzo6cGFpbnRGaWxlVXBsb2FkSWNvbkRlY29yYXRpb25zKToKKwog
MjAyMC0wNi0yOSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIHJlbWFpbmluZyBtYWtlU2ltcGxlQ29sb3JGcm9tKiB2YXJpYW50cwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAkocmV2aXNpb24gMjYzNjk3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzEsMTQgKzEzMSw2IEBAIENvbG9yIENvbG9yOjpkYXJrZW5lZCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1ha2VTaW1wbGVDb2xvcihTUkdCQSB7IG11bHRpcGxpZXIgKiByLCBtdWx0aXBs
aWVyICogZywgbXVsdGlwbGllciAqIGIsIGEgfSk7CiB9CiAKLWJvb2wgQ29sb3I6OmlzRGFyaygp
IGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHVzaW5nIGx1
bWluYW5jZS4KLSAgICBhdXRvIFtyLCBnLCBiLCBhXSA9IHRvU1JHQkFMb3NzeSgpOwotICAgIGZs
b2F0IGxhcmdlc3ROb25BbHBoYUNoYW5uZWwgPSBzdGQ6Om1heCh7IHIsIGcsIGIgfSk7Ci0gICAg
cmV0dXJuIGEgPiAwLjUgJiYgbGFyZ2VzdE5vbkFscGhhQ2hhbm5lbCA8IDAuNTsKLX0KLQogZmxv
YXQgQ29sb3I6OmxpZ2h0bmVzcygpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgY2FuIHBy
b2JhYmx5IGF2b2lkIGNvbnZlcnNpb24gdG8gc1JHQiBieSBoYXZpbmcgcGVyLWNvbG9yc3BhY2Ug
YWxnb3JpdGhtcyBmb3IgSFNMLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oCShyZXZpc2lvbiAyNjM2OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDEsNyArMTQxLDYgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIGZsb2F0IGx1bWluYW5jZSgpIGNvbnN0OwogCiAgICAgLy8g
RklYTUU6IFJlcGxhY2UgcmVtYWluaW5nIHVzZXMgd2l0aCBsdW1pbmFuY2UuCi0gICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBpc0RhcmsoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBmbG9hdCBs
aWdodG5lc3MoKSBjb25zdDsKIAogICAgIC8vIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2Yg
UG9ydGVyLUR1ZmYncyAic291cmNlLW92ZXIiIGVxdWF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCShyZXZpc2lvbiAyNjM2OTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0JKHdvcmtpbmcgY29weSkKQEAg
LTEwNTIsMTMgKzEwNTIsMjEgQEAgYm9vbCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRCdXR0b25EZWNv
cmF0aQogICAgIHJldHVybiBwYWludFB1c2hCdXR0b25EZWNvcmF0aW9ucyhib3gsIHBhaW50SW5m
bywgcmVjdCk7CiB9CiAKK3N0YXRpYyBib29sIHNob3VsZFVzZUNvbnZleEdyYWRpZW50KGNvbnN0
IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpCit7CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHBy
b2JhYmx5IGJlIHVzaW5nIGx1bWluYW5jZS4KKyAgICBhdXRvIFtyLCBnLCBiLCBhXSA9IGJhY2tn
cm91bmRDb2xvci50b1NSR0JBTG9zc3koKTsKKyAgICBmbG9hdCBsYXJnZXN0Tm9uQWxwaGFDaGFu
bmVsID0gc3RkOjptYXgoeyByLCBnLCBiIH0pOworICAgIHJldHVybiBhID4gMC41ICYmIGxhcmdl
c3ROb25BbHBoYUNoYW5uZWwgPCAwLjU7Cit9CisKIGJvb2wgUmVuZGVyVGhlbWVJT1M6OnBhaW50
UHVzaEJ1dHRvbkRlY29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYgYm94LCBjb25zdCBQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBHcmFwaGljc0Nv
bnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIocGFpbnRJbmZvLmNvbnRleHQoKSk7CiAgICAgRmxv
YXRSZWN0IGNsaXAgPSBhZGRSb3VuZGVkQm9yZGVyQ2xpcChib3gsIHBhaW50SW5mby5jb250ZXh0
KCksIHJlY3QpOwogCiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IHBhaW50SW5mby5jb250
ZXh0KCkucGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgaWYgKGJveC5zdHlsZSgpLnZpc2l0ZWREZXBl
bmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcikuaXNEYXJrKCkpCisgICAgaWYg
KHNob3VsZFVzZUNvbnZleEdyYWRpZW50KGJveC5zdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xv
cihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcikpKQogICAgICAgICBkcmF3QXhpYWxHcmFkaWVu
dChjZ0NvbnRleHQsIGdyYWRpZW50V2l0aE5hbWUoQ29udmV4R3JhZGllbnQpLCBjbGlwLmxvY2F0
aW9uKCksIEZsb2F0UG9pbnQoY2xpcC54KCksIGNsaXAubWF4WSgpKSwgTGluZWFySW50ZXJwb2xh
dGlvbik7CiAgICAgZWxzZSB7CiAgICAgICAgIGRyYXdBeGlhbEdyYWRpZW50KGNnQ29udGV4dCwg
Z3JhZGllbnRXaXRoTmFtZShTaGFkZUdyYWRpZW50KSwgY2xpcC5sb2NhdGlvbigpLCBGbG9hdFBv
aW50KGNsaXAueCgpLCBjbGlwLm1heFkoKSksIExpbmVhckludGVycG9sYXRpb24pOwpAQCAtMTEw
Nyw3ICsxMTE1LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRGaWxlVXBsb2FkSWNvbgog
ICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyMihwYWludElu
Zm8uY29udGV4dCgpKTsKICAgICAgICAgICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBwYWlu
dEluZm8uY29udGV4dCgpLnBsYXRmb3JtQ29udGV4dCgpOwogICAgICAgICAgICAgcGFpbnRJbmZv
LmNvbnRleHQoKS5jbGlwKHRodW1ibmFpbFJlY3QpOwotICAgICAgICAgICAgaWYgKGJhY2tncm91
bmRJbWFnZUNvbG9yLmlzRGFyaygpKQorICAgICAgICAgICAgaWYgKHNob3VsZFVzZUNvbnZleEdy
YWRpZW50KGJhY2tncm91bmRJbWFnZUNvbG9yKSkKICAgICAgICAgICAgICAgICBkcmF3QXhpYWxH
cmFkaWVudChjZ0NvbnRleHQsIGdyYWRpZW50V2l0aE5hbWUoQ29udmV4R3JhZGllbnQpLCB0aHVt
Ym5haWxSZWN0LmxvY2F0aW9uKCksIEZsb2F0UG9pbnQodGh1bWJuYWlsUmVjdC54KCksIHRodW1i
bmFpbFJlY3QubWF4WSgpKSwgTGluZWFySW50ZXJwb2xhdGlvbik7CiAgICAgICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgICAgICBkcmF3QXhpYWxHcmFkaWVudChjZ0NvbnRleHQsIGdyYWRpZW50
V2l0aE5hbWUoU2hhZGVHcmFkaWVudCksIHRodW1ibmFpbFJlY3QubG9jYXRpb24oKSwgRmxvYXRQ
b2ludCh0aHVtYm5haWxSZWN0LngoKSwgdGh1bWJuYWlsUmVjdC5tYXhZKCkpLCBMaW5lYXJJbnRl
cnBvbGF0aW9uKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>