<?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>175603</bug_id>
          
          <creation_ts>2017-08-15 15:55:23 -0700</creation_ts>
          <short_desc>Add a DOMPromiseDeferred method to handle ExceptionOr&lt;&gt; results</short_desc>
          <delta_ts>2017-08-17 11:08:21 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1338921</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-15 15:55:23 -0700</bug_when>
    <thetext>Given an ExceptionOr&lt;T&gt;, a promise could do:
- reject if there is an exception
- resolve with t otherwise</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338935</commentid>
    <comment_count>1</comment_count>
      <attachid>318191</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-15 16:12:32 -0700</bug_when>
    <thetext>Created attachment 318191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338937</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-15 16:14:18 -0700</bug_when>
    <thetext>Attachment 318191 did not pass style-queue:


ERROR: Source/WebCore/Modules/cache/CacheStorageConnection.h:67:  The parameter name &quot;request&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339201</commentid>
    <comment_count>3</comment_count>
      <attachid>318269</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-16 10:13:56 -0700</bug_when>
    <thetext>Created attachment 318269
Fixing Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339202</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-16 10:14:53 -0700</bug_when>
    <thetext>Attachment 318269 did not pass style-queue:


ERROR: Source/WebCore/Modules/cache/CacheStorageConnection.h:67:  The parameter name &quot;request&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339205</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-16 10:29:42 -0700</bug_when>
    <thetext>Still red bubbles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339215</commentid>
    <comment_count>6</comment_count>
      <attachid>318274</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-16 10:55:12 -0700</bug_when>
    <thetext>Created attachment 318274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339218</commentid>
    <comment_count>7</comment_count>
      <attachid>318275</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-16 10:58:13 -0700</bug_when>
    <thetext>Created attachment 318275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339221</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-16 11:01:24 -0700</bug_when>
    <thetext>Attachment 318275 did not pass style-queue:


ERROR: Source/WebCore/Modules/cache/CacheStorageConnection.h:67:  The parameter name &quot;request&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339295</commentid>
    <comment_count>9</comment_count>
      <attachid>318275</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-16 14:31:20 -0700</bug_when>
    <thetext>Comment on attachment 318275
Patch

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

&gt; Source/WebCore/Modules/cache/CacheStorageConnection.cpp:36
&gt; +std::optional&lt;Exception&gt; CacheStorageConnection::convertErrorIntoException(Error error)

Do we really needed an Error type? Cannot we just use Exception type everywhere? This would avoid having to convert.

&gt; Source/WebCore/Modules/cache/CacheStorageConnection.cpp:44
&gt; +        result = std::nullopt;

Not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339302</commentid>
    <comment_count>10</comment_count>
      <attachid>318275</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-16 15:01:12 -0700</bug_when>
    <thetext>Comment on attachment 318275
Patch

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

&gt; Source/WebCore/Modules/cache/Cache.cpp:275
&gt; +void Cache::batchDeleteOperation(const FetchRequest&amp; request, CacheQueryOptions&amp;&amp; options, WTF::Function&lt;void(ExceptionOr&lt;bool&gt;&amp;&amp;)&gt;&amp;&amp; callback)

I like that we&apos;re using ExceptionOr&lt;&gt; here as this avoids returning a result parameter unnecessarily in case of error....

&gt; Source/WebCore/Modules/cache/Cache.cpp:280
&gt; +            callback(CacheStorageConnection::exceptionOrResult(!records.isEmpty(), error));

.. However, this only moved the issue since we still have to provide both a result and an error here.

&gt; Source/WebCore/Modules/cache/CacheStorageConnection.cpp:43
&gt; +    case Error::None:

I really think we should drop this enum value in a follow-up and use std::optional&lt;&gt;. Then the call sites could boolean check the std::optional directly.

&gt; Source/WebCore/Modules/cache/CacheStorageConnection.h:50
&gt; +    template&lt;typename T&gt; static ExceptionOr&lt;T&gt; exceptionOrResult(T&amp;&amp; value, Error error)

This is not very scalable as you force the call site to construct a value/result it likely does not have in the case an error happened. Works OK now because you&apos;re only dealing with booleans. It is also confusing to have to pass both a result and an error while in practice they are mutually exclusive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339303</commentid>
    <comment_count>11</comment_count>
      <attachid>318275</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-16 15:03:59 -0700</bug_when>
    <thetext>Comment on attachment 318275
Patch

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

&gt; Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:216
&gt; +    void settle(ExceptionOr&lt;typename IDLType::ParameterType&gt;&amp;&amp; result)

I also like the part of the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339304</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-16 15:04:18 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #11)
&gt; Comment on attachment 318275 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=318275&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:216
&gt; &gt; +    void settle(ExceptionOr&lt;typename IDLType::ParameterType&gt;&amp;&amp; result)
&gt; 
&gt; I also like the part of the change.

*this* part of the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339342</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-16 16:17:55 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #9)
&gt; Comment on attachment 318275 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=318275&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/cache/CacheStorageConnection.cpp:36
&gt; &gt; +std::optional&lt;Exception&gt; CacheStorageConnection::convertErrorIntoException(Error error)
&gt; 
&gt; Do we really needed an Error type? Cannot we just use Exception type
&gt; everywhere? This would avoid having to convert.

An Exception requires passing a String through IPC or through workers while it might not be needed usually.
That is the main reason. Maybe this is not worth optimizing though.

The other reason is that I plan to use Error codes in the storage engine and it might not make sense to use ExceptionCode there.
That said, it might be better for the storage engine to have its own error codes in which case WK2 CacheStorageConnection would translate these into an Exception.

This patch is an improvement and allows already to isolate the main functions from CacheStorageConnection::Error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339578</commentid>
    <comment_count>14</comment_count>
      <attachid>318275</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-08-17 09:07:37 -0700</bug_when>
    <thetext>Comment on attachment 318275
Patch

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

The &quot;settle&quot; idea is great. I like Chris’s suggestion of using std::optional instead of a error called &quot;none&quot; and the idea to reduce or remove the Error enumeration entirely if possible.

&gt; Source/WebCore/Modules/cache/CacheStorageConnection.h:49
&gt; +    static std::optional&lt;Exception&gt; convertErrorIntoException(Error);

std::optional&lt;Exception&gt; and ExceptionOr&lt;void&gt; are nearly identical. We should not use both. I suggest merging exceptionIfAny and convertErrorIntoException into a single function; and call it convertErrorIntoException, convertToException, or exception. Then your exceptionOrResult function, if you choose to keep it, can just call that. It should be easy and clear to make an ExceptionOr&lt;T&gt; out of an ExceptionOr&lt;void&gt; rather than also using std::optional&lt;Exception&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339594</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-17 09:29:44 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #14)
&gt; Comment on attachment 318275 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=318275&amp;action=review
&gt; 
&gt; The &quot;settle&quot; idea is great. I like Chris’s suggestion of using std::optional
&gt; instead of a error called &quot;none&quot; and the idea to reduce or remove the Error
&gt; enumeration entirely if possible.

Yes, that is the plan.
This would mean updating CacheStorageConnection to either pass an ExceptionOr&lt;&gt; or something like CacheStorageConnection::ErrorOr&lt;&gt;.
WK2 specific implementation of CacheStorageConnection is following that model in bug 175640.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339612</commentid>
    <comment_count>16</comment_count>
      <attachid>318378</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-17 10:29:23 -0700</bug_when>
    <thetext>Created attachment 318378
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339613</commentid>
    <comment_count>17</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-17 10:31:05 -0700</bug_when>
    <thetext>Attachment 318378 did not pass style-queue:


ERROR: Source/WebCore/Modules/cache/CacheStorageConnection.h:59:  The parameter name &quot;request&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339641</commentid>
    <comment_count>18</comment_count>
      <attachid>318378</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-17 11:07:30 -0700</bug_when>
    <thetext>Comment on attachment 318378
Patch for landing

Clearing flags on attachment: 318378

Committed r220863: &lt;http://trac.webkit.org/changeset/220863&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339642</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-17 11:07:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339643</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-17 11:08:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/33944908&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318191</attachid>
            <date>2017-08-15 16:12:32 -0700</date>
            <delta_ts>2017-08-16 10:13:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175603-20170815161232.patch</filename>
            <type>text/plain</type>
            <size>12322</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwNzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjU4MDRhYjM1ZmNjYmM2
