<?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>161216</bug_id>
          
          <creation_ts>2016-08-25 15:01:40 -0700</creation_ts>
          <short_desc>HTMLAreaElement&apos;s coords attributes parsing does not comply with the HTML specification</short_desc>
          <delta_ts>2023-12-18 08:15:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>zcorpan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1223260</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-25 15:01:40 -0700</bug_when>
    <thetext>HTMLAreaElement&apos;s coords attributes parsing does not comply with the HTML specification:
- https://html.spec.whatwg.org/#attr-area-coords</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223268</commentid>
    <comment_count>1</comment_count>
      <attachid>287028</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-25 15:08:39 -0700</bug_when>
    <thetext>Created attachment 287028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223588</commentid>
    <comment_count>2</comment_count>
      <attachid>287028</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-08-26 11:00:32 -0700</bug_when>
    <thetext>Comment on attachment 287028
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223599</commentid>
    <comment_count>3</comment_count>
      <attachid>287028</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-26 11:10:48 -0700</bug_when>
    <thetext>Comment on attachment 287028
Patch

Clearing flags on attachment: 287028

Committed r205030: &lt;http://trac.webkit.org/changeset/205030&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223600</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-26 11:10:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223618</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-26 12:09:35 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223619</commentid>
    <comment_count>6</comment_count>
      <attachid>287128</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-26 12:09:38 -0700</bug_when>
    <thetext>Created attachment 287128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223874</commentid>
    <comment_count>7</comment_count>
      <attachid>287128</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-26 22:10:27 -0700</bug_when>
    <thetext>Comment on attachment 287128
Patch

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

&gt; Source/WebCore/html/parser/HTMLParserIdioms.cpp:229
&gt; +template &lt;typename CharacterType&gt;
&gt; +static inline bool isHTMLSpaceOrDelimiter(CharacterType character)
&gt; +{
&gt; +    return isHTMLSpace(character) || character == &apos;,&apos; || character == &apos;;&apos;;
&gt; +}
&gt; +
&gt; +template &lt;typename CharacterType&gt;
&gt; +static inline bool isNumberStart(CharacterType character)
&gt; +{
&gt; +    return isASCIIDigit(character) || character == &apos;.&apos; || character == &apos;-&apos;;
&gt; +}

Is a template really needed? I think these could be be written to work on UChar and should work fine for LChar too.

&gt; Source/WebCore/html/parser/HTMLParserIdioms.cpp:262
&gt; +Vector&lt;double&gt; parseHTMLListOfOfFloatingPointNumberValues(const String&amp; input)

Should take a StringView rather than a String.

&gt; Source/WebCore/html/parser/HTMLParserIdioms.cpp:266
&gt; +    unsigned length = input.length();
&gt; +    if (!length)
&gt; +        return { };

This won’t be needed if the argument is a StringView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224015</commentid>
    <comment_count>8</comment_count>
      <attachid>287220</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-27 21:35:33 -0700</bug_when>
    <thetext>Created attachment 287220
Follow-up fixes

Patch to take Darin&apos;s feedback into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224023</commentid>
    <comment_count>9</comment_count>
      <attachid>287220</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-27 22:26:27 -0700</bug_when>
    <thetext>Comment on attachment 287220
Follow-up fixes

Clearing flags on attachment: 287220

Committed r205095: &lt;http://trac.webkit.org/changeset/205095&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224024</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-27 22:26:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229175</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-09-13 09:18:13 -0700</bug_when>
    <thetext>*** Bug 153124 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2000416</commentid>
    <comment_count>12</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2023-12-18 08:15:20 -0800</bug_when>
    <thetext>*** Bug 155516 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287028</attachid>
            <date>2016-08-25 15:08:39 -0700</date>
            <delta_ts>2016-08-26 12:09:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161216-20160825150636.patch</filename>
            <type>text/plain</type>
            <size>16138</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0OTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTU1NmYyNWJkMzI2ZGI0
