<?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>168077</bug_id>
          
          <creation_ts>2017-02-09 14:16:38 -0800</creation_ts>
          <short_desc>[Mac][WK2] Use MIME type to add file extension to downloads&apos; suggested filenames when missing</short_desc>
          <delta_ts>2019-09-24 14:24:07 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>202147</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1275047</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-09 14:16:38 -0800</bug_when>
    <thetext>Use MIME type to add file extension to downloads&apos; suggested filenames when missing:
- https://html.spec.whatwg.org/#as-a-download (step 19)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275048</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-09 14:17:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/30412595&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275049</commentid>
    <comment_count>2</comment_count>
      <attachid>301083</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-09 14:18:21 -0800</bug_when>
    <thetext>Created attachment 301083
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275055</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-09 14:27:10 -0800</bug_when>
    <thetext>Still need to fix the !NETWORK_SESSION code path so it will likely fail on EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275124</commentid>
    <comment_count>4</comment_count>
      <attachid>301101</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-09 16:41:27 -0800</bug_when>
    <thetext>Created attachment 301101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275158</commentid>
    <comment_count>5</comment_count>
      <attachid>301101</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-09 17:25:25 -0800</bug_when>
    <thetext>Comment on attachment 301101
Patch

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

I thought it was the job of CFNetwork to look at the response headers, content sniffing, etc. and give us a good suggested filename.

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.h:150
&gt; +    WebCore::ResourceResponse m_response;

Could we just store a String instead of the whole Response?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275183</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-09 18:29:21 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 301101 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=301101&amp;action=review
&gt; 
&gt; I thought it was the job of CFNetwork to look at the response headers,
&gt; content sniffing, etc. and give us a good suggested filename.

One issue is that in the download attribute case, the suggested filename comes from the attribute, not from CFNetwork. So even if CFNetwork did this, it would not fix this issue.

&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/Downloads/Download.h:150
&gt; &gt; +    WebCore::ResourceResponse m_response;
&gt; 
&gt; Could we just store a String instead of the whole Response?

Sure, will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275184</commentid>
    <comment_count>7</comment_count>
      <attachid>301118</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-09 18:33:19 -0800</bug_when>
    <thetext>Created attachment 301118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275199</commentid>
    <comment_count>8</comment_count>
      <attachid>301118</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-09 20:02:27 -0800</bug_when>
    <thetext>Comment on attachment 301118
Patch

Clearing flags on attachment: 301118

Committed r212041: &lt;http://trac.webkit.org/changeset/212041&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275200</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-09 20:02:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275948</commentid>
    <comment_count>10</comment_count>
      <attachid>301118</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-02-12 01:38:20 -0800</bug_when>
    <thetext>Comment on attachment 301118
Patch

On macOS and iOS, does this duplicate logic already present in CFNetwork? I know it has a similar concept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275976</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-12 08:22:05 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 301118 [details]
&gt; Patch
&gt; 
&gt; On macOS and iOS, does this duplicate logic already present in CFNetwork? I
&gt; know it has a similar concept.

That is quite possible. However, the radar I was fixing was about downloads that were triggered by anchors that have a download attribute. In this case, the suggested file name comes from the attribute, not from CFNetwork. This patch also helps for blob downloads, which do not involve CFNetwork.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275999</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-02-12 10:47:47 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; That is quite possible. However, the radar I was fixing was about downloads
&gt; that were triggered by anchors that have a download attribute. In this case,
&gt; the suggested file name comes from the attribute, not from CFNetwork. This
&gt; patch also helps for blob downloads, which do not involve CFNetwork.

Sure, that’s the reason we need two sets of code that do almost the same thing. I think we should figure out how to keep these two sets of code following similar or same rules; to that end, maybe we can even come up with a way to actually share the code. It would be annoying long term if each mechanism had a separate list of MIME types and extensions and different set of rules for when to leave the existing extension alone and when to add a new extension of replace an existing one.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301083</attachid>
            <date>2017-02-09 14:18:21 -0800</date>
            <delta_ts>2017-02-09 16:41:22 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>168077_add_download_extension_wip.patch</filename>
            <type>text/plain</type>
            <size>12773</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1kb3dubG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZG93bmxvYWQtZXhwZWN0ZWQudHh0CmluZGV4IGYyYTQwYzg1NTk5Li4w
MmFmMmRlOWIxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVs
ZW1lbnQvYW5jaG9yLWRvd25sb2FkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsNCBAQAogRG93bmxvYWQgc3RhcnRlZC4KLURvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dl
c3RlZCBmaWxlbmFtZSAidW5rbm93biIKK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBm
aWxlbmFtZSAidW5rbm93bi5odG1sIgogRG93bmxvYWQgY29tcGxldGVkLgogQmxvYiBVUkwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1k
b3dubG9hZC11c2VyLXRyaWdnZXJlZC1zeW50aGV0aWMtY2xpY2stZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLXVzZXIt
dHJpZ2dlcmVkLXN5bnRoZXRpYy1jbGljay1leHBlY3RlZC50eHQKaW5kZXggZTQ0MmU3YmQ2ODIu
LmJlZGM4ZGRhMDFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9h
bmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLWV4cGVjdGVkLnR4
dApAQCAtMSw1ICsxLDUgQEAKIERvd25sb2FkIHN0YXJ0ZWQuCi1Eb3dubG9hZGluZyBVUkwgd2l0
aCBzdWdnZXN0ZWQgZmlsZW5hbWUgInVua25vd24iCitEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdn
ZXN0ZWQgZmlsZW5hbWUgInVua25vd24uaHRtbCIKIERvd25sb2FkIGNvbXBsZXRlZC4KIFRlc3Qg
dGhhdCB1c2VyIHRyaWdnZXJlZCBzeW50aGV0aWMgY2xpY2tzIG9uIGFuIGFuY2hvciB3aXRoIGEg
ZG93bmxvYWQgYXR0cmlidXRlIGFyZSBub3QgaWdub3JlZC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9h
ZC1uby1leHRlbnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFu
Y2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1uby1leHRlbnNpb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44YTBlNWZmYzBj
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVt
ZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwgd2l0aCBz
dWdnZXN0ZWQgZmlsZW5hbWUgImFiZS5wbmciCitEb3dubG9hZCBjb21wbGV0ZWQuCitUaGUgc3Vn
Z2VzdGVkIGZpbGVuYW1lIGFib3ZlIHNob3VsZCBiZSAiYWJlLnBuZyIgYW5kIHRoZSBkb3dubG9h
ZCBzaG91bGQgc3VjY2VlZC4KKworRmlsZSBiYWNrZWQgYmxvYiBVUkwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93
bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLW5vLWV4dGVuc2lvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xN2E5YTg3NDIzMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1m
aWxlLWJsb2ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnPgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGUgc3VnZ2VzdGVkIGZpbGVuYW1lIGFib3ZlIHNob3VsZCBiZSAiYWJlLnBu
ZyIgYW5kIHRoZSBkb3dubG9hZCBzaG91bGQgc3VjY2VlZC48L3A+Cis8YSBpZD0iYmxvYi11cmwi
IGRvd25sb2FkPSJhYmUiPkZpbGUgYmFja2VkIGJsb2IgVVJMPC9hPgorPHNjcmlwdD4KK2Z1bmN0
aW9uIGNsaWNrKGVsbXQpCit7CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAg
ICAgYWxlcnQoJ0NsaWNrIHRoZSBsaW5rIHRvIHJ1biB0aGUgdGVzdC4nKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhlbG10Lm9mZnNldExlZnQg
KyA1LCBlbG10Lm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7Cisg
ICAgZmlsZSA9IGludGVybmFscy5jcmVhdGVGaWxlKCIuLi9yZXNvdXJjZXMvYWJlLnBuZyIpOwor
ICAgIHZhciBsaW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsb2ItdXJsIik7CisgICAg
bGluay5ocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7CisgICAgY2xpY2so
bGluayk7Cit9CitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1ub2Rv
d25sb2FkLXNldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3Itbm9kb3dubG9hZC1zZXQtZXhwZWN0ZWQudHh0CmluZGV4IGYyYTQwYzg1
NTk5Li4wMmFmMmRlOWIxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFu
Y2hvckVsZW1lbnQvYW5jaG9yLW5vZG93bmxvYWQtc2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9hZC1zZXQt
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogRG93bmxvYWQgc3RhcnRlZC4KLURvd25sb2Fk
aW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAidW5rbm93biIKK0Rvd25sb2FkaW5nIFVS
TCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAidW5rbm93bi5odG1sIgogRG93bmxvYWQgY29tcGxl
dGVkLgogQmxvYiBVUkwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZG93bmxv
YWQvYW5jaG9yLWRvd25sb2FkLW5vLWV4dGVuc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2Rvd25sb2FkL2FuY2hvci1kb3dubG9hZC1uby1leHRlbnNpb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40MzJiNTBkY2M3
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZG93bmxvYWQvYW5j
aG9yLWRvd25sb2FkLW5vLWV4dGVuc2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitE
b3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1l
ICJpbWFnZS5wbmciCitEb3dubG9hZCBjb21wbGV0ZWQuCitUaGUgc3VnZ2VzdGVkIGZpbGVuYW1l
IGFib3ZlIHNob3VsZCBiZSAiaW1hZ2UucG5nIiBhbmQgdGhlIGRvd25sb2FkIHNob3VsZCBzdWNj
ZWVkLgorCitMaW5rIHdpdGggZG93bmxvYWQgYXR0cmlidXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9kb3dubG9hZC9hbmNob3ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rvd25sb2FkL2FuY2hvci1kb3dubG9hZC1uby1l
eHRlbnNpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmY0
MDczMTM0YzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rvd25s
b2FkL2FuY2hvci1kb3dubG9hZC1uby1leHRlbnNpb24uaHRtbApAQCAtMCwwICsxLDM0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNj
cmlwdCc+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoZSBzdWdnZXN0ZWQgZmlsZW5hbWUgYWJvdmUgc2hvdWxkIGJlICJpbWFn
ZS5wbmciIGFuZCB0aGUgZG93bmxvYWQgc2hvdWxkIHN1Y2NlZWQuPC9wPgorPGEgaWQ9ImRvd25s
b2FkLXVybCIgaHJlZj0iL2Nzcy9yZXNvdXJjZXMvYWJlLnBuZyIgZG93bmxvYWQ9ImltYWdlIj5M
aW5rIHdpdGggZG93bmxvYWQgYXR0cmlidXRlLjwvYT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBjbGlj
ayhlbG10KQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGFsZXJ0
KCdDbGljayB0aGUgbGluayB0byBydW4gdGhlIHRlc3QuJyk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZWxtdC5vZmZzZXRMZWZ0ICsgNSwgZWxt
dC5vZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHZhciBs
aW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd25sb2FkLXVybCIpOworICAgIGNsaWNr
KGxpbmspOworfQorcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCAyNjljZTY5NTQ1NS4uMjQyMzM4OGQ1MDkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTgxNCwxMCArMTgxNCwxMiBAQCB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxB
bmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC11bnNldC5odG1sIFsgU2tpcAogd2Via2l0Lm9y
Zy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQuaHRt
bCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVu
dC9hbmNob3ItZmlsZS1ibG9iLWNvbnZlcnQtdG8tZG93bmxvYWQuaHRtbCBbIFNraXAgXQogd2Vi
a2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1i
bG9iLWRvd25sb2FkLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNTYwNjcgZmFzdC9kb20v
SFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1uby1leHRlbnNpb24u
aHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxl
bWVudC9hbmNob3Itbm9kb3dubG9hZC1zZXQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1
NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9hZC5odG1sIFsg
U2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1kb3dubG9hZC1zeW50aGV0aWMtY2xpY2suaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9i
LzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtdXNlci10
cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNTYw
NjcgaHR0cC90ZXN0cy9kb3dubG9hZC9hbmNob3ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwg
WyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjcgaHR0cC90ZXN0cy9kb3dubG9hZC9hcmVhLWRv
d25sb2FkLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjcgaHR0cC90ZXN0cy9zZWN1
cml0eS9hbmNob3ItZG93bmxvYWQtYWxsb3ctYmxvYi5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3Jn
L2IvMTU2MDY3IGh0dHAvdGVzdHMvc2VjdXJpdHkvYW5jaG9yLWRvd25sb2FkLWFsbG93LWRhdGEu
aHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGQxMTljY2U5YWFjLi5hOTVkNjg1YTBkMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjEwLDYgKzIxMCw4IEBAIHdl
YmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25s
b2FkLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFu
Y2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLXN5bnRoZXRpYy1jbGljay5odG1sIFsgU2tpcCBd
CiB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1k
b3dubG9hZC11c2VyLXRyaWdnZXJlZC1zeW50aGV0aWMtY2xpY2suaHRtbCBbIFNraXAgXQogd2Vi
a2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1i
bG9iLWRvd25sb2FkLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20v
SFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1uby1leHRlbnNpb24u
aHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE1NjA2OSBodHRwL3Rlc3RzL2Rvd25sb2FkL2Fu
Y2hvci1kb3dubG9hZC1uby1leHRlbnNpb24uaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1
NjA2OSBodHRwL3Rlc3RzL2Rvd25sb2FkL2FyZWEtZG93bmxvYWQuaHRtbCBbIFNraXAgXQogd2Vi
a2l0Lm9yZy9iLzE1NjA2OSBodHRwL3Rlc3RzL3NlY3VyaXR5L2FuY2hvci1kb3dubG9hZC1hbGxv
dy1ibG9iLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0cy9zZWN1
cml0eS9hbmNob3ItZG93bmxvYWQtYWxsb3ctZGF0YS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGI3MDgzNGQ1OWEwLi5lYTI5N2E0
NjdjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ0
NSw2ICs0NDUsOCBAQCBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQt
dW5zZXQuaHRtbCBbIFNraXAgXQogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRv
d25sb2FkLXN5bnRoZXRpYy1jbGljay5odG1sIFsgU2tpcCBdCiBmYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLmh0
bWwgWyBTa2lwIF0KIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2It
ZG93bmxvYWQuaHRtbCBbIFNraXAgXQorZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWZpbGUtYmxvYi1kb3dubG9hZC1uby1leHRlbnNpb24uaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0
cy9kb3dubG9hZC9hbmNob3ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwgWyBTa2lwIF0KIGh0
dHAvdGVzdHMvZG93bmxvYWQvYXJlYS1kb3dubG9hZC5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2FuY2hvci1kb3dubG9hZC1hbGxvdy1kYXRhLmh0bWwgWyBTa2lwIF0KIGh0dHAv
dGVzdHMvc2VjdXJpdHkvYW5jaG9yLWRvd25sb2FkLWFsbG93LXNhbWVvcmlnaW4uaHRtbCBbIFNr
aXAgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAppbmRl
eCAzNjZmOWM0OTI5Yi4uMzRiODdmZTA5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L01JTUVUeXBlUmVnaXN0cnkuY3BwCkBAIC03ODgsNCArNzg4LDE5IEBAIFN0cmluZyBNSU1FVHlw
ZVJlZ2lzdHJ5OjpnZXROb3JtYWxpemVkTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkK
IAogI2VuZGlmCiAKK1N0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjphcHBlbmRGaWxlRXh0ZW5zaW9u
SWZOZWNlc3NhcnkoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSkKK3sKKyAgICBpZiAoZmlsZW5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZW1wdHlT
dHJpbmcoKTsKKworICAgIGlmIChmaWxlbmFtZS5yZXZlcnNlRmluZCgnLicpICE9IG5vdEZvdW5k
KQorICAgICAgICByZXR1cm4gZmlsZW5hbWU7CisKKyAgICBTdHJpbmcgcHJlZmVycmVkRXh0ZW5z
aW9uID0gZ2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUobWltZVR5cGUpOworICAgIGlm
IChwcmVmZXJyZWRFeHRlbnNpb24uaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmlsZW5hbWU7
CisKKyAgICByZXR1cm4gZmlsZW5hbWUgKyAiLiIgKyBwcmVmZXJyZWRFeHRlbnNpb247Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01JTUVUeXBlUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBl
UmVnaXN0cnkuaAppbmRleCAzZmQ4MGQyZDczZC4uODc1M2Q0N2MwYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgKQEAgLTEwNSw2ICsxMDUsOCBAQCBwdWJs
aWM6CiAgICAgLy8gRklYTUU6IFVuY2xlYXIgd2hhdCB0aGUgY29uY2VwdCBvZiBhIG5vcm1hbGl6
ZWQgTUlNRSB0eXBlIGlzOyBjdXJyZW50bHkgaXQncyBhIHBsYXRmb3JtLXNwZWNpZmljIG5vdGlv
bi4KICAgICBzdGF0aWMgU3RyaW5nIGdldE5vcm1hbGl6ZWRNSU1FVHlwZShjb25zdCBTdHJpbmcm
KTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgYXBwZW5kRmlsZUV4dGVuc2lv
bklmTmVjZXNzYXJ5KGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpOworCiBwcml2YXRlOgogICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgTUlNRSB0eXBlIGlz
IG5vdCBzdWl0YWJsZSBmb3IgYmVpbmcgbG9hZGVkIGFzIGEgdGV4dAogICAgIC8vIGRvY3VtZW50
IGluIGEgZnJhbWUuIE9ubHkgdmFsaWQgZm9yIE1JTUUgdHlwZXMgYmVnaW5pbmcgd2l0aCAidGV4
dC8iLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L0Jsb2JEb3dubG9hZENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9E
b3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcAppbmRleCBjMzA0Mzc2OTFkNS4uZmMwMzEx
YjcwY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9CbG9iRG93bmxvYWRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRvd25sb2FkLmgiCiAjaW5jbHVk
ZSAiV2ViRXJyb3JzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFy
ZWRCdWZmZXIuaD4KIApAQCAtNDYsNyArNDcsOCBAQCBCbG9iRG93bmxvYWRDbGllbnQ6OkJsb2JE
b3dubG9hZENsaWVudChEb3dubG9hZCYgZG93bmxvYWQpCiB2b2lkIEJsb2JEb3dubG9hZENsaWVu
dDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVzcG9uc2UpCiB7CiAgICAgbV9kb3dubG9hZC5kaWRSZWNlaXZlUmVzcG9uc2UoV1RG
TW92ZShyZXNwb25zZSkpOwotICAgIG1fZG93bmxvYWQuZGVjaWRlRGVzdGluYXRpb25XaXRoU3Vn
Z2VzdGVkRmlsZW5hbWVBc3luYyhtX2Rvd25sb2FkLnN1Z2dlc3RlZE5hbWUoKS5pc0VtcHR5KCkg
PyAidW5rbm93biIgOiBtX2Rvd25sb2FkLnN1Z2dlc3RlZE5hbWUoKSk7CisgICAgU3RyaW5nIHN1
Z2dlc3RlZEZpbGVuYW1lID0gTUlNRVR5cGVSZWdpc3RyeTo6YXBwZW5kRmlsZUV4dGVuc2lvbklm
TmVjZXNzYXJ5KG1fZG93bmxvYWQuc3VnZ2VzdGVkTmFtZSgpLmlzRW1wdHkoKSA/IEFTQ0lJTGl0
ZXJhbCgidW5rbm93biIpIDogbV9kb3dubG9hZC5zdWdnZXN0ZWROYW1lKCksIHJlc3BvbnNlLm1p
bWVUeXBlKCkpOworICAgIG1fZG93bmxvYWQuZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVk
RmlsZW5hbWVBc3luYyhzdWdnZXN0ZWRGaWxlbmFtZSk7CiB9CiAKIHZvaWQgQmxvYkRvd25sb2Fk
Q2xpZW50OjpkaWREZWNpZGVEb3dubG9hZERlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgZGVzdGlu
YXRpb25QYXRoLCBib29sIGFsbG93T3ZlcndyaXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGExMGY0MmMwMjg1Li4yMTFmM2Uz
ZmUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRE5TLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0
cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgpAQCAtNTEyLDcgKzUxMyw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmZp
bmRQZW5kaW5nRG93bmxvYWRMb2NhdGlvbihOZXR3b3JrRGF0YVRhc2smIG5ldHdvcmtEYXRhVGFz
CiAgICAgZG93bmxvYWRQcm94eUNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6RG93bmxvYWRQ
cm94eTo6RGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKSwgZGVzdGluYXRpb25JRCk7CiAKICAg
ICBkb3dubG9hZE1hbmFnZXIoKS53aWxsRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24o
bmV0d29ya0RhdGFUYXNrLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgZG93bmxv
YWRQcm94eUNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGVjaWRl
RGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWVBc3luYyhuZXR3b3JrRGF0YVRhc2sucGVu
ZGluZ0Rvd25sb2FkSUQoKSwgbmV0d29ya0RhdGFUYXNrLnN1Z2dlc3RlZEZpbGVuYW1lKCkpLCBk
ZXN0aW5hdGlvbklEKTsKKyAgICBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUgPSBNSU1FVHlwZVJl
Z2lzdHJ5OjphcHBlbmRGaWxlRXh0ZW5zaW9uSWZOZWNlc3NhcnkobmV0d29ya0RhdGFUYXNrLnN1
Z2dlc3RlZEZpbGVuYW1lKCksIHJlc3BvbnNlLm1pbWVUeXBlKCkpOworICAgIGRvd25sb2FkUHJv
eHlDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OkRvd25sb2FkUHJveHk6OkRlY2lkZURlc3Rp
bmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMobmV0d29ya0RhdGFUYXNrLnBlbmRpbmdE
b3dubG9hZElEKCksIHN1Z2dlc3RlZEZpbGVuYW1lKSwgZGVzdGluYXRpb25JRCk7CiB9CiAjZW5k
aWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301101</attachid>
            <date>2017-02-09 16:41:27 -0800</date>
            <delta_ts>2017-02-09 18:33:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168077-20170209163901.patch</filename>
            <type>text/plain</type>
            <size>25632</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExOTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg0YWZkYzdkMzYxY2Jm