ZGM4NzBhNzdmNjhlMGVlZmMwNzliZjUyMS4uODY5OWNkZjJkYzk4OTljMGY5Yzg2NzI3YzlkYTdm
ZTU3MGRiNWRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE3LTA4LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBET01Qcm9taXNl
RGVmZXJyZWQgbWV0aG9kIHRvIGhhbmRsZSBFeGNlcHRpb25Pcjw+IHJlc3VsdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTYwMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhh
dmlvci4KKworICAgICAgICBJbnRyb2R1Y2UgRE9NUHJvbWlzZURlZmVycmVkOjpzZXR0bGUgdG8g
cmVqZWN0L3Jlc29sdmUgYSBwcm9taXNlIHdpdGggYW4gRXhjZXB0aW9uT3I8Pi4KKyAgICAgICAg
TWFraW5nIGJhdGNoUHV0T3BlcmF0aW9uL2JhdGNoRGVsZXRlT3BlcmF0aW9uIHRha2UgYSBGdW5j
dGlvbiB3aXRoIGFuIEV4Y2VwdGlvbk9yPD4uCisgICAgICAgIFVzaW5nIERPTVByb21pc2VEZWZl
cnJlZDo6c2V0dGxlIGluIENhY2hlIHB1dC9yZW1vdmUuCisgICAgICAgIFVwZGF0ZWQgQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbiB0byBjcmVhdGUgRXhjZXB0aW9uT3I8PiBmcm9tIENhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OkVycm9yLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZTo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGU6OmJhdGNoRGVsZXRlT3BlcmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjpiYXRjaFB1dE9wZXJhdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9jYWNoZS9DYWNoZS5oOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGVT
dG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlU3RvcmFnZTo6b3Blbik6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZVN0b3JhZ2U6OnJlbW92ZSk6CisgICAgICAgICogTW9kdWxlcy9j
YWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OmNvbnZlcnRFcnJvckludG9FeGNlcHRpb24pOgorICAgICAgICAq
IE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uT3JSZXN1bHQpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uSWZBbnkpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmg6CisgICAgICAgIChXZWJDb3Jl
OjpET01Qcm9taXNlRGVmZXJyZWQ6OnNldHRsZSk6CisgICAgICAgIChXZWJDb3JlOjpET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD46OnNldHRsZSk6CisKIDIwMTctMDgtMTQgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDYWNoZSBBUEldIEFkZGluZyBnZW5lcmlj
IHN1cHBvcnQgZm9yIENhY2hlU3RvcmFnZSBhbmQgQ2FjaGUgbWV0aG9kcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL0NhY2hlLmNwcAppbmRleCA2NjQ0MjM0NGZiZjNiZTU1ZTdiZGIxNzM1MjBi
ZGIxZDY2NWNiNDQyLi44ZDYzY2EwZjc1Yjg4OWI4YjBmYzVkMTkwZWIxMTNjMDJhMWQ0YmQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlLmNwcApAQCAtMTcyLDEyICsxNzIsOCBA
QCB2b2lkIENhY2hlOjpwdXQoUmVxdWVzdEluZm8mJiBpbmZvLCBSZWY8RmV0Y2hSZXNwb25zZT4m
JiByZXNwb25zZSwgRE9NUHJvbWlzZURlZgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
YmF0Y2hQdXRPcGVyYXRpb24oKnJlcXVlc3QsIHJlc3BvbnNlLmdldCgpLCBbcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yIGVycm9yKSBtdXRh
YmxlIHsKLSAgICAgICAgaWYgKGVycm9yICE9IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9y
OjpOb25lKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJlamVjdChDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpleGNlcHRpb25Gcm9tRXJyb3IoZXJyb3IpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgfQotICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICBiYXRjaFB1dE9wZXJhdGlv
bigqcmVxdWVzdCwgcmVzcG9uc2UuZ2V0KCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
RXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNl
dHRsZShXVEZNb3ZlKHJlc3VsdCkpOwogICAgIH0pOwogfQogCkBAIC0xOTYsMTIgKzE5Miw4IEBA
IHZvaWQgQ2FjaGU6OnJlbW92ZShSZXF1ZXN0SW5mbyYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25z
JiYgb3B0aW9ucywgRE9NUHJvbWlzZURlCiAgICAgICAgIHJlcXVlc3QgPSBGZXRjaFJlcXVlc3Q6
OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBXVEZNb3ZlKGluZm8pLCB7IH0pLnJl
bGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgIH0KIAotICAgIGJhdGNoRGVsZXRlT3BlcmF0aW9uKCpy
ZXF1ZXN0LCBXVEZNb3ZlKG9wdGlvbnMpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGJv
b2wgZGlkRGVsZXRlLCBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpFcnJvciBlcnJvcikgbXV0YWJs
ZSB7Ci0gICAgICAgIGlmIChlcnJvciAhPSAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3I6
Ok5vbmUpIHsKLSAgICAgICAgICAgIHByb21pc2UucmVqZWN0KENhY2hlU3RvcmFnZUNvbm5lY3Rp
b246OmV4Y2VwdGlvbkZyb21FcnJvcihlcnJvcikpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZShkaWREZWxldGUpOworICAgIGJhdGNoRGVs
ZXRlT3BlcmF0aW9uKCpyZXF1ZXN0LCBXVEZNb3ZlKG9wdGlvbnMpLCBbcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPGJvb2w+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAgICB9KTsKIH0KIApAQCAtMjgw
LDE2ICsyNzIsMTMgQEAgVmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4gQ2FjaGU6OnF1ZXJ5Q2Fj
aGVXaXRoVGFyZ2V0U3RvcmFnZShjb25zdCBGZXRjaFJlcXVlc3QKICAgICByZXR1cm4gcmVjb3Jk
czsKIH0KIAotdm9pZCBDYWNoZTo6YmF0Y2hEZWxldGVPcGVyYXRpb24oY29uc3QgRmV0Y2hSZXF1
ZXN0JiByZXF1ZXN0LCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFdURjo6RnVuY3Rpb248
dm9pZChib29sIGRpZFJlbW92YWwsIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yIGVycm9y
KT4mJiBjYWxsYmFjaykKK3ZvaWQgQ2FjaGU6OmJhdGNoRGVsZXRlT3BlcmF0aW9uKGNvbnN0IEZl
dGNoUmVxdWVzdCYgcmVxdWVzdCwgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYgY2FsbGJhY2spCiB7CiAgICAgc2V0
UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogICAgIG1fY29ubmVjdGlvbi0+YmF0Y2hEZWxldGVPcGVy
YXRpb24obV9pZGVudGlmaWVyLCByZXF1ZXN0LmludGVybmFsUmVxdWVzdCgpLCBXVEZNb3ZlKG9w
dGlvbnMpLCBbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oVmVjdG9yPHVpbnQ2
NF90PiYmIHJlY29yZHMsIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yIGVycm9yKSB7Ci0g
ICAgICAgIGlmICghbV9pc1N0b3BwZWQpIHsKLSAgICAgICAgICAgIGlmIChlcnJvciA9PSBDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uOjpFcnJvcjo6Tm9uZSkKLSAgICAgICAgICAgICAgICBtX3JlY29y
ZHMucmVtb3ZlQWxsTWF0Y2hpbmcoWyZdKGNvbnN0IGF1dG8mIGl0ZW0pIHsgcmV0dXJuIHJlY29y
ZHMuY29udGFpbnMoaXRlbS5pZGVudGlmaWVyKTsgfSk7CisgICAgICAgIGlmICghbV9pc1N0b3Bw
ZWQpCisgICAgICAgICAgICBjYWxsYmFjayhDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpleGNlcHRp
b25PclJlc3VsdCghcmVjb3Jkcy5pc0VtcHR5KCksIGVycm9yKSk7CiAKLSAgICAgICAgICAgIGNh
bGxiYWNrKCFyZWNvcmRzLmlzRW1wdHkoKSwgZXJyb3IpOwotICAgICAgICB9CiAgICAgICAgIHVu
c2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogICAgIH0pOwogfQpAQCAtMzEwLDcgKzI5OSw3IEBA
IHN0YXRpYyBpbmxpbmUgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6UmVjb3JkIHRvQ29ubmVjdGlv
blJlY29yZChjb25zdCBGZXRjaFJlcXVlCiAgICAgfTsKIH0KIAotdm9pZCBDYWNoZTo6YmF0Y2hQ
dXRPcGVyYXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBGZXRjaFJlc3BvbnNlJiBy
ZXNwb25zZSwgV1RGOjpGdW5jdGlvbjx2b2lkKENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9y
KT4mJiBjYWxsYmFjaykKK3ZvaWQgQ2FjaGU6OmJhdGNoUHV0T3BlcmF0aW9uKGNvbnN0IEZldGNo
UmVxdWVzdCYgcmVxdWVzdCwgRmV0Y2hSZXNwb25zZSYgcmVzcG9uc2UsIFdURjo6RnVuY3Rpb248
dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBWZWN0b3I8Q2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6UmVjb3JkPiByZWNvcmRzOwogICAgIHJlY29yZHMuYXBwZW5k
KHRvQ29ubmVjdGlvblJlY29yZChyZXF1ZXN0LCByZXNwb25zZSkpOwpAQCAtMzE4LDcgKzMwNyw3
IEBAIHZvaWQgQ2FjaGU6OmJhdGNoUHV0T3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYgcmVx
dWVzdCwgRmV0Y2hSZXNwb25zZSYgcmVzcG9uCiAgICAgc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMp
OwogICAgIG1fY29ubmVjdGlvbi0+YmF0Y2hQdXRPcGVyYXRpb24obV9pZGVudGlmaWVyLCBXVEZN
b3ZlKHJlY29yZHMpLCBbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oVmVjdG9y
PHVpbnQ2NF90PiYmLCBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpFcnJvciBlcnJvcikgewogICAg
ICAgICBpZiAoIW1faXNTdG9wcGVkKQotICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IpOworICAg
ICAgICAgICAgY2FsbGJhY2soQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uSWZBbnko
ZXJyb3IpKTsKIAogICAgICAgICB1bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKICAgICB9KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGUuaAppbmRleCAyMTA5NzMzODAwNzgzYmRmZDNi
MjY2MWM2MDI0NzQ0NDBjYWE4OGY5Li4wMzQzNmQ5ZDA1ZDc0NmVhNWU0ZTVlZmNkNGJlOGYxNmJl
ODNlMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5oCkBAIC02OCw4ICs2OCw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXRyaWV2ZVJlY29yZHMoV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYpOwogICAgIFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+IHF1ZXJ5Q2FjaGVXaXRoVGFy
Z2V0U3RvcmFnZShjb25zdCBGZXRjaFJlcXVlc3QmLCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYs
IGNvbnN0IFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+Jik7CiAgICAgdm9pZCBxdWVyeUNhY2hl
KFJlZjxGZXRjaFJlcXVlc3Q+JiYsIENhY2hlUXVlcnlPcHRpb25zJiYsIFdURjo6RnVuY3Rpb248
dm9pZChjb25zdCBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiYpPiYmKTsKLSAgICB2b2lkIGJh
dGNoRGVsZXRlT3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25z
JiYsIFdURjo6RnVuY3Rpb248dm9pZChib29sIGRpZFJlbW92YWwsIENhY2hlU3RvcmFnZUNvbm5l
Y3Rpb246OkVycm9yKT4mJik7Ci0gICAgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbihjb25zdCBGZXRj
aFJlcXVlc3QmLCBGZXRjaFJlc3BvbnNlJiwgV1RGOjpGdW5jdGlvbjx2b2lkKENhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OkVycm9yKT4mJik7CisgICAgdm9pZCBiYXRjaERlbGV0ZU9wZXJhdGlvbihj
b25zdCBGZXRjaFJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpOworICAgIHZvaWQgYmF0Y2hQdXRPcGVyYXRpb24o
Y29uc3QgRmV0Y2hSZXF1ZXN0JiwgRmV0Y2hSZXNwb25zZSYsIFdURjo6RnVuY3Rpb248dm9pZChF
eGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CiAKICAgICB2b2lkIHVwZGF0ZVJlY29yZHMoVmVjdG9y
PENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OlJlY29yZD4mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcAppbmRleCBhMGMyOWRlOWJkNDIzYmU1YTI0
NGQ2YmRjMTg3MTRlMThlNmZjOTdjLi4wYzQ4NTFmMGE3MWU5ZDllYzdlYjk2NzhlNTZkYTM2YThj
YmE3ZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3Rv
cmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2Uu
Y3BwCkBAIC0xMDIsOCArMTAyLDkgQEAgdm9pZCBDYWNoZVN0b3JhZ2U6Om9wZW4oY29uc3QgU3Ry
aW5nJiBuYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPENhY2gKICAgICAgICAg
c2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogICAgICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4ob3Jp
Z2luLCBuYW1lLCBbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3IgZXJyb3Ip
IG11dGFibGUgewogICAgICAgICAgICAgaWYgKCFtX2lzU3RvcHBlZCkgewotICAgICAgICAgICAg
ICAgIGlmIChlcnJvciAhPSBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpFcnJvcjo6Tm9uZSkKLSAg
ICAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
ZXhjZXB0aW9uRnJvbUVycm9yKGVycm9yKSk7CisgICAgICAgICAgICAgICAgYXV0byBleGNlcHRp
b24gPSBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjb252ZXJ0RXJyb3JJbnRvRXhjZXB0aW9uKGVy
cm9yKTsKKyAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICAgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7CiAgICAgICAgICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gY2FjaGUgPSBDYWNoZTo6Y3Jl
YXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFN0cmluZyB7IG5hbWUgfSwgY2FjaGVJZGVu
dGlmaWVyLCBtX2Nvbm5lY3Rpb24uY29weVJlZigpKTsKICAgICAgICAgICAgICAgICAgICAgcHJv
bWlzZS5yZXNvbHZlKGNhY2hlKTsKQEAgLTEzMCwxMiArMTMxLDkgQEAgdm9pZCBDYWNoZVN0b3Jh
Z2U6OnJlbW92ZShjb25zdCBTdHJpbmcmIG5hbWUsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29s
ZWFuPiYmIHAKICAgICAgICAgc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogICAgICAgICBtX2Nv
bm5lY3Rpb24tPnJlbW92ZShtX2NhY2hlc1twb3NpdGlvbl0tPmlkZW50aWZpZXIoKSwgW3RoaXMs
IG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSh1aW50NjRfdCBjYWNoZUlkZW50aWZp
ZXIsIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yIGVycm9yKSBtdXRhYmxlIHsKICAgICAg
ICAgICAgIFVOVVNFRF9QQVJBTShjYWNoZUlkZW50aWZpZXIpOwotICAgICAgICAgICAgaWYgKCFt
X2lzU3RvcHBlZCkgewotICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSBDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uOjpFcnJvcjo6Tm9uZSkKLSAgICAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWpl
Y3QoQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uRnJvbUVycm9yKGVycm9yKSk7Ci0g
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUo
dHJ1ZSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIW1faXNTdG9wcGVkKQorICAg
ICAgICAgICAgICAgIHByb21pc2Uuc2V0dGxlKENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmV4Y2Vw
dGlvbk9yUmVzdWx0KHRydWUsIGVycm9yKSk7CisKICAgICAgICAgICAgIHVuc2V0UGVuZGluZ0Fj
dGl2aXR5KHRoaXMpOwogICAgICAgICB9KTsKICAgICAgICAgbV9jYWNoZXMucmVtb3ZlKHBvc2l0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDExMDQyNzQzYmZiMzA1ZjhlZmYwN2NlZDZjZGE3NDMy
N2E5MWU0MGIuLmFhZWM1MTUwYWE5OTYzODJlZmNkNmMyNjc2M2VhY2Y4NWNjOWQwNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcApAQCAtMzIsMTUgKzMyLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
RXhjZXB0aW9uIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmV4Y2VwdGlvbkZyb21FcnJvcihFcnJv
ciBlcnJvcikKK3N0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uPiBDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
Ojpjb252ZXJ0RXJyb3JJbnRvRXhjZXB0aW9uKEVycm9yIGVycm9yKQogewotICAgIEFTU0VSVChl
cnJvciAhPSBFcnJvcjo6Tm9uZSk7Ci0KICAgICBzd2l0Y2ggKGVycm9yKSB7CisgICAgY2FzZSBF
cnJvcjo6Tm9uZToKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBjYXNlIEVycm9y
OjpOb3RJbXBsZW1lbnRlZDoKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRl
ZEVycm9yLCBBU0NJSUxpdGVyYWwoIk5vdCBpbXBsZW1lbnRlZCIpIH07Ci0gICAgZGVmYXVsdDoK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJVbmtu
b3duIGVycm9yIikgfTsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDIzZWQzZTU4OGE4M2Q1
MmY4Y2I2MDRlM2U3NDFmYTVjMjA4ZmI0YjguLjE1ZjYwOGI2MDgyMmFjOWU4MmE2NDlhZGM0Njk2
YjZiNmU1ZjRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUv
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Niw5ICs0NiwyNSBAQCBwdWJsaWM6CiAgICAg
ICAgIE5vdEltcGxlbWVudGVkLAogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Ym9vbCBxdWVyeUNhY2hlTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIGNhY2hlZFJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4
Y2VwdGlvbj4gY29udmVydEVycm9ySW50b0V4Y2VwdGlvbihFcnJvcik7CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFQ+IGV4Y2VwdGlvbk9yUmVzdWx0KFQmJiB2
YWx1ZSwgRXJyb3IgZXJyb3IpCisgICAgeworICAgICAgICBhdXRvIGV4Y2VwdGlvbiA9IGNvbnZl
cnRFcnJvckludG9FeGNlcHRpb24oZXJyb3IpOworICAgICAgICBpZiAoZXhjZXB0aW9uKQorICAg
ICAgICAgICAgcmV0dXJuIFdURk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpOworICAgICAgICByZXR1
cm4gV1RGTW92ZSh2YWx1ZSk7CisgICAgfQorCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+
IGV4Y2VwdGlvbklmQW55KEVycm9yIGVycm9yKQorICAgIHsKKyAgICAgICAgYXV0byBleGNlcHRp
b24gPSBjb252ZXJ0RXJyb3JJbnRvRXhjZXB0aW9uKGVycm9yKTsKKyAgICAgICAgaWYgKGV4Y2Vw
dGlvbikKKyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKTsKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKIAotICAgIHN0YXRpYyBFeGNlcHRpb24gZXhjZXB0
aW9uRnJvbUVycm9yKEVycm9yKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBxdWVy
eUNhY2hlTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIGNhY2hlZFJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBD
YWNoZVF1ZXJ5T3B0aW9ucyYpOwogCiAgICAgc3RydWN0IFJlY29yZCB7CiAgICAgICAgIHVpbnQ2
NF90IGlkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVByb21pc2VEZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Q
cm9taXNlRGVmZXJyZWQuaAppbmRleCAzNjk5NmNkNzA1YzAzZWQ4N2VjZjUyN2M0NGUyYmMyNjM4
MTdiNWViLi5mYjZjZGY1MzhiODBiYmY3ZjQ3ZDRjZWEyNGM5NWJiZmM0ZmU4YTNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgKQEAg
LTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgogI2luY2x1ZGUgIkpTRE9NR3VhcmRlZE9iamVj
dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvQ2F0Y2hTY29wZS5oPgpAQCAtMjExLDYgKzIxMiwxNSBA
QCBwdWJsaWM6CiAgICAgeyAKICAgICAgICAgbV9wcm9taXNlRGVmZXJyZWQtPnJlc29sdmU8SURM
VHlwZT4oc3RkOjpmb3J3YXJkPHR5cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5cGU+KHZhbHVl
KSk7CiAgICAgfQorCisgICAgdm9pZCBzZXR0bGUoRXhjZXB0aW9uT3I8dHlwZW5hbWUgSURMVHlw
ZTo6UGFyYW1ldGVyVHlwZT4mJiByZXN1bHQpCisgICAgeworICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICByZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgcmVzb2x2ZShy
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgIH0KIH07CiAKIHRlbXBsYXRlPD4gY2xh
c3MgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+IDogcHVibGljIERPTVByb21pc2VEZWZlcnJlZEJh
c2UgewpAQCAtMjI0LDYgKzIzNCwxNSBAQCBwdWJsaWM6CiAgICAgeyAKICAgICAgICAgbV9wcm9t
aXNlRGVmZXJyZWQtPnJlc29sdmUoKTsKICAgICB9CisKKyAgICB2b2lkIHNldHRsZShFeGNlcHRp
b25Pcjx2b2lkPiYmIHJlc3VsdCkKKyAgICB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0
aW9uKCkpIHsKKyAgICAgICAgICAgIHJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICByZXNvbHZlKCk7CisgICAg
fQogfTsKIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318269</attachid>
            <date>2017-08-16 10:13:56 -0700</date>
            <delta_ts>2017-08-16 10:55:11 -0700</delta_ts>
            <desc>Fixing Windows</desc>
            <filename>bug-175603-20170816101355.patch</filename>
            <type>text/plain</type>
            <size>12547</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhjN2EwNDQ4ODMwYzdl