ZTliYjAzZWI1YzUxNTRkNWZiNGQzZjc2NS4uNjNhMTU5YTA3YjNiOGEwNmQzZmRhYzM3NzQ0ODk0
YjBmODQyMmRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE2LTA4LTI1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSFRNTEFyZWFFbGVtZW50J3Mg
Y29vcmRzIGF0dHJpYnV0ZXMgcGFyc2luZyBkb2VzIG5vdCBjb21wbHkgd2l0aCB0aGUgSFRNTCBz
cGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjEyMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBIVE1MQXJlYUVsZW1lbnQncyBjb29yZHMgYXR0cmlidXRlcyBwYXJzaW5nIGRvZXMgbm90
IGNvbXBseSB3aXRoIHRoZSBIVE1MIHNwZWNpZmljYXRpb246CisgICAgICAgIC0gaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy8jYXR0ci1hcmVhLWNvb3JkcworCisgICAgICAgIFRoaXMgcGF0
Y2ggYWxpZ25zIG91ciBwYXJzaW5nIG9mIHRoaXMgYXR0cmlidXRlIHdpdGggdGhlIHNwZWNpZmlj
YXRpb24gYW5kIENocm9tZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4
aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBodG1sL0hUTUxBcmVhRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQXJlYUVsZW1lbnQ6OkhUTUxBcmVhRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQXJlYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxBcmVhRWxlbWVudDo6Z2V0UmVnaW9uKToKKyAgICAgICAgKiBodG1sL0hUTUxB
cmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aXNIVE1MU3BhY2VPckRlbGltaXRlcik6CisgICAgICAgIChX
ZWJDb3JlOjppc051bWJlclN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlSFRNTExpc3RP
Zk9mRmxvYXRpbmdQb2ludE51bWJlclZhbHVlc0ludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OnBhcnNlSFRNTExpc3RPZk9mRmxvYXRpbmdQb2ludE51bWJlclZhbHVlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpwYXJzZUhUTUxOb25OZWdhdGl2ZUludGVnZXIpOiBEZWxldGVkLgorICAgICAgICAq
IGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaDoKKwogMjAxNi0wOC0yNCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEl0IHNob3VsZCBub3QgYmUgcG9zc2li
bGUgdG8gYWNjZXNzIExvY2F0aW9uIGF0dHJpYnV0ZXMgY3Jvc3Mgb3JpZ2luCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBcmVhRWxlbWVudC5jcHAKaW5kZXggNGIzYTUyOTBjZTZkNmE4NzAwNjc3MTdm
NTJkNGFjYjRhZDQ1ZmRiNi4uODUwMWY5YzFiZGI1OTU4YjAxNzI0MjhlMTE3Mjc4MzY4OWY0ZDYy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5o
IgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJQYXRoLmgiCiAjaW5jbHVk
ZSAiUmVuZGVySW1hZ2UuaCIKQEAgLTM3LDcgKzM4LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAogaW5saW5lIEhUTUxBcmVhRWxlbWVudDo6SFRNTEFyZWFFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxBbmNo
b3JFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV9jb29yZHNMZW4oMCkKICAgICAs
IG1fbGFzdFNpemUoLTEsIC0xKQogICAgICwgbV9zaGFwZShVbmtub3duKQogewpAQCAtNjIsNyAr
NjIsNyBAQCB2b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaQogICAgICAgICAgICAgbV9zaGFwZSA9IFJl
Y3Q7CiAgICAgICAgIGludmFsaWRhdGVDYWNoZWRSZWdpb24oKTsKICAgICB9IGVsc2UgaWYgKG5h
bWUgPT0gY29vcmRzQXR0cikgewotICAgICAgICBtX2Nvb3JkcyA9IG5ld0Nvb3Jkc0FycmF5KHZh
bHVlLnN0cmluZygpLCBtX2Nvb3Jkc0xlbik7CisgICAgICAgIG1fY29vcmRzID0gcGFyc2VIVE1M
TGlzdE9mT2ZGbG9hdGluZ1BvaW50TnVtYmVyVmFsdWVzKHZhbHVlLnN0cmluZygpKTsKICAgICAg
ICAgaW52YWxpZGF0ZUNhY2hlZFJlZ2lvbigpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBhbHRB
dHRyIHx8IG5hbWUgPT0gYWNjZXNza2V5QXR0cikgewogICAgICAgICAvLyBEbyBub3RoaW5nLgpA
QCAtMTI5LDcgKzEyOSw3IEBAIExheW91dFJlY3QgSFRNTEFyZWFFbGVtZW50Ojpjb21wdXRlUmVj
dChSZW5kZXJPYmplY3QqIG9iaikgY29uc3QKIAogUGF0aCBIVE1MQXJlYUVsZW1lbnQ6OmdldFJl
Z2lvbihjb25zdCBMYXlvdXRTaXplJiBzaXplKSBjb25zdAogewotICAgIGlmICghbV9jb29yZHMg
JiYgbV9zaGFwZSAhPSBEZWZhdWx0KQorICAgIGlmIChtX2Nvb3Jkcy5pc0VtcHR5KCkgJiYgbV9z
aGFwZSAhPSBEZWZhdWx0KQogICAgICAgICByZXR1cm4gUGF0aCgpOwogCiAgICAgTGF5b3V0VW5p
dCB3aWR0aCA9IHNpemUud2lkdGgoKTsKQEAgLTEzOCwzOCArMTM4LDM3IEBAIFBhdGggSFRNTEFy
ZWFFbGVtZW50OjpnZXRSZWdpb24oY29uc3QgTGF5b3V0U2l6ZSYgc2l6ZSkgY29uc3QKICAgICAv
LyBJZiBlbGVtZW50IG9taXRzIHRoZSBzaGFwZSBhdHRyaWJ1dGUsIHNlbGVjdCBzaGFwZSBiYXNl
ZCBvbiBudW1iZXIgb2YgY29vcmRpbmF0ZXMuCiAgICAgU2hhcGUgc2hhcGUgPSBtX3NoYXBlOwog
ICAgIGlmIChzaGFwZSA9PSBVbmtub3duKSB7Ci0gICAgICAgIGlmIChtX2Nvb3Jkc0xlbiA9PSAz
KQorICAgICAgICBpZiAobV9jb29yZHMuc2l6ZSgpID09IDMpCiAgICAgICAgICAgICBzaGFwZSA9
IENpcmNsZTsKLSAgICAgICAgZWxzZSBpZiAobV9jb29yZHNMZW4gPT0gNCkKKyAgICAgICAgZWxz
ZSBpZiAobV9jb29yZHMuc2l6ZSgpID09IDQpCiAgICAgICAgICAgICBzaGFwZSA9IFJlY3Q7Ci0g
ICAgICAgIGVsc2UgaWYgKG1fY29vcmRzTGVuID49IDYpCisgICAgICAgIGVsc2UgaWYgKG1fY29v
cmRzLnNpemUoKSA+PSA2KQogICAgICAgICAgICAgc2hhcGUgPSBQb2x5OwogICAgIH0KIAogICAg
IFBhdGggcGF0aDsKICAgICBzd2l0Y2ggKHNoYXBlKSB7CiAgICAgICAgIGNhc2UgUG9seToKLSAg
ICAgICAgICAgIGlmIChtX2Nvb3Jkc0xlbiA+PSA2KSB7Ci0gICAgICAgICAgICAgICAgaW50IG51
bVBvaW50cyA9IG1fY29vcmRzTGVuIC8gMjsKLSAgICAgICAgICAgICAgICBwYXRoLm1vdmVUbyhG
bG9hdFBvaW50KG1pbmltdW1WYWx1ZUZvckxlbmd0aChtX2Nvb3Jkc1swXSwgd2lkdGgpLCBtaW5p
bXVtVmFsdWVGb3JMZW5ndGgobV9jb29yZHNbMV0sIGhlaWdodCkpKTsKKyAgICAgICAgICAgIGlm
IChtX2Nvb3Jkcy5zaXplKCkgPj0gNikgeworICAgICAgICAgICAgICAgIGludCBudW1Qb2ludHMg
PSBtX2Nvb3Jkcy5zaXplKCkgLyAyOworICAgICAgICAgICAgICAgIHBhdGgubW92ZVRvKEZsb2F0
UG9pbnQobV9jb29yZHNbMF0sIG1fY29vcmRzWzFdKSk7CiAgICAgICAgICAgICAgICAgZm9yIChp
bnQgaSA9IDE7IGkgPCBudW1Qb2ludHM7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgcGF0aC5h
ZGRMaW5lVG8oRmxvYXRQb2ludChtaW5pbXVtVmFsdWVGb3JMZW5ndGgobV9jb29yZHNbaSAqIDJd
LCB3aWR0aCksIG1pbmltdW1WYWx1ZUZvckxlbmd0aChtX2Nvb3Jkc1tpICogMiArIDFdLCBoZWln
aHQpKSk7CisgICAgICAgICAgICAgICAgICAgIHBhdGguYWRkTGluZVRvKEZsb2F0UG9pbnQobV9j
b29yZHNbaSAqIDJdLCBtX2Nvb3Jkc1tpICogMiArIDFdKSk7CiAgICAgICAgICAgICAgICAgcGF0
aC5jbG9zZVN1YnBhdGgoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIENpcmNsZToKLSAgICAgICAgICAgIGlmIChtX2Nvb3Jkc0xlbiA+PSAzKSB7Ci0g
ICAgICAgICAgICAgICAgTGVuZ3RoIHJhZGl1cyA9IG1fY29vcmRzWzJdOwotICAgICAgICAgICAg
ICAgIGludCByID0gc3RkOjptaW4obWluaW11bVZhbHVlRm9yTGVuZ3RoKHJhZGl1cywgd2lkdGgp
LCBtaW5pbXVtVmFsdWVGb3JMZW5ndGgocmFkaXVzLCBoZWlnaHQpKTsKLSAgICAgICAgICAgICAg
ICBwYXRoLmFkZEVsbGlwc2UoRmxvYXRSZWN0KG1pbmltdW1WYWx1ZUZvckxlbmd0aChtX2Nvb3Jk
c1swXSwgd2lkdGgpIC0gciwgbWluaW11bVZhbHVlRm9yTGVuZ3RoKG1fY29vcmRzWzFdLCBoZWln
aHQpIC0gciwgMiAqIHIsIDIgKiByKSk7CisgICAgICAgICAgICBpZiAobV9jb29yZHMuc2l6ZSgp
ID49IDMpIHsKKyAgICAgICAgICAgICAgICBkb3VibGUgciA9IG1fY29vcmRzWzJdOworICAgICAg
ICAgICAgICAgIHBhdGguYWRkRWxsaXBzZShGbG9hdFJlY3QobV9jb29yZHNbMF0gLSByLCBtX2Nv
b3Jkc1sxXSAtIHIsIDIgKiByLCAyICogcikpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgUmVjdDoKLSAgICAgICAgICAgIGlmIChtX2Nvb3Jkc0xlbiA+
PSA0KSB7Ci0gICAgICAgICAgICAgICAgaW50IHgwID0gbWluaW11bVZhbHVlRm9yTGVuZ3RoKG1f
Y29vcmRzWzBdLCB3aWR0aCk7Ci0gICAgICAgICAgICAgICAgaW50IHkwID0gbWluaW11bVZhbHVl
Rm9yTGVuZ3RoKG1fY29vcmRzWzFdLCBoZWlnaHQpOwotICAgICAgICAgICAgICAgIGludCB4MSA9
IG1pbmltdW1WYWx1ZUZvckxlbmd0aChtX2Nvb3Jkc1syXSwgd2lkdGgpOwotICAgICAgICAgICAg
ICAgIGludCB5MSA9IG1pbmltdW1WYWx1ZUZvckxlbmd0aChtX2Nvb3Jkc1szXSwgaGVpZ2h0KTsK
KyAgICAgICAgICAgIGlmIChtX2Nvb3Jkcy5zaXplKCkgPj0gNCkgeworICAgICAgICAgICAgICAg
IGRvdWJsZSB4MCA9IG1fY29vcmRzWzBdOworICAgICAgICAgICAgICAgIGRvdWJsZSB5MCA9IG1f
Y29vcmRzWzFdOworICAgICAgICAgICAgICAgIGRvdWJsZSB4MSA9IG1fY29vcmRzWzJdOworICAg
ICAgICAgICAgICAgIGRvdWJsZSB5MSA9IG1fY29vcmRzWzNdOwogICAgICAgICAgICAgICAgIHBh
dGguYWRkUmVjdChGbG9hdFJlY3QoeDAsIHkwLCB4MSAtIHgwLCB5MSAtIHkwKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFyZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVu
dC5oCmluZGV4IGJmODEzYmFlNGM3MjY5ZjkwNDVmMTFjYTExN2JjMjhmZmRlMTZkZTMuLjRlZmUx
ODVkYmNlMzJmNjA5NTQxMTBkNGNjMzBiMjJjMWU0ZWYyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXJlYUVsZW1lbnQuaApAQCAtNjUsOCArNjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW52
YWxpZGF0ZUNhY2hlZFJlZ2lvbigpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhdGg+IG1fcmVn
aW9uOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxMZW5ndGhbXT4gbV9jb29yZHM7Ci0gICAgaW50IG1f
Y29vcmRzTGVuOworICAgIFZlY3Rvcjxkb3VibGU+IG1fY29vcmRzOwogICAgIExheW91dFNpemUg
bV9sYXN0U2l6ZTsKICAgICBTaGFwZSBtX3NoYXBlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9tcy5jcHAKaW5kZXggYTAxNWNlNjU4ZTgxNWYxYmY0
ZGVhYTJmNjQzMTgwNmJmOWQ1MmI2NC4uYWQzMzJlZTllYThkNzg3ODlmNTg3NzI0M2U0YmVlMDc5
ZmM0MTRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNl
cklkaW9tcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklk
aW9tcy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvZHRvYS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjE1LDYgKzIxNiw2NCBAQCBPcHRpb25hbDxpbnQ+IHBh
cnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlcihjb25zdCBTdHJpbmcmIGlucHV0KQogICAgIHJldHVy
biBzaWduZWRWYWx1ZTsKIH0KIAordGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Citz
dGF0aWMgaW5saW5lIGJvb2wgaXNIVE1MU3BhY2VPckRlbGltaXRlcihDaGFyYWN0ZXJUeXBlIGNo
YXJhY3RlcikKK3sKKyAgICByZXR1cm4gaXNIVE1MU3BhY2UoY2hhcmFjdGVyKSB8fCBjaGFyYWN0
ZXIgPT0gJywnIHx8IGNoYXJhY3RlciA9PSAnOyc7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBD
aGFyYWN0ZXJUeXBlPgorc3RhdGljIGlubGluZSBib29sIGlzTnVtYmVyU3RhcnQoQ2hhcmFjdGVy
VHlwZSBjaGFyYWN0ZXIpCit7CisgICAgcmV0dXJuIGlzQVNDSUlEaWdpdChjaGFyYWN0ZXIpIHx8
IGNoYXJhY3RlciA9PSAnLicgfHwgY2hhcmFjdGVyID09ICctJzsKK30KKworLy8gaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvaW5mcmFzdHJ1Y3R1cmUuaHRtbCNydWxlcy1m
b3ItcGFyc2luZy1mbG9hdGluZy1wb2ludC1udW1iZXItdmFsdWVzCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgQ2hhcmFjdGVyVHlwZT4KK3N0YXRpYyBWZWN0b3I8ZG91YmxlPiBwYXJzZUhUTUxMaXN0T2ZP
ZkZsb2F0aW5nUG9pbnROdW1iZXJWYWx1ZXNJbnRlcm5hbChjb25zdCBDaGFyYWN0ZXJUeXBlKiBw
b3NpdGlvbiwgY29uc3QgQ2hhcmFjdGVyVHlwZSogZW5kKQoreworICAgIFZlY3Rvcjxkb3VibGU+
IG51bWJlcnM7CisKKyAgICAvLyBUaGlzIHNraXBzIHBhc3QgYW55IGxlYWRpbmcgZGVsaW1pdGVy
cy4KKyAgICB3aGlsZSAocG9zaXRpb24gPCBlbmQgJiYgaXNIVE1MU3BhY2VPckRlbGltaXRlcigq
cG9zaXRpb24pKQorICAgICAgICArK3Bvc2l0aW9uOworCisgICAgd2hpbGUgKHBvc2l0aW9uIDwg
ZW5kKSB7CisgICAgICAgIC8vIFRoaXMgc2tpcHMgcGFzdCBsZWFkaW5nIGdhcmJhZ2UuCisgICAg
ICAgIHdoaWxlIChwb3NpdGlvbiA8IGVuZCAmJiAhKGlzSFRNTFNwYWNlT3JEZWxpbWl0ZXIoKnBv
c2l0aW9uKSB8fCBpc051bWJlclN0YXJ0KCpwb3NpdGlvbikpKQorICAgICAgICAgICAgKytwb3Np
dGlvbjsKKworICAgICAgICBjb25zdCBDaGFyYWN0ZXJUeXBlKiBudW1iZXJTdGFydCA9IHBvc2l0
aW9uOworICAgICAgICB3aGlsZSAocG9zaXRpb24gPCBlbmQgJiYgIWlzSFRNTFNwYWNlT3JEZWxp
bWl0ZXIoKnBvc2l0aW9uKSkKKyAgICAgICAgICAgICsrcG9zaXRpb247CisKKyAgICAgICAgc2l6
ZV90IHBhcnNlZExlbmd0aCA9IDA7CisgICAgICAgIGRvdWJsZSBudW1iZXIgPSBwYXJzZURvdWJs
ZShudW1iZXJTdGFydCwgcG9zaXRpb24gLSBudW1iZXJTdGFydCwgcGFyc2VkTGVuZ3RoKTsKKyAg
ICAgICAgbnVtYmVycy5hcHBlbmQocGFyc2VkTGVuZ3RoID4gMCAmJiBzdGQ6OmlzZmluaXRlKG51
bWJlcikgPyBudW1iZXIgOiAwKTsKKworICAgICAgICAvLyBUaGlzIHNraXBzIHBhc3QgdGhlIGRl
bGltaXRlci4KKyAgICAgICAgd2hpbGUgKHBvc2l0aW9uIDwgZW5kICYmIGlzSFRNTFNwYWNlT3JE
ZWxpbWl0ZXIoKnBvc2l0aW9uKSkKKyAgICAgICAgICAgICsrcG9zaXRpb247CisgICAgfQorCisg
ICAgcmV0dXJuIG51bWJlcnM7Cit9CisKK1ZlY3Rvcjxkb3VibGU+IHBhcnNlSFRNTExpc3RPZk9m
RmxvYXRpbmdQb2ludE51bWJlclZhbHVlcyhjb25zdCBTdHJpbmcmIGlucHV0KQoreworICAgIHVu
c2lnbmVkIGxlbmd0aCA9IGlucHV0Lmxlbmd0aCgpOworICAgIGlmICghbGVuZ3RoKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgaWYgKExJS0VMWShpbnB1dC5pczhCaXQoKSkpIHsKKyAgICAg
ICAgYXV0byogc3RhcnQgPSBpbnB1dC5jaGFyYWN0ZXJzOCgpOworICAgICAgICByZXR1cm4gcGFy
c2VIVE1MTGlzdE9mT2ZGbG9hdGluZ1BvaW50TnVtYmVyVmFsdWVzSW50ZXJuYWwoc3RhcnQsIHN0
YXJ0ICsgbGVuZ3RoKTsKKyAgICB9CisKKyAgICBhdXRvKiBzdGFydCA9IGlucHV0LmNoYXJhY3Rl
cnMxNigpOworICAgIHJldHVybiBwYXJzZUhUTUxMaXN0T2ZPZkZsb2F0aW5nUG9pbnROdW1iZXJW
YWx1ZXNJbnRlcm5hbChzdGFydCwgc3RhcnQgKyBsZW5ndGgpOworfQorCiBzdGF0aWMgYm9vbCB0
aHJlYWRTYWZlRXF1YWwoY29uc3QgU3RyaW5nSW1wbCYgYSwgY29uc3QgU3RyaW5nSW1wbCYgYikK
IHsKICAgICBpZiAoJmEgPT0gJmIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MUGFyc2VySWRpb21zLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
UGFyc2VySWRpb21zLmgKaW5kZXggMWQ1ODNjYzIzYmU5M2U2ZDlhMDUxOTMxNGQxMDMyYTdhYWRj
YzJiYS4uMDFhZWU0MDVjNmRkNjEzYzZhMjJjYmYwOGMyMzc1YTIyNTNkNTgwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9tcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgPHVuaWNvZGUvdWNoYXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Niw2ICs2Nyw5IEBAIFdFQkNPUkVfRVhQT1JUIE9w
dGlvbmFsPGludD4gcGFyc2VIVE1MSW50ZWdlcihjb25zdCBTdHJpbmcmKTsKIC8vIGh0dHA6Ly93
d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3J1bGVzLWZvci1wYXJz
aW5nLW5vbi1uZWdhdGl2ZS1pbnRlZ2VycwogV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8aW50PiBw
YXJzZUhUTUxOb25OZWdhdGl2ZUludGVnZXIoY29uc3QgU3RyaW5nJik7CiAKKy8vIGh0dHBzOi8v
aHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2luZnJhc3RydWN0dXJlLmh0bWwjcnVsZXMt
Zm9yLXBhcnNpbmctZmxvYXRpbmctcG9pbnQtbnVtYmVyLXZhbHVlcworVmVjdG9yPGRvdWJsZT4g
cGFyc2VIVE1MTGlzdE9mT2ZGbG9hdGluZ1BvaW50TnVtYmVyVmFsdWVzKGNvbnN0IFN0cmluZyYp
OworCiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9pbmZyYXN0cnVj
dHVyZS5odG1sI2NvcnMtc2V0dGluZ3MtYXR0cmlidXRlCiBTdHJpbmcgcGFyc2VDT1JTU2V0dGlu
Z3NBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YWFiYzVkNTUyMDM1
NTcyODU3MTRlOTBhNjJhM2FhOGVlOGZhNDY2Li42NGM1ZTUxNzZiNDE5NDdhNmI0NGQ4Zjg5N2Nl
NzlmOTM5ZGIyNTYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDgtMjUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBIVE1MQXJlYUVsZW1lbnQncyBjb29y
ZHMgYXR0cmlidXRlcyBwYXJzaW5nIGRvZXMgbm90IGNvbXBseSB3aXRoIHRoZSBIVE1MIHNwZWNp
ZmljYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MTIxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVuc2tpcCB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC90aGUtYXJlYS1lbGVtZW50L2FyZWEtY29vcmRzLmh0bWwKKyAgICAgICAgYXMgaXQgaXMgbm93
IHBhc3NpbmcgYW5kIG5vdCBsb25nZXIgY3Jhc2hpbmcgaW4gZGVidWcgYnVpbGRzLgorCisgICAg
ICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNi0wOC0yNCAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIERSVF0gR2V0IGJhc2ljIHZpZXdw
b3J0IHRlc3RzIHdvcmtpbmcgaW4gRFJUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRl
eCBmODUzNGE0NTlhOGE5NjE4NDI1MmJkYTQ3ZTBlZTczMTliZjY2ZjBlLi40NTExMmJkY2RmMjdi
NTNhN2U3MWUyZmVhZTIxNGViOWMxYjAwMmRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wOC0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIEhUTUxBcmVhRWxlbWVudCdzIGNvb3JkcyBhdHRyaWJ1dGVzIHBh
cnNpbmcgZG9lcyBub3QgY29tcGx5IHdpdGggdGhlIEhUTUwgc3BlY2lmaWNhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMjE2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBXM0Mg
dGVzdCBub3cgdGhhdCBhbGwgY2hlY2tzIGFyZSBwYXNzaW5nLiBDaHJvbWUgaXMgYWxzbyBwYXNz
aW5nIGFsbCB0aGUgY2hlY2tzLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWFyZWEtZWxlbWVudC9hcmVhLWNvb3Jkcy1l
eHBlY3RlZC50eHQ6CisKIDIwMTYtMDgtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELnJl
c2V0VHJhbnNmb3JtKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDhkMjQzZTQ1YjA4MzA0YjMwYmRj
MjMwZjk4YjQwM2YwMGZkZjAxODQuLjc2MGQxZWJkMmFiMDFmYWM5NzkwZGY4ZGNmMjBjYmI4Y2Ey
YmY1NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDc2LDggKzQ3Niw2IEBAIHdlYmtpdC5vcmcv
Yi8xNTQzMTAgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9k
b20vcmVmbGVjdGlvCiAjIFdQVCB0ZXN0cyB0aGF0IGZhaWwgYWZ0ZXIgZG9pbmcgZnVsbCB0ZXN0
IHJlcG9zaXRvcnkgcmVpbXBvcnQgYW5kIG5lZWQgZnVydGhlciBpbnZlc3RpZ2F0aW9uCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtZW50aXR5LWJv
ZHktZG9jdW1lbnQuaHRtIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtY3JlYXRlRWxlbWVudC1uYW1lc3Bh
Y2UuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTU1NTE2IFsgRGVidWcgXSBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvdGhlLWFyZWEtZWxlbWVudC9hcmVhLWNvb3Jkcy5odG1sIFsgU2tpcCBdCi13ZWJraXQu
b3JnL2IvMTU1NTE2IFsgUmVsZWFzZSBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtYXJlYS1lbGVtZW50L2FyZWEtY29v
cmRzLmh0bWwgWyBGYWlsdXJlIF0KIAogIyBXM0MgWE1MSHR0cFJlcXVlc3QgdGVzdHMKIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVlc3Qt
dGltZW91dC1hYm9ydGVkLmh0bWwgWyBTbG93IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC90aGUtYXJlYS1lbGVtZW50L2FyZWEtY29vcmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC90aGUtYXJlYS1lbGVtZW50L2FyZWEtY29vcmRzLWV4cGVjdGVkLnR4dAppbmRl
eCBhZTVhZGVkOTAzNDMyOGQzMDE2YzI2OWUwODg4YzIzMGQ1MTIwMWEzLi42OTc3ZTYwNWFmZmEz
YmRiYzAwM2Y2NTdkYTI1ZGEzMWM0YmQ2ZjE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvdGhlLWFyZWEtZWxlbWVudC9hcmVhLWNvb3Jkcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L3RoZS1hcmVhLWVsZW1lbnQvYXJlYS1jb29yZHMtZXhwZWN0ZWQudHh0CkBA
IC03LDkgKzcsMjkgQEAgUEFTUyBUQUI6ICIyXHQyXHQxMFx0MTAiIChyZWN0KQogUEFTUyBGT1JN
IEZFRUQ6ICIyXGYyXGYxMFxmMTAiIChyZWN0KSAKIFBBU1MgTElORSBGRUVEOiAiMlxuMlxuMTBc
bjEwIiAocmVjdCkgCiBQQVNTIENBUlJJR0FHRSBSRVRVUk46ICIyXHIyXHIxMFxyMTAiIChyZWN0
KSAKLUZBSUwgTElORSBUQUJVTEFUSU9OOiAiMlx2Mlx2MTBcdjEwIiAocmVjdCkgYXNzZXJ0X2Vx
dWFsczogZWxlbWVudEZyb21Qb2ludCgzLCAzKSBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGltZyBz
cmM9Ii9pbWFnZXMvdGhyZWVjb2xvcnMucG5nIiB1c2VtYXA9IiN4IiBpZD0iaW1nIiB3Li4uIGJ1
dCBnb3QgRWxlbWVudCBub2RlIDxhcmVhIGlkPSJhcmVhIiBzaGFwZT0icmVjdCIgY29vcmRzPSIy
CzILMTALMTAiPjwvYXJlYT4KLUZBSUwgTElORSBORVhUOiAiMsKFMsKFMTDChTEwIiAocmVjdCkg
YXNzZXJ0X2VxdWFsczogZWxlbWVudEZyb21Qb2ludCgzLCAzKSBleHBlY3RlZCBFbGVtZW50IG5v
ZGUgPGltZyBzcmM9Ii9pbWFnZXMvdGhyZWVjb2xvcnMucG5nIiB1c2VtYXA9IiN4IiBpZD0iaW1n
IiB3Li4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxhcmVhIGlkPSJhcmVhIiBzaGFwZT0icmVjdCIg
Y29vcmRzPSIywoUywoUxMMKFMTAiPjwvYXJlYT4KLUZBSUwgRU4gUVVBRDogIjLigIAy4oCAMTDi
gIAxMCIgKHJlY3QpIGFzc2VydF9lcXVhbHM6IGVsZW1lbnRGcm9tUG9pbnQoMywgMykgZXhwZWN0
ZWQgRWxlbWVudCBub2RlIDxpbWcgc3JjPSIvaW1hZ2VzL3RocmVlY29sb3JzLnBuZyIgdXNlbWFw
PSIjeCIgaWQ9ImltZyIgdy4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YXJlYSBpZD0iYXJlYSIg
c2hhcGU9InJlY3QiIGNvb3Jkcz0iMuKAgDLigIAxMOKAgDEwIj48L2FyZWE+Ci1GQUlMIGFiYyBi
ZXR3ZWVuIG51bWJlcnM6ICIyYTJiMjBjMjAsMiwxMCwxMCIgKHJlY3QpIGFzc2VydF9lcXVhbHM6
IGVsZW1lbnRGcm9tUG9pbnQoMTEsIDkpIGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8aW1nIHNyYz0i
L2ltYWdlcy90aHJlZWNvbG9ycy5wbmciIHVzZW1hcD0iI3giIGlkPSJpbWciIHcuLi4gYnV0IGdv
dCBFbGVtZW50IG5vZGUgPGFyZWEgaWQ9ImFyZWEiIHNoYXBlPSJyZWN0IiBjb29yZHM9IjJhMmIy
MGMyMCwyLDEwLDEwIj48Li4uCi1GQUlMIENPTE9OIGJldHdlZW4gbnVtYmVyczogIjI6MjoyMDoy
MCwyLDEwLDEwIiAocmVjdCkgYXNzZXJ0X2VxdWFsczogZWxlbWVudEZyb21Qb2ludCgxMSwgOSkg
ZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxpbWcgc3JjPSIvaW1hZ2VzL3RocmVlY29sb3JzLnBuZyIg
dXNlbWFwPSIjeCIgaWQ9ImltZyIgdy4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YXJlYSBpZD0i
YXJlYSIgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMjoyOjIwOjIwLDIsMTAsMTAiPjwuLi4KLUZBSUwg
VSswMDAwIGJldHdlZW4gbnVtYmVyczogIjJcMDJcMDIwXDAyMCwyLDEwLDEwIiAocmVjdCkgYXNz
ZXJ0X2VxdWFsczogZWxlbWVudEZyb21Qb2ludCgxMSwgOSkgZXhwZWN0ZWQgRWxlbWVudCBub2Rl
IDxpbWcgc3JjPSIvaW1hZ2VzL3RocmVlY29sb3JzLnBuZyIgdXNlbWFwPSIjeCIgaWQ9ImltZyIg
dy4uLiBidXQgZ290IEVsZW1lbnQgbm9kZSA8YXJlYSBpZD0iYXJlYSIgc2hhcGU9InJlY3QiIGNv
b3Jkcz0iMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK1BBU1MgTElORSBUQUJVTEFUSU9O
OiAiMlx2Mlx2MTBcdjEwIiAocmVjdCkgCitQQVNTIExJTkUgTkVYVDogIjLChTLChTEwwoUxMCIg
KHJlY3QpIAorUEFTUyBFTiBRVUFEOiAiMuKAgDLigIAxMOKAgDEwIiAocmVjdCkgCitQQVNTIGFi
YyBiZXR3ZWVuIG51bWJlcnM6ICIyYTJiMjBjMjAsMiwxMCwxMCIgKHJlY3QpIAorUEFTUyBDT0xP
TiBiZXR3ZWVuIG51bWJlcnM6ICIyOjI6MjA6MjAsMiwxMCwxMCIgKHJlY3QpIAorUEFTUyBVKzAw
MDAgYmV0d2VlbiBudW1iZXJzOiAiMlwwMlwwMjBcMDIwLDIsMTAsMTAiIChyZWN0KSAKK1BBU1Mg
bGVhZGluZyBDT01NQTogIiwyLDIsMTAsMTAiIChyZWN0KSAKK1BBU1MgbGVhZGluZyBTUEFDRTog
IiAyLDIsMTAsMTAiIChyZWN0KSAKK1BBU1MgbGVhZGluZyBTRU1JQ09MT046ICI7MiwyLDEwLDEw
IiAocmVjdCkgCitQQVNTIHRyYWlsaW5nIENPTU1BOiAiMiwyLDEwLCIgKHJlY3QpIAorUEFTUyB0
cmFpbGluZyBTUEFDRTogIjIsMiwxMCAiIChyZWN0KSAKK1BBU1MgdHJhaWxpbmcgU0VNSUNPTE9O
OiAiMiwyLDEwOyIgKHJlY3QpIAorUEFTUyBQRVJDRU5UOiAiMiUsMiUsMTAlLDEwJSIgKHJlY3Qp
IAorUEFTUyBDU1MgdW5pdHM6ICIyaW4sMmluLDEwY20sMTBjbSIgKHJlY3QpIAorUEFTUyBmbG9h
dDogIjEuNCwxLjQsMTAsMTAiIChyZWN0KSAKK1BBU1MgbnVtYmVyIHN0YXJ0aW5nIHdpdGggUEVS
SU9EOiAiLjQsLjQsMTAsMTAiIChyZWN0KSAKK1BBU1Mgc2NpLW5vdDogIjIsMiwxZTEsMWUxIiAo
cmVjdCkgCitQQVNTIGxlYWRpbmcvdHJhaWxpbmcgZ2FyYmFnZTogIj0nMiwyLDEwLDEwJyAiIChy
ZWN0KSAKK1BBU1Mgbm9uLWFzY2lpIGdhcmJhZ2U6ICLigJwyLDIsMTAsMTBcIiIgKHJlY3QpIAor
UEFTUyBVUkwgZ2FyYmFnZSB3aXRoIG51bWJlcjogIjIsMiwxMGxzL3NwYWluL2hvbGlkYXlzL3Jl
Z2lvbnMvMTAvQ2FuYXJ5K0lzbGFuZHMvQ2FuYXJ5K0lzbGFuZHMuaHRtbCIgKHJlY3QpIAorUEFT
UyBjb25zZWN1dGl2ZSBDT01NQXM6ICIyLCwxMCwxMCIgKHJlY3QpIAorUEFTUyBjb25zZWN1dGl2
ZSBTUEFDRXM6ICIyICAxMCwxMCIgKHJlY3QpIAorUEFTUyBjb25zZWN1dGl2ZSBTRU1JQ09MT05z
OiAiMjs7MTAsMTAiIChyZWN0KSAKK1BBU1Mgc2V2ZXJhbCBjb25zZWN1dGl2ZSBzZXBhcmF0b3Jz
OiAiLCwyOyw7Miw7LDEwIFx0XHJcbjEwOzsiIChyZWN0KSAKK1BBU1Mgb25lIHRvbyBtYW55IG51
bWJlcnMsIHRyYWlsaW5nIENPTU1BOiAiMTAwLDEwMCwxMjAsMTAwLDEwMCwxMjAsMzAwLCIgKHBv
bHkpIAorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287128</attachid>
            <date>2016-08-26 12:09:38 -0700</date>
            <delta_ts>2016-08-27 20:43:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161216-20160826120734.patch</filename>
            <type>text/plain</type>
            <size>24807</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjk3OGVkOTJlMDE3ZWE5
