<?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>175679</bug_id>
          
          <creation_ts>2017-08-17 12:14:30 -0700</creation_ts>
          <short_desc>Regression(r220817): We should only copy the original request headers for Ping loads</short_desc>
          <delta_ts>2017-08-17 15:57:34 -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>WebCore Misc.</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>
          
          <blocked>175628</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1339671</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-17 12:14:30 -0700</bug_when>
    <thetext>We should only copy the original request headers for Ping loads (Beacon at the moment), not for all CachedResourceRequests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339672</commentid>
    <comment_count>1</comment_count>
      <attachid>318398</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-17 12:16:04 -0700</bug_when>
    <thetext>Created attachment 318398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339686</commentid>
    <comment_count>2</comment_count>
      <attachid>318398</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-17 12:47:06 -0700</bug_when>
    <thetext>Comment on attachment 318398
Patch

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

&gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:836
&gt; +        resource-&gt;setOriginalRequestHeaders(WTFMove(originalRequestHeaders));

We should probably also set the headers in the case of DeferOption::Defer.
If not, originalRequestHeaders could just be a parameter passed to CachedResource::load().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339702</commentid>
    <comment_count>3</comment_count>
      <attachid>318406</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-17 13:00:00 -0700</bug_when>
    <thetext>Created attachment 318406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339707</commentid>
    <comment_count>4</comment_count>
      <attachid>318406</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-17 13:09:48 -0700</bug_when>
    <thetext>Comment on attachment 318406
Patch

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

&gt; Source/WebCore/loader/cache/CachedResource.cpp:276
&gt; +            platformStrategies()-&gt;loaderStrategy()-&gt;createPingHandle(frame.loader().networkingContext(), request, HTTPHeaderMap(*m_originalRequestHeaders), *m_origin, contentSecurityPolicy, m_options);

IIRC, IPC is taking const&amp; parameters.
WK2 createPingHandle could probably be implemented with just a const&amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339708</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-17 13:10:06 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; Comment on attachment 318406 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=318406&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/cache/CachedResource.cpp:276
&gt; &gt; +            platformStrategies()-&gt;loaderStrategy()-&gt;createPingHandle(frame.loader().networkingContext(), request, HTTPHeaderMap(*m_originalRequestHeaders), *m_origin, contentSecurityPolicy, m_options);
&gt; 
&gt; IIRC, IPC is taking const&amp; parameters.
&gt; WK2 createPingHandle could probably be implemented with just a const&amp;.