YjQyYTBkNzFiMzNkNWViMWZjYzJkNTIyMi4uNmQ3NmRmNzE2NThkMjMzN2VhMjdmYTVjZjhkYmI4
YTEyMjYwYjY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE3LTA4LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBET01Qcm9taXNl
RGVmZXJyZWQgbWV0aG9kIHRvIGhhbmRsZSBFeGNlcHRpb25Pcjw+IHJlc3VsdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTYwMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhh
dmlvci4KKworICAgICAgICBJbnRyb2R1Y2UgRE9NUHJvbWlzZURlZmVycmVkOjpzZXR0bGUgdG8g
cmVqZWN0L3Jlc29sdmUgYSBwcm9taXNlIHdpdGggYW4gRXhjZXB0aW9uT3I8Pi4KKyAgICAgICAg
TWFraW5nIGJhdGNoUHV0T3BlcmF0aW9uL2JhdGNoRGVsZXRlT3BlcmF0aW9uIHRha2UgYSBGdW5j
dGlvbiB3aXRoIGFuIEV4Y2VwdGlvbk9yPD4uCisgICAgICAgIFVzaW5nIERPTVByb21pc2VEZWZl
cnJlZDo6c2V0dGxlIGluIENhY2hlIHB1dC9yZW1vdmUuCisgICAgICAgIFVwZGF0ZWQgQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbiB0byBjcmVhdGUgRXhjZXB0aW9uT3I8PiBmcm9tIENhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OkVycm9yLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZTo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGU6OmJhdGNoRGVsZXRlT3BlcmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjpiYXRjaFB1dE9wZXJhdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9jYWNoZS9DYWNoZS5oOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGVT
dG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlU3RvcmFnZTo6b3Blbik6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZVN0b3JhZ2U6OnJlbW92ZSk6CisgICAgICAgICogTW9kdWxlcy9j
YWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OmNvbnZlcnRFcnJvckludG9FeGNlcHRpb24pOgorICAgICAgICAq
IE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uT3JSZXN1bHQpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uSWZBbnkpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmg6CisgICAgICAgIChXZWJDb3Jl
OjpET01Qcm9taXNlRGVmZXJyZWQ6OnNldHRsZSk6CisgICAgICAgIChXZWJDb3JlOjpET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD46OnNldHRsZSk6CisKIDIwMTctMDgtMTYgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgZmlyc3QtbGV0dGVyIHJlbmRlcmVy
IG11dGF0aW9uIGNvZGUgb3V0IG9mIFJlbmRlckJsb2NrIGFuZCBpbnRvIFJlbmRlclRyZWVVcGRh
dGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGUuY3BwCmluZGV4IDM3ZWU4NThmMzdk
Mzg1YzI3ZGI1ZDVkNDliMzQ5YmQ1ZGRhY2JkZGEuLmFmOTlhZjBkODI0MmM2YmYyZmNkZmE4OTRk
NGVhZjhhNjc3ZmNhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUv
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGUuY3BwCkBA
IC0xNzIsMTIgKzE3Miw4IEBAIHZvaWQgQ2FjaGU6OnB1dChSZXF1ZXN0SW5mbyYmIGluZm8sIFJl
ZjxGZXRjaFJlc3BvbnNlPiYmIHJlc3BvbnNlLCBET01Qcm9taXNlRGVmCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBiYXRjaFB1dE9wZXJhdGlvbigqcmVxdWVzdCwgcmVzcG9uc2UuZ2V0
KCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
RXJyb3IgZXJyb3IpIG11dGFibGUgewotICAgICAgICBpZiAoZXJyb3IgIT0gQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbjo6RXJyb3I6Ok5vbmUpIHsKLSAgICAgICAgICAgIHByb21pc2UucmVqZWN0KENh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OmV4Y2VwdGlvbkZyb21FcnJvcihlcnJvcikpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAg
IGJhdGNoUHV0T3BlcmF0aW9uKCpyZXF1ZXN0LCByZXNwb25zZS5nZXQoKSwgW3Byb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CiAgICAgfSk7CiB9CiAKQEAg
LTE5NiwxMiArMTkyLDggQEAgdm9pZCBDYWNoZTo6cmVtb3ZlKFJlcXVlc3RJbmZvJiYgaW5mbywg
Q2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBET01Qcm9taXNlRGUKICAgICAgICAgcmVxdWVz
dCA9IEZldGNoUmVxdWVzdDo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFdURk1v
dmUoaW5mbyksIHsgfSkucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgfQogCi0gICAgYmF0Y2hE
ZWxldGVPcGVyYXRpb24oKnJlcXVlc3QsIFdURk1vdmUob3B0aW9ucyksIFtwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYm9vbCBkaWREZWxldGUsIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVy
cm9yIGVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGVycm9yICE9ICBDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uOjpFcnJvcjo6Tm9uZSkgewotICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uRnJvbUVycm9yKGVycm9yKSk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGRpZERlbGV0
ZSk7CisgICAgYmF0Y2hEZWxldGVPcGVyYXRpb24oKnJlcXVlc3QsIFdURk1vdmUob3B0aW9ucyks
IFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8Ym9vbD4mJiByZXN1bHQp
IG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwogICAg
IH0pOwogfQogCkBAIC0yODAsMTYgKzI3MiwxMyBAQCBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3Jk
PiBDYWNoZTo6cXVlcnlDYWNoZVdpdGhUYXJnZXRTdG9yYWdlKGNvbnN0IEZldGNoUmVxdWVzdAog
ICAgIHJldHVybiByZWNvcmRzOwogfQogCi12b2lkIENhY2hlOjpiYXRjaERlbGV0ZU9wZXJhdGlv
bihjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9u
cywgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgZGlkUmVtb3ZhbCwgQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbjo6RXJyb3IgZXJyb3IpPiYmIGNhbGxiYWNrKQordm9pZCBDYWNoZTo6YmF0Y2hEZWxldGVP
cGVyYXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBDYWNoZVF1ZXJ5T3B0aW9ucyYm
IG9wdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT4mJiBjYWxs
YmFjaykKIHsKICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgbV9jb25uZWN0aW9u
LT5iYXRjaERlbGV0ZU9wZXJhdGlvbihtX2lkZW50aWZpZXIsIHJlcXVlc3QuaW50ZXJuYWxSZXF1
ZXN0KCksIFdURk1vdmUob3B0aW9ucyksIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXShWZWN0b3I8dWludDY0X3Q+JiYgcmVjb3JkcywgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
RXJyb3IgZXJyb3IpIHsKLSAgICAgICAgaWYgKCFtX2lzU3RvcHBlZCkgewotICAgICAgICAgICAg
aWYgKGVycm9yID09IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yOjpOb25lKQotICAgICAg
ICAgICAgICAgIG1fcmVjb3Jkcy5yZW1vdmVBbGxNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgaXRl
bSkgeyByZXR1cm4gcmVjb3Jkcy5jb250YWlucyhpdGVtLmlkZW50aWZpZXIpOyB9KTsKKyAgICAg
ICAgaWYgKCFtX2lzU3RvcHBlZCkKKyAgICAgICAgICAgIGNhbGxiYWNrKENhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmV4Y2VwdGlvbk9yUmVzdWx0KCFyZWNvcmRzLmlzRW1wdHkoKSwgZXJyb3IpKTsK
IAotICAgICAgICAgICAgY2FsbGJhY2soIXJlY29yZHMuaXNFbXB0eSgpLCBlcnJvcik7Ci0gICAg
ICAgIH0KICAgICAgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgfSk7CiB9CkBA
IC0zMTAsNyArMjk5LDcgQEAgc3RhdGljIGlubGluZSBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpS
ZWNvcmQgdG9Db25uZWN0aW9uUmVjb3JkKGNvbnN0IEZldGNoUmVxdWUKICAgICB9OwogfQogCi12
b2lkIENhY2hlOjpiYXRjaFB1dE9wZXJhdGlvbihjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVlc3Qs
IEZldGNoUmVzcG9uc2UmIHJlc3BvbnNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbjo6RXJyb3IpPiYmIGNhbGxiYWNrKQordm9pZCBDYWNoZTo6YmF0Y2hQdXRPcGVy
YXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBGZXRjaFJlc3BvbnNlJiByZXNwb25z
ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNhbGxiYWNrKQog
ewogICAgIFZlY3RvcjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpSZWNvcmQ+IHJlY29yZHM7CiAg
ICAgcmVjb3Jkcy5hcHBlbmQodG9Db25uZWN0aW9uUmVjb3JkKHJlcXVlc3QsIHJlc3BvbnNlKSk7
CkBAIC0zMTgsNyArMzA3LDcgQEAgdm9pZCBDYWNoZTo6YmF0Y2hQdXRPcGVyYXRpb24oY29uc3Qg
RmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBGZXRjaFJlc3BvbnNlJiByZXNwb24KICAgICBzZXRQZW5k
aW5nQWN0aXZpdHkodGhpcyk7CiAgICAgbV9jb25uZWN0aW9uLT5iYXRjaFB1dE9wZXJhdGlvbiht
X2lkZW50aWZpZXIsIFdURk1vdmUocmVjb3JkcyksIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXShWZWN0b3I8dWludDY0X3Q+JiYsIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVy
cm9yIGVycm9yKSB7CiAgICAgICAgIGlmICghbV9pc1N0b3BwZWQpCi0gICAgICAgICAgICBjYWxs
YmFjayhlcnJvcik7CisgICAgICAgICAgICBjYWxsYmFjayhDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
OjpleGNlcHRpb25JZkFueShlcnJvcikpOwogCiAgICAgICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5
KHRoaXMpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9DYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5oCmluZGV4IDIx
MDk3MzM4MDA3ODNiZGZkM2IyNjYxYzYwMjQ3NDQ0MGNhYTg4ZjkuLjAzNDM2ZDlkMDVkNzQ2ZWE1
ZTRlNWVmY2Q0YmU4ZjE2YmU4M2UyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hl
LmgKQEAgLTY4LDggKzY4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHJldHJpZXZlUmVjb3JkcyhX
VEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgVmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4g
cXVlcnlDYWNoZVdpdGhUYXJnZXRTdG9yYWdlKGNvbnN0IEZldGNoUmVxdWVzdCYsIGNvbnN0IENh
Y2hlUXVlcnlPcHRpb25zJiwgY29uc3QgVmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4mKTsKICAg
ICB2b2lkIHF1ZXJ5Q2FjaGUoUmVmPEZldGNoUmVxdWVzdD4mJiwgQ2FjaGVRdWVyeU9wdGlvbnMm
JiwgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+Jik+
JiYpOwotICAgIHZvaWQgYmF0Y2hEZWxldGVPcGVyYXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0Jiwg
Q2FjaGVRdWVyeU9wdGlvbnMmJiwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgZGlkUmVtb3ZhbCwg
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3IpPiYmKTsKLSAgICB2b2lkIGJhdGNoUHV0T3Bl
cmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIEZldGNoUmVzcG9uc2UmLCBXVEY6OkZ1bmN0aW9u
PHZvaWQoQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGJhdGNo
RGVsZXRlT3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYs
IFdURjo6RnVuY3Rpb248dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT4mJik7CisgICAgdm9pZCBi
YXRjaFB1dE9wZXJhdGlvbihjb25zdCBGZXRjaFJlcXVlc3QmLCBGZXRjaFJlc3BvbnNlJiwgV1RG
OjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKIAogICAgIHZvaWQgdXBk
YXRlUmVjb3JkcyhWZWN0b3I8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6UmVjb3JkPiYmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IGEw
YzI5ZGU5YmQ0MjNiZTVhMjQ0ZDZiZGMxODcxNGUxOGU2ZmM5N2MuLjBjNDg1MWYwYTcxZTlkOWVj
N2ViOTY3OGU1NmRhMzZhOGNiYTdkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0NhY2hlU3RvcmFnZS5jcHAKQEAgLTEwMiw4ICsxMDIsOSBAQCB2b2lkIENhY2hlU3RvcmFn
ZTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZh
Y2U8Q2FjaAogICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgICAgIG1fY29u
bmVjdGlvbi0+b3BlbihvcmlnaW4sIG5hbWUsIFt0aGlzLCBuYW1lLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0odWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpFcnJvciBlcnJvcikgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIW1faXNTdG9wcGVk
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGVycm9yICE9IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246
OkVycm9yOjpOb25lKQotICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uOjpleGNlcHRpb25Gcm9tRXJyb3IoZXJyb3IpKTsKKyAgICAgICAgICAg
ICAgICBhdXRvIGV4Y2VwdGlvbiA9IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNvbnZlcnRFcnJv
ckludG9FeGNlcHRpb24oZXJyb3IpOworICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24pCisg
ICAgICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uLnZhbHVl
KCkpKTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBj
YWNoZSA9IENhY2hlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgU3RyaW5nIHsg
bmFtZSB9LCBjYWNoZUlkZW50aWZpZXIsIG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpOwogICAgICAg
ICAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoY2FjaGUpOwpAQCAtMTMwLDEyICsxMzEsOSBA
QCB2b2lkIENhY2hlU3RvcmFnZTo6cmVtb3ZlKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlz
ZURlZmVycmVkPElETEJvb2xlYW4+JiYgcAogICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhp
cyk7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlKG1fY2FjaGVzW3Bvc2l0aW9uXS0+aWRl
bnRpZmllcigpLCBbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3IgZXJyb3Ip
IG11dGFibGUgewogICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGNhY2hlSWRlbnRpZmllcik7Ci0g
ICAgICAgICAgICBpZiAoIW1faXNTdG9wcGVkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGVycm9y
ICE9IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yOjpOb25lKQotICAgICAgICAgICAgICAg
ICAgICBwcm9taXNlLnJlamVjdChDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpleGNlcHRpb25Gcm9t
RXJyb3IoZXJyb3IpKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IHByb21pc2UucmVzb2x2ZSh0cnVlKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgh
bV9pc1N0b3BwZWQpCisgICAgICAgICAgICAgICAgcHJvbWlzZS5zZXR0bGUoQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbjo6ZXhjZXB0aW9uT3JSZXN1bHQodHJ1ZSwgZXJyb3IpKTsKKwogICAgICAgICAg
ICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgICAgIH0pOwogICAgICAgICBtX2Nh
Y2hlcy5yZW1vdmUocG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZjQ0ZjllNDE3ZDQzY2Fl
ZjNiMjI5MzllMzIzMmQ5ZmFkYWM1ZDBiMS4uYjRiZjRjNTQwY2ZkNWJiMzc4NDdmOWZmZTZlZjhi
NGY4ZDM2ZTU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0zMywxNiArMzMsMTUgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1FeGNlcHRpb24gQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0
aW9uRnJvbUVycm9yKEVycm9yIGVycm9yKQorc3RkOjpvcHRpb25hbDxFeGNlcHRpb24+IENhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OmNvbnZlcnRFcnJvckludG9FeGNlcHRpb24oRXJyb3IgZXJyb3Ip
CiB7Ci0gICAgQVNTRVJUKGVycm9yICE9IEVycm9yOjpOb25lKTsKLQogICAgIHN3aXRjaCAoZXJy
b3IpIHsKICAgICBjYXNlIEVycm9yOjpOb3RJbXBsZW1lbnRlZDoKICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk5vdCBpbXBsZW1lbnRl
ZCIpIH07Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgQVNDSUlMaXRlcmFsKCJVbmtub3duIGVycm9yIikgfTsKKyAgICBjYXNlIEVycm9yOjpOb25l
OgorICAgICAgICBGQUxMVEhST1VHSDsKICAgICB9OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiB9CiAKIGJvb2wgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cXVlcnlDYWNoZU1hdGNoKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBjYWNoZWRS
ZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBjYWNoZWRSZXNwb25zZSwgY29uc3QgQ2Fj
aGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDIzZWQzZTU4OGE4M2Q1MmY4
Y2I2MDRlM2U3NDFmYTVjMjA4ZmI0YjguLjE1ZjYwOGI2MDgyMmFjOWU4MmE2NDlhZGM0Njk2YjZi
NmU1ZjRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Niw5ICs0NiwyNSBAQCBwdWJsaWM6CiAgICAgICAg
IE5vdEltcGxlbWVudGVkLAogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9v
bCBxdWVyeUNhY2hlTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIGNhY2hlZFJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4Y2Vw
dGlvbj4gY29udmVydEVycm9ySW50b0V4Y2VwdGlvbihFcnJvcik7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFQ+IGV4Y2VwdGlvbk9yUmVzdWx0KFQmJiB2YWx1
ZSwgRXJyb3IgZXJyb3IpCisgICAgeworICAgICAgICBhdXRvIGV4Y2VwdGlvbiA9IGNvbnZlcnRF
cnJvckludG9FeGNlcHRpb24oZXJyb3IpOworICAgICAgICBpZiAoZXhjZXB0aW9uKQorICAgICAg
ICAgICAgcmV0dXJuIFdURk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpOworICAgICAgICByZXR1cm4g
V1RGTW92ZSh2YWx1ZSk7CisgICAgfQorCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IGV4
Y2VwdGlvbklmQW55KEVycm9yIGVycm9yKQorICAgIHsKKyAgICAgICAgYXV0byBleGNlcHRpb24g
PSBjb252ZXJ0RXJyb3JJbnRvRXhjZXB0aW9uKGVycm9yKTsKKyAgICAgICAgaWYgKGV4Y2VwdGlv
bikKKyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKTsKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICB9CisKIAotICAgIHN0YXRpYyBFeGNlcHRpb24gZXhjZXB0aW9u
RnJvbUVycm9yKEVycm9yKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBxdWVyeUNh
Y2hlTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIGNhY2hlZFJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBDYWNo
ZVF1ZXJ5T3B0aW9ucyYpOwogCiAgICAgc3RydWN0IFJlY29yZCB7CiAgICAgICAgIHVpbnQ2NF90
IGlkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVByb21pc2VEZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9t
aXNlRGVmZXJyZWQuaAppbmRleCAzNjk5NmNkNzA1YzAzZWQ4N2VjZjUyN2M0NGUyYmMyNjM4MTdi
NWViLi5mYjZjZGY1MzhiODBiYmY3ZjQ3ZDRjZWEyNGM5NWJiZmM0ZmU4YTNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgog
I2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgogI2luY2x1ZGUgIkpTRE9NR3VhcmRlZE9iamVjdC5o
IgogI2luY2x1ZGUgPHJ1bnRpbWUvQ2F0Y2hTY29wZS5oPgpAQCAtMjExLDYgKzIxMiwxNSBAQCBw
dWJsaWM6CiAgICAgeyAKICAgICAgICAgbV9wcm9taXNlRGVmZXJyZWQtPnJlc29sdmU8SURMVHlw
ZT4oc3RkOjpmb3J3YXJkPHR5cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5cGU+KHZhbHVlKSk7
CiAgICAgfQorCisgICAgdm9pZCBzZXR0bGUoRXhjZXB0aW9uT3I8dHlwZW5hbWUgSURMVHlwZTo6
UGFyYW1ldGVyVHlwZT4mJiByZXN1bHQpCisgICAgeworICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKSB7CisgICAgICAgICAgICByZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24o
KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgcmVzb2x2ZShyZXN1
bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgIH0KIH07CiAKIHRlbXBsYXRlPD4gY2xhc3Mg
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+IDogcHVibGljIERPTVByb21pc2VEZWZlcnJlZEJhc2Ug
ewpAQCAtMjI0LDYgKzIzNCwxNSBAQCBwdWJsaWM6CiAgICAgeyAKICAgICAgICAgbV9wcm9taXNl
RGVmZXJyZWQtPnJlc29sdmUoKTsKICAgICB9CisKKyAgICB2b2lkIHNldHRsZShFeGNlcHRpb25P
cjx2b2lkPiYmIHJlc3VsdCkKKyAgICB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpIHsKKyAgICAgICAgICAgIHJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICByZXNvbHZlKCk7CisgICAgfQog
fTsKIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318274</attachid>
            <date>2017-08-16 10:55:12 -0700</date>
            <delta_ts>2017-08-16 10:58:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175603-20170816105511.patch</filename>
            <type>text/plain</type>
            <size>12673</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhjN2EwNDQ4ODMwYzdl