YWFiZjkzNTc5Y2Q4ZDMwZDRiNzc5ZGU2ZC4uZGNjOWJjYjM5MTk3NDQ0NGQ4NmIxZGJhMjkyMDc5
ZDk5ZDc2ZjAyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTA4LTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBjcm9zc09yaWdp
bldpbmRvdy50b1N0cmluZygpIHNob3VsZCBub3QgYmUgYWxsb3dlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMjI1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQW5kcmVhcyBLbGluZy4KKworICAgICAgICBDYWxsaW5nIGNyb3NzT3JpZ2luV2luZG93
LnRvU3RyaW5nKCkgc2hvdWxkIG5vdCBiZSBhbGxvd2VkOgorICAgICAgICAtIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvI2Nyb3Nzb3JpZ2lucHJvcGVydGllcy0oLW8tKQorCisgICAgICAg
IEluIFdlYktpdCwgd2Ugd2VyZSBwcmludGluZyBhIHNlY3VyaXR5IGVycm9yIGluIHRoZSBjb25z
b2xlIGJ1dAorICAgICAgICByZXR1cm5pbmcgIltvYmplY3QgV2luZG93XSIgYW55d2F5LgorCisg
ICAgICAgIEluIEZpcmVmb3ggYW5kIENocm9tZSwgaXQgdGhyb3dzIGFuIGV4Y2VwdGlvbi4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0ZWQgZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ompz
RE9NV2luZG93R2V0T3duUHJvcGVydHlTbG90UmVzdHJpY3RlZEFjY2Vzcyk6CisKKzIwMTYtMDgt
MjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBIVE1MQXJlYUVs
ZW1lbnQncyBjb29yZHMgYXR0cmlidXRlcyBwYXJzaW5nIGRvZXMgbm90IGNvbXBseSB3aXRoIHRo
ZSBIVE1MIHNwZWNpZmljYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MTIxNgorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcu
CisKKyAgICAgICAgSFRNTEFyZWFFbGVtZW50J3MgY29vcmRzIGF0dHJpYnV0ZXMgcGFyc2luZyBk
b2VzIG5vdCBjb21wbHkgd2l0aCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uOgorICAgICAgICAtIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHItYXJlYS1jb29yZHMKKworICAgICAgICBU
aGlzIHBhdGNoIGFsaWducyBvdXIgcGFyc2luZyBvZiB0aGlzIGF0dHJpYnV0ZSB3aXRoIHRoZSBz
cGVjaWZpY2F0aW9uIGFuZCBDaHJvbWUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWJhc2Vs
aW5lZCBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICogaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFyZWFFbGVtZW50OjpIVE1MQXJlYUVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEFyZWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQXJlYUVsZW1lbnQ6OmdldFJlZ2lvbik6CisgICAgICAgICogaHRt
bC9IVE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MUGFyc2VySWRp
b21zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSFRNTFNwYWNlT3JEZWxpbWl0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6aXNOdW1iZXJTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUhU
TUxMaXN0T2ZPZkZsb2F0aW5nUG9pbnROdW1iZXJWYWx1ZXNJbnRlcm5hbCk6CisgICAgICAgIChX
ZWJDb3JlOjpwYXJzZUhUTUxMaXN0T2ZPZkZsb2F0aW5nUG9pbnROdW1iZXJWYWx1ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6cGFyc2VIVE1MTm9uTmVnYXRpdmVJbnRlZ2VyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmg6CisKIDIwMTYtMDgtMjYgIENz
YWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggdGhlICFF
TkFCTEUoV0VCX1NPQ0tFVFMpIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggMjJiZGUzMGM0MTUyZWI0OTkwZmRhMWJiODY2
YTc4MjM2MGM4ZTRmZS4uNjAzZTI1NjkxOWUxNDhjMTMxNjJiNDc2YTZmODhhYmJhMTFiZjZiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNw
cApAQCAtNzUsMTIgKzc1LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93V2Vi
S2l0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHUKIAogc3RhdGljIGJv
b2wganNET01XaW5kb3dHZXRPd25Qcm9wZXJ0eVNsb3RSZXN0cmljdGVkQWNjZXNzKEpTRE9NV2lu
ZG93KiB0aGlzT2JqZWN0LCBGcmFtZSogZnJhbWUsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90LCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSkKIHsKLSAgICAvLyBBbGxvdyBhY2Nlc3MgdG8gdG9TdHJpbmcoKSBjcm9zcy1kb21haW4sIGJ1
dCBhbHdheXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy4KLSAgICBpZiAocHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0cmluZykgewotICAgICAgICBzbG90LnNldEN1
c3RvbSh0aGlzT2JqZWN0LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSwgbm9uQ2Fj
aGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPG9iamVjdFByb3RvRnVuY1RvU3RyaW5nLCAwPik7Ci0g
ICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQogICAgIC8vIFdlIGRvbid0IHdhbnQgYW55IHBy
b3BlcnRpZXMgb3RoZXIgdGhhbiAiY2xvc2UiIGFuZCAiY2xvc2VkIiBvbiBhIGZyYW1lbGVzcyB3
aW5kb3cKICAgICAvLyAoaS5lLiBvbmUgd2hvc2UgcGFnZSBnb3QgY2xvc2VkLCBvciB3aG9zZSBp
ZnJhbWUgZ290IHJlbW92ZWQpLgogICAgIC8vIEZJWE1FOiBUaGlzIGhhbmRsaW5nIGZvciBmcmFt
ZWxlc3Mgd2luZG93cyBkdXBsaWNhdGVzIHNpbWlsYXIgYmVoYXZpb3VyIGZvciBjcm9zcy1vcmln
aW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcAppbmRleCA0YjNhNTI5MGNl
NmQ2YTg3MDA2NzcxN2Y1MmQ0YWNiNGFkNDVmZGI2Li44NTAxZjljMWJkYjU5NThiMDE3MjQyOGUx
MTcyNzgzNjg5ZjRkNjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MSW1h
Z2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
UGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIlBh
dGguaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgpAQCAtMzcsNyArMzgsNiBAQCB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCiBpbmxpbmUgSFRNTEFyZWFFbGVtZW50OjpIVE1MQXJlYUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogSFRNTEFuY2hvckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX2Nvb3Jk
c0xlbigwKQogICAgICwgbV9sYXN0U2l6ZSgtMSwgLTEpCiAgICAgLCBtX3NoYXBlKFVua25vd24p
CiB7CkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgSFRNTEFyZWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpCiAgICAgICAgICAg
ICBtX3NoYXBlID0gUmVjdDsKICAgICAgICAgaW52YWxpZGF0ZUNhY2hlZFJlZ2lvbigpOwogICAg
IH0gZWxzZSBpZiAobmFtZSA9PSBjb29yZHNBdHRyKSB7Ci0gICAgICAgIG1fY29vcmRzID0gbmV3
Q29vcmRzQXJyYXkodmFsdWUuc3RyaW5nKCksIG1fY29vcmRzTGVuKTsKKyAgICAgICAgbV9jb29y
ZHMgPSBwYXJzZUhUTUxMaXN0T2ZPZkZsb2F0aW5nUG9pbnROdW1iZXJWYWx1ZXModmFsdWUuc3Ry
aW5nKCkpOwogICAgICAgICBpbnZhbGlkYXRlQ2FjaGVkUmVnaW9uKCk7CiAgICAgfSBlbHNlIGlm
IChuYW1lID09IGFsdEF0dHIgfHwgbmFtZSA9PSBhY2Nlc3NrZXlBdHRyKSB7CiAgICAgICAgIC8v
IERvIG5vdGhpbmcuCkBAIC0xMjksNyArMTI5LDcgQEAgTGF5b3V0UmVjdCBIVE1MQXJlYUVsZW1l
bnQ6OmNvbXB1dGVSZWN0KFJlbmRlck9iamVjdCogb2JqKSBjb25zdAogCiBQYXRoIEhUTUxBcmVh
RWxlbWVudDo6Z2V0UmVnaW9uKGNvbnN0IExheW91dFNpemUmIHNpemUpIGNvbnN0CiB7Ci0gICAg
aWYgKCFtX2Nvb3JkcyAmJiBtX3NoYXBlICE9IERlZmF1bHQpCisgICAgaWYgKG1fY29vcmRzLmlz
RW1wdHkoKSAmJiBtX3NoYXBlICE9IERlZmF1bHQpCiAgICAgICAgIHJldHVybiBQYXRoKCk7CiAK
ICAgICBMYXlvdXRVbml0IHdpZHRoID0gc2l6ZS53aWR0aCgpOwpAQCAtMTM4LDM4ICsxMzgsMzcg
QEAgUGF0aCBIVE1MQXJlYUVsZW1lbnQ6OmdldFJlZ2lvbihjb25zdCBMYXlvdXRTaXplJiBzaXpl
KSBjb25zdAogICAgIC8vIElmIGVsZW1lbnQgb21pdHMgdGhlIHNoYXBlIGF0dHJpYnV0ZSwgc2Vs
ZWN0IHNoYXBlIGJhc2VkIG9uIG51bWJlciBvZiBjb29yZGluYXRlcy4KICAgICBTaGFwZSBzaGFw
ZSA9IG1fc2hhcGU7CiAgICAgaWYgKHNoYXBlID09IFVua25vd24pIHsKLSAgICAgICAgaWYgKG1f
Y29vcmRzTGVuID09IDMpCisgICAgICAgIGlmIChtX2Nvb3Jkcy5zaXplKCkgPT0gMykKICAgICAg
ICAgICAgIHNoYXBlID0gQ2lyY2xlOwotICAgICAgICBlbHNlIGlmIChtX2Nvb3Jkc0xlbiA9PSA0
KQorICAgICAgICBlbHNlIGlmIChtX2Nvb3Jkcy5zaXplKCkgPT0gNCkKICAgICAgICAgICAgIHNo
YXBlID0gUmVjdDsKLSAgICAgICAgZWxzZSBpZiAobV9jb29yZHNMZW4gPj0gNikKKyAgICAgICAg
ZWxzZSBpZiAobV9jb29yZHMuc2l6ZSgpID49IDYpCiAgICAgICAgICAgICBzaGFwZSA9IFBvbHk7
CiAgICAgfQogCiAgICAgUGF0aCBwYXRoOwogICAgIHN3aXRjaCAoc2hhcGUpIHsKICAgICAgICAg
Y2FzZSBQb2x5OgotICAgICAgICAgICAgaWYgKG1fY29vcmRzTGVuID49IDYpIHsKLSAgICAgICAg
ICAgICAgICBpbnQgbnVtUG9pbnRzID0gbV9jb29yZHNMZW4gLyAyOwotICAgICAgICAgICAgICAg
IHBhdGgubW92ZVRvKEZsb2F0UG9pbnQobWluaW11bVZhbHVlRm9yTGVuZ3RoKG1fY29vcmRzWzBd
LCB3aWR0aCksIG1pbmltdW1WYWx1ZUZvckxlbmd0aChtX2Nvb3Jkc1sxXSwgaGVpZ2h0KSkpOwor
ICAgICAgICAgICAgaWYgKG1fY29vcmRzLnNpemUoKSA+PSA2KSB7CisgICAgICAgICAgICAgICAg
aW50IG51bVBvaW50cyA9IG1fY29vcmRzLnNpemUoKSAvIDI7CisgICAgICAgICAgICAgICAgcGF0
aC5tb3ZlVG8oRmxvYXRQb2ludChtX2Nvb3Jkc1swXSwgbV9jb29yZHNbMV0pKTsKICAgICAgICAg
ICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IG51bVBvaW50czsgKytpKQotICAgICAgICAgICAg
ICAgICAgICBwYXRoLmFkZExpbmVUbyhGbG9hdFBvaW50KG1pbmltdW1WYWx1ZUZvckxlbmd0aCht
X2Nvb3Jkc1tpICogMl0sIHdpZHRoKSwgbWluaW11bVZhbHVlRm9yTGVuZ3RoKG1fY29vcmRzW2kg
KiAyICsgMV0sIGhlaWdodCkpKTsKKyAgICAgICAgICAgICAgICAgICAgcGF0aC5hZGRMaW5lVG8o
RmxvYXRQb2ludChtX2Nvb3Jkc1tpICogMl0sIG1fY29vcmRzW2kgKiAyICsgMV0pKTsKICAgICAg
ICAgICAgICAgICBwYXRoLmNsb3NlU3VicGF0aCgpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ2lyY2xlOgotICAgICAgICAgICAgaWYgKG1fY29vcmRz
TGVuID49IDMpIHsKLSAgICAgICAgICAgICAgICBMZW5ndGggcmFkaXVzID0gbV9jb29yZHNbMl07
Ci0gICAgICAgICAgICAgICAgaW50IHIgPSBzdGQ6Om1pbihtaW5pbXVtVmFsdWVGb3JMZW5ndGgo
cmFkaXVzLCB3aWR0aCksIG1pbmltdW1WYWx1ZUZvckxlbmd0aChyYWRpdXMsIGhlaWdodCkpOwot
ICAgICAgICAgICAgICAgIHBhdGguYWRkRWxsaXBzZShGbG9hdFJlY3QobWluaW11bVZhbHVlRm9y
TGVuZ3RoKG1fY29vcmRzWzBdLCB3aWR0aCkgLSByLCBtaW5pbXVtVmFsdWVGb3JMZW5ndGgobV9j
b29yZHNbMV0sIGhlaWdodCkgLSByLCAyICogciwgMiAqIHIpKTsKKyAgICAgICAgICAgIGlmICht
X2Nvb3Jkcy5zaXplKCkgPj0gMykgeworICAgICAgICAgICAgICAgIGRvdWJsZSByID0gbV9jb29y
ZHNbMl07CisgICAgICAgICAgICAgICAgcGF0aC5hZGRFbGxpcHNlKEZsb2F0UmVjdChtX2Nvb3Jk
c1swXSAtIHIsIG1fY29vcmRzWzFdIC0gciwgMiAqIHIsIDIgKiByKSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSZWN0OgotICAgICAgICAgICAgaWYg
KG1fY29vcmRzTGVuID49IDQpIHsKLSAgICAgICAgICAgICAgICBpbnQgeDAgPSBtaW5pbXVtVmFs
dWVGb3JMZW5ndGgobV9jb29yZHNbMF0sIHdpZHRoKTsKLSAgICAgICAgICAgICAgICBpbnQgeTAg
PSBtaW5pbXVtVmFsdWVGb3JMZW5ndGgobV9jb29yZHNbMV0sIGhlaWdodCk7Ci0gICAgICAgICAg
ICAgICAgaW50IHgxID0gbWluaW11bVZhbHVlRm9yTGVuZ3RoKG1fY29vcmRzWzJdLCB3aWR0aCk7
Ci0gICAgICAgICAgICAgICAgaW50IHkxID0gbWluaW11bVZhbHVlRm9yTGVuZ3RoKG1fY29vcmRz
WzNdLCBoZWlnaHQpOworICAgICAgICAgICAgaWYgKG1fY29vcmRzLnNpemUoKSA+PSA0KSB7Cisg
ICAgICAgICAgICAgICAgZG91YmxlIHgwID0gbV9jb29yZHNbMF07CisgICAgICAgICAgICAgICAg
ZG91YmxlIHkwID0gbV9jb29yZHNbMV07CisgICAgICAgICAgICAgICAgZG91YmxlIHgxID0gbV9j
b29yZHNbMl07CisgICAgICAgICAgICAgICAgZG91YmxlIHkxID0gbV9jb29yZHNbM107CiAgICAg
ICAgICAgICAgICAgcGF0aC5hZGRSZWN0KEZsb2F0UmVjdCh4MCwgeTAsIHgxIC0geDAsIHkxIC0g
eTApKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmgKaW5kZXggYmY4MTNiYWU0YzcyNjlmOTA0NWYxMWNhMTE3YmMyOGZm
ZGUxNmRlMy4uNGVmZTE4NWRiY2UzMmY2MDk1NDExMGQ0Y2MzMGIyMmMxZTRlZjI2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCkBAIC02NSw4ICs2NSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGVkUmVnaW9uKCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UGF0aD4gbV9yZWdpb247Ci0gICAgc3RkOjp1bmlxdWVfcHRyPExlbmd0aFtdPiBtX2Nvb3Jk
czsKLSAgICBpbnQgbV9jb29yZHNMZW47CisgICAgVmVjdG9yPGRvdWJsZT4gbV9jb29yZHM7CiAg
ICAgTGF5b3V0U2l6ZSBtX2xhc3RTaXplOwogICAgIFNoYXBlIG1fc2hhcGU7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9tcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmNwcAppbmRleCBhMDE1
Y2U2NThlODE1ZjFiZjRkZWFhMmY2NDMxODA2YmY5ZDUyYjY0Li5hZDMzMmVlOWVhOGQ3ODc4OWY1
ODc3MjQzZTRiZWUwNzlmYzQxNGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MUGFyc2VySWRpb21zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MUGFyc2VySWRpb21zLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPGxpbWl0
cz4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgorI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMTUsNiArMjE2LDY0IEBAIE9w
dGlvbmFsPGludD4gcGFyc2VIVE1MTm9uTmVnYXRpdmVJbnRlZ2VyKGNvbnN0IFN0cmluZyYgaW5w
dXQpCiAgICAgcmV0dXJuIHNpZ25lZFZhbHVlOwogfQogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hh
cmFjdGVyVHlwZT4KK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0hUTUxTcGFjZU9yRGVsaW1pdGVyKENo
YXJhY3RlclR5cGUgY2hhcmFjdGVyKQoreworICAgIHJldHVybiBpc0hUTUxTcGFjZShjaGFyYWN0
ZXIpIHx8IGNoYXJhY3RlciA9PSAnLCcgfHwgY2hhcmFjdGVyID09ICc7JzsKK30KKwordGVtcGxh
dGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CitzdGF0aWMgaW5saW5lIGJvb2wgaXNOdW1iZXJT
dGFydChDaGFyYWN0ZXJUeXBlIGNoYXJhY3RlcikKK3sKKyAgICByZXR1cm4gaXNBU0NJSURpZ2l0
KGNoYXJhY3RlcikgfHwgY2hhcmFjdGVyID09ICcuJyB8fCBjaGFyYWN0ZXIgPT0gJy0nOworfQor
CisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9pbmZyYXN0cnVjdHVy
ZS5odG1sI3J1bGVzLWZvci1wYXJzaW5nLWZsb2F0aW5nLXBvaW50LW51bWJlci12YWx1ZXMKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgorc3RhdGljIFZlY3Rvcjxkb3VibGU+IHBh
cnNlSFRNTExpc3RPZk9mRmxvYXRpbmdQb2ludE51bWJlclZhbHVlc0ludGVybmFsKGNvbnN0IENo
YXJhY3RlclR5cGUqIHBvc2l0aW9uLCBjb25zdCBDaGFyYWN0ZXJUeXBlKiBlbmQpCit7CisgICAg
VmVjdG9yPGRvdWJsZT4gbnVtYmVyczsKKworICAgIC8vIFRoaXMgc2tpcHMgcGFzdCBhbnkgbGVh
ZGluZyBkZWxpbWl0ZXJzLgorICAgIHdoaWxlIChwb3NpdGlvbiA8IGVuZCAmJiBpc0hUTUxTcGFj
ZU9yRGVsaW1pdGVyKCpwb3NpdGlvbikpCisgICAgICAgICsrcG9zaXRpb247CisKKyAgICB3aGls
ZSAocG9zaXRpb24gPCBlbmQpIHsKKyAgICAgICAgLy8gVGhpcyBza2lwcyBwYXN0IGxlYWRpbmcg
Z2FyYmFnZS4KKyAgICAgICAgd2hpbGUgKHBvc2l0aW9uIDwgZW5kICYmICEoaXNIVE1MU3BhY2VP
ckRlbGltaXRlcigqcG9zaXRpb24pIHx8IGlzTnVtYmVyU3RhcnQoKnBvc2l0aW9uKSkpCisgICAg
ICAgICAgICArK3Bvc2l0aW9uOworCisgICAgICAgIGNvbnN0IENoYXJhY3RlclR5cGUqIG51bWJl
clN0YXJ0ID0gcG9zaXRpb247CisgICAgICAgIHdoaWxlIChwb3NpdGlvbiA8IGVuZCAmJiAhaXNI
VE1MU3BhY2VPckRlbGltaXRlcigqcG9zaXRpb24pKQorICAgICAgICAgICAgKytwb3NpdGlvbjsK
KworICAgICAgICBzaXplX3QgcGFyc2VkTGVuZ3RoID0gMDsKKyAgICAgICAgZG91YmxlIG51bWJl
ciA9IHBhcnNlRG91YmxlKG51bWJlclN0YXJ0LCBwb3NpdGlvbiAtIG51bWJlclN0YXJ0LCBwYXJz
ZWRMZW5ndGgpOworICAgICAgICBudW1iZXJzLmFwcGVuZChwYXJzZWRMZW5ndGggPiAwICYmIHN0
ZDo6aXNmaW5pdGUobnVtYmVyKSA/IG51bWJlciA6IDApOworCisgICAgICAgIC8vIFRoaXMgc2tp
cHMgcGFzdCB0aGUgZGVsaW1pdGVyLgorICAgICAgICB3aGlsZSAocG9zaXRpb24gPCBlbmQgJiYg
aXNIVE1MU3BhY2VPckRlbGltaXRlcigqcG9zaXRpb24pKQorICAgICAgICAgICAgKytwb3NpdGlv
bjsKKyAgICB9CisKKyAgICByZXR1cm4gbnVtYmVyczsKK30KKworVmVjdG9yPGRvdWJsZT4gcGFy
c2VIVE1MTGlzdE9mT2ZGbG9hdGluZ1BvaW50TnVtYmVyVmFsdWVzKGNvbnN0IFN0cmluZyYgaW5w
dXQpCit7CisgICAgdW5zaWduZWQgbGVuZ3RoID0gaW5wdXQubGVuZ3RoKCk7CisgICAgaWYgKCFs
ZW5ndGgpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoTElLRUxZKGlucHV0LmlzOEJp
dCgpKSkgeworICAgICAgICBhdXRvKiBzdGFydCA9IGlucHV0LmNoYXJhY3RlcnM4KCk7CisgICAg
ICAgIHJldHVybiBwYXJzZUhUTUxMaXN0T2ZPZkZsb2F0aW5nUG9pbnROdW1iZXJWYWx1ZXNJbnRl
cm5hbChzdGFydCwgc3RhcnQgKyBsZW5ndGgpOworICAgIH0KKworICAgIGF1dG8qIHN0YXJ0ID0g
aW5wdXQuY2hhcmFjdGVyczE2KCk7CisgICAgcmV0dXJuIHBhcnNlSFRNTExpc3RPZk9mRmxvYXRp
bmdQb2ludE51bWJlclZhbHVlc0ludGVybmFsKHN0YXJ0LCBzdGFydCArIGxlbmd0aCk7Cit9CisK
IHN0YXRpYyBib29sIHRocmVhZFNhZmVFcXVhbChjb25zdCBTdHJpbmdJbXBsJiBhLCBjb25zdCBT
dHJpbmdJbXBsJiBiKQogewogICAgIGlmICgmYSA9PSAmYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaAppbmRleCAxZDU4M2NjMjNiZTkzZTZkOWEwNTE5
MzE0ZDEwMzJhN2FhZGNjMmJhLi4wMWFlZTQwNWM2ZGQ2MTNjNmEyMmNiZjA4YzIzNzVhMjI1M2Q1
ODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VySWRp
b21zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9tcy5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8dW5pY29kZS91Y2hhci5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY2LDYgKzY3LDkgQEAgV0VC
Q09SRV9FWFBPUlQgT3B0aW9uYWw8aW50PiBwYXJzZUhUTUxJbnRlZ2VyKGNvbnN0IFN0cmluZyYp
OwogLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8j
cnVsZXMtZm9yLXBhcnNpbmctbm9uLW5lZ2F0aXZlLWludGVnZXJzCiBXRUJDT1JFX0VYUE9SVCBP
cHRpb25hbDxpbnQ+IHBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlcihjb25zdCBTdHJpbmcmKTsK
IAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvaW5mcmFzdHJ1Y3R1
cmUuaHRtbCNydWxlcy1mb3ItcGFyc2luZy1mbG9hdGluZy1wb2ludC1udW1iZXItdmFsdWVzCitW
ZWN0b3I8ZG91YmxlPiBwYXJzZUhUTUxMaXN0T2ZPZkZsb2F0aW5nUG9pbnROdW1iZXJWYWx1ZXMo
Y29uc3QgU3RyaW5nJik7CisKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL2luZnJhc3RydWN0dXJlLmh0bWwjY29ycy1zZXR0aW5ncy1hdHRyaWJ1dGUKIFN0cmluZyBw
YXJzZUNPUlNTZXR0aW5nc0F0dHJpYnV0ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGExMzI5ZDdiZTZiMGE3YzgwNGFlNjRkZGU3ZDJlOGRlZmIxMjZmMTMuLmQ4MGI4OWU0OTkxY2Fh
MGY0MTZlMTFjYWM5NDIyMmVkN2Y0NDQ1NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMSBAQAogMjAxNi0w
OC0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIENhbGxpbmcg
Y3Jvc3NPcmlnaW5XaW5kb3cudG9TdHJpbmcoKSBzaG91bGQgbm90IGJlIGFsbG93ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTIyNQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5n
IHRlc3RzIHRvIHJlZmxlY3QgdGhlIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWN1c3RvbS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtY3VzdG9tLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mtb2Jq
ZWN0LXNldFByb3RvdHlwZU9mLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1vYmplY3Qtc2V0UHJvdG90eXBlT2YuaHRtbDoKKwor
MjAxNi0wOC0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEhU
TUxBcmVhRWxlbWVudCdzIGNvb3JkcyBhdHRyaWJ1dGVzIHBhcnNpbmcgZG9lcyBub3QgY29tcGx5
IHdpdGggdGhlIEhUTUwgc3BlY2lmaWNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVh
cyBLbGluZy4KKworICAgICAgICBVbnNraXAgd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWFyZWEtZWxlbWVudC9hcmVhLWNvb3Jkcy5odG1sCisg
ICAgICAgIGFzIGl0IGlzIG5vdyBwYXNzaW5nIGFuZCBub3QgbG9uZ2VyIGNyYXNoaW5nIGluIGRl
YnVnIGJ1aWxkcy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKKzIwMTYtMDgtMjYg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBUcnlpbmcgdG8gYWNj
ZXNzIGNyb3NzLW9yaWdpbiBMb2NhdGlvbiBwcm9wZXJ0aWVzIHNob3VsZCB0aHJvdyBhIFNlY3Vy
aXR5RXJyb3IKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MTI0OAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBmMzI0N2IxNGFhZTYz
NmYxMGU2MTdjNTllM2UxZTVkMDJjODk3YTljLi4wMWM5OGNiMzBjN2IwNTljNDYzNDRlODlmYWEx
ZmNiZGQwMWEzODBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxNi0wOC0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIEhUTUxBcmVhRWxlbWVudCdzIGNvb3JkcyBhdHRyaWJ1dGVzIHBhcnNpbmcgZG9lcyBub3Qg
Y29tcGx5IHdpdGggdGhlIEhUTUwgc3BlY2lmaWNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QW5kcmVhcyBLbGluZy4KKworICAgICAgICBSZWJhc2VsaW5lIFczQyB0ZXN0IG5vdyB0aGF0IGFs
bCBjaGVja3MgYXJlIHBhc3NpbmcuIENocm9tZSBpcyBhbHNvIHBhc3NpbmcgYWxsIHRoZSBjaGVj
a3MuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC90aGUtYXJlYS1lbGVtZW50L2FyZWEtY29vcmRzLWV4cGVjdGVkLnR4dDoKKwog
MjAxNi0wOC0yNSAgSm9oYW4gSy4gSmVuc2VuICA8am9oYW5famVuc2VuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVcGRhdGUgdGhlIFJlc291cmNlIFRpbWluZyBpbXBsZW1lbnRhdGlvbgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNTJlMjNlYWYzYTk5MWFiYTE2Y2FlZWVhYzViMDU0Y2RjZTY2ODYxZS4u
MTBmZTZlY2Y0MmQyMjdkMTc0YTg2ZDk5NjI5MzkxMzFiYzk1OGNlYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCkBAIC00NzUsOCArNDc1LDYgQEAgd2Via2l0Lm9yZy9iLzE1NDMxMCBbIERlYnVnIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9yZWZsZWN0aW8KICMgV1BUIHRl
c3RzIHRoYXQgZmFpbCBhZnRlciBkb2luZyBmdWxsIHRlc3QgcmVwb3NpdG9yeSByZWltcG9ydCBh
bmQgbmVlZCBmdXJ0aGVyIGludmVzdGlnYXRpb24KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2VuZC1lbnRpdHktYm9keS1kb2N1bWVudC5odG0gWyBQYXNz
IEZhaWx1cmUgVGltZW91dCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9u
b2Rlcy9Eb2N1bWVudC1jcmVhdGVFbGVtZW50LW5hbWVzcGFjZS5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8xNTU1MTYgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtYXJlYS1lbGVtZW50
L2FyZWEtY29vcmRzLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNTU1MTYgWyBSZWxlYXNl
IF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L3RoZS1hcmVhLWVsZW1lbnQvYXJlYS1jb29yZHMuaHRtbCBbIEZhaWx1cmUgXQog
CiAjIFczQyBYTUxIdHRwUmVxdWVzdCB0ZXN0cwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbCBb
IFNsb3cgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtY3VzdG9tLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWN1c3RvbS1leHBlY3RlZC50eHQKaW5kZXgg
ZGUyMjJhNGYyNTdhYTM1ZTdmYjcwNDNlNzk1NTNlOGFhN2Q0YTAwYS4uNTc5YjU2Y2Q2MmJjMmY4
OTgwYjJhOTIwZGFiMTQwYzM1YmM2ZWJhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtY3VzdG9tLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1jdXN0
b20tZXhwZWN0ZWQudHh0CkBAIC0xNSw5ICsxNSwxMyBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUg
ODQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSA4MzogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywg
YW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgODQ6IEJsb2NrZWQg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2lu
ZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMs
IGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1
OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJv
bSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4g
UHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FH
RTogbGluZSA4MzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgODQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExMTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTExOiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxMTE6IEJs
b2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFj
Y2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90
b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDExNDogVHlwZUVycm9yOiBObyBkZWZhdWx0IHZhbHVlCiAKIAogLS0tLS0gdGVzdHMgZm9y
IGdldHRpbmcvc2V0dGluZyBpbnRlcmVzdGluZyBwcm9wZXJ0aWVzIC0tLS0tCkBAIC0zMyw3ICsz
Nyw3IEBAIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LndpbmRvd1Byb3RvdHlwZUN1c3RvbVBy
b3BlcnR5Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kCiBQQVNTOiBjYW5TZXQoJ3RhcmdldFdpbmRv
dy53aW5kb3dQcm90b3R5cGVDdXN0b21Qcm9wZXJ0eScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBp
cy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93Lm9iamVjdFByb3RvdHlwZUN1c3RvbVByb3Bl
cnR5Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuU2V0KCd0YXJnZXRXaW5k
b3cub2JqZWN0UHJvdG90eXBlQ3VzdG9tUHJvcGVydHknKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQg
aXMuCi1QQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy50b1N0cmluZycpIHNob3VsZCBiZSAndHJ1
ZScgYW5kIGlzLgorUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cudG9TdHJpbmcnKSBzaG91bGQg
YmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ3RhcmdldFdpbmRvdy50b1N0cmluZycp
IHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KLVBBU1M6IHRvU3RyaW5nKCd0YXJnZXRXaW5kb3cn
LCAnJykgc2hvdWxkIGJlICdbb2JqZWN0IFdpbmRvd10nIGFuZCBpcy4KK1BBU1M6IHRvU3RyaW5n
KCd0YXJnZXRXaW5kb3cnLCAnTk9UQUxMT1dFRCcpIHNob3VsZCBiZSAnTk9UQUxMT1dFRCcgYW5k
IGlzLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LWZyYW1lLWFjY2Vzcy1jdXN0b20uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWN1c3RvbS5odG1sCmluZGV4IDQ5MTE0NGJlY2I1ZWMwYWY0
NTE5YTRmN2I1YTM0OWE4ZDg5MDA5MDQuLjlmZmFiOThmMzE1MDNmNDkzNGYyMGM3YjJjNWQzMGFj
N2IyMGQ3ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3MtZnJhbWUtYWNjZXNzLWN1c3RvbS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWN1c3RvbS5odG1sCkBAIC0zOCw5ICszOCw5IEBA
IHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpCiAgICAgc2hvdWxkQmVGYWxzZSgiY2FuU2V0KCd0
YXJnZXRXaW5kb3cub2JqZWN0UHJvdG90eXBlQ3VzdG9tUHJvcGVydHknKSIpOwogCiAgICAgLy8g
d2luZG93IG9iamVjdCBpdHNlbGYKLSAgICBzaG91bGRCZVRydWUoImNhbkdldCgndGFyZ2V0V2lu
ZG93LnRvU3RyaW5nJykiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJjYW5HZXQoJ3RhcmdldFdpbmRv
dy50b1N0cmluZycpIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiY2FuU2V0KCd0YXJnZXRXaW5kb3cu
dG9TdHJpbmcnKSIpOwotICAgIHNob3VsZEJlKCJ0b1N0cmluZygndGFyZ2V0V2luZG93JywgJycp
IiwgIidbb2JqZWN0IFdpbmRvd10nIik7CisgICAgc2hvdWxkQmUoInRvU3RyaW5nKCd0YXJnZXRX
aW5kb3cnLCAnTk9UQUxMT1dFRCcpIiwgIidOT1RBTExPV0VEJyIpOwogCiAgICAgLy8gV29yayBh
cm91bmQgRFJUIGJ1ZyB0aGF0IGNhdXNlcyBzdWJzZXF1ZW50IHRlc3RzIHRvIGZhaWwuCiAgICAg
d2luZG93LnN0b3AoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLW9iamVjdC1zZXRQcm90b3R5cGVPZi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1vYmpl
Y3Qtc2V0UHJvdG90eXBlT2YtZXhwZWN0ZWQudHh0CmluZGV4IGRjOGUyODBkNTUxMjViMGY3MzU1
ZTZkNzQwNjM5MWZlZjNiZTE4YTcuLjM4YzM1ZmEyN2JhMTgwN2I1YWIxNzU3NmEzNjZjZGM1Nzc1
MWYxMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLW9iamVjdC1zZXRQcm90b3R5cGVPZi1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mtb2JqZWN0LXNl
dFByb3RvdHlwZU9mLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSw2IEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMjI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9y
dHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNTogQmxvY2tlZCBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlu
cywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBUaGlzIHRlc3RzIHRoYXQgeW91IGNhbid0IHNldCB0
aGUgcHJvdG90eXBlIG9mIHRoZSB3aW5kb3cgb3IgaGlzdG9yeSBvYmplY3RzIGNyb3NzLW9yaWdp
biB1c2luZyBPYmplY3Quc2V0UHJvdG90eXBlT2YoKS4KIAogUEFTUzogdGFyZ2V0V2luZG93IGlu
c3RhbmNlb2YgQXJyYXkgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgotUEFTUzogT2JqZWN0LnNl
dFByb3RvdHlwZU9mKHRhcmdldFdpbmRvdywgQXJyYXkucHJvdG90eXBlKSBzaG91bGQgYmUgJ1tv
YmplY3QgV2luZG93XScgYW5kIGlzLgogUEFTUzogdGFyZ2V0V2luZG93IGluc3RhbmNlb2YgQXJy
YXkgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1vYmplY3Qtc2V0UHJvdG90eXBl
T2YuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNj
ZXNzLW9iamVjdC1zZXRQcm90b3R5cGVPZi5odG1sCmluZGV4IDFlNzc4MmExNTUyN2VmZDE5MWZl
MzkxZTQ5YzA4MGEwZTk5ZWZmYzYuLjFlZjU5NDI5NzIyMmEwNWJlODNhMTliOTExNWEwMDFhNDNh
MmJjYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLW9iamVjdC1zZXRQcm90b3R5cGVPZi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLW9iamVjdC1zZXRQcm90b3R5
cGVPZi5odG1sCkBAIC0xOSw3ICsxOSw3IEBACiAKICAgICAgICAgICAgIHNob3VsZEJlRmFsc2Uo
InRhcmdldFdpbmRvdyBpbnN0YW5jZW9mIEFycmF5Iik7CiAKLSAgICAgICAgICAgIHNob3VsZEJl
KCJPYmplY3Quc2V0UHJvdG90eXBlT2YodGFyZ2V0V2luZG93LCBBcnJheS5wcm90b3R5cGUpIiwg
InRhcmdldFdpbmRvdyIpOworICAgICAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRhcmdl
dFdpbmRvdywgQXJyYXkucHJvdG90eXBlKTsKIAogICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgi
dGFyZ2V0V2luZG93IGluc3RhbmNlb2YgQXJyYXkiKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L3RoZS1hcmVhLWVsZW1lbnQvYXJlYS1jb29yZHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L3RoZS1hcmVhLWVsZW1lbnQvYXJlYS1jb29yZHMtZXhwZWN0ZWQudHh0
CmluZGV4IGFlNWFkZWQ5MDM0MzI4ZDMwMTZjMjY5ZTA4ODhjMjMwZDUxMjAxYTMuLjY5NzdlNjA1
YWZmYTNiZGJjMDAzZjY1N2RhMjVkYTMxYzRiZDZmMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC90aGUtYXJlYS1lbGVtZW50L2FyZWEtY29vcmRzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvdGhlLWFyZWEtZWxlbWVudC9hcmVhLWNvb3Jkcy1leHBlY3RlZC50
eHQKQEAgLTcsOSArNywyOSBAQCBQQVNTIFRBQjogIjJcdDJcdDEwXHQxMCIgKHJlY3QpCiBQQVNT
IEZPUk0gRkVFRDogIjJcZjJcZjEwXGYxMCIgKHJlY3QpIAogUEFTUyBMSU5FIEZFRUQ6ICIyXG4y
XG4xMFxuMTAiIChyZWN0KSAKIFBBU1MgQ0FSUklHQUdFIFJFVFVSTjogIjJccjJccjEwXHIxMCIg
KHJlY3QpIAotRkFJTCBMSU5FIFRBQlVMQVRJT046ICIyXHYyXHYxMFx2MTAiIChyZWN0KSBhc3Nl
cnRfZXF1YWxzOiBlbGVtZW50RnJvbVBvaW50KDMsIDMpIGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8
aW1nIHNyYz0iL2ltYWdlcy90aHJlZWNvbG9ycy5wbmciIHVzZW1hcD0iI3giIGlkPSJpbWciIHcu
Li4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGFyZWEgaWQ9ImFyZWEiIHNoYXBlPSJyZWN0IiBjb29y
ZHM9IjILMgsxMAsxMCI+PC9hcmVhPgotRkFJTCBMSU5FIE5FWFQ6ICIywoUywoUxMMKFMTAiIChy
ZWN0KSBhc3NlcnRfZXF1YWxzOiBlbGVtZW50RnJvbVBvaW50KDMsIDMpIGV4cGVjdGVkIEVsZW1l
bnQgbm9kZSA8aW1nIHNyYz0iL2ltYWdlcy90aHJlZWNvbG9ycy5wbmciIHVzZW1hcD0iI3giIGlk
PSJpbWciIHcuLi4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGFyZWEgaWQ9ImFyZWEiIHNoYXBlPSJy
ZWN0IiBjb29yZHM9IjLChTLChTEwwoUxMCI+PC9hcmVhPgotRkFJTCBFTiBRVUFEOiAiMuKAgDLi
gIAxMOKAgDEwIiAocmVjdCkgYXNzZXJ0X2VxdWFsczogZWxlbWVudEZyb21Qb2ludCgzLCAzKSBl
eHBlY3RlZCBFbGVtZW50IG5vZGUgPGltZyBzcmM9Ii9pbWFnZXMvdGhyZWVjb2xvcnMucG5nIiB1
c2VtYXA9IiN4IiBpZD0iaW1nIiB3Li4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxhcmVhIGlkPSJh
cmVhIiBzaGFwZT0icmVjdCIgY29vcmRzPSIy4oCAMuKAgDEw4oCAMTAiPjwvYXJlYT4KLUZBSUwg
YWJjIGJldHdlZW4gbnVtYmVyczogIjJhMmIyMGMyMCwyLDEwLDEwIiAocmVjdCkgYXNzZXJ0X2Vx
dWFsczogZWxlbWVudEZyb21Qb2ludCgxMSwgOSkgZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxpbWcg
c3JjPSIvaW1hZ2VzL3RocmVlY29sb3JzLnBuZyIgdXNlbWFwPSIjeCIgaWQ9ImltZyIgdy4uLiBi
dXQgZ290IEVsZW1lbnQgbm9kZSA8YXJlYSBpZD0iYXJlYSIgc2hhcGU9InJlY3QiIGNvb3Jkcz0i
MmEyYjIwYzIwLDIsMTAsMTAiPjwuLi4KLUZBSUwgQ09MT04gYmV0d2VlbiBudW1iZXJzOiAiMjoy
OjIwOjIwLDIsMTAsMTAiIChyZWN0KSBhc3NlcnRfZXF1YWxzOiBlbGVtZW50RnJvbVBvaW50KDEx
LCA5KSBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGltZyBzcmM9Ii9pbWFnZXMvdGhyZWVjb2xvcnMu
cG5nIiB1c2VtYXA9IiN4IiBpZD0iaW1nIiB3Li4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxhcmVh
IGlkPSJhcmVhIiBzaGFwZT0icmVjdCIgY29vcmRzPSIyOjI6MjA6MjAsMiwxMCwxMCI+PC4uLgot
RkFJTCBVKzAwMDAgYmV0d2VlbiBudW1iZXJzOiAiMlwwMlwwMjBcMDIwLDIsMTAsMTAiIChyZWN0
KSBhc3NlcnRfZXF1YWxzOiBlbGVtZW50RnJvbVBvaW50KDExLCA5KSBleHBlY3RlZCBFbGVtZW50
IG5vZGUgPGltZyBzcmM9Ii9pbWFnZXMvdGhyZWVjb2xvcnMucG5nIiB1c2VtYXA9IiN4IiBpZD0i
aW1nIiB3Li4uIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxhcmVhIGlkPSJhcmVhIiBzaGFwZT0icmVj
dCIgY29vcmRzPSIyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorUEFTUyBMSU5FIFRBQlVM
QVRJT046ICIyXHYyXHYxMFx2MTAiIChyZWN0KSAKK1BBU1MgTElORSBORVhUOiAiMsKFMsKFMTDC
hTEwIiAocmVjdCkgCitQQVNTIEVOIFFVQUQ6ICIy4oCAMuKAgDEw4oCAMTAiIChyZWN0KSAKK1BB
U1MgYWJjIGJldHdlZW4gbnVtYmVyczogIjJhMmIyMGMyMCwyLDEwLDEwIiAocmVjdCkgCitQQVNT
IENPTE9OIGJldHdlZW4gbnVtYmVyczogIjI6MjoyMDoyMCwyLDEwLDEwIiAocmVjdCkgCitQQVNT
IFUrMDAwMCBiZXR3ZWVuIG51bWJlcnM6ICIyXDAyXDAyMFwwMjAsMiwxMCwxMCIgKHJlY3QpIAor
UEFTUyBsZWFkaW5nIENPTU1BOiAiLDIsMiwxMCwxMCIgKHJlY3QpIAorUEFTUyBsZWFkaW5nIFNQ
QUNFOiAiIDIsMiwxMCwxMCIgKHJlY3QpIAorUEFTUyBsZWFkaW5nIFNFTUlDT0xPTjogIjsyLDIs
MTAsMTAiIChyZWN0KSAKK1BBU1MgdHJhaWxpbmcgQ09NTUE6ICIyLDIsMTAsIiAocmVjdCkgCitQ
QVNTIHRyYWlsaW5nIFNQQUNFOiAiMiwyLDEwICIgKHJlY3QpIAorUEFTUyB0cmFpbGluZyBTRU1J
Q09MT046ICIyLDIsMTA7IiAocmVjdCkgCitQQVNTIFBFUkNFTlQ6ICIyJSwyJSwxMCUsMTAlIiAo
cmVjdCkgCitQQVNTIENTUyB1bml0czogIjJpbiwyaW4sMTBjbSwxMGNtIiAocmVjdCkgCitQQVNT
IGZsb2F0OiAiMS40LDEuNCwxMCwxMCIgKHJlY3QpIAorUEFTUyBudW1iZXIgc3RhcnRpbmcgd2l0
aCBQRVJJT0Q6ICIuNCwuNCwxMCwxMCIgKHJlY3QpIAorUEFTUyBzY2ktbm90OiAiMiwyLDFlMSwx
ZTEiIChyZWN0KSAKK1BBU1MgbGVhZGluZy90cmFpbGluZyBnYXJiYWdlOiAiPScyLDIsMTAsMTAn
ICIgKHJlY3QpIAorUEFTUyBub24tYXNjaWkgZ2FyYmFnZTogIuKAnDIsMiwxMCwxMFwiIiAocmVj
dCkgCitQQVNTIFVSTCBnYXJiYWdlIHdpdGggbnVtYmVyOiAiMiwyLDEwbHMvc3BhaW4vaG9saWRh
eXMvcmVnaW9ucy8xMC9DYW5hcnkrSXNsYW5kcy9DYW5hcnkrSXNsYW5kcy5odG1sIiAocmVjdCkg
CitQQVNTIGNvbnNlY3V0aXZlIENPTU1BczogIjIsLDEwLDEwIiAocmVjdCkgCitQQVNTIGNvbnNl
Y3V0aXZlIFNQQUNFczogIjIgIDEwLDEwIiAocmVjdCkgCitQQVNTIGNvbnNlY3V0aXZlIFNFTUlD
T0xPTnM6ICIyOzsxMCwxMCIgKHJlY3QpIAorUEFTUyBzZXZlcmFsIGNvbnNlY3V0aXZlIHNlcGFy
YXRvcnM6ICIsLDI7LDsyLDssMTAgXHRcclxuMTA7OyIgKHJlY3QpIAorUEFTUyBvbmUgdG9vIG1h
bnkgbnVtYmVycywgdHJhaWxpbmcgQ09NTUE6ICIxMDAsMTAwLDEyMCwxMDAsMTAwLDEyMCwzMDAs
IiAocG9seSkgCisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287220</attachid>
            <date>2016-08-27 21:35:33 -0700</date>
            <delta_ts>2016-08-27 22:26:27 -0700</delta_ts>
            <desc>Follow-up fixes</desc>
            <filename>161216_nits.patch</filename>
            <type>text/plain</type>
            <size>3331</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NGI1MTg2Li43MGI0MWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTYtMDgtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBGb2xsb3ctdXAgZml4ZXMgYWZ0ZXIgcjIwNTAzMC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTIxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9tcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjppc0hUTUxTcGFjZU9yRGVsaW1pdGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmlzTnVtYmVyU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VIVE1MTGlz