NzY4YjdhYmE1MDM1ODM3NmQ3N2YwZGU3OC4uZDQzNjZhMTgyOWJhNWQ4NTIzYjQxYjQxNTZjZWM1
ZTgzMzUzNzE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTAyLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY11bV0syXSBVc2UgTUlN
RSB0eXBlIHRvIGFkZCBmaWxlIGV4dGVuc2lvbiB0byBkb3dubG9hZHMnIHN1Z2dlc3RlZCBmaWxl
bmFtZXMgd2hlbiBtaXNzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjgwNzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwNDEyNTk1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB1dGlsaXR5
IGZ1bmN0aW9uIHRvIE1JTUVUeXBlUmVnaXN0cnkgdGhhdCBhcHBlbmRzIGFuIGV4dGVuc2lvbiB0
bworICAgICAgICBhIGZpbGVuYW1lIGlmIG5lY2Vzc2FyeSwgYmFzZWQgb24gYSBwcm92aWRlZCBN
SU1FIHR5cGUuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWRvd25sb2FkLW5vLWV4dGVuc2lvbi5odG1sCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1JTUVUeXBlUmVnaXN0cnk6OmFwcGVuZEZpbGVFeHRlbnNpb25JZk5lY2Vzc2FyeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL01JTUVUeXBlUmVnaXN0cnlDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVU
eXBlUmVnaXN0cnk6OmFwcGVuZEZpbGVFeHRlbnNpb25JZk5lY2Vzc2FyeSk6CisKIDIwMTctMDIt
MDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHNvbWUg
bG9nZ2luZyBzdGF0ZW1lbnRzIGluIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
QwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDczNWViZTg5NDA3NjM4ZGVlYTZmZmJkNzUxOWMwZTJiNWMzZWRjMWUu
LmNiMTA0MTUyM2NiNzg4Njk1NTk2YWM0NzJhYzRlOTFlMTRiNmY1NTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMCBAQAorMjAxNy0wMi0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFtNYWNdW1dLMl0gVXNlIE1JTUUgdHlwZSB0byBhZGQgZmlsZSBleHRlbnNp
b24gdG8gZG93bmxvYWRzJyBzdWdnZXN0ZWQgZmlsZW5hbWVzIHdoZW4gbWlzc2luZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MDc3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8zMDQxMjU5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgTUlNRSB0eXBlIHRvIGFkZCBmaWxlIGV4dGVuc2lvbiB0
byBkb3dubG9hZHMnIHN1Z2dlc3RlZCBmaWxlbmFtZXMgd2hlbiBtaXNzaW5nOgorICAgICAgICAt
IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2FzLWEtZG93bmxvYWQgKHN0ZXAgMTkpCisK
KyAgICAgICAgVGhpcyBuZXcgYmVoYXZpb3IgbWF0Y2hlcyBDaHJvbWUuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6QmxvYkRvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6
OkRvd25sb2FkOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6ZmluZFBlbmRpbmdEb3dubG9hZExvY2F0aW9uKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9h
ZFByb3h5OjpkaWRTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHk6OmRlY2lk
ZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW46CisKIDIwMTctMDItMDkgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhbGwgY2FjaGVhYmxlIHNwZWN1bGF0
aXZlbHkgbG9hZGVkIHJlc3BvbnNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlw
ZVJlZ2lzdHJ5LmNwcAppbmRleCAzNjZmOWM0OTI5YjgxNGE1Yzk1NDVmNmU0ZWY0NDk4MzM3YTgx
OTVlLi42NjRlNmQ0MzNiOGE5OTgwMjc2ZDY4YmZhN2UwYTFjZDhhMGFlMWM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApAQCAtNzg4LDQgKzc4OCwx
MyBAQCBTdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0Tm9ybWFsaXplZE1JTUVUeXBlKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpCiAKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKENPQ09BKQorCitT
dHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6YXBwZW5kRmlsZUV4dGVuc2lvbklmTmVjZXNzYXJ5KGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIGZpbGVu
YW1lOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oCmluZGV4IDNmZDgwZDJkNzNkZThlZjIxNzVj
M2E2ZDk4Yjg1NTBjNmEwNzFhNmUuLjg3NTNkNDdjMGMxM2E4ZmE2OGQ5ZTg5NDA0NGQwNGM3NjNh
YmFhMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgKQEAg
LTEwNSw2ICsxMDUsOCBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFVuY2xlYXIgd2hhdCB0aGUg
Y29uY2VwdCBvZiBhIG5vcm1hbGl6ZWQgTUlNRSB0eXBlIGlzOyBjdXJyZW50bHkgaXQncyBhIHBs
YXRmb3JtLXNwZWNpZmljIG5vdGlvbi4KICAgICBzdGF0aWMgU3RyaW5nIGdldE5vcm1hbGl6ZWRN
SU1FVHlwZShjb25zdCBTdHJpbmcmKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJp
bmcgYXBwZW5kRmlsZUV4dGVuc2lvbklmTmVjZXNzYXJ5KGNvbnN0IFN0cmluZyYgZmlsZW5hbWUs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworCiBwcml2YXRlOgogICAgIC8vIENoZWNrIHRvIHNl
ZSBpZiB0aGUgTUlNRSB0eXBlIGlzIG5vdCBzdWl0YWJsZSBmb3IgYmVpbmcgbG9hZGVkIGFzIGEg
dGV4dAogICAgIC8vIGRvY3VtZW50IGluIGEgZnJhbWUuIE9ubHkgdmFsaWQgZm9yIE1JTUUgdHlw
ZXMgYmVnaW5pbmcgd2l0aCAidGV4dC8iLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tCmluZGV4IDM1NzM3MDQxZDNkNTE1
YjJhMjc2ODI3NzU2ZWJmYWVmZWE1MjRmYWUuLjUxZGIzY2ViZmM5NGFjM2ZhOWI3Zjg1ZDY0Njcx
MWJkYWYwMGVhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01J
TUVUeXBlUmVnaXN0cnlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0KQEAgLTcxLDQgKzcxLDE5IEBAIGJvb2wgTUlNRVR5
cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBsdWdpbk1JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlN
RVR5cGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitTdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6
YXBwZW5kRmlsZUV4dGVuc2lvbklmTmVjZXNzYXJ5KGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpCit7CisgICAgaWYgKGZpbGVuYW1lLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisKKyAgICBpZiAoZmlsZW5hbWUucmV2ZXJzZUZp
bmQoJy4nKSAhPSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuIGZpbGVuYW1lOworCisgICAgU3Ry
aW5nIHByZWZlcnJlZEV4dGVuc2lvbiA9IGdldFByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBl
KG1pbWVUeXBlKTsKKyAgICBpZiAocHJlZmVycmVkRXh0ZW5zaW9uLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuIGZpbGVuYW1lOworCisgICAgcmV0dXJuIGZpbGVuYW1lICsgIi4iICsgcHJlZmVy
cmVkRXh0ZW5zaW9uOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuY3BwCmluZGV4IGMz
MDQzNzY5MWQ1MmYzNzE2ZTMxZmUxMjI4Y2M3MWExYmVmZjljN2EuLmNmOWFjY2U5YjE0MmZmM2Y5
NDM0YzI3NmVlOTI2MDc1MGIzMDliOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuY3BwCkBA
IC0zMSw3ICszMSw5IEBACiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRv
d25sb2FkLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NSU1F
VHlwZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFy
ZWRCdWZmZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Niw3ICs0OCw4IEBAIEJsb2JE
b3dubG9hZENsaWVudDo6QmxvYkRvd25sb2FkQ2xpZW50KERvd25sb2FkJiBkb3dubG9hZCkKIHZv
aWQgQmxvYkRvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhh
bmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKIHsKICAgICBtX2Rvd25sb2FkLmRp
ZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSk7Ci0gICAgbV9kb3dubG9hZC5kZWNp
ZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKG1fZG93bmxvYWQuc3VnZ2Vz
dGVkTmFtZSgpLmlzRW1wdHkoKSA/ICJ1bmtub3duIiA6IG1fZG93bmxvYWQuc3VnZ2VzdGVkTmFt
ZSgpKTsKKyAgICBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUgPSBNSU1FVHlwZVJlZ2lzdHJ5Ojph
cHBlbmRGaWxlRXh0ZW5zaW9uSWZOZWNlc3NhcnkobV9kb3dubG9hZC5zdWdnZXN0ZWROYW1lKCku
aXNFbXB0eSgpID8gQVNDSUlMaXRlcmFsKCJ1bmtub3duIikgOiBtX2Rvd25sb2FkLnN1Z2dlc3Rl
ZE5hbWUoKSwgcmVzcG9uc2UubWltZVR5cGUoKSk7CisgICAgbV9kb3dubG9hZC5kZWNpZGVEZXN0
aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKHN1Z2dlc3RlZEZpbGVuYW1lKTsKIH0K
IAogdm9pZCBCbG9iRG93bmxvYWRDbGllbnQ6OmRpZERlY2lkZURvd25sb2FkRGVzdGluYXRpb24o
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblBhdGgsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNw
cAppbmRleCBmMWE2OGRhNDMyYzVkY2M0Yzk3ZjBlMjg3NzJhZGEyOGI3ZTAyZGYxLi41MGE5ZDIy
MWU3M2ZkZWJhNDM4YjE4YzVjY2JiYjY3YjAyMWZkN2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKQEAgLTE2MSw2ICsx
NjEsNyBAQCB2b2lkIERvd25sb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVj
ZWl2ZVJlc3BvbnNlOiBDcmVhdGVkIChpZCA9ICUiIFBSSXU2NCAiKSIsIGRvd25sb2FkSUQoKS5k
b3dubG9hZElEKCkpOwogCisgICAgbV9yZXNwb25zZSA9IHJlc3BvbnNlOwogICAgIHNlbmQoTWVz
c2FnZXM6OkRvd25sb2FkUHJveHk6OkRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSkpOwogfQog
CkBAIC0xNzcsNyArMTc4LDcgQEAgU3RyaW5nIERvd25sb2FkOjpkZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLAogewogICAgIFN0cmlu
ZyBkZXN0aW5hdGlvbjsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVu
c2lvbkhhbmRsZTsKLSAgICBpZiAoIXNlbmRTeW5jKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpE
ZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShmaWxlbmFtZSksIE1lc3NhZ2Vz
OjpEb3dubG9hZFByb3h5OjpEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZTo6
UmVwbHkoZGVzdGluYXRpb24sIGFsbG93T3ZlcndyaXRlLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
KSkpCisgICAgaWYgKCFzZW5kU3luYyhNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGVjaWRlRGVz
dGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoZmlsZW5hbWUsIG1fcmVzcG9uc2UubWltZVR5
cGUoKSksIE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdn
ZXN0ZWRGaWxlbmFtZTo6UmVwbHkoZGVzdGluYXRpb24sIGFsbG93T3ZlcndyaXRlLCBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKSkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAogICAgIG1fc2Fu
ZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkLmgKaW5kZXggODlhMWUxMjA5N2MxNzg3YjliOTEzYzQxZDNjOTFkZjQzNTVkYTlh
Ni4uNmJmOTk5MTcwNDRkZWFmMWNmODgxZWFmMTVjMTg4YzNlOTA0OTkxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0xNDYsNiArMTQ3LDcgQEAgcHJpdmF0ZToKICAgICBX
ZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAjZWxzZSAvLyBVU0UoTkVUV09SS19TRVNT
SU9OKQogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CisgICAgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IFJldGFpblB0cjxOU1VSTERvd25sb2FkPiBtX25zVVJMRG93bmxvYWQ7CiAgICAgUmV0YWluUHRy
PFdLRG93bmxvYWRBc0RlbGVnYXRlPiBtX2RlbGVnYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGExMGY0MmMwMjg1ODVjY2Qz
MTU3ZTg5ZmQ1MGYzNGE0MDFjYTE1N2IuLjIxMWYzZTNmZTE1MmYzYjMyZTMxZDlhMGZjODgzNjBl
MDU2ZGE4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ROUy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJl
Z2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTUxMiw3ICs1MTMsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
OjpmaW5kUGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oTmV0d29ya0RhdGFUYXNrJiBuZXR3b3JrRGF0
YVRhcwogICAgIGRvd25sb2FkUHJveHlDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OkRvd25s
b2FkUHJveHk6OkRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSksIGRlc3RpbmF0aW9uSUQpOwog
CiAgICAgZG93bmxvYWRNYW5hZ2VyKCkud2lsbERlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0
aW9uKG5ldHdvcmtEYXRhVGFzaywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIGRv
d25sb2FkUHJveHlDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OkRvd25sb2FkUHJveHk6OkRl
Y2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMobmV0d29ya0RhdGFUYXNr
LnBlbmRpbmdEb3dubG9hZElEKCksIG5ldHdvcmtEYXRhVGFzay5zdWdnZXN0ZWRGaWxlbmFtZSgp
KSwgZGVzdGluYXRpb25JRCk7CisgICAgU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lID0gTUlNRVR5
cGVSZWdpc3RyeTo6YXBwZW5kRmlsZUV4dGVuc2lvbklmTmVjZXNzYXJ5KG5ldHdvcmtEYXRhVGFz
ay5zdWdnZXN0ZWRGaWxlbmFtZSgpLCByZXNwb25zZS5taW1lVHlwZSgpKTsKKyAgICBkb3dubG9h
ZFByb3h5Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEZWNpZGVE
ZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKG5ldHdvcmtEYXRhVGFzay5wZW5k
aW5nRG93bmxvYWRJRCgpLCBzdWdnZXN0ZWRGaWxlbmFtZSksIGRlc3RpbmF0aW9uSUQpOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkUHJveHkuY3BwCmluZGV4IGY5ZmM5NTkzMjI2ZjEwNTgwYzhhMjdhZGFjNDhjZTU2NTQ5
ZDg0NTQuLjA4Mjc5YWFiZDQxZjYwNTQ4MzU1NGRmZWNiMzc0ZDQ4YmNkM2Y5MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNw
cApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvdGVjdGlvblNwYWNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC05MSw3
ICs5Miw3IEBAIHZvaWQgRG93bmxvYWRQcm94eTo6cHJvY2Vzc0RpZENsb3NlKCkKICAgICBtX3By
b2Nlc3NQb29sLT5kb3dubG9hZENsaWVudCgpLnByb2Nlc3NEaWRDcmFzaChtX3Byb2Nlc3NQb29s
LmdldCgpLCB0aGlzKTsKIH0KIAotdm9pZCBEb3dubG9hZFByb3h5OjpkaWRTdGFydChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEF0b21pY1N0cmluZyYgc3VnZ2VzdGVkRmls
ZW5hbWUpCit2b2lkIERvd25sb2FkUHJveHk6OmRpZFN0YXJ0KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSkKIHsKICAgICBtX3Jl
cXVlc3QgPSByZXF1ZXN0OwogICAgIG1fc3VnZ2VzdGVkRmlsZW5hbWUgPSBzdWdnZXN0ZWRGaWxl
bmFtZTsKQEAgLTE5MywxNyArMTk0LDE0IEBAIHZvaWQgRG93bmxvYWRQcm94eTo6ZGVjaWRlRGVz
dGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWVBc3luYyhEb3dubG9hZElEIGRvd25sCiAKICNp
ZiAhVVNFKE5FVFdPUktfU0VTU0lPTikKIAotdm9pZCBEb3dubG9hZFByb3h5OjpkZWNpZGVEZXN0
aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBTdHJp
bmcmIGRlc3RpbmF0aW9uLCBib29sJiBhbGxvd092ZXJ3cml0ZSwgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQordm9pZCBEb3dubG9hZFByb3h5OjpkZWNp
ZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVuYW1l
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBTdHJpbmcmIGRlc3RpbmF0aW9uLCBib29sJiBhbGxv
d092ZXJ3cml0ZSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlKQogewogICAgIGFsbG93T3ZlcndyaXRlID0gZmFsc2U7CiAKICAgICBpZiAoIW1fcHJvY2Vz
c1Bvb2wpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSA9
IGZpbGVuYW1lOwotICAgIGlmICghbV9zdWdnZXN0ZWRGaWxlbmFtZS5pc051bGwoKSkKLSAgICAg
ICAgc3VnZ2VzdGVkRmlsZW5hbWUgPSBtX3N1Z2dlc3RlZEZpbGVuYW1lOwotICAgIAorICAgIFN0
cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSA9IE1JTUVUeXBlUmVnaXN0cnk6OmFwcGVuZEZpbGVFeHRl
bnNpb25JZk5lY2Vzc2FyeShtX3N1Z2dlc3RlZEZpbGVuYW1lLmlzTnVsbCgpID8gZmlsZW5hbWUg
OiBtX3N1Z2dlc3RlZEZpbGVuYW1lLCBtaW1lVHlwZSk7CiAgICAgZGVzdGluYXRpb24gPSBtX3By
b2Nlc3NQb29sLT5kb3dubG9hZENsaWVudCgpLmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3Rl
ZEZpbGVuYW1lKG1fcHJvY2Vzc1Bvb2wuZ2V0KCksIHRoaXMsIHN1Z2dlc3RlZEZpbGVuYW1lLCBh
bGxvd092ZXJ3cml0ZSk7CiAKICAgICBpZiAoIWRlc3RpbmF0aW9uLmlzTnVsbCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaAppbmRl
eCA2OGQ2ODA0MjkwZmZhYjEwODdlOGU4YmQzN2VlY2RmZGUyNWFjNTg4Li4xY2FkYThlMmE3ZWJi
YmU2OGZjMDc0ODNjNDJjYmFkYTgxNWEzZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaApAQCAtNzcsNyArNzcsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAK
ICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgotICAgIHZvaWQgZGlkU3RhcnQoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgQXRvbWljU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFt
ZSk7CisgICAgdm9pZCBkaWRTdGFydChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0
YSh1aW50NjRfdCBsZW5ndGgpOwpAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAg
ICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0
UmVzcG9uc2UpOwogI2Vsc2UKLSAgICB2b2lkIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3Rl
ZEZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIFN0cmluZyYgZGVzdGluYXRpb24sIGJv
b2wmIGFsbG93T3ZlcndyaXRlLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRl
bnNpb25IYW5kbGUpOworICAgIHZvaWQgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmls
ZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgU3Ry
aW5nJiBkZXN0aW5hdGlvbiwgYm9vbCYgYWxsb3dPdmVyd3JpdGUsIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKICAgICB2b2lkIGRlY2lk
ZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMoRG93bmxvYWRJRCwgY29uc3Qg
U3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSk7CiAKQEAgLTEwMiw3ICsxMDIsNyBAQCBwcml2YXRl
OgogCiAgICAgUmVmUHRyPEFQSTo6RGF0YT4gbV9yZXN1bWVEYXRhOwogICAgIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7Ci0gICAgQXRvbWljU3RyaW5nIG1fc3VnZ2VzdGVkRmls
ZW5hbWU7CisgICAgU3RyaW5nIG1fc3VnZ2VzdGVkRmlsZW5hbWU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4ZDViNGIxOWI1ZjhhOTQz
NzUwNDYxYTJjN2M2MGQyY2FhNzhlM2VjLi5jMjJkMDk5YmFmNzE4YzA3OTcyYWUzMmFlMjA2YjJl
Y2Q0YzlhNGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNSw3ICszNSw3IEBAIG1l
c3NhZ2VzIC0+IERvd25sb2FkUHJveHkgewogICAgIERpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGxl
bmd0aCkKICAgICBTaG91bGREZWNvZGVTb3VyY2VEYXRhT2ZNSU1FVHlwZShTdHJpbmcgbWltZVR5
cGUpIC0+IChib29sIHJlc3VsdCkKICNpZiAhVVNFKE5FVFdPUktfU0VTU0lPTikKLSAgICBEZWNp
ZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShTdHJpbmcgZmlsZW5hbWUpIC0+IChT
dHJpbmcgZGVzdGluYXRpb24sIGJvb2wgYWxsb3dPdmVyd3JpdGUsIFdlYktpdDo6U2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCisgICAgRGVjaWRlRGVzdGlu
YXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgbWltZVR5
cGUpIC0+IChTdHJpbmcgZGVzdGluYXRpb24sIGJvb2wgYWxsb3dPdmVyd3JpdGUsIFdlYktpdDo6
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAjZW5kaWYK
ICAgICBEaWRDcmVhdGVEZXN0aW5hdGlvbihTdHJpbmcgcGF0aCkKICAgICBEaWRGaW5pc2goKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDgzNzYwY2ZjM2Y0OTE1OWM0ODMxNzEzN2RiM2ZkZmQ4MDZjODM2ZmIuLjEwOWNlOTEx
NWU1MjA1ZTIyYzY0YjRiODVhOTgxMzcxNmUwN2RjZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAor
MjAxNy0wMi0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtN
YWNdW1dLMl0gVXNlIE1JTUUgdHlwZSB0byBhZGQgZmlsZSBleHRlbnNpb24gdG8gZG93bmxvYWRz
JyBzdWdnZXN0ZWQgZmlsZW5hbWVzIHdoZW4gbWlzc2luZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MDc3CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMDQxMjU5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZWJhc2VsaW5lIGEgY291cGxlIG9mIGRvd25sb2FkIHRlc3RzIHdoZXJlIHN1Z2dlc3Rl
ZCBmaWxlbmFtZXMgbm93IGhhdmUgYW4gZXh0ZW5zaW9uCisgICAgICAgIGFuZCBleHRlbmQgdGVz
dCBjb3ZlcmFnZS4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1kb3dubG9hZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vSFRNTEFuY2hvckVs
ZW1lbnQvYW5jaG9yLWRvd25sb2FkLXVzZXItdHJpZ2dlcmVkLXN5bnRoZXRpYy1jbGljay1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZp
bGUtYmxvYi1kb3dubG9hZC1uby1leHRlbnNpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2Fk
LW5vLWV4dGVuc2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3Itbm9kb3dubG9hZC1zZXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0
dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWRvd25sb2FkLW5vLWV4dGVuc2lvbi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWRvd25sb2Fk
LW5vLWV4dGVuc2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxh
dG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAxNy0wMi0wOSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTa2lwIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21l
ZGlhLWNvbnRyb2xsZXItaW9zLW9ubHktZW5hYmxlLXRhcC1nZXN0dXJlLXJlY29nbml6ZXItd2l0
aC1mYWRlcy13aGVuLWlkbGUuaHRtbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtZXhwZWN0ZWQu
dHh0CmluZGV4IGYyYTQwYzg1NTk5MzI3YTU1NmYwOTg5ZTVmMzI2MTg4M2FmYWY3NzEuLjAyYWYy
ZGU5YjFjNGJjYWM1ODYyYzFkYTU2ZmJiNGJlNmExNmQyYTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRv
d25sb2FkLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIERvd25sb2FkIHN0YXJ0ZWQuCi1E
b3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgInVua25vd24iCitEb3dubG9h
ZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgInVua25vd24uaHRtbCIKIERvd25sb2Fk
IGNvbXBsZXRlZC4KIEJsb2IgVVJMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGlj
LWNsaWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVt
ZW50L2FuY2hvci1kb3dubG9hZC11c2VyLXRyaWdnZXJlZC1zeW50aGV0aWMtY2xpY2stZXhwZWN0
ZWQudHh0CmluZGV4IGU0NDJlN2JkNjgyNjlmMjZkZjQ1N2IzYmVhZDM0ZDVmYzEyMDM1M2EuLmJl
ZGM4ZGRhMDFjOGMxMjM3ZTEwNmM2ODUzMzQwZjM3OTZmN2NlZTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC11c2VyLXRy
aWdnZXJlZC1zeW50aGV0aWMtY2xpY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC11c2VyLXRyaWdnZXJlZC1z
eW50aGV0aWMtY2xpY2stZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogRG93bmxvYWQgc3Rh
cnRlZC4KLURvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAidW5rbm93biIK
K0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAidW5rbm93bi5odG1sIgog
RG93bmxvYWQgY29tcGxldGVkLgogVGVzdCB0aGF0IHVzZXIgdHJpZ2dlcmVkIHN5bnRoZXRpYyBj
bGlja3Mgb24gYW4gYW5jaG9yIHdpdGggYSBkb3dubG9hZCBhdHRyaWJ1dGUgYXJlIG5vdCBpZ25v
cmVkLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVu
dC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLW5vLWV4dGVuc2lvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRv
d25sb2FkLW5vLWV4dGVuc2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGEwZTVmZmMwY2Zm
NzQ1MjZmYjQxMjYyMDExYjIwOTA5NDY5ZDg1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQt
bm8tZXh0ZW5zaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0Rvd25sb2FkIHN0YXJ0
ZWQuCitEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImFiZS5wbmciCitE
b3dubG9hZCBjb21wbGV0ZWQuCitUaGUgc3VnZ2VzdGVkIGZpbGVuYW1lIGFib3ZlIHNob3VsZCBi
ZSAiYWJlLnBuZyIgYW5kIHRoZSBkb3dubG9hZCBzaG91bGQgc3VjY2VlZC4KKworRmlsZSBiYWNr
ZWQgYmxvYiBVUkwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JF
bGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25s
b2FkLW5vLWV4dGVuc2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3YTlhODc0MjMwMmVhZGZhMGJmODc2
YTg5NDI2MmE5MjUzNDEwYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLW5vLWV4dGVuc2lv
bi5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHN1Z2dlc3RlZCBmaWxl
bmFtZSBhYm92ZSBzaG91bGQgYmUgImFiZS5wbmciIGFuZCB0aGUgZG93bmxvYWQgc2hvdWxkIHN1
Y2NlZWQuPC9wPgorPGEgaWQ9ImJsb2ItdXJsIiBkb3dubG9hZD0iYWJlIj5GaWxlIGJhY2tlZCBi
bG9iIFVSTDwvYT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBjbGljayhlbG10KQoreworICAgIGlmICgh
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGFsZXJ0KCdDbGljayB0aGUgbGluayB0byBy
dW4gdGhlIHRlc3QuJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oZWxtdC5vZmZzZXRMZWZ0ICsgNSwgZWxtdC5vZmZzZXRUb3AgKyA1KTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9
CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGZpbGUgPSBpbnRlcm5hbHMuY3JlYXRlRmls
ZSgiLi4vcmVzb3VyY2VzL2FiZS5wbmciKTsKKyAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJibG9iLXVybCIpOworICAgIGxpbmsuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRl
T2JqZWN0VVJMKGZpbGUpOworICAgIGNsaWNrKGxpbmspOworfQorcnVuVGVzdCgpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9hZC1zZXQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLW5vZG93bmxvYWQtc2V0
LWV4cGVjdGVkLnR4dAppbmRleCBmMmE0MGM4NTU5OTMyN2E1NTZmMDk4OWU1ZjMyNjE4ODNhZmFm
NzcxLi4wMmFmMmRlOWIxYzRiY2FjNTg2MmMxZGE1NmZiYjRiZTZhMTZkMmE5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9h
ZC1zZXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JF
bGVtZW50L2FuY2hvci1ub2Rvd25sb2FkLXNldC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBA
CiBEb3dubG9hZCBzdGFydGVkLgotRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVu
YW1lICJ1bmtub3duIgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJ1
bmtub3duLmh0bWwiCiBEb3dubG9hZCBjb21wbGV0ZWQuCiBCbG9iIFVSTApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kb3dubG9hZC9hbmNob3ItZG93bmxvYWQtbm8tZXh0ZW5z
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9y
LWRvd25sb2FkLW5vLWV4dGVuc2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDMyYjUwZGNj
N2RjMWYzZWQ3Zjc1NWY0NzFhMDIxNzA2OTFhM2IxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWRvd25sb2FkLW5vLWV4dGVuc2lvbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRp
bmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJpbWFnZS5wbmciCitEb3dubG9hZCBjb21w
bGV0ZWQuCitUaGUgc3VnZ2VzdGVkIGZpbGVuYW1lIGFib3ZlIHNob3VsZCBiZSAiaW1hZ2UucG5n
IiBhbmQgdGhlIGRvd25sb2FkIHNob3VsZCBzdWNjZWVkLgorCitMaW5rIHdpdGggZG93bmxvYWQg
YXR0cmlidXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kb3dubG9hZC9h
bmNob3ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2Rvd25sb2FkL2FuY2hvci1kb3dubG9hZC1uby1leHRlbnNpb24uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZjQwNzMxMzRjMWQ5MzBhY2JkMWEyZmYyMmZmZWM3ZThkODMyZGNjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kb3dubG9hZC9hbmNob3ItZG93bmxvYWQtbm8tZXh0
ZW5zaW9uLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGUgc3VnZ2VzdGVk
IGZpbGVuYW1lIGFib3ZlIHNob3VsZCBiZSAiaW1hZ2UucG5nIiBhbmQgdGhlIGRvd25sb2FkIHNo
b3VsZCBzdWNjZWVkLjwvcD4KKzxhIGlkPSJkb3dubG9hZC11cmwiIGhyZWY9Ii9jc3MvcmVzb3Vy
Y2VzL2FiZS5wbmciIGRvd25sb2FkPSJpbWFnZSI+TGluayB3aXRoIGRvd25sb2FkIGF0dHJpYnV0
ZS48L2E+Cis8c2NyaXB0PgorZnVuY3Rpb24gY2xpY2soZWxtdCkKK3sKKyAgICBpZiAoIXdpbmRv
dy5ldmVudFNlbmRlcikgeworICAgICAgICBhbGVydCgnQ2xpY2sgdGhlIGxpbmsgdG8gcnVuIHRo
ZSB0ZXN0LicpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKGVsbXQub2Zmc2V0TGVmdCArIDUsIGVsbXQub2Zmc2V0VG9wICsgNSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorCitm
dW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJkb3dubG9hZC11cmwiKTsKKyAgICBjbGljayhsaW5rKTsKK30KK3J1blRlc3QoKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjY5Y2U2OTU0NTU1
Y2RkMTYzM2QxMDg1MWVhM2QyOTI3MWFlMjdhMy4uMjQyMzM4OGQ1MDljNGZjOGQ3ZjhiODBiYmRl
MDUyMzg0YzE5Y2Q1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVs
YXRvci13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mt
c2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODE0LDEwICsxODE0LDEyIEBAIHdl
YmtpdC5vcmcvYi8xNTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25s
b2FkLXVuc2V0Lmh0bWwgWyBTa2lwCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxB
bmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2Iv
MTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItY29udmVy
dC10by1kb3dubG9hZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQuaHRtbCBbIFNraXAg
XQord2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3It
ZmlsZS1ibG9iLWRvd25sb2FkLW5vLWV4dGVuc2lvbi5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3Jn
L2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1ub2Rvd25sb2FkLXNl
dC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JF
bGVtZW50L2FuY2hvci1ub2Rvd25sb2FkLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYw
NjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLXN5bnRoZXRpYy1j
bGljay5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNo
b3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC11c2VyLXRyaWdnZXJlZC1zeW50aGV0aWMtY2xpY2su
aHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE1NjA2NyBodHRwL3Rlc3RzL2Rvd25sb2FkL2Fu
Y2hvci1kb3dubG9hZC1uby1leHRlbnNpb24uaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1
NjA2NyBodHRwL3Rlc3RzL2Rvd25sb2FkL2FyZWEtZG93bmxvYWQuaHRtbCBbIFNraXAgXQogd2Vi
a2l0Lm9yZy9iLzE1NjA2NyBodHRwL3Rlc3RzL3NlY3VyaXR5L2FuY2hvci1kb3dubG9hZC1hbGxv
dy1ibG9iLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjcgaHR0cC90ZXN0cy9zZWN1
cml0eS9hbmNob3ItZG93bmxvYWQtYWxsb3ctZGF0YS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDExOWNjZTlhYWNi
NTliM2U2MGQ0ZTIyMjM0MWRhMDE5ODQ3NzY4Ny4uYTk1ZDY4NWEwZDM3YzYyOGRjYTAwMGZlZDFl
MTZkODAzZDE2OTM4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMjEwLDYgKzIxMCw4IEBAIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9k
b20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25s
b2FkLXN5bnRoZXRpYy1jbGljay5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC11c2VyLXRyaWdnZXJlZC1z
eW50aGV0aWMtY2xpY2suaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWZpbGUtYmxvYi1kb3dubG9hZC1uby1leHRlbnNpb24uaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzE1NjA2OSBodHRwL3Rlc3RzL2Rvd25sb2FkL2FuY2hvci1kb3dubG9hZC1uby1leHRlbnNp
b24uaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBodHRwL3Rlc3RzL2Rvd25sb2Fk
L2FyZWEtZG93bmxvYWQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBodHRwL3Rl
c3RzL3NlY3VyaXR5L2FuY2hvci1kb3dubG9hZC1hbGxvdy1ibG9iLmh0bWwgWyBTa2lwIF0KIHdl
YmtpdC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQtYWxs
b3ctZGF0YS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGI3MDgzNGQ1OWEwNTAzMWEzMGU4ZjVmMjZjZjI5OTFkNjA1ZjI2NGQuLmVh
Mjk3YTQ2N2MzODRmM2M5MDZlYTRmOGE5ODc4OWE3OGExZDU2NjkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC00NDUsNiArNDQ1LDggQEAgZmFzdC9kb20v
SFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLXVuc2V0Lmh0bWwgWyBTa2lwIF0KIGZh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC1zeW50aGV0aWMtY2xpY2su
aHRtbCBbIFNraXAgXQogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2Fk
LXVzZXItdHJpZ2dlcmVkLXN5bnRoZXRpYy1jbGljay5odG1sIFsgU2tpcCBdCiBmYXN0L2RvbS9I
VE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLmh0bWwgWyBTa2lwIF0K
K2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8t
ZXh0ZW5zaW9uLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWRvd25s
b2FkLW5vLWV4dGVuc2lvbi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2Rvd25sb2FkL2FyZWEt
ZG93bmxvYWQuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxv
YWQtYWxsb3ctZGF0YS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2FuY2hvci1k
b3dubG9hZC1hbGxvdy1zYW1lb3JpZ2luLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301118</attachid>
            <date>2017-02-09 18:33:19 -0800</date>
            <delta_ts>2017-02-09 20:02:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168077-20170209183053.patch</filename>
            <type>text/plain</type>
            <size>25381</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExOTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg0YWZkYzdkMzYxY2Jm