YjQyYTBkNzFiMzNkNWViMWZjYzJkNTIyMi4uNmQ3NmRmNzE2NThkMjMzN2VhMjdmYTVjZjhkYmI4
YTEyMjYwYjY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE3LTA4LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBET01Qcm9taXNl
RGVmZXJyZWQgbWV0aG9kIHRvIGhhbmRsZSBFeGNlcHRpb25Pcjw+IHJlc3VsdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTYwMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhh
dmlvci4KKworICAgICAgICBJbnRyb2R1Y2UgRE9NUHJvbWlzZURlZmVycmVkOjpzZXR0bGUgdG8g
cmVqZWN0L3Jlc29sdmUgYSBwcm9taXNlIHdpdGggYW4gRXhjZXB0aW9uT3I8Pi4KKyAgICAgICAg
TWFraW5nIGJhdGNoUHV0T3BlcmF0aW9uL2JhdGNoRGVsZXRlT3BlcmF0aW9uIHRha2UgYSBGdW5j
dGlvbiB3aXRoIGFuIEV4Y2VwdGlvbk9yPD4uCisgICAgICAgIFVzaW5nIERPTVByb21pc2VEZWZl
cnJlZDo6c2V0dGxlIGluIENhY2hlIHB1dC9yZW1vdmUuCisgICAgICAgIFVwZGF0ZWQgQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbiB0byBjcmVhdGUgRXhjZXB0aW9uT3I8PiBmcm9tIENhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OkVycm9yLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZTo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGU6OmJhdGNoRGVsZXRlT3BlcmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjpiYXRjaFB1dE9wZXJhdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9jYWNoZS9DYWNoZS5oOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGVT
dG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlU3RvcmFnZTo6b3Blbik6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZVN0b3JhZ2U6OnJlbW92ZSk6CisgICAgICAgICogTW9kdWxlcy9j
YWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OmNvbnZlcnRFcnJvckludG9FeGNlcHRpb24pOgorICAgICAgICAq
IE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uT3JSZXN1bHQpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uSWZBbnkpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmg6CisgICAgICAgIChXZWJDb3Jl
OjpET01Qcm9taXNlRGVmZXJyZWQ6OnNldHRsZSk6CisgICAgICAgIChXZWJDb3JlOjpET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD46OnNldHRsZSk6CisKIDIwMTctMDgtMTYgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgZmlyc3QtbGV0dGVyIHJlbmRlcmVy
IG11dGF0aW9uIGNvZGUgb3V0IG9mIFJlbmRlckJsb2NrIGFuZCBpbnRvIFJlbmRlclRyZWVVcGRh
dGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGUuY3BwCmluZGV4IDM3ZWU4NThmMzdk
Mzg1YzI3ZGI1ZDVkNDliMzQ5YmQ1ZGRhY2JkZGEuLmFmOTlhZjBkODI0MmM2YmYyZmNkZmE4OTRk
NGVhZjhhNjc3ZmNhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUv
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGUuY3BwCkBA
IC0xNzIsMTIgKzE3Miw4IEBAIHZvaWQgQ2FjaGU6OnB1dChSZXF1ZXN0SW5mbyYmIGluZm8sIFJl
ZjxGZXRjaFJlc3BvbnNlPiYmIHJlc3BvbnNlLCBET01Qcm9taXNlRGVmCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBiYXRjaFB1dE9wZXJhdGlvbigqcmVxdWVzdCwgcmVzcG9uc2UuZ2V0
KCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
RXJyb3IgZXJyb3IpIG11dGFibGUgewotICAgICAgICBpZiAoZXJyb3IgIT0gQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbjo6RXJyb3I6Ok5vbmUpIHsKLSAgICAgICAgICAgIHByb21pc2UucmVqZWN0KENh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OmV4Y2VwdGlvbkZyb21FcnJvcihlcnJvcikpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAg
IGJhdGNoUHV0T3BlcmF0aW9uKCpyZXF1ZXN0LCByZXNwb25zZS5nZXQoKSwgW3Byb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CiAgICAgfSk7CiB9CiAKQEAg
LTE5NiwxMiArMTkyLDggQEAgdm9pZCBDYWNoZTo6cmVtb3ZlKFJlcXVlc3RJbmZvJiYgaW5mbywg
Q2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBET01Qcm9taXNlRGUKICAgICAgICAgcmVxdWVz
dCA9IEZldGNoUmVxdWVzdDo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFdURk1v
dmUoaW5mbyksIHsgfSkucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgfQogCi0gICAgYmF0Y2hE
ZWxldGVPcGVyYXRpb24oKnJlcXVlc3QsIFdURk1vdmUob3B0aW9ucyksIFtwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYm9vbCBkaWREZWxldGUsIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVy
cm9yIGVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGVycm9yICE9ICBDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uOjpFcnJvcjo6Tm9uZSkgewotICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uRnJvbUVycm9yKGVycm9yKSk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGRpZERlbGV0
ZSk7CisgICAgYmF0Y2hEZWxldGVPcGVyYXRpb24oKnJlcXVlc3QsIFdURk1vdmUob3B0aW9ucyks
IFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8Ym9vbD4mJiByZXN1bHQp
IG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwogICAg
IH0pOwogfQogCkBAIC0yODAsMTYgKzI3MiwxMyBAQCBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3Jk
PiBDYWNoZTo6cXVlcnlDYWNoZVdpdGhUYXJnZXRTdG9yYWdlKGNvbnN0IEZldGNoUmVxdWVzdAog
ICAgIHJldHVybiByZWNvcmRzOwogfQogCi12b2lkIENhY2hlOjpiYXRjaERlbGV0ZU9wZXJhdGlv
bihjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9u
cywgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgZGlkUmVtb3ZhbCwgQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbjo6RXJyb3IgZXJyb3IpPiYmIGNhbGxiYWNrKQordm9pZCBDYWNoZTo6YmF0Y2hEZWxldGVP
cGVyYXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBDYWNoZVF1ZXJ5T3B0aW9ucyYm
IG9wdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT4mJiBjYWxs
YmFjaykKIHsKICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgbV9jb25uZWN0aW9u
LT5iYXRjaERlbGV0ZU9wZXJhdGlvbihtX2lkZW50aWZpZXIsIHJlcXVlc3QuaW50ZXJuYWxSZXF1
ZXN0KCksIFdURk1vdmUob3B0aW9ucyksIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXShWZWN0b3I8dWludDY0X3Q+JiYgcmVjb3JkcywgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
RXJyb3IgZXJyb3IpIHsKLSAgICAgICAgaWYgKCFtX2lzU3RvcHBlZCkgewotICAgICAgICAgICAg
aWYgKGVycm9yID09IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yOjpOb25lKQotICAgICAg
ICAgICAgICAgIG1fcmVjb3Jkcy5yZW1vdmVBbGxNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgaXRl
bSkgeyByZXR1cm4gcmVjb3Jkcy5jb250YWlucyhpdGVtLmlkZW50aWZpZXIpOyB9KTsKKyAgICAg
ICAgaWYgKCFtX2lzU3RvcHBlZCkKKyAgICAgICAgICAgIGNhbGxiYWNrKENhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmV4Y2VwdGlvbk9yUmVzdWx0KCFyZWNvcmRzLmlzRW1wdHkoKSwgZXJyb3IpKTsK
IAotICAgICAgICAgICAgY2FsbGJhY2soIXJlY29yZHMuaXNFbXB0eSgpLCBlcnJvcik7Ci0gICAg
ICAgIH0KICAgICAgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgfSk7CiB9CkBA
IC0zMTAsNyArMjk5LDcgQEAgc3RhdGljIGlubGluZSBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpS
ZWNvcmQgdG9Db25uZWN0aW9uUmVjb3JkKGNvbnN0IEZldGNoUmVxdWUKICAgICB9OwogfQogCi12
b2lkIENhY2hlOjpiYXRjaFB1dE9wZXJhdGlvbihjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVlc3Qs
IEZldGNoUmVzcG9uc2UmIHJlc3BvbnNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbjo6RXJyb3IpPiYmIGNhbGxiYWNrKQordm9pZCBDYWNoZTo6YmF0Y2hQdXRPcGVy
YXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBGZXRjaFJlc3BvbnNlJiByZXNwb25z
ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNhbGxiYWNrKQog
ewogICAgIFZlY3RvcjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpSZWNvcmQ+IHJlY29yZHM7CiAg
ICAgcmVjb3Jkcy5hcHBlbmQodG9Db25uZWN0aW9uUmVjb3JkKHJlcXVlc3QsIHJlc3BvbnNlKSk7
CkBAIC0zMTgsNyArMzA3LDcgQEAgdm9pZCBDYWNoZTo6YmF0Y2hQdXRPcGVyYXRpb24oY29uc3Qg
RmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBGZXRjaFJlc3BvbnNlJiByZXNwb24KICAgICBzZXRQZW5k
aW5nQWN0aXZpdHkodGhpcyk7CiAgICAgbV9jb25uZWN0aW9uLT5iYXRjaFB1dE9wZXJhdGlvbiht
X2lkZW50aWZpZXIsIFdURk1vdmUocmVjb3JkcyksIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXShWZWN0b3I8dWludDY0X3Q+JiYsIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVy
cm9yIGVycm9yKSB7CiAgICAgICAgIGlmICghbV9pc1N0b3BwZWQpCi0gICAgICAgICAgICBjYWxs
YmFjayhlcnJvcik7CisgICAgICAgICAgICBjYWxsYmFjayhDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
OjpleGNlcHRpb25JZkFueShlcnJvcikpOwogCiAgICAgICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5
KHRoaXMpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9DYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5oCmluZGV4IDIx
MDk3MzM4MDA3ODNiZGZkM2IyNjYxYzYwMjQ3NDQ0MGNhYTg4ZjkuLjAzNDM2ZDlkMDVkNzQ2ZWE1
ZTRlNWVmY2Q0YmU4ZjE2YmU4M2UyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hl
LmgKQEAgLTY4LDggKzY4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHJldHJpZXZlUmVjb3JkcyhX
VEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgVmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4g
cXVlcnlDYWNoZVdpdGhUYXJnZXRTdG9yYWdlKGNvbnN0IEZldGNoUmVxdWVzdCYsIGNvbnN0IENh
Y2hlUXVlcnlPcHRpb25zJiwgY29uc3QgVmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4mKTsKICAg
ICB2b2lkIHF1ZXJ5Q2FjaGUoUmVmPEZldGNoUmVxdWVzdD4mJiwgQ2FjaGVRdWVyeU9wdGlvbnMm
JiwgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+Jik+
JiYpOwotICAgIHZvaWQgYmF0Y2hEZWxldGVPcGVyYXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0Jiwg
Q2FjaGVRdWVyeU9wdGlvbnMmJiwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgZGlkUmVtb3ZhbCwg
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3IpPiYmKTsKLSAgICB2b2lkIGJhdGNoUHV0T3Bl
cmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIEZldGNoUmVzcG9uc2UmLCBXVEY6OkZ1bmN0aW9u
PHZvaWQoQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGJhdGNo
RGVsZXRlT3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYs
IFdURjo6RnVuY3Rpb248dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT4mJik7CisgICAgdm9pZCBi
YXRjaFB1dE9wZXJhdGlvbihjb25zdCBGZXRjaFJlcXVlc3QmLCBGZXRjaFJlc3BvbnNlJiwgV1RG
OjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKIAogICAgIHZvaWQgdXBk
YXRlUmVjb3JkcyhWZWN0b3I8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6UmVjb3JkPiYmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IGEw
YzI5ZGU5YmQ0MjNiZTVhMjQ0ZDZiZGMxODcxNGUxOGU2ZmM5N2MuLjBjNDg1MWYwYTcxZTlkOWVj
N2ViOTY3OGU1NmRhMzZhOGNiYTdkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0NhY2hlU3RvcmFnZS5jcHAKQEAgLTEwMiw4ICsxMDIsOSBAQCB2b2lkIENhY2hlU3RvcmFn
ZTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZh
Y2U8Q2FjaAogICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgICAgIG1fY29u
bmVjdGlvbi0+b3BlbihvcmlnaW4sIG5hbWUsIFt0aGlzLCBuYW1lLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0odWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpFcnJvciBlcnJvcikgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIW1faXNTdG9wcGVk
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGVycm9yICE9IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246
OkVycm9yOjpOb25lKQotICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uOjpleGNlcHRpb25Gcm9tRXJyb3IoZXJyb3IpKTsKKyAgICAgICAgICAg
ICAgICBhdXRvIGV4Y2VwdGlvbiA9IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNvbnZlcnRFcnJv
ckludG9FeGNlcHRpb24oZXJyb3IpOworICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24pCisg
ICAgICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uLnZhbHVl
KCkpKTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBj
YWNoZSA9IENhY2hlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgU3RyaW5nIHsg
bmFtZSB9LCBjYWNoZUlkZW50aWZpZXIsIG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpOwogICAgICAg
ICAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoY2FjaGUpOwpAQCAtMTMwLDEyICsxMzEsOSBA
QCB2b2lkIENhY2hlU3RvcmFnZTo6cmVtb3ZlKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlz
ZURlZmVycmVkPElETEJvb2xlYW4+JiYgcAogICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhp
cyk7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlKG1fY2FjaGVzW3Bvc2l0aW9uXS0+aWRl
bnRpZmllcigpLCBbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3IgZXJyb3Ip
IG11dGFibGUgewogICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGNhY2hlSWRlbnRpZmllcik7Ci0g
ICAgICAgICAgICBpZiAoIW1faXNTdG9wcGVkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGVycm9y
ICE9IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yOjpOb25lKQotICAgICAgICAgICAgICAg
ICAgICBwcm9taXNlLnJlamVjdChDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpleGNlcHRpb25Gcm9t
RXJyb3IoZXJyb3IpKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IHByb21pc2UucmVzb2x2ZSh0cnVlKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgh
bV9pc1N0b3BwZWQpCisgICAgICAgICAgICAgICAgcHJvbWlzZS5zZXR0bGUoQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbjo6ZXhjZXB0aW9uT3JSZXN1bHQodHJ1ZSwgZXJyb3IpKTsKKwogICAgICAgICAg
ICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgICAgIH0pOwogICAgICAgICBtX2Nh
Y2hlcy5yZW1vdmUocG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZjQ0ZjllNDE3ZDQzY2Fl
ZjNiMjI5MzllMzIzMmQ5ZmFkYWM1ZDBiMS4uZjRjZjM0ZmQ1MjA0MmRhMTUwN2M3ZTNjNWJlODMy
ZDMwYmM0N2ZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0zMywxNiArMzMsMTYgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1FeGNlcHRpb24gQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0
aW9uRnJvbUVycm9yKEVycm9yIGVycm9yKQorc3RkOjpvcHRpb25hbDxFeGNlcHRpb24+IENhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OmNvbnZlcnRFcnJvckludG9FeGNlcHRpb24oRXJyb3IgZXJyb3Ip
CiB7Ci0gICAgQVNTRVJUKGVycm9yICE9IEVycm9yOjpOb25lKTsKLQorICAgIHN0ZDo6b3B0aW9u
YWw8RXhjZXB0aW9uPiByZXN1bHQ7CiAgICAgc3dpdGNoIChlcnJvcikgewogICAgIGNhc2UgRXJy
b3I6Ok5vdEltcGxlbWVudGVkOgotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9y
dGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm90IGltcGxlbWVudGVkIikgfTsKLSAgICBkZWZhdWx0
OgotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIlVu
a25vd24gZXJyb3IiKSB9OworICAgICAgICByZXN1bHQgPSBFeGNlcHRpb24geyBOb3RTdXBwb3J0
ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJOb3QgaW1wbGVtZW50ZWQiKSB9OworICAgIGNhc2UgRXJy
b3I6Ok5vbmU6CisgICAgICAgIHJlc3VsdCA9IHN0ZDo6bnVsbG9wdDsKICAgICB9OworICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cXVlcnlDYWNo
ZU1hdGNoKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiBjYWNoZWRSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBjYWNoZWRSZXNwb25z
ZSwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDIzZWQz
ZTU4OGE4M2Q1MmY4Y2I2MDRlM2U3NDFmYTVjMjA4ZmI0YjguLjE1ZjYwOGI2MDgyMmFjOWU4MmE2
NDlhZGM0Njk2YjZiNmU1ZjRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Niw5ICs0NiwyNSBAQCBwdWJs
aWM6CiAgICAgICAgIE5vdEltcGxlbWVudGVkLAogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgYm9vbCBxdWVyeUNhY2hlTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGNhY2hlZFJlcXVlc3QsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmLCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYpOworICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEV4Y2VwdGlvbj4gY29udmVydEVycm9ySW50b0V4Y2VwdGlvbihFcnJvcik7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFQ+IGV4Y2VwdGlvbk9yUmVz
dWx0KFQmJiB2YWx1ZSwgRXJyb3IgZXJyb3IpCisgICAgeworICAgICAgICBhdXRvIGV4Y2VwdGlv
biA9IGNvbnZlcnRFcnJvckludG9FeGNlcHRpb24oZXJyb3IpOworICAgICAgICBpZiAoZXhjZXB0
aW9uKQorICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpOworICAg
ICAgICByZXR1cm4gV1RGTW92ZSh2YWx1ZSk7CisgICAgfQorCisgICAgc3RhdGljIEV4Y2VwdGlv
bk9yPHZvaWQ+IGV4Y2VwdGlvbklmQW55KEVycm9yIGVycm9yKQorICAgIHsKKyAgICAgICAgYXV0
byBleGNlcHRpb24gPSBjb252ZXJ0RXJyb3JJbnRvRXhjZXB0aW9uKGVycm9yKTsKKyAgICAgICAg
aWYgKGV4Y2VwdGlvbikKKyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1
ZSgpKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKIAotICAgIHN0YXRpYyBFeGNlcHRp
b24gZXhjZXB0aW9uRnJvbUVycm9yKEVycm9yKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Ym9vbCBxdWVyeUNhY2hlTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIGNhY2hlZFJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYpOwogCiAgICAgc3RydWN0IFJlY29yZCB7CiAgICAg
ICAgIHVpbnQ2NF90IGlkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Qcm9taXNlRGVmZXJyZWQuaAppbmRleCAzNjk5NmNkNzA1YzAzZWQ4N2VjZjUyN2M0
NGUyYmMyNjM4MTdiNWViLi5mYjZjZGY1MzhiODBiYmY3ZjQ3ZDRjZWEyNGM5NWJiZmM0ZmU4YTNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZl
cnJlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVy
cmVkLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJFeGNl
cHRpb25Pci5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgogI2luY2x1ZGUgIkpTRE9NR3Vh
cmRlZE9iamVjdC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvQ2F0Y2hTY29wZS5oPgpAQCAtMjExLDYg
KzIxMiwxNSBAQCBwdWJsaWM6CiAgICAgeyAKICAgICAgICAgbV9wcm9taXNlRGVmZXJyZWQtPnJl
c29sdmU8SURMVHlwZT4oc3RkOjpmb3J3YXJkPHR5cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5
cGU+KHZhbHVlKSk7CiAgICAgfQorCisgICAgdm9pZCBzZXR0bGUoRXhjZXB0aW9uT3I8dHlwZW5h
bWUgSURMVHlwZTo6UGFyYW1ldGVyVHlwZT4mJiByZXN1bHQpCisgICAgeworICAgICAgICBpZiAo
cmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICByZWplY3QocmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
cmVzb2x2ZShyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgIH0KIH07CiAKIHRlbXBs
YXRlPD4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+IDogcHVibGljIERPTVByb21pc2VE
ZWZlcnJlZEJhc2UgewpAQCAtMjI0LDYgKzIzNCwxNSBAQCBwdWJsaWM6CiAgICAgeyAKICAgICAg
ICAgbV9wcm9taXNlRGVmZXJyZWQtPnJlc29sdmUoKTsKICAgICB9CisKKyAgICB2b2lkIHNldHRs
ZShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKKyAgICB7CisgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAgIHJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICByZXNvbHZl
KCk7CisgICAgfQogfTsKIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318275</attachid>
            <date>2017-08-16 10:58:13 -0700</date>
            <delta_ts>2017-08-17 10:29:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175603-20170816105813.patch</filename>
            <type>text/plain</type>
            <size>12705</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhjN2EwNDQ4ODMwYzdl