dE9mT2ZGbG9hdGluZ1BvaW50TnVtYmVyVmFsdWVzKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9I
VE1MUGFyc2VySWRpb21zLmg6CisKIDIwMTYtMDgtMjcgIFJhd2luZGVyIFNpbmdoICA8cmF3aW5k
ZXIuc2luZ2gtd2Via2l0QGNpc3JhLmNhbm9uLmNvbS5hdT4KIAogICAgICAgICBBZGQgZmluYWwg
a2V5d29yZCB0byBmaW5hbCBjbGFzc2VzIGFuZCBvdmVycmlkZW4gbWV0aG9kcyBpbiBXZWJDb3Jl
L2NzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklk
aW9tcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmNw
cAppbmRleCBhZDMzMmVlLi5lMmNkNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MUGFyc2VySWRpb21zLmNwcApAQCAtMjE2LDE0ICsyMTYsMTIgQEAgT3B0aW9uYWw8
aW50PiBwYXJzZUhUTUxOb25OZWdhdGl2ZUludGVnZXIoY29uc3QgU3RyaW5nJiBpbnB1dCkKICAg
ICByZXR1cm4gc2lnbmVkVmFsdWU7CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJU
eXBlPgotc3RhdGljIGlubGluZSBib29sIGlzSFRNTFNwYWNlT3JEZWxpbWl0ZXIoQ2hhcmFjdGVy
VHlwZSBjaGFyYWN0ZXIpCitzdGF0aWMgaW5saW5lIGJvb2wgaXNIVE1MU3BhY2VPckRlbGltaXRl
cihVQ2hhciBjaGFyYWN0ZXIpCiB7CiAgICAgcmV0dXJuIGlzSFRNTFNwYWNlKGNoYXJhY3Rlcikg
fHwgY2hhcmFjdGVyID09ICcsJyB8fCBjaGFyYWN0ZXIgPT0gJzsnOwogfQogCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc051bWJlclN0YXJ0
KENoYXJhY3RlclR5cGUgY2hhcmFjdGVyKQorc3RhdGljIGlubGluZSBib29sIGlzTnVtYmVyU3Rh
cnQoVUNoYXIgY2hhcmFjdGVyKQogewogICAgIHJldHVybiBpc0FTQ0lJRGlnaXQoY2hhcmFjdGVy
KSB8fCBjaGFyYWN0ZXIgPT0gJy4nIHx8IGNoYXJhY3RlciA9PSAnLSc7CiB9CkBAIC0yNTksMTkg
KzI1NywxNSBAQCBzdGF0aWMgVmVjdG9yPGRvdWJsZT4gcGFyc2VIVE1MTGlzdE9mT2ZGbG9hdGlu
Z1BvaW50TnVtYmVyVmFsdWVzSW50ZXJuYWwoY29uc3QgQwogICAgIHJldHVybiBudW1iZXJzOwog
fQogCi1WZWN0b3I8ZG91YmxlPiBwYXJzZUhUTUxMaXN0T2ZPZkZsb2F0aW5nUG9pbnROdW1iZXJW
YWx1ZXMoY29uc3QgU3RyaW5nJiBpbnB1dCkKK1ZlY3Rvcjxkb3VibGU+IHBhcnNlSFRNTExpc3RP
Zk9mRmxvYXRpbmdQb2ludE51bWJlclZhbHVlcyhTdHJpbmdWaWV3IGlucHV0KQogewotICAgIHVu
c2lnbmVkIGxlbmd0aCA9IGlucHV0Lmxlbmd0aCgpOwotICAgIGlmICghbGVuZ3RoKQotICAgICAg
ICByZXR1cm4geyB9OwotCiAgICAgaWYgKExJS0VMWShpbnB1dC5pczhCaXQoKSkpIHsKICAgICAg
ICAgYXV0byogc3RhcnQgPSBpbnB1dC5jaGFyYWN0ZXJzOCgpOwotICAgICAgICByZXR1cm4gcGFy
c2VIVE1MTGlzdE9mT2ZGbG9hdGluZ1BvaW50TnVtYmVyVmFsdWVzSW50ZXJuYWwoc3RhcnQsIHN0
YXJ0ICsgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlSFRNTExpc3RPZk9mRmxvYXRpbmdQ
b2ludE51bWJlclZhbHVlc0ludGVybmFsKHN0YXJ0LCBzdGFydCArIGlucHV0Lmxlbmd0aCgpKTsK
ICAgICB9CiAKICAgICBhdXRvKiBzdGFydCA9IGlucHV0LmNoYXJhY3RlcnMxNigpOwotICAgIHJl
dHVybiBwYXJzZUhUTUxMaXN0T2ZPZkZsb2F0aW5nUG9pbnROdW1iZXJWYWx1ZXNJbnRlcm5hbChz
dGFydCwgc3RhcnQgKyBsZW5ndGgpOworICAgIHJldHVybiBwYXJzZUhUTUxMaXN0T2ZPZkZsb2F0
aW5nUG9pbnROdW1iZXJWYWx1ZXNJbnRlcm5hbChzdGFydCwgc3RhcnQgKyBpbnB1dC5sZW5ndGgo
KSk7CiB9CiAKIHN0YXRpYyBib29sIHRocmVhZFNhZmVFcXVhbChjb25zdCBTdHJpbmdJbXBsJiBh
LCBjb25zdCBTdHJpbmdJbXBsJiBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFBhcnNlcklkaW9tcy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFBhcnNlcklkaW9tcy5oCmluZGV4IDAxYWVlNDAuLmVjNzRlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmgKQEAgLTY4LDcgKzY4LDcgQEAgV0VC
Q09SRV9FWFBPUlQgT3B0aW9uYWw8aW50PiBwYXJzZUhUTUxJbnRlZ2VyKGNvbnN0IFN0cmluZyYp
OwogV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8aW50PiBwYXJzZUhUTUxOb25OZWdhdGl2ZUludGVn
ZXIoY29uc3QgU3RyaW5nJik7CiAKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVs
dGlwYWdlL2luZnJhc3RydWN0dXJlLmh0bWwjcnVsZXMtZm9yLXBhcnNpbmctZmxvYXRpbmctcG9p
bnQtbnVtYmVyLXZhbHVlcwotVmVjdG9yPGRvdWJsZT4gcGFyc2VIVE1MTGlzdE9mT2ZGbG9hdGlu
Z1BvaW50TnVtYmVyVmFsdWVzKGNvbnN0IFN0cmluZyYpOworVmVjdG9yPGRvdWJsZT4gcGFyc2VI
VE1MTGlzdE9mT2ZGbG9hdGluZ1BvaW50TnVtYmVyVmFsdWVzKFN0cmluZ1ZpZXcpOwogCiAvLyBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9pbmZyYXN0cnVjdHVyZS5odG1s
I2NvcnMtc2V0dGluZ3MtYXR0cmlidXRlCiBTdHJpbmcgcGFyc2VDT1JTU2V0dGluZ3NBdHRyaWJ1
dGUoY29uc3QgQXRvbWljU3RyaW5nJik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>