So that we remove this extra header copy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339713</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-17 13:22:25 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; (In reply to youenn fablet from comment #4)
&gt; &gt; Comment on attachment 318406 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=318406&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/loader/cache/CachedResource.cpp:276
&gt; &gt; &gt; +            platformStrategies()-&gt;loaderStrategy()-&gt;createPingHandle(frame.loader().networkingContext(), request, HTTPHeaderMap(*m_originalRequestHeaders), *m_origin, contentSecurityPolicy, m_options);
&gt; &gt; 
&gt; &gt; IIRC, IPC is taking const&amp; parameters.
&gt; &gt; WK2 createPingHandle could probably be implemented with just a const&amp;.
&gt; 
&gt; So that we remove this extra header copy.

WK2:
loadParameters.originalRequestHeaders = WTFMove(originalRequestHeaders);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339728</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-17 13:38:31 -0700</bug_when>
    <thetext>&gt; WK2:
&gt; loadParameters.originalRequestHeaders = WTFMove(originalRequestHeaders);

Would the following work?
- Pass originalRequestHeaders as a direct parameter of NetworkConnectionToWebProcess::LoadPing. It is not used for other loads.
- Create the message with something like Messages::NetworkConnectionToWebProcess::LoadPing(loadParameters, originalRequestHeaders)

IIRC, Messages structures only needs const&amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339730</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-17 13:41:33 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #7)
&gt; &gt; WK2:
&gt; &gt; loadParameters.originalRequestHeaders = WTFMove(originalRequestHeaders);
&gt; 
&gt; Would the following work?
&gt; - Pass originalRequestHeaders as a direct parameter of
&gt; NetworkConnectionToWebProcess::LoadPing. It is not used for other loads.
&gt; - Create the message with something like
&gt; Messages::NetworkConnectionToWebProcess::LoadPing(loadParameters,
&gt; originalRequestHeaders)
&gt; 
&gt; IIRC, Messages structures only needs const&amp;.

Yes, I have confirmed Messages structures only need const&amp;. I can do what you suggest although I am unconvinced this is a worthwhile optimization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339737</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-17 13:51:21 -0700</bug_when>
    <thetext>&gt; Yes, I have confirmed Messages structures only need const&amp;. I can do what
&gt; you suggest although I am unconvinced this is a worthwhile optimization.

Agreed, the main point of this patch is to limit the header copy to beacon.

As a follow-up of that patch, I think it makes sense to split the original headers from NetworkLoaderParameters since they are related to ping loads only.
It should be easy to add it back when implementing keepalive for fetch API loads, if we find these headers to be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339739</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-17 13:53:22 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #9)
&gt; &gt; Yes, I have confirmed Messages structures only need const&amp;. I can do what
&gt; &gt; you suggest although I am unconvinced this is a worthwhile optimization.
&gt; 
&gt; Agreed, the main point of this patch is to limit the header copy to beacon.
&gt; 
&gt; As a follow-up of that patch, I think it makes sense to split the original
&gt; headers from NetworkLoaderParameters since they are related to ping loads
&gt; only.
&gt; It should be easy to add it back when implementing keepalive for fetch API
&gt; loads, if we find these headers to be needed.

It&apos;s trivial, I&apos;ll do another iteration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339768</commentid>
    <comment_count>11</comment_count>
      <attachid>318423</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-17 14:30:32 -0700</bug_when>
    <thetext>Created attachment 318423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339809</commentid>
    <comment_count>12</comment_count>
      <attachid>318423</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-17 15:57:04 -0700</bug_when>
    <thetext>Comment on attachment 318423
Patch

Clearing flags on attachment: 318423

Committed r220888: &lt;http://trac.webkit.org/changeset/220888&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339810</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-17 15:57:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339811</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-17 15:57:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/33952143&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318398</attachid>
            <date>2017-08-17 12:16:04 -0700</date>
            <delta_ts>2017-08-17 12:59:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175679-20170817121603.patch</filename>
            <type>text/plain</type>
            <size>8605</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTlkMjhmZjZiM2U1NTc0
NzlkN2Y2N2RkMzA5NjhjMjQxYWZjMmJjNi4uN2Y5NTA3ZGM2ZjkzMmUxZTI5ZGYyZWVhMmNkMmU2
MzNmNWZlMzBhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA4LTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVncmVzc2lvbihyMjIwODE3
KTogV2Ugc2hvdWxkIG9ubHkgY29weSB0aGUgb3JpZ2luYWwgcmVxdWVzdCBoZWFkZXJzIGZvciBQ
aW5nIGxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzU2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGb3IgcGVyZm9ybWFuY2UgcmVhc29uLCB3ZSBzaG91bGQgb25seSBjb3B5IHRoZSBvcmlnaW5h
bCByZXF1ZXN0IGhlYWRlcnMgZm9yIFBpbmcgbG9hZHMKKyAgICAgICAgKEJlYWNvbiBhdCB0aGUg
bW9tZW50KSwgbm90IGZvciBhbGwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0cy4KKworICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2U6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OnNob3VsZFVzZVBpbmdMb2FkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpzZXRPcmlnaW5hbFJlcXVlc3RIZWFkZXJz
KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdCk6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpyZWxlYXNlUmVzb3VyY2VSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVsZWFzZU9yaWdp
bmFsUmVxdWVzdEhlYWRlcnMpOiBEZWxldGVkLgorCiAyMDE3LTA4LTE3ICBaYW4gRG9iZXJzZWsg
IDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBBcHBlbmRQaXBl
bGluZTogc3VwcG9ydCBkaXNwYXRjaCBvZiBkZWNyeXB0aW9uLXNwZWNpZmljIEdzdFN0cnVjdHVy
ZSBpbnRvIHRoZSBwaXBlbGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHAKaW5kZXggYzMyYzQyOTc2NmZkNjc1ZTEyOTcyM2QxNGMzOTNiMDhlZGQ0
NDE2YS4uZmUzNzZjMWZlNTQ2MWJhMDNmMGFlZmFiYjViNmRhYzAxYWQ2ZjQ0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xMTcsNyAr
MTE3LDYgQEAgREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJlZkNvdW50ZWRMZWFrQ291bnRlciwg
Y2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwgKCJDYWMKIAogQ2FjaGVkUmVzb3VyY2U6OkNhY2hl
ZFJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVxdWVzdC5y
ZWxlYXNlUmVzb3VyY2VSZXF1ZXN0KCkpCi0gICAgLCBtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnMo
cmVxdWVzdC5yZWxlYXNlT3JpZ2luYWxSZXF1ZXN0SGVhZGVycygpKQogICAgICwgbV9vcHRpb25z
KHJlcXVlc3Qub3B0aW9ucygpKQogICAgICwgbV9kZWNvZGVkRGF0YURlbGV0aW9uVGltZXIoKnRo
aXMsICZDYWNoZWRSZXNvdXJjZTo6ZGVzdHJveURlY29kZWREYXRhLCBkZWFkRGVjb2RlZERhdGFE
ZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKHR5cGUpKQogICAgICwgbV9zZXNzaW9uSUQo
c2Vzc2lvbklEKQpAQCAtMjY4LDEyICsyNjcsMTMgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9h
ZChDYWNoZWRSZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBub3Qgc3Bl
Y2lhbC1jYXNlIEJlYWNvbiBoZXJlLgotICAgICAgICBpZiAodHlwZSgpID09IENhY2hlZFJlc291
cmNlOjpCZWFjb24pIHsKKyAgICAgICAgaWYgKHNob3VsZFVzZVBpbmdMb2FkKHR5cGUoKSkpIHsK
ICAgICAgICAgQVNTRVJUKG1fb3JpZ2luKTsKICAgICAgICAgICAgIC8vIEJlYWNvbiBpcyBub3Qg
ZXhwb3NlZCB0byB3b3JrZXJzIHNvIGl0IGlzIHNhZmUgdG8gcmVseSBvbiB0aGUgZG9jdW1lbnQg
aGVyZS4KICAgICAgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXIu
ZG9jdW1lbnQoKTsKICAgICAgICAgICAgIGF1dG8qIGNvbnRlbnRTZWN1cml0eVBvbGljeSA9IGRv
Y3VtZW50ICYmICFkb2N1bWVudC0+c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5KCkgPyBkb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkgOiBudWxscHRyOwot
ICAgICAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmNyZWF0
ZVBpbmdIYW5kbGUoZnJhbWUubG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwg
SFRUUEhlYWRlck1hcChtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnMpLCAqbV9vcmlnaW4sIGNvbnRl
bnRTZWN1cml0eVBvbGljeSwgbV9vcHRpb25zKTsKKyAgICAgICAgICAgIEFTU0VSVChtX29yaWdp
bmFsUmVxdWVzdEhlYWRlcnMpOworICAgICAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxv
YWRlclN0cmF0ZWd5KCktPmNyZWF0ZVBpbmdIYW5kbGUoZnJhbWUubG9hZGVyKCkubmV0d29ya2lu
Z0NvbnRleHQoKSwgcmVxdWVzdCwgSFRUUEhlYWRlck1hcCgqbV9vcmlnaW5hbFJlcXVlc3RIZWFk
ZXJzKSwgKm1fb3JpZ2luLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fb3B0aW9ucyk7CiAgICAg
ICAgICAgICAvLyBGSVhNRTogV2UgY3VycmVudGx5IGRvIG5vdCBnZXQgbm90aWZpZWQgd2hlbiBw
aW5nIGxvYWRzIGZpbmlzaCBzbyB3ZSB0cmVhdCB0aGVtIGFzIGZpbmlzaGluZyByaWdodCBhd2F5
LgogICAgICAgICAgICAgZmluaXNoTG9hZGluZyhudWxscHRyKTsKICAgICAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXgg
NTQzNTgxM2E4MDY4NWI1YjllYWQ4ZDQ3ZWY1Zjc1OTczYjBmMTMyOS4uNTMzMjVmYjUzNDRjNzlm
N2UwOGMxNGIzMzA2NGFmZmE2ZTVhMjJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTExOCw2ICsxMTgsOCBAQCBwdWJsaWM6CiAgICAgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAg
ICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAorICAgIHN0YXRpYyBib29s
IHNob3VsZFVzZVBpbmdMb2FkKFR5cGUgdHlwZSkgeyByZXR1cm4gdHlwZSA9PSBUeXBlOjpCZWFj
b247IH0KKwogICAgIFJlc291cmNlTG9hZFByaW9yaXR5IGxvYWRQcmlvcml0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fbG9hZFByaW9yaXR5OyB9CiAgICAgdm9pZCBzZXRMb2FkUHJpb3JpdHkoY29uc3Qg
c3RkOjpvcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4mKTsKIApAQCAtMjc5LDYgKzI4MSw4
IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXJGb3JMb2FkV2l0aG91dFJl
c291cmNlTG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyRm9yTG9hZFdpdGhvdXRS
ZXNvdXJjZUxvYWRlcjsgfQogICAgIHN0YXRpYyBSZXNvdXJjZUxvYWRQcmlvcml0eSBkZWZhdWx0
UHJpb3JpdHlGb3JSZXNvdXJjZVR5cGUoVHlwZSk7CiAKKyAgICB2b2lkIHNldE9yaWdpbmFsUmVx
dWVzdEhlYWRlcnMoc3RkOjpvcHRpb25hbDxIVFRQSGVhZGVyTWFwPiYmIG9yaWdpbmFsUmVxdWVz
dEhlYWRlcnMpIHsgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzID0gV1RGTW92ZShvcmlnaW5hbFJl
cXVlc3RIZWFkZXJzKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgLy8gQ2FjaGVkUmVzb3VyY2UgY29u
c3RydWN0b3IgdGhhdCBtYXkgYmUgdXNlZCB3aGVuIHRoZSBDYWNoZWRSZXNvdXJjZSBjYW4gYWxy
ZWFkeSBiZSBmaWxsZWQgd2l0aCByZXNwb25zZSBkYXRhLgogICAgIENhY2hlZFJlc291cmNlKGNv
bnN0IFVSTCYsIFR5cGUsIFBBTDo6U2Vzc2lvbklEKTsKQEAgLTI5NCw3ICsyOTgsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgLy8gRklYTUU6IE1ha2UgdGhlIHJlc3Qgb2YgdGhlc2UgZGF0YSBtZW1iZXJz
IHByaXZhdGUgYW5kIHVzZSBmdW5jdGlvbnMgaW4gZGVyaXZlZCBjbGFzc2VzIGluc3RlYWQuCiAg
ICAgSGFzaENvdW50ZWRTZXQ8Q2FjaGVkUmVzb3VyY2VDbGllbnQqPiBtX2NsaWVudHM7CiAgICAg
UmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwotICAgIEhUVFBIZWFkZXJNYXAgbV9v
cmlnaW5hbFJlcXVlc3RIZWFkZXJzOworICAgIHN0ZDo6b3B0aW9uYWw8SFRUUEhlYWRlck1hcD4g
bV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgYnkgUGluZyBsb2Fkcy4KICAgICBS
ZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IG1fbG9hZGVyOwogICAgIFJlc291cmNlTG9hZGVyT3B0
aW9ucyBtX29wdGlvbnM7CiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAK
aW5kZXggYTFjMzM0NWZlZjIzM2I5ZTBhMzlhODZjYmNiNGIzZjNhMDYwNTEwYi4uMmJjZTMxMThm
Yjk1N2UzOWFhZTk4ZWNhYWQ2ZWNjNTc2MDU3MTJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC02OTgsNiArNjk4
LDEwIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUhUVFBSZXF1ZXN0SGVhZGVy
cyhDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDCiAKIFJlc291cmNlRXJyb3JPcjxDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgRm9yUHJlbG9hZCBmb3JQcmVsb2FkLCBEZWZlck9wdGlvbiBkZWZlcikK
IHsKKyAgICBzdGQ6Om9wdGlvbmFsPEhUVFBIZWFkZXJNYXA+IG9yaWdpbmFsUmVxdWVzdEhlYWRl
cnM7CisgICAgaWYgKENhY2hlZFJlc291cmNlOjpzaG91bGRVc2VQaW5nTG9hZCh0eXBlKSkKKyAg
ICAgICAgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycyA9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCku
aHR0cEhlYWRlckZpZWxkcygpOworCiAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMt
PmRvY3VtZW50KCkpCiAgICAgICAgIHJlcXVlc3QudXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVl
ZGVkKCpkb2N1bWVudCk7CiAKQEAgLTgyOSw2ICs4MzMsNyBAQCBSZXNvdXJjZUVycm9yT3I8Q2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdQogICAgIH0KIAogICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxO
ZWVkc0xvYWQoKSkgJiYgZGVmZXIgPT0gRGVmZXJPcHRpb246Ok5vRGVmZXIpIHsKKyAgICAgICAg
cmVzb3VyY2UtPnNldE9yaWdpbmFsUmVxdWVzdEhlYWRlcnMoV1RGTW92ZShvcmlnaW5hbFJlcXVl
c3RIZWFkZXJzKSk7CiAgICAgICAgIHJlc291cmNlLT5sb2FkKCp0aGlzKTsKIAogICAgICAgICAv
LyBXZSBkb24ndCBzdXBwb3J0IGltbWVkaWF0ZSBsb2FkcywgYnV0IHdlIGRvIHN1cHBvcnQgaW1t
ZWRpYXRlIGZhaWx1cmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4IDI2MTg2M2E1NDdkM2NiMTQ5YWNkYzNiNjJi
YTBhMjk1Nzg4YmZjYWIuLjEzNjJjMzM0ZDBjMTczZDVhZGVmOTk2MjBiMGE5MTM4YmM2NjYyMTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuY3BwCkBAIC00MSw3ICs0MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
JiYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMs
IHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+IHByaW9yaXR5LCBTdHJpbmcmJiBj
aGFyc2V0KQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3QoV1RGTW92ZShyZXNvdXJjZVJlcXVlc3Qp
KQotICAgICwgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzKG1fcmVzb3VyY2VSZXF1ZXN0Lmh0dHBI
ZWFkZXJGaWVsZHMoKSkKICAgICAsIG1fY2hhcnNldChXVEZNb3ZlKGNoYXJzZXQpKQogICAgICwg
bV9vcHRpb25zKG9wdGlvbnMpCiAgICAgLCBtX3ByaW9yaXR5KHByaW9yaXR5KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCmluZGV4
IDMwNDA1ZDE4NzkwNzBiYjdjM2QzZWQ5NDBkNzI1ZjU1YTQ0NDllY2UuLmY1MDdmY2M2NjdlZjU3
Mjg2ODNkY2IyZGFiNmM4ZmUxZTg5NzhkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTUxLDcgKzUxLDYgQEAgcHVi
bGljOgogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3Qg
UmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgc3RkOjpvcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0
eT4gPSBzdGQ6Om51bGxvcHQsIFN0cmluZyYmIGNoYXJzZXQgPSBTdHJpbmcoKSk7CiAKICAgICBS
ZXNvdXJjZVJlcXVlc3QmJiByZWxlYXNlUmVzb3VyY2VSZXF1ZXN0KCkgeyByZXR1cm4gV1RGTW92
ZShtX3Jlc291cmNlUmVxdWVzdCk7IH0KLSAgICBIVFRQSGVhZGVyTWFwJiYgcmVsZWFzZU9yaWdp
bmFsUmVxdWVzdEhlYWRlcnMoKSB7IHJldHVybiBXVEZNb3ZlKG1fb3JpZ2luYWxSZXF1ZXN0SGVh
ZGVycyk7IH0KICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CiAgICAgY29uc3QgU3RyaW5nJiBjaGFy
c2V0KCkgY29uc3QgeyByZXR1cm4gbV9jaGFyc2V0OyB9CiAgICAgdm9pZCBzZXRDaGFyc2V0KGNv
bnN0IFN0cmluZyYgY2hhcnNldCkgeyBtX2NoYXJzZXQgPSBjaGFyc2V0OyB9CkBAIC05NSw3ICs5
NCw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJj
ZVJlcXVlc3Q7Ci0gICAgSFRUUEhlYWRlck1hcCBtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnM7CiAg
ICAgU3RyaW5nIG1fY2hhcnNldDsKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgbV9vcHRpb25z
OwogICAgIHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+IG1fcHJpb3JpdHk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318406</attachid>
            <date>2017-08-17 13:00:00 -0700</date>
            <delta_ts>2017-08-17 14:30:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175679-20170817125959.patch</filename>
            <type>text/plain</type>
            <size>8518</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE4ODgyZTliMTJhMjRl
ODcwMTllZDc1MWE4ZGZiYWRjOWFmNDgxZi4uN2VmMjE4NjZmMDI1MWFjNTIwNWUxYjA1NzM0MTJi
Y2RmYzNmZDY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA4LTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVncmVzc2lvbihyMjIwODE3
KTogV2Ugc2hvdWxkIG9ubHkgY29weSB0aGUgb3JpZ2luYWwgcmVxdWVzdCBoZWFkZXJzIGZvciBQ
aW5nIGxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzU2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGb3IgcGVyZm9ybWFuY2UgcmVhc29uLCB3ZSBzaG91bGQgb25seSBjb3B5IHRoZSBvcmlnaW5h
bCByZXF1ZXN0IGhlYWRlcnMgZm9yIFBpbmcgbG9hZHMKKyAgICAgICAgKEJlYWNvbiBhdCB0aGUg
bW9tZW50KSwgbm90IGZvciBhbGwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0cy4KKworICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2U6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OnNob3VsZFVzZVBpbmdMb2FkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpzZXRPcmlnaW5hbFJlcXVlc3RIZWFkZXJz
KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdCk6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpyZWxlYXNlUmVzb3VyY2VSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVsZWFzZU9yaWdp
bmFsUmVxdWVzdEhlYWRlcnMpOiBEZWxldGVkLgorCiAyMDE3LTA4LTE3ICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIENTUyByZWdpb25zIGF0IGNv
bXBpbGUgdGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5jcHAKaW5kZXggYzMyYzQyOTc2NmZkNjc1ZTEyOTcyM2QxNGMzOTNiMDhlZGQ0NDE2YS4uZmUz
NzZjMWZlNTQ2MWJhMDNmMGFlZmFiYjViNmRhYzAxYWQ2ZjQ0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xMTcsNyArMTE3LDYgQEAg
REVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJlZkNvdW50ZWRMZWFrQ291bnRlciwgY2FjaGVkUmVz
b3VyY2VMZWFrQ291bnRlciwgKCJDYWMKIAogQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNl
KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVxdWVzdC5yZWxlYXNlUmVz
b3VyY2VSZXF1ZXN0KCkpCi0gICAgLCBtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnMocmVxdWVzdC5y
ZWxlYXNlT3JpZ2luYWxSZXF1ZXN0SGVhZGVycygpKQogICAgICwgbV9vcHRpb25zKHJlcXVlc3Qu
b3B0aW9ucygpKQogICAgICwgbV9kZWNvZGVkRGF0YURlbGV0aW9uVGltZXIoKnRoaXMsICZDYWNo
ZWRSZXNvdXJjZTo6ZGVzdHJveURlY29kZWREYXRhLCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbklu
dGVydmFsRm9yUmVzb3VyY2VUeXBlKHR5cGUpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklE
KQpAQCAtMjY4LDEyICsyNjcsMTMgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRS
ZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBub3Qgc3BlY2lhbC1jYXNl
IEJlYWNvbiBoZXJlLgotICAgICAgICBpZiAodHlwZSgpID09IENhY2hlZFJlc291cmNlOjpCZWFj
b24pIHsKKyAgICAgICAgaWYgKHNob3VsZFVzZVBpbmdMb2FkKHR5cGUoKSkpIHsKICAgICAgICAg
QVNTRVJUKG1fb3JpZ2luKTsKICAgICAgICAgICAgIC8vIEJlYWNvbiBpcyBub3QgZXhwb3NlZCB0
byB3b3JrZXJzIHNvIGl0IGlzIHNhZmUgdG8gcmVseSBvbiB0aGUgZG9jdW1lbnQgaGVyZS4KICAg
ICAgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXIuZG9jdW1lbnQo
KTsKICAgICAgICAgICAgIGF1dG8qIGNvbnRlbnRTZWN1cml0eVBvbGljeSA9IGRvY3VtZW50ICYm
ICFkb2N1bWVudC0+c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkg
PyBkb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkgOiBudWxscHRyOwotICAgICAgICAg
ICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmNyZWF0ZVBpbmdIYW5k
bGUoZnJhbWUubG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgSFRUUEhlYWRl
ck1hcChtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnMpLCAqbV9vcmlnaW4sIGNvbnRlbnRTZWN1cml0
eVBvbGljeSwgbV9vcHRpb25zKTsKKyAgICAgICAgICAgIEFTU0VSVChtX29yaWdpbmFsUmVxdWVz
dEhlYWRlcnMpOworICAgICAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0
ZWd5KCktPmNyZWF0ZVBpbmdIYW5kbGUoZnJhbWUubG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQo
KSwgcmVxdWVzdCwgSFRUUEhlYWRlck1hcCgqbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwgKm1f
b3JpZ2luLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fb3B0aW9ucyk7CiAgICAgICAgICAgICAv
LyBGSVhNRTogV2UgY3VycmVudGx5IGRvIG5vdCBnZXQgbm90aWZpZWQgd2hlbiBwaW5nIGxvYWRz
IGZpbmlzaCBzbyB3ZSB0cmVhdCB0aGVtIGFzIGZpbmlzaGluZyByaWdodCBhd2F5LgogICAgICAg
ICAgICAgZmluaXNoTG9hZGluZyhudWxscHRyKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXggNTQzNTgxM2E4
MDY4NWI1YjllYWQ4ZDQ3ZWY1Zjc1OTczYjBmMTMyOS4uNTMzMjVmYjUzNDRjNzlmN2UwOGMxNGIz
MzA2NGFmZmE2ZTVhMjJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmgKQEAgLTExOCw2ICsxMTgsOCBAQCBwdWJsaWM6CiAgICAgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAorICAgIHN0YXRpYyBib29sIHNob3VsZFVz
ZVBpbmdMb2FkKFR5cGUgdHlwZSkgeyByZXR1cm4gdHlwZSA9PSBUeXBlOjpCZWFjb247IH0KKwog
ICAgIFJlc291cmNlTG9hZFByaW9yaXR5IGxvYWRQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9hZFByaW9yaXR5OyB9CiAgICAgdm9pZCBzZXRMb2FkUHJpb3JpdHkoY29uc3Qgc3RkOjpvcHRp
b25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4mKTsKIApAQCAtMjc5LDYgKzI4MSw4IEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXJGb3JMb2FkV2l0aG91dFJlc291cmNlTG9h
ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyRm9yTG9hZFdpdGhvdXRSZXNvdXJjZUxv
YWRlcjsgfQogICAgIHN0YXRpYyBSZXNvdXJjZUxvYWRQcmlvcml0eSBkZWZhdWx0UHJpb3JpdHlG
b3JSZXNvdXJjZVR5cGUoVHlwZSk7CiAKKyAgICB2b2lkIHNldE9yaWdpbmFsUmVxdWVzdEhlYWRl
cnMoc3RkOjpvcHRpb25hbDxIVFRQSGVhZGVyTWFwPiYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMp
IHsgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzID0gV1RGTW92ZShvcmlnaW5hbFJlcXVlc3RIZWFk
ZXJzKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgLy8gQ2FjaGVkUmVzb3VyY2UgY29uc3RydWN0b3Ig
dGhhdCBtYXkgYmUgdXNlZCB3aGVuIHRoZSBDYWNoZWRSZXNvdXJjZSBjYW4gYWxyZWFkeSBiZSBm
aWxsZWQgd2l0aCByZXNwb25zZSBkYXRhLgogICAgIENhY2hlZFJlc291cmNlKGNvbnN0IFVSTCYs
IFR5cGUsIFBBTDo6U2Vzc2lvbklEKTsKQEAgLTI5NCw3ICsyOTgsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgLy8gRklYTUU6IE1ha2UgdGhlIHJlc3Qgb2YgdGhlc2UgZGF0YSBtZW1iZXJzIHByaXZhdGUg
YW5kIHVzZSBmdW5jdGlvbnMgaW4gZGVyaXZlZCBjbGFzc2VzIGluc3RlYWQuCiAgICAgSGFzaENv
dW50ZWRTZXQ8Q2FjaGVkUmVzb3VyY2VDbGllbnQqPiBtX2NsaWVudHM7CiAgICAgUmVzb3VyY2VS
ZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwotICAgIEhUVFBIZWFkZXJNYXAgbV9vcmlnaW5hbFJl
cXVlc3RIZWFkZXJzOworICAgIHN0ZDo6b3B0aW9uYWw8SFRUUEhlYWRlck1hcD4gbV9vcmlnaW5h
bFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgYnkgUGluZyBsb2Fkcy4KICAgICBSZWZQdHI8U3Vi
cmVzb3VyY2VMb2FkZXI+IG1fbG9hZGVyOwogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBtX29w
dGlvbnM7CiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYTFj
MzM0NWZlZjIzM2I5ZTBhMzlhODZjYmNiNGIzZjNhMDYwNTEwYi4uOTU3ZTRiZTk0MDczMDNjM2Mw
MWVmZjFlYmY4MTc3MmUwZGQxOTVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC02OTgsNiArNjk4LDEwIEBAIHZv
aWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUhUVFBSZXF1ZXN0SGVhZGVycyhDYWNoZWRS
ZXNvdXJjZTo6VHlwZSB0eXBlLCBDCiAKIFJlc291cmNlRXJyb3JPcjxDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSZXNvdXJjZT4+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgRm9yUHJlbG9hZCBmb3JQcmVsb2FkLCBEZWZlck9wdGlvbiBkZWZlcikKIHsKKyAgICBz
dGQ6Om9wdGlvbmFsPEhUVFBIZWFkZXJNYXA+IG9yaWdpbmFsUmVxdWVzdEhlYWRlcnM7CisgICAg
aWYgKENhY2hlZFJlc291cmNlOjpzaG91bGRVc2VQaW5nTG9hZCh0eXBlKSkKKyAgICAgICAgb3Jp
Z2luYWxSZXF1ZXN0SGVhZGVycyA9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuaHR0cEhlYWRl
ckZpZWxkcygpOworCiAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50
KCkpCiAgICAgICAgIHJlcXVlc3QudXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKCpkb2N1
bWVudCk7CiAKQEAgLTgyMiw2ICs4MjYsNyBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgQVNTRVJUKHJlc291cmNlKTsKKyAgICByZXNvdXJjZS0+
c2V0T3JpZ2luYWxSZXF1ZXN0SGVhZGVycyhXVEZNb3ZlKG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMp
KTsKIAogICAgIGlmIChmb3JQcmVsb2FkID09IEZvclByZWxvYWQ6Ok5vICYmIHJlc291cmNlLT5s
b2FkZXIoKSAmJiByZXNvdXJjZS0+aWdub3JlRm9yUmVxdWVzdENvdW50KCkpIHsKICAgICAgICAg
cmVzb3VyY2UtPnNldElnbm9yZUZvclJlcXVlc3RDb3VudChmYWxzZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4
IDI2MTg2M2E1NDdkM2NiMTQ5YWNkYzNiNjJiYTBhMjk1Nzg4YmZjYWIuLjEzNjJjMzM0ZDBjMTcz
ZDVhZGVmOTk2MjBiMGE5MTM4YmM2NjYyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC00MSw3ICs0MSw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBSZXNv
dXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMsIHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJp
b3JpdHk+IHByaW9yaXR5LCBTdHJpbmcmJiBjaGFyc2V0KQogICAgIDogbV9yZXNvdXJjZVJlcXVl
c3QoV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpKQotICAgICwgbV9vcmlnaW5hbFJlcXVlc3RIZWFk
ZXJzKG1fcmVzb3VyY2VSZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSkKICAgICAsIG1fY2hhcnNl
dChXVEZNb3ZlKGNoYXJzZXQpKQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCiAgICAgLCBtX3By
aW9yaXR5KHByaW9yaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5oCmluZGV4IDMwNDA1ZDE4NzkwNzBiYjdjM2QzZWQ5NDBkNzI1
ZjU1YTQ0NDllY2UuLmY1MDdmY2M2NjdlZjU3Mjg2ODNkY2IyZGFiNmM4ZmUxZTg5NzhkZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgKQEAgLTUxLDcgKzUxLDYgQEAgcHVibGljOgogICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgc3RkOjpv
cHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4gPSBzdGQ6Om51bGxvcHQsIFN0cmluZyYmIGNo
YXJzZXQgPSBTdHJpbmcoKSk7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QmJiByZWxlYXNlUmVzb3Vy
Y2VSZXF1ZXN0KCkgeyByZXR1cm4gV1RGTW92ZShtX3Jlc291cmNlUmVxdWVzdCk7IH0KLSAgICBI
VFRQSGVhZGVyTWFwJiYgcmVsZWFzZU9yaWdpbmFsUmVxdWVzdEhlYWRlcnMoKSB7IHJldHVybiBX
VEZNb3ZlKG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVycyk7IH0KICAgICBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0
OyB9CiAgICAgY29uc3QgU3RyaW5nJiBjaGFyc2V0KCkgY29uc3QgeyByZXR1cm4gbV9jaGFyc2V0
OyB9CiAgICAgdm9pZCBzZXRDaGFyc2V0KGNvbnN0IFN0cmluZyYgY2hhcnNldCkgeyBtX2NoYXJz
ZXQgPSBjaGFyc2V0OyB9CkBAIC05NSw3ICs5NCw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7Ci0gICAgSFRUUEhlYWRlck1hcCBt
X29yaWdpbmFsUmVxdWVzdEhlYWRlcnM7CiAgICAgU3RyaW5nIG1fY2hhcnNldDsKICAgICBSZXNv
dXJjZUxvYWRlck9wdGlvbnMgbV9vcHRpb25zOwogICAgIHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VM
b2FkUHJpb3JpdHk+IG1fcHJpb3JpdHk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318423</attachid>
            <date>2017-08-17 14:30:32 -0700</date>
            <delta_ts>2017-08-17 15:57:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175679-20170817143031.patch</filename>
            <type>text/plain</type>
            <size>28269</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE4ODgyZTliMTJhMjRl
ODcwMTllZDc1MWE4ZGZiYWRjOWFmNDgxZi4uYzAwMDUxM2JiNGQwMzRmZmNlYTYxM2NjYjdhODAw
MmRkZjQyMDc3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTA4LTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVncmVzc2lvbihyMjIwODE3
KTogV2Ugc2hvdWxkIG9ubHkgY29weSB0aGUgb3JpZ2luYWwgcmVxdWVzdCBoZWFkZXJzIGZvciBQ
aW5nIGxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzU2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGb3IgcGVyZm9ybWFuY2UgcmVhc29uLCB3ZSBzaG91bGQgb25seSBjb3B5IHRoZSBvcmlnaW5h
bCByZXF1ZXN0IGhlYWRlcnMgZm9yIFBpbmcgbG9hZHMKKyAgICAgICAgKEJlYWNvbiBhdCB0aGUg
bW9tZW50KSwgbm90IGZvciBhbGwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0cy4KKworICAgICAgICAq
IGxvYWRlci9Mb2FkZXJTdHJhdGVneS5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVz
b3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2U6OnNob3VsZFVzZVBpbmdMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlOjpzZXRPcmlnaW5hbFJlcXVlc3RIZWFkZXJzKToKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0OjpyZWxlYXNlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVsZWFzZU9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpOiBE
ZWxldGVkLgorCiAyMDE3LTA4LTE3ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4K
IAogICAgICAgICBEaXNhYmxlIENTUyByZWdpb25zIGF0IGNvbXBpbGUgdGltZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAxNDAzZTA2ZWI3NzU2NjlmZjA2YWU4ZTg2OWNjMWFhZmRmYThlMTQ1Li4wNDA3YWExNDc3ZDU5
NDU4ZGZlMmMyYmRlOTQ5YWY2NWRkNjlhMTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisy
MDE3LTA4LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVn
cmVzc2lvbihyMjIwODE3KTogV2Ugc2hvdWxkIG9ubHkgY29weSB0aGUgb3JpZ2luYWwgcmVxdWVz
dCBoZWFkZXJzIGZvciBQaW5nIGxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzU2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGb3IgcGVyZm9ybWFuY2UgcmVhc29uLCB3ZSBzaG91bGQgb25seSBj
b3B5IHRoZSBvcmlnaW5hbCByZXF1ZXN0IGhlYWRlcnMgZm9yIFBpbmcgbG9hZHMKKyAgICAgICAg
KEJlYWNvbiBhdCB0aGUgbW9tZW50KSwgbm90IGZvciBhbGwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
cy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmxvYWRQaW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvUGluZ0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6UGluZ0xv
YWQpOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6bWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlBpbmdMb2FkOjptYWtlU2ltcGxlQ3Jvc3NPcmlnaW5B
Y2Nlc3NSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6Om9yaWdpbmFsUmVxdWVz
dEhlYWRlcnMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdM
b2FkLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZVBpbmdIYW5kbGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oOgorCiAy
MDE3LTA4LTE3ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBE
aXNhYmxlIENTUyByZWdpb25zIGF0IGNvbXBpbGUgdGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRl
eCBkMWY5ZDFhMmE1OGViZGUyMzc3ZmI5YWFiMTY0OTgwODUwZDhkMGEzLi5iNjhjNWYyZmYxYjdj
NTVhNzU2ZjM5YWI4NTFhOGRjYjQzZjVmYjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDE3LTA4LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVncmVzc2lvbihyMjIwODE3KTogV2Ugc2hvdWxkIG9ubHkgY29weSB0aGUgb3Jp
Z2luYWwgcmVxdWVzdCBoZWFkZXJzIGZvciBQaW5nIGxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU2NzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmNy
ZWF0ZVBpbmdIYW5kbGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5oOgorCiAyMDE3LTA4LTE3ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRA
c29ueS5jb20+CiAKICAgICAgICAgW1BBTF0gTW92ZSBTZXNzaW9uSUQgaW50byBQQUwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKaW5kZXggNTcwMTRjYjZmMDQ1NzkwYmFmYjUy
NDI0Y2I0M2YzNzVmNWVmOWQ1NC4uYzMwNDc2ZTczMWU5NGVlZmYyNDM4NjZkY2EwNjMxNWE0NmQ1
MzkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKQEAgLTY0LDcgKzY0
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kUGVuZGluZ1JlcXVlc3RzKCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXN1bWVQZW5kaW5nUmVxdWVzdHMoKSA9IDA7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgY3JlYXRlUGluZ0hhbmRsZShOZXR3b3JraW5nQ29udGV4dCosIFJlc291
cmNlUmVxdWVzdCYsIEhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBSZWY8
U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBDb250ZW50U2VjdXJpdHlQb2xpY3kqLCBj
b25zdCBGZXRjaE9wdGlvbnMmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVBpbmdIYW5k
bGUoTmV0d29ya2luZ0NvbnRleHQqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBIVFRQSGVhZGVy
TWFwJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgc291cmNl
T3JpZ2luLCBDb250ZW50U2VjdXJpdHlQb2xpY3kqLCBjb25zdCBGZXRjaE9wdGlvbnMmKSA9IDA7
CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6
RGlnZXN0JiBib2R5S2V5LCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFydGl0
aW9uLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IGMzMmM0Mjk3NjZmZDY3NWUxMjk3
MjNkMTRjMzkzYjA4ZWRkNDQxNmEuLjY2ODRlYzc4YzY3YWU3ZWFkMGE5NmExMDBmMjlkNzhlZmEy
ZjNkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmNwcApAQCAtMTE3LDcgKzExNyw2IEBAIERFRklORV9ERUJVR19PTkxZX0dMT0JBTChSZWZDb3Vu
dGVkTGVha0NvdW50ZXIsIGNhY2hlZFJlc291cmNlTGVha0NvdW50ZXIsICgiQ2FjCiAKIENhY2hl
ZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBUeXBlIHR5cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fcmVzb3VyY2VS
ZXF1ZXN0KHJlcXVlc3QucmVsZWFzZVJlc291cmNlUmVxdWVzdCgpKQotICAgICwgbV9vcmlnaW5h
bFJlcXVlc3RIZWFkZXJzKHJlcXVlc3QucmVsZWFzZU9yaWdpbmFsUmVxdWVzdEhlYWRlcnMoKSkK
ICAgICAsIG1fb3B0aW9ucyhyZXF1ZXN0Lm9wdGlvbnMoKSkKICAgICAsIG1fZGVjb2RlZERhdGFE
ZWxldGlvblRpbWVyKCp0aGlzLCAmQ2FjaGVkUmVzb3VyY2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSwg
ZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbEZvclJlc291cmNlVHlwZSh0eXBlKSkKICAg
ICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKQEAgLTI2OCwxMiArMjY3LDEzIEBAIHZvaWQgQ2Fj
aGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJlc291cmNlTG9h
ZGVyKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgbm90IHNwZWNpYWwtY2FzZSBCZWFjb24gaGVyZS4KLSAgICAgICAgaWYgKHR5cGUo
KSA9PSBDYWNoZWRSZXNvdXJjZTo6QmVhY29uKSB7CisgICAgICAgIGlmIChzaG91bGRVc2VQaW5n
TG9hZCh0eXBlKCkpKSB7CiAgICAgICAgIEFTU0VSVChtX29yaWdpbik7CiAgICAgICAgICAgICAv
LyBCZWFjb24gaXMgbm90IGV4cG9zZWQgdG8gd29ya2VycyBzbyBpdCBpcyBzYWZlIHRvIHJlbHkg
b24gdGhlIGRvY3VtZW50IGhlcmUuCiAgICAgICAgICAgICBhdXRvKiBkb2N1bWVudCA9IGNhY2hl
ZFJlc291cmNlTG9hZGVyLmRvY3VtZW50KCk7CiAgICAgICAgICAgICBhdXRvKiBjb250ZW50U2Vj
dXJpdHlQb2xpY3kgPSBkb2N1bWVudCAmJiAhZG9jdW1lbnQtPnNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSgpID8gZG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpIDogbnVsbHB0cjsKLSAgICAgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJT
dHJhdGVneSgpLT5jcmVhdGVQaW5nSGFuZGxlKGZyYW1lLmxvYWRlcigpLm5ldHdvcmtpbmdDb250
ZXh0KCksIHJlcXVlc3QsIEhUVFBIZWFkZXJNYXAobV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwg
Km1fb3JpZ2luLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fb3B0aW9ucyk7CisgICAgICAgICAg
ICBBU1NFUlQobV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzKTsKKyAgICAgICAgICAgIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5jcmVhdGVQaW5nSGFuZGxlKGZyYW1lLmxv
YWRlcigpLm5ldHdvcmtpbmdDb250ZXh0KCksIHJlcXVlc3QsICptX29yaWdpbmFsUmVxdWVzdEhl
YWRlcnMsICptX29yaWdpbiwgY29udGVudFNlY3VyaXR5UG9saWN5LCBtX29wdGlvbnMpOwogICAg
ICAgICAgICAgLy8gRklYTUU6IFdlIGN1cnJlbnRseSBkbyBub3QgZ2V0IG5vdGlmaWVkIHdoZW4g
cGluZyBsb2FkcyBmaW5pc2ggc28gd2UgdHJlYXQgdGhlbSBhcyBmaW5pc2hpbmcgcmlnaHQgYXdh
eS4KICAgICAgICAgICAgIGZpbmlzaExvYWRpbmcobnVsbHB0cik7CiAgICAgICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4
IDU0MzU4MTNhODA2ODViNWI5ZWFkOGQ0N2VmNWY3NTk3M2IwZjEzMjkuLjUzMzI1ZmI1MzQ0Yzc5
ZjdlMDhjMTRiMzMwNjRhZmZhNmU1YTIyYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0xMTgsNiArMTE4LDggQEAgcHVibGljOgogICAgIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAg
ICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKKyAgICBzdGF0aWMgYm9v
bCBzaG91bGRVc2VQaW5nTG9hZChUeXBlIHR5cGUpIHsgcmV0dXJuIHR5cGUgPT0gVHlwZTo6QmVh
Y29uOyB9CisKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBsb2FkUHJpb3JpdHkoKSBjb25zdCB7
IHJldHVybiBtX2xvYWRQcmlvcml0eTsgfQogICAgIHZvaWQgc2V0TG9hZFByaW9yaXR5KGNvbnN0
IHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+Jik7CiAKQEAgLTI3OSw2ICsyODEs
OCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyRm9yTG9hZFdpdGhvdXRS
ZXNvdXJjZUxvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllckZvckxvYWRXaXRob3V0
UmVzb3VyY2VMb2FkZXI7IH0KICAgICBzdGF0aWMgUmVzb3VyY2VMb2FkUHJpb3JpdHkgZGVmYXVs
dFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKFR5cGUpOwogCisgICAgdm9pZCBzZXRPcmlnaW5hbFJl
cXVlc3RIZWFkZXJzKHN0ZDo6b3B0aW9uYWw8SFRUUEhlYWRlck1hcD4mJiBvcmlnaW5hbFJlcXVl
c3RIZWFkZXJzKSB7IG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVycyA9IFdURk1vdmUob3JpZ2luYWxS
ZXF1ZXN0SGVhZGVycyk7IH0KKwogcHJvdGVjdGVkOgogICAgIC8vIENhY2hlZFJlc291cmNlIGNv
bnN0cnVjdG9yIHRoYXQgbWF5IGJlIHVzZWQgd2hlbiB0aGUgQ2FjaGVkUmVzb3VyY2UgY2FuIGFs
cmVhZHkgYmUgZmlsbGVkIHdpdGggcmVzcG9uc2UgZGF0YS4KICAgICBDYWNoZWRSZXNvdXJjZShj
b25zdCBVUkwmLCBUeXBlLCBQQUw6OlNlc3Npb25JRCk7CkBAIC0yOTQsNyArMjk4LDcgQEAgcHJv
dGVjdGVkOgogICAgIC8vIEZJWE1FOiBNYWtlIHRoZSByZXN0IG9mIHRoZXNlIGRhdGEgbWVtYmVy
cyBwcml2YXRlIGFuZCB1c2UgZnVuY3Rpb25zIGluIGRlcml2ZWQgY2xhc3NlcyBpbnN0ZWFkLgog
ICAgIEhhc2hDb3VudGVkU2V0PENhY2hlZFJlc291cmNlQ2xpZW50Kj4gbV9jbGllbnRzOwogICAg
IFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKLSAgICBIVFRQSGVhZGVyTWFwIG1f
b3JpZ2luYWxSZXF1ZXN0SGVhZGVyczsKKyAgICBzdGQ6Om9wdGlvbmFsPEhUVFBIZWFkZXJNYXA+
IG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVyczsgLy8gTmVlZGVkIGJ5IFBpbmcgbG9hZHMuCiAgICAg
UmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBtX2xvYWRlcjsKICAgICBSZXNvdXJjZUxvYWRlck9w
dGlvbnMgbV9vcHRpb25zOwogICAgIFJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CmluZGV4IGExYzMzNDVmZWYyMzNiOWUwYTM5YTg2Y2JjYjRiM2YzYTA2MDUxMGIuLjk1N2U0YmU5
NDA3MzAzYzNjMDFlZmYxZWJmODE3NzJlMGRkMTk1ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNjk4LDYgKzY5
OCwxMCBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVIVFRQUmVxdWVzdEhlYWRl
cnMoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQwogCiBSZXNvdXJjZUVycm9yT3I8Q2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIEZvclByZWxvYWQgZm9yUHJlbG9hZCwgRGVmZXJPcHRpb24gZGVmZXIp
CiB7CisgICAgc3RkOjpvcHRpb25hbDxIVFRQSGVhZGVyTWFwPiBvcmlnaW5hbFJlcXVlc3RIZWFk
ZXJzOworICAgIGlmIChDYWNoZWRSZXNvdXJjZTo6c2hvdWxkVXNlUGluZ0xvYWQodHlwZSkpCisg
ICAgICAgIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
Lmh0dHBIZWFkZXJGaWVsZHMoKTsKKwogICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlz
LT5kb2N1bWVudCgpKQogICAgICAgICByZXF1ZXN0LnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5l
ZWRlZCgqZG9jdW1lbnQpOwogCkBAIC04MjIsNiArODI2LDcgQEAgUmVzb3VyY2VFcnJvck9yPENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnJlcXUKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIEFTU0VSVChyZXNvdXJjZSk7CisgICAg
cmVzb3VyY2UtPnNldE9yaWdpbmFsUmVxdWVzdEhlYWRlcnMoV1RGTW92ZShvcmlnaW5hbFJlcXVl
c3RIZWFkZXJzKSk7CiAKICAgICBpZiAoZm9yUHJlbG9hZCA9PSBGb3JQcmVsb2FkOjpObyAmJiBy
ZXNvdXJjZS0+bG9hZGVyKCkgJiYgcmVzb3VyY2UtPmlnbm9yZUZvclJlcXVlc3RDb3VudCgpKSB7
CiAgICAgICAgIHJlc291cmNlLT5zZXRJZ25vcmVGb3JSZXF1ZXN0Q291bnQoZmFsc2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmNwcAppbmRleCAyNjE4NjNhNTQ3ZDNjYjE0OWFjZGMzYjYyYmEwYTI5NTc4OGJmY2FiLi4xMzYy
YzMzNGQwYzE3M2Q1YWRlZjk5NjIwYjBhOTEzOGJjNjY2MjEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApAQCAtNDEs
NyArNDEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENhY2hlZFJlc291cmNlUmVxdWVzdDo6
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlc291cmNlUmVxdWVzdCwg
Y29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBzdGQ6Om9wdGlvbmFsPFJlc291
cmNlTG9hZFByaW9yaXR5PiBwcmlvcml0eSwgU3RyaW5nJiYgY2hhcnNldCkKICAgICA6IG1fcmVz
b3VyY2VSZXF1ZXN0KFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSkKLSAgICAsIG1fb3JpZ2luYWxS
ZXF1ZXN0SGVhZGVycyhtX3Jlc291cmNlUmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkpCiAgICAg
LCBtX2NoYXJzZXQoV1RGTW92ZShjaGFyc2V0KSkKICAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQog
ICAgICwgbV9wcmlvcml0eShwcmlvcml0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAppbmRleCAzMDQwNWQxODc5MDcwYmI3YzNk
M2VkOTQwZDcyNWY1NWE0NDQ5ZWNlLi5mNTA3ZmNjNjY3ZWY1NzI4NjgzZGNiMmRhYjZjOGZlMWU4
OTc4ZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5oCkBAIC01MSw3ICs1MSw2IEBAIHB1YmxpYzoKICAgICBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYsIHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+ID0gc3RkOjpudWxsb3B0LCBT
dHJpbmcmJiBjaGFyc2V0ID0gU3RyaW5nKCkpOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0JiYgcmVs
ZWFzZVJlc291cmNlUmVxdWVzdCgpIHsgcmV0dXJuIFdURk1vdmUobV9yZXNvdXJjZVJlcXVlc3Qp
OyB9Ci0gICAgSFRUUEhlYWRlck1hcCYmIHJlbGVhc2VPcmlnaW5hbFJlcXVlc3RIZWFkZXJzKCkg
eyByZXR1cm4gV1RGTW92ZShtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnMpOyB9CiAgICAgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jlc291
cmNlUmVxdWVzdDsgfQogICAgIGNvbnN0IFN0cmluZyYgY2hhcnNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2hhcnNldDsgfQogICAgIHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQp
IHsgbV9jaGFyc2V0ID0gY2hhcnNldDsgfQpAQCAtOTUsNyArOTQsNiBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwotICAgIEhUVFBI
ZWFkZXJNYXAgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzOwogICAgIFN0cmluZyBtX2NoYXJzZXQ7
CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKICAgICBzdGQ6Om9wdGlvbmFs
PFJlc291cmNlTG9hZFByaW9yaXR5PiBtX3ByaW9yaXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAppbmRleCBkMjQxYzBkNzM1MGUzMWI0MjEzMzllMWM2NGMyOGNmMzY3YTVkZWY3Li5kOGE1
NTJlYTlkMjRmYmY0NjhjNzk2YTYwYjQ2YWU3ZDdiZjMyZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcApAQCAtMjIyLDEyICsyMjIsMTMgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6cGVyZm9ybVN5bmNocm9ub3VzTG9hZChjb25zdCBOZXR3b3JrUmVzb3VyY2UK
ICAgICBsb2FkZXItPnN0YXJ0KCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFt
ZXRlcnMpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2FkUGluZyhOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzLCBIVFRQSGVhZGVyTWFw
JiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycykKIHsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQog
ICAgIC8vIFBpbmdMb2FkIG1hbmFnZXMgaXRzIG93biBsaWZldGltZSwgZGVsZXRpbmcgaXRzZWxm
IHdoZW4gaXRzIHB1cnBvc2UgaGFzIGJlZW4gZnVsZmlsbGVkLgotICAgIG5ldyBQaW5nTG9hZChX
VEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSk7CisgICAgbmV3IFBpbmdMb2FkKFdURk1vdmUobG9hZFBh
cmFtZXRlcnMpLCBXVEZNb3ZlKG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpKTsKICNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpOwogICAgIFJlZlB0cjxOZXR3b3Jr
aW5nQ29udGV4dD4gY29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobG9h
ZFBhcmFtZXRlcnMuc2Vzc2lvbklELCBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKIAogICAgIC8vIFBpbmdIYW5kbGUgbWFuYWdlcyBpdHMg
b3duIGxpZmV0aW1lLCBkZWxldGluZyBpdHNlbGYgd2hlbiBpdHMgcHVycG9zZSBoYXMgYmVlbiBm
dWxmaWxsZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMjY3YTFhNmFhZjNhYTdmZGNi
M2ZiZWI3YWFmMGQ5ZDMxNDhmZjhhOS4uMDAwYWZkYTM4M2I0NDNjODQ5NDYxNmJhMjk0YTY0YWRm
NmM4ZjQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzYsNiArMzYsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCbG9iRGF0YUZpbGVSZWZlcmVuY2U7CitjbGFzcyBI
VFRQSGVhZGVyTWFwOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogfQogCkBAIC04Miw3ICs4Myw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNjaGVkdWxlUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBwZXJmb3JtU3luY2hyb25vdXNM
b2FkKGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiwgUmVmPE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6RGVs
YXllZFJlcGx5PiYmKTsKLSAgICB2b2lkIGxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzJiYpOworICAgIHZvaWQgbG9hZFBpbmcoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMmJiwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpOwog
ICAgIHZvaWQgcHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIHJlbW92ZUxv
YWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTYwOGI0OWJlZWViYzY4NWEzNTA4YWY4YjBm
NDc2NWVlYmU0NDIyNS4uZmI5NjA3NTU0ZmM3MWZmOGM2NDhhMGNmNzcyMWYwMTk5MmEzYjdjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsy
NCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJl
Y2VpdmVyIHsKIAogICAgIFNjaGVkdWxlUmVzb3VyY2VMb2FkKFdlYktpdDo6TmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFyYW1ldGVycykKICAgICBQZXJmb3JtU3lu
Y2hyb25vdXNMb2FkKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiBkYXRhKSBEZWxheWVk
Ci0gICAgTG9hZFBpbmcoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzKQorICAgIExvYWRQaW5nKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFyYW1ldGVycywgV2ViQ29yZTo6SFRUUEhlYWRl
ck1hcCBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKQogICAgIFJlbW92ZUxvYWRJZGVudGlmaWVyKHVp
bnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpCiAgICAgU2V0RGVmZXJzTG9hZGluZyh1aW50
NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29sIGRlZmVycykKICAgICBQcmVmZXRjaERO
UyhTdHJpbmcgaG9zdG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IDA5OWVk
MjkwMGUyYTdiODE1OWM3YWJkYzVhMTYwMmYzZWRlMWEzMjEuLjk4MmY2NzlhYWU3ZjZiMzYzNTU1
ZjQwNGZhODU5ZDhiZGM3MTVhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCkBAIC04
OCw3ICs4OCw2IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgICAgIGVuY29kZXIgPDwgU2VjdXJpdHlP
cmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKnNvdXJjZU9yaWdpbik7CiAgICAgZW5jb2Rl
ci5lbmNvZGVFbnVtKG1vZGUpOwogICAgIGVuY29kZXIgPDwgY3NwUmVzcG9uc2VIZWFkZXJzOwot
ICAgIGVuY29kZXIgPDwgb3JpZ2luYWxSZXF1ZXN0SGVhZGVyczsKIH0KIAogYm9vbCBOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmIHJlc3VsdCkKQEAgLTE2Nyw4ICsxNjYsNiBAQCBi
b29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBOZXR3b3JrUmVzb3VyYwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQuY3NwUmVzcG9uc2VIZWFkZXJzKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm9yaWdpbmFsUmVxdWVzdEhl
YWRlcnMpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMuaAppbmRleCBmYzYwZmE4MGQ1MTMxZGU3ZmNiMTNkNjlmMGE2ZjA5
OTcxMmE5ZmVlLi44YWY0MjFhMTEyYmUzYmNlYmNkNjQwYWI2MGZkNjgwMzcxNzExM2YyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycy5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiU2FuZGJv
eEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlvbnMuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJNYXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
SGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtNjAsNyArNTksNiBAQCBwdWJs
aWM6CiAgICAgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBzb3VyY2VPcmlnaW47CiAg
ICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpNb2RlIG1vZGU7CiAgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnM+IGNzcFJlc3BvbnNl
SGVhZGVyczsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkhUVFBIZWFkZXJNYXA+IG9yaWdp
bmFsUmVxdWVzdEhlYWRlcnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKaW5kZXggMGQ5Y2I4NmRkNzkyYzZkZjAw
NDdjYjRlZDBjZTE5OGUzYTM4MTIyNi4uMTc3Y2VhMTU4NTI3MzY2ZDA4ZTZmMzVjNzA2MWQxYTg1
YTVlMTY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9h
ZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAg
LTQyLDEzICs0MiwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLVBpbmdMb2FkOjpQaW5nTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMpCitQaW5nTG9hZDo6UGluZ0xvYWQoTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVh
ZGVycykKICAgICA6IG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQorICAgICwgbV9v
cmlnaW5hbFJlcXVlc3RIZWFkZXJzKFdURk1vdmUob3JpZ2luYWxSZXF1ZXN0SGVhZGVycykpCiAg
ICAgLCBtX3RpbWVvdXRUaW1lcigqdGhpcywgJlBpbmdMb2FkOjp0aW1lb3V0VGltZXJGaXJlZCkK
ICAgICAsIG1faXNTYW1lT3JpZ2luUmVxdWVzdChzZWN1cml0eU9yaWdpbigpLmNhblJlcXVlc3Qo
bV9wYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkpKQogewogICAgIEFTU0VSVChtX3BhcmFtZXRlcnMu
c291cmNlT3JpZ2luKTsKLSAgICBBU1NFUlQobV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhl
YWRlcnMpOwogCiAgICAgLy8gSWYgdGhlIHNlcnZlciBuZXZlciByZXNwb25kcywgdGhpcyBvYmpl
Y3Qgd2lsbCBoYW5nIGFyb3VuZCBmb3JldmVyLgogICAgIC8vIFNldCBhIHZlcnkgZ2VuZXJvdXMg
dGltZW91dCwganVzdCBpbiBjYXNlLgpAQCAtOTEsMTEgKzkxLDYgQEAgU2VjdXJpdHlPcmlnaW4m
IFBpbmdMb2FkOjpzZWN1cml0eU9yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fb3JpZ2luID8g
Km1fb3JpZ2luIDogKm1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW47CiB9CiAKLWNvbnN0IEhUVFBI
ZWFkZXJNYXAmIFBpbmdMb2FkOjpvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gKm1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzOwotfQotCiB2b2lk
IFBpbmdMb2FkOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihSZXNvdXJjZVJlc3BvbnNlJiYg
cmVkaXJlY3RSZXNwb25zZSwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVkaXJlY3RDb21w
bGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoIndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uIC0gc2hvdWxkRm9sbG93UmVkaXJl
Y3RzPyAlZCIsIG1fcGFyYW1ldGVycy5zaG91bGRGb2xsb3dSZWRpcmVjdHMpOwpAQCAtMTMyLDcg
KzEyNyw3IEBAIHZvaWQgUGluZ0xvYWQ6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFJlc291
cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBSCiAgICAgfQogCiAgICAgLy8gRXhjZXB0
IGluIGNhc2Ugd2hlcmUgcHJlZmxpZ2h0IGlzIG5lZWRlZCwgbG9hZGluZyBzaG91bGQgYmUgYWJs
ZSB0byBjb250aW51ZSBvbiBpdHMgb3duLgotICAgIGlmIChtX2lzU2ltcGxlUmVxdWVzdCAmJiBp
c1NpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgb3Jp
Z2luYWxSZXF1ZXN0SGVhZGVycygpKSkgeworICAgIGlmIChtX2lzU2ltcGxlUmVxdWVzdCAmJiBp
c1NpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgbV9v
cmlnaW5hbFJlcXVlc3RIZWFkZXJzKSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZN
b3ZlKHJlcXVlc3QpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIxOSwxMyArMjE0LDEz
IEBAIHZvaWQgUGluZ0xvYWQ6Om1ha2VDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCkKICAgICBBU1NFUlQobV9wYXJhbWV0ZXJzLm1vZGUgPT0gRmV0Y2hP
cHRpb25zOjpNb2RlOjpDb3JzKTsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJtYWtlQ3Jv
c3NPcmlnaW5BY2Nlc3NSZXF1ZXN0Iik7CiAKLSAgICBpZiAoaXNTaW1wbGVDcm9zc09yaWdpbkFj
Y2Vzc1JlcXVlc3QocmVxdWVzdC5odHRwTWV0aG9kKCksIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMo
KSkpIHsKKyAgICBpZiAoaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QocmVxdWVzdC5o
dHRwTWV0aG9kKCksIG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVycykpIHsKICAgICAgICAgbWFrZVNp
bXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIG1faXNTaW1wbGVSZXF1ZXN0ID0gZmFsc2U7Ci0gICAgaWYg
KENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNpbmdsZXRvbigpLmNhblNraXBQcmVm
bGlnaHQoc2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpLCByZXF1ZXN0LnVybCgpLCBtX3BhcmFt
ZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscywgcmVxdWVzdC5odHRwTWV0aG9kKCksIG9yaWdp
bmFsUmVxdWVzdEhlYWRlcnMoKSkpIHsKKyAgICBpZiAoQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZTo6c2luZ2xldG9uKCkuY2FuU2tpcFByZWZsaWdodChzZWN1cml0eU9yaWdpbigpLnRv
U3RyaW5nKCksIHJlcXVlc3QudXJsKCksIG1fcGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRp
YWxzLCByZXF1ZXN0Lmh0dHBNZXRob2QoKSwgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJtYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1
ZXN0IC0gcHJlZmxpZ2h0IGNhbiBiZSBza2lwcGVkIHRoYW5rcyB0byBjYWNoZWQgcmVzdWx0Iik7
CiAgICAgICAgIHByZWZsaWdodFN1Y2Nlc3MoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgfSBlbHNl
CkBAIC0yMzQsNyArMjI5LDcgQEAgdm9pZCBQaW5nTG9hZDo6bWFrZUNyb3NzT3JpZ2luQWNjZXNz
UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogCiB2b2lkIFBpbmdMb2FkOjptYWtl
U2ltcGxlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qp
CiB7Ci0gICAgQVNTRVJUKGlzU2ltcGxlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KHJlcXVlc3Qu
aHR0cE1ldGhvZCgpLCBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKCkpKTsKKyAgICBBU1NFUlQoaXNT
aW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QocmVxdWVzdC5odHRwTWV0aG9kKCksIG1fb3Jp
Z2luYWxSZXF1ZXN0SGVhZGVycykpOwogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIm1ha2VT
aW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QiKTsKIAogICAgIGlmICghcmVxdWVzdC51cmwo
KS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UGluZ0xvYWQuaAppbmRleCBhZDM1NDY0ZTUxMzNmMTg4MDg5NDAyYmUxZWU5NzgzMTNhODdjN2Fl
Li4yZmY3MjNlNDg0YjU0NTY4NTA1MzZhYTliZWJjMjBhM2MxNTk5ZTFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCkBAIC0zMiw2ICszMiw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeTsKK2NsYXNzIEhUVFBIZWFk
ZXJNYXA7CiBjbGFzcyBVUkw7CiB9CiAKQEAgLTQxLDcgKzQyLDcgQEAgY2xhc3MgTmV0d29ya0NP
UlNQcmVmbGlnaHRDaGVja2VyOwogCiBjbGFzcyBQaW5nTG9hZCBmaW5hbCA6IHByaXZhdGUgTmV0
d29ya0RhdGFUYXNrQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBQaW5nTG9hZChOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmKTsKKyAgICBQaW5nTG9hZChOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycyYmLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1
ZXN0SGVhZGVycyk7CiAgICAgCiBwcml2YXRlOgogICAgIH5QaW5nTG9hZCgpOwpAQCAtNjYsOSAr
NjcsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJlZmxpZ2h0U3VjY2VzcyhXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJik7CiAKICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlP
cmlnaW4oKSBjb25zdDsKLSAgICBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiBvcmlnaW5h
bFJlcXVlc3RIZWFkZXJzKCkgY29uc3Q7IC8vIE5lZWRlZCBmb3IgQ09SUyBjaGVja3MuCiAgICAg
CiAgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbV9wYXJhbWV0ZXJzOworICAgIFdl
YkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQg
Zm9yIENPUlMgY2hlY2tzLgogICAgIFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+IG1fdGFzazsKICAg
ICBXZWJDb3JlOjpUaW1lciBtX3RpbWVvdXRUaW1lcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyPiBtX2NvcnNQcmVmbGlnaHRDaGVja2VyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
Y3BwCmluZGV4IDBlY2EwYjI5ZmQ4ZDJhODk5NWZkMGZmN2U2ZTBkOTRmZTA4OTI4ZTQuLjY5ZTNm
NmQ5NDQyZWRjZDE1YjBjN2Y2M2VmMmRjMDYzYjc0M2QxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTM4
Niw3ICszODYsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCB1bgogICAgIH0KIH0KIAotdm9pZCBX
ZWJMb2FkZXJTdHJhdGVneTo6Y3JlYXRlUGluZ0hhbmRsZShOZXR3b3JraW5nQ29udGV4dCogbmV0
d29ya2luZ0NvbnRleHQsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgSFRUUEhlYWRlck1hcCYm
IG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmln
aW4sIENvbnRlbnRTZWN1cml0eVBvbGljeSogY29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBG
ZXRjaE9wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpjcmVhdGVQaW5n
SGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBIVFRQSGVhZGVyTWFwJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJz
LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBDb250ZW50U2VjdXJpdHlQb2xp
Y3kqIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgRmV0Y2hPcHRpb25zJiBvcHRpb25zKQog
ewogICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCBjYWxsIHRvIGNyZWF0ZVBpbmdIYW5kbGUgbWln
aHQgYmUgbWFkZSBkdXJpbmcgaW5pdGlhbCBlbXB0eSBEb2N1bWVudCBjcmVhdGlvbiBiZWZvcmUg
YSBOZXR3b3JraW5nQ29udGV4dCBleGlzdHMuCiAgICAgLy8gSXQgaXMgbm90IGNsZWFyIHRoYXQg
d2Ugc2hvdWxkIHNlbmQgcGluZyBsb2FkcyBkdXJpbmcgdGhhdCBwcm9jZXNzIGFueXdheXMuCkBA
IC00MDAsNyArNDAwLDYgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6Y3JlYXRlUGluZ0hhbmRs
ZShOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQsIFIKICAgICAKICAgICBOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKICAgICBsb2FkUGFyYW1l
dGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBsb2FkUGFyYW1ldGVycy5vcmlnaW5hbFJlcXVl
c3RIZWFkZXJzID0gV1RGTW92ZShvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKTsKICAgICBsb2FkUGFy
YW1ldGVycy5zb3VyY2VPcmlnaW4gPSBXVEZNb3ZlKHNvdXJjZU9yaWdpbik7CiAgICAgbG9hZFBh
cmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFM
OjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5hbGxv
d1N0b3JlZENyZWRlbnRpYWxzID0gb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6
OkNyZWRlbnRpYWxzOjpPbWl0ID8gRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogQWxsb3dT
dG9yZWRDcmVkZW50aWFsczsKQEAgLTQxMCw3ICs0MDksNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0
ZWd5OjpjcmVhdGVQaW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4
dCwgUgogICAgIGlmIChjb250ZW50U2VjdXJpdHlQb2xpY3kpCiAgICAgICAgIGxvYWRQYXJhbWV0
ZXJzLmNzcFJlc3BvbnNlSGVhZGVycyA9IGNvbnRlbnRTZWN1cml0eVBvbGljeS0+cmVzcG9uc2VI
ZWFkZXJzKCk7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6TG9hZFBpbmcoV1RGTW92ZShsb2FkUGFyYW1ldGVycykpLCAwKTsKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6TG9hZFBpbmcoV1RGTW92ZShs
b2FkUGFyYW1ldGVycyksIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpLCAwKTsKIH0KIAogdm9pZCBX
ZWJMb2FkZXJTdHJhdGVneTo6c3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6RGln
ZXN0JiBib2R5SGFzaCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHBhcnRpdGlv
biwgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKaW5kZXggNDk0MjFmZDA0MmY0
NzExZjgzYzQ3NjJiMmVlMzhlNWE0Njk2YjFkOC4uN2I3Y2RlNzhmYWNmYjA4ZWEyMzg4YTYwNGFj
N2I3YWVmNWU2OTI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN1c3BlbmRQZW5kaW5nUmVxdWVzdHMoKSBmaW5hbDsKICAgICB2b2lkIHJlc3VtZVBlbmRp
bmdSZXF1ZXN0cygpIGZpbmFsOwogCi0gICAgdm9pZCBjcmVhdGVQaW5nSGFuZGxlKFdlYkNvcmU6
Ok5ldHdvcmtpbmdDb250ZXh0KiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4sIFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGlj
eSosIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYpIGZpbmFsOworICAgIHZvaWQgY3JlYXRl
UGluZ0hhbmRsZShXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCosIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmIG9yaWdpbmFsUmVxdWVzdEhl
YWRlcnMsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4sIFdlYkNv
cmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSosIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYp
IGZpbmFsOwogCiAgICAgdm9pZCBzdG9yZURlcml2ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpE
aWdlc3QmIGJvZHlIYXNoLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFydGl0
aW9uLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwCmluZGV4IGJiZTc5ZTkzZWVmYjc4N2VmOTE5NWI1NWQwOTc2YTM0ZTFmZDA0ZTgu
LjgyYTgxYjdlYTY4ZDM2N2VkOGNlNzhlYWVlMDM0NDk4N2U1M2U3ZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBib29sIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjo6SG9zdEluZm9ybWF0aW9uOjpsaW1pdFJlcXVlc3RzKFJlc291cmNlTG9hZFBy
aW9yaQogICAgIHJldHVybiBtX3JlcXVlc3RzTG9hZGluZy5zaXplKCkgPj0gKHdlYlJlc291cmNl
TG9hZFNjaGVkdWxlcigpLmlzU2VyaWFsTG9hZGluZ0VuYWJsZWQoKSA/IDEgOiBtX21heFJlcXVl
c3RzSW5GbGlnaHQpOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6Y3JlYXRl
UGluZ0hhbmRsZShOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQsIFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgSFRUUEhlYWRlck1hcCYmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYs
IFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSosIGNvbnN0IEZldGNoT3B0aW9ucyYgb3B0
aW9ucykKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpjcmVhdGVQaW5nSGFuZGxlKE5l
dHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBIVFRQSGVhZGVyTWFwJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmLCBXZWJDb3Jl
OjpDb250ZW50U2VjdXJpdHlQb2xpY3kqLCBjb25zdCBGZXRjaE9wdGlvbnMmIG9wdGlvbnMpCiB7
CiAgICAgLy8gUGluZ0hhbmRsZSBtYW5hZ2VzIGl0cyBvd24gbGlmZXRpbWUsIGRlbGV0aW5nIGl0
c2VsZiB3aGVuIGl0cyBwdXJwb3NlIGhhcyBiZWVuIGZ1bGZpbGxlZC4KICAgICBuZXcgUGluZ0hh
bmRsZShuZXR3b3JraW5nQ29udGV4dCwgcmVxdWVzdCwgb3B0aW9ucy5jcmVkZW50aWFscyAhPSBG
ZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0LCBQaW5nSGFuZGxlOjpVc2VzQXN5bmNDYWxs
YmFja3M6Ok5vLCBvcHRpb25zLnJlZGlyZWN0ID09IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZv
bGxvdyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3Vw
cG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCAwYmIyOTFiOWM2YWM5MjEzNzFl
Zjk1YTA4NjMzOTQ1ZmEwMTg3Y2E5Li4yMGE4ZDU2ZTIxNTc2OGM2NTU2MDgyZWExNTU5ODEyZDU3
YTI2MmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29y
ZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc3VzcGVuZFBlbmRpbmdSZXF1ZXN0cygpIG92ZXJyaWRlOwogICAgIHZv
aWQgcmVzdW1lUGVuZGluZ1JlcXVlc3RzKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGNyZWF0ZVBp
bmdIYW5kbGUoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiBzb3VyY2VPcmlnaW4sIFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSosIGNv
bnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgY3JlYXRlUGlu
Z0hhbmRsZShXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCosIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmLCBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3kq
LCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc3Rv
cmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6RGlnZXN0JiwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJikgb3ZlcnJpZGUgeyB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>