YjQyYTBkNzFiMzNkNWViMWZjYzJkNTIyMi4uNmQ3NmRmNzE2NThkMjMzN2VhMjdmYTVjZjhkYmI4
YTEyMjYwYjY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE3LTA4LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBET01Qcm9taXNl
RGVmZXJyZWQgbWV0aG9kIHRvIGhhbmRsZSBFeGNlcHRpb25Pcjw+IHJlc3VsdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTYwMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhh
dmlvci4KKworICAgICAgICBJbnRyb2R1Y2UgRE9NUHJvbWlzZURlZmVycmVkOjpzZXR0bGUgdG8g
cmVqZWN0L3Jlc29sdmUgYSBwcm9taXNlIHdpdGggYW4gRXhjZXB0aW9uT3I8Pi4KKyAgICAgICAg
TWFraW5nIGJhdGNoUHV0T3BlcmF0aW9uL2JhdGNoRGVsZXRlT3BlcmF0aW9uIHRha2UgYSBGdW5j
dGlvbiB3aXRoIGFuIEV4Y2VwdGlvbk9yPD4uCisgICAgICAgIFVzaW5nIERPTVByb21pc2VEZWZl
cnJlZDo6c2V0dGxlIGluIENhY2hlIHB1dC9yZW1vdmUuCisgICAgICAgIFVwZGF0ZWQgQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbiB0byBjcmVhdGUgRXhjZXB0aW9uT3I8PiBmcm9tIENhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OkVycm9yLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZTo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGU6OmJhdGNoRGVsZXRlT3BlcmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjpiYXRjaFB1dE9wZXJhdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9jYWNoZS9DYWNoZS5oOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGVT
dG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlU3RvcmFnZTo6b3Blbik6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZVN0b3JhZ2U6OnJlbW92ZSk6CisgICAgICAgICogTW9kdWxlcy9j
YWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OmNvbnZlcnRFcnJvckludG9FeGNlcHRpb24pOgorICAgICAgICAq
IE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uT3JSZXN1bHQpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uSWZBbnkpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmg6CisgICAgICAgIChXZWJDb3Jl
OjpET01Qcm9taXNlRGVmZXJyZWQ6OnNldHRsZSk6CisgICAgICAgIChXZWJDb3JlOjpET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD46OnNldHRsZSk6CisKIDIwMTctMDgtMTYgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgZmlyc3QtbGV0dGVyIHJlbmRlcmVy
IG11dGF0aW9uIGNvZGUgb3V0IG9mIFJlbmRlckJsb2NrIGFuZCBpbnRvIFJlbmRlclRyZWVVcGRh
dGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGUuY3BwCmluZGV4IDM3ZWU4NThmMzdk
Mzg1YzI3ZGI1ZDVkNDliMzQ5YmQ1ZGRhY2JkZGEuLmFmOTlhZjBkODI0MmM2YmYyZmNkZmE4OTRk
NGVhZjhhNjc3ZmNhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUv
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGUuY3BwCkBA
IC0xNzIsMTIgKzE3Miw4IEBAIHZvaWQgQ2FjaGU6OnB1dChSZXF1ZXN0SW5mbyYmIGluZm8sIFJl
ZjxGZXRjaFJlc3BvbnNlPiYmIHJlc3BvbnNlLCBET01Qcm9taXNlRGVmCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBiYXRjaFB1dE9wZXJhdGlvbigqcmVxdWVzdCwgcmVzcG9uc2UuZ2V0
KCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
RXJyb3IgZXJyb3IpIG11dGFibGUgewotICAgICAgICBpZiAoZXJyb3IgIT0gQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbjo6RXJyb3I6Ok5vbmUpIHsKLSAgICAgICAgICAgIHByb21pc2UucmVqZWN0KENh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OmV4Y2VwdGlvbkZyb21FcnJvcihlcnJvcikpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAg
IGJhdGNoUHV0T3BlcmF0aW9uKCpyZXF1ZXN0LCByZXNwb25zZS5nZXQoKSwgW3Byb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CiAgICAgfSk7CiB9CiAKQEAg
LTE5NiwxMiArMTkyLDggQEAgdm9pZCBDYWNoZTo6cmVtb3ZlKFJlcXVlc3RJbmZvJiYgaW5mbywg
Q2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBET01Qcm9taXNlRGUKICAgICAgICAgcmVxdWVz
dCA9IEZldGNoUmVxdWVzdDo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFdURk1v
dmUoaW5mbyksIHsgfSkucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgfQogCi0gICAgYmF0Y2hE
ZWxldGVPcGVyYXRpb24oKnJlcXVlc3QsIFdURk1vdmUob3B0aW9ucyksIFtwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYm9vbCBkaWREZWxldGUsIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVy
cm9yIGVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGVycm9yICE9ICBDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uOjpFcnJvcjo6Tm9uZSkgewotICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uRnJvbUVycm9yKGVycm9yKSk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGRpZERlbGV0
ZSk7CisgICAgYmF0Y2hEZWxldGVPcGVyYXRpb24oKnJlcXVlc3QsIFdURk1vdmUob3B0aW9ucyks
IFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8Ym9vbD4mJiByZXN1bHQp
IG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwogICAg
IH0pOwogfQogCkBAIC0yODAsMTYgKzI3MiwxMyBAQCBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3Jk
PiBDYWNoZTo6cXVlcnlDYWNoZVdpdGhUYXJnZXRTdG9yYWdlKGNvbnN0IEZldGNoUmVxdWVzdAog
ICAgIHJldHVybiByZWNvcmRzOwogfQogCi12b2lkIENhY2hlOjpiYXRjaERlbGV0ZU9wZXJhdGlv
bihjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9u
cywgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgZGlkUmVtb3ZhbCwgQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbjo6RXJyb3IgZXJyb3IpPiYmIGNhbGxiYWNrKQordm9pZCBDYWNoZTo6YmF0Y2hEZWxldGVP
cGVyYXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBDYWNoZVF1ZXJ5T3B0aW9ucyYm
IG9wdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT4mJiBjYWxs
YmFjaykKIHsKICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgbV9jb25uZWN0aW9u
LT5iYXRjaERlbGV0ZU9wZXJhdGlvbihtX2lkZW50aWZpZXIsIHJlcXVlc3QuaW50ZXJuYWxSZXF1
ZXN0KCksIFdURk1vdmUob3B0aW9ucyksIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXShWZWN0b3I8dWludDY0X3Q+JiYgcmVjb3JkcywgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
RXJyb3IgZXJyb3IpIHsKLSAgICAgICAgaWYgKCFtX2lzU3RvcHBlZCkgewotICAgICAgICAgICAg
aWYgKGVycm9yID09IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yOjpOb25lKQotICAgICAg
ICAgICAgICAgIG1fcmVjb3Jkcy5yZW1vdmVBbGxNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgaXRl
bSkgeyByZXR1cm4gcmVjb3Jkcy5jb250YWlucyhpdGVtLmlkZW50aWZpZXIpOyB9KTsKKyAgICAg
ICAgaWYgKCFtX2lzU3RvcHBlZCkKKyAgICAgICAgICAgIGNhbGxiYWNrKENhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmV4Y2VwdGlvbk9yUmVzdWx0KCFyZWNvcmRzLmlzRW1wdHkoKSwgZXJyb3IpKTsK
IAotICAgICAgICAgICAgY2FsbGJhY2soIXJlY29yZHMuaXNFbXB0eSgpLCBlcnJvcik7Ci0gICAg
ICAgIH0KICAgICAgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgfSk7CiB9CkBA
IC0zMTAsNyArMjk5LDcgQEAgc3RhdGljIGlubGluZSBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpS
ZWNvcmQgdG9Db25uZWN0aW9uUmVjb3JkKGNvbnN0IEZldGNoUmVxdWUKICAgICB9OwogfQogCi12
b2lkIENhY2hlOjpiYXRjaFB1dE9wZXJhdGlvbihjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVlc3Qs
IEZldGNoUmVzcG9uc2UmIHJlc3BvbnNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbjo6RXJyb3IpPiYmIGNhbGxiYWNrKQordm9pZCBDYWNoZTo6YmF0Y2hQdXRPcGVy
YXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBGZXRjaFJlc3BvbnNlJiByZXNwb25z
ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNhbGxiYWNrKQog
ewogICAgIFZlY3RvcjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpSZWNvcmQ+IHJlY29yZHM7CiAg
ICAgcmVjb3Jkcy5hcHBlbmQodG9Db25uZWN0aW9uUmVjb3JkKHJlcXVlc3QsIHJlc3BvbnNlKSk7
CkBAIC0zMTgsNyArMzA3LDcgQEAgdm9pZCBDYWNoZTo6YmF0Y2hQdXRPcGVyYXRpb24oY29uc3Qg
RmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBGZXRjaFJlc3BvbnNlJiByZXNwb24KICAgICBzZXRQZW5k
aW5nQWN0aXZpdHkodGhpcyk7CiAgICAgbV9jb25uZWN0aW9uLT5iYXRjaFB1dE9wZXJhdGlvbiht
X2lkZW50aWZpZXIsIFdURk1vdmUocmVjb3JkcyksIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXShWZWN0b3I8dWludDY0X3Q+JiYsIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVy
cm9yIGVycm9yKSB7CiAgICAgICAgIGlmICghbV9pc1N0b3BwZWQpCi0gICAgICAgICAgICBjYWxs
YmFjayhlcnJvcik7CisgICAgICAgICAgICBjYWxsYmFjayhDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
OjpleGNlcHRpb25JZkFueShlcnJvcikpOwogCiAgICAgICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5
KHRoaXMpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9DYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5oCmluZGV4IDIx
MDk3MzM4MDA3ODNiZGZkM2IyNjYxYzYwMjQ3NDQ0MGNhYTg4ZjkuLjAzNDM2ZDlkMDVkNzQ2ZWE1
ZTRlNWVmY2Q0YmU4ZjE2YmU4M2UyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hl
LmgKQEAgLTY4LDggKzY4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHJldHJpZXZlUmVjb3JkcyhX
VEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgVmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4g
cXVlcnlDYWNoZVdpdGhUYXJnZXRTdG9yYWdlKGNvbnN0IEZldGNoUmVxdWVzdCYsIGNvbnN0IENh
Y2hlUXVlcnlPcHRpb25zJiwgY29uc3QgVmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4mKTsKICAg
ICB2b2lkIHF1ZXJ5Q2FjaGUoUmVmPEZldGNoUmVxdWVzdD4mJiwgQ2FjaGVRdWVyeU9wdGlvbnMm
JiwgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+Jik+
JiYpOwotICAgIHZvaWQgYmF0Y2hEZWxldGVPcGVyYXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0Jiwg
Q2FjaGVRdWVyeU9wdGlvbnMmJiwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgZGlkUmVtb3ZhbCwg
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3IpPiYmKTsKLSAgICB2b2lkIGJhdGNoUHV0T3Bl
cmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIEZldGNoUmVzcG9uc2UmLCBXVEY6OkZ1bmN0aW9u
PHZvaWQoQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGJhdGNo
RGVsZXRlT3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYs
IFdURjo6RnVuY3Rpb248dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT4mJik7CisgICAgdm9pZCBi
YXRjaFB1dE9wZXJhdGlvbihjb25zdCBGZXRjaFJlcXVlc3QmLCBGZXRjaFJlc3BvbnNlJiwgV1RG
OjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKIAogICAgIHZvaWQgdXBk
YXRlUmVjb3JkcyhWZWN0b3I8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6UmVjb3JkPiYmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IGEw
YzI5ZGU5YmQ0MjNiZTVhMjQ0ZDZiZGMxODcxNGUxOGU2ZmM5N2MuLjBjNDg1MWYwYTcxZTlkOWVj
N2ViOTY3OGU1NmRhMzZhOGNiYTdkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0NhY2hlU3RvcmFnZS5jcHAKQEAgLTEwMiw4ICsxMDIsOSBAQCB2b2lkIENhY2hlU3RvcmFn
ZTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZh
Y2U8Q2FjaAogICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgICAgIG1fY29u
bmVjdGlvbi0+b3BlbihvcmlnaW4sIG5hbWUsIFt0aGlzLCBuYW1lLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0odWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpFcnJvciBlcnJvcikgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIW1faXNTdG9wcGVk
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGVycm9yICE9IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246
OkVycm9yOjpOb25lKQotICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uOjpleGNlcHRpb25Gcm9tRXJyb3IoZXJyb3IpKTsKKyAgICAgICAgICAg
ICAgICBhdXRvIGV4Y2VwdGlvbiA9IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNvbnZlcnRFcnJv
ckludG9FeGNlcHRpb24oZXJyb3IpOworICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24pCisg
ICAgICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uLnZhbHVl
KCkpKTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBj
YWNoZSA9IENhY2hlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgU3RyaW5nIHsg
bmFtZSB9LCBjYWNoZUlkZW50aWZpZXIsIG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpOwogICAgICAg
ICAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoY2FjaGUpOwpAQCAtMTMwLDEyICsxMzEsOSBA
QCB2b2lkIENhY2hlU3RvcmFnZTo6cmVtb3ZlKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlz
ZURlZmVycmVkPElETEJvb2xlYW4+JiYgcAogICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhp
cyk7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlKG1fY2FjaGVzW3Bvc2l0aW9uXS0+aWRl
bnRpZmllcigpLCBbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3IgZXJyb3Ip
IG11dGFibGUgewogICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGNhY2hlSWRlbnRpZmllcik7Ci0g
ICAgICAgICAgICBpZiAoIW1faXNTdG9wcGVkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGVycm9y
ICE9IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yOjpOb25lKQotICAgICAgICAgICAgICAg
ICAgICBwcm9taXNlLnJlamVjdChDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpleGNlcHRpb25Gcm9t
RXJyb3IoZXJyb3IpKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IHByb21pc2UucmVzb2x2ZSh0cnVlKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgh
bV9pc1N0b3BwZWQpCisgICAgICAgICAgICAgICAgcHJvbWlzZS5zZXR0bGUoQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbjo6ZXhjZXB0aW9uT3JSZXN1bHQodHJ1ZSwgZXJyb3IpKTsKKwogICAgICAgICAg
ICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgICAgIH0pOwogICAgICAgICBtX2Nh
Y2hlcy5yZW1vdmUocG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZjQ0ZjllNDE3ZDQzY2Fl
ZjNiMjI5MzllMzIzMmQ5ZmFkYWM1ZDBiMS4uOTQwMmZmMjA5ZGY5NjMwZWU0M2ZkNzZmY2Y1YjNm
YThkOTgzZDYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0zMywxNiArMzMsMTggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1FeGNlcHRpb24gQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0
aW9uRnJvbUVycm9yKEVycm9yIGVycm9yKQorc3RkOjpvcHRpb25hbDxFeGNlcHRpb24+IENhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OmNvbnZlcnRFcnJvckludG9FeGNlcHRpb24oRXJyb3IgZXJyb3Ip
CiB7Ci0gICAgQVNTRVJUKGVycm9yICE9IEVycm9yOjpOb25lKTsKLQorICAgIHN0ZDo6b3B0aW9u
YWw8RXhjZXB0aW9uPiByZXN1bHQ7CiAgICAgc3dpdGNoIChlcnJvcikgewogICAgIGNhc2UgRXJy
b3I6Ok5vdEltcGxlbWVudGVkOgotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9y
dGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm90IGltcGxlbWVudGVkIikgfTsKLSAgICBkZWZhdWx0
OgotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIlVu
a25vd24gZXJyb3IiKSB9OworICAgICAgICByZXN1bHQgPSBFeGNlcHRpb24geyBOb3RTdXBwb3J0
ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJOb3QgaW1wbGVtZW50ZWQiKSB9OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEVycm9yOjpOb25lOgorICAgICAgICByZXN1bHQgPSBzdGQ6Om51bGxvcHQ7
CisgICAgICAgIGJyZWFrOwogICAgIH07CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpxdWVyeUNhY2hlTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGNhY2hlZFJlcXVlc3QsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIGNhY2hlZFJlc3BvbnNlLCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9u
cyYgb3B0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggMjNlZDNlNTg4YTgzZDUyZjhjYjYwNGUzZTc0MWZh
NWMyMDhmYjRiOC4uMTVmNjA4YjYwODIyYWM5ZTgyYTY0OWFkYzQ2OTZiNmI2ZTVmNGI5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmgKQEAgLTQ2LDkgKzQ2LDI1IEBAIHB1YmxpYzoKICAgICAgICAgTm90SW1wbGVtZW50
ZWQsCiAgICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHF1ZXJ5Q2FjaGVN
YXRjaChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgY2FjaGVkUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IENhY2hlUXVl
cnlPcHRpb25zJik7CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uPiBjb252ZXJ0
RXJyb3JJbnRvRXhjZXB0aW9uKEVycm9yKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0
aWMgRXhjZXB0aW9uT3I8VD4gZXhjZXB0aW9uT3JSZXN1bHQoVCYmIHZhbHVlLCBFcnJvciBlcnJv
cikKKyAgICB7CisgICAgICAgIGF1dG8gZXhjZXB0aW9uID0gY29udmVydEVycm9ySW50b0V4Y2Vw
dGlvbihlcnJvcik7CisgICAgICAgIGlmIChleGNlcHRpb24pCisgICAgICAgICAgICByZXR1cm4g
V1RGTW92ZShleGNlcHRpb24udmFsdWUoKSk7CisgICAgICAgIHJldHVybiBXVEZNb3ZlKHZhbHVl
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gZXhjZXB0aW9uSWZBbnko
RXJyb3IgZXJyb3IpCisgICAgeworICAgICAgICBhdXRvIGV4Y2VwdGlvbiA9IGNvbnZlcnRFcnJv
ckludG9FeGNlcHRpb24oZXJyb3IpOworICAgICAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICAg
ICAgcmV0dXJuIFdURk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpOworICAgICAgICByZXR1cm4geyB9
OworICAgIH0KKwogCi0gICAgc3RhdGljIEV4Y2VwdGlvbiBleGNlcHRpb25Gcm9tRXJyb3IoRXJy
b3IpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHF1ZXJ5Q2FjaGVNYXRjaChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgY2FjaGVk
UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25z
Jik7CiAKICAgICBzdHJ1Y3QgUmVjb3JkIHsKICAgICAgICAgdWludDY0X3QgaWRlbnRpZmllcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVy
cmVkLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5o
CmluZGV4IDM2OTk2Y2Q3MDVjMDNlZDg3ZWNmNTI3YzQ0ZTJiYzI2MzgxN2I1ZWIuLmZiNmNkZjUz
OGI4MGJiZjdmNDdkNGNlYTI0Yzk1YmJmYzRmZThhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaApAQCAtMjUsNiArMjUsNyBAQAog
CiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0LmgiCiAjaW5jbHVkZSAiSlNET01HdWFyZGVkT2JqZWN0LmgiCiAjaW5jbHVkZSA8
cnVudGltZS9DYXRjaFNjb3BlLmg+CkBAIC0yMTEsNiArMjEyLDE1IEBAIHB1YmxpYzoKICAgICB7
IAogICAgICAgICBtX3Byb21pc2VEZWZlcnJlZC0+cmVzb2x2ZTxJRExUeXBlPihzdGQ6OmZvcndh
cmQ8dHlwZW5hbWUgSURMVHlwZTo6UGFyYW1ldGVyVHlwZT4odmFsdWUpKTsKICAgICB9CisKKyAg
ICB2b2lkIHNldHRsZShFeGNlcHRpb25Pcjx0eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBl
PiYmIHJlc3VsdCkKKyAgICB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsK
KyAgICAgICAgICAgIHJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICByZXNvbHZlKHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKSk7CisgICAgfQogfTsKIAogdGVtcGxhdGU8PiBjbGFzcyBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4gOiBwdWJsaWMgRE9NUHJvbWlzZURlZmVycmVkQmFzZSB7CkBAIC0yMjQsNiAr
MjM0LDE1IEBAIHB1YmxpYzoKICAgICB7IAogICAgICAgICBtX3Byb21pc2VEZWZlcnJlZC0+cmVz
b2x2ZSgpOwogICAgIH0KKworICAgIHZvaWQgc2V0dGxlKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVz
dWx0KQorICAgIHsKKyAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAg
ICAgICAgcmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIHJlc29sdmUoKTsKKyAgICB9CiB9OwogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318378</attachid>
            <date>2017-08-17 10:29:23 -0700</date>
            <delta_ts>2017-08-17 11:07:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-175603-20170817102922.patch</filename>
            <type>text/plain</type>
            <size>12336</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGFmY2Q0MjUwNTZkYzgw
Y2RmOWQyMDA2MTE5NzBhM2ZhMzIyODlkZS4uOTRhOTYxMmEzMzhmNjg5MWE1ZTE5MWRmZjFmMWIz
ZTIzNGUyNjM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE3LTA4LTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgYSBET01Qcm9taXNl
RGVmZXJyZWQgbWV0aG9kIHRvIGhhbmRsZSBFeGNlcHRpb25Pcjw+IHJlc3VsdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTYwMworCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlv
ci4KKworICAgICAgICBJbnRyb2R1Y2UgRE9NUHJvbWlzZURlZmVycmVkOjpzZXR0bGUgdG8gcmVq
ZWN0L3Jlc29sdmUgYSBwcm9taXNlIHdpdGggYW4gRXhjZXB0aW9uT3I8Pi4KKyAgICAgICAgTWFr
aW5nIGJhdGNoUHV0T3BlcmF0aW9uL2JhdGNoRGVsZXRlT3BlcmF0aW9uIHRha2UgYSBGdW5jdGlv
biB3aXRoIGFuIEV4Y2VwdGlvbk9yPD4uCisgICAgICAgIFVzaW5nIERPTVByb21pc2VEZWZlcnJl
ZDo6c2V0dGxlIGluIENhY2hlIHB1dC9yZW1vdmUuCisgICAgICAgIFVwZGF0ZWQgQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbiB0byBjcmVhdGUgRXhjZXB0aW9uT3I8PiBmcm9tIENhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OkVycm9yLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZTo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjpy
ZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGU6OmJhdGNoRGVsZXRlT3BlcmF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjpiYXRjaFB1dE9wZXJhdGlvbik6CisgICAgICAgICog
TW9kdWxlcy9jYWNoZS9DYWNoZS5oOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9y
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlU3RvcmFnZTo6b3Blbik6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZVN0b3JhZ2U6OnJlbW92ZSk6CisgICAgICAgICogTW9kdWxlcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb246OmVycm9yVG9FeGNlcHRpb24pOgorICAgICAgICAqIE1vZHVsZXMvY2Fj
aGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVTdG9y
YWdlQ29ubmVjdGlvbjo6ZXJyb3JUb0V4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uOjpleGNlcHRpb25PclJlc3VsdCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVByb21p
c2VEZWZlcnJlZDo6c2V0dGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPjo6c2V0dGxlKToKKworMjAxNy0wOC0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CisKICAgICAgICAgW01hYy9pT1NdIEluY3JlYXNlIHRoZSBhdWRpbyBidWZmZXIg
c2l6ZSB3aGVuIGF1ZGlvIGNhcHR1cmUgaXMgb24gYnV0IHdlYiBhdWRpbyBpcyBub3QgdXNlZAog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NjMxCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5jcHAKaW5kZXggMzdlZTg1OGYzN2QzODVj
MjdkYjVkNWQ0OWIzNDliZDVkZGFjYmRkYS4uZGM1NTEzNzA4N2Y0ZTk2ZjEzMGZkOWMzYTlkNWE0
MTkzYjE2Mzg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5jcHAKQEAgLTE3
MiwxMiArMTcyLDggQEAgdm9pZCBDYWNoZTo6cHV0KFJlcXVlc3RJbmZvJiYgaW5mbywgUmVmPEZl
dGNoUmVzcG9uc2U+JiYgcmVzcG9uc2UsIERPTVByb21pc2VEZWYKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGJhdGNoUHV0T3BlcmF0aW9uKCpyZXF1ZXN0LCByZXNwb25zZS5nZXQoKSwg
W3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpFcnJv
ciBlcnJvcikgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChlcnJvciAhPSBDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOjpFcnJvcjo6Tm9uZSkgewotICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uRnJvbUVycm9yKGVycm9yKSk7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgYmF0
Y2hQdXRPcGVyYXRpb24oKnJlcXVlc3QsIHJlc3BvbnNlLmdldCgpLCBbcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAgICB9KTsKIH0KIApAQCAtMTk2
LDEyICsxOTIsOCBAQCB2b2lkIENhY2hlOjpyZW1vdmUoUmVxdWVzdEluZm8mJiBpbmZvLCBDYWNo
ZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIERPTVByb21pc2VEZQogICAgICAgICByZXF1ZXN0ID0g
RmV0Y2hSZXF1ZXN0OjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgV1RGTW92ZShp
bmZvKSwgeyB9KS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICB9CiAKLSAgICBiYXRjaERlbGV0
ZU9wZXJhdGlvbigqcmVxdWVzdCwgV1RGTW92ZShvcHRpb25zKSwgW3Byb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShib29sIGRpZERlbGV0ZSwgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3Ig
ZXJyb3IpIG11dGFibGUgewotICAgICAgICBpZiAoZXJyb3IgIT0gIENhY2hlU3RvcmFnZUNvbm5l
Y3Rpb246OkVycm9yOjpOb25lKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJlamVjdChDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uOjpleGNlcHRpb25Gcm9tRXJyb3IoZXJyb3IpKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBwcm9taXNlLnJlc29sdmUoZGlkRGVsZXRlKTsK
KyAgICBiYXRjaERlbGV0ZU9wZXJhdGlvbigqcmVxdWVzdCwgV1RGTW92ZShvcHRpb25zKSwgW3By
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjxib29sPiYmIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CiAgICAgfSk7
CiB9CiAKQEAgLTI4MCwxNiArMjcyLDEzIEBAIFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+IENh
Y2hlOjpxdWVyeUNhY2hlV2l0aFRhcmdldFN0b3JhZ2UoY29uc3QgRmV0Y2hSZXF1ZXN0CiAgICAg
cmV0dXJuIHJlY29yZHM7CiB9CiAKLXZvaWQgQ2FjaGU6OmJhdGNoRGVsZXRlT3BlcmF0aW9uKGNv
bnN0IEZldGNoUmVxdWVzdCYgcmVxdWVzdCwgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCBkaWRSZW1vdmFsLCBDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
OjpFcnJvciBlcnJvcik+JiYgY2FsbGJhY2spCit2b2lkIENhY2hlOjpiYXRjaERlbGV0ZU9wZXJh
dGlvbihjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0
aW9ucywgV1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmIGNhbGxiYWNr
KQogewogICAgIHNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb24tPmJh
dGNoRGVsZXRlT3BlcmF0aW9uKG1faWRlbnRpZmllciwgcmVxdWVzdC5pbnRlcm5hbFJlcXVlc3Qo
KSwgV1RGTW92ZShvcHRpb25zKSwgW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KFZlY3Rvcjx1aW50NjRfdD4mJiByZWNvcmRzLCBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpFcnJv
ciBlcnJvcikgewotICAgICAgICBpZiAoIW1faXNTdG9wcGVkKSB7Ci0gICAgICAgICAgICBpZiAo
ZXJyb3IgPT0gQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3I6Ok5vbmUpCi0gICAgICAgICAg
ICAgICAgbV9yZWNvcmRzLnJlbW92ZUFsbE1hdGNoaW5nKFsmXShjb25zdCBhdXRvJiBpdGVtKSB7
IHJldHVybiByZWNvcmRzLmNvbnRhaW5zKGl0ZW0uaWRlbnRpZmllcik7IH0pOworICAgICAgICBp
ZiAoIW1faXNTdG9wcGVkKQorICAgICAgICAgICAgY2FsbGJhY2soQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbjo6ZXhjZXB0aW9uT3JSZXN1bHQoIXJlY29yZHMuaXNFbXB0eSgpLCBlcnJvcikpOwogCi0g
ICAgICAgICAgICBjYWxsYmFjayghcmVjb3Jkcy5pc0VtcHR5KCksIGVycm9yKTsKLSAgICAgICAg
fQogICAgICAgICB1bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKICAgICB9KTsKIH0KQEAgLTMx
MCw3ICsyOTksNyBAQCBzdGF0aWMgaW5saW5lIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OlJlY29y
ZCB0b0Nvbm5lY3Rpb25SZWNvcmQoY29uc3QgRmV0Y2hSZXF1ZQogICAgIH07CiB9CiAKLXZvaWQg
Q2FjaGU6OmJhdGNoUHV0T3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYgcmVxdWVzdCwgRmV0
Y2hSZXNwb25zZSYgcmVzcG9uc2UsIFdURjo6RnVuY3Rpb248dm9pZChDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOjpFcnJvcik+JiYgY2FsbGJhY2spCit2b2lkIENhY2hlOjpiYXRjaFB1dE9wZXJhdGlv
bihjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIEZldGNoUmVzcG9uc2UmIHJlc3BvbnNlLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY2FsbGJhY2spCiB7CiAg
ICAgVmVjdG9yPENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OlJlY29yZD4gcmVjb3JkczsKICAgICBy
ZWNvcmRzLmFwcGVuZCh0b0Nvbm5lY3Rpb25SZWNvcmQocmVxdWVzdCwgcmVzcG9uc2UpKTsKQEAg
LTMxOCw3ICszMDcsNyBAQCB2b2lkIENhY2hlOjpiYXRjaFB1dE9wZXJhdGlvbihjb25zdCBGZXRj
aFJlcXVlc3QmIHJlcXVlc3QsIEZldGNoUmVzcG9uc2UmIHJlc3BvbgogICAgIHNldFBlbmRpbmdB
Y3Rpdml0eSh0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb24tPmJhdGNoUHV0T3BlcmF0aW9uKG1faWRl
bnRpZmllciwgV1RGTW92ZShyZWNvcmRzKSwgW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayldKFZlY3Rvcjx1aW50NjRfdD4mJiwgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3Ig
ZXJyb3IpIHsKICAgICAgICAgaWYgKCFtX2lzU3RvcHBlZCkKLSAgICAgICAgICAgIGNhbGxiYWNr
KGVycm9yKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmVy
cm9yVG9FeGNlcHRpb24oZXJyb3IpKTsKIAogICAgICAgICB1bnNldFBlbmRpbmdBY3Rpdml0eSh0
aGlzKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUv
Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGUuaAppbmRleCAyMTA5
NzMzODAwNzgzYmRmZDNiMjY2MWM2MDI0NzQ0NDBjYWE4OGY5Li4wMzQzNmQ5ZDA1ZDc0NmVhNWU0
ZTVlZmNkNGJlOGYxNmJlODNlMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NhY2hlL0NhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5o
CkBAIC02OCw4ICs2OCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXRyaWV2ZVJlY29yZHMoV1RG
OjpGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+IHF1
ZXJ5Q2FjaGVXaXRoVGFyZ2V0U3RvcmFnZShjb25zdCBGZXRjaFJlcXVlc3QmLCBjb25zdCBDYWNo
ZVF1ZXJ5T3B0aW9ucyYsIGNvbnN0IFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+Jik7CiAgICAg
dm9pZCBxdWVyeUNhY2hlKFJlZjxGZXRjaFJlcXVlc3Q+JiYsIENhY2hlUXVlcnlPcHRpb25zJiYs
IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiYpPiYm
KTsKLSAgICB2b2lkIGJhdGNoRGVsZXRlT3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIENh
Y2hlUXVlcnlPcHRpb25zJiYsIFdURjo6RnVuY3Rpb248dm9pZChib29sIGRpZFJlbW92YWwsIENh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yKT4mJik7Ci0gICAgdm9pZCBiYXRjaFB1dE9wZXJh
dGlvbihjb25zdCBGZXRjaFJlcXVlc3QmLCBGZXRjaFJlc3BvbnNlJiwgV1RGOjpGdW5jdGlvbjx2
b2lkKENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yKT4mJik7CisgICAgdm9pZCBiYXRjaERl
bGV0ZU9wZXJhdGlvbihjb25zdCBGZXRjaFJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpOworICAgIHZvaWQgYmF0
Y2hQdXRPcGVyYXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0JiwgRmV0Y2hSZXNwb25zZSYsIFdURjo6
RnVuY3Rpb248dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CiAKICAgICB2b2lkIHVwZGF0
ZVJlY29yZHMoVmVjdG9yPENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OlJlY29yZD4mJik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcAppbmRleCBhMGMy
OWRlOWJkNDIzYmU1YTI0NGQ2YmRjMTg3MTRlMThlNmZjOTdjLi4wOTQ4MDE1NzNkNTEyOGUzZDRj
ZWQ1YWJkMzI5MGRmYWM5MjNkNTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NhY2hlL0NhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9DYWNoZVN0b3JhZ2UuY3BwCkBAIC0xMDIsOCArMTAyLDkgQEAgdm9pZCBDYWNoZVN0b3JhZ2U6
Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PENhY2gKICAgICAgICAgc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogICAgICAgICBtX2Nvbm5l
Y3Rpb24tPm9wZW4ob3JpZ2luLCBuYW1lLCBbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bjo6RXJyb3IgZXJyb3IpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCFtX2lzU3RvcHBlZCkg
ewotICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpF
cnJvcjo6Tm9uZSkKLSAgICAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9uRnJvbUVycm9yKGVycm9yKSk7CisgICAgICAgICAgICAg
ICAgYXV0byByZXN1bHQgPSBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjplcnJvclRvRXhjZXB0aW9u
KGVycm9yKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
KTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBjYWNo
ZSA9IENhY2hlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgU3RyaW5nIHsgbmFt
ZSB9LCBjYWNoZUlkZW50aWZpZXIsIG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpOwogICAgICAgICAg
ICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoY2FjaGUpOwpAQCAtMTMwLDEyICsxMzEsOSBAQCB2
b2lkIENhY2hlU3RvcmFnZTo6cmVtb3ZlKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlzZURl
ZmVycmVkPElETEJvb2xlYW4+JiYgcAogICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7
CiAgICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlKG1fY2FjaGVzW3Bvc2l0aW9uXS0+aWRlbnRp
ZmllcigpLCBbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKHVpbnQ2NF90
IGNhY2hlSWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RXJyb3IgZXJyb3IpIG11
dGFibGUgewogICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGNhY2hlSWRlbnRpZmllcik7Ci0gICAg
ICAgICAgICBpZiAoIW1faXNTdG9wcGVkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGVycm9yICE9
IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkVycm9yOjpOb25lKQotICAgICAgICAgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpleGNlcHRpb25Gcm9tRXJy
b3IoZXJyb3IpKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHBy
b21pc2UucmVzb2x2ZSh0cnVlKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbV9p
c1N0b3BwZWQpCisgICAgICAgICAgICAgICAgcHJvbWlzZS5zZXR0bGUoQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6ZXhjZXB0aW9uT3JSZXN1bHQodHJ1ZSwgZXJyb3IpKTsKKwogICAgICAgICAgICAg
dW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgICAgIH0pOwogICAgICAgICBtX2NhY2hl
cy5yZW1vdmUocG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggNTNmMGI2NTcxMzAwZmVkOGZi
MGQ1MjcyYzQ3MmY5ZWVjZjg0MzE5NS4uMzU2MjcyNGQ0YmFlNzQzZmRiYjQ1NmM0YWU1ZTg4NDQw
MTI0YmNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0
b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0zMywxNiArMzMsMTIgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1FeGNlcHRpb24gQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZXhjZXB0aW9u
RnJvbUVycm9yKEVycm9yIGVycm9yKQorRXhjZXB0aW9uT3I8dm9pZD4gQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6ZXJyb3JUb0V4Y2VwdGlvbihFcnJvciBlcnJvcikKIHsKLSAgICBBU1NFUlQoZXJy
b3IgIT0gRXJyb3I6Ok5vbmUpOwotCi0gICAgc3dpdGNoIChlcnJvcikgewotICAgIGNhc2UgRXJy
b3I6Ok5vdEltcGxlbWVudGVkOgorICAgIGlmIChlcnJvciA9PSBFcnJvcjo6Tm90SW1wbGVtZW50
ZWQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlM
aXRlcmFsKCJOb3QgaW1wbGVtZW50ZWQiKSB9OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiVW5rbm93biBlcnJvciIpIH07
Ci0gICAgfTsKKworICAgIHJldHVybiB7IH07CiB9CiAKIGJvb2wgQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbjo6cXVlcnlDYWNoZU1hdGNoKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiBjYWNoZWRSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiBjYWNoZWRSZXNwb25zZSwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bi5oCmluZGV4IDJiZjY5ZTVhYzVkMjJiYTJkMGE0OWJhODhkNTQwZDM3ZjM3ZWEyOWEuLmMzN2U2
N2E4YmZmOThjZTczNDYwMTVhZjZjNDdkN2Y4ZjhiNzdhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Nyw5
ICs0NywxNiBAQCBwdWJsaWM6CiAgICAgICAgIE5vdEltcGxlbWVudGVkLAogICAgIH07CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBxdWVyeUNhY2hlTWF0Y2goY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGNhY2hlZFJlcXVlc3Qs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYpOworICAg
IHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBlcnJvclRvRXhjZXB0aW9uKEVycm9yKTsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8VD4gZXhjZXB0aW9uT3JSZXN1
bHQoVCYmIHZhbHVlLCBFcnJvciBlcnJvcikKKyAgICB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0g
ZXJyb3JUb0V4Y2VwdGlvbihlcnJvcik7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6Zm9yd2FyZDxUPih2YWx1ZSk7CisgICAgfQogCi0gICAgc3RhdGljIEV4
Y2VwdGlvbiBleGNlcHRpb25Gcm9tRXJyb3IoRXJyb3IpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBib29sIHF1ZXJ5Q2FjaGVNYXRjaChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgY2FjaGVkUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25zJik7CiAKICAgICBzdHJ1Y3QgUmVjb3JkIHsK
ICAgICAgICAgdWludDY0X3QgaWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oCmluZGV4IDM2OTk2Y2Q3MDVjMDNlZDg3ZWNm
NTI3YzQ0ZTJiYzI2MzgxN2I1ZWIuLmZiNmNkZjUzOGI4MGJiZjdmNDdkNGNlYTI0Yzk1YmJmYzRm
ZThhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlz
ZURlZmVycmVkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNl
RGVmZXJyZWQuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCiAjaW5jbHVkZSAiSlNE
T01HdWFyZGVkT2JqZWN0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9DYXRjaFNjb3BlLmg+CkBAIC0y
MTEsNiArMjEyLDE1IEBAIHB1YmxpYzoKICAgICB7IAogICAgICAgICBtX3Byb21pc2VEZWZlcnJl
ZC0+cmVzb2x2ZTxJRExUeXBlPihzdGQ6OmZvcndhcmQ8dHlwZW5hbWUgSURMVHlwZTo6UGFyYW1l
dGVyVHlwZT4odmFsdWUpKTsKICAgICB9CisKKyAgICB2b2lkIHNldHRsZShFeGNlcHRpb25Pcjx0
eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlPiYmIHJlc3VsdCkKKyAgICB7CisgICAgICAg
IGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAgIHJlamVjdChyZXN1bHQu
cmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICByZXNvbHZlKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CisgICAgfQogfTsKIAog
dGVtcGxhdGU8PiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4gOiBwdWJsaWMgRE9NUHJv
bWlzZURlZmVycmVkQmFzZSB7CkBAIC0yMjQsNiArMjM0LDE1IEBAIHB1YmxpYzoKICAgICB7IAog
ICAgICAgICBtX3Byb21pc2VEZWZlcnJlZC0+cmVzb2x2ZSgpOwogICAgIH0KKworICAgIHZvaWQg
c2V0dGxlKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KQorICAgIHsKKyAgICAgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAgcmVqZWN0KHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHJl
c29sdmUoKTsKKyAgICB9CiB9OwogCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>