NzY4YjdhYmE1MDM1ODM3NmQ3N2YwZGU3OC4uZDQzNjZhMTgyOWJhNWQ4NTIzYjQxYjQxNTZjZWM1
ZTgzMzUzNzE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTAyLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY11bV0syXSBVc2UgTUlN
RSB0eXBlIHRvIGFkZCBmaWxlIGV4dGVuc2lvbiB0byBkb3dubG9hZHMnIHN1Z2dlc3RlZCBmaWxl
bmFtZXMgd2hlbiBtaXNzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjgwNzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwNDEyNTk1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB1dGlsaXR5
IGZ1bmN0aW9uIHRvIE1JTUVUeXBlUmVnaXN0cnkgdGhhdCBhcHBlbmRzIGFuIGV4dGVuc2lvbiB0
bworICAgICAgICBhIGZpbGVuYW1lIGlmIG5lY2Vzc2FyeSwgYmFzZWQgb24gYSBwcm92aWRlZCBN
SU1FIHR5cGUuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWRvd25sb2FkLW5vLWV4dGVuc2lvbi5odG1sCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1JTUVUeXBlUmVnaXN0cnk6OmFwcGVuZEZpbGVFeHRlbnNpb25JZk5lY2Vzc2FyeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL01JTUVUeXBlUmVnaXN0cnlDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVU
eXBlUmVnaXN0cnk6OmFwcGVuZEZpbGVFeHRlbnNpb25JZk5lY2Vzc2FyeSk6CisKIDIwMTctMDIt
MDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHNvbWUg
bG9nZ2luZyBzdGF0ZW1lbnRzIGluIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
QwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDczNWViZTg5NDA3NjM4ZGVlYTZmZmJkNzUxOWMwZTJiNWMzZWRjMWUu
LmNiMTA0MTUyM2NiNzg4Njk1NTk2YWM0NzJhYzRlOTFlMTRiNmY1NTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMCBAQAorMjAxNy0wMi0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFtNYWNdW1dLMl0gVXNlIE1JTUUgdHlwZSB0byBhZGQgZmlsZSBleHRlbnNp
b24gdG8gZG93bmxvYWRzJyBzdWdnZXN0ZWQgZmlsZW5hbWVzIHdoZW4gbWlzc2luZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MDc3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8zMDQxMjU5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgTUlNRSB0eXBlIHRvIGFkZCBmaWxlIGV4dGVuc2lvbiB0
byBkb3dubG9hZHMnIHN1Z2dlc3RlZCBmaWxlbmFtZXMgd2hlbiBtaXNzaW5nOgorICAgICAgICAt
IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2FzLWEtZG93bmxvYWQgKHN0ZXAgMTkpCisK
KyAgICAgICAgVGhpcyBuZXcgYmVoYXZpb3IgbWF0Y2hlcyBDaHJvbWUuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6QmxvYkRvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6
OkRvd25sb2FkOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6ZmluZFBlbmRpbmdEb3dubG9hZExvY2F0aW9uKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9h
ZFByb3h5OjpkaWRTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHk6OmRlY2lk
ZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW46CisKIDIwMTctMDItMDkgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhbGwgY2FjaGVhYmxlIHNwZWN1bGF0
aXZlbHkgbG9hZGVkIHJlc3BvbnNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlw
ZVJlZ2lzdHJ5LmNwcAppbmRleCAzNjZmOWM0OTI5YjgxNGE1Yzk1NDVmNmU0ZWY0NDk4MzM3YTgx
OTVlLi42NjRlNmQ0MzNiOGE5OTgwMjc2ZDY4YmZhN2UwYTFjZDhhMGFlMWM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApAQCAtNzg4LDQgKzc4OCwx
MyBAQCBTdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0Tm9ybWFsaXplZE1JTUVUeXBlKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpCiAKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKENPQ09BKQorCitT
dHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6YXBwZW5kRmlsZUV4dGVuc2lvbklmTmVjZXNzYXJ5KGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIGZpbGVu
YW1lOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oCmluZGV4IDNmZDgwZDJkNzNkZThlZjIxNzVj
M2E2ZDk4Yjg1NTBjNmEwNzFhNmUuLjg3NTNkNDdjMGMxM2E4ZmE2OGQ5ZTg5NDA0NGQwNGM3NjNh
YmFhMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgKQEAg
LTEwNSw2ICsxMDUsOCBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFVuY2xlYXIgd2hhdCB0aGUg
Y29uY2VwdCBvZiBhIG5vcm1hbGl6ZWQgTUlNRSB0eXBlIGlzOyBjdXJyZW50bHkgaXQncyBhIHBs
YXRmb3JtLXNwZWNpZmljIG5vdGlvbi4KICAgICBzdGF0aWMgU3RyaW5nIGdldE5vcm1hbGl6ZWRN
SU1FVHlwZShjb25zdCBTdHJpbmcmKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJp
bmcgYXBwZW5kRmlsZUV4dGVuc2lvbklmTmVjZXNzYXJ5KGNvbnN0IFN0cmluZyYgZmlsZW5hbWUs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworCiBwcml2YXRlOgogICAgIC8vIENoZWNrIHRvIHNl
ZSBpZiB0aGUgTUlNRSB0eXBlIGlzIG5vdCBzdWl0YWJsZSBmb3IgYmVpbmcgbG9hZGVkIGFzIGEg
dGV4dAogICAgIC8vIGRvY3VtZW50IGluIGEgZnJhbWUuIE9ubHkgdmFsaWQgZm9yIE1JTUUgdHlw
ZXMgYmVnaW5pbmcgd2l0aCAidGV4dC8iLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tCmluZGV4IDM1NzM3MDQxZDNkNTE1
YjJhMjc2ODI3NzU2ZWJmYWVmZWE1MjRmYWUuLjUxZGIzY2ViZmM5NGFjM2ZhOWI3Zjg1ZDY0Njcx
MWJkYWYwMGVhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01J
TUVUeXBlUmVnaXN0cnlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0KQEAgLTcxLDQgKzcxLDE5IEBAIGJvb2wgTUlNRVR5
cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBsdWdpbk1JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlN
RVR5cGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitTdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6
YXBwZW5kRmlsZUV4dGVuc2lvbklmTmVjZXNzYXJ5KGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpCit7CisgICAgaWYgKGZpbGVuYW1lLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisKKyAgICBpZiAoZmlsZW5hbWUucmV2ZXJzZUZp
bmQoJy4nKSAhPSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuIGZpbGVuYW1lOworCisgICAgU3Ry
aW5nIHByZWZlcnJlZEV4dGVuc2lvbiA9IGdldFByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBl
KG1pbWVUeXBlKTsKKyAgICBpZiAocHJlZmVycmVkRXh0ZW5zaW9uLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuIGZpbGVuYW1lOworCisgICAgcmV0dXJuIGZpbGVuYW1lICsgIi4iICsgcHJlZmVy
cmVkRXh0ZW5zaW9uOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuY3BwCmluZGV4IGMz
MDQzNzY5MWQ1MmYzNzE2ZTMxZmUxMjI4Y2M3MWExYmVmZjljN2EuLmNmOWFjY2U5YjE0MmZmM2Y5
NDM0YzI3NmVlOTI2MDc1MGIzMDliOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuY3BwCkBA
IC0zMSw3ICszMSw5IEBACiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRv
d25sb2FkLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NSU1F
VHlwZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFy
ZWRCdWZmZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Niw3ICs0OCw4IEBAIEJsb2JE
b3dubG9hZENsaWVudDo6QmxvYkRvd25sb2FkQ2xpZW50KERvd25sb2FkJiBkb3dubG9hZCkKIHZv
aWQgQmxvYkRvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhh
bmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKIHsKICAgICBtX2Rvd25sb2FkLmRp
ZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSk7Ci0gICAgbV9kb3dubG9hZC5kZWNp
ZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKG1fZG93bmxvYWQuc3VnZ2Vz
dGVkTmFtZSgpLmlzRW1wdHkoKSA/ICJ1bmtub3duIiA6IG1fZG93bmxvYWQuc3VnZ2VzdGVkTmFt
ZSgpKTsKKyAgICBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUgPSBNSU1FVHlwZVJlZ2lzdHJ5Ojph
cHBlbmRGaWxlRXh0ZW5zaW9uSWZOZWNlc3NhcnkobV9kb3dubG9hZC5zdWdnZXN0ZWROYW1lKCku
aXNFbXB0eSgpID8gQVNDSUlMaXRlcmFsKCJ1bmtub3duIikgOiBtX2Rvd25sb2FkLnN1Z2dlc3Rl
ZE5hbWUoKSwgcmVzcG9uc2UubWltZVR5cGUoKSk7CisgICAgbV9kb3dubG9hZC5kZWNpZGVEZXN0
aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKHN1Z2dlc3RlZEZpbGVuYW1lKTsKIH0K
IAogdm9pZCBCbG9iRG93bmxvYWRDbGllbnQ6OmRpZERlY2lkZURvd25sb2FkRGVzdGluYXRpb24o
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblBhdGgsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNw
cAppbmRleCBmMWE2OGRhNDMyYzVkY2M0Yzk3ZjBlMjg3NzJhZGEyOGI3ZTAyZGYxLi5iZjg0NDNi
NTcxODc1OWI2OGMwZjA3MjliZDUxODQ4NmI1MjMzOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKQEAgLTE2MSw2ICsx
NjEsNyBAQCB2b2lkIERvd25sb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVj
ZWl2ZVJlc3BvbnNlOiBDcmVhdGVkIChpZCA9ICUiIFBSSXU2NCAiKSIsIGRvd25sb2FkSUQoKS5k
b3dubG9hZElEKCkpOwogCisgICAgbV9yZXNwb25zZU1JTUVUeXBlID0gcmVzcG9uc2UubWltZVR5
cGUoKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEaWRSZWNlaXZlUmVzcG9u
c2UocmVzcG9uc2UpKTsKIH0KIApAQCAtMTc3LDcgKzE3OCw3IEBAIFN0cmluZyBEb3dubG9hZDo6
ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxl
bmFtZSwKIHsKICAgICBTdHJpbmcgZGVzdGluYXRpb247CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKCFzZW5kU3luYyhNZXNzYWdl
czo6RG93bmxvYWRQcm94eTo6RGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUo
ZmlsZW5hbWUpLCBNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGVjaWRlRGVzdGluYXRpb25XaXRo
U3VnZ2VzdGVkRmlsZW5hbWU6OlJlcGx5KGRlc3RpbmF0aW9uLCBhbGxvd092ZXJ3cml0ZSwgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSkpKQorICAgIGlmICghc2VuZFN5bmMoTWVzc2FnZXM6OkRvd25s
b2FkUHJveHk6OkRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKGZpbGVuYW1l
LCBtX3Jlc3BvbnNlTUlNRVR5cGUpLCBNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGVjaWRlRGVz
dGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWU6OlJlcGx5KGRlc3RpbmF0aW9uLCBhbGxvd092
ZXJ3cml0ZSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkpKQogICAgICAgICByZXR1cm4gU3RyaW5n
KCk7CiAKICAgICBtX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUo
c2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCmluZGV4IDg5YTFlMTIwOTdjMTc4N2I5YjkxM2M0
MWQzYzkxZGY0MzU1ZGE5YTYuLmFlNGQ3Y2ZmNmNmZWY1YTY3ODlkYzI3YzQxNDJhMDRhYjNiMzRl
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZC5oCkBAIC0xNDYsNiArMTQ2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiAjZWxzZSAvLyBVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CisgICAgU3RyaW5nIG1fcmVzcG9uc2VN
SU1FVHlwZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNVUkxEb3dubG9h
ZD4gbV9uc1VSTERvd25sb2FkOwogICAgIFJldGFpblB0cjxXS0Rvd25sb2FkQXNEZWxlZ2F0ZT4g
bV9kZWxlZ2F0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAppbmRleCBhMTBmNDJjMDI4NTg1Y2NkMzE1N2U4OWZkNTBmMzRhNDAxY2ExNTdi
Li4yMTFmM2UzZmUxNTJmM2IzMmUzMWQ5YTBmYzg4MzYwZTA1NmRhOGY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC01Myw2ICs1
Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9ETlMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlv
bi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9y
bUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC01
MTIsNyArNTEzLDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmluZFBlbmRpbmdEb3dubG9hZExv
Y2F0aW9uKE5ldHdvcmtEYXRhVGFzayYgbmV0d29ya0RhdGFUYXMKICAgICBkb3dubG9hZFByb3h5
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEaWRSZWNlaXZlUmVz
cG9uc2UocmVzcG9uc2UpLCBkZXN0aW5hdGlvbklEKTsKIAogICAgIGRvd25sb2FkTWFuYWdlcigp
LndpbGxEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihuZXR3b3JrRGF0YVRhc2ssIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICBkb3dubG9hZFByb3h5Q29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdn
ZXN0ZWRGaWxlbmFtZUFzeW5jKG5ldHdvcmtEYXRhVGFzay5wZW5kaW5nRG93bmxvYWRJRCgpLCBu
ZXR3b3JrRGF0YVRhc2suc3VnZ2VzdGVkRmlsZW5hbWUoKSksIGRlc3RpbmF0aW9uSUQpOworICAg
IFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSA9IE1JTUVUeXBlUmVnaXN0cnk6OmFwcGVuZEZpbGVF
eHRlbnNpb25JZk5lY2Vzc2FyeShuZXR3b3JrRGF0YVRhc2suc3VnZ2VzdGVkRmlsZW5hbWUoKSwg
cmVzcG9uc2UubWltZVR5cGUoKSk7CisgICAgZG93bmxvYWRQcm94eUNvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVk
RmlsZW5hbWVBc3luYyhuZXR3b3JrRGF0YVRhc2sucGVuZGluZ0Rvd25sb2FkSUQoKSwgc3VnZ2Vz
dGVkRmlsZW5hbWUpLCBkZXN0aW5hdGlvbklEKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcAppbmRleCBm
OWZjOTU5MzIyNmYxMDU4MGM4YTI3YWRhYzQ4Y2U1NjU0OWQ4NDU0Li4wODI3OWFhYmQ0MWY2MDU0
ODM1NTRkZmVjYjM3NGQ0OGJjZDNmOTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgIldlYlByb3RlY3Rpb25TcGFjZS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTUlN
RVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtOTEsNyArOTIsNyBAQCB2b2lkIERvd25sb2Fk
UHJveHk6OnByb2Nlc3NEaWRDbG9zZSgpCiAgICAgbV9wcm9jZXNzUG9vbC0+ZG93bmxvYWRDbGll
bnQoKS5wcm9jZXNzRGlkQ3Jhc2gobV9wcm9jZXNzUG9vbC5nZXQoKSwgdGhpcyk7CiB9CiAKLXZv
aWQgRG93bmxvYWRQcm94eTo6ZGlkU3RhcnQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBBdG9taWNTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKQordm9pZCBEb3dubG9hZFBy
b3h5OjpkaWRTdGFydChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmlu
ZyYgc3VnZ2VzdGVkRmlsZW5hbWUpCiB7CiAgICAgbV9yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBt
X3N1Z2dlc3RlZEZpbGVuYW1lID0gc3VnZ2VzdGVkRmlsZW5hbWU7CkBAIC0xOTMsMTcgKzE5NCwx
NCBAQCB2b2lkIERvd25sb2FkUHJveHk6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lQXN5bmMoRG93bmxvYWRJRCBkb3dubAogCiAjaWYgIVVTRShORVRXT1JLX1NFU1NJT04p
CiAKLXZvaWQgRG93bmxvYWRQcm94eTo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmls
ZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgU3RyaW5nJiBkZXN0aW5hdGlvbiwgYm9vbCYg
YWxsb3dPdmVyd3JpdGUsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSkKK3ZvaWQgRG93bmxvYWRQcm94eTo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2Vz
dGVkRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgU3RyaW5nJiBkZXN0aW5hdGlvbiwgYm9vbCYgYWxsb3dPdmVyd3JpdGUsIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKIHsKICAgICBhbGxvd092ZXJ3
cml0ZSA9IGZhbHNlOwogCiAgICAgaWYgKCFtX3Byb2Nlc3NQb29sKQogICAgICAgICByZXR1cm47
CiAKLSAgICBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUgPSBmaWxlbmFtZTsKLSAgICBpZiAoIW1f
c3VnZ2VzdGVkRmlsZW5hbWUuaXNOdWxsKCkpCi0gICAgICAgIHN1Z2dlc3RlZEZpbGVuYW1lID0g
bV9zdWdnZXN0ZWRGaWxlbmFtZTsKLSAgICAKKyAgICBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUg
PSBNSU1FVHlwZVJlZ2lzdHJ5OjphcHBlbmRGaWxlRXh0ZW5zaW9uSWZOZWNlc3NhcnkobV9zdWdn
ZXN0ZWRGaWxlbmFtZS5pc051bGwoKSA/IGZpbGVuYW1lIDogbV9zdWdnZXN0ZWRGaWxlbmFtZSwg
bWltZVR5cGUpOwogICAgIGRlc3RpbmF0aW9uID0gbV9wcm9jZXNzUG9vbC0+ZG93bmxvYWRDbGll
bnQoKS5kZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShtX3Byb2Nlc3NQb29s
LmdldCgpLCB0aGlzLCBzdWdnZXN0ZWRGaWxlbmFtZSwgYWxsb3dPdmVyd3JpdGUpOwogCiAgICAg
aWYgKCFkZXN0aW5hdGlvbi5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggNjhkNjgwNDI5MGZmYWIxMDg3ZThl
OGJkMzdlZWNkZmRlMjVhYzU4OC4uMWNhZGE4ZTJhN2ViYmJlNjhmYzA3NDgzYzQyY2JhZGE4MTVh
M2QwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZFByb3h5LmgKQEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVy
cy4KLSAgICB2b2lkIGRpZFN0YXJ0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IEF0b21pY1N0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpOworICAgIHZvaWQgZGlkU3RhcnQo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRG
aWxlbmFtZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29u
c3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCB1aW50NjRfdCBjaGFsbGVuZ2VJ
RCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEodWludDY0X3QgbGVuZ3RoKTsKQEAg
LTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0LCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICNlbHNlCi0gICAg
dm9pZCBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShjb25zdCBTdHJpbmcm
IGZpbGVuYW1lLCBTdHJpbmcmIGRlc3RpbmF0aW9uLCBib29sJiBhbGxvd092ZXJ3cml0ZSwgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICB2b2lk
IGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZmls
ZW5hbWUsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFN0cmluZyYgZGVzdGluYXRpb24sIGJvb2wm
IGFsbG93T3ZlcndyaXRlLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNp
b25IYW5kbGUpOwogI2VuZGlmCiAgICAgdm9pZCBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZUFzeW5jKERvd25sb2FkSUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5h
bWUpOwogCkBAIC0xMDIsNyArMTAyLDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxBUEk6OkRh
dGE+IG1fcmVzdW1lRGF0YTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0
OwotICAgIEF0b21pY1N0cmluZyBtX3N1Z2dlc3RlZEZpbGVuYW1lOworICAgIFN0cmluZyBtX3N1
Z2dlc3RlZEZpbGVuYW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggOGQ1YjRiMTliNWY4YTk0Mzc1MDQ2MWEyYzdjNjBkMmNhYTc4ZTNl
Yy4uYzIyZDA5OWJhZjcxOGMwNzk3MmFlMzJhZTIwNmIyZWNkNGM5YTRjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMzUsNyArMzUsNyBAQCBtZXNzYWdlcyAtPiBEb3dubG9hZFByb3h5
IHsKICAgICBEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBsZW5ndGgpCiAgICAgU2hvdWxkRGVjb2Rl
U291cmNlRGF0YU9mTUlNRVR5cGUoU3RyaW5nIG1pbWVUeXBlKSAtPiAoYm9vbCByZXN1bHQpCiAj
aWYgIVVTRShORVRXT1JLX1NFU1NJT04pCi0gICAgRGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2Vz
dGVkRmlsZW5hbWUoU3RyaW5nIGZpbGVuYW1lKSAtPiAoU3RyaW5nIGRlc3RpbmF0aW9uLCBib29s
IGFsbG93T3ZlcndyaXRlLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKQorICAgIERlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVu
YW1lKFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIG1pbWVUeXBlKSAtPiAoU3RyaW5nIGRlc3RpbmF0
aW9uLCBib29sIGFsbG93T3ZlcndyaXRlLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogI2VuZGlmCiAgICAgRGlkQ3JlYXRlRGVzdGluYXRp
b24oU3RyaW5nIHBhdGgpCiAgICAgRGlkRmluaXNoKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4Mzc2MGNmYzNmNDkxNTlj
NDgzMTcxMzdkYjNmZGZkODA2YzgzNmZiLi4xMDljZTkxMTVlNTIwNWUyMmM2NGI0Yjg1YTk4MTM3
MTZlMDdkY2RmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTctMDItMDkgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXVtXSzJdIFVzZSBNSU1FIHR5cGUg
dG8gYWRkIGZpbGUgZXh0ZW5zaW9uIHRvIGRvd25sb2Fkcycgc3VnZ2VzdGVkIGZpbGVuYW1lcyB3
aGVuIG1pc3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2ODA3NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzA0MTI1OTU+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBhIGNvdXBs
ZSBvZiBkb3dubG9hZCB0ZXN0cyB3aGVyZSBzdWdnZXN0ZWQgZmlsZW5hbWVzIG5vdyBoYXZlIGFu
IGV4dGVuc2lvbgorICAgICAgICBhbmQgZXh0ZW5kIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAg
KiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC11
c2VyLXRyaWdnZXJlZC1zeW50aGV0aWMtY2xpY2stZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8tZXh0
ZW5zaW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTEFuY2hv
ckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1uby1leHRlbnNpb24uaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLW5vZG93bmxv
YWQtc2V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2Rvd25sb2FkL2FuY2hv
ci1kb3dubG9hZC1uby1leHRlbnNpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2Rvd25sb2FkL2FuY2hvci1kb3dubG9hZC1uby1leHRlbnNpb24uaHRtbDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTctMDItMDkgIFJ5YW4gSGFk
ZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgU2tpcCBtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlvcy1vbmx5
LWVuYWJsZS10YXAtZ2VzdHVyZS1yZWNvZ25pemVyLXdpdGgtZmFkZXMtd2hlbi1pZGxlLmh0bWwu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNo
b3ItZG93bmxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hv
ckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLWV4cGVjdGVkLnR4dAppbmRleCBmMmE0MGM4NTU5OTMy
N2E1NTZmMDk4OWU1ZjMyNjE4ODNhZmFmNzcxLi4wMmFmMmRlOWIxYzRiY2FjNTg2MmMxZGE1NmZi
YjRiZTZhMTZkMmE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZG93bmxvYWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSw0IEBACiBEb3dubG9hZCBzdGFydGVkLgotRG93bmxvYWRpbmcgVVJMIHdpdGggc3Vn
Z2VzdGVkIGZpbGVuYW1lICJ1bmtub3duIgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVk
IGZpbGVuYW1lICJ1bmtub3duLmh0bWwiCiBEb3dubG9hZCBjb21wbGV0ZWQuCiBCbG9iIFVSTApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWRvd25sb2FkLXVzZXItdHJpZ2dlcmVkLXN5bnRoZXRpYy1jbGljay1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtdXNl
ci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLWV4cGVjdGVkLnR4dAppbmRleCBlNDQyZTdiZDY4
MjY5ZjI2ZGY0NTdiM2JlYWQzNGQ1ZmMxMjAzNTNhLi5iZWRjOGRkYTAxYzhjMTIzN2UxMDZjNjg1
MzM0MGYzNzk2ZjdjZWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5j
aG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNr
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVu
dC9hbmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLWV4cGVjdGVk
LnR4dApAQCAtMSw1ICsxLDUgQEAKIERvd25sb2FkIHN0YXJ0ZWQuCi1Eb3dubG9hZGluZyBVUkwg
d2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgInVua25vd24iCitEb3dubG9hZGluZyBVUkwgd2l0aCBz
dWdnZXN0ZWQgZmlsZW5hbWUgInVua25vd24uaHRtbCIKIERvd25sb2FkIGNvbXBsZXRlZC4KIFRl
c3QgdGhhdCB1c2VyIHRyaWdnZXJlZCBzeW50aGV0aWMgY2xpY2tzIG9uIGFuIGFuY2hvciB3aXRo
IGEgZG93bmxvYWQgYXR0cmlidXRlIGFyZSBub3QgaWdub3JlZC4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3du
bG9hZC1uby1leHRlbnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1uby1leHRlbnNpb24tZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMGU1ZmZjMGNmZjc0NTI2ZmI0MTI2MjAxMWIyMDkwOTQ2
OWQ4NTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLW5vLWV4dGVuc2lvbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw2IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcgVVJMIHdp
dGggc3VnZ2VzdGVkIGZpbGVuYW1lICJhYmUucG5nIgorRG93bmxvYWQgY29tcGxldGVkLgorVGhl
IHN1Z2dlc3RlZCBmaWxlbmFtZSBhYm92ZSBzaG91bGQgYmUgImFiZS5wbmciIGFuZCB0aGUgZG93
bmxvYWQgc2hvdWxkIHN1Y2NlZWQuCisKK0ZpbGUgYmFja2VkIGJsb2IgVVJMCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9i
LWRvd25sb2FkLW5vLWV4dGVuc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFu
Y2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1uby1leHRlbnNpb24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xN2E5YTg3NDIzMDJlYWRmYTBiZjg3NmE4OTQyNjJhOTI1MzQxMGMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5j
aG9yLWZpbGUtYmxvYi1kb3dubG9hZC1uby1leHRlbnNpb24uaHRtbApAQCAtMCwwICsxLDM2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9J3RleHQvamF2
YXNjcmlwdCc+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoZSBzdWdnZXN0ZWQgZmlsZW5hbWUgYWJvdmUgc2hvdWxkIGJlICJh
YmUucG5nIiBhbmQgdGhlIGRvd25sb2FkIHNob3VsZCBzdWNjZWVkLjwvcD4KKzxhIGlkPSJibG9i
LXVybCIgZG93bmxvYWQ9ImFiZSI+RmlsZSBiYWNrZWQgYmxvYiBVUkw8L2E+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gY2xpY2soZWxtdCkKK3sKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgewor
ICAgICAgICBhbGVydCgnQ2xpY2sgdGhlIGxpbmsgdG8gcnVuIHRoZSB0ZXN0LicpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGVsbXQub2Zmc2V0
TGVmdCArIDUsIGVsbXQub2Zmc2V0VG9wICsgNSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkK
K3sKKyAgICBmaWxlID0gaW50ZXJuYWxzLmNyZWF0ZUZpbGUoIi4uL3Jlc291cmNlcy9hYmUucG5n
Iik7CisgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxvYi11cmwiKTsK
KyAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTsKKyAgICBj
bGljayhsaW5rKTsKK30KK3J1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LW5vZG93bmxvYWQtc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxB
bmNob3JFbGVtZW50L2FuY2hvci1ub2Rvd25sb2FkLXNldC1leHBlY3RlZC50eHQKaW5kZXggZjJh
NDBjODU1OTkzMjdhNTU2ZjA5ODllNWYzMjYxODgzYWZhZjc3MS4uMDJhZjJkZTliMWM0YmNhYzU4
NjJjMWRhNTZmYmI0YmU2YTE2ZDJhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLW5vZG93bmxvYWQtc2V0LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9h
ZC1zZXQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogRG93bmxvYWQgc3RhcnRlZC4KLURv
d25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAidW5rbm93biIKK0Rvd25sb2Fk
aW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAidW5rbm93bi5odG1sIgogRG93bmxvYWQg
Y29tcGxldGVkLgogQmxvYiBVUkwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZG93bmxvYWQvYW5jaG9yLWRvd25sb2FkLW5vLWV4dGVuc2lvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2Rvd25sb2FkL2FuY2hvci1kb3dubG9hZC1uby1leHRlbnNpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzMmI1MGRjYzdkYzFmM2VkN2Y3NTVmNDcxYTAyMTcw
NjkxYTNiMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rvd25s
b2FkL2FuY2hvci1kb3dubG9hZC1uby1leHRlbnNpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBm
aWxlbmFtZSAiaW1hZ2UucG5nIgorRG93bmxvYWQgY29tcGxldGVkLgorVGhlIHN1Z2dlc3RlZCBm
aWxlbmFtZSBhYm92ZSBzaG91bGQgYmUgImltYWdlLnBuZyIgYW5kIHRoZSBkb3dubG9hZCBzaG91
bGQgc3VjY2VlZC4KKworTGluayB3aXRoIGRvd25sb2FkIGF0dHJpYnV0ZS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWRvd25sb2FkLW5vLWV4dGVu
c2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kb3dubG9hZC9hbmNob3ItZG93bmxv
YWQtbm8tZXh0ZW5zaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY0MDczMTM0YzFkOTMwYWNiZDFhMmZm
MjJmZmVjN2U4ZDgzMmRjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZG93bmxvYWQvYW5jaG9yLWRvd25sb2FkLW5vLWV4dGVuc2lvbi5odG1sCkBAIC0wLDAgKzEs
MzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0ndGV4
dC9qYXZhc2NyaXB0Jz4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHN1Z2dlc3RlZCBmaWxlbmFtZSBhYm92ZSBzaG91bGQg
YmUgImltYWdlLnBuZyIgYW5kIHRoZSBkb3dubG9hZCBzaG91bGQgc3VjY2VlZC48L3A+Cis8YSBp
ZD0iZG93bmxvYWQtdXJsIiBocmVmPSIvY3NzL3Jlc291cmNlcy9hYmUucG5nIiBkb3dubG9hZD0i
aW1hZ2UiPkxpbmsgd2l0aCBkb3dubG9hZCBhdHRyaWJ1dGUuPC9hPgorPHNjcmlwdD4KK2Z1bmN0
aW9uIGNsaWNrKGVsbXQpCit7CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAg
ICAgYWxlcnQoJ0NsaWNrIHRoZSBsaW5rIHRvIHJ1biB0aGUgdGVzdC4nKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhlbG10Lm9mZnNldExlZnQg
KyA1LCBlbG10Lm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7Cisg
ICAgdmFyIGxpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtdXJsIik7Cisg
ICAgY2xpY2sobGluayk7Cit9CitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDI2OWNlNjk1NDU1NWNkZDE2MzNkMTA4NTFlYTNkMjkyNzFh
ZTI3YTMuLjI0MjMzODhkNTA5YzRmYzhkN2Y4YjgwYmJkZTA1MjM4NGMxOWNkNTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTgxNCwxMCArMTgxNCwxMiBAQCB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC11bnNldC5odG1sIFsgU2tpcAog
d2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93
bmxvYWQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5j
aG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWNvbnZlcnQtdG8tZG93bmxvYWQuaHRtbCBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNo
b3ItZmlsZS1ibG9iLWRvd25sb2FkLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNTYwNjcg
ZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1uby1l
eHRlbnNpb24uaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1M
QW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9hZC1zZXQuaHRtbCBbIFNraXAgXQogd2Via2l0
Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9h
ZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JF
bGVtZW50L2FuY2hvci1kb3dubG9hZC1zeW50aGV0aWMtY2xpY2suaHRtbCBbIFNraXAgXQogd2Vi
a2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxv
YWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5v
cmcvYi8xNTYwNjcgaHR0cC90ZXN0cy9kb3dubG9hZC9hbmNob3ItZG93bmxvYWQtbm8tZXh0ZW5z
aW9uLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjcgaHR0cC90ZXN0cy9kb3dubG9h
ZC9hcmVhLWRvd25sb2FkLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjcgaHR0cC90
ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQtYWxsb3ctYmxvYi5odG1sIFsgU2tpcCBdCiB3
ZWJraXQub3JnL2IvMTU2MDY3IGh0dHAvdGVzdHMvc2VjdXJpdHkvYW5jaG9yLWRvd25sb2FkLWFs
bG93LWRhdGEuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGQxMTljY2U5YWFjYjU5YjNlNjBkNGUyMjIzNDFkYTAxOTg0
Nzc2ODcuLmE5NWQ2ODVhMGQzN2M2MjhkY2EwMDBmZWQxZTE2ZDgwM2QxNjkzODIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIxMCw2ICsy
MTAsOCBAQCB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1kb3dubG9hZC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC1zeW50aGV0aWMtY2xpY2suaHRt
bCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVu
dC9hbmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLmh0bWwgWyBT
a2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5j
aG9yLWZpbGUtYmxvYi1kb3dubG9hZC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTU2MDY5
IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8t
ZXh0ZW5zaW9uLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0cy9k
b3dubG9hZC9hbmNob3ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwgWyBTa2lwIF0KIHdlYmtp
dC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0cy9kb3dubG9hZC9hcmVhLWRvd25sb2FkLmh0bWwgWyBT
a2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93
bmxvYWQtYWxsb3ctYmxvYi5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGh0dHAv
dGVzdHMvc2VjdXJpdHkvYW5jaG9yLWRvd25sb2FkLWFsbG93LWRhdGEuaHRtbCBbIFNraXAgXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiNzA4MzRkNTlh
MDUwMzFhMzBlOGY1ZjI2Y2YyOTkxZDYwNWYyNjRkLi5lYTI5N2E0NjdjMzg0ZjNjOTA2ZWE0Zjhh
OTg3ODlhNzhhMWQ1NjY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucwpAQCAtNDQ1LDYgKzQ0NSw4IEBAIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1kb3dubG9hZC11bnNldC5odG1sIFsgU2tpcCBdCiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVu
dC9hbmNob3ItZG93bmxvYWQtc3ludGhldGljLWNsaWNrLmh0bWwgWyBTa2lwIF0KIGZhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC11c2VyLXRyaWdnZXJlZC1zeW50aGV0
aWMtY2xpY2suaHRtbCBbIFNraXAgXQogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWZpbGUtYmxvYi1kb3dubG9hZC5odG1sIFsgU2tpcCBdCitmYXN0L2RvbS9IVE1MQW5jaG9yRWxl
bWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLW5vLWV4dGVuc2lvbi5odG1sIFsgU2tpcCBd
CitodHRwL3Rlc3RzL2Rvd25sb2FkL2FuY2hvci1kb3dubG9hZC1uby1leHRlbnNpb24uaHRtbCBb
IFNraXAgXQogaHR0cC90ZXN0cy9kb3dubG9hZC9hcmVhLWRvd25sb2FkLmh0bWwgWyBTa2lwIF0K
IGh0dHAvdGVzdHMvc2VjdXJpdHkvYW5jaG9yLWRvd25sb2FkLWFsbG93LWRhdGEuaHRtbCBbIFNr
aXAgXQogaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQtYWxsb3ctc2FtZW9yaWdp
bi